@gravitee/ui-components 0.0.0

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 (234) hide show
  1. package/assets/css/asciidoctor/asciidoctor.css +441 -0
  2. package/assets/css/documentation.css +21 -0
  3. package/assets/css/github-markdown-css/github-markdown.css +985 -0
  4. package/assets/css/gravitee-console-theme-v2-color.css +59 -0
  5. package/assets/css/gravitee-console-theme.css +63 -0
  6. package/assets/css/gravitee-theme.generated.css +42 -0
  7. package/assets/css/highlight.js/github.css +10 -0
  8. package/assets/i18n/en.json +154 -0
  9. package/assets/i18n/fr.json +154 -0
  10. package/assets/icons/action.svg +1 -0
  11. package/assets/icons/alert.svg +1 -0
  12. package/assets/icons/appliances.svg +1 -0
  13. package/assets/icons/av.svg +1 -0
  14. package/assets/icons/clothers.svg +1 -0
  15. package/assets/icons/code.svg +1 -0
  16. package/assets/icons/communication.svg +1 -0
  17. package/assets/icons/content.svg +1 -0
  18. package/assets/icons/cooking.svg +1 -0
  19. package/assets/icons/custom.svg +1 -0
  20. package/assets/icons/design.svg +1 -0
  21. package/assets/icons/devices.svg +1 -0
  22. package/assets/icons/editor.svg +1 -0
  23. package/assets/icons/file.svg +1 -0
  24. package/assets/icons/finance.svg +1 -0
  25. package/assets/icons/food.svg +1 -0
  26. package/assets/icons/general.svg +1 -0
  27. package/assets/icons/hardware.svg +1 -0
  28. package/assets/icons/home.svg +1 -0
  29. package/assets/icons/image.svg +1 -0
  30. package/assets/icons/layout.svg +1 -0
  31. package/assets/icons/maps.svg +1 -0
  32. package/assets/icons/mde.svg +1 -0
  33. package/assets/icons/media.svg +1 -0
  34. package/assets/icons/navigation.svg +1 -0
  35. package/assets/icons/notification.svg +1 -0
  36. package/assets/icons/places.svg +1 -0
  37. package/assets/icons/shopping.svg +1 -0
  38. package/assets/icons/social.svg +1 -0
  39. package/assets/icons/text.svg +1 -0
  40. package/assets/icons/thirdparty.svg +1 -0
  41. package/assets/icons/tools.svg +1 -0
  42. package/assets/icons/wheather.svg +1 -0
  43. package/assets/images/avatar.png +0 -0
  44. package/assets/images/gravitee-favicon.png +0 -0
  45. package/assets/images/gravitee-g-logo-cyan.svg +1 -0
  46. package/assets/images/gravitee-g-logo-dark-blue.svg +1 -0
  47. package/assets/images/gravitee-g-logo-white.svg +1 -0
  48. package/assets/images/gravitee-loader.gif +0 -0
  49. package/assets/images/gravitee-logo-cyan.svg +1 -0
  50. package/assets/images/gravitee-logo-dark-blue.svg +1 -0
  51. package/assets/images/gravitee-logo-white.svg +1 -0
  52. package/package.json +171 -0
  53. package/src/atoms/gv-autocomplete.js +1 -0
  54. package/src/atoms/gv-button.js +1 -0
  55. package/src/atoms/gv-checkbox.js +1 -0
  56. package/src/atoms/gv-date-picker-calendar.js +1 -0
  57. package/src/atoms/gv-date-picker-cell.js +1 -0
  58. package/src/atoms/gv-date-picker.js +1 -0
  59. package/src/atoms/gv-file-upload.js +1 -0
  60. package/src/atoms/gv-icon.js +1 -0
  61. package/src/atoms/gv-image.js +1 -0
  62. package/src/atoms/gv-input-message.js +1 -0
  63. package/src/atoms/gv-input.js +1 -0
  64. package/src/atoms/gv-link.js +1 -0
  65. package/src/atoms/gv-message.js +1 -0
  66. package/src/atoms/gv-metric.js +1 -0
  67. package/src/atoms/gv-relative-time.js +1 -0
  68. package/src/atoms/gv-select-native.js +1 -0
  69. package/src/atoms/gv-select.js +1 -0
  70. package/src/atoms/gv-spinner.js +1 -0
  71. package/src/atoms/gv-state.js +1 -0
  72. package/src/atoms/gv-switch.js +1 -0
  73. package/src/atoms/gv-tag.js +1 -0
  74. package/src/atoms/gv-text.js +1 -0
  75. package/src/charts/gv-chart-bar.js +1 -0
  76. package/src/charts/gv-chart-gauge.js +1 -0
  77. package/src/charts/gv-chart-histogram.js +1 -0
  78. package/src/charts/gv-chart-line.js +1 -0
  79. package/src/charts/gv-chart-map.js +1 -0
  80. package/src/charts/gv-chart-pie.js +1 -0
  81. package/src/index.js +1 -0
  82. package/src/lib/cron-expression.js +1 -0
  83. package/src/lib/date.js +1 -0
  84. package/src/lib/events.js +1 -0
  85. package/src/lib/http-client-schema-form.js +1 -0
  86. package/src/lib/http.js +1 -0
  87. package/src/lib/i18n.js +1 -0
  88. package/src/lib/item.js +1 -0
  89. package/src/lib/properties.js +1 -0
  90. package/src/lib/schema-form.js +1 -0
  91. package/src/lib/studio.js +1 -0
  92. package/src/lib/style.js +1 -0
  93. package/src/lib/text-format.js +1 -0
  94. package/src/lib/theme.js +1 -0
  95. package/src/lib/utils.js +1 -0
  96. package/src/mixins/chart-element.js +1 -0
  97. package/src/mixins/input-element.js +1 -0
  98. package/src/mixins/item-resource.js +1 -0
  99. package/src/mixins/keyboard-element.js +1 -0
  100. package/src/mixins/update-after-browser.js +1 -0
  101. package/src/mixins/with-resize-observer.js +1 -0
  102. package/src/mixins/with-skeleton-attribute.js +1 -0
  103. package/src/molecules/gv-card-full.js +1 -0
  104. package/src/molecules/gv-card-list.js +1 -0
  105. package/src/molecules/gv-card.js +1 -0
  106. package/src/molecules/gv-category-list.js +1 -0
  107. package/src/molecules/gv-category.js +1 -0
  108. package/src/molecules/gv-code.js +1 -0
  109. package/src/molecules/gv-confirm.js +1 -0
  110. package/src/molecules/gv-cron-editor.js +1 -0
  111. package/src/molecules/gv-dropdown-menu.js +1 -0
  112. package/src/molecules/gv-expandable.js +1 -0
  113. package/src/molecules/gv-expression-language.js +1 -0
  114. package/src/molecules/gv-identity-picture.js +1 -0
  115. package/src/molecules/gv-list.js +1 -0
  116. package/src/molecules/gv-metrics.js +1 -0
  117. package/src/molecules/gv-modal.js +1 -0
  118. package/src/molecules/gv-nav.js +1 -0
  119. package/src/molecules/gv-option.js +1 -0
  120. package/src/molecules/gv-plans.js +1 -0
  121. package/src/molecules/gv-popover.js +1 -0
  122. package/src/molecules/gv-promote.js +1 -0
  123. package/src/molecules/gv-rating-list.js +1 -0
  124. package/src/molecules/gv-rating.js +1 -0
  125. package/src/molecules/gv-row-expandable.js +1 -0
  126. package/src/molecules/gv-row.js +1 -0
  127. package/src/molecules/gv-stats.js +1 -0
  128. package/src/molecules/gv-stepper.js +1 -0
  129. package/src/molecules/gv-table.js +1 -0
  130. package/src/molecules/gv-tree.js +1 -0
  131. package/src/organisms/gv-documentation.js +1 -0
  132. package/src/organisms/gv-header.js +1 -0
  133. package/src/organisms/gv-http-client.js +1 -0
  134. package/src/organisms/gv-menu.js +1 -0
  135. package/src/organisms/gv-newsletter-subscription.js +1 -0
  136. package/src/organisms/gv-pagination.js +1 -0
  137. package/src/organisms/gv-properties.js +1 -0
  138. package/src/organisms/gv-resizable-views.js +1 -0
  139. package/src/organisms/gv-resources.js +1 -0
  140. package/src/organisms/gv-schema-form-array.js +1 -0
  141. package/src/organisms/gv-schema-form-control-object.js +1 -0
  142. package/src/organisms/gv-schema-form-control.js +1 -0
  143. package/src/organisms/gv-schema-form.js +1 -0
  144. package/src/organisms/gv-tabs.js +1 -0
  145. package/src/organisms/gv-user-menu.js +1 -0
  146. package/src/organisms/gv-vertical-menu.js +1 -0
  147. package/src/policy-studio/gv-flow-step.js +1 -0
  148. package/src/policy-studio/gv-flow.js +1 -0
  149. package/src/policy-studio/gv-policy-studio-menu.js +1 -0
  150. package/src/policy-studio/gv-policy-studio.js +1 -0
  151. package/src/styles/empty.js +1 -0
  152. package/src/styles/input.js +1 -0
  153. package/src/styles/link.js +1 -0
  154. package/src/styles/shapes.js +1 -0
  155. package/src/styles/skeleton.js +1 -0
  156. package/src/styles/zoom.js +1 -0
  157. package/src/theme/gv-theme.js +1 -0
  158. package/wc/gv-autocomplete.js +1 -0
  159. package/wc/gv-button.js +1 -0
  160. package/wc/gv-card-full.js +1 -0
  161. package/wc/gv-card-list.js +1 -0
  162. package/wc/gv-card.js +1 -0
  163. package/wc/gv-category-list.js +1 -0
  164. package/wc/gv-category.js +1 -0
  165. package/wc/gv-chart-bar.js +1 -0
  166. package/wc/gv-chart-gauge.js +1 -0
  167. package/wc/gv-chart-histogram.js +1 -0
  168. package/wc/gv-chart-line.js +1 -0
  169. package/wc/gv-chart-map.js +1 -0
  170. package/wc/gv-chart-pie.js +1 -0
  171. package/wc/gv-checkbox.js +1 -0
  172. package/wc/gv-code.js +1 -0
  173. package/wc/gv-confirm.js +1 -0
  174. package/wc/gv-cron-editor.js +1 -0
  175. package/wc/gv-date-picker-calendar.js +1 -0
  176. package/wc/gv-date-picker-cell.js +1 -0
  177. package/wc/gv-date-picker.js +1 -0
  178. package/wc/gv-documentation.js +1 -0
  179. package/wc/gv-dropdown-menu.js +1 -0
  180. package/wc/gv-expandable.js +1 -0
  181. package/wc/gv-expression-language.js +1 -0
  182. package/wc/gv-file-upload.js +1 -0
  183. package/wc/gv-flow-step.js +1 -0
  184. package/wc/gv-flow.js +1 -0
  185. package/wc/gv-header.js +1 -0
  186. package/wc/gv-http-client.js +1 -0
  187. package/wc/gv-icon.js +1 -0
  188. package/wc/gv-identity-picture.js +1 -0
  189. package/wc/gv-image.js +1 -0
  190. package/wc/gv-input-message.js +1 -0
  191. package/wc/gv-input.js +1 -0
  192. package/wc/gv-link.js +1 -0
  193. package/wc/gv-list.js +1 -0
  194. package/wc/gv-menu.js +1 -0
  195. package/wc/gv-message.js +1 -0
  196. package/wc/gv-metric.js +1 -0
  197. package/wc/gv-metrics.js +1 -0
  198. package/wc/gv-modal.js +1 -0
  199. package/wc/gv-nav.js +1 -0
  200. package/wc/gv-newsletter-subscription.js +1 -0
  201. package/wc/gv-option.js +1 -0
  202. package/wc/gv-pagination.js +1 -0
  203. package/wc/gv-plans.js +1 -0
  204. package/wc/gv-policy-studio-menu.js +1 -0
  205. package/wc/gv-policy-studio.js +1 -0
  206. package/wc/gv-popover.js +1 -0
  207. package/wc/gv-promote.js +1 -0
  208. package/wc/gv-properties.js +1 -0
  209. package/wc/gv-rating-list.js +1 -0
  210. package/wc/gv-rating.js +1 -0
  211. package/wc/gv-relative-time.js +1 -0
  212. package/wc/gv-resizable-views.js +1 -0
  213. package/wc/gv-resources.js +1 -0
  214. package/wc/gv-row-expandable.js +1 -0
  215. package/wc/gv-row.js +1 -0
  216. package/wc/gv-schema-form-array.js +1 -0
  217. package/wc/gv-schema-form-control-object.js +1 -0
  218. package/wc/gv-schema-form-control.js +1 -0
  219. package/wc/gv-schema-form.js +1 -0
  220. package/wc/gv-select-native.js +1 -0
  221. package/wc/gv-select.js +1 -0
  222. package/wc/gv-spinner.js +1 -0
  223. package/wc/gv-state.js +1 -0
  224. package/wc/gv-stats.js +1 -0
  225. package/wc/gv-stepper.js +1 -0
  226. package/wc/gv-switch.js +1 -0
  227. package/wc/gv-table.js +1 -0
  228. package/wc/gv-tabs.js +1 -0
  229. package/wc/gv-tag.js +1 -0
  230. package/wc/gv-text.js +1 -0
  231. package/wc/gv-theme.js +1 -0
  232. package/wc/gv-tree.js +1 -0
  233. package/wc/gv-user-menu.js +1 -0
  234. package/wc/gv-vertical-menu.js +1 -0
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvPromote=void 0;const e=require("lit"),t=require("lit/directives/class-map"),i=require("../lib/events"),r=require("../lib/i18n"),s=require("../mixins/item-resource"),o=require("../lib/item"),n=require("../lib/utils");require("../atoms/gv-image"),require("../atoms/gv-button"),require("../molecules/gv-rating"),require("../molecules/gv-metrics");class l extends((0,s.ItemResource)(e.LitElement)){static get properties(){return{...super.properties,limit:{type:Number}}}static get styles(){return[...super.styles,e.css`:host{box-sizing:border-box;display:inline-block;margin:.2rem;vertical-align:middle;--gv-button--p:var(--gv-promote-button--p, 19px 80px);--gv-button--fz:var(--gv-promote-button--fz, var(--gv-theme-font-size-l, 16px));--gv-preview-button:'none';width:100%;--gv-icon--s:20px;--gv-rating--s:20px}gv-identity-picture{height:var(--gv-promote-image--h,300px);width:var(--gv-promote-image--w,300px);--gv-image--of:contain}.container{display:flex;min-height:420px;max-height:420px}.image{background-color:var(--gv-promote-image--bgc,var(--gv-theme-color-light,#86c3d0));min-height:0;min-width:0;width:480px;display:flex;align-items:center;justify-content:center;border-radius:4px 0 0 4px}.title{text-transform:capitalize;min-height:32px;display:flex;align-items:center}.title h2{font-size:var(--gv-theme-font-size-xl,26px);flex:1}.title .version{font-size:var(--gv-theme-font-size-s,12px);color:var(--gv-theme-neutral-color-dark,#d9d9d9)}.owner{--gv-icon--c:var(--gv-theme-neutral-color-dark, #bfbfbf);--gv-icon--s:16px;color:var(--gv-theme-neutral-color-dark,#bfbfbf);display:flex;padding-bottom:2px;margin-top:-8px;line-height:initial}.content{flex:1;padding:1.5rem;background-color:var(--gv-promote--bgc,var(--gv-theme-neutral-color-lightest,#fff));color:var(--gv-theme-font-color-dark,#262626);font-size:var(--gv-theme-font-size-l,16px);line-height:24px;border-radius:0 4px 4px 0;display:flex;flex-direction:column}.description{margin:24px 0;flex-grow:1}.description-large{text-align:justify}.infos{display:flex;justify-content:flex-end;margin:.5rem .2rem;align-items:center}gv-metrics{display:flex;height:100%;justify-content:flex-end;align-items:stretch}.labels{text-align:right}`]}_onClick(){(0,i.dispatchCustomEvent)(this,"click",{data:this._item,href:this.href})}render(){if(this._invisible)return"";const i=(0,o.getOwner)(this._item);return e.html`<div class="container"><div class="${(0,t.classMap)({skeleton:this._skeleton,image:!0})}">${this._renderImage()}</div><div class="content">${this._error&&!this._skeleton?e.html`<p class="description error">${(0,r.i18n)("gv-promote.error")}</p>`:e.html`${this._empty&&!this._skeleton?e.html`<p class="description empty">${(0,r.i18n)("gv-promote.empty")}</p>`:e.html`<div class="${(0,t.classMap)({skeleton:this._skeleton,title:!0})}"><h2>${(0,o.getTitle)(this._item)}</h2><span class="version">${(0,o.getVersion)(this._item)}</span></div>${null!=i&&i.trim().length>0?e.html`<div class="owner"><gv-icon shape="general:user" size="8px"></gv-icon>${i}</div>`:""}<p class="${(0,t.classMap)({skeleton:this._skeleton,description:!0,"description-large":(0,o.getDescription)(this._item).split(" ").length>10})}">${(0,n.truncate)((0,o.getDescription)(this._item),this.limit)}</p><div class="${(0,t.classMap)({skeleton:this._skeleton,infos:!0})}">${this._renderMetricsWithRating()}</div><div class="labels">${this._renderLabels(!0)}</div><gv-button ?skeleton="${this._skeleton}" .href="${this.href}" @click="${this._onClick}">${(0,r.i18n)("gv-promote.view")}</gv-button>`}`}</div></div>`}}exports.GvPromote=l,window.customElements.define("gv-promote",l);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvRatingList=void 0;const e=require("lit"),t=require("lit/directives/repeat");require("./../atoms/gv-relative-time"),require("./gv-identity-picture"),require("./gv-rating"),require("./gv-confirm");const i=require("../styles/skeleton"),s=require("../styles/link"),r=require("../lib/i18n"),n=require("lit/directives/class-map"),a=require("../lib/events");class l extends e.LitElement{static get properties(){return{ratings:{type:Array},user:{type:Object},permissions:{type:Object},required:{type:Boolean,attribute:"required"},_permissions:{type:Object,attribute:!1},_ratings:{type:Array,attribute:!1}}}static get styles(){return[i.skeleton,s.link,e.css`:host{--s:var(--gv-rating-list--s, 18px);--gv-icon--s:var(--s);--gv-rating--s:var(--s);margin:.2rem;box-sizing:border-box}.rating-list{background-color:var(--gv-rating-list--bgc,var(--gv-theme-neutral-color-lightest,#fff))}.rating.parent{border-bottom:1px solid var(--gv-rating-list--bdc,var(--gv-theme-neutral-color,#f5f5f5))}.rating{display:flex;padding:1rem 0}.answer .rating{padding:1rem 0 0 0}.sub-title{color:grey;display:flex;line-height:20px}gv-confirm{align-self:center}.sub-title a.link{text-decoration:underline}gv-identity-picture{margin:0 1rem;height:60px;width:60px}.title{display:flex;line-height:20px}.rating-content,.title b{flex:1}.link-answer{display:inline-block;padding:1rem 0}.link-answer gv-icon{margin-right:.2rem;--gv-icon--s:var(--s)}.delete-answer,.delete-rating,.fake-icon{--gv-icon--s:var(--s);min-width:var(--s);display:inline-flex}.delete-rating{padding-right:1rem}.answer{padding:1rem;margin-top:1rem;background-color:var(--gv-rating-list-answer--bgc,var(--gv-theme-neutral-color-lighter,#fafafa))}.answer-form{display:flex;flex-direction:column}.display-name:after{content:'|';margin:2px}.actions{text-align:right}`]}constructor(){super(),this._ratings=[],this._permissions={update:!1,delete:!1,addAnswer:!1,deleteAnswer:!1}}set ratings(e){Promise.resolve(e).then((e=>{e?(this._skeleton=!1,this._ratings=e):this._skeleton=!0})).catch((()=>{this._skeleton=!1}))}set permissions(e){e&&"object"==typeof e&&(this._permissions=Object.assign({},this._permissions,e))}render(){return e.html`<div class="rating-list">${(0,t.repeat)(this._ratings,(e=>this._render(e)))}</div>`}_editAnswer(e,t){t.stopPropagation(),this._ratings.forEach((e=>e._edit=!1)),e._edit=!0,this.performUpdate()}_getAnswerValue(){const e=this.shadowRoot.querySelector("gv-text");return e?e.value:""}_onAnswer(e){const t=this._getAnswerValue();t.trim().length>0&&(0,a.dispatchCustomEvent)(this,"add-answer",{rating:e,answer:t})}_hasValidAnswer(){return this._getAnswerValue().trim().length>0}_onClose(e){delete e._edit,this.performUpdate()}_renderAnswer(t,i){return e.html`<div class="answer">${this._render(i,t)}</div>`}_renderAnswers(i){return e.html`${i.answers?e.html`${this._canAddAnswer()?e.html`<a class="link link-answer" @click="${this._editAnswer.bind(this,i)}"><gv-icon class="link" shape="communication:chat#5"></gv-icon>${(0,r.i18n)("gv-rating-list.reply")}</a>`:""} ${i._edit?e.html`<div class="answer answer-form"><gv-text rows="4" label="${(0,r.i18n)("gv-rating-list.answerLabel")}" required @input="${this.performUpdate}"></gv-text><div class="actions"><gv-button primary outlined @click="${this._onClose.bind(this,i)}">${(0,r.i18n)("gv-rating-list.cancel")}</gv-button><gv-button primary @click="${this._onAnswer.bind(this,i)}" .disabled="${!this._hasValidAnswer()}">${(0,r.i18n)("gv-rating-list.send")}</gv-button></div></div>`:""}<div>${(0,t.repeat)(i.answers,(e=>this._renderAnswer(i,e)))}</div>`:""}`}_onDelete(e){(0,a.dispatchCustomEvent)(this,"delete",{rating:e})}_onDeleteAnswer(e,t){(0,a.dispatchCustomEvent)(this,"delete-answer",{rating:e,answer:t})}_renderActions(t,i){return i?e.html`${this._canDeleteAnswer()?e.html`<gv-confirm danger icon="home:trash" @gv-confirm:ok="${this._onDeleteAnswer.bind(this,i,t)}" message="${(0,r.i18n)("gv-rating-list.confirmAnswerDelete")}"><gv-icon title="${(0,r.i18n)("gv-rating-list.deleteAnswer")}" class="link delete-answer" shape="home:trash"></gv-icon></gv-confirm>`:""}`:e.html`${this._canDelete(t.id)?e.html`<gv-confirm danger icon="home:trash" @gv-confirm:ok="${this._onDelete.bind(this,t)}" message="${(0,r.i18n)("gv-rating-list.confirmRatingDelete")}"><gv-icon title="${(0,r.i18n)("gv-rating-list.deleteRating")}" class="link delete-rating" shape="home:trash"></gv-icon></gv-confirm>`:e.html`<div class="fake-icon"></div>`}`}_render(t,i){const s={rating:!0,skeleton:this._skeleton,parent:null==i},r=t.author&&t.author.display_name?t.author.display_name:null,a=t.author&&t.author._links&&t.author._links.avatar?t.author._links.avatar:null;return e.html`<div class="${(0,n.classMap)(s)}"><gv-identity-picture rounded .display_name="${r}" .picture="${a}"></gv-identity-picture><div class="rating-content"><div class="title"><b>${t.title?t.title:t.author.display_name}</b>${i?"":e.html`<gv-rating .readonly="${!this._canUpdate(t.id)}" @input="${this._onUpdateRating.bind(this,t)}" value="${t.value}"></gv-rating>`}${this._renderActions(t,i)}</div><div class="sub-title">${this._getDisplayName(t)}<gv-relative-time datetime="${t.date}" noFuture></gv-relative-time></div><p class="comment">${t.comment}</p>${i?"":this._renderAnswers(t)}</div></div>`}_onUpdateRating(e,t){e.value=t.target.value,(0,a.dispatchCustomEvent)(this,"update",{rating:e})}_canAddAnswer(){return!0===this._permissions.addAnswer}_canDeleteAnswer(){return!0===this._permissions.deleteAnswer}_canUpdate(e){return Array.isArray(this._permissions.update)?this._permissions.update.includes(e):!0===this._permissions.update}_canDelete(e){return Array.isArray(this._permissions.delete)?this._permissions.delete.includes(e):!0===this._permissions.delete}_getDisplayName(t){return t.title?e.html`<span class="display-name">${t.author.display_name}</span>`:""}}exports.GvRatingList=l,window.customElements.define("gv-rating-list",l);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvRating=void 0;const t=require("lit"),e=require("lit/directives/repeat");require("../atoms/gv-icon");const i=require("../styles/skeleton"),s=require("lit/directives/class-map"),n=require("../lib/i18n");class r extends t.LitElement{static get properties(){return{value:{type:Number,reflect:!0},count:{type:String},skeleton:{type:Boolean},readonly:{type:Boolean},_candidate:{type:Number,attribute:!1},withDescription:{type:Boolean,attribute:"with-description"}}}static get styles(){return[t.css`:host{--gv-icon--c:var(--gv-rating--c, var(--gv-theme-color, #5a7684));--size:var(--gv-rating--s, 13px);--gv-icon--s:var(--size);font-size:var(--gv-theme-font-size-m,14px);cursor:default}.content,.rate{justify-content:space-evenly;display:inline-flex;align-items:flex-end;vertical-align:middle;height:100%}.info-title{font-size:var(--gv-theme-font-size-m,14px);line-height:16px;align-self:center;min-width:35px;text-align:center}.info-subtitle{font-size:var(--gv-theme-font-size-xs,10px);line-height:10px;opacity:.5;text-align:center}.icon{display:inline-flex;align-self:center;margin-right:calc(var(--size)/ 4);align-items:center}.edit{cursor:pointer}.edit gv-icon:hover{transform:translateY(-.5px)}gv-input{flex:1}.icon{min-height:30px}.description{min-width:100px;line-height:calc(var(--size) + 4px);margin:auto 4px}`,i.skeleton]}constructor(){super(),this.value=0,this.count=0,this.readonly=!1,this._candidate=-1,this.isSelected=!1}_getTitle(){return`${this._getAverage()}/5`}_onMouseEnter(t){if(this._candidate=t+1,this.withDescription)switch(this._candidate){case 1:this.description=(0,n.i18n)("gv-rating.description-1");break;case 2:this.description=(0,n.i18n)("gv-rating.description-2");break;case 3:this.description=(0,n.i18n)("gv-rating.description-3");break;case 4:this.description=(0,n.i18n)("gv-rating.description-4");break;case 5:this.description=(0,n.i18n)("gv-rating.description-5")}}_onMouseOut(){this._candidate=-1,this.withDescription&&!this.isSelected&&(this.description=null)}_onClick(t){this._candidate=-1,this.isSelected=!0,this.value=t+1,this.dispatchEvent(new Event("input"),{bubbles:!0,cancelable:!0})}_getAverage(){const t=parseFloat(this.value);return t>=0&&t<=5?t:0}_renderStar(e,i){return this.readonly?t.html`<gv-icon shape="general:${e}"></gv-icon>`:t.html`<gv-icon @mouseenter="${this._onMouseEnter.bind(this,i)}" @click="${this._onClick.bind(this,i)}" shape="general:${e}"></gv-icon>`}render(){const i=this._getAverage();let n=1*i;this.readonly||(n=this._candidate>-1?this._candidate:i);const r=[];for(let t=1;t<=5;t+=1)n>=t?r.push("star"):n>=t-.7?r.push("half-star"):r.push("no-star");return t.html`<div class="${(0,s.classMap)({skeleton:this.skeleton,edit:!this.readonly,content:!0})}"><div class="${(0,s.classMap)({content:!0})}"><div class="${(0,s.classMap)({rate:!0})}"><div class="icon" title="${this._getTitle()}">${this.withDescription?t.html`<div class="description">${this.description}</div>`:""} ${(0,e.repeat)(r,(t=>t),((e,i)=>t.html`${this._renderStar(e,i)}`))}</div>${this.count?t.html`<div><div class="info-title">${this.count||""}</div><div class="info-subtitle">${this._getCountTitle()}</div></div>`:""}</div></div></div>`}firstUpdated(){this.readonly||this.shadowRoot.querySelector(".edit").addEventListener("mouseout",this._onMouseOut.bind(this))}_getCountTitle(){return this.count?this.count>1?(0,n.i18n)("gv-rating.notes"):(0,n.i18n)("gv-rating.note"):""}}exports.GvRating=r,window.customElements.define("gv-rating",r);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvRowExpandable=void 0;const e=require("lit"),r=require("./gv-expandable");class o extends r.GvExpandable{constructor(){super(),this.icon="general:other#2",this.iconOpened="general:other#2",this.clickable=!0}static get styles(){return[...super.styles,e.css`.box:hover{background-color:var(--gv-theme-neutral-color,#f5f5f5)}`]}}exports.GvRowExpandable=o,window.customElements.define("gv-row-expandable",o);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvRow=void 0;const e=require("lit"),r=require("../styles/skeleton"),t=require("../styles/link"),i=require("lit/directives/class-map"),s=require("../lib/i18n"),o=require("../mixins/item-resource"),l=require("../mixins/with-resize-observer"),a=require("../lib/item");class n extends((0,l.withResizeObserver)((0,o.ItemResource)(e.LitElement))){static get styles(){return[...super.styles,e.css`:host{box-sizing:border-box;cursor:pointer;--hover-bgc:var(--gv-row-hover--bgc, var(--gv-theme-neutral-color-lighter, #fafafa));--trf-ty:var(--gv-row-hover--trf-ty, 0px);display:block}:host([_invisible]){display:none}.row{padding:12px}.row:hover{-webkit-transform:-webkit-translateY(var(--trf-ty));transform:translateY(var(--trf-ty));background-color:var(--hover-bgc)}.row:not(.error){display:grid;grid-template-columns:calc(var(--gv-row-image--w,35px) + 5px) auto fit-content(20%);grid-gap:10px;align-items:center}:host([w-lt-450]) .meta{display:none}.row .name{margin-right:15px}.row .meta__owner,.row .name{margin-bottom:5px}.row .version{color:var(--gv-theme-neutral-color-dark,#d9d9d9)}.row .description{--lh:1.4rem;--max-lines:2;max-height:calc(var(--lh) * var(--max-lines));line-height:var(--lh);overflow:hidden;text-overflow:ellipsis;text-after-overflow:'...'}.row .meta{display:flex;flex-direction:column;align-items:flex-end}.row .meta__owner{--gv-icon--c:var(--gv-theme-neutral-color-dark, #d9d9d9);--gv-icon--s:16px;color:var(--gv-theme-neutral-color-dark,#d9d9d9);display:flex}.row .meta__tags{display:flex;flex-direction:row;flex-wrap:wrap}.skeleton{transition:.5s;min-height:30px;align-self:start}.error{cursor:default;text-align:center}gv-identity-picture{height:var(--gv-row-image--h,35px);width:var(--gv-row-image--w,35px);border-radius:20px;--gv-image--of:contain;align-self:baseline}h3{margin:0}.row>.group{display:flex;flex-direction:column;margin:0 5px;width:100%;flex:1}.title{display:flex;flex-direction:row}`,t.link,r.skeleton]}static get properties(){return{...super.properties,small:{type:Boolean}}}constructor(){super(),this.breakpoints={width:[450]},this.small=!1}render(){const r={row:!0,link:!0,error:!this._skeleton&&(this._error||this._empty)},t=(0,a.getOwner)(this._item);return e.html`<div class="${(0,i.classMap)(r)}">${this._skeleton||!this._error&&!this._empty?e.html`<div class="${(0,i.classMap)({skeleton:this._skeleton})}">${this._renderImage()}</div><div class="${(0,i.classMap)({group:!0,skeleton:this._skeleton})}"><div class="title"><h3 class="name">${(0,a.getTitle)(this._item)}</h3><div class="version">${(0,a.getVersion)(this._item)}</div></div><div class="description">${(0,a.getDescription)(this._item)}</div></div><div class="${(0,i.classMap)({meta:!0,skeleton:this._skeleton})}"><div class="meta__owner">${null!=t&&t.trim().length>0?e.html`<gv-icon shape="general:user" size="8px"></gv-icon>${t}`:""}</div>${!0!==this.small?e.html`<div class="meta__tags">${this._renderLabels()}</div>`:""}</div>`:e.html`<div class="message">${this._error?(0,s.i18n)("gv-row.error"):(0,s.i18n)("gv-row.empty")}</div>`}</div>`}}exports.GvRow=n,window.customElements.define("gv-row",n);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvStats=void 0;const t=require("lit");require("../atoms/gv-button"),require("../atoms/gv-tag");const e=require("lit/directives/repeat"),s=require("lit/directives/class-map"),i=require("../lib/i18n"),r=require("../mixins/with-skeleton-attribute");class a extends((0,r.withSkeletonAttribute)(t.LitElement)){static get properties(){return{stats:{type:Object},options:{type:Array}}}static get styles(){return[...super.styles,t.css`.stats{align-content:center;justify-content:center;display:flex;flex-wrap:wrap;height:100%}.stats-container{border:1px solid;border-radius:8px;margin:15px;padding:15px}.stats-value{font-size:30px;text-align:center}.stats-label{font-size:15px;text-align:center}`]}constructor(){super(),this._skeletonAttribute="stats"}_getStat(e){if(!this.stats)return"<div></div>";let s=Math.round(this.stats[e.key]);if(isNaN(s)&&(s=0),0===s&&e.fallback){const t=e.fallback.find((t=>Math.round(this.stats[t.key])>0));t&&(e.key=t.key,e.label=t.label,s=Math.round(this.stats[e.key]))}return t.html`<div class="stats-container" style="color:${e.color}"><div class="stats-value">${s}${e.unit}</div><div class="stats-label">${e.label||e.key}</div></div>`}render(){return this._error?t.html`<div class="error">${(0,i.i18n)("gv-stats.error")}</div>`:this._empty?t.html`<div class="empty">${(0,i.i18n)("gv-stats.empty")}</div>`:t.html`<div class="${(0,s.classMap)({stats:!0,skeleton:this._skeleton})}">${(0,e.repeat)(this.options,(t=>t),(t=>this._getStat(t)))}</div>`}}exports.GvStats=a,window.customElements.define("gv-stats",a);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvStepper=void 0;const e=require("lit"),t=require("lit/directives/repeat"),r=require("lit/directives/class-map"),i=require("../styles/link"),s=require("../lib/events"),a=require("../lib/i18n");class d extends e.LitElement{static get properties(){return{current:{type:Number,reflect:!0},steps:{type:Array},disabled:{type:Boolean},_error:{type:Boolean}}}static get styles(){return[i.link,e.css`:host{box-sizing:border-box;--passed--bgc:var(--gv-stepper-valid--bgc, var(--gv-theme-color, #5a7684));--passed--bdc:var(--gv-stepper-passed--bdc, var(--gv-theme-color-light, #86c3d0));--bdc:var(--gv-stepper--bdc, var(--gv-theme-neutral-color-dark, #bfbfbf));--bgc:var(--gv-stepper--bgc, var(--gv-theme-neutral-color-dark, #bfbfbf));--passed--c:var(--gv-stepper-passed--c, #595959);--c:var(--gv-stepper--c, var(--gv-theme-neutral-color-dark, #bfbfbf))}.stepper{display:flex;justify-content:center}.disabled .step{cursor:not-allowed}.step{display:flex;flex-direction:column;cursor:pointer}.graph{display:flex;flex-direction:row;min-height:22px;min-width:250px}.round{min-width:6px;width:6px;min-height:6px;height:6px;border-radius:50%;margin:2px 7px 2px 7px}.border{margin-top:4px;min-width:100px;width:100%;height:2px;clear:both}.round{background-color:var(--bgc);transition:all .2s ease-in}.border{background-color:var(--bdc);margin-bottom:5px;transition:all .2s ease-in}.passed .round{background-color:var(--passed--bgc)}.passed .border{background-color:var(--passed--bdc)}.passed .round{height:10px;width:10px;min-height:10px;min-width:10px;margin:0 5px 0 5px}.first .border:first-of-type{visibility:hidden}.end .border:last-of-type{visibility:hidden}.content{display:flex;flex-direction:column;align-items:center;padding:5px;line-height:24px;font-size:var(--gv-theme-font-size-l,16px);color:var(--c)}.passed .content{color:var(--passed--c)}.title{font-weight:700}.description{font-size:var(--gv-theme-font-size-m,14px)}.error{text-align:center}.circle{border:1px solid var(--passed--bgc);margin-top:-12px;border-radius:50%;animation:validate .2s ease-in}gv-icon{--gv-icon--c:var(--passed--bgc);--gv-icon--s:var(--gv-stepper-icon--s, 32px)}.invalid gv-icon{--gv-icon--c:var(--gv-theme-color-danger)}@keyframes validate{from{opacity:0}to{opacity:1}}`]}constructor(){super(),this.current=0,this._steps=[],this._error=!1,this._empty=!0}_onClick(e){!0!==this.disabled&&(this.current=e+1,(0,s.dispatchCustomEvent)(this,"change",{current:this.current}))}async performUpdate(){await Promise.all([this.steps,this.current]).then((([e,t])=>{this._steps=e.map(((e,r)=>(e.passed=!0===e.valid||t>0&&r+1<=t,e))),this._error=!1,this._empty=!(this._steps&&this._steps.length>0)})).catch((()=>{this._error=!0,this._empty=!1})),super.performUpdate()}_getIcon(t){return t.invalid?e.html`<div class="circle invalid"><gv-icon shape="code:error"></gv-icon></div>`:t.valid?e.html`<div class="circle"><gv-icon shape="code:check"></gv-icon></div>`:e.html`<div class="round"></div>`}_getStep(t,i){const s={passed:t.passed,valid:t.valid,step:!0,first:0===i,end:i===this._steps.length-1},a={content:!0,link:!this.disabled};return e.html`<div class="${(0,r.classMap)(s)}" @click="${this._onClick.bind(this,i)}" title="${t.title}"><div class="graph"><div class="border"></div>${this._getIcon(t)}<div class="border"></div></div><div class="${(0,r.classMap)(a)}"><div class="title">${t.title}</div><div class="description">${t.description}</div></div></div>`}render(){if(this._error)return e.html`<div class="error">${(0,a.i18n)("gv-stepper.error")}</div>`;if(this._empty)return e.html`<div></div>`;const i={stepper:!0,disabled:this.disabled};return e.html`<div class="${(0,r.classMap)(i)}">${(0,t.repeat)(this._steps,(e=>e),((e,t)=>this._getStep(e,t)))}</div>`}}exports.GvStepper=d,window.customElements.define("gv-stepper",d);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvTable=void 0;const t=require("lit"),e=require("../styles/skeleton"),i=require("../styles/empty"),s=require("../styles/link"),r=require("lit/directives/class-map"),o=require("lit/directives/repeat"),n=require("../lib/events"),a=require("../lib/i18n"),l=require("lit/directives/until"),h=require("lit/directives/style-map"),d=require("../mixins/with-resize-observer"),g=require("lit/directives/if-defined");require("../atoms/gv-image"),require("../organisms/gv-pagination");const c=require("../lib/style");class p extends((0,d.withResizeObserver)(t.LitElement)){static get properties(){return{items:{type:Array},title:{type:String},order:{type:String},options:{type:Array},noheader:{type:Boolean},nosort:{type:Boolean},rowsheight:{type:String},rowheight:{type:String},emptymessage:{type:String},format:{type:Function},compareFn:{type:Function},selected:{type:Array,reflect:!0},total:{type:String},skeleton:{type:Boolean},_items:{type:Array,attribute:!1},_skeleton:{type:Boolean,attribute:!1},_error:{type:Boolean,attribute:!1},_empty:{type:Boolean,attribute:!1},_itemsProvider:{type:Array,attribute:!1},_page:{type:Number,attribute:!1}}}static get styles(){return[s.link,e.skeleton,i.empty,t.css`:host{--selected--bgc:var(--gv-table-selected--bgc, var(--gv-theme-color, #5a7684));--hover-bgc:var(--gv-table-hover--bgc, var(--gv-theme-neutral-color-lighter, #fafafa));--bgc:var(--gv-table--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));--bdc:var(--gv-table--bdc, var(--gv-theme-neutral-color-dark, #d9d9d9));display:block;height:100%;margin:.2rem;box-sizing:border-box}.table{background-color:var(--bgc);flex-direction:column;height:100%;display:flex;width:100%}.rows{-ms-overflow-style:none;scrollbar-width:none;overflow:var(--gv-table-rows--ov,auto);flex:1;height:100%;transition:height 250ms ease-in-out}.rows::-webkit-scrollbar{display:none}:host([w-lt-768]) .row{height:70px}:host([w-lt-580]) .row{height:60px}:host([w-lt-400]) .row{height:50px}.theader{background-color:var(--gv-theme-neutral-color-lighter);font-weight:700;padding:0 .2rem}.row,.theader{align-items:var(--gv-table-row--ai,center);align-content:var(--gv-table-row--ac,center);border-right:solid thick transparent;display:grid}div{box-sizing:border-box}.cell{height:100%;display:var(--gv-table-cell--d,flex);align-items:center}.row:not(:last-child){box-shadow:0 5px 3px -6px var(--bdc)}.row.selected,.row:hover{background-color:var(--hover-bgc)}.row.selected{border-color:var(--selected--bgc);box-sizing:border-box}.header{border-bottom:1px solid var(--bdc);padding:var(--gv-table-header--p,2rem 4rem)}.title{margin:0;text-transform:uppercase;font-size:var(--gv-table-header--fz,var(--gv-theme-font-size-l,20px));line-height:var(--gv-table-header--fz,var(--gv-theme-font-size-l,20px));opacity:.6}.title span{font-weight:600;font-size:var(--gv-theme-font-size-s);line-height:var(--gv-theme-font-size-s);margin-left:8px;opacity:.7}gv-identity-picture{height:35px;width:35px;--gv-image--of:contain;margin-left:20px}gv-icon{transform:rotate(0);--gv-icon--s:18px}gv-icon.desc{transform:rotate(180deg)}gv-pagination{align-self:flex-end}.cell>:not(gv-tag){margin:auto;width:100%}`]}constructor(){super(),this._id=(new Date).getTime(),this.breakpoints={width:[400,580,768]},this._empty=!1,this.order="",this._page=1,this._itemsProvider=[],this.selected=[],this.compareFn=(t,e,i)=>{const s=this._getDataFromField(t,i)&&this._getDataFromField(t,i).toLowerCase?this._getDataFromField(t,i).toLowerCase():"",r=this._getDataFromField(e,i)&&this._getDataFromField(e,i).toLowerCase?this._getDataFromField(e,i).toLowerCase():"";return this.order.startsWith("-")?r.localeCompare(s):s.localeCompare(r)},this.addEventListener("gv-pagination:paginate",(t=>{this._page=t.detail.page}))}set items(t){this._skeleton=!0,Promise.resolve(t).then((t=>{t&&(this._itemsProvider=t.map(((t,e)=>(t._id=null==t.id?e:t.id,t))),this._onSortChanged(),this._empty=0===this._itemsProvider.length,this._skeleton=!1)})).catch((t=>{console.error(t),this._error=!0,this._skeleton=!1,this._itemsProvider=[]}))}get items(){return this._itemsProvider}_onSortChanged(t,e){if(e&&e.preventDefault(),this._itemsProvider&&this.order){const e=this.order.startsWith("-"),i=e?this.order.substring(1):this.order,s=t||i;t&&(this.order=i===s?e?s:"-"+s:s),this._itemsProvider=this._itemsProvider.sort(((t,e)=>this.compareFn(t,e,s))),t&&(0,n.dispatchCustomEvent)(this,"sort",{order:this.order})}}get _items(){if(this._itemsProvider){if(this.options&&this.options.paging&&this.options.paging<this._itemsProvider.length){const t=(this._page-1)*this.options.paging;return[...this._itemsProvider].splice(t,this.options.paging)}return this._itemsProvider}return[]}_getItemId(t){return null==t.id?t._id:t.id}_onSelect(t,e){if(!this._skeleton&&!e.target.dataset.preventSelect)if(this.options.selectable){const e=this._getItemId(t);this._isSelected(t)?this.selected=this.selected.filter((t=>e!==t)):"multi"===this.options.selectable?this.selected=[...this.selected,e]:this.selected=[e],(0,n.dispatchCustomEvent)(this,"select",{items:this.selectedItems,options:this.options})}else(0,n.dispatchCustomEvent)(this,"select",{items:[t]})}get selectedItems(){return this.selected&&this._itemsProvider?this._itemsProvider.filter((t=>this.selected&&this.selected.includes(this._getItemId(t)))):[]}_onMouseEnter(t){this.selected&&this.selected.length>0||this._skeleton||(0,n.dispatchCustomEvent)(this,"mouseenter",{item:t})}_onMouseLeave(){this.selected&&this.selected.length>0||this._skeleton||(0,n.dispatchCustomEvent)(this,"mouseleave")}_renderHeader(e){if(this.noheader)return"";{const i={...e,height:this.rowheight,"grid-auto-rows":this.rowheight?null:"minmax(80px, auto)"};return t.html`<div class="${(0,r.classMap)({theader:!0})}" style="${(0,h.styleMap)(i)}">${this.options&&this.options.data&&this._items&&this._items.length?(0,o.repeat)(this.options.data,(t=>t),(e=>{const i=this.order&&this.order.startsWith("-")?this.order.substring(1):this.order,s=this.format&&e.label?this.format(e.label):e.label,o="function"==typeof e.headerStyle?e.headerStyle(s):e.headerStyle;return t.html`<div style="${o||""}">${this.order&&!this.nosort?t.html`<gv-button link @click="${this._onSortChanged.bind(this,e.field||e.tag)}">${(0,l.until)(s)}</gv-button>${i===e.tag||i===e.field&&"image"!==e.type?t.html`<gv-icon class="${(0,r.classMap)({desc:this.order.startsWith("-")})}" shape="design:triangle"></gv-icon>`:""}`:(0,l.until)(s)}</div>`})):""}</div>`}}_renderIcon(e,i,s){const r="function"==typeof s.icon?s.icon(e):s.icon,o="function"==typeof s.iconTitle?s.iconTitle(e):s.iconTitle;return r?t.html`<gv-icon shape="${r}" title="${o}"></gv-icon>`:""}_renderComponent(t,e,i,s,r){if(i.condition&&!i.condition(t))return"";const o=document.createElement(r);o.value=s,i.attributes&&Object.keys(i.attributes).forEach((e=>{if(e.startsWith("on")){const s=e.replace("on","").toLowerCase();"click"===s&&o.classList.add("link"),o.dataset.preventSelect=!0,o.addEventListener(s,(s=>{s.stopPropagation();null==("function"==typeof i.confirm?i.confirm(t):i.confirm)&&setTimeout((()=>{i.attributes[e](t,s,o,this)}),0)}))}else if("function"==typeof i.attributes[e]){const s=i.attributes[e](t);null!=s&&(o[e]=s)}else this.format&&"string"==typeof i.attributes[e]?this.format(i.attributes[e]).then((t=>{o[e]=t})):o[e]=i.attributes[e]})),o.addEventListener("input",(t=>{this._items[e][i.field]=t.target.value}));const n="function"==typeof i.confirm?i.confirm(t):i.confirm;if(n){const e=document.createElement("gv-confirm");return this.format?this.format(n.msg).then((t=>e.message=t)):e.message=n.msg,n.danger&&(e.danger=!0),e.addEventListener("click",(t=>t.stopPropagation())),e.addEventListener("gv-confirm:ok",(e=>{e.stopPropagation(),i.attributes.onClick(t,e,o)})),e.appendChild(o),e}return o}_renderCell(t,e,i,s){if(e.type){if("image"===e.type){let s="";return e.alt&&(s="function"==typeof e.alt?e.alt(i):this._getDataFromField(i,e.alt)),this._renderImage(t,s)}if("function"==typeof e.type)return this._renderComponent(i,s,e,t,e.type(i));if(e.type.startsWith("gv-"))return this._renderComponent(i,s,e,t,e.type)}return(0,l.until)(t)}_getFormattedCellValue(t,e){let i=t.field?this._getDataFromField(e,t.field):"";return i&&("date"===t.type?i=new Date(i).toLocaleDateString((0,a.getLanguage)()):"datetime"===t.type?i=new Date(i).toLocaleString((0,a.getLanguage)()):"time"===t.type&&(i=new Date(i).toLocaleTimeString((0,a.getLanguage)()))),t.format&&(i=t.format(i)),i}_isSelected(t){return this.selected&&this.selected.includes(this._getItemId(t))}_renderRows(e){return t.html`<div class="rows" style="${(0,h.styleMap)({height:this.rowsheight,"user-select":this.options.selectable?"none":""})}" @mouseleave="${this._onMouseLeave.bind(this)}">${this._items&&this._items.length?(0,o.repeat)(this._items,(t=>t),((i,s)=>t.html`<div class="${(0,r.classMap)({row:!0,skeleton:this._skeleton,selected:this._isSelected(i)})}" style="${(0,h.styleMap)({...e,height:this.rowheight,"grid-auto-rows":this.rowheight?null:"minmax(80px, auto)",cursor:this.options.selectable?"pointer":"","border-color":this.options.selectable&&this._isSelected(i)?"var(--selected--bgc)":"","column-gap":"var(--gv-table--colmg, 0.2rem)"})}" @click="${this._onSelect.bind(this,i)}" @mouseenter="${this._onMouseEnter.bind(this,i)}">${this.options&&this.options.data?(0,o.repeat)(this.options.data,(t=>t),(e=>{const r="function"==typeof e.style?e.style(i):e.style,o=this._getFormattedCellValue(e,i);return t.html`<div class="cell" style="${(0,g.ifDefined)(r)}" title="${o}">${this._renderCell(o,e,i,s)}${this._renderTag(e,i)}${e.icon?this._renderIcon(i,s,e):""}</div>`})):""}</div>`)):""}</div>`}_renderItems(){let e=this.options.data.map((t=>t.width?t.width:"image"===t.type?"80px":"icon"===t.type?"40px":null));const i=e.filter((t=>null!==t)),s=i.reduce(((t,e)=>t+parseInt(e.replace("px",""),10)),0);e=e.map((t=>{if(null==t){const t=(0,c.getCssVar)(this,"--gv-table--colmg","0.2rem");return`calc((100% - ( ${s}px + ${this.options.data.length-1} * ${t} ) ) / ${this.options.data.length-i.length})`}return t}));const r={"grid-template-columns":e.join(" ")};return t.html`${this._renderHeader(r)} ${this._renderRows(r)} ${this._renderPagination()}`}_renderPagination(){if(this.options&&this.options.paging&&this._itemsProvider){const e={first:1,last:this._itemsProvider.length/this.options.paging,total:this._itemsProvider.length,current_page:this._page,total_pages:this._itemsProvider.length/this.options.paging};return t.html`<gv-pagination .data="${e}" widget="true"></gv-pagination>`}}_getDataFromField(t,e){return"function"==typeof e?e(t):e.split(".").reduce(((t,e)=>t&&t[e]),t)}_renderTag(e,i){if(e.tag){let s;if(s="function"==typeof e.tag?e.tag(i):e.format?e.format(this._getDataFromField(i,e.tag)):this._getDataFromField(i,e.tag),s)return t.html`<gv-tag ?skeleton="${this._skeleton}">${s}</gv-tag>`}return""}_onImageLoaded(){this._skeleton=!1}_renderImage(e,i){return t.html`<gv-identity-picture .picture="${e}" .display_name="${i}"></gv-identity-picture>`}updated(t){this._onSortChanged()}render(){if(this._error)return t.html`<div class="error">${(0,a.i18n)("gv-table.error")}</div>`;const e={table:!0,skeleton:this._skeleton||this.skeleton},i={height:this.rowsheight?this.rowsheight:""};return t.html`<div class="${(0,r.classMap)(e)}" style="${(0,h.styleMap)({display:this.rowsheight?"block":"flex"})}">${this.title?t.html`<div class="header"><h3 class="title">${this.title} ${this._empty?"":t.html`<span>(${this.total||this._items&&this._items.length})</span>`}</h3></div>`:""} ${!this._empty&&this.options&&this.options.data?this._renderItems():t.html`<div class="empty" style="${(0,h.styleMap)(i)}">${this.emptymessage?this.emptymessage:(0,a.i18n)("gv-table.empty")}</div>`}</div>`}}exports.GvTable=p,window.customElements.define("gv-table",p);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvTree=void 0;const e=require("lit"),t=require("lit/directives/repeat");require("../atoms/gv-button"),require("../atoms/gv-icon");const r=require("../lib/events"),i=require("lit/directives/class-map");class o extends e.LitElement{static get properties(){return{items:{type:Array},closed:{type:Boolean,reflect:!0},selectedItem:{type:Object}}}static get styles(){return[e.css`:host{--c:var(--gv-tree--c, var(--gv-theme-font-color-dark, #262626));--bgc:var(--gv-tree--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));--active-bdc:var(--gv-tree-active--bdc, var(--gv-theme-color, #5a7684));--active-bgc:var(--gv-tree-active--bgc, var(--gv-theme-neutral-color-dark, #d9d9d9));--gv-icon--s:var(--gv-tree-icon--s, 20px);--gv-icon--c:var(--c);background-color:var(--bgc);color:var(--c);display:flex;flex-direction:row;height:100%}.tree{padding-top:10px;transition:all 350ms ease-in-out;width:300px}.tree.closed{width:42px}.main-tree-menu{user-select:none;overflow-y:auto;overflow-x:hidden;height:calc(100% - 20px);direction:rtl}.main-tree-menu>ul{position:relative}ul{display:block;line-height:2;list-style:none;margin:0;padding:0}ul li{display:block;padding:.5em .5em .5em 1em}ul li ul{margin-bottom:-.5em;margin-top:.5em}ul li:hover:not(.folder):not(.selected)>label::before{border-right-width:4px;border-right-style:solid;border-right-color:var(--active-bgc);box-sizing:border-box}ul label{cursor:pointer;display:flex;flex-direction:row;justify-content:space-between;align-items:center;direction:ltr}ul label::before{-moz-box-sizing:border-box;box-sizing:border-box;content:'';height:3em;left:0;position:absolute;right:0}.selected>label::before{border-right-width:4px;border-right-style:solid;border-right-color:var(--active-bdc);box-sizing:border-box}.folder>label{font-weight:700}.tree-arrow{transform:rotate(90deg);cursor:pointer;opacity:.5;width:20px;height:20px}.closed .tree-arrow{transform:rotate(0)}.closed .tree-menu{height:0;transition:height .8s;display:none}.switch{cursor:pointer;opacity:.7;position:sticky;margin:0 11px 0 11px;display:flex;justify-content:flex-end}`]}constructor(){super(),this.closed=!1}_onSelect(e,t){t.stopPropagation(),this.selectedItem=e,(0,r.dispatchCustomEvent)(this,"select",e)}_onClick(e,t){t&&t.stopPropagation(),e.expanded=!e.expanded,this.requestUpdate()}_getMenuItemPage(t){return e.html`<label @click="${this._onSelect.bind(this,t)}">${t.name}</label>`}_getMenuItemFolder(t){return e.html`<label @click="${this._onClick.bind(this,t)}" class="${(0,i.classMap)({closed:!t.expanded})}">${t.name}<gv-icon class="tree-arrow" shape="code:right-circle"></gv-icon></label> <span class="${(0,i.classMap)({closed:!t.expanded})}">${this._getMenu(t.children)}</span>`}_getMenu(r){return r?e.html`<ul class="${(0,i.classMap)({"tree-menu":!0,closed:this.closed})}">${(0,t.repeat)(r,(e=>this._getMenuItem(e)))}</ul>`:""}_getMenuItem(t){return e.html`${t.children&&t.children.length>0?e.html`<li class="tree-menu__item folder">${this._getMenuItemFolder(t)}</li>`:e.html`<li class="tree-menu__item page ${t===this.selectedItem?"selected":""}">${this._getMenuItemPage(t)}</li>`}`}_toggleMenu(){this.closed=!this.closed,(0,r.dispatchCustomEvent)(this,"toggle",{closed:this.closed})}render(){const t={tree:!0,closed:this.closed};return e.html`<div class="${(0,i.classMap)(t)}"><div class="switch"><gv-icon shape="${this.closed?"text:menu":"navigation:angle-double-left"}" @click="${this._toggleMenu}"></gv-icon></div>${e.html`<div class="main-tree-menu">${this._getMenu(this.items)}</div>`}</div>`}}exports.GvTree=o,window.customElements.define("gv-tree",o);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvDocumentation=void 0;const e=require("lit"),t=require("../lib/events"),i=require("../lib/text-format"),o=require("../styles/empty"),s=require("lit/directives/class-map");class n extends e.LitElement{static get properties(){return{text:{type:String},type:{type:String},image:{type:String},_dom:{type:Object,attribute:!1},disabled:{type:Boolean},withoutHeader:{type:Boolean,attribute:"without-header"},_cssLoaded:{type:Boolean,attribute:!1}}}static get styles(){return[o.empty,e.css`:host{box-sizing:border-box;position:relative}.header{display:flex;border-bottom:1px solid #d9d9d9;box-sizing:border-box;min-height:45px;--gv-icon--s:26px;align-items:center;padding:0 1rem;position:relative}.header .left,.header .right{display:flex;flex:1;z-index:10}.header .right{justify-content:flex-end}.header .title{color:#28444f;font-size:18px;display:flex;position:absolute;text-transform:uppercase;letter-spacing:.2rem;justify-content:center;width:100%;top:0;left:0;bottom:0;align-items:center;text-transform:capitalize}.header gv-image{height:35px;width:35px}.container{flex-grow:1;display:flex;flex-direction:column;min-height:0;height:100%}.doc-content{background:#fff;display:none;flex-grow:1;overflow:auto;min-height:0;padding:.5rem}.hljs-string{white-space:pre-wrap}.empty{display:none}.show{display:block}`]}constructor(){super(),this.type="adoc"}_onCloseDocumentation(){(0,t.dispatchCustomEvent)(this,"close")}_renderIcon(){return this.image?e.html`<gv-image src="${this.image}"></gv-image>`:e.html`<gv-icon shape="code:question"></gv-icon>`}shouldUpdate(e){return e.has("text")?((0,i.toDom)(this.text,this.type,!0).then((e=>{if(this._dom=e,this._dom){const e=this._dom.element.querySelector("h1");e&&!this.withoutHeader&&e.remove(),this._dom.element.querySelectorAll("a").forEach((e=>e.target="_blank"))}})),!1):super.shouldUpdate(e)}_onLoad(){this._cssLoaded=!0}render(){let t,i="";return this._dom&&(i=this._dom.title,t=this._dom.element),e.html`<link @load="${this._onLoad}" rel="stylesheet" href="css/documentation.css"><div class="container">${this.withoutHeader?e.html``:e.html`<div class="header"><div class="left">${this.disabled?e.html``:e.html`<gv-button icon="general:close" outlined small @gv-button:click="${this._onCloseDocumentation}" title="Close"></gv-button>`}</div><div class="title">${i}</div><div class="right">${this._renderIcon()}</div></div>`}<div class="${(0,s.classMap)({"doc-content":!0,show:this._cssLoaded})}">${t}<slot name="empty" class="${(0,s.classMap)({empty:!0,show:null==t})}"><div>Sorry,the documentation was not found.</div><div>See the documentation about plugins.</div></slot></div></div>`}}exports.GvDocumentation=n,window.customElements.define("gv-documentation",n);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvHeader=void 0;const e=require("lit");require("../atoms/gv-button"),require("../atoms/gv-tag");const t=require("../lib/i18n"),i=require("../lib/utils"),r=require("lit/directives/repeat"),s=require("lit/directives/until"),n=require("../lib/events"),a=require("lit/directives/class-map"),l=require("../mixins/with-resize-observer"),o=require("../mixins/item-resource"),c=require("../lib/item"),h=require("lit/directives/style-map");class v extends((0,l.withResizeObserver)((0,o.ItemResource)(e.LitElement))){static get properties(){return{breadcrumbs:{type:Array},sticky:{type:Boolean,reflect:!0},_breadcrumbs:{type:Array,attribute:!1},canSubscribe:{type:Boolean,attribute:"can-subscribe"}}}static get styles(){return[...super.styles,e.css`:host{--img-w:120px;--img-h:120px;--gv-button--fz:var(--gv-header-button--fz, var(--gv-theme-font-size-l, 16px));--gv-button--p:var(--gv-header-button--p, 10px 24px);--gv-link--bgc:transparent;--gv-link-active-bgc:transparent;--c:var(--gv-header--c, var(--gv-theme-font-color-dark, #262626));--gv-link--c:var(--c);--gv-link-active--c:var(--c);--gv-link-a--ph:5px;--gv-link--td:underline;--bgc:var(--gv-header--bgc, var(--gv-theme-color-light, #86c3d0));box-sizing:border-box;display:block}:host([w-lt-768]){--img--w:calc(var(--img-w) / 2);--img--h:calc(var(--img-h) / 2);--gv-button--fz:var(--gv-theme-font-size-s, 12px);font-size:var(--gv-theme-font-size-s,12px)}:host([w-lt-580]){--gv-button--p:3px 9px;--gv-link-a--ph:0px}:host([w-lt-580]) .actions{display:flex;flex-direction:column}:host([w-lt-580]) .version{font-size:var(--gv-theme-font-size-s,12px);line-height:var(--gv-theme-font-size-s,12px)}:host([w-lt-580]) .image gv-image{top:-5px}:host([w-lt-580]) h1{font-size:calc(var(--gv-theme-font-size-xl,26px) - 4px);line-height:calc(var(--gv-theme-font-size-xl,26px) - 4px)}:host([w-lt-400]) h1{font-size:calc(var(--gv-theme-font-size-xl,26px) - 8px)}.header{display:flex;background-color:var(--bgc);flex-direction:row;color:var(--c);transition:all 350ms ease-in-out;padding:.5rem var(--gv-theme-layout--pr,4rem) .5rem var(--gv-theme-layout--pl,4rem);position:relative}.title{flex:1;margin:.5rem 0 .5rem var(--img-w);padding-left:2rem}:host([sticky]) .title{margin-left:calc(var(--img-w)/ 2);transition:all 250ms ease-in-out}.actions,.title{align-self:flex-end}gv-link:last-child{--gv-link--td:none}gv-link::after{content:'>';color:var(--gv-theme-font-color-dark,#262626);align-self:center}gv-link:last-child::after{content:''}.error{text-align:center;margin-right:125px}.version{letter-spacing:.05em;opacity:.5;font-size:var(--gv-theme-font-size-l,16px);line-height:var(--gv-theme-font-size-l,16px);font-weight:500}gv-identity-picture{height:var(--img-h);width:var(--img-w);position:absolute;--gv-image--of:contain;transition:all 150ms ease-in-out}:host([sticky]) gv-identity-picture{height:calc(var(--img-h)/ 2);width:calc(var(--img-w)/ 2);transition:all 150ms ease;top:20%}h1{margin:0;font-size:var(--gv-theme-font-size-xl,26px);font-weight:500;line-height:var(--gv-theme-font-size-xl,26px);letter-spacing:.05em}h1 span{opacity:.5;font-size:var(--gv-theme-font-size-l,16px)}.skeleton .error,.skeleton gv-button{visibility:hidden}`]}constructor(){super(),this.breakpoints={width:[400,580,768]},this._breadcrumbs=[],this.canSubscribe=!1}set breadcrumbs(e){e?Promise.resolve(e).then((e=>{e?Promise.all(e).then((e=>{(0,i.isSameRoutes)(this._breadcrumbs,e)||(this._breadcrumbs=e.filter((e=>null!=e)))})):this._breadcrumbs=null})):this._breadcrumbs=null}_getLink(t,i){return Promise.resolve(t).then((t=>{const r=i===this._breadcrumbs.length-1?(0,c.getTitle)(this._item):t.title;return e.html`<gv-link @gv-link:click="${this._onClick}" .active="${t.active}" .icon="${t.icon}" .path="${t.path}" .title="${r}" .help="${(0,s.until)(t.help,null)}"></gv-link>`})).catch((()=>{delete this._routes[i]}))}_renderBreadcrumbs(){return e.html`<nav>${(0,r.repeat)(this._breadcrumbs,(e=>e),((t,i)=>(0,s.until)(this._getLink(t,i),e.html`<gv-link skeleton></gv-link>`)))}</nav>`}_onSubscribe(e){e.stopPropagation(),(0,n.dispatchCustomEvent)(this,"subscribe",this._item)}render(){const i=(0,c.getNbApisInView)(this._item);return e.html`<div class="${(0,a.classMap)({header:!0,skeleton:this._skeleton})}" style="${(0,h.styleMap)({background:'url("'+(0,c.getBackground)(this._item)+'") var(--bgc) center center no-repeat'})}">${this._renderImage()}<div class="title">${this._error||this._empty||this.sticky?"":e.html`<div class="version">${(0,c.getVersion)(this._item)}</div>`} ${this._error||this._empty?e.html`<div class="error">${this._error?(0,t.i18n)("gv-header.error"):(0,t.i18n)("gv-header.empty")}</div>`:e.html`<h1>${(0,c.getTitle)(this._item)} ${null!==i?e.html`<span>(${i})</span>`:""}</h1>`}</div>${this._error||this._empty||!this.canSubscribe?"":e.html`<div class="actions"><gv-button primary @click="${this._onSubscribe}">${(0,t.i18n)("gv-header.subscribe")}</gv-button></div>`}</div>`}}exports.GvHeader=v,window.customElements.define("gv-header",v);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvHttpClient=void 0;const e=require("lit");require("./gv-schema-form"),require("./gv-resizable-views"),require("./gv-documentation"),require("../molecules/gv-table"),require("../atoms/gv-button"),require("../molecules/gv-option"),require("../atoms/gv-switch"),require("../atoms/gv-icon");const s=require("../mixins/keyboard-element"),t=require("../styles/empty"),i=require("../lib/http-client-schema-form"),o=require("../lib/events"),r=require("../lib/http"),n=require("lit-html/directives/repeat");class d extends((0,s.KeyboardElement)(e.LitElement)){static get properties(){return{response:{type:Object},path:{type:String},method:{type:String},loading:{type:Boolean}}}constructor(){super(),this.response=void 0,this.loading=!1,this.path=void 0,this.method=void 0,this.request={method:"GET",path:"/"}}_sendRequest(){(0,o.dispatchCustomEvent)(this,"send",{request:this.request})}_updateRequest(e){this.isFormValid=e.detail.validation.valid,this.request=e.detail.values,this.requestUpdate()}render(){return e.html`<div class="container"><div class="request"><div class="top-bar">Request</div><div class="request-form"><gv-schema-form .schema="${i.httpClientSchemaForm}" id="request-form" @gv-schema-form:change="${this._updateRequest}"></gv-schema-form><gv-button class="request-form-button" icon-right="content:send" .disabled="${!1===this.isFormValid||!0===this.loading}" @gv-button:click="${this._sendRequest}">Send</gv-button></div></div><div class="response">${this.loading||this.response?"":this._renderEmptyResponse()} ${this.loading?this._renderLoading():""} ${this.response?this._renderDebugResponse():""}</div></div>`}_renderEmptyResponse(){return e.html`<div class="empty-response"><gv-icon class="empty-response-icon" shape="editor:format_align_left"></gv-icon><div>Define and run the request you want to test!</div></div>`}_renderLoading(){return e.html`<div class="loading"><gv-icon class="loading-icon" shape="communication:sending"></gv-icon><div>Request in progress!</div></div>`}_renderDebugResponse(){let s=this.response.body,t="text";if(this.response.headers){const e=Object.entries(this.response.headers).find((([e,s])=>"content-type"===e.toLowerCase())),i=e?e[1].split(";")[0]:void 0;"text/html"===i?(t="htmlmixed",s=this.response.body):"application/json"===i&&(t="application/json",s=JSON.stringify(JSON.parse(this.response.body),null,2))}const i={lineNumbers:!0,mode:t};return e.html`${this._renderResponseHeader()}<div class="response-headers">Headers</div><div class="response-headers-content">${(0,n.repeat)(Object.keys(this.response.headers),(s=>e.html`<div><code>${s}: ${this.response.headers[s]}</code></div>`))}</div><div class="response-body">Body</div><div class="code-container"><gv-code .value="${s}" .options="${i}" readonly="readonly"></gv-code></div>`}_renderResponseHeader(){const s=200<=this.response.statusCode&&this.response.statusCode<300,t=400<=this.response.statusCode&&this.response.statusCode<600;return e.html`<div class="top-bar"><div class="response-row-item">Response</div>${this.method?e.html`<div class="response-row-item-method">${this.method}</div>`:""} ${this.path?e.html`<div class="response-row-item">${this.path}</div>`:""} ${this.response.statusCode?e.html`<div class="response-row-item"><gv-state ?success="${s}" ?error="${t}">${this.response.statusCode} - ${r.statusCode[this.response.statusCode].description}</gv-state></div>`:""}</div>`}static get styles(){return[t.empty,e.css`:host{box-sizing:border-box;height:100%;width:100%;display:block}.container{display:flex;flex-direction:row;height:100%}.request{width:40%;height:100%}.request-form{padding:8px;display:flex;flex-direction:column}.request-form-button{margin-top:16px}.response{border-left:1px solid #d9d9d9;border-right:1px solid #d9d9d9;height:100%;width:60%;overflow:hidden}.top-bar{background-color:#f5f5f5}.response-row-item{margin-right:16px}.response-row-item-method{margin-right:4px;font-weight:700}.response-body,.response-headers,.status-code,.top-bar{font-size:16px;height:40px;display:flex;flex-direction:row;align-items:center;padding:0 16px;border-bottom:1px solid #d9d9d9}.response-headers-content{padding:16px;border-bottom:1px solid #d9d9d9;max-height:40%}.empty-response,.loading{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;font-size:16px}.empty-response-icon,.loading-icon{--gv-icon--s:128px;--gv-icon--c:var(--gv-theme-color-dark)}.code-container{height:100%;overflow:auto}`]}}exports.GvHttpClient=d,window.customElements.define("gv-http-client",d);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvMenu=void 0;const t=require("lit");require("../molecules/gv-nav");const e=require("../lib/utils"),i=require("lit/directives/class-map"),s=require("../mixins/with-resize-observer");class r extends((0,s.withResizeObserver)(t.LitElement)){static get properties(){return{routes:{type:Array},sticky:{type:Boolean,reflect:!0},_small:{type:Boolean,attribute:!1},_routes:{type:Array,attribute:!1},_hasHeader:{type:Boolean,attribute:!1}}}static get styles(){return[t.css`:host{--gv-link--c:var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));--gv-link-active--c:var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));--gv-link--bgc:var(--gv-menu-link--bgc, transparent);--gv-link-active--bgc:var(--gv-menu-link-active--bgc, transparent);--gv-link-active--bdc:var(--gv-menu-link-active--bdc, var(--gv-theme-color-light, #86c3d0));--gv-link-active--bds:var(--gv-menu-link-active--bds, solid);--gv-link-active--bdw:var(--gv-menu-link-active--bdw, 0 0 3px 0);--pr:var(--gv-theme-layout--pr, 4rem);--pl:var(--gv-theme-layout--pl, 4rem);box-sizing:border-box;display:block;font-size:var(--gv-theme-font-size-s,12px)}:host([sticky]) gv-nav{line-height:14px;--gv-link-icon--s:20px}:host([sticky]) .has-header gv-nav{line-height:34px}:host([sticky]) ::slotted([slot=top]){transition:height 250ms ease-in-out}:host([w-lt-1024]){--pr:5px;--pl:5px}:host([w-lt-768]) .nav-container{width:100%;padding-left:var(--pl);--gv-link-a--pv:var(--gv-menu-link-a--pv, 0px)}:host([w-lt-580]) .nav-container{flex:auto;padding-left:0}:host([w-lt-580]) gv-nav{flex:auto}:host([w-lt-580]) .right{flex:auto}:host([w-lt-380]) .nav-container{display:flex;flex-direction:column-reverse}:host([w-lt-380]) gv-nav{align-self:flex-start;flex:1}:host([w-lt-380]) .right{align-self:flex-end;flex:1;width:100%;padding-right:0}gv-nav{display:table-cell;line-height:50px;vertical-align:middle}.nav-container{display:grid;grid-template-columns:auto auto;background-color:var(--gv-menu--bgc,var(--gv-theme-color-dark,#28444f));color:var(--gv-menu--c,var(--gv-theme-font-color-light,#fff))}.has-header .nav-container{width:calc(100% - 10rem);padding-left:10rem;--gv-link-a--pv:0}:host([sticky]) .has-header .nav-container{width:calc(100% - 5rem);padding-left:5rem;transition:all 250ms ease-in-out}.right{display:flex;padding-right:var(--pr);justify-content:center;flex-direction:column}gv-nav{padding-left:var(--pl);transition:width 250ms ease-in-out}slot[name=right-transition],slot[name=right]{display:flex;justify-content:flex-end;width:100%}.right ::slotted([slot=right-transition]),.right ::slotted([slot=right]){align-self:center}.right ::slotted([slot=right-transition]){transition:width 250ms ease 250ms;width:70%}.right:focus-within ::slotted([slot=right-transition]){animation:slide 250ms 250ms;transition:width 250ms ease-in-out 250ms;width:100%}.right ::slotted([slot=right]){--gv-button--p:7px 16px;--gv-button--fz:15px}`]}constructor(){super(),this._routes=[],this.sticky=!1,this.breakpoints={width:[380,580,768,1024]}}set routes(t){t?Promise.resolve(t).then((t=>{t?Promise.all(t).then((t=>{(0,e.isSameRoutes)(this._routes,t)||(this._routes=t)})):this._routes=[]})):this._routes=[]}onResize({width:t}){this._small=t<=1024}render(){return t.html`<div class="${(0,i.classMap)({"has-header":this._hasHeader})}"><slot name="top"></slot><div class="nav-container"><gv-nav .routes="${this._routes}" ?small="${this._small}"></gv-nav><div class="right"><slot name="right-transition"></slot><slot name="right"></slot></div></div></div>`}updated(t){super.updated(t);let e=!1;for(const t of this.childNodes)if(1===t.nodeType){const i="gv-header"===t.nodeName.toLowerCase()?t:t.querySelector("gv-header");if(i){i.sticky=this.sticky,e=!0;break}}this._hasHeader=e}}exports.GvMenu=r,window.customElements.define("gv-menu",r);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvNewsletterSubscription=void 0;const t=require("lit"),e=require("../lib/events");class i extends t.LitElement{static get properties(){return{title:{type:String},header:{type:String},placeholder:{type:String},subscribeLabel:{type:String,attribute:"subscribe-label"},skipLabel:{type:String,attribute:"skip-label"},taglines:{type:Array},email:{type:String},disabled:{type:Boolean},githubUrl:{type:String,attribute:"github-url"},twitterUrl:{type:String,attribute:"twitter-url"},linkedinUrl:{type:String,attribute:"linkedin-url"},_invalid:{type:Boolean,attribute:!1}}}static get styles(){return[t.css`:host{box-sizing:border-box;margin:.2rem}.newsletter-container{display:flex;flex-direction:column;align-items:center;justify-content:space-between;max-width:680px;box-shadow:0 0 20px 0 rgba(0,0,0,.2),0 5px 5px 0 rgba(0,0,0,.24);padding:25px 20px 5px 20px}.newsletter__header{text-transform:uppercase;font-style:oblique;text-align:center;font-size:16px;font-weight:700;padding:5px 35px;color:var(--gv-theme-neutral-color-lightest,#fff);background-color:var(--gv-theme-color-light,#86c3d0)}.newsletter__title{display:flex;flex-direction:column;align-items:center;font-size:20px;text-transform:uppercase;padding:20px;color:var(--gv-theme-color-light,#86c3d0)}.newsletter__title-highlight{font-size:30px}.newsletter__email{display:flex;flex-direction:column;width:50%}.newsletter__taglines{display:flex;flex-direction:row;justify-content:space-between;align-items:center;text-align:center;text-transform:uppercase;font-size:14px;height:20%;margin-top:20px;padding:10px 0;color:var(--gv-theme-color-darker,#383e3f);border-bottom:solid 1px var(--gv-theme-color-darker,#383e3f)}.newsletter__tagline{display:flex;flex-basis:100%;flex-direction:column;justify-content:center;align-items:center;height:100%;font-weight:700;padding:0 15px;border-right:solid 1px var(--gv-theme-color-darker,#383e3f)}.newsletter__tagline.last{border-right:none}.newsletter__tagline-text{width:100%}.newsletter__skip{margin-top:20px}.social{width:100%;display:flex;flex-direction:row;justify-content:flex-end}.social-link{--gv-icon--c:var(--gv-theme-color-light, #86c3d0);--gv-icon--s:32px}`]}constructor(){super(),this.header="Customers process over 1 billion requests through the gravitee.io gateway in just one week",this.title="Community of api masters",this.placeholder="Enter your email",this.subscribeLabel="Become an API master now",this.taglines=["New release monthly updates","Free trial of Gravitee.IO enterprise","Share your experiences with other members"],this.skipLabel="Skip",this.email="",this.disabled=!1,this._invalid=!0,this.githubUrl="https://github.com/gravitee-io",this.twitterUrl="https://twitter.com/GraviteeIO",this.linkedinUrl="https://www.linkedin.com/company/gravitee-io/"}render(){return t.html`<div class="newsletter-container"><div class="newsletter__header">${this.header}</div><div class="newsletter__title"><span>Join the</span> <span class="newsletter__title-highlight">${this.title}</span> <span>Today</span></div><div class="newsletter__email"><gv-input id="email" name="email" @gv-input:submit="${this._onSubscribe}" @gv-input:input="${this._onInputChange}" type="email" required .value="${this.email}" .disabled="${this.disabled}" placeholder="${this.placeholder}"></gv-input><gv-button @click="${this._onSubscribe}" id="email-submit" provider="graviteeio_am" icon-right="navigation:angle-right" .disabled="${!this.disabled&&this._invalid}">${this.subscribeLabel}</gv-button></div>${this.taglines.length>0?t.html`<div class="newsletter__taglines">${this.taglines.map(((e,i,s)=>t.html`<div class="newsletter__tagline ${i===s.length-1?"last":""}"><div class="newsletter__tagline-text">${e}</div></div>`))}</div>`:""}<div class="newsletter__skip"><gv-button @click="${this._onSkip}" provider="graviteeio_am" icon-right="navigation:angle-right" small outlined>${this.skipLabel}</gv-button></div><div class="social"><gv-button class="social-link" link icon="thirdparty:github" .href="${this.githubUrl}" @gv-button:click="${this._navigateSocial.bind(this,this.githubUrl)}"></gv-button><gv-button class="social-link" link icon="thirdparty:twitter" .href="${this.twitterUrl}" @gv-button:click="${this._navigateSocial.bind(this,this.twitterUrl)}"></gv-button><gv-button class="social-link" link icon="thirdparty:linkedin" .href="${this.linkedinUrl}" @gv-button:click="${this._navigateSocial.bind(this,this.linkedinUrl)}"></gv-button></div></div>`}_onSubscribe(){(0,e.dispatchCustomEvent)(this,"subscribe",this.email)}_onSkip(){(0,e.dispatchCustomEvent)(this,"skip")}_navigateSocial(t){window.open(t,"_blank")}_onInputChange(t){this._invalid=t.target.invalid,this.email=t.detail}}exports.GvNewsletterSubscription=i,window.customElements.define("gv-newsletter-subscription",i);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvPagination=void 0;const t=require("lit"),i=require("../lib/events");require("../atoms/gv-button");const e=require("../lib/i18n");class s extends t.LitElement{static get properties(){return{data:{type:Object},hideEmpty:{type:Boolean,attribute:"hide-empty"},widget:{type:Boolean},disabled:{type:Boolean},_first:{type:Number},_last:{type:Number},_current:{type:Number},_total:{type:Number}}}static get styles(){return[t.css`.pagination{--font-size:var(--gv-pagination--fz, var(--gv-theme-font-size-s, 12px));font-size:var(--fz);--gv-button--fz:var(--fz);display:flex;align-items:center}gv-button{--gv-icon--s:var(--gv-pagination-icon--s, 18px);min-width:29px}gv-input{width:50px}`]}constructor(){super(),this.hideEmpty=!1,this.hasInput=!1,this.max=10,this.center=this.max/2-1,this.sizes=[],this.links={}}set data(t){t&&(this._last=t.last,this._current=parseInt(t.current_page),this._pages=t.total_pages,this._pages<this.max&&(this.max=this._pages))}_goToPage(t){this._current=parseInt(t),(0,i.dispatchCustomEvent)(this,"paginate",{page:t})}_onSubmit(t){const i=t.target.value;this._goToPage(i)}_onClickToSearch(){const t=this.shadowRoot.querySelector("gv-input").value;t&&this._goToPage(t)}_renderPagination(){const i=[];for(let t=0;t<this._pages;t++)i.push(t+1);let s=i.slice(0,this._current-1),n=i.slice(this._current);if(i.length>this.max){let t=s.length-this.center-1,i=this.max-this._current>this.center?this.max-this._current:this.center;if(t>0){i=this.center;const e=this._last-this._current-i;e<0&&(t+=e),s=s.slice(t)}n=n.slice(0,i)}const a=s.map((i=>t.html`<gv-button small outlined @click="${this._goToPage.bind(this,i)}">${i}</gv-button>`)),h=n.map((i=>t.html`<gv-button small outlined @click="${this._goToPage.bind(this,i)}">${i}</gv-button>`));return a.unshift(t.html`<gv-button small .disabled="${this.disabled||0===a.length}" .icon="${this.widget?"navigation:angle-left":null}" .title="${(0,e.i18n)("gv-pagination.previous")}" outlined @click="${0===a.length?()=>{}:this._goToPage.bind(this,this._current-1)}">${this.widget?"":(0,e.i18n)("gv-pagination.previous")}</gv-button>`),h.push(t.html`<gv-button small .disabled="${this.disabled||0===h.length}" .icon="${this.widget?"navigation:angle-right":null}" .title="${(0,e.i18n)("gv-pagination.next")}" outlined @click="${0===h.length?()=>{}:this._goToPage.bind(this,this._current+1)}">${this.widget?"":(0,e.i18n)("gv-pagination.next")}</gv-button>`),t.html`${this.widget?a.slice(0,1):a} ${t.html`<gv-button .disabled="${this.disabled}" small primary>${this.widget?this._current+" / "+i.length:this._current}</gv-button>`} ${this.widget?h.slice(h.length-1,h.length):h}`}_hasData(){return this._pages&&this._last&&this._current}_hideEmpty(){return this._hasData()&&this.hideEmpty&&this._pages<2}render(){return this._hasData()&&!this._hideEmpty()?t.html`<div class="pagination">${this.hasInput?t.html`<gv-input class="goto" @gv-input:submit="${this._onSubmit}" type="number" min="1" max="${this._pages}" placeholder="Page" small></gv-input><gv-button small outlined @click="${this._onClickToSearch}" icon="general:search"></gv-button>`:""} ${this._renderPagination()}</div>`:t.html``}}exports.GvPagination=s,window.customElements.define("gv-pagination",s);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvProperties=void 0;const e=require("lit");require("./gv-schema-form"),require("./gv-resizable-views"),require("../molecules/gv-table"),require("../atoms/gv-button"),require("../atoms/gv-input"),require("../atoms/gv-icon"),require("../atoms/gv-text"),require("../atoms/gv-input-message"),require("../atoms/gv-select");const t=require("../lib/events"),i=require("../lib/properties"),r=require("../lib/i18n"),o=require("lit/directives/class-map"),s=require("../mixins/keyboard-element"),n=require("../styles/empty");class a extends((0,s.KeyboardElement)(e.LitElement)){static get properties(){return{dynamicPropertySchema:{type:Object},properties:{type:Array},_properties:{type:Array,attribute:!1},provider:{type:Object},providers:{type:Array},_propertySchemaForm:{type:Object,attribute:!1},expert:{type:Boolean},_formattedErrors:{type:Array,attributes:!1},_filter:{type:String},_paginationData:{type:Object,attribute:!1},_pageSize:{type:Number,attribute:!1},_newItem:{type:Object,attribute:!1},_providerDocumentation:{type:Boolean,attribute:!1},_showDocumentation:{type:Boolean,attribute:!1},_textRows:{type:Number,attribute:!1},readonly:{type:Boolean,reflect:!0},encryptable:{type:Boolean,reflect:!0}}}constructor(){super(),this.properties=[],this.types=[],this.provider={},this._currentResource=null,this._formattedErrors=[],this._showDocumentation=!0,this._newItem={key:"",value:"",_new:!0},this._pageSize=10,this._textRows=10,this._pageSizes=[5,10,25,50,100],this._errors=[]}onKeyboard(){if(this.isPressed(s.KEYS.Esc)&&this._onClosePropertySchemaForm(),this.isPressed(s.KEYS.Shift,s.KEYS.Ctrl,s.KEYS.Space)){const e=this.shadowRoot.querySelector("#search-property");e&&e.focus()}}set properties(e){this._properties=e.sort(((e,t)=>e.key.localeCompare(t.key))).map((e=>(e.encrypted&&(e.encryptable=!0),e)))}get properties(){return this._properties}_getResizableViews(){return this.shadowRoot.querySelector("gv-resizable-views")}_maximizeTopView(){const e=this._getResizableViews();e&&e.maximizeTop(95,5)}_maximizeBottomView(){const e=this._getResizableViews();e&&e.resize(30,70)}_splitMainViews(){const e=this._getResizableViews();e&&e.split()}_isNewLineTable(e){return!0===e._new}_onInputNew(e,t){const r=t.target;this._newItem[e]=t.detail;const{errors:o}=(0,i.parseRaw)((0,i.toNameEqualsValueString)([...this.properties,this._newItem]));this._errors=o,setTimeout((()=>{const t=this.shadowRoot.querySelector("gv-button#add-property");o.length>0||this._disabledNewLine(this._newItem)?t.setAttribute("disabled",!0):t.removeAttribute("disabled"),"key"===e&&(0===o.length?(r.removeAttribute("invalid"),r.setAttribute("valid",!0)):(r.removeAttribute("valid"),r.setAttribute("invalid",!0)))}),0)}_onInput(){(0,t.dispatchCustomEvent)(this,"change",{properties:this.properties})}_onSwitchEncrypted(e){!0===e.encrypted&&(e.value="",e.encrypted=!1,e.encryptionWarning=(0,r.i18n)("gv-properties.infos.overwrite-encryption"),this.requestUpdate()),(0,t.dispatchCustomEvent)(this,"switch-encrypted",{properties:this.properties})}_addProperty(e){delete e._new,this.properties=[e,...this._properties],this._newItem={key:"",value:"",_new:!0,encryptable:!1,encrypted:!1},(0,t.dispatchCustomEvent)(this,"change",{properties:this.properties})}_removeProperty(e){this._properties=this._properties.filter((t=>t.key!==e.key)),(0,t.dispatchCustomEvent)(this,"change",{properties:this.properties})}_disabledNewLine(e){return null==e.key||null==e.value||""===e.key.trim()||""===e.value.trim()}_submitExpertMode(){this.expert&&(this.properties=this._handleExpertModeInput(this.shadowRoot.querySelector("#expert-input").value))}_onExpertModeTextInput({detail:e}){this._handleExpertModeInput(e)}_handleExpertModeInput(e){let r=this._properties;const o=this.provider&&this.provider.enabled,s=r.filter((e=>o&&e.dynamic)),n=r.filter((e=>e.encrypted)),a=`${e}\n${(0,i.toNameEqualsValueString)(s)}\n${(0,i.toNameEqualsValueString)(n)}`,{errors:p}=(0,i.parseRaw)(a);if(this._errors=p,0===p.length){const{variables:o}=(0,i.parseRaw)(e);r=[...o,...s,...n],(0,t.dispatchCustomEvent)(this,"change",{properties:r})}return r}_onSubmitPropertyForm({detail:e}){const i=e.values;(0,t.dispatchCustomEvent)(this,"save-provider",{provider:i}),this.requestUpdate()}submit(){this.expert?this._submitExpertMode():this._onSubmit()}_onSubmit(){null==[...this.shadowRoot.querySelectorAll("form .control")].find((e=>e.invalid))&&this._addProperty(this._newItem)}_onConfigureDynamicProperties(){if(null==this.dynamicPropertySchema){const e=this.providers.reduce(((e,t)=>(e[t.id]=t.key,e)),{}),t=Object.keys(e);this.dynamicPropertySchema={properties:{enabled:{type:"boolean",title:"Enabled",description:" This service is requiring an API deployment. Do not forget to deploy API to start dynamic-properties service."},schedule:{type:"string",title:"Schedule","x-schema-form":{"cron-expression":!0}},provider:{type:"string",title:"Provider type",enum:t,default:t[0],"x-schema-form":{titleMap:e}}},required:["schedule","provider"]}}const e=this.providers[0];this._propertySchemaForm={properties:{...this.dynamicPropertySchema.properties,configuration:e.schema},required:this.dynamicPropertySchema.required},this._providerDocumentation=e.documentation,this._maximizeBottomView()}_onClosePropertySchemaForm(){this._propertySchemaForm=null,this._maximizeTopView()}_onSearchProperty({detail:e}){this._filter=e,this._onClosePropertySchemaForm()}_onClearProperty(){this._filter=null,this._onClosePropertySchemaForm()}get _errors(){return this._formattedErrors}set _errors(e){this._formattedErrors=e.map((({type:e,key:t,pos:o})=>e===i.ERROR_TYPES.INVALID_NAME?{line:o.line,msg:(0,r.i18n)("gv-properties.errors.invalid-key",{key:t})}:e===i.ERROR_TYPES.DUPLICATED_NAME?{line:o.line,msg:(0,r.i18n)("gv-properties.errors.duplicated-key",{key:t})}:e===i.ERROR_TYPES.INVALID_LINE?{line:o.line,msg:(0,r.i18n)("gv-properties.errors.invalid-line")}:e===i.ERROR_TYPES.INVALID_VALUE?{line:o.line,msg:(0,r.i18n)("gv-properties.errors.invalid-value")}:{line:"?",msg:(0,r.i18n)("gv-properties.errors.unknown")}))}_renderErrors(t=!1){return this._formattedErrors.length>0?e.html`<div class="${(0,o.classMap)({"add-form-error":!0,"add-form-error_expert":this.expert})}"><div></div><div class="error-list">${this._formattedErrors.map((({line:i,msg:o})=>e.html`<gv-input-message>${t?e.html`<strong .innerHTML="${(0,r.i18n)("gv-properties.errors.line")} ${i}: "></strong>`:""} <span .innerHTML="${o}"></span></gv-input-message>`))}</div></div>`:e.html``}_renderTable(){const t=this.provider&&this.provider.enabled;if(this.expert){this._computeTextRows();const i=(t?this._properties.filter((e=>!(t&&e.dynamic))):this._properties).filter((e=>!e.encrypted)).map((e=>`${e.key}="${e.value}"`)).join("\n");return e.html`<gv-text id="expert-input" placeholder="${(0,r.i18n)("gv-properties.placeholder.input")}" @gv-text:input="${this._onExpertModeTextInput}" .value="${i}" ?readonly="${this.readonly}" .rows="${this._textRows}"></gv-text>${this._renderErrors(!0)}`}{const i={data:[{field:"dynamic",label:"Dynamic",width:"40px",type:e=>e.dynamic&&t?"gv-icon":"div",attributes:{shape:e=>e.dynamic&&t?"code:time-schedule":"",title:e=>e.dynamic&&t?"Dynamic properties service is actually in running":"",style:"justify-content: center; align-items: center; height: 100%;"}},{field:"key",label:"Key",type:"gv-input",attributes:{clipboard:!0,placeholder:(0,r.i18n)("gv-properties.placeholder.key"),name:"key",required:!0,readonly:this.readonly}},{field:"value",label:"Value",type:"gv-input",attributes:{name:"value",placeholder:"Property value",required:!0,readonly:this.readonly,disabled:e=>e.dynamic&&t||e.encrypted,type:e=>e.encrypted?"password":"text",title:e=>e.encrypted?(0,r.i18n)("gv-properties.infos.encrypted-value"):"",description:e=>e.encryptionWarning,icon:null,"ongv-input:input":this._onInput.bind(this)}}]};!0===this.encryptable&&i.data.push({field:"encryptable",type:"gv-switch",style:"--gv-switch--ta: right;",width:"105px",attributes:{description:(0,r.i18n)("gv-properties.encrypted-toggle"),required:!0,readonly:this.readonly,disabled:e=>e.dynamic&&t,"ongv-switch:input":this._onSwitchEncrypted.bind(this),style:"display: inline-flex; font-size: 12px; height: 40px;"}}),!0!==this.readonly&&i.data.push({type:"gv-button",width:"40px",attributes:{"ongv-button:click":(e,t,i)=>this._removeProperty(e,i),title:"Remove",disabled:e=>e.dynamic&&t,danger:!0,outlined:!0,icon:"home:trash"}});const o=null!=this._filter?this._properties.filter((e=>(e.key.toLowerCase()+e.value.toLowerCase()).includes(this._filter))):this._properties;let s=[...o];if(this._paginationData){this._paginationData.last=Math.ceil(o.length/this._pageSize),this._paginationData.total=o.length,this._paginationData.total_pages=Math.ceil(o.length/this._pageSize);const e=(this._paginationData.current_page-1)*this._pageSize;s=[...o].splice(e,this._pageSize)}const n=this.encryptable?"add-form-grid-with-encrypted-toggle":"add-form-grid",a=!0!==this.readonly?e.html`<form id="add-property-form" class="add-form ${n}" @submit="${this._onSubmit}"><div></div><gv-input class="control" placeholder="${(0,r.i18n)("gv-properties.placeholder.key")}" required @gv-input:input="${this._onInputNew.bind(this,"key")}" value="${this._newItem.key}"></gv-input><gv-input class="control" placeholder="${(0,r.i18n)("gv-properties.placeholder.value")}" required @gv-input:input="${this._onInputNew.bind(this,"value")}" .value="${this._newItem.value}"></gv-input>${this.encryptable?e.html`<gv-switch class="control" required description="${(0,r.i18n)("gv-properties.encrypted-toggle")}" @gv-switch:input="${this._onInputNew.bind(this,"encryptable")}" .value="${this._newItem.encryptable}"></gv-switch>`:""}<gv-button id="add-property" icon="code:plus" outlined disabled="disabled" @gv-button:click="${this._addProperty.bind(this,this._newItem)}" title="${(0,r.i18n)("gv-properties.add")}"></gv-button></form>${this._renderErrors()}<hr>`:"";return e.html`${a}<gv-table .options="${i}" .items="${s}" noheader nosort order="key" rowheight="57px"></gv-table>`}}_onChangeMode({detail:e}){this._submitExpertMode(),this.expert=e,this._errors=[],this._newItem={key:"",value:"",_new:!0},this._onClosePropertySchemaForm()}_onPaginate({detail:e}){this._paginationData.current_page=e.page,this._onClosePropertySchemaForm(),this.requestUpdate()}updated(e){(e.has("_properties")||e.has("_pageSize"))&&(this._paginationData={first:1,last:Math.ceil(this._properties.length/this._pageSize),total:this._properties.length,current_page:1,total_pages:Math.ceil(this._properties.length/this._pageSize)})}_onChangePageSize({detail:e}){this._pageSize=Number(e).valueOf(),this._onClosePropertySchemaForm()}_renderTableForm(){return e.html`<div class="container"><div class="header"><div class="title">Manage global properties <span>(${this._properties?this._properties.length:0})</span></div><gv-switch small .description="${this.expert?"Expert":"Simple"}" .value="${this.expert}" @gv-switch:input="${this._onChangeMode}"></gv-switch><gv-input id="search-property" placeholder="Filter properties (Shift + Ctrl + Space)" type="search" small class="search-input" .disabled="${this.expert}" @gv-input:input="${this._onSearchProperty}" @gv-input:clear="${this._onClearProperty}"></gv-input><gv-select class="page-size__select" @gv-select:input="${this._onChangePageSize}" small .options="${this._pageSizes}" .value="${this._pageSize}" .disabled="${this.expert||null==this._paginationData}"></gv-select><gv-pagination @gv-pagination:paginate="${this._onPaginate}" .disabled="${this.expert||null==this._paginationData}" .data="${this._paginationData}" widget></gv-pagination></div><div class="content"><div class="form-content">${this._renderTable()}</div></div></div>`}_fetchDocumentation(){this._showDocumentation=!0}_hideDocumentation(){this._showDocumentation=!1}get dirty(){const e=this.shadowRoot.querySelector("gv-schema-form");return e&&e.dirty}confirm(){const e=this.shadowRoot.querySelector("gv-schema-form");return e?e.confirm().then((()=>this._onClosePropertySchemaForm())):Promise.resolve()}_renderForm(){return e.html`<gv-schema-form slot="top" scrollable .schema="${this._propertySchemaForm}" .values="${this.provider}" .icon="design:edit" has-header ?readonly="${this.readonly}" @gv-schema-form:submit="${this._onSubmitPropertyForm}"><div slot="title" class="properties-title">Configure dynamic properties</div><gv-button slot="header-left" icon="general:close" outlined small @gv-button:click="${this._onClosePropertySchemaForm}" title="Close (esc)"></gv-button><gv-button slot="header-left" icon="home:book" ?disabled="${this._showDocumentation}" outlined small @gv-button:click="${this._fetchDocumentation}" title="Open documentation"></gv-button></gv-schema-form>`}_renderBottom(){return this._propertySchemaForm&&this._showDocumentation?e.html`<gv-resizable-views no-overflow direction="horizontal">${this._renderForm()}<gv-documentation slot="bottom" .text="${this._providerDocumentation}" @gv-documentation:close="${this._hideDocumentation}"></gv-documentation></gv-resizable-views>`:this._propertySchemaForm?this._renderForm():e.html`<div class="properties-bottom-container">${this._renderDynamicConfiguration()}</div>`}_renderDynamicConfiguration(){const t=this.provider&&this.provider.enabled;let i="";return(t||!0!==this.readonly)&&(i=e.html`<gv-button icon="tools:tools" @gv-button:click="${this._onConfigureDynamicProperties}" outlined .disabled="${this.expert}">Configure dynamic properties</gv-button>`),t?e.html`<div class="properties-message">Dynamic properties service is actually in <code>running</code> state and run with cron expression <code>${this.provider.schedule}</code> using <code>${this.provider.provider}</code> provider.</div>${i}`:this.readonly?e.html`<div class="empty">No dynamic properties service configured</div>`:i}_onMove(){this._computeTextRows()}_computeTextRows(){const e=this.shadowRoot.querySelector(".content");if(e){const{height:t}=e.getBoundingClientRect();this._textRows=Math.round(Math.round(t-20)/30)-2}}render(){return this.providers&&this.providers.length>0?e.html`<div class="properties"><gv-resizable-views no-overflow @gv-resizable-views:move="${this._onMove}" @gv-resizable-views:resize="${this._onMove}"><div slot="top" class="box">${this._renderTableForm()}</div><div slot="bottom">${this._renderBottom()}</div></gv-resizable-views></div>`:e.html`<div class="properties"><div class="table-box">${this._renderTableForm()}</div></div>`}static get styles(){return[n.empty,e.css`:host{box-sizing:border-box;height:100%;width:100%;display:block}.properties{display:flex;height:100%;width:100%}gv-resizable-views{height:100%;width:100%}gv-schema-form{margin:0}.table-box{width:100%;border-left:1px solid #bfbfbf;display:flex}gv-table{height:auto;flex:1;margin-top:10px;margin-right:50px;--gv-table-rows--ov:none;--gv-table--colmg:var(--gv-properties-table--colmg, 0.2rem);--gv-table-cell--d:inline;--gv-table-row--ai:flex-start;--gv-table-row--ac:flex-start;--gv-table-hover--bgc:var(--gv-theme-neutral-color-lightest)}.properties-title{text-transform:uppercase;letter-spacing:.2rem}.properties-bottom-container{display:flex;justify-content:center;align-items:center;height:100%;flex-direction:column}.header{border-bottom:1px solid #d9d9d9;display:flex;min-height:45px;align-items:center;margin-bottom:.5rem;padding:0 .5rem}.header .title{color:#28444f;font-size:18px;display:flex;align-items:flex-end;flex:1}.header .title span{font-size:12px;margin-left:8px;opacity:.7}.box{position:absolute;display:flex;flex-direction:column;width:100%;top:0;bottom:0;left:0}.container{flex-grow:1;display:flex;flex-direction:column;min-height:0;height:100%}.content{background:#fff;flex-grow:1;overflow:auto;min-height:0;padding:.5rem;display:flex;flex-direction:column;align-items:center}gv-text{--gv-text--fz:20px;--gv-text--lh:25px}gv-switch{--gv-switch--ta:right}.header gv-input{margin:0 1rem}.add-form,.add-form-error{display:grid;margin:auto 50px auto 0;box-sizing:border-box}.add-form{column-gap:var(--gv-properties-table--colmg,.2rem);border-right:solid thick transparent;height:50px}.add-form gv-input,gv-button,gv-switch{margin:auto 0}.add-form gv-switch{font-size:12px}.add-form-grid{grid-template-columns:40px auto auto 40px}.add-form-grid-with-encrypted-toggle{grid-template-columns:40px auto auto 105px 40px}.add-form-error_expert{display:flex}.add-form-error{grid-template-columns:40px 1fr}code{color:var(--gv-theme-color-warning-dark,#f57c00)}.form-content{display:flex;flex-direction:column;width:100%}.properties-message{margin-bottom:.5rem;font-size:14px}.page-size__select{max-width:50px}.search-input{width:300px}hr{background-color:var(--gv-theme-neutral-color);border:0;width:100%;height:2px}`]}}exports.GvProperties=a,window.customElements.define("gv-properties",a);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvResizableViews=void 0;const t=require("lit"),e=require("lit/directives/class-map"),o=require("../lib/events");class i extends t.LitElement{static get properties(){return{direction:{type:String,reflect:!0},noOverflow:{type:Boolean,attribute:"no-overflow"}}}constructor(){super(),this.direction="vertical"}split(){this.resize()}maximizeTop(){this.resize(85,15)}maximizeBottom(){this.resize(20,80)}resize(t=50,e=50){this.shadowRoot.querySelector(".top").style.height=`${t}%`,this.shadowRoot.querySelector(".bottom").style.height=`${e}%`,setTimeout((()=>{(0,o.dispatchCustomEvent)(this,"resize",{top:t,bottom:e})}),350)}resizable(t){const e=t.getAttribute("data-direction")||"horizontal",i=t.previousElementSibling,r=t.nextElementSibling;let s=0,n=0,l=0,a=0;const c=this.shadowRoot,d=this,h=function(c){const h=c.clientX-s,v=c.clientY-n;if((0,o.dispatchCustomEvent)(d,"move",{direction:e}),"vertical"===e)i.style.height=100*(l+v)/t.parentNode.getBoundingClientRect().height+"%",r.style.height=100-100*(l+v)/t.parentNode.getBoundingClientRect().height+"%";else i.style.width=100*(a+h)/t.parentNode.getBoundingClientRect().width+"%";const u="horizontal"===e?"col-resize":"row-resize";t.style.cursor=u,t.classList.add("drag"),document.body.style.cursor=u,i.style.userSelect="none",i.style.pointerEvents="none",r.style.userSelect="none",r.style.pointerEvents="none"},v=function(){t.style.removeProperty("cursor"),t.classList.remove("drag"),document.body.style.removeProperty("cursor"),i.style.removeProperty("user-select"),i.style.removeProperty("pointer-events"),r.style.removeProperty("user-select"),r.style.removeProperty("pointer-events"),document.removeEventListener("mousemove",h),document.removeEventListener("mouseup",v),c.querySelector(".box").classList.add("transition")};t.addEventListener("mousedown",(function(t){if(!t.target.classList.contains("action")){c.querySelector(".box").classList.remove("transition"),s=t.clientX,n=t.clientY;const e=i.getBoundingClientRect();l=e.height,a=e.width,document.addEventListener("mousemove",h),document.addEventListener("mouseup",v)}}))}firstUpdated(){this.shadowRoot.querySelectorAll(".resizer").forEach((t=>this.resizable(t)))}get shape(){return"horizontal"===this.direction?"design:vertical":"design:horizontal"}render(){return t.html`<div class="${(0,e.classMap)({box:!0,transition:!0,"no-overflow":this.noOverflow})}"><div class="top"><slot name="top"></slot></div><div class="resizer" data-direction="${this.direction}"><gv-icon shape="${this.shape}"></gv-icon><div class="actions"><gv-icon class="layout-icon" shape="layout:layout-right-panel-2"></gv-icon><gv-button small link class="action" icon="layout:layout-bottom-panel" title="Maximize top" @gv-button:click="${this.maximizeTop}"></gv-button><gv-button small link class="action" icon="layout:layout-horizontal-2" title="Split screen" @gv-button:click="${this.split}"></gv-button><gv-button small link class="action" icon="layout:layout-top-panel-6" title="Maximize bottom" @gv-button:click="${this.maximizeBottom}"></gv-button></div></div><div class="bottom"><slot name="bottom"></slot></div></div>`}static get styles(){return[t.css`.box{display:flex;height:100%;flex:1 1 0;flex-direction:column}:host([direction=horizontal]) .box{flex-direction:row}:host([direction=horizontal]) .layout-icon{display:none}*{box-sizing:border-box}::slotted(*){display:inline-block;width:100%}.no-overflow ::slotted(*){height:100%;position:relative}.bottom,.top{position:relative}.no-overflow .bottom,.no-overflow .top{overflow:hidden}.bottom{display:flex;flex-grow:1}.left{width:70%}.left,.right{padding:.2rem;overflow:auto}.bottom,.top{border-left:1px solid #bfbfbf;border-right:1px solid #bfbfbf;height:100%}:host([direction=horizontal]) .top{border-right:0}:host([direction=horizontal]) .bottom{border-left:0}.transition .bottom,.transition .top{transition:height 350ms ease-in-out}.top{overflow-y:auto;overflow-x:hidden;height:50%}.bottom{overflow-y:auto;overflow-x:hidden;height:50%}:host([direction=horizontal]) .bottom,:host([direction=horizontal]) .top{height:100%;width:50%}.resizer{z-index:10;background-color:#d9d9d9;--gv-icon--s:20px;display:flex;align-items:center;justify-content:flex-end;--gv-icon--c:#28444f;transition:all .2s ease-in-out;position:relative}.resizer.drag{border-width:4px 0;border-style:double;border-color:#d9d9d9;background-color:#fff}.resizer .actions,.resizer gv-icon{transition:all .2s ease-in-out}.resizer.drag .actions,.resizer.drag gv-icon{visibility:hidden;opacity:0}:host([direction=horizontal]) .resizer.drag{border-width:0 4px}.resizer>gv-icon{position:absolute}:host([direction=horizontal]) .resizer{align-items:flex-start}:host([direction=vertical]) .resizer gv-icon{right:45px}:host([direction=horizontal]) .resizer gv-icon{left:-9px;top:45px}.resizer[data-direction=vertical]{cursor:ns-resize;height:2px;width:100%}.resizer[data-direction=horizontal]{cursor:ew-resize;height:100%;width:2px}.actions{margin-top:-22px;margin-right:15px;padding:0 .2rem;border-radius:4px 4px 0 0;background-color:#d9d9d9}.actions gv-button{margin:.2rem .1rem;visibility:hidden;opacity:0;display:none;transition:all 250ms ease-in-out}.actions:focus-within,.actions:hover{padding:.2rem;margin-top:-66px}.actions:focus-within gv-button,.actions:hover gv-button{display:block;opacity:1;visibility:visible}.actions:focus-within gv-icon,.actions:hover gv-icon{display:none;opacity:0;visibility:hidden}`]}}exports.GvResizableViews=i,window.customElements.define("gv-resizable-views",i);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvResources=void 0;const e=require("lit");require("./gv-schema-form"),require("./gv-resizable-views"),require("./gv-documentation"),require("../molecules/gv-table"),require("../atoms/gv-button"),require("../molecules/gv-option"),require("../atoms/gv-switch"),require("../atoms/gv-icon");const t=require("../lib/events"),s=require("../lib/utils"),i=require("../mixins/keyboard-element"),r=require("../styles/empty");class o extends((0,i.KeyboardElement)(e.LitElement)){static get properties(){return{resources:{type:Array},_resources:{type:Array,attribute:!1},types:{type:Array},documentation:{type:Object},_currentResource:{type:Object,attribute:!1},_currentResourceLoading:{type:Boolean,attribute:!1},_filter:{type:String},readonly:{type:Boolean,reflect:!0}}}constructor(){super(),this.resources=[],this.types=[],this._currentResource=null,this._emptymessage="No resource"}onKeyboard(){if(this.isPressed(i.KEYS.Esc)&&this._onCancelResourceForm(),this.isPressed(i.KEYS.Shift,i.KEYS.Ctrl,i.KEYS.Space)){const e=this.shadowRoot.querySelector("#search-resource");e&&e.focus()}}firstUpdated(){const e=this.shadowRoot.querySelector("gv-resizable-views");null!=e&&e.updateComplete.then((()=>{this._maximizeTopView()}))}set resources(e){this._resources=this._generateId(e)}get resources(){return this._resources}_generateId(e){return e?e.map((e=>(null==e._id&&(e._id=(0,s.uuid)()),e))):e}_getResizableViews(){return this.shadowRoot.querySelector("gv-resizable-views")}_maximizeTopView(){this._getResizableViews().resize(60,40)}_maximizeBottomView(){this._getResizableViews().maximizeBottom()}_splitMainViews(){this._getResizableViews().split()}_onCancelResourceForm(){this._currentResource=null,this.documentation=null,this._maximizeTopView()}_removeResource(e){this.resources=this.resources.filter((t=>t._id!==e._id)),this._onCancelResourceForm(),(0,t.dispatchCustomEvent)(this,"change",{resources:this.resources})}_buildResourceSchema(e){const t={properties:{name:{type:"string",title:"Resource name"}},required:["name"]},s="string"==typeof e.schema?JSON.parse(e.schema):e.schema;return{properties:{...t.properties,...s.properties},required:[...t.required,...s.required]}}_onCreateResource({detail:e}){this._currentResourceLoading=!0;const t=this.types.find((t=>t.id===e.id)),s=this._buildResourceSchema(t);this._currentResource={type:t.id,title:"Create resource",icon:"code:plus",schema:s,values:{},submitLabel:"Add",dirty:!0},this._maximizeBottomView(),this._onFetchDocumentation(),setTimeout((()=>this._currentResourceLoading=!1),600)}_onSubmitResourceForm({detail:e}){delete this._currentResource._values;const{type:i}=this._currentResource,{_id:r,name:o,...n}=e.values,c={_id:r,type:i,name:o,configuration:n};if(null!=e.values._id){const e=this.resources.findIndex((e=>e._id===c._id));this.resources[e]={...this.resources[e],...c}}else null==this.resources&&(this.resources=[]),c._id=(0,s.uuid)(),c.enabled=!0,this.resources.push(c);this._onCancelResourceForm(),(0,t.dispatchCustomEvent)(this,"change",{resources:this.resources})}_onChangeResourceForm({detail:e}){this._currentResource._values=e.values}_onResetResourceForm(){delete this._currentResource._values}_findResourceById(e){return this.types.find((t=>t.id===e))}_onSelectResource({detail:{items:e}}){e.length>0?this._onEditResource(e[0]):this._onCancelResourceForm()}_onEditResource(e){const t={...e,...e.configuration};delete t.configuration;const s=this._findResourceById(e.type);this._currentResource={_id:e._id,title:"Resource configuration",type:e.type,icon:"design:edit",schema:this._buildResourceSchema(s),values:t,submitLabel:"Update"},this._splitMainViews(),this._onFetchDocumentation()}_onCloseDocumentation(){this.documentation=null}_getCurrentResourceType(){return this._currentResource?this._findResourceById(this._currentResource.type):null}_onFetchDocumentation(){(0,t.dispatchCustomEvent)(this,"fetch-documentation",{target:this,resourceType:this._getCurrentResourceType()})}get dirty(){const e=this.shadowRoot.querySelector("gv-schema-form");return e&&e.dirty}confirm(){const e=this.shadowRoot.querySelector("gv-schema-form");return e?e.confirm().then((()=>this._onCancelResourceForm())):Promise.resolve()}_onChangeResourceState(e,s){const i=this.resources.find((t=>t._id===e._id));this.resources[i]={...this.resources[i],enabled:e.enabled},(0,t.dispatchCustomEvent)(this,"change",{resources:this.resources})}_renderForm(){const t={...this._currentResource.values,...this._currentResource._values};return e.html`<gv-schema-form scrollable .schema="${this._currentResource.schema}" .values="${t}" submitLabel="${this._currentResource.submitLabel}" has-header .icon="${this._currentResource.icon}" validate-on-render .dirty="${this._currentResource.dirty||null!=this._currentResource._values}" ?readonly="${this.readonly}" @gv-schema-form:change="${this._onChangeResourceForm}" @gv-schema-form:reset="${this._onResetResourceForm}" @gv-schema-form:submit="${this._onSubmitResourceForm}"><div slot="title" class="form-title">${this._currentResource.title}</div><gv-button slot="header-left" icon="general:close" outlined small @gv-button:click="${this._onCancelResourceForm}" title="Close (esc)"></gv-button><gv-button slot="header-left" icon="home:book" ?disabled="${null!=this.documentation}" outlined small @gv-button:click="${this._onFetchDocumentation}" title="Open documentation"></gv-button></gv-schema-form>`}_renderDoc(){return e.html`<gv-documentation .text="${this.documentation.content}" .image="${this.documentation.image}" @gv-documentation:close="${this._onCloseDocumentation}"></gv-documentation>`}_renderBottom(){if(this.documentation&&this._currentResource)return e.html`<gv-resizable-views direction="horizontal" no-overflow><div slot="top">${this._renderForm()}</div><div slot="bottom">${this._renderDoc()}</div></gv-resizable-views>`;if(this._currentResource)return this._renderForm();if(this.documentation)return this._renderDoc();if(!0!==this.readonly){const t=this.types.map((e=>({id:e.id,title:e.name,description:e.description,image:e.icon})));return e.html`<div class="resources-bottom-container"><gv-option class="resource__option" .options="${t}" @gv-option:select="${this._onCreateResource}"></gv-option></div>`}return this.readonly&&this.resources.length>0?e.html`<div class="resources-bottom-container empty">You can see the resource configuration by clicking on it</div>`:void 0}_onSearchResource({detail:e}){this._filter=e}_onClearResource(){this._filter=null}render(){const t={selectable:!0,data:[{field:"name",label:"Name"},{field:"type",width:"50px",type:"gv-image",attributes:{src:e=>{const t=this._findResourceById(e.type);return t?t.icon:null},style:"width:40px;height:40px;"}},{field:"type",label:"Type"},{field:"enabled",type:"gv-switch",title:e=>e.enabled?"Click to disable":"Click to enable",width:"50px",attributes:{readonly:this.readonly,"ongv-switch:input":(e,t)=>this._onChangeResourceState(e,t)}}]};!0!==this.readonly&&t.data.push({type:"gv-button",width:"50px",attributes:{onClick:e=>this._removeResource(e),title:"remove",danger:!0,outlined:!0,icon:"home:trash"}});const s=null!=this._filter?this.resources.filter((e=>(e.name.toLowerCase()+e.type.toLowerCase()).includes(this._filter))):this.resources;return e.html`<div class="resources"><gv-resizable-views no-overflow><div slot="top" class="box"><div class="container"><div class="header"><div class="title">Manage global resources <span>(${this.resources.length})</span></div><gv-input id="search-resource" class="search-input" placeholder="Filter resources (Shift + Ctrl + Space)" type="search" small @gv-input:input="${this._onSearchResource}" @gv-input:clear="${this._onClearResource}"></gv-input></div><div class="content"><div class="table-container"><gv-table .options="${t}" .items="${s}" emptymessage="${this._emptymessage}" @gv-table:select="${this._onSelectResource}" order="name" rowheight="50px"></gv-table></div></div></div></div><div slot="bottom">${this._renderBottom()}</div></gv-resizable-views></div>`}static get styles(){return[r.empty,e.css`:host{box-sizing:border-box;height:100%;width:100%;display:block}.resources{display:flex;height:100%;width:100%}gv-resizable-views{height:100%;width:100%}gv-table{--gv-table-rows--ov:none}.header{border-bottom:1px solid #d9d9d9;display:flex;min-height:45px;align-items:center;margin-bottom:.5rem;padding:0 .5rem}.header .title{color:#28444f;font-size:18px;display:flex;align-items:flex-end;flex:1}.header .title span{font-size:12px;margin-left:8px;opacity:.7}.box{position:absolute;display:flex;flex-direction:column;width:100%;top:0;bottom:0;left:0}.container{flex-grow:1;display:flex;flex-direction:column;min-height:0;height:100%}.content{background:#fff;flex-grow:1;overflow:auto;min-height:0;padding:.5rem;display:flex;flex-direction:column;align-items:center}.form-title{text-transform:uppercase;letter-spacing:.2rem}.resources-bottom-container{display:flex;justify-content:center;align-items:center;height:100%}.table-container{max-width:1200px;display:flex;flex-direction:column;width:100%}.search-input{width:300px}.resource__option{--gv-option-button--maw:175px}`]}}exports.GvResources=o,window.customElements.define("gv-resources",o);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvSchemaFormArray=void 0;const e=require("lit"),t=require("../lib/schema-form"),r=require("../lib/events"),o=require("lit/directives/class-map"),s=require("../styles/skeleton"),i=require("../mixins/update-after-browser");class l extends((0,i.UpdateAfterBrowser)(e.LitElement)){static get properties(){return{schema:{type:Object},value:{type:Array},id:{type:String,reflect:!0},title:{type:String,reflect:!0},description:{type:String},skeleton:{type:Boolean,reflect:!0},errors:{type:Array},readonly:{type:Boolean,reflect:!0}}}constructor(){super(),this.value=[]}_onNew(){const e="object"===this.schema.type?{}:"";this.value=[...this.value,e],(0,r.dispatchCustomEvent)(this,"input",this.value)}_onRemove(e){this.value.splice(e,1,null),this.value=this.value.filter((e=>null!=e)),(0,r.dispatchCustomEvent)(this,"input",this.value)}_renderValue(r,s){const i=this.schema.required,l=this.schema.disabled,a=`${this.id}.${s}`,n={...this.schema,title:null},m=(0,t.canInline)(this.schema),c={form__item:!0,form__item_cards:!m};return e.html`<div class="${(0,o.classMap)(c)}" @mouseleave="${this._onMouseLeave}">${m?"":e.html`<div class="${(0,o.classMap)({"form__item-label":!0,skeleton:this.skeleton})}"><label>${this.schema.title}</label> ${!0!==this.readonly?e.html`<gv-button link small @gv-button:click="${this._onRemove.bind(this,s)}" icon="general:close" title="Remove"></gv-button>`:""}</div>`}<div class="form__item_entry"><gv-schema-form-control .id="${a}" .skeleton="${this.skeleton}" .control="${n}" .value="${r}" ?required="${i}" ?disabled="${l}" ?readonly="${this.readonly}" compact="compact"></gv-schema-form-control>${m?e.html`<gv-button link small @gv-button:click="${this._onRemove.bind(this,s)}" icon="general:close" title="Remove"></gv-button>`:""}</div></div>`}_onMouseLeave(){this.shadowRoot.querySelectorAll("gv-select").forEach((e=>e.close()))}getControls(){return[...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control")),...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control-array")),...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control-object"))]}getControl(e){return this.shadowRoot.querySelector(`[id="${e}"]`)}async getUpdateComplete(){await super.getUpdateComplete(),await Promise.all(this.getControls().map((e=>e.updateComplete)))}shouldUpdate(e){return e.has("errors")&&this.getControls().forEach((e=>{e.errors=this.errors})),super.shouldUpdate(e)}render(){if(null==this.schema)return e.html``;const t=null==this.schema["x-schema-form"]||!1!==this.schema["x-schema-form"].open;return e.html`<gv-expandable class="form__control-array" ?open="${t}"><div slot="summary" class="form__item-group-header"><div class="form__item-group-title"><label><span>${this.title||this.id}</span><span class="form__item-length">(${this.value.length})</span></label> ${this.description?e.html`<div class="description">${this.description}</div>`:""}</div>${!0!==this.readonly?e.html`<gv-button outlined small icon="code:plus" @gv-button:click="${this._onNew}">New ${this.schema.title}</gv-button>`:""}</div><div class="form__item-group" id="${this.id}" slot="details">${null!=this.value&&Array.isArray(this.value)?this.value.map(((e,t)=>this._renderValue(e,t))):""}</div></gv-expandable>`}static get styles(){return[s.skeleton,e.css`.form__item-length{font-size:12px;color:#bfbfbf;margin:0 .2rem}.form__item-group{position:relative;transition:all .3s ease-in-out}.form__item_cards form__item-group:hover{background-color:#efefef}.form__item-group-header{display:flex;flex:1;align-items:center;transition:all .3s ease-in-out;background-color:var(--gv-schema-form--bgc,#fff)}.form__item-group-header label{flex:1;margin:0}.form__item-group-title{display:flex;flex-direction:column;flex:1}.description{opacity:.6;font-size:var(--gv-theme-font-size-s,12px)}.form__item_cards{border:1px solid #d9d9d9;border-radius:4px;margin:.5rem;background-color:#fff;transition:all .3s ease-in-out;z-index:50}.form__item_cards:hover{transform:translateY(-2px);box-shadow:0 10px 20px -10px #bfbfbf;z-index:60}.form__item_entry{display:flex}.form__item_entry gv-schema-form-control{flex:1}.form__item-label{font-style:italic;display:flex;flex-direction:row;border-bottom:1px solid #d9d9d9;padding:.5rem}.form__item-label>label{flex:1}.form__item .form_control-inline>*{margin-left:0}.form__item .form_control-inline>:first-child{margin-left:.5rem}`]}}exports.GvSchemaFormArray=l,window.customElements.define("gv-schema-form-array",l);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvSchemaFormControlObject=void 0;const e=require("lit"),t=require("../lib/schema-form"),r=require("lit/directives/class-map"),o=require("../styles/skeleton");require("../molecules/gv-expandable");const s=require("../mixins/update-after-browser");class l extends((0,s.UpdateAfterBrowser)(e.LitElement)){static get properties(){return{schema:{type:Object},value:{type:Object,reflect:!0},id:{type:String,reflect:!0},title:{type:String,reflect:!0},errors:{type:Array},skeleton:{type:Boolean,reflect:!0},readonly:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},required:{type:Boolean,reflect:!0},hidden:{type:Boolean,reflect:!0},compact:{type:Boolean}}}constructor(){super(),this.value=[]}_renderPart(t){const r=this.required||this.schema.required&&this.schema.required.includes(t),o=this.disabled||this.schema.disabled&&this.schema.disabled.includes(t),s=null!=this.id?`${this.id}.${t}`:t,l={...this.schema.properties[t]},i=null!=this.value?this.value[t]:null;return e.html`<gv-schema-form-control .id="${s}" .control="${l}" .value="${i}" .skeleton="${this.skeleton}" ?required="${r}" ?disabled="${o}" ?readonly="${this.readonly}" ?hidden="${this.hidden}" class="control" ?compact="${this.compact}"></gv-schema-form-control>`}getControls(){return[...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control")),...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control-array")),...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control-object"))]}getControl(e){return this.shadowRoot.querySelector(`[id="${e}"]`)}async getUpdateComplete(){await super.getUpdateComplete(),await Promise.all(this.getControls().map((e=>e.updateComplete)))}shouldUpdate(e){return e.has("errors")&&this.getControls().forEach((e=>{e.errors=this.errors})),super.shouldUpdate(e)}render(){const o=Object.keys(this.schema.properties),s=(0,t.canGrid)(this.schema),l={"form_control-inline":(0,t.canInline)(this.schema),"form_control-grid":s,"form_control-grid-odd":s&&o.length%2!=0},i={"form__control-group-title":!0,skeleton:this.skeleton},a=o.map((e=>this._renderPart(e)));if(this.title){const t=null==this.schema["x-schema-form"]||!1!==this.schema["x-schema-form"].open;return e.html`<gv-expandable ?open="${t}"><div slot="summary" class="${(0,r.classMap)(i)}" title="${this.title}">${this.title}</div><div slot="details" class="${(0,r.classMap)(l)}">${a}</div></gv-expandable>`}return e.html`<div class="${(0,r.classMap)(l)}">${a}</div>`}static get styles(){return[o.skeleton,e.css`.form__control-group-title{padding:.5rem 0}.form_control-grid,.form_control-inline{display:grid;grid-template-columns:repeat(2,1fr)}.form_control-grid-odd :first-child{grid-column:1/3}.form_control-inline>*{--gv-schema-form-control--m:0 0.2rem 0 0;overflow:auto}.form_control-inline>:last-child{--gv-schema-form-control--m:0 0 0 0.2rem}`]}}exports.GvSchemaFormControlObject=l,window.customElements.define("gv-schema-form-control-object",l);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvSchemaFormControl=void 0;const e=require("lit"),t=require("../lib/events");require("../atoms/gv-input"),require("../atoms/gv-input-message"),require("../atoms/gv-text"),require("../atoms/gv-select"),require("../atoms/gv-select-native"),require("../atoms/gv-switch"),require("../molecules/gv-code"),require("../molecules/gv-expression-language"),require("../molecules/gv-cron-editor"),require("../atoms/gv-autocomplete"),require("../organisms/gv-schema-form-array"),require("../organisms/gv-schema-form-control-object");const r=require("../lib/schema-form"),o=require("../mixins/update-after-browser");class s extends((0,o.UpdateAfterBrowser)(e.LitElement)){static get properties(){return{type:{type:String},id:{type:String,reflect:!0},name:{type:String,reflect:!0},required:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},readonly:{type:Boolean,reflect:!0},title:{type:String,reflect:!0},pattern:{type:String},control:{type:Object},errors:{type:Array},value:{type:Object,reflect:!0},skeleton:{type:Boolean,reflect:!0},hidden:{type:Boolean,reflect:!0},writeOnly:{type:Boolean,reflect:!0},compact:{type:Boolean}}}constructor(){super(),this._observedProperties=["disabled","readonly","required"]}isExpressionLanguage(){return this.control["x-schema-form"]&&null!=this.control["x-schema-form"]["expression-language"]}isCronExpression(){return this.control["x-schema-form"]&&!0===this.control["x-schema-form"]["cron-expression"]}isPassword(){return!0===this.control.writeOnly||this.control["x-schema-form"]&&null!=this.control["x-schema-form"].type&&"password"===this.control["x-schema-form"].type}getPlaceholder(){return this.control["x-schema-form"]&&this.control["x-schema-form"].placeholder?this.control["x-schema-form"].placeholder:null}isCodemirror(){return(0,r.isCodemirror)(this.control)}isObject(){return(0,r.isObject)(this.control)}isAutocomplete(){return this.control["x-schema-form"]&&null!=this.control["x-schema-form"].event&&"string"===this.control.type}isText(){return this.control["x-schema-form"]&&"text"===this.control["x-schema-form"].type&&"string"===this.control.type}getElementName(){return this.isObject()?"gv-schema-form-control-object":(this.control.enum||this.control.items&&this.control.items.enum)&&!this.isAutocomplete()?"array"===this.control.type?"gv-select":"gv-select-native":(0,r.isComplexArray)(this.control)?"gv-schema-form-array":"array"===this.control.type?"gv-button":"boolean"===this.control.type?"gv-switch":this.isExpressionLanguage()?"gv-expression-language":this.isCodemirror()?"gv-code":this.isCronExpression()?"gv-cron-editor":this.isText()?"gv-text":"gv-input"}_updateProperties(e){null!=e&&this._observedProperties.forEach((t=>{null!=this[t]&&(e[t]=this[t])}))}_renderControl(){const e=this.getElementName(),o=document.createElement(e);if(o.id=this.id,o.name=this.id,o.skeleton=this.skeleton,o.classList.add("form__control"),null==this.value&&null!=this.control.default&&(this.value=this.control.default,(0,t.dispatchCustomEvent)(this,"default-value",{value:this.value,currentTarget:o,control:this.control})),null!=this.value&&this._setValue(o),"object"===this.control.type?o.schema=this.control:(0,r.isComplexArray)(this.control)&&(o.schema=this.control.items),this._updateProperties(o),this.control.title)o.label=this.control.title,o.title=this.control.title;else{const e=this.id.split("."),t=e[e.length-1];isNaN(parseInt(t,10))&&(o.label=t,o.title=t)}this.control.pattern&&(o.pattern=this.control.pattern),"integer"===this.control.type&&(o.type="number"),this.isText()&&(o.rows=3,o.autosize=!0,o.placeholder=this.control.description);const s=this.getPlaceholder();if(this.control.enum||this.control.items&&this.control.items.enum){const e=this.control.enum||this.control.items.enum;this.control["x-schema-form"]&&this.control["x-schema-form"].titleMap?o.options=e.map((e=>({value:e,label:this.control["x-schema-form"].titleMap[e]||e}))):o.options=e,"array"===this.control.type&&(o.multiple=!0)}else this.isCodemirror()?(o.options=this.control["x-schema-form"].codemirrorOptions,null!=this.control.default&&null==o.options.value&&(o.options.value=this.control.default)):this.isExpressionLanguage()?(o.options={},o.rows=1):this.isPassword()&&(o.type="password");let i;if(this.control.description&&(o.description=this.control.description),this.compact&&(o.placeholder=o.description||o.label,o.label=null,o.description=null,o.compact=this.compact),null!=s&&(this.isExpressionLanguage()||this.isCodemirror()?o.options.placeholder=s:o.placeholder=s),o.addEventListener(`${e}:input`,this._onInput.bind(this)),this.isAutocomplete()){const e=document.createElement("gv-autocomplete");e.minChars=0,e.filter=!0,o.clearable=!0,e.id=this.id,e.appendChild(o),e.addEventListener("gv-autocomplete:select",this._onInput.bind(this)),o.addEventListener("gv-input:clear",this._onInput.bind(this)),i=e}else i=o;return null!=this.control["x-schema-form"]&&(0,t.dispatchCustomEvent)(this,"control-ready",{currentTarget:i,control:this}),i}_onInput(e){e.preventDefault(),e.stopPropagation();let r=null;r="GV-AUTOCOMPLETE"===e.target.tagName?e.detail.value:e.detail,(0,t.dispatchCustomEvent)(this,"change",{value:r,currentTarget:e.target,control:this.control})}getControls(){return[...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control")),...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control-array")),...Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control-object"))]}getControl(e){return null==e&&(e=this.id),this.shadowRoot.querySelector(`[id="${e}"]`)}_setValue(e){return null!=this.value&&null!=e&&("boolean"===this.control.type||"array"===this.control.type||"object"===this.control.type?e.value=this.value:e.value=this.value.toString?this.value.toString():this.value),e}async updated(e){e.has("value")&&Promise.all(this.getControls().map((e=>e.updateComplete))).then((()=>{this._setValue(this.getControl())}))}async getUpdateComplete(){await super.getUpdateComplete(),await Promise.all(this.getControls().map((e=>e.updateComplete)))}formatErrorMessage(e){let t;return t=null!=this.control.properties&&null!=this.control.properties[e.argument]?this.control.properties[e.argument].title:this.control.title,t?`<span>${e.message.replace(e.argument,t)}</span>`:`<span>${e.message}</span>`}shouldUpdate(e){if(null!=this._observedProperties.find((t=>e.has(t)))&&this._updateProperties(this.getControl()),e.has("errors")&&null!=this.errors){this.getControls().forEach((e=>{e.errors=this.errors}));return this.shadowRoot.querySelectorAll(".form__control-error").forEach((e=>e.innerHTML="")),this.errors.forEach((e=>{const t="instance"===e.property?e.argument:e.property.replace("instance.",""),r=this.shadowRoot.querySelector(`[id="${t}-error"]`);if(r){const t=document.createElement("gv-input-message");t.innerHTML=this.formatErrorMessage(e),t.level="warn",r.appendChild(t)}})),!1}return super.shouldUpdate(e)}render(){return e.html`${this._renderControl()}<div class="form__control-error" id="${this.id+"-error"}"></div>`}static get styles(){return[e.css`:host{box-sizing:border-box;margin:var(--gv-schema-form-control--m,.4rem);display:block}:host([hidden]){visibility:hidden;height:0;margin:0;padding:0;overflow:hidden}.form__control-description,.form__control-error{font-size:12px}.form__control-description{opacity:.8}.form__control-label{display:flex;flex-direction:row;border-bottom:1px solid #d9d9d9}label{margin:.2rem}.form__control-label label{flex:1;text-transform:capitalize}.form__control-array,.form__control-object{display:flex;flex-direction:column}.form__control-enum{display:flex}.form__control-array gv-button{align-self:flex-end}.form__control{position:relative}gv-code,gv-expression-language,gv-input,gv-select,gv-select-native,gv-switch{width:100%;margin:.2rem 0}gv-autocomplete:hover,gv-select-native:hover,gv-select:hover{z-index:70}.error{color:var(--gv-theme-color-error,#f44336)}.warning{color:var(--gv-theme-color-warning,#ff9800)}`]}}exports.GvSchemaFormControl=s,window.customElements.define("gv-schema-form-control",s);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvSchemaForm=void 0;const t=require("lit"),e=require("object-path"),i=require("../lib/events"),s=require("../lib/utils"),o=require("lit/directives/class-map"),r=require("lit/directives/repeat"),a=require("jsonschema"),n=require("../styles/empty");require("./gv-schema-form-control");class l extends t.LitElement{static get properties(){return{schema:{type:Object},errors:{type:Object},values:{type:Object},submitLabel:{type:String},hasFooter:{type:Boolean,attribute:"has-footer"},hasHeader:{type:Boolean,attribute:"has-header"},_confirm:{type:Object},_values:{type:Object,attribute:!1},dirty:{type:Boolean,reflect:!0},hideDeprecated:{type:Boolean,attribute:"hide-deprecated"},validateOnRender:{type:Boolean,attribute:"validate-on-render"},_validatorResults:{type:Object},skeleton:{type:Boolean,reflect:!0},_touch:{type:Boolean},readonly:{type:Boolean,reflect:!0},scrollable:{type:Boolean,reflect:!0},groups:{type:Array}}}constructor(){super(),this.hideDeprecated=!1,this._values={},this.submitLabel="Ok",this.hasHeader=!1,this.hasFooter=!1,this._touch=!1,this._validator=new a.Validator,this._validatorResults={},this._ignoreProperties=[],this._dynamicControls=[],this._dynamicAttributes=["disabled","required","hidden"],this.groups=null,this.addEventListener("gv-schema-form-control:default-value",this._onDefaultValue.bind(this)),this.addEventListener("gv-schema-form-control:change",this._onChange.bind(this)),this.addEventListener("gv-schema-form-control:control-ready",this._onControlReady.bind(this))}set values(t){(0,s.deepEqual)(this._values,t)||(this._initialValues=t?{...t}:{},this._values=(0,s.deepClone)(this._initialValues))}get values(){return this._values}reset(t=null){this._values=(0,s.deepClone)(t||this._initialValues),this._touch=!1,this._setDirty(!1),this.getControls().forEach((t=>{t.requestUpdate()}))}_onReset(){this.reset(),(0,i.dispatchCustomEvent)(this,"reset")}requestValidation(){clearTimeout(this._validateTimeout),this._validateTimeout=setTimeout((()=>{this.validate(),this._updateActions()}),350)}submit(){this._onSubmit()}_onSubmit(){const t=this.validate();this.isValid()?(this._initialValues=(0,s.deepClone)(this._values),this.dirty=!1,this._touch=!1,(0,i.dispatchCustomEvent)(this,"submit",{values:this._values,validatorResults:t})):(0,i.dispatchCustomEvent)(this,"error",{values:this._values,validatorResults:t})}_setDirty(t=!0){this.dirty=!!t}_setTouch(t=!0){this._touch=!!t}confirm(){if(this.isTouch()){if(this._confirm&&this._confirm.promise)return this._confirm.promise;const t=new Promise(((t,e)=>this._confirm={resolve:t,reject:e}));return this._confirm.promise=t,t}return Promise.resolve()}_onConfirmReset(){const{resolve:t}=this._confirm;this._confirm=null,this._onReset(),this.requestUpdate(),this.updateComplete.then((()=>{t(this)}))}_onConfirmEdit(){this._confirm.reject(this),this._confirm=null,this._updateChildren(this.validateOnRender)}_getSubmitBtn(){return this.shadowRoot.querySelector("#submit")}_getResetBtn(){return this.shadowRoot.querySelector("#reset")}_dispatchChange(){clearTimeout(this._changeTimeout),this._changeTimeout=setTimeout((()=>{(0,i.dispatchCustomEvent)(this,"change",{target:this,values:this._values,validation:this._validatorResults})}),50)}_onDefaultValue({detail:{currentTarget:t,value:i,control:s}}){"integer"===s.type&&null!=i&&(i.trim&&i.length>0||i.length>0)&&(i=parseInt(i,10)),(0,e.set)(this._values,t.id,i)}_onChange({detail:{currentTarget:t,value:i,control:s}}){if(this._setTouch(!0),"integer"===s.type)if("string"==typeof i&&0===i.trim().length)i=null;else{const t=Number(i).valueOf();i=isNaN(t)?null:t}else"array"===s.type&&0===i.length?i=null:"string"!==s.type||0!==i.trim().length||s.enum?"object"===s.type&&0===Object.keys(i).length&&(i=null):i=null;null==i?(0,e.del)(this._values,t.id):(0,e.set)(this._values,t.id,i),this._updateDynamicControls(),this._validatorResults=this.validate(),this.dirty=!0,this._updateActions(),this._dispatchChange()}_onControlReady(t){t.stopPropagation(),t.preventDefault();const e=t.detail.control,s=e.control;if(s["x-schema-form"])if(s["x-schema-form"].event){const e=s["x-schema-form"].event;(0,i.dispatchCustomEvent)(this,e.name,{...e,...t.detail})}else this._hasCondition(s)&&(this._dynamicControls.push(e),this._updateDynamicControl(e))}_updateDynamicControls(){this._ignoreProperties=[],this._dynamicControls.forEach((t=>{this._updateDynamicControl(t)}))}_updateDynamicControl(t){const e=t.control;return e["x-schema-form"]&&this._dynamicAttributes.forEach((i=>{this._evaluateCondition(e,i)?(t.setAttribute(i,""),"hidden"===i&&this._ignoreProperties.push(t.id)):t.removeAttribute(i)})),null}async performUpdate(){await Promise.all(this.getControls().map((t=>t.updateComplete))),this.getControls().forEach((t=>{t.requestUpdate()})),super.performUpdate()}_renderControl(i){const s={...this.schema.properties[i]},o=this.schema.required&&this.schema.required.includes(i)||this._evaluateCondition(s,"required"),r=this.schema.disabled&&this.schema.disabled.includes(i)||this._evaluateCondition(s,"disabled"),a=this._evaluateCondition(s,"hidden");a&&this._ignoreProperties.push(i);const n=this.readonly||!0===s.readOnly,l=!0===s.writeOnly,h=(0,e.get)(this._values,i);return t.html`<gv-schema-form-control .id="${i}" .errors="${this.errors}" .control="${s}" .skeleton="${this.skeleton}" .value="${h}" ?readonly="${n}" ?writeonly="${l}" ?required="${o}" ?disabled="${r}" ?hidden="${a}"></gv-schema-form-control>`}_hasCondition(t){return!!t["x-schema-form"]&&null!=this._dynamicAttributes.find((e=>null!=t["x-schema-form"][e]))}_evaluateCondition(t,e){if(null==t["x-schema-form"]||null==t["x-schema-form"][e])return!1;const i=t["x-schema-form"][e];if("boolean"==typeof i)return i;if(!Array.isArray(i))return console.warn(`'${e}' attribute of 'x-schema-form' should be an array`),!1;let s=!0;for(const e of i){const i=Object.keys(e)[0];switch(i){case"$neq":s=s&&this._evaluateNotEqualsCondition(t,e);break;case"$eq":s=s&&this._evaluateEqualsCondition(t,e);break;case"$nodef":s=s&&this._evaluateNotDefCondition(t,e);break;case"$def":s=s&&this._evaluateDefCondition(t,e);break;default:console.warn(`Unsupported operator '${i}' on disable condition`),s=!1}}return s}_evaluateNotEqualsCondition(t,e){return!this._evaluateEqualsCondition(t,e)}_evaluateEqualsCondition(t,i){const s=i[Object.keys(i)[0]];return Object.keys(s).map((i=>{const o=s[i];let r=(0,e.get)(this._values,i);return null==r&&"string"===t.type&&(r=""),Array.isArray(o)?o.includes(r):r===o})).reduce(((t,e)=>t||e))}_evaluateNotDefCondition(t,i){const s=i[Object.keys(i)[0]];return void 0===(0,e.get)(this._values,s)||null===(0,e.get)(this._values,s)}_evaluateDefCondition(t,e){return!this._evaluateNotDefCondition(t,e)}_renderPart(){if(this._confirm)return t.html`<div class="confirm-box"><div class="error">The configuration is not valid and cannot be saved.</div><div class="confirm-box_actions"><gv-button @gv-button:click="${this._onConfirmReset}" outlined icon="general:update" danger>Lose changes</gv-button><gv-button @gv-button:click="${this._onConfirmEdit}" icon="design:edit">Edit</gv-button></div></div>`;const e=this.schema.properties?Object.keys(this.schema.properties):[];if(this._ignoreProperties=[],this.groups){const i=this.groups.reduce(((t,i)=>{const s=e.filter((t=>[...i.items||[]].includes(t)));return t.push({...i,items:s||[]}),t}),[]),s=i.find((t=>t.default))||{default:!0,items:[]},o=i.reduce(((t,e)=>[...t,...e.items]),[]);return s.items=e.filter((t=>!o.includes(t))),(0,r.repeat)(i,(e=>t.html`${e.name?t.html`<h2 class="group-title">${e.name}</h2>${(0,r.repeat)(e.items,(t=>this._renderControl(t)))}`:(0,r.repeat)(e.items,(t=>this._renderControl(t)))}`))}return t.html`${(0,r.repeat)([1],(()=>(0,r.repeat)(e,(t=>t),(t=>this._renderControl(t)))))}`}getControls(){return Array.from(this.shadowRoot.querySelectorAll("gv-schema-form-control"))}getControl(t){return this.shadowRoot.querySelector(`[id="${t}"]`)}_getErrors(){return(this._validatorResults.errors||[]).filter((t=>{let i=`${t.property.replace("instance.","")}`;Array.isArray(t.argument)||(i=`${i}.${t.argument}`);const s=`x-schema-form.errors.${i}.${t.name}`,o=(0,e.get)(this.schema,s);return o&&(t.message=o),!this._ignoreProperties.includes(i)}))}validate(){return this.schema&&(this._validatorResults=this._validator.validate(this._values,{...this.schema,additionalProperties:{}}),this.errors=this._getErrors()),this._validatorResults}isValid(){return!!this._validatorResults.valid||0===this._getErrors()}isTouch(){return this._touch||this.dirty&&this.validateOnRender}canSubmit(){return this.isTouch()&&this.isValid()}_updateActions(){null!=this._getSubmitBtn()&&(this.canSubmit()?this._getSubmitBtn().removeAttribute("disabled"):this._getSubmitBtn().setAttribute("disabled",!0));const t=this._getResetBtn();null!=t&&(this.dirty?t.removeAttribute("disabled"):t.setAttribute("disabled",!0))}_updateChildren(t){t?(this._validatorResults={},this.errors=null,this.requestValidation()):this._updateActionsTimeout=setTimeout((()=>this._updateActions()),0)}async updated(t){clearTimeout(this._updateActionsTimeout),t.has("_values")&&this.getControls().forEach((t=>{t.value=(0,e.get)(this._values,t.id)})),this._updateChildren(this.validateOnRender&&(t.has("_values")||t.has("schema")))}async getUpdateComplete(){const t=await super.getUpdateComplete();return await Promise.all(this.getControls().map((t=>t.updateComplete))),t}render(){return t.html`<form class="${(0,o.classMap)({scrollable:this.scrollable})}"><div class="${(0,o.classMap)({container:!0,confirm:this._confirm})}">${!0===this.hasHeader?t.html`<div class="header"><div class="${(0,o.classMap)({title:!0,center:this.hasHeader&&!this.hasFooter})}"><slot name="title"></slot></div><div class="left"><slot name="header-left"></slot></div>${!0===this.readonly||!0===this.hasFooter?"":t.html`<div class="right"><gv-button id="reset" outlined small @gv-button:click="${this._onReset}" icon="general:update" title="Reset"></gv-button><gv-button id="submit" small @gv-button:click="${this._onSubmit}" icon="code:check" .title="${this.submitLabel}"></gv-button></div>`}</div>`:""}<div class="content">${null!=this.schema?this._renderPart():t.html``}</div>${!0===this.hasFooter&&!0!==this.readonly?t.html`<div class="footer"><div class="left"></div><div class="right"><gv-button id="reset" outlined @gv-button:click="${this._onReset}" icon="general:update" title="Reset">Reset</gv-button><gv-button id="submit" @gv-button:click="${this._onSubmit}" icon="code:check" .title="${this.submitLabel}">${this.submitLabel}</gv-button></div></div>`:""}</div></form>`}static get styles(){return[n.empty,t.css`:host{box-sizing:border-box;margin:.2rem;--bgc:var(--gv-schema-form--bgc, #ffffff)}form{display:flex;flex-direction:column}form.scrollable{position:absolute;width:100%;top:0;bottom:0;left:0}.container{flex-grow:1;background-color:var(--bgc);display:flex;flex-direction:column;min-height:0}.content,.footer,.header{background-color:var(--bgc)}.content{flex-grow:1;display:flex;flex-direction:column;align-self:center;width:100%;min-height:0}.content>gv-schema-form-control{align-self:center;width:100%}form.scrollable .content{overflow:auto}form.scrollable .content>.group-title,form.scrollable .content>gv-schema-form-control{max-width:775px;width:95%}.footer,.header{display:flex;box-sizing:border-box;min-height:45px;--gv-icon--s:26px;--gv-icon--c:#bfbfbf;align-items:center;padding:0 .5rem;position:relative}.header{border-bottom:1px solid #d9d9d9}.footer{display:flex;justify-content:space-between;padding:1rem;border-top:1px solid #d9d9d9}form.scrollable .footer{justify-content:center}.footer .left,.footer .right{max-width:400px}.footer .left,.footer .right,.header .left,.header .right{display:flex;flex:1;z-index:10;align-items:center}.footer .right,.header .right{justify-content:flex-end}.header .title{color:#28444f;font-size:18px;display:flex;width:100%;align-items:center}.header .title.center{position:absolute;top:0;left:0;bottom:0;justify-content:center}.confirm-box{height:100%;padding:1rem;font-style:italic;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.confirm-box_actions{padding:1rem 0}.confirm .footer .left,.confirm .footer .right,.confirm .header .left,.confirm .header .right{display:none}.group-title{align-self:center;width:100%;color:var(--gv-theme-font-color-dark);font-size:21px;font-weight:600;padding-bottom:.3em;border-bottom:1px solid var(--gv-theme-font-color-dark);margin-top:24px;margin-bottom:16px}`]}}exports.GvSchemaForm=l,window.customElements.define("gv-schema-form",l);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvTabs=void 0;const t=require("lit");require("../molecules/gv-option");const e=require("../lib/events");class i extends t.LitElement{static get properties(){return{options:{type:Array},_options:{type:Array,attribute:!1},value:{type:String,reflect:!0},validator:{type:Function},disabled:{type:Boolean},small:{type:Boolean},truncate:{type:Boolean}}}static get styles(){return[t.css`:host{box-sizing:border-box}::slotted([slot=content]){opacity:0;box-sizing:border-box;transition:opacity 350ms ease-in-out;visibility:hidden;position:absolute;left:-9999px;top:-9999px}::slotted([slot=content].current){opacity:1;visibility:visible;position:relative;left:auto;top:auto}.header{display:flex;border-bottom:1px solid #d9d9d9;box-sizing:border-box}.title{flex:1;display:flex;align-items:center}.actions{display:flex;align-items:center}.tabs{flex:1;display:flex;justify-content:flex-end;--gv-option--bdrs:0}:host([small]) .tabs{flex-direction:column}:host([small]) gv-option{align-self:flex-end}gv-option{margin:var(--gv-tabs-options--m,0)}::slotted(gv-button){padding-bottom:2px}`]}_getContent(){return this.shadowRoot.querySelector('slot[name="content"]').assignedNodes()}firstUpdated(){null==this.value&&null!=this.options&&this.options.length>0&&(this.value=this.options[0].id)}set options(t){t&&Array.isArray(t)&&(this._options=t.map((t=>"string"==typeof t?{id:t,title:t}:"object"==typeof t&&null==t.title?{id:t.id,title:t.id}:t)))}get options(){return this._options}updated(){const t=this._getContent();if(t.forEach((t=>t.classList.remove("current"))),this.value){const t=this.querySelector(`#${this.value}`);t&&t.classList.add("current")}else t[0].classList.add("current")}_changeTab(t,i,s){t.classList.remove("current"),i.classList.add("current"),this.value=s,(0,e.dispatchCustomEvent)(this,"change",{value:s,from:t.id,to:i.id})}_onClick({detail:t}){if(!this.disabled){const e=this._getContent().find((t=>t.classList.contains("current"))),i=this.querySelector(`#${t.id}`);this.shadowRoot.querySelector("gv-option").value=e.id,this.validator?this.validator({from:e.id,to:i.id}).then((()=>{this._changeTab(e,i,t.id)})).catch((()=>{})):this._changeTab(e,i,t.id)}}get _contextualOptions(){return this.truncate?this.options.map((t=>{if(this.value!==t.id){const e=t.label||t.title;return{...t,label:e.substring(0,1)}}return t})):this.options}render(){return t.html`<div><div class="header"><div class="tabs"><slot name="title" class="title"></slot><gv-option small .options="${this._contextualOptions}" @gv-option:select="${this._onClick}" .value="${this.value}"></gv-option></div></div><slot name="content"></slot></div>`}}exports.GvTabs=i,window.customElements.define("gv-tabs",i);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvUserMenu=void 0;const e=require("lit");require("../molecules/gv-nav");const t=require("lit/directives/repeat"),s=require("lit/directives/class-map"),r=require("../lib/utils");class i extends e.LitElement{static get properties(){return{avatar:{type:String},routes:{type:Array},_routes:{type:Array,attribute:!1},_isClosed:{type:Boolean,attribute:!1},username:{type:String}}}static get styles(){return[e.css`:host{--bdc:var(--gv-user-menu--bdc, lightgrey);--c:var(--gv-user-menu--c, var(--gv-theme-font-color-dark, #262626));--bgc:var(--gv-user-menu--bgc, transparent);--list-bgc:var(--gv-user-menu-list--bgc, var(--gv-theme-neutral-color-lightest, #ffffff));--hover-bgc:var(--gv-user-menu-hover--bgc, var(--gv-theme-color-light, #86c3d0));--gv-link-active--c:var(--gv-user-menu-hover--c, var(--gv-theme-color-dark, #28444f));--gv-icon--c:var(--gv-user-menu-icon--c, var(--gv-theme-neutral-color-darkest, #000000));--gv-icon--s:var(--gv-user-menu-icon--s, 16px);--gv-link-a--ph:var(--gv-user-menu-link-a--ph, 0px);--gv-link--ta:var(--gv-user-menu-link--ta, right);user-select:none}.user-menu{list-style:none;margin:0;padding:0;display:inline-block;position:relative}.user-menu__title{background-color:var(--bgc);border-left:1px solid var(--bdc);color:var(--c);cursor:pointer;line-height:40px;padding:8px 24px;display:inline-flex;align-items:center;justify-content:space-between;min-width:175px;text-shadow:var(--gv-user-menu--tsh,none)}::slotted(*){height:40px;width:40px}.user-menu__title.no-user{padding:5px 24px}.user-menu__title gv-link{--gv-link-a--ph:0;--gv-link-a--pv:0}.user-menu__title span{flex:1;text-align:center;margin:0 .4rem}.user-menu__title>gv-icon{transition:all .3s ease 0s}.user-menu__list{position:absolute;background-color:var(--list-bgc);list-style:none;padding:0;transition:all .3s ease 0s;width:100%}.user-menu__list__item{border-left:1px solid var(--bdc);display:flex;align-items:center;transition:all .5s ease;padding:2px 30px}.user-menu__list__item:last-child{border-bottom:1px solid var(--bdc)}.user-menu__list__item:hover{background-color:var(--hover-bgc);border-left:1px dotted var(--bdc);font-weight:500}gv-link{margin:0;display:flex;width:100%}.separator{border-top:1px solid var(--bdc)}.active{background-color:var(--gv-theme-neutral-color-dark,#d9d9d9);font-weight:700}.user-menu__list{visibility:visible;opacity:1;transform:translateY(0);z-index:100;transition-delay:0s,0s,.2s}.user-menu__list__group{border-top:1px solid var(--bdc);background-color:var(--gv-theme-neutral-color-light,#efefef);padding-left:0}.user-menu__list__group__title{font-size:small;color:var(--gv-theme-color-darker,#383e3f);border-left:1px solid var(--bdc);padding-left:10px}.closed .user-menu__list{visibility:hidden;opacity:0;transform:translateY(-2em);z-index:-1}gv-icon{transform:rotate(0)}.closed gv-icon{transform:rotate(-180deg)}`]}constructor(){super(),this._isClosed=!0}_onClick(e){e.preventDefault(),this._isClosed=!this._isClosed}_onMouseLeave(){this._isClosed=!0}_onSelect(){this._isClosed=!0}_hasOneItem(){return null==this.username&&this._routes&&1===this._routes.length}set routes(e){e?Promise.resolve(e).then((e=>{e?Promise.all(e).then((e=>{(0,r.isSameRoutes)(this._routes,e)||(this._routes=e.filter((e=>null!=e)))})):this._routes=null})):this._routes=null}_renderFirstItem(){if(this._routes){if(this.username)return e.html`<li class="user-menu__title" @click="${this._onClick}"><div><slot></slot></div><span>${this.username}</span><gv-icon shape="design:triangle"></gv-icon></li>`;if(this._hasOneItem()){const t=this._routes[0];return e.html`<li class="user-menu__title no-user" @click="${this._onClick}"><gv-link .icon="${t.icon}" .path="${t.path}" .title="${t.title}" @click="${this._onSelect}"></gv-link></li>`}}return e.html``}render(){const r={closed:this._isClosed};return this._routes?e.html`<nav class="${(0,s.classMap)(r)}"><ul class="user-menu" @mouseleave="${this._onMouseLeave}">${this._renderFirstItem()}<li class="user-menu__content"><ul class="user-menu__list">${(0,t.repeat)(this._routes,(e=>e),((t,s)=>e.html`${this._hasOneItem()?e.html``:this._renderItem(t)}`))}</ul></li></ul></nav>`:e.html``}_renderItem(s){return s.routes?e.html`<ul class="user-menu__list__group"><span class="user-menu__list__group__title">${s.title}</span> ${(0,t.repeat)(s.routes,(e=>e),((t,s)=>e.html`${this._renderItem(t)}`))}</ul>`:e.html`<li class="user-menu__list__item ${s.separator?"separator":""} ${s.active?"active":""}" style="${s.style}"><gv-link .icon="${s.icon}" .path="${s.path}" .title="${s.title}" .target="${s.target}" @click="${this._onSelect}"></gv-link></li>`}}exports.GvUserMenu=i,window.customElements.define("gv-user-menu",i);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvVerticalMenu=void 0;const e=require("lit");require("../molecules/gv-nav"),require("../atoms/gv-image");const t=require("../lib/utils");class i extends e.LitElement{static get properties(){return{routes:{type:Array},_routes:{type:Array,attribute:!1},logo:{type:String}}}static get styles(){return[e.css`:host{--gv-link--c:var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));--gv-link-active--c:var(--gv-menu--c, var(--gv-theme-font-color-light, #ffffff));--gv-link--bgc:var(--gv-menu-link--bgc, transparent);--gv-link-active--bgc:var(--gv-menu-link-active--bgc, transparent);--gv-link-active--bdw:var(--gv-menu-link-active--bdw, 0 0 0 4px);--gv-link-active--bdc:var(--gv-menu-link-active--bdc, var(--gv-theme-color-light, #86c3d0));--gv-link-active--bds:var(--gv-menu-link-active--bds, solid);--pr:var(--gv-theme-layout--pr, 4rem);--pl:var(--gv-theme-layout--pl, 4rem);box-sizing:border-box;display:block;font-size:var(--gv-theme-font-size-s,16px);width:var(--gv-theme-layout-menu-w,200px)}.menu-container{display:flex;flex-direction:column;justify-content:space-between;background-color:var(--gv-menu--bgc,var(--gv-theme-color-dark,#28444f));color:var(--gv-menu--c,var(--gv-theme-font-color-light,#fff))}gv-image{height:200px;width:200px}gv-nav{transition:width 250ms ease-in-out;display:flex;flex-direction:column;justify-content:space-between;line-height:20px;vertical-align:middle;width:100%;font-size:16px}`]}constructor(){super(),this._routes=[]}set routes(e){e?Promise.resolve(e).then((e=>{e?Promise.all(e).then((e=>{(0,t.isSameRoutes)(this._routes,e)||(this._routes=e.filter((e=>null!=e)))})):this._routes=null})):this._routes=null}render(){return e.html`<div class="menu-container">${this.logo?e.html`<gv-image .src="${this.logo}"></gv-image>`:""}<div class="nav-container"><gv-nav .routes="${this._routes}" vertical></gv-nav></div></div>`}}exports.GvVerticalMenu=i,window.customElements.define("gv-vertical-menu",i);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.PolicyDraggable=exports.GvFlowStep=void 0;const t=require("lit"),e=require("../mixins/with-resize-observer"),o=require("lit/directives/class-map"),i=require("../lib/events");require("../atoms/gv-image"),require("../molecules/gv-dropdown-menu"),require("../atoms/gv-switch");class n extends((0,e.withResizeObserver)(t.LitElement)){static get properties(){return{id:{type:String,reflect:!0},group:{type:String,reflect:!0},parent:{type:String,reflect:!0},step:{type:Object},policy:{type:Object},editing:{type:Boolean,reflect:!0},dragging:{type:Boolean,reflect:!0},hover:{type:Boolean,reflect:!0},title:{type:String,reflect:!0},empty:{type:Boolean,reflect:!0},confirm:{type:Boolean,reflect:!0},disabled:{type:Boolean,reflect:!0},readonly:{type:Boolean,reflect:!0},_small:{type:Boolean,attribute:!1},_confirmDelete:{type:Boolean,reflect:!0},_confirmDuplicate:{type:Boolean,reflect:!0}}}constructor(){super(),this.empty=!0,this.breakpoints={width:[100,200]}}onResize({width:t}){this._small=t<=200}_onDuplicate(){this._confirmDuplicate=!0}_onConfirmDuplicate(){this._confirmDuplicate=!1,(0,i.dispatchCustomEvent)(this,"duplicate",{step:this.step,policy:this.policy,target:this})}_onCancelDuplicate(){this._confirmDuplicate=!1}_onClick(t){t.target.classList.contains("action")||this.editing||(t.preventDefault(),this._edit())}_edit(){this.policy&&!this.disabled&&(0,i.dispatchCustomEvent)(this,"edit",{step:this.step,policy:this.policy,group:this.group})}_onMouseEnter(){if(!this.disabled&&(this.hover=!0,!this.readonly)){this.shadowRoot.querySelector("gv-dropdown-menu").setAttribute("open",!0)}}_onMouseLeave(){if(!this.disabled&&(this.hover=!1,!this.readonly)){this.shadowRoot.querySelector("gv-dropdown-menu").removeAttribute("open")}}_onDelete(){this._confirmDelete=!0}_onConfirmDelete(){this._confirmDelete=!1,(0,i.dispatchCustomEvent)(this,"delete",{step:this.step})}_onCancelDelete(){this._confirmDelete=!1}updated(t){if(t.has("dragging")&&!0===this.dragging){this.shadowRoot.querySelector("gv-dropdown-menu").removeAttribute("open")}t.has("step")&&null!=this.step&&(this.empty=!1)}_onCancel(){this.remove()}_onCopy(){(0,i.dispatchCustomEvent)(this,"copy")}_onMove(){(0,i.dispatchCustomEvent)(this,"move")}_onChangeState({detail:t}){(0,i.dispatchCustomEvent)(this,"change-state",{step:this.step,enabled:t})}_renderDropdownMenu(){if(this.disabled||this.readonly)return t.html``;const e=!1!==this.step.enabled;return t.html`<gv-dropdown-menu right><gv-switch slot="action" class="action" small label="${e?"Enabled":"Disabled"}" title="${e?"Disable policy ?":"Enable policy ?"}" @gv-switch:input="${this._onChangeState}" .value="${e}"></gv-switch><gv-button slot="action" class="action" link small icon="general:duplicate" @gv-button:click="${this._onDuplicate}">Duplicate</gv-button><gv-button slot="action" class="action" link small icon="home:trash" @gv-button:click="${this._onDelete}">Delete</gv-button></gv-dropdown-menu>`}resetConfirm(){this.confirm=!1,this._confirmDelete=!1,this._confirmDuplicate=!1}render(){if(this.confirm)return t.html`<div class="drop-area drop-area-confirm"><gv-button small @gv-button:click="${this._onCopy}">Copy</gv-button><gv-button small @gv-button:click="${this._onMove}">Move</gv-button><gv-button link small @gv-button:click="${this._onCancel}">Cancel</gv-button></div>`;if(this._confirmDelete)return t.html`<div class="drop-area drop-area-confirm"><gv-button small danger @gv-button:click="${this._onConfirmDelete}">Delete</gv-button><gv-button link small @gv-button:click="${this._onCancelDelete}">Cancel</gv-button></div>`;if(this._confirmDuplicate)return t.html`<div class="drop-area drop-area-confirm"><gv-button small @gv-button:click="${this._onConfirmDuplicate}">Duplicate</gv-button><gv-button link small @gv-button:click="${this._onCancelDuplicate}">Cancel</gv-button></div>`;if(this.empty)return t.html`<div class="drop-area"></div>`;{const e=this.step?this.step.name:"",i=this.step&&this.step.description?this.step.description:"",n=this.step&&!!this.step.condition,s=this.step?this.policy&&this.policy.icon:null,r=this.step&&!1!==this.step.enabled,a=null==this.policy;this.title=a?"Warning: policy not found in plugins folder":i;const l={"drop-area":!0,"is-assigned":""!==e,"has-icon":null!=s,disabled:!r,"not-found":a};return t.html`<div class="${(0,o.classMap)(l)}" @click="${this._onClick}" @mouseenter="${this._onMouseEnter}" @mouseleave="${this._onMouseLeave}">${this._renderDropdownMenu()}<div class="content"><div class="content-icon">${n?t.html`<gv-icon class="content-icon-conditional" shape="design:conditional"></gv-icon>`:t.html``} ${s?t.html`<gv-image src="${s}"></gv-image>`:t.html``}</div>${null==s&&a?t.html`<gv-icon class="not-found__icon" shape="finance:folder-error"></gv-icon>`:""}<div><div class="name">${e}</div><div class="description">${i}</div></div></div></div>`}}static get styles(){return[t.css`:host{box-sizing:border-box;margin:.2rem;display:block}:host(:active){outline:0}:host([dragging]){opacity:.5}gv-dropdown-menu{position:absolute;right:0;display:flex;flex-wrap:wrap;justify-content:right;top:-1px;bottom:-1px;z-index:10;--gv-dropdown-menu--bdw:0 0 0 1px;--gv-dropdown-menu--p:0.1rem 0.3rem;--gv-dropdown-menu--gg:0}gv-switch{margin:.2rem 0}:host([hover]) .drop-area{transform:translateY(-4px);box-shadow:0 0 0 1px #5a7684,0 1px 3px #5a7684;border-color:transparent}:host([dragging]) .drop-area{transform:translateY(-4px)}:host([editing]) .drop-area{border-color:#5a7684;transform:translateY(-4px);box-shadow:0 0 0 1px #5a7684,0 1px 3px #5a7684;transition:all .2s}:host([w-lt-200]) gv-image{position:absolute;opacity:.1;width:100%}:host([w-lt-200]) .drop-area:hover gv-image{opacity:1}:host([w-lt-200]) .content-icon{position:absolute;width:100%;height:100%}:host([w-lt-100]) .description{display:none}:host([empty]) .drop-area{position:relative;background-color:transparent;border:2px dashed #bfbfbf;font-size:14px}.description{line-height:14px;font-size:12px;max-height:42px;overflow:hidden}.drop-area{position:relative;border:2px dashed #bfbfbf;border-radius:4px;height:80px;min-width:80px;margin:4px;padding:4px;word-break:break-word;display:flex;align-items:center;text-align:center;justify-content:center;flex-direction:column;--gv-button--fz:11px;flex:1;transition:color 150ms ease-in-out,transform .3s ease-in-out,box-shadow .3s ease-in-out,border .3s ease-in-out;background-color:#fff}.drop-area.disabled{text-decoration:line-through;font-style:italic}.drop-area.not-found{border-color:var(--gv-theme-color-warning-light,#ffb74d)}.drop-area.has-icon{padding-left:0;text-align:left}.drop-area.has-icon .content{justify-content:left}.drop-area.is-assigned{border-style:solid}:host([hover]) .drop-area.is-assigned:not(.not-found){cursor:grab}:host([hover]) .drop-area.is-assigned:not(.not-found):active{cursor:grabbing}:host([readonly]) .drop-area.is-assigned:not(.not-found),:host([readonly]) .drop-area.is-assigned:not(.not-found):active{cursor:pointer}.content{display:flex;align-items:center;justify-content:center;text-align:center;width:100%}.content>div,.content>mark{width:100%}.content-icon{flex:0 1 0%;display:flex;margin:.2rem}.content-icon-conditional{position:absolute;z-index:10;margin:.2rem}gv-image{height:80px;width:80px}.not-found__icon{--gv-icon--c:var(--gv-theme-color-warning-light, #ffb74d);height:60px;width:60px;margin:.2rem;justify-content:center;align-items:center}.drop-area-confirm{flex-direction:row;align-items:center;justify-content:center;background-color:#fff}`]}}exports.GvFlowStep=n;class s{static parse(t){const e=JSON.parse(t);return new s(e.policy,e.sourcePosition,e.sourceFlowKey,e.sourceFlowId,e.flowStep)}constructor(t,e,o,i,n){this.policy=t,this.sourcePosition=e,this.sourceFlowKey=o,this.sourceFlowId=i,this.flowStep=n}toString(){return JSON.stringify(this)}}exports.PolicyDraggable=s,window.customElements.define("gv-flow-step",n);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvFlow=void 0;const t=require("lit"),e=require("lit/directives/class-map"),i=require("../lib/events");require("../atoms/gv-image");const o=require("../lib/utils"),r=require("./gv-flow-step"),s=require("../lib/studio");class l extends t.LitElement{static get properties(){return{flow:{type:Object},plan:{type:Object},policies:{type:Object},selectedStepId:{type:String},dragPolicy:{type:Object},dropPolicy:{type:Object},disabled:{type:Boolean,reflect:!0},hasPolicyFilter:{type:Boolean,attribute:"has-policy-filter"},flowsTitle:{type:String,attribute:"flows-title"},readonly:{type:Boolean,reflect:!0}}}constructor(){super(),this.flowsTitle="Flows",this.addEventListener("mouseleave",this._onMouseLeave)}_onMouseLeave(){this.dragPolicy=null,this.dropPolicy=null}getCandidate(){return this.shadowRoot.querySelector("gv-flow-step[empty]")}getFlowSteps(){return Array.from(this.shadowRoot.querySelectorAll("gv-flow-step"))}getOrCreateCandidate(){let t=this.getCandidate();return t||(t=document.createElement("gv-flow-step"),t.setAttribute("empty",!0)),t}removeCandidate(){const t=this.getCandidate();t&&t.remove()}_canDropPolicy(t,e){if(this.disabled||this.readonly)return!1;if(null!=e){if("pre"===t)return!0!==this.hasPolicyFilter||!0===e.onRequest;if("post"===t)return!0!==this.hasPolicyFilter||!0===e.onResponse;throw new Error(`The flowkey [${t}] parameter must be "pre" or "post"`)}return!1}_onDragOver(t,e){if(!this.disabled&&!this.readonly&&e.dataTransfer.items.length>0&&(e.preventDefault(),e.stopPropagation(),null==this.dropPolicy?this.dropPolicy=this.dragPolicy:this.dragPolicy=this.dropPolicy,null!=this.dropPolicy&&this._canDropPolicy(t,this.dropPolicy.policy)&&!e.target.classList.contains("candidate")&&!e.target.hasAttribute("dragging")))if("gv-flow-step"===e.target.tagName.toLowerCase()){const{x:i,width:o}=e.target.getBoundingClientRect();!("post"===t?e.clientX-i<=o/2:e.clientX-i>=o/2)||e.target.nextElementSibling&&e.target.nextElementSibling.hasAttribute("dragging")?e.target.previousElementSibling&&e.target.previousElementSibling.hasAttribute("dragging")||e.target.insertAdjacentElement("beforebegin",this.getOrCreateCandidate()):e.target.insertAdjacentElement("afterend",this.getOrCreateCandidate())}else if(e.target.classList&&e.target.classList.contains("drop-area-grid")){0===e.target.querySelectorAll("gv-flow-step").length&&e.target.prepend(this.getOrCreateCandidate())}else this.removeCandidate()}_onDragEnd(){this.disabled||this.readonly||(this._draggablePolicyImage&&(this._draggablePolicyImage.remove(),this._draggablePolicyImage=null),this.dragPolicy=null,this.dropPolicy=null)}_onDragStart(t,e,s,l){if(!this.disabled&&!this.readonly){const a=this.findPolicy(e.policy);if(null!=a){const d=document.createEvent("Events");if(d.initEvent("click",!0,!1),window.dispatchEvent(d),l.target.setAttribute("dragging",!0),this.shadowRoot.querySelector(".drop-area-grid").classList.add("dragging"),this.dropPolicy=new r.PolicyDraggable(a,s,t,this.flow._id,e),l.dataTransfer.setData("text/plain",this.dropPolicy.toString()),a){const t=100;this._draggablePolicyImage=(0,o.appendDraggableImage)(a.icon,t),l.dataTransfer.setDragImage(this._draggablePolicyImage,t/2,t/2)}(0,i.dispatchCustomEvent)(this,"drag-start",this.dropPolicy)}}}async performUpdate(){this.getFlowSteps().forEach((t=>{t.requestUpdate()})),super.performUpdate()}get draggingArea(){return this.shadowRoot.querySelector("gv-flow-step[dragging]")}_onDrop(t,e){this.shadowRoot.querySelectorAll("gv-flow-step").forEach((t=>t.resetConfirm())),e.preventDefault(),e.stopPropagation();const o=e.target.closest(".drop-area-grid"),r=this.getCandidate(),s=this.draggingArea;if(r){let e=0;[...o.querySelectorAll("gv-flow-step")].some((t=>(t.hasAttribute("empty")||e++,t.hasAttribute("empty"))));const{policy:l,sourceFlowKey:a,sourceFlowId:d,sourcePosition:n,flowStep:p}=this.dropPolicy,g=()=>{s&&s.removeAttribute("dragging"),r.remove(),(0,i.dispatchCustomEvent)(this,"drop",{flowId:this.flow._id,flowKey:t,position:e,flowStep:p,policy:l,sourcePosition:n,sourceFlowKey:a,sourceFlowId:d}),this.dragPolicy=null,this.dropPolicy=null};null!=d&&this.flow._id!==d?(r.setAttribute("confirm",!0),r.addEventListener("gv-flow-step:copy",(()=>{r.remove(),this.dragPolicy=null,this.dropPolicy=null,(0,i.dispatchCustomEvent)(this,"drop",{flowId:this.flow._id,flowKey:t,position:e,policy:l,flowStep:p,cancelEdit:!0})})),r.addEventListener("gv-flow-step:move",(()=>{r.remove(),g()}))):g()}else s&&(s.removeAttribute("dragging"),this.dragPolicy=null,this.dropPolicy=null)}getFlowStep(t,e){return this.flow[t][e]}_onEditStep({detail:{step:t,policy:e,group:o}}){(0,i.dispatchCustomEvent)(this,"edit",{flow:this.flow,step:t,policy:e,group:o})}_onDuplicateStep(t,e){const r=this.getFlowStep(t,e),s=e+1,l=this.findPolicy(r.policy),a={...r,_id:(0,o.uuid)()};(0,i.dispatchCustomEvent)(this,"drop",{flowId:this.flow._id,flowKey:t,position:s,flowStep:a,policy:l})}_isEditable(t){return this.selectedStepId&&this.selectedStepId===t._id}_onDeleteStep(t,e,o){(0,i.dispatchCustomEvent)(this,"delete",{flowKey:t,position:e,flowId:this.flow._id,target:o.target})}_onChangeStepState(t,e,{detail:o}){(0,i.dispatchCustomEvent)(this,"change-state",{flowKey:t,position:e,flowId:this.flow._id,...o})}_renderDropStep(e,i,o){return i?t.html`<gv-flow-step .step="${i}" .policy="${this.findPolicy(i.policy)}" .id="${i._id}" .group="${e}" .parent="${this.flow._id}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" .draggable="${!this.disabled&&!this.readonly}" ?editing="${this._isEditable(i)}" @dragstart="${this._onDragStart.bind(this,e,i,o)}" @dragend="${this._onDragEnd}" @gv-flow-step:edit="${this._onEditStep}" @gv-flow-step:change-state="${this._onChangeStepState.bind(this,e,o)}" @gv-flow-step:delete="${this._onDeleteStep.bind(this,e,o)}" @gv-flow-step:duplicate="${this._onDuplicateStep.bind(this,e,o)}"></gv-flow-step>`:t.html``}async getUpdateComplete(){await super.getUpdateComplete(),await Promise.all(this.getFlowSteps().map((t=>t.updateComplete)))}updated(t){t.has("data")&&this.onDragEnd(),(t.has("dropPolicy")||t.has("dragPolicy"))&&null==this.dropPolicy&&null==this.dragPolicy&&this.removeCandidate()}onDragEnd(){setTimeout((()=>{this.shadowRoot.querySelector(".drop-area-grid").classList.remove("dragging"),this.removeCandidate();const t=this.draggingArea;t&&t.removeAttribute("dragging")}),0)}_getLabel(e){return this.flow.type?t.html`<div class="drop-box-type">${e}</div><div>${"ROOT"===this.flow.type.toUpperCase()?"flow":this.flow.type}</div>`:"pre"===e?"request":"post"===e?"response":""}get collectionName(){return null!=this.plan?this.plan.name:this.flowsTitle}render(){const i=this.dragPolicy&&(!0!==this.hasPolicyFilter||this.dragPolicy.policy.onRequest),o=this.dragPolicy&&(!0!==this.hasPolicyFilter||this.dragPolicy.policy.onResponse),r=this.dragPolicy&&!0===this.hasPolicyFilter&&!this.dragPolicy.policy.onRequest,l=this.dragPolicy&&!0===this.hasPolicyFilter&&!this.dragPolicy.policy.onResponse,a=null==this.flow.type||this.flow.type&&"root"!==this.flow.type.toLowerCase();return t.html`<div class="box"><div class="container"><div class="header"><div class="title">${(0,s.getFlowName)(this.flow,this.collectionName)}</div></div><div class="content"><div class="flow"><div class="${(0,e.classMap)({pre:!0,targeted:i,forbidden:r})}"><div class="arrow arrow-right"></div><div class="drop-box" @drop="${this._onDrop.bind(this,"pre")}" @dragend="${this.onDragEnd}" @dragover="${this._onDragOver.bind(this,"pre")}"><div class="drop-box-title">${i?"drop here":this._getLabel("pre")}</div><div class="drop-area-grid">${this.flow.pre.map(((t,e)=>this._renderDropStep("pre",t,e)))}</div></div></div>${a?t.html`<div class="${(0,e.classMap)({post:!0,targeted:o,forbidden:l})}"><div class="arrow arrow-left"></div><div class="drop-box" @drop="${this._onDrop.bind(this,"post")}" @dragend="${this.onDragEnd}" @dragover="${this._onDragOver.bind(this,"post")}"><div class="drop-area-grid drop-area-grid-reverse">${this.flow.post.map(((t,e)=>this._renderDropStep("post",t,e)))}</div><div class="drop-box-title">${o?"drop here":this._getLabel("post")}</div></div></div>`:""}</div></div></div></div>`}findPolicy(t){return this.policies.find((e=>e.id===t))}static get styles(){return[s.methods,t.css`:host{box-sizing:border-box;position:relative;display:block;height:100%}.flow{padding-left:20px;display:flex;height:100%;flex-direction:column}.drop-area-grid{flex:1;border:1px dashed transparent;transition:all 350ms ease-in-out;position:relative;display:flex;flex-wrap:wrap;max-width:calc(100% - 40px);align-items:center;min-height:150px;box-sizing:border-box;padding:0 30px}.targeted .drop-area-grid{border:1px dashed #d9d9d9}.forbidden .drop-area-grid{background-color:#efefef;opacity:.2}gv-flow-step{flex:1}.message{text-transform:uppercase;color:#d9d9d9;opacity:0;transition:opacity 350ms ease-in-out;font-size:18px;text-align:center;align-self:center}.message{width:100%}.targeted .message{opacity:1}.targeted .drop-area-empty{opacity:0;transition:all 350ms ease-in-out}.post,.pre{position:relative;flex:1;display:flex}.arrow{background-color:#d9d9d9;width:calc(100% - 50px * 2 - 1px);text-align:center;position:absolute;margin:0 30px;color:#262626;top:calc(50% - 20px);height:40px}.arrow-right::after{width:0;height:0;border-top:40px solid transparent;border-bottom:40px solid transparent;border-left:40px solid #d9d9d9;content:' ';position:absolute;right:-20px;top:-20px}.drop-box-type{position:relative;writing-mode:horizontal-tb;margin-bottom:10px}.drop-box-title{position:relative;writing-mode:vertical-lr;text-orientation:upright;text-transform:uppercase;color:#bfbfbf;font-size:13px;font-weight:500;text-align:center;max-height:145px;line-height:13px;display:flex;align-items:center;min-width:30px}.pre .drop-box-title{position:absolute;left:-30px}.arrow-left::after{width:0;height:0;border-top:40px solid transparent;border-bottom:40px solid transparent;border-right:40px solid #d9d9d9;content:' ';position:absolute;left:-20px;top:-20px}.drop-box{display:flex;border:1px solid transparent;margin:0 30px;align-items:center;position:relative;width:100%}.drop-area-grid-reverse{flex-direction:row-reverse}.header{border-bottom:1px solid #d9d9d9;display:flex;min-height:45px;margin-bottom:.5rem}.header .title{color:#28444f;font-size:18px;display:flex;align-items:center;margin:0 .5rem;width:100%}.header .title .flow-path{flex:1}.box{position:absolute;display:flex;flex-direction:column;width:100%;top:0;bottom:0;left:0}.container{flex-grow:1;display:flex;flex-direction:column;min-height:0;height:100%}.content{background:#fff;flex-grow:1;overflow:auto;min-height:0;padding:.5rem}`]}}exports.GvFlow=l,window.customElements.define("gv-flow",l);
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.GvPolicyStudioMenu=void 0;const e=require("lit"),t=require("../styles/link"),i=require("../lib/events"),o=require("lit/directives/class-map");require("../atoms/gv-image"),require("../atoms/gv-state"),require("../molecules/gv-popover"),require("./gv-flow-step");const l=require("../lib/studio"),s=require("lit/directives/repeat"),n=require("../lib/utils");class a extends e.LitElement{static get properties(){return{policies:{type:Array},flows:{type:Object},plans:{type:Object},selectedIds:{type:Array},sortable:{type:Boolean},disabled:{type:Boolean,reflect:!0},query:{type:String},flowsTitle:{type:String,attribute:"flows-title"},hasPolicyFilter:{type:Boolean,attribute:"has-policy-filter"},canAdd:{type:Boolean,attribute:"can-add"},readonly:{type:Boolean},readonlyPlans:{type:Boolean}}}constructor(){super(),this.selectedIds=[],this.flowsTitle="Flows"}static get styles(){return[t.link,l.methods,e.css`:host{box-sizing:border-box;min-width:250px;display:flex;flex-direction:column}:host([disabled]){opacity:.5}:host([disabled]) *{cursor:not-allowed}.box{flex:1;overflow:auto}.type{background-color:#f5f5f5;text-transform:capitalize;text-decoration:none;padding:.2rem;color:#262626;border-width:1px 0 1px 0;border-style:solid;border-color:#bfbfbf;font-size:15px;display:flex;align-items:center;box-sizing:border-box;height:42px}.type .type-name{flex:1}.entry .entry-name,.type .type-name{display:flex;align-items:center;white-space:nowrap;overflow:hidden;min-width:150px;height:100%}.expandable{background:#fff;overflow:hidden;transition:height,opacity,width,padding,color .25s ease-in-out;line-height:0;color:transparent;box-sizing:border-box;font-size:14px;--gv-icon--s:0;visibility:hidden}.expandable.open{line-height:1.5;padding-top:.5rem;padding-bottom:.5rem;color:#262626;overflow:auto;visibility:visible}.entry{display:flex;align-items:center;user-select:none;position:relative}.entry.disabled{text-decoration:line-through;font-style:italic}.entry gv-image{height:0;width:0;transition:height 75ms ease-in-out;visibility:hidden}.entry gv-tag{display:none}.expandable-icon{margin-right:2px;--gv-icon--s:22px;--gv-icon--c:#5a7684;--gv-icon-opacity--c:#5a7684}.policy-icon{--gv-icon--s:40px;margin-right:2px;--gv-icon--c:#5a7684;--gv-icon-opacity--c:#5a7684}.expandable.open .entry gv-tag{display:block}.expandable.open .entry gv-image{height:40px;width:40px;margin-right:5px;visibility:visible}.expandable.open .entry:focus-within{--gv-icon--c:#28444f;color:#28444f}.expandable.open .entry:focus-within .actions{visibility:visible;opacity:1;height:25px}.flow-path{max-width:200px}.entry .actions{background-color:#fff;transition:all 250ms ease-in-out;align-items:center;display:flex;position:absolute;right:0;padding:.1rem}gv-button{--gv-icon--c:#28444f}.entry .actions>*{margin:1px;opacity:0;visibility:hidden;display:none}.entry:focus-within .actions>*{opacity:1;visibility:visible;display:block}.flow-path{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.expandable.open .entry{border:1px dotted transparent;padding:.2rem;line-height:25px;min-height:32px}.expandable.open .entry{--gv-icon--s:16px}.expandable.open .entry.selected,.expandable.open .entry.selected .actions{background-color:#f5f5f5}.expandable.open .entry.selected{border-top:1px dotted #bfbfbf;border-bottom:1px dotted #bfbfbf;border-right:1px dotted #bfbfbf}.dragging{cursor:grabbing;opacity:1;background-color:#f5f5f5;box-shadow:0 0 5px rgba(0,0,0,.1);transform:none}.flow{margin-left:.2rem}.flow.sortable{margin:0}.policy.draggable gv-icon,.policy.draggable gv-image,.sortable,.sortable gv-icon{cursor:grab}.policy.draggable:active,.sortable gv-icon:active,.sortable:active{cursor:grabbing}.policy-name{flex:1;display:flex;align-items:center}.policy .draggable-icon{opacity:0;visibility:hidden;transition:all 350ms ease-in-out}.policy:hover .draggable-icon{opacity:1;visibility:visible}gv-state,gv-tag{--gv-tag--p:1px 3px;--gv-state--p:4px 6px;--gv-state--fz:10px;--gv-state--c:#28444f;--gv-state--bgc:#ffffff;margin:0 1px}.error-icon{--gv-icon--c:var(--gv-theme-color-warning, #ff9800)}`]}_onExpand(e,t){this.disabled||(t.preventDefault(),t.stopPropagation(),this.shadowRoot.querySelector(e).classList.toggle("open"))}_onDragStartPolicy(e,t){t.dataTransfer.setData("text/plain",JSON.stringify({policy:e}));this._draggablePolicyImage=(0,n.appendDraggableImage)(e.icon,100),t.dataTransfer.setDragImage(this._draggablePolicyImage,50,50),(0,i.dispatchCustomEvent)(this,"dragstart-policy",{dataTransfer:t.dataTransfer})}_onDragEndPolicy(){this._draggablePolicyImage&&(this._draggablePolicyImage.remove(),this._draggablePolicyImage=null),(0,i.dispatchCustomEvent)(this,"dragend-policy")}_onClickFlow(e,t){this.disabled||(t.shiftKey?this._compareFlow(e):this._selectFlow(e))}_selectFlow(e){this.selectedIds=[e._id],(0,i.dispatchCustomEvent)(this,"select-flows",{flows:this.selectedIds})}_compareFlow(e){this.selectedIds.length>0?(this.selectedIds=[...new Set([this.selectedIds[0],e._id])],(0,i.dispatchCustomEvent)(this,"select-flows",{flows:this.selectedIds})):this._selectFlow(e)}_onMouseEnterPolicy(e){(0,i.dispatchCustomEvent)(this,"target-policy",{policy:e})}_onMouseLeavePolicy(){(0,i.dispatchCustomEvent)(this,"target-policy",null)}_onMouseEnterFlow(e){null==this._draggingFlow&&e.target.focus()}_onMouseLeaveFlow(e){null==this._draggingFlow&&e.target.blur()}_filter(e){return!this.query||e.name.toLowerCase().includes(this.query.toLowerCase())}hasCompare(){return this.selectedIds.length>1}_onChangeFlowState(e,{detail:t}){(0,i.dispatchCustomEvent)(this,"change-flow-state",{content:e,enabled:t})}_onDuplicateFlow(e){(0,i.dispatchCustomEvent)(this,"duplicate-flow",{content:e})}_onDeleteFlow(e){(0,i.dispatchCustomEvent)(this,"delete-flow",{content:e})}_renderFlowActions(t,i){if(this.disabled)return e.html``;const o=!1!==t.enabled,l=o?"Disable flow ?":"Enable flow ?";return e.html`<div class="actions">${this.hasCompare()||this.selectedIds.includes(t._id)?"":e.html`<gv-button tabindex="0" link small icon="navigation:route" @gv-button:click="${this._compareFlow.bind(this,t)}" title="Compare"></gv-button>`} ${this.canAdd&&!0!==i?e.html`<gv-button tabindex="0" link small icon="general:duplicate" @gv-button:click="${this._onDuplicateFlow.bind(this,t)}" title="Duplicate"></gv-button><gv-button tabindex="0" link small icon="home:trash" @gv-button:click="${this._onDeleteFlow.bind(this,t)}" title="Delete"></gv-button>`:""} ${!0!==i?e.html`<gv-switch tabindex="0" small title="${l}" .value="${o}" @gv-switch:input="${this._onChangeFlowState.bind(this,t)}"></gv-switch>`:""}</div>`}_onDragStartFlow(e,t,i){const o=i.target.classList;o&&o.contains("flow")&&(o.remove("hover"),o.add("dragging"),this._draggingFlow={target:i.target,flow:e,index:t})}_onDragEnterFlow(e){e.target.classList&&e.target.classList.contains("flow")&&this._draggingFlow.target.parentElement===e.target.parentElement&&(e.target.previousSibling!==this._draggingFlow.target?e.target.parentElement.insertBefore(this._draggingFlow.target,e.target):e.target.nextSibling?e.target.parentElement.insertBefore(this._draggingFlow.target,e.target.nextSibling):e.target.parentElement.appendChild(this._draggingFlow.target),this._draggingFlow.target.classList.remove("dragging"))}_findFlowCollection(e){const t=this.plans.find((t=>null!=t.flows.find((t=>t._id===e))));return{plan:t,flows:null!=t?t.flows:this.flows}}_onDragEndFlow(){this._draggingFlow.target.classList.remove("dragging");const e=[...this._draggingFlow.target.parentElement.querySelectorAll('.flow[draggable="true"]')].indexOf(this._draggingFlow.target);if(e!==this._draggingFlow.index){const{plan:t,flows:o}=this._findFlowCollection(this._draggingFlow.flow._id),l=o.splice(this._draggingFlow.index,1)[0];o.splice(e,0,l);const s=Math.min(this._draggingFlow.index,e),n=Math.max(this._draggingFlow.index,e);o.forEach(((e,t)=>{t>=s&&t<=n&&(e._dirty=!0)})),(0,i.dispatchCustomEvent)(this,"reorder-flows",{plan:t}),setTimeout((()=>{this._draggingFlow=null}),0),this._draggingFlow.target.focus()}}_onDragOverFlow(e){e.preventDefault()}_onKeyDownFlow(e,t){t.target.classList.contains("flow")&&32===t.keyCode&&(t.preventDefault(),this._selectFlow(e))}_onClickPolicy(e){this.disabled||(this.selectedIds=[e.id],(0,i.dispatchCustomEvent)(this,"fetch-documentation",{policy:e}))}_isSelected(e){return null!=this.selectedIds&&this.selectedIds.includes(e)}_renderFlows(t,i,a,r,d){const c=a&&this.readonlyPlans;return e.html`<div class="${(0,o.classMap)({content:!0,expandable:!0,open:d})}" id="${r}">${(0,s.repeat)(t,(()=>(0,n.uuid)()),((t,i)=>e.html`<div draggable="${this.sortable&&!this.disabled&&!c}" tabindex="0" @dragstart="${this._onDragStartFlow.bind(this,t,i)}" @dragenter="${this._onDragEnterFlow}" @dragend="${this._onDragEndFlow}" @dragover="${this._onDragOverFlow}" @keydown="${this._onKeyDownFlow.bind(this,i)}" @mouseenter="${this._onMouseEnterFlow}" @mouseleave="${this._onMouseLeaveFlow}" class="${(0,o.classMap)({entry:!0,flow:!0,sortable:this.sortable&&!this.disabled&&!c,selected:this.selectedIds.includes(t._id),child:a,disabled:!1===t.enabled})}"><div title="${t.name} | Compare with current selection (Shift + click)" @click="${this._onClickFlow.bind(this,t)}" class="entry-name link">${(0,l.getFlowName)(t,null,!0,this.sortable&&!c,!0)}</div>${this._renderFlowActions(t,this.readonly||c)}</div>`))}</div>`}_isDraggable(e){return!this.disabled&&(!0!==this.hasPolicyFilter||!0===e.onRequest||!0===e.onResponse)}_renderPolicies(t,i,l,s,n){return e.html`<div id="${s}" class="${(0,o.classMap)({content:!0,expandable:!0,open:!0,child:l})}">${t.map((t=>{const i=this._isDraggable(t);return e.html`<div class="${(0,o.classMap)({entry:!0,link:!0,policy:!0,selected:this._isSelected(t.id),draggable:i})}" draggable="${i}" @mouseenter="${this._onMouseEnterPolicy.bind(this,t)}" @mouseleave="${this._onMouseLeavePolicy.bind(this,t)}" @dragstart="${this._onDragStartPolicy.bind(this,t)}" @dragend="${this._onDragEndPolicy}" @click="${this._onClickPolicy.bind(this,t)}" title="Show documentation of ${t.name}">${null==t.icon&&null!=n?e.html`<gv-icon class="policy-icon" shape="${this._getGroupShape(n)}"></gv-icon>`:e.html`<gv-image src="${t.icon}"></gv-image>`}<div class="policy-name">${t.name}</div>${i?e.html`<gv-icon class="draggable-icon" shape="design:arrows"></gv-icon>`:e.html``}</div>`}))}</div>`}_getGroupShape(e){return"security"===e?"general:shield-protected":"transformation"===e?"tools:roller":"performance"===e?"general:thunder-move":"communication:shield-thunder"}_renderPart(t,i,o,l=[],s,n,a=null,r=!0,d=!1,c){let g;const h=l.filter((e=>this._filter(e)));if(s&&l.length>0||!s){if(a&&!d){const i=[...new Set(h.map((e=>e[a])))];return e.html`${i.map(((i,l)=>{let d=h.filter((e=>e[a]===i));const c=i?i.replace(/\s+/g,"-").toLowerCase():`group-${l}`,g=`#${c}`;let p=e.html`<gv-state>${d.length}</gv-state>`;return n&&(p=e.html`<gv-button small outlined icon="code:plus" title="Add new flow" @click="${n.bind(this,l,c)}"></gv-button>`),"flows"===t&&(d=d[0].flows),e.html`<div class="type" @click="${this._onExpand.bind(this,g)}"><gv-icon class="expandable-icon" shape="${this._getGroupShape(i)}"></gv-icon><div class="link type-name">${i||"No category"}</div>${p}</div>${this._renderPart(t,i,o,d,s,n,a,r,!0,c)}`}))}`}if(null==c&&(c=t.replace(/\s+/g,"-").toLowerCase()),g="flows"===t?this._renderFlows(h,t,d,c,r):this._renderPolicies(h,t,d,c,i),d)return e.html`${g}`;{const t=`#${c}`;let l="";return n&&(l=e.html`<gv-button small outlined icon="code:plus" title="Add new flow" @click="${n.bind(this,c)}"></gv-button>`),e.html`<div class="type" draggable="false">${o?e.html`<gv-icon class="expandable-icon" shape="${o}"></gv-icon>`:""}<div class="type-name link" @click="${this._onExpand.bind(this,t)}">${i}</div>${l}</div>${g}`}}return e.html``}_getListElement(e){return this.shadowRoot.querySelector(`#${e}`)}_onAddFlowToPlan(e,t,o){this._getListElement(t).classList.add("open"),o.preventDefault(),o.stopPropagation(),(0,i.dispatchCustomEvent)(this,"add-flow-plan",{planIndex:e})}_onAddFlow(e,t){this._getListElement(e).classList.add("open"),t.preventDefault(),t.stopPropagation(),(0,i.dispatchCustomEvent)(this,"add-flow")}render(){return e.html`<slot name="header"></slot><div class="box">${null!=this.plans?this._renderPart("flows","","shopping:sale#2",this.plans,!1,!this.canAdd||this.disabled||this.readonlyPlans?null:this._onAddFlowToPlan,"name"):""} ${null!=this.flows?this._renderPart("flows",this.flowsTitle,"shopping:box#3",this.flows,!1,this.canAdd&&!this.disabled?this._onAddFlow:null):""} ${null!=this.policies?this._renderPart("policies","Policies","communication:shield-thunder",this.policies,!0,null,this.policies.length>0&&null!=this.policies[0].category?"category":null):""}</div><slot name="footer"></slot>`}}exports.GvPolicyStudioMenu=a,window.customElements.define("gv-policy-studio-menu",a);