@luzmo/analytics-components-kit 1.0.1-alpha.97 → 1.0.1-alpha.99

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 (116) hide show
  1. package/angular/README.md +2 -2
  2. package/angular/components/ai-interaction-textarea.component.ts +8 -0
  3. package/angular/components/{filter-data-item-picker.component.ts → data-items-select.component.ts} +34 -17
  4. package/angular/components/edit-filters/index.ts +1 -0
  5. package/angular/components/edit-filters/types.ts +10 -0
  6. package/angular/components/edit-filters.component.ts +41 -0
  7. package/angular/components/slot-contents-picker.component.ts +8 -6
  8. package/angular/esm/components/ai-interaction-textarea.component.d.ts +5 -1
  9. package/angular/esm/components/ai-interaction-textarea.component.js +22 -2
  10. package/angular/esm/components/data-items-select.component.d.ts +33 -0
  11. package/angular/esm/components/{filter-data-item-picker.component.js → data-items-select.component.js} +41 -26
  12. package/angular/esm/components/edit-filters/index.d.ts +1 -0
  13. package/angular/esm/components/edit-filters/index.js +1 -0
  14. package/angular/esm/components/edit-filters/types.d.ts +8 -0
  15. package/angular/esm/components/edit-filters/types.js +1 -0
  16. package/angular/esm/components/edit-filters.component.d.ts +21 -0
  17. package/angular/esm/components/edit-filters.component.js +89 -0
  18. package/angular/esm/components/slot-contents-picker.component.d.ts +7 -6
  19. package/angular/esm/components/slot-contents-picker.component.js +11 -6
  20. package/angular/esm/index.d.ts +5 -5
  21. package/angular/esm/index.js +6 -6
  22. package/angular/esm/types.d.ts +9 -0
  23. package/angular/index.ts +6 -6
  24. package/angular/types.ts +17 -0
  25. package/angular/utils/filters/expressions.d.ts +1 -1
  26. package/components/ai-interaction-textarea/ai-interaction-textarea.d.ts +21 -0
  27. package/components/ai-interaction-textarea/index.cjs +17 -15
  28. package/components/ai-interaction-textarea/index.js +90 -65
  29. package/components/{filter-data-item-picker/filter-data-item-picker.d.ts → data-items-select/data-items-select.d.ts} +36 -21
  30. package/components/data-items-select/index.cjs +39 -0
  31. package/components/data-items-select/index.d.ts +6 -0
  32. package/components/{filter-data-item-picker → data-items-select}/index.js +127 -109
  33. package/components/dataset-selector-list/index.cjs +1 -1
  34. package/components/dataset-selector-list/index.js +3 -3
  35. package/components/dataset-selector-row/index.cjs +1 -1
  36. package/components/dataset-selector-row/index.js +1 -1
  37. package/components/{de-COKGBX9L.cjs → de-DOYL4txr.cjs} +1 -1
  38. package/components/{de-DU0DlXuf.js → de-SDzGVifr.js} +10 -1
  39. package/components/display-settings-binning/index.cjs +1 -1
  40. package/components/display-settings-binning/index.js +1 -1
  41. package/components/display-settings-datetime/index.cjs +1 -1
  42. package/components/display-settings-datetime/index.js +1 -1
  43. package/components/display-settings-grand-totals/index.cjs +1 -1
  44. package/components/display-settings-grand-totals/index.js +1 -1
  45. package/components/display-settings-numeric/index.cjs +1 -1
  46. package/components/display-settings-numeric/index.js +1 -1
  47. package/components/display-settings-period-over-period/index.cjs +1 -1
  48. package/components/display-settings-period-over-period/index.js +1 -1
  49. package/components/draggable-data-item/index.cjs +1 -1
  50. package/components/draggable-data-item/index.js +1 -1
  51. package/components/draggable-data-item-level/index.cjs +1 -1
  52. package/components/draggable-data-item-level/index.js +1 -1
  53. package/components/droppable-slot/index.cjs +9 -9
  54. package/components/droppable-slot/index.js +82 -158
  55. package/components/edit-filters/edit-filters.d.ts +79 -0
  56. package/components/edit-filters/index.cjs +144 -0
  57. package/components/edit-filters/index.d.ts +8 -0
  58. package/components/edit-filters/index.js +341 -0
  59. package/components/edit-filters/types.d.ts +8 -0
  60. package/components/{es-BxR1uGKR.js → es-B1TeapPZ.js} +10 -1
  61. package/components/{es-CaKfa7fn.cjs → es-DcQvrHgz.cjs} +1 -1
  62. package/components/filter-expression-picker/index.cjs +1 -1
  63. package/components/filter-expression-picker/index.js +1 -1
  64. package/components/filter-item/filter-item.d.ts +1 -1
  65. package/components/filter-item/index.cjs +7 -5
  66. package/components/filter-item/index.js +78 -68
  67. package/components/filter-value-picker/index.cjs +1 -1
  68. package/components/filter-value-picker/index.js +1 -1
  69. package/components/filter-value-picker-datetime/index.cjs +2 -2
  70. package/components/filter-value-picker-datetime/index.js +4 -4
  71. package/components/filter-value-picker-hierarchy/index.cjs +1 -1
  72. package/components/filter-value-picker-hierarchy/index.js +2 -2
  73. package/components/filter-value-picker-numeric/index.cjs +2 -1
  74. package/components/filter-value-picker-numeric/index.js +3 -2
  75. package/components/{fr-DiZbjx_a.cjs → fr-D6QmA3Ve.cjs} +1 -1
  76. package/components/{fr-CvltYxR_.js → fr-sZFBmltf.js} +10 -1
  77. package/components/{get-css-variable-Pzks_rOx.cjs → get-css-variable-C0B_Sxqf.cjs} +1 -1
  78. package/components/{get-css-variable-Bb7TxJdX.js → get-css-variable-DgTBQV3c.js} +2 -1
  79. package/components/grid/index.cjs +1 -1
  80. package/components/grid/index.js +1 -1
  81. package/components/{index-DNPULp4A.js → index-BikhVAa1.js} +1 -1
  82. package/components/{index-CFL6gmIu.cjs → index-CAbDIHYI.cjs} +1 -1
  83. package/components/{index-BNAmjOkm.cjs → index-DM58h73U.cjs} +3 -3
  84. package/components/{index-DdyZ2g5L.js → index-DR5275fa.js} +48 -18
  85. package/components/index.cjs +1 -1
  86. package/components/index.js +105 -106
  87. package/components/{nl-CLs7FmRK.js → nl-BYXZ-qNp.js} +10 -1
  88. package/components/{nl-Bot6bJ4g.cjs → nl-D7oNsLn0.cjs} +1 -1
  89. package/components/{set-locale-hKTMz37h.js → set-locale-B5562CBM.js} +1 -1
  90. package/components/{set-locale-BRRalqne.cjs → set-locale-B8iQGfk0.cjs} +1 -1
  91. package/components/slot-contents-picker/index.cjs +31 -27
  92. package/components/slot-contents-picker/index.js +137 -124
  93. package/components/slot-contents-picker/slot-contents-picker.d.ts +26 -5
  94. package/components/slot-menu/index.cjs +6 -6
  95. package/components/slot-menu/index.js +76 -76
  96. package/components/slot-menu-list/index.cjs +1 -1
  97. package/components/slot-menu-list/index.js +1 -1
  98. package/components/slot-store-CRfN0nD3.js +98 -0
  99. package/components/slot-store-Dd_cPNXk.cjs +20 -0
  100. package/components/utils.cjs +1 -1
  101. package/components/utils.js +1 -1
  102. package/components/viz-item-menu/index.cjs +6 -6
  103. package/components/viz-item-menu/index.js +27 -28
  104. package/custom-elements.json +1922 -1631
  105. package/index.d.ts +1 -1
  106. package/package.json +12 -12
  107. package/types.d.ts +9 -0
  108. package/utils/filters/expressions.d.ts +1 -1
  109. package/angular/components/filter-group.component.ts +0 -29
  110. package/angular/esm/components/filter-data-item-picker.component.d.ts +0 -30
  111. package/angular/esm/components/filter-group.component.d.ts +0 -12
  112. package/angular/esm/components/filter-group.component.js +0 -56
  113. package/components/filter-data-item-picker/index.cjs +0 -47
  114. package/components/filter-data-item-picker/index.d.ts +0 -7
  115. package/components/filter-group/filter-group.d.ts +0 -26
  116. package/components/filter-group/index.d.ts +0 -7
@@ -0,0 +1,144 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@lit/localize"),d=require("@luzmo/icons");require("@luzmo/lucero/action-button");require("@luzmo/lucero/button");require("@luzmo/lucero/icon");const p=require("@luzmo/lucero/utils"),o=require("lit"),a=require("lit/decorators.js"),g=require("lit/directives/repeat.js"),m=require("../set-locale-B8iQGfk0.cjs");require("../filter-item/index.cjs");const f=':host{display:block;font-family:var(--luzmo-edit-filters-font-family, var(--luzmo-font-family));color:var(--luzmo-edit-filters-font-color, var(--luzmo-font-color));max-width:100%}.filter-group-container{max-width:100%;overflow:hidden}.filter-group{display:flex;flex-direction:row;max-width:100%;min-width:0}.filter-group.nested{margin-top:var(--luzmo-edit-filters-nested-group-margin-top, var(--edit-filters-nested-group-margin-top));margin-bottom:var(--luzmo-edit-filters-nested-group-margin-bottom, var(--edit-filters-nested-group-margin-bottom))}.group-content{display:flex;flex-direction:column;flex:1;min-width:0}.filters-list{display:flex;flex-direction:column;gap:var(--luzmo-edit-filters-filters-list-gap, var(--edit-filters-filters-list-gap));min-width:0;max-width:100%}.filter-item-wrapper{position:relative;display:flex;align-items:flex-start;min-width:0;max-width:100%}.filter-item-content{display:flex;align-items:center;gap:var(--luzmo-edit-filters-filter-line-gap, var(--edit-filters-filter-line-gap));flex:1;min-width:0}.filter-item-content luzmo-filter-item{flex:1;min-width:0}.filter-item-content .delete-filter-button{flex-shrink:0;align-self:center}.condition-wrapper{position:relative;flex:0 0 var(--luzmo-edit-filters-condition-warpper-width, var(--edit-filters-condition-warpper-width));display:flex;align-items:center;justify-content:center}.condition-wrapper:before{content:"";position:absolute;left:50%;top:var(--luzmo-edit-filters-vertical-line-top, var(--edit-filters-vertical-line-top));bottom:var(--luzmo-edit-filters-vertical-line-bottom, var(--edit-filters-vertical-line-bottom));width:var(--luzmo-edit-filters-vertical-line-width, var(--edit-filters-vertical-line-width));background:var(--luzmo-edit-filters-vertical-line-color, var(--luzmo-border-color))}.condition-badge{min-width:auto;padding-inline:var(--luzmo-edit-filters-condition-padding-horizontal, var(--edit-filters-condition-padding-horizontal));font-weight:700;text-transform:uppercase;background:var(--luzmo-edit-filters-condition-badge-background, var(--luzmo-primary));color:var(--luzmo-edit-filters-condition-badge-color, var(--luzmo-primary-inverse-color));border-radius:var(--luzmo-edit-filters-condition-badge-border-radius, var(--luzmo-border-radius));box-shadow:0 0 0 var(--luzmo-edit-filters-condition-badge-halo, var(--edit-filters-condition-badge-halo)) var(--luzmo-edit-filters-condition-badge-background, var(--luzmo-background-color))}.condition-badge:hover{background:var(--luzmo-edit-filters-condition-badge-background-hover, var(--luzmo-primary-hover))}.group-actions{display:flex;margin-top:var(--luzmo-edit-filters-group-actions-margin-top, var(--edit-filters-group-actions-margin-top));gap:var(--luzmo-edit-filters-group-actions-gap, var(--edit-filters-group-actions-gap));flex-wrap:wrap}.delete-group-button{margin-left:auto}.add-root-group-container{margin-top:var(--luzmo-edit-filters-add-root-group-container-margin-top, var(--edit-filters-add-root-group-container-margin-top));padding-left:0}.add-subgroup-button,.add-filter-button{--luzmo-action-button-text-to-visual: var(--luzmo-edit-filters-group-actions-text-to-visual, var(--edit-filters-group-actions-text-to-visual));--luzmo-action-button-content-color-default: var(--luzmo-edit-filters-group-actions-color, var(--luzmo-primary-hover));--luzmo-action-button-content-color-hover: var(--luzmo-edit-filters-group-actions-color-hover, var(--luzmo-primary-hover));--luzmo-action-button-content-color-down: var(--luzmo-edit-filters-group-actions-color-down, var(--luzmo-primary-down));--luzmo-action-button-content-color-focus: var(--luzmo-edit-filters-group-actions-color-focus, var(--luzmo-primary-focus))}.add-group-button{--luzmo-button-padding-label-to-icon: var(--luzmo-edit-filters-add-group-button-text-to-visual, var(--edit-filters-add-group-button-text-to-visual))}:host{--edit-filters-condition-warpper-width: 56px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-2);--edit-filters-condition-badge-halo: var(--luzmo-spacing-3);--edit-filters-filters-list-gap: var(--luzmo-spacing-3);--edit-filters-nested-group-margin-top: var(--luzmo-spacing-3);--edit-filters-nested-group-margin-bottom: var(--luzmo-spacing-3);--edit-filters-vertical-line-top: var(--luzmo-spacing-2);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-2);--edit-filters-vertical-line-width: 1px;--edit-filters-group-actions-text-to-visual: var(--luzmo-spacing-2);--edit-filters-add-group-button-text-to-visual: var(--luzmo-spacing-3);--edit-filters-group-actions-gap: var(--luzmo-spacing-3);--edit-filters-add-root-group-container-margin-top: var(--luzmo-spacing-4);--edit-filters-filter-line-gap: var(--luzmo-spacing-3);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-3)}:host([size=s]){--edit-filters-condition-warpper-width: 48px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-2);--edit-filters-condition-badge-halo: var(--luzmo-spacing-2);--edit-filters-filters-list-gap: calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-top: calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-bottom: calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--edit-filters-vertical-line-top: var(--luzmo-spacing-2);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-2);--edit-filters-group-actions-text-to-visual: var(--luzmo-spacing-1);--edit-filters-add-group-button-text-to-visual: var(--luzmo-spacing-2);--edit-filters-group-actions-gap: var(--luzmo-spacing-2);--edit-filters-add-root-group-container-margin-top: var(--luzmo-spacing-3);--edit-filters-filter-line-gap: var(--luzmo-spacing-2);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-2)}:host([size=l]){--edit-filters-condition-warpper-width: 64px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-3);--edit-filters-condition-badge-halo: var(--luzmo-spacing-4);--edit-filters-filters-list-gap: var(--luzmo-spacing-4);--edit-filters-nested-group-margin-top: var(--luzmo-spacing-4);--edit-filters-nested-group-margin-bottom: var(--luzmo-spacing-4);--edit-filters-vertical-line-top: var(--luzmo-spacing-3);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-3);--edit-filters-group-actions-text-to-visual: var(--luzmo-spacing-2);--edit-filters-add-group-button-text-to-visual: calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--edit-filters-group-actions-gap: var(--luzmo-spacing-3);--edit-filters-add-root-group-container-margin-top: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-filter-line-gap: var(--luzmo-spacing-3);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-3)}:host([size=xl]){--edit-filters-condition-warpper-width: 72px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-3);--edit-filters-condition-badge-halo: var(--luzmo-spacing-4);--edit-filters-filters-list-gap: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-top: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-bottom: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-vertical-line-top: var(--luzmo-spacing-3);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-3);--edit-filters-group-actions-text-to-visual: calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--edit-filters-add-group-button-text-to-visual: var(--luzmo-spacing-4);--edit-filters-group-actions-gap: var(--luzmo-spacing-4);--edit-filters-add-root-group-container-margin-top: var(--luzmo-spacing-5);--edit-filters-filter-line-gap: var(--luzmo-spacing-4);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-4)}';var h=Object.defineProperty,z=Object.getOwnPropertyDescriptor,n=(c,t,i,e)=>{for(var r=e>1?void 0:e?z(t,i):t,l=c.length-1,s;l>=0;l--)(s=c[l])&&(r=(e?s(t,i,r):s(r))||r);return e&&r&&h(t,i,r),r};exports.LuzmoEditFilters=class extends p.SizedMixin(p.LuzmoElement,{validSizes:Object.values(p.ElementSizes)}){constructor(){super(...arguments),this.apiUrl="https://api.luzmo.com",this.language="en",this.contentLanguage="en",this.filters=null,this._internalFilterGroup=null}static get styles(){return[o.unsafeCSS(f)]}get _oneSizeSmaller(){return{xxs:"xxs",xs:"xs",s:"xs",m:"s",l:"m",xl:"l",xxl:"xl"}[this.size]||"s"}willUpdate(t){t.has("language")&&this.language!==m.getLocale()&&([...m.targetLocales].includes(this.language??"en")||this.language==="en")&&m.setLocale(this.language),t.has("filters")&&(this._internalFilterGroup=this.filters?structuredClone(this.filters):this._generateEmptyGroup())}_generateEmptyGroup(){return{condition:"AND",filters:[]}}_generateEmptyFilter(){return{expression:void 0,parameters:[]}}_cleanFilterGroupForExport(t){return t?{condition:t.condition,filters:t.filters.map(e=>this._isGroup(e)?this._cleanFilterGroupForExport(e):{...e})}:null}_sendChangeEvent(){this.dispatchEvent(new CustomEvent("filters-changed",{bubbles:!0,composed:!0,cancelable:!0,detail:{filters:this._cleanFilterGroupForExport(this._internalFilterGroup)}}))}_isGroup(t){return"condition"in t&&"filters"in t}_toggleCondition(t){t.condition=t.condition==="AND"?"OR":"AND",this.requestUpdate(),this._sendChangeEvent()}_addFilter(t){t.filters.push(this._generateEmptyFilter()),this.requestUpdate(),this._sendChangeEvent()}_addSubGroup(t){const i=this._generateEmptyGroup();i.condition=t.condition==="AND"?"OR":"AND",i.filters.push(this._generateEmptyFilter()),t.filters.push(i),this.requestUpdate(),this._sendChangeEvent()}_removeFilter(t,i){if(!this._internalFilterGroup)return;if(t.filters.splice(i,1),!(t===this._internalFilterGroup)&&t.filters.length===0){const r=this._findParentGroup(this._internalFilterGroup,t);if(r){const l=r.filters.indexOf(t);l!==-1&&r.filters.splice(l,1)}}this._collapseGroupsAfterDelete(),this.requestUpdate(),this._sendChangeEvent()}_updateFilter(t,i,e){e.stopPropagation(),this._isGroup(t.filters[i])||(t.filters[i]=e.detail.filter,this._sendChangeEvent())}_addGroup(){this._internalFilterGroup||(this._internalFilterGroup=this._generateEmptyGroup());const t=this._generateEmptyGroup();t.condition=this._internalFilterGroup.condition==="AND"?"OR":"AND",t.filters.push(this._internalFilterGroup);const i=this._generateEmptyGroup();i.condition=t.condition==="AND"?"OR":"AND",i.filters.push(this._generateEmptyFilter()),t.filters.push(i),this._internalFilterGroup=t,this.requestUpdate(),this._sendChangeEvent()}_renderFilterItem(t,i,e){return o.html`
21
+ <div class="filter-item-wrapper">
22
+ <div class="filter-item-content">
23
+ <luzmo-filter-item
24
+ .apiUrl=${this.apiUrl}
25
+ .authKey=${this.authKey}
26
+ .authToken=${this.authToken}
27
+ .cacheTime=${this.cacheTime}
28
+ .language=${this.language}
29
+ .contentLanguage=${this.contentLanguage}
30
+ .timeZone=${this.timeZone}
31
+ .datasetIds=${this.datasetIds}
32
+ .filter=${t}
33
+ .size=${this.size}
34
+ @filter-changed=${this._updateFilter.bind(this,i,e)}
35
+ ></luzmo-filter-item>
36
+ <luzmo-action-button
37
+ class="delete-filter-button"
38
+ .size=${this.size}
39
+ quiet
40
+ @click=${this._removeFilter.bind(this,i,e)}
41
+ >
42
+ <luzmo-icon slot="icon" .icon=${d.luzmoTrashOutline} .size=${this.size}></luzmo-icon>
43
+ </luzmo-action-button>
44
+ </div>
45
+ </div>
46
+ `}_renderGroup(t,i=!1){const e=t.filters.length>0,r=t.filters.length>1;return o.html`
47
+ <div class="filter-group ${i?"nested":""}">
48
+ ${i?o.html`
49
+ <div class="condition-wrapper">
50
+ ${r?o.html`
51
+ <luzmo-action-button
52
+ class="condition-badge"
53
+ .size=${this._oneSizeSmaller}
54
+ quiet
55
+ @click=${this._toggleCondition.bind(this,t)}
56
+ >
57
+ ${t.condition}
58
+ </luzmo-action-button>
59
+ `:""}
60
+ </div>
61
+ `:r?o.html`
62
+ <div class="condition-wrapper">
63
+ <luzmo-action-button
64
+ class="condition-badge"
65
+ .size=${this._oneSizeSmaller}
66
+ quiet
67
+ @click=${this._toggleCondition.bind(this,t)}
68
+ >
69
+ ${t.condition}
70
+ </luzmo-action-button>
71
+ </div>
72
+ `:""}
73
+ <div class="group-content">
74
+ ${e?o.html`
75
+ <div class="filters-list">
76
+ ${g.repeat(t.filters,(l,s)=>s,(l,s)=>o.html`
77
+ ${this._isGroup(l)?this._renderGroup(l,!0):this._renderFilterItem(l,t,s)}
78
+ `)}
79
+ </div>
80
+ `:""}
81
+
82
+ <div class="group-actions">
83
+ <luzmo-action-button
84
+ class="add-filter-button"
85
+ .size=${this.size}
86
+ quiet
87
+ @click=${this._addFilter.bind(this,t)}
88
+ >
89
+ <luzmo-icon slot="icon" .icon=${d.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
90
+ ${u.msg("Filter",{desc:"Add filter button label"})}
91
+ </luzmo-action-button>
92
+
93
+ <luzmo-action-button
94
+ class="add-subgroup-button"
95
+ .size=${this.size}
96
+ quiet
97
+ @click=${this._addSubGroup.bind(this,t)}
98
+ >
99
+ <luzmo-icon slot="icon" .icon=${d.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
100
+ ${u.msg("Subgroup",{desc:"Add subgroup button label"})}
101
+ </luzmo-action-button>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ `}_findParentGroup(t,i){for(const e of t.filters){if(e===i)return t;if(this._isGroup(e)){const r=this._findParentGroup(e,i);if(r)return r}}return null}_collapseIfNeeded(t){if(t.filters.length===1&&this._isGroup(t.filters[0])){const i=t.filters[0];t.condition=i.condition,t.filters=i.filters}}_collapseGroupsAfterDelete(){if(!this._internalFilterGroup)return;const t=i=>{for(const e of i.filters)this._isGroup(e)&&t(e);this._collapseIfNeeded(i)};t(this._internalFilterGroup)}render(){if(!this._internalFilterGroup)return o.html`
106
+ <div class="filter-group-container">
107
+ <luzmo-action-button
108
+ class="add-filter-group-button"
109
+ @click=${this._addGroup}
110
+ >
111
+ ${u.msg("Add filter group",{desc:"Add filter group button label"})}
112
+ </luzmo-action-button>
113
+ </div>
114
+ `;if(!(this._internalFilterGroup.filters.length>0))return o.html`
115
+ <div class="filter-group-container">
116
+ <luzmo-button
117
+ class="add-filter-button"
118
+ .size=${this.size}
119
+ treatment="outline"
120
+ @click=${this._addFilter.bind(this,this._internalFilterGroup)}
121
+ >
122
+ <luzmo-icon slot="icon" .icon=${d.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
123
+ ${u.msg("Add filter",{desc:"Add filter button label"})}
124
+ </luzmo-button>
125
+ </div>
126
+ `;const i=this._internalFilterGroup.filters.length>1;return o.html`
127
+ <div class="filter-group-container">
128
+ ${this._renderGroup(this._internalFilterGroup)}
129
+
130
+ ${i?o.html`
131
+ <div class="add-root-group-container">
132
+ <luzmo-button
133
+ class="add-group-button"
134
+ .size=${this.size}
135
+ treatment="outline"
136
+ @click=${this._addGroup}
137
+ >
138
+ <luzmo-icon slot="icon" .icon=${d.luzmoPlus} .size=${this._oneSizeSmaller}></luzmo-icon>
139
+ ${u.msg("Group",{desc:"Add group button label"})}
140
+ </luzmo-button>
141
+ </div>
142
+ `:""}
143
+ </div>
144
+ `}};n([a.property({type:String,attribute:"api-url",reflect:!0})],exports.LuzmoEditFilters.prototype,"apiUrl",2);n([a.property({type:String,attribute:"auth-key",reflect:!0})],exports.LuzmoEditFilters.prototype,"authKey",2);n([a.property({type:String,attribute:"auth-token",reflect:!0})],exports.LuzmoEditFilters.prototype,"authToken",2);n([a.property({type:Number,attribute:"cache-time",reflect:!0})],exports.LuzmoEditFilters.prototype,"cacheTime",2);n([a.property({type:String,reflect:!0})],exports.LuzmoEditFilters.prototype,"language",2);n([a.property({type:String,attribute:"content-language",reflect:!0})],exports.LuzmoEditFilters.prototype,"contentLanguage",2);n([a.property({type:String,attribute:"time-zone",reflect:!0})],exports.LuzmoEditFilters.prototype,"timeZone",2);n([a.property({type:Array,attribute:"dataset-ids",reflect:!0})],exports.LuzmoEditFilters.prototype,"datasetIds",2);n([a.property({type:Object,reflect:!1})],exports.LuzmoEditFilters.prototype,"filters",2);n([a.state()],exports.LuzmoEditFilters.prototype,"_internalFilterGroup",2);exports.LuzmoEditFilters=n([u.localized()],exports.LuzmoEditFilters);customElements.get("luzmo-edit-filters")||customElements.define("luzmo-edit-filters",exports.LuzmoEditFilters);
@@ -0,0 +1,8 @@
1
+ import { LuzmoEditFilters } from './edit-filters';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'luzmo-edit-filters': LuzmoEditFilters;
5
+ }
6
+ }
7
+ export { LuzmoEditFilters } from './edit-filters';
8
+ export type { FilterCondition, FilterGroup } from './types';
@@ -0,0 +1,341 @@
1
+ /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
+ *
3
+ * Copyright © 2025 Luzmo
4
+ * All rights reserved.
5
+ * Luzmo web components (“Luzmo Web Components”)
6
+ * must be used according to the Luzmo Terms of Service.
7
+ * This license allows users with a current active Luzmo account
8
+ * to use the Luzmo Web Components. This license terminates
9
+ * automatically if a user no longer has an active Luzmo account.
10
+ * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
+ *
12
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
+ * SOFTWARE.
19
+ * */
20
+ import { msg as c, localized as m } from "@lit/localize";
21
+ import { luzmoTrashOutline as f, luzmoPlus as d } from "@luzmo/icons";
22
+ import "@luzmo/lucero/action-button";
23
+ import "@luzmo/lucero/button";
24
+ import "@luzmo/lucero/icon";
25
+ import { SizedMixin as g, LuzmoElement as z, ElementSizes as h } from "@luzmo/lucero/utils";
26
+ import { unsafeCSS as v, html as n } from "lit";
27
+ import { property as s, state as b } from "lit/decorators.js";
28
+ import { repeat as x } from "lit/directives/repeat.js";
29
+ import { g as _, t as y, s as w } from "../set-locale-B5562CBM.js";
30
+ import "../filter-item/index.js";
31
+ (function() {
32
+ if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
33
+ const o = document.createElement("style");
34
+ o.setAttribute("data-luzmo-vars", ""), o.textContent = 'html{--luzmo-animation-duration: 0.15s;--luzmo-border-color: rgba(var(--luzmo-border-color-rgb), 0.1);--luzmo-border-color-hover: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-down: rgba(var(--luzmo-border-color-rgb), 0.3);--luzmo-border-color-focus: rgba(var(--luzmo-border-color-rgb), 0.15);--luzmo-border-color-rgb: 0, 0, 0;--luzmo-border-color-full: rgb(180, 180, 180);--luzmo-border-color-full-hover: rgb(140, 140, 140);--luzmo-border-color-full-down: rgb(110, 110, 110);--luzmo-border-color-full-focus: rgb(140, 140, 140);--luzmo-border-color-disabled: #dddddd;--luzmo-border-radius: 6px;--luzmo-border-radius-s: 4px;--luzmo-border-radius-l: 8px;--luzmo-border-radius-xl: 12px;--luzmo-border-radius-full: 999rem;--luzmo-background-color: #ffffff;--luzmo-background-color-rgb: 255, 255, 255;--luzmo-background-color-disabled: #eeeeee;--luzmo-background-color-hover: #f0f0fc;--luzmo-background-color-down: #f1f1ff;--luzmo-background-color-focus: #f0f0fc;--luzmo-background-color-highlight: rgb(240, 240, 240);--luzmo-background-color-highlight-disabled: rgb(245, 245, 245);--luzmo-background-color-highlight-hover: rgb(225, 225, 225);--luzmo-background-color-highlight-down: rgb(215, 215, 215);--luzmo-background-color-highlight-focus: rgb(225, 225, 225);--luzmo-background-color-alt-1: rgb(250, 250, 250);--luzmo-background-color-alt-2: rgb(239, 239, 239);--luzmo-border-width: 1px;--luzmo-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", Helvetica, Arial, sans-serif;--luzmo-font-size-xs: 10px;--luzmo-font-size-s: 12px;--luzmo-font-size-m: 14px;--luzmo-font-size: 14px;--luzmo-font-size-l: 16px;--luzmo-font-size-xl: 18px;--luzmo-font-size-xxl: 20px;--luzmo-font-style: normal;--luzmo-line-height: normal;--luzmo-font-weight: 400;--luzmo-font-weight-semibold: 500;--luzmo-font-weight-bold: 600;--luzmo-font-color: #333;--luzmo-font-color-hard: #000;--luzmo-font-color-disabled: var(--luzmo-color-disabled);--luzmo-font-color-extra-dimmed: #888;--luzmo-font-color-hover: #333;--luzmo-font-color-down: #111;--luzmo-font-color-focus: #333;--luzmo-primary: #4434ff;--luzmo-primary-hover: #4234e4;--luzmo-primary-down: #392cc7;--luzmo-primary-focus: #4234e4;--luzmo-primary-inverse-color: #ffffff;--luzmo-primary-rgb: 68, 52, 255;--luzmo-secondary: #ff00ff;--luzmo-secondary-hover: #e309e3;--luzmo-secondary-down: #c711c7;--luzmo-secondary-focus: #e309e3;--luzmo-secondary-inverse-color: #ffffff;--luzmo-secondary-rgb: 255, 0, 255;--luzmo-secondary-outline: rgba(255, 0, 255, 0.2);--luzmo-negative-color: #ca221c;--luzmo-negative-color-hover: #b3241f;--luzmo-negative-color-down: #9f231f;--luzmo-negative-color-focus: #b3241f;--luzmo-negative-color-rgb: 202, 34, 28;--luzmo-positive-color: rgb(20, 150, 101);--luzmo-positive-color-hover: rgb(17, 128, 86);--luzmo-positive-color-down: rgb(16, 105, 71);--luzmo-positive-color-focus: rgb(17, 128, 86);--luzmo-positive-color-rgb: 20, 150, 101;--luzmo-selected-color: rgb(110, 110, 110);--luzmo-selected-color-hover: rgb(70, 70, 70);--luzmo-selected-color-down: rgb(40, 40, 40);--luzmo-selected-color-focus: rgb(70, 70, 70);--luzmo-selected-color-hard: #1e1e1e;--luzmo-selected-color-hard-hover: rgb(0, 0, 0);--luzmo-selected-color-hard-down: rgb(0, 0, 0);--luzmo-selected-color-hard-focus: rgb(0, 0, 0);--luzmo-color-informative: #1a77e9;--luzmo-color-informative-rgb: 26, 119, 233;--luzmo-color-disabled: #aaaaaa;--luzmo-spacing-1: 2px;--luzmo-spacing-2: 4px;--luzmo-spacing-3: 8px;--luzmo-spacing-4: 12px;--luzmo-spacing-5: 16px;--luzmo-indicator-gap: 2px;--luzmo-indicator-width: 1px;--luzmo-indicator-color: var(--luzmo-primary);--luzmo-component-height-xxs: 20px;--luzmo-component-height-xs: 24px;--luzmo-component-height-s: 28px;--luzmo-component-height: 32px;--luzmo-component-height-l: 40px;--luzmo-component-height-xl: 48px;--luzmo-component-height-xxl: 64px;--luzmo-icon-size-xxs: 12px;--luzmo-icon-size-xs: 14px;--luzmo-icon-size-s: 16px;--luzmo-icon-size-m: 18px;--luzmo-icon-size-l: 20px;--luzmo-icon-size-xl: 22px;--luzmo-icon-size-xxl: 32px}', document.head.appendChild(o);
35
+ }
36
+ })();
37
+ const G = ':host{display:block;font-family:var(--luzmo-edit-filters-font-family, var(--luzmo-font-family));color:var(--luzmo-edit-filters-font-color, var(--luzmo-font-color));max-width:100%}.filter-group-container{max-width:100%;overflow:hidden}.filter-group{display:flex;flex-direction:row;max-width:100%;min-width:0}.filter-group.nested{margin-top:var(--luzmo-edit-filters-nested-group-margin-top, var(--edit-filters-nested-group-margin-top));margin-bottom:var(--luzmo-edit-filters-nested-group-margin-bottom, var(--edit-filters-nested-group-margin-bottom))}.group-content{display:flex;flex-direction:column;flex:1;min-width:0}.filters-list{display:flex;flex-direction:column;gap:var(--luzmo-edit-filters-filters-list-gap, var(--edit-filters-filters-list-gap));min-width:0;max-width:100%}.filter-item-wrapper{position:relative;display:flex;align-items:flex-start;min-width:0;max-width:100%}.filter-item-content{display:flex;align-items:center;gap:var(--luzmo-edit-filters-filter-line-gap, var(--edit-filters-filter-line-gap));flex:1;min-width:0}.filter-item-content luzmo-filter-item{flex:1;min-width:0}.filter-item-content .delete-filter-button{flex-shrink:0;align-self:center}.condition-wrapper{position:relative;flex:0 0 var(--luzmo-edit-filters-condition-warpper-width, var(--edit-filters-condition-warpper-width));display:flex;align-items:center;justify-content:center}.condition-wrapper:before{content:"";position:absolute;left:50%;top:var(--luzmo-edit-filters-vertical-line-top, var(--edit-filters-vertical-line-top));bottom:var(--luzmo-edit-filters-vertical-line-bottom, var(--edit-filters-vertical-line-bottom));width:var(--luzmo-edit-filters-vertical-line-width, var(--edit-filters-vertical-line-width));background:var(--luzmo-edit-filters-vertical-line-color, var(--luzmo-border-color))}.condition-badge{min-width:auto;padding-inline:var(--luzmo-edit-filters-condition-padding-horizontal, var(--edit-filters-condition-padding-horizontal));font-weight:700;text-transform:uppercase;background:var(--luzmo-edit-filters-condition-badge-background, var(--luzmo-primary));color:var(--luzmo-edit-filters-condition-badge-color, var(--luzmo-primary-inverse-color));border-radius:var(--luzmo-edit-filters-condition-badge-border-radius, var(--luzmo-border-radius));box-shadow:0 0 0 var(--luzmo-edit-filters-condition-badge-halo, var(--edit-filters-condition-badge-halo)) var(--luzmo-edit-filters-condition-badge-background, var(--luzmo-background-color))}.condition-badge:hover{background:var(--luzmo-edit-filters-condition-badge-background-hover, var(--luzmo-primary-hover))}.group-actions{display:flex;margin-top:var(--luzmo-edit-filters-group-actions-margin-top, var(--edit-filters-group-actions-margin-top));gap:var(--luzmo-edit-filters-group-actions-gap, var(--edit-filters-group-actions-gap));flex-wrap:wrap}.delete-group-button{margin-left:auto}.add-root-group-container{margin-top:var(--luzmo-edit-filters-add-root-group-container-margin-top, var(--edit-filters-add-root-group-container-margin-top));padding-left:0}.add-subgroup-button,.add-filter-button{--luzmo-action-button-text-to-visual: var(--luzmo-edit-filters-group-actions-text-to-visual, var(--edit-filters-group-actions-text-to-visual));--luzmo-action-button-content-color-default: var(--luzmo-edit-filters-group-actions-color, var(--luzmo-primary-hover));--luzmo-action-button-content-color-hover: var(--luzmo-edit-filters-group-actions-color-hover, var(--luzmo-primary-hover));--luzmo-action-button-content-color-down: var(--luzmo-edit-filters-group-actions-color-down, var(--luzmo-primary-down));--luzmo-action-button-content-color-focus: var(--luzmo-edit-filters-group-actions-color-focus, var(--luzmo-primary-focus))}.add-group-button{--luzmo-button-padding-label-to-icon: var(--luzmo-edit-filters-add-group-button-text-to-visual, var(--edit-filters-add-group-button-text-to-visual))}:host{--edit-filters-condition-warpper-width: 56px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-2);--edit-filters-condition-badge-halo: var(--luzmo-spacing-3);--edit-filters-filters-list-gap: var(--luzmo-spacing-3);--edit-filters-nested-group-margin-top: var(--luzmo-spacing-3);--edit-filters-nested-group-margin-bottom: var(--luzmo-spacing-3);--edit-filters-vertical-line-top: var(--luzmo-spacing-2);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-2);--edit-filters-vertical-line-width: 1px;--edit-filters-group-actions-text-to-visual: var(--luzmo-spacing-2);--edit-filters-add-group-button-text-to-visual: var(--luzmo-spacing-3);--edit-filters-group-actions-gap: var(--luzmo-spacing-3);--edit-filters-add-root-group-container-margin-top: var(--luzmo-spacing-4);--edit-filters-filter-line-gap: var(--luzmo-spacing-3);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-3)}:host([size=s]){--edit-filters-condition-warpper-width: 48px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-2);--edit-filters-condition-badge-halo: var(--luzmo-spacing-2);--edit-filters-filters-list-gap: calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-top: calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-bottom: calc(var(--luzmo-spacing-2) + var(--luzmo-spacing-1));--edit-filters-vertical-line-top: var(--luzmo-spacing-2);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-2);--edit-filters-group-actions-text-to-visual: var(--luzmo-spacing-1);--edit-filters-add-group-button-text-to-visual: var(--luzmo-spacing-2);--edit-filters-group-actions-gap: var(--luzmo-spacing-2);--edit-filters-add-root-group-container-margin-top: var(--luzmo-spacing-3);--edit-filters-filter-line-gap: var(--luzmo-spacing-2);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-2)}:host([size=l]){--edit-filters-condition-warpper-width: 64px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-3);--edit-filters-condition-badge-halo: var(--luzmo-spacing-4);--edit-filters-filters-list-gap: var(--luzmo-spacing-4);--edit-filters-nested-group-margin-top: var(--luzmo-spacing-4);--edit-filters-nested-group-margin-bottom: var(--luzmo-spacing-4);--edit-filters-vertical-line-top: var(--luzmo-spacing-3);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-3);--edit-filters-group-actions-text-to-visual: var(--luzmo-spacing-2);--edit-filters-add-group-button-text-to-visual: calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--edit-filters-group-actions-gap: var(--luzmo-spacing-3);--edit-filters-add-root-group-container-margin-top: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-filter-line-gap: var(--luzmo-spacing-3);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-3)}:host([size=xl]){--edit-filters-condition-warpper-width: 72px;--edit-filters-condition-padding-horizontal: var(--luzmo-spacing-3);--edit-filters-condition-badge-halo: var(--luzmo-spacing-4);--edit-filters-filters-list-gap: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-top: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-nested-group-margin-bottom: calc(var(--luzmo-spacing-4) + var(--luzmo-spacing-1));--edit-filters-vertical-line-top: var(--luzmo-spacing-3);--edit-filters-vertical-line-bottom: var(--luzmo-spacing-3);--edit-filters-group-actions-text-to-visual: calc(var(--luzmo-spacing-3) + var(--luzmo-spacing-1));--edit-filters-add-group-button-text-to-visual: var(--luzmo-spacing-4);--edit-filters-group-actions-gap: var(--luzmo-spacing-4);--edit-filters-add-root-group-container-margin-top: var(--luzmo-spacing-5);--edit-filters-filter-line-gap: var(--luzmo-spacing-4);--edit-filters-group-actions-margin-top: var(--luzmo-spacing-4)}';
38
+ var $ = Object.defineProperty, F = Object.getOwnPropertyDescriptor, a = (t, o, i, r) => {
39
+ for (var e = r > 1 ? void 0 : r ? F(o, i) : o, u = t.length - 1, p; u >= 0; u--)
40
+ (p = t[u]) && (e = (r ? p(o, i, e) : p(e)) || e);
41
+ return r && e && $(o, i, e), e;
42
+ };
43
+ let l = class extends g(z, {
44
+ validSizes: Object.values(h)
45
+ }) {
46
+ constructor() {
47
+ super(...arguments), this.apiUrl = "https://api.luzmo.com", this.language = "en", this.contentLanguage = "en", this.filters = null, this._internalFilterGroup = null;
48
+ }
49
+ static get styles() {
50
+ return [v(G)];
51
+ }
52
+ /**
53
+ * Get a smaller size for the condition badges
54
+ */
55
+ get _oneSizeSmaller() {
56
+ return {
57
+ xxs: "xxs",
58
+ xs: "xs",
59
+ s: "xs",
60
+ m: "s",
61
+ l: "m",
62
+ xl: "l",
63
+ xxl: "xl"
64
+ }[this.size] || "s";
65
+ }
66
+ willUpdate(t) {
67
+ t.has("language") && this.language !== _() && ([...y].includes(this.language ?? "en") || this.language === "en") && w(this.language), t.has("filters") && (this._internalFilterGroup = this.filters ? structuredClone(this.filters) : this._generateEmptyGroup());
68
+ }
69
+ _generateEmptyGroup() {
70
+ return {
71
+ condition: "AND",
72
+ filters: []
73
+ };
74
+ }
75
+ _generateEmptyFilter() {
76
+ return {
77
+ expression: void 0,
78
+ parameters: []
79
+ };
80
+ }
81
+ _cleanFilterGroupForExport(t) {
82
+ return t ? {
83
+ condition: t.condition,
84
+ filters: t.filters.map((i) => this._isGroup(i) ? this._cleanFilterGroupForExport(i) : { ...i })
85
+ } : null;
86
+ }
87
+ _sendChangeEvent() {
88
+ this.dispatchEvent(
89
+ new CustomEvent("filters-changed", {
90
+ bubbles: !0,
91
+ composed: !0,
92
+ cancelable: !0,
93
+ detail: {
94
+ filters: this._cleanFilterGroupForExport(this._internalFilterGroup)
95
+ }
96
+ })
97
+ );
98
+ }
99
+ _isGroup(t) {
100
+ return "condition" in t && "filters" in t;
101
+ }
102
+ _toggleCondition(t) {
103
+ t.condition = t.condition === "AND" ? "OR" : "AND", this.requestUpdate(), this._sendChangeEvent();
104
+ }
105
+ _addFilter(t) {
106
+ t.filters.push(this._generateEmptyFilter()), this.requestUpdate(), this._sendChangeEvent();
107
+ }
108
+ _addSubGroup(t) {
109
+ const o = this._generateEmptyGroup();
110
+ o.condition = t.condition === "AND" ? "OR" : "AND", o.filters.push(this._generateEmptyFilter()), t.filters.push(o), this.requestUpdate(), this._sendChangeEvent();
111
+ }
112
+ _removeFilter(t, o) {
113
+ if (!this._internalFilterGroup) return;
114
+ if (t.filters.splice(o, 1), !(t === this._internalFilterGroup) && t.filters.length === 0) {
115
+ const r = this._findParentGroup(this._internalFilterGroup, t);
116
+ if (r) {
117
+ const e = r.filters.indexOf(t);
118
+ e !== -1 && r.filters.splice(e, 1);
119
+ }
120
+ }
121
+ this._collapseGroupsAfterDelete(), this.requestUpdate(), this._sendChangeEvent();
122
+ }
123
+ _updateFilter(t, o, i) {
124
+ i.stopPropagation(), this._isGroup(t.filters[o]) || (t.filters[o] = i.detail.filter, this._sendChangeEvent());
125
+ }
126
+ _addGroup() {
127
+ this._internalFilterGroup || (this._internalFilterGroup = this._generateEmptyGroup());
128
+ const t = this._generateEmptyGroup();
129
+ t.condition = this._internalFilterGroup.condition === "AND" ? "OR" : "AND", t.filters.push(this._internalFilterGroup);
130
+ const o = this._generateEmptyGroup();
131
+ o.condition = t.condition === "AND" ? "OR" : "AND", o.filters.push(this._generateEmptyFilter()), t.filters.push(o), this._internalFilterGroup = t, this.requestUpdate(), this._sendChangeEvent();
132
+ }
133
+ _renderFilterItem(t, o, i) {
134
+ return n`
135
+ <div class="filter-item-wrapper">
136
+ <div class="filter-item-content">
137
+ <luzmo-filter-item
138
+ .apiUrl=${this.apiUrl}
139
+ .authKey=${this.authKey}
140
+ .authToken=${this.authToken}
141
+ .cacheTime=${this.cacheTime}
142
+ .language=${this.language}
143
+ .contentLanguage=${this.contentLanguage}
144
+ .timeZone=${this.timeZone}
145
+ .datasetIds=${this.datasetIds}
146
+ .filter=${t}
147
+ .size=${this.size}
148
+ @filter-changed=${this._updateFilter.bind(this, o, i)}
149
+ ></luzmo-filter-item>
150
+ <luzmo-action-button
151
+ class="delete-filter-button"
152
+ .size=${this.size}
153
+ quiet
154
+ @click=${this._removeFilter.bind(this, o, i)}
155
+ >
156
+ <luzmo-icon slot="icon" .icon=${f} .size=${this.size}></luzmo-icon>
157
+ </luzmo-action-button>
158
+ </div>
159
+ </div>
160
+ `;
161
+ }
162
+ _renderGroup(t, o = !1) {
163
+ const i = t.filters.length > 0, r = t.filters.length > 1;
164
+ return n`
165
+ <div class="filter-group ${o ? "nested" : ""}">
166
+ ${o ? n`
167
+ <div class="condition-wrapper">
168
+ ${r ? n`
169
+ <luzmo-action-button
170
+ class="condition-badge"
171
+ .size=${this._oneSizeSmaller}
172
+ quiet
173
+ @click=${this._toggleCondition.bind(this, t)}
174
+ >
175
+ ${t.condition}
176
+ </luzmo-action-button>
177
+ ` : ""}
178
+ </div>
179
+ ` : r ? n`
180
+ <div class="condition-wrapper">
181
+ <luzmo-action-button
182
+ class="condition-badge"
183
+ .size=${this._oneSizeSmaller}
184
+ quiet
185
+ @click=${this._toggleCondition.bind(this, t)}
186
+ >
187
+ ${t.condition}
188
+ </luzmo-action-button>
189
+ </div>
190
+ ` : ""}
191
+ <div class="group-content">
192
+ ${i ? n`
193
+ <div class="filters-list">
194
+ ${x(
195
+ t.filters,
196
+ (e, u) => u,
197
+ (e, u) => n`
198
+ ${this._isGroup(e) ? this._renderGroup(e, !0) : this._renderFilterItem(e, t, u)}
199
+ `
200
+ )}
201
+ </div>
202
+ ` : ""}
203
+
204
+ <div class="group-actions">
205
+ <luzmo-action-button
206
+ class="add-filter-button"
207
+ .size=${this.size}
208
+ quiet
209
+ @click=${this._addFilter.bind(this, t)}
210
+ >
211
+ <luzmo-icon slot="icon" .icon=${d} .size=${this._oneSizeSmaller}></luzmo-icon>
212
+ ${c("Filter", { desc: "Add filter button label" })}
213
+ </luzmo-action-button>
214
+
215
+ <luzmo-action-button
216
+ class="add-subgroup-button"
217
+ .size=${this.size}
218
+ quiet
219
+ @click=${this._addSubGroup.bind(this, t)}
220
+ >
221
+ <luzmo-icon slot="icon" .icon=${d} .size=${this._oneSizeSmaller}></luzmo-icon>
222
+ ${c("Subgroup", { desc: "Add subgroup button label" })}
223
+ </luzmo-action-button>
224
+ </div>
225
+ </div>
226
+ </div>
227
+ `;
228
+ }
229
+ _findParentGroup(t, o) {
230
+ for (const i of t.filters) {
231
+ if (i === o)
232
+ return t;
233
+ if (this._isGroup(i)) {
234
+ const r = this._findParentGroup(i, o);
235
+ if (r) return r;
236
+ }
237
+ }
238
+ return null;
239
+ }
240
+ _collapseIfNeeded(t) {
241
+ if (t.filters.length === 1 && this._isGroup(t.filters[0])) {
242
+ const o = t.filters[0];
243
+ t.condition = o.condition, t.filters = o.filters;
244
+ }
245
+ }
246
+ _collapseGroupsAfterDelete() {
247
+ if (!this._internalFilterGroup) return;
248
+ const t = (o) => {
249
+ for (const i of o.filters)
250
+ this._isGroup(i) && t(i);
251
+ this._collapseIfNeeded(o);
252
+ };
253
+ t(this._internalFilterGroup);
254
+ }
255
+ render() {
256
+ if (!this._internalFilterGroup)
257
+ return n`
258
+ <div class="filter-group-container">
259
+ <luzmo-action-button
260
+ class="add-filter-group-button"
261
+ @click=${this._addGroup}
262
+ >
263
+ ${c("Add filter group", {
264
+ desc: "Add filter group button label"
265
+ })}
266
+ </luzmo-action-button>
267
+ </div>
268
+ `;
269
+ if (!(this._internalFilterGroup.filters.length > 0))
270
+ return n`
271
+ <div class="filter-group-container">
272
+ <luzmo-button
273
+ class="add-filter-button"
274
+ .size=${this.size}
275
+ treatment="outline"
276
+ @click=${this._addFilter.bind(this, this._internalFilterGroup)}
277
+ >
278
+ <luzmo-icon slot="icon" .icon=${d} .size=${this._oneSizeSmaller}></luzmo-icon>
279
+ ${c("Add filter", { desc: "Add filter button label" })}
280
+ </luzmo-button>
281
+ </div>
282
+ `;
283
+ const o = this._internalFilterGroup.filters.length > 1;
284
+ return n`
285
+ <div class="filter-group-container">
286
+ ${this._renderGroup(this._internalFilterGroup)}
287
+
288
+ ${o ? n`
289
+ <div class="add-root-group-container">
290
+ <luzmo-button
291
+ class="add-group-button"
292
+ .size=${this.size}
293
+ treatment="outline"
294
+ @click=${this._addGroup}
295
+ >
296
+ <luzmo-icon slot="icon" .icon=${d} .size=${this._oneSizeSmaller}></luzmo-icon>
297
+ ${c("Group", { desc: "Add group button label" })}
298
+ </luzmo-button>
299
+ </div>
300
+ ` : ""}
301
+ </div>
302
+ `;
303
+ }
304
+ };
305
+ a([
306
+ s({ type: String, attribute: "api-url", reflect: !0 })
307
+ ], l.prototype, "apiUrl", 2);
308
+ a([
309
+ s({ type: String, attribute: "auth-key", reflect: !0 })
310
+ ], l.prototype, "authKey", 2);
311
+ a([
312
+ s({ type: String, attribute: "auth-token", reflect: !0 })
313
+ ], l.prototype, "authToken", 2);
314
+ a([
315
+ s({ type: Number, attribute: "cache-time", reflect: !0 })
316
+ ], l.prototype, "cacheTime", 2);
317
+ a([
318
+ s({ type: String, reflect: !0 })
319
+ ], l.prototype, "language", 2);
320
+ a([
321
+ s({ type: String, attribute: "content-language", reflect: !0 })
322
+ ], l.prototype, "contentLanguage", 2);
323
+ a([
324
+ s({ type: String, attribute: "time-zone", reflect: !0 })
325
+ ], l.prototype, "timeZone", 2);
326
+ a([
327
+ s({ type: Array, attribute: "dataset-ids", reflect: !0 })
328
+ ], l.prototype, "datasetIds", 2);
329
+ a([
330
+ s({ type: Object, reflect: !1 })
331
+ ], l.prototype, "filters", 2);
332
+ a([
333
+ b()
334
+ ], l.prototype, "_internalFilterGroup", 2);
335
+ l = a([
336
+ m()
337
+ ], l);
338
+ customElements.get("luzmo-edit-filters") || customElements.define("luzmo-edit-filters", l);
339
+ export {
340
+ l as LuzmoEditFilters
341
+ };
@@ -0,0 +1,8 @@
1
+ export interface FilterCondition {
2
+ expression?: string;
3
+ parameters?: any[];
4
+ }
5
+ export interface FilterGroup {
6
+ condition: 'AND' | 'OR';
7
+ filters: (FilterCondition | FilterGroup)[];
8
+ }
@@ -96,6 +96,7 @@ const e = {
96
96
  s8665d029b5cb8b24: "Totales generales",
97
97
  s8a56a8c8bd19c9c7: "falta",
98
98
  s8d0259032729869d: "Segundo",
99
+ s8de2a5b227e80c95: "(x) períodos o más atrás",
99
100
  s965c503c3e42fdfe: "Activado",
100
101
  s9689e928323dc124: "último (período) completado",
101
102
  s981f232bd33ec927: "Tasa",
@@ -113,10 +114,12 @@ const e = {
113
114
  sa6f2645578b2d2bc: "Año",
114
115
  sa7effa06c0f6784c: "mayor que",
115
116
  sa8beb6b1182241ac: "Filtros",
117
+ sa91d4991fca9514e: "más de atrás",
116
118
  sac8256732f2ee1e5: "Datos",
117
119
  sac8b59943205b14f: "próximo (período) completo",
118
120
  sac94bb71f7737997: "Mediana",
119
121
  sacae74732f544fca: "Días",
122
+ saf2a19f4eaf00f68: "o más atrás",
120
123
  saf63b34c8601a6e1: "&gt;",
121
124
  sb1f654608a3eea75: "Día de la semana",
122
125
  sb3b793ff5cc1bc39: "próximos (x) períodos",
@@ -146,6 +149,7 @@ const e = {
146
149
  se0955919920ee87d: "Día",
147
150
  se211e3d21bbf3bff: "Medida",
148
151
  se2b7530e30fa607d: "Comparación de períodos",
152
+ se2d6ee866b592a9f: "más de (x) períodos atrás",
149
153
  se415bbea6c976fb1: "Agrupar por",
150
154
  se5316cbaa025f028: "siguiente",
151
155
  se715be190539325a: "hace",
@@ -166,7 +170,12 @@ const e = {
166
170
  sfad9ed343e97551c: "Valor pasado",
167
171
  sfb9e6d0c6baa99f5: "Coincide con el rango de fechas visible en el gráfico o tabla",
168
172
  sfbac36245480ddbc: "Separador",
169
- sfda1c9d0be35cec8: "trimestre hasta la fecha"
173
+ sfda1c9d0be35cec8: "trimestre hasta la fecha",
174
+ s7c95876637f6a9d7: "Filter",
175
+ s92ab9b834d8fd1fc: "Subgroup",
176
+ s79f7983c97f2aaed: "Add filter group",
177
+ s8ba2b22eee9bb57e: "Add filter",
178
+ s98b1cb8fb62909ec: "Group"
170
179
  };
171
180
  export {
172
181
  e as templates
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={s00decbd8fed4f501:"Máximo",s0218a6cc95bc9386:"Tipo de rango",s0456d2ad905847d9:"último",s079a052719914d71:"Categoría",s08098b07b4c86ff2:"&lt;=",s08108707b4ce87d4:"&gt;=",s088e3b07b5394bc3:"ig",s099b18e1bd8a1154:"Horas",s09c2b609dff29061:"Suma acumulativa",s0acece4c687177a9:"Números de trimestre",s0bb151c9319a6813:"Eje X",s0bca0c91195d8d6d:"cont",s1125d159f7e64df5:"Mostrar",s11326fd2590f4e5e:"Por defecto",s122f7f3f1a22ea50:"no ig",s13f5793e33ebda4f:"entre",s146475c4daa430ed:"Decimales",s178b06f4d02cfd40:"no falta",s184501a399a815dc:"Trimestres",s18498398aeb37b07:"La semana comienza el",s187528426100c44e:"Sin datos",s1cdb6b07fe827486:"Número de semana",s1e593719b55d60c0:"MTD",s1e7745005c37315c:"Desplazamiento relativo",s1f0916624a87d415:"Día del año",s2454d1f117573457:"Precisión",s247d110f13a3a288:"Día de la semana",s26273c258ddde0e1:"Seleccionar...",s2695506122ffd614:"Segundo en el minuto",s2718cebf7de190e1:"está entre",s2798d16f4e04857e:"Minuto en la hora",s281f1d977ddc0ebe:"Número de mes",s2ea38ce3da088075:"Períodos",s2fb2a49481123d6a:"Semanas",s2fedf26ef08343d4:"es igual a",s31f1afc1bfe1cb3a:"Saber más",s3924c3d773a80312:"último disp",s3c6455b19fb1c3e4:"Cambio absoluto",s3dcf7b255596a2c3:"Desviación estándar",s441accd1cd3484c9:"Minuto",s463b8c4e92751ba5:"Opciones",s467b030b9a34b3c8:"Promedio",s48e186fb300e5464:"Tiempo",s496c60f73bdf5725:"Agregación",s4b30fad1c34464e1:"mayor o igual que",s4b58c01e2578f5e4:"Leyenda",s4e585eeea351a038:"contiene",s4efbcab48a433013:"Largo",s4f27f6b48a68b5c2:"Bloquear",s519d0aa80bbafd42:"semana hasta la fecha",s57ace73e7c6e719f:"no está en",s58ec693e33483873:"menor que",s5d73a3b3b68e6cba:"Definido por el usuario",s5d929ff1619ac0c9:"Buscar",s5e2654fb8587f442:"Clonar",s602805b1eb3106c6:"Eje Y",s6031881827829901:"24h",s60b34c3c17dc35bd:"Años",s64ef2a6c2dd1d3d1:"Editar",s66722bc2ea775e05:"Desactivado",s669b18c6d2d9c95b:"Ninguno",s66dcbbc0355c2759:"Domingo",s680f01021b5e339d:"Semana",s6b0bffd88024372f:"Hora",s6de3d6e9660857a1:"Ejemplo",s708bbac083d05109:"no empieza con",s70a773eb3133e5fa:"mes hasta la fecha",s716a6024e3fe999c:"Mostrar",s74dcd519e6563a26:"WTD",s7632fc9aa12bf382:"Meses",s782f286a79cca35d:"Relativo",s7a6878d41ffac284:"último completado",s7e357543a7b769f4:"Columna de fecha de desplazamiento",s846876f9b712e843:"no es igual a",s862f5319f0256b94:"QTD",s8665d029b5cb8b24:"Totales generales",s8a56a8c8bd19c9c7:"falta",s8d0259032729869d:"Segundo",s965c503c3e42fdfe:"Activado",s9689e928323dc124:"último (período) completado",s981f232bd33ec927:"Tasa",s9854300ef4a37d18:"no termina en",s987abe19fac8d108:"Suma",s98c337186f2d57c6:"Ancho del bin",s98db41a3eb532203:"año hasta la fecha",s991d216e6efc157c:"Sin resultados",s996319f23f6cf0b5:"termina en",s9b9009d4a5004fb8:"Agrupamiento",s9b9d6ce29d05a298:"menor o igual que",s9e40e59654c8ad67:"Columna",sa3c9339de23c1752:"Formato",sa6ab5184d6315895:"De",sa6f2645578b2d2bc:"Año",sa7effa06c0f6784c:"mayor que",sa8beb6b1182241ac:"Filtros",sac8256732f2ee1e5:"Datos",sac8b59943205b14f:"próximo (período) completo",sac94bb71f7737997:"Mediana",sacae74732f544fca:"Días",saf63b34c8601a6e1:"&gt;",sb1f654608a3eea75:"Día de la semana",sb3b793ff5cc1bc39:"próximos (x) períodos",sb47daaf9e1c4a905:"Mes",sb5b295e3a7500b9c:"Niveles de duración",sb6513caf69971fb5:"Corto",sb70671db5700ff60:"no termina en",sb93e5af29aca2e3d:"falta",sbbb97b1c63507dc0:"Número",sbeebe911264bed23:"últimos (x) períodos disponibles",sc1bf67624fa6d498:"% de cambio",sc4842e5b8b90466a:"Segundos",sc6e49f3d37e54030:"Hora en el día",sc6f5a4fc0583d734:"está en",sc86e72c4fdd4e0ec:"Contar distinto",scb7bab1a17663a6c:"YTD",scf2bb2b0de9cdb8a:"Milisegundo",sd237be440de38cc7:"Trimestre",sd28141a332dc31fa:"Día del mes",sd5b1040899eb149d:"siguiente completo",sd66a74fff07a11fb:"{count} elementos seleccionados",sd7ebafacf602c9bd:"Letra",sdb73788b3c975f16:"Automático",sdc673e73b5c13aea:"Eliminar",sdebe99a43259a451:"Contar filas",sdfeb2151b9e78d4d:"no contiene",se0955919920ee87d:"Día",se211e3d21bbf3bff:"Medida",se2b7530e30fa607d:"Comparación de períodos",se415bbea6c976fb1:"Agrupar por",se5316cbaa025f028:"siguiente",se715be190539325a:"hace",se9e535bb9591039e:"Seleccionar una expresión",se9ff6e9a514d8cf9:"Lunes",seb4eae68d45315b7:"Mínimo",seb9c440de1ce6044:"empieza con",sec2f608650e36ac5:"último período completado",secf42ec1c7c47be2:"no falta",see0ec27fb03d880e:"Minutos",sef49aec68fd1dc66:"Nombre",sf095cc47a4ff9c3d:"Fórmula",sf518b78d9734f57b:"no empieza con",sf6cda8263b3170af:"Usar período hasta la fecha para períodos incompletos",sf70eaf9ab4c93082:"no cont",sf9c10516a62a23db:"Mostrar como",sfa2d0aa30ee5aa58:"últimos (x) períodos",sfad9ed343e97551c:"Valor pasado",sfb9e6d0c6baa99f5:"Coincide con el rango de fechas visible en el gráfico o tabla",sfbac36245480ddbc:"Separador",sfda1c9d0be35cec8:"trimestre hasta la fecha"};exports.templates=e;
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e={s00decbd8fed4f501:"Máximo",s0218a6cc95bc9386:"Tipo de rango",s0456d2ad905847d9:"último",s079a052719914d71:"Categoría",s08098b07b4c86ff2:"&lt;=",s08108707b4ce87d4:"&gt;=",s088e3b07b5394bc3:"ig",s099b18e1bd8a1154:"Horas",s09c2b609dff29061:"Suma acumulativa",s0acece4c687177a9:"Números de trimestre",s0bb151c9319a6813:"Eje X",s0bca0c91195d8d6d:"cont",s1125d159f7e64df5:"Mostrar",s11326fd2590f4e5e:"Por defecto",s122f7f3f1a22ea50:"no ig",s13f5793e33ebda4f:"entre",s146475c4daa430ed:"Decimales",s178b06f4d02cfd40:"no falta",s184501a399a815dc:"Trimestres",s18498398aeb37b07:"La semana comienza el",s187528426100c44e:"Sin datos",s1cdb6b07fe827486:"Número de semana",s1e593719b55d60c0:"MTD",s1e7745005c37315c:"Desplazamiento relativo",s1f0916624a87d415:"Día del año",s2454d1f117573457:"Precisión",s247d110f13a3a288:"Día de la semana",s26273c258ddde0e1:"Seleccionar...",s2695506122ffd614:"Segundo en el minuto",s2718cebf7de190e1:"está entre",s2798d16f4e04857e:"Minuto en la hora",s281f1d977ddc0ebe:"Número de mes",s2ea38ce3da088075:"Períodos",s2fb2a49481123d6a:"Semanas",s2fedf26ef08343d4:"es igual a",s31f1afc1bfe1cb3a:"Saber más",s3924c3d773a80312:"último disp",s3c6455b19fb1c3e4:"Cambio absoluto",s3dcf7b255596a2c3:"Desviación estándar",s441accd1cd3484c9:"Minuto",s463b8c4e92751ba5:"Opciones",s467b030b9a34b3c8:"Promedio",s48e186fb300e5464:"Tiempo",s496c60f73bdf5725:"Agregación",s4b30fad1c34464e1:"mayor o igual que",s4b58c01e2578f5e4:"Leyenda",s4e585eeea351a038:"contiene",s4efbcab48a433013:"Largo",s4f27f6b48a68b5c2:"Bloquear",s519d0aa80bbafd42:"semana hasta la fecha",s57ace73e7c6e719f:"no está en",s58ec693e33483873:"menor que",s5d73a3b3b68e6cba:"Definido por el usuario",s5d929ff1619ac0c9:"Buscar",s5e2654fb8587f442:"Clonar",s602805b1eb3106c6:"Eje Y",s6031881827829901:"24h",s60b34c3c17dc35bd:"Años",s64ef2a6c2dd1d3d1:"Editar",s66722bc2ea775e05:"Desactivado",s669b18c6d2d9c95b:"Ninguno",s66dcbbc0355c2759:"Domingo",s680f01021b5e339d:"Semana",s6b0bffd88024372f:"Hora",s6de3d6e9660857a1:"Ejemplo",s708bbac083d05109:"no empieza con",s70a773eb3133e5fa:"mes hasta la fecha",s716a6024e3fe999c:"Mostrar",s74dcd519e6563a26:"WTD",s7632fc9aa12bf382:"Meses",s782f286a79cca35d:"Relativo",s7a6878d41ffac284:"último completado",s7e357543a7b769f4:"Columna de fecha de desplazamiento",s846876f9b712e843:"no es igual a",s862f5319f0256b94:"QTD",s8665d029b5cb8b24:"Totales generales",s8a56a8c8bd19c9c7:"falta",s8d0259032729869d:"Segundo",s8de2a5b227e80c95:"(x) períodos o más atrás",s965c503c3e42fdfe:"Activado",s9689e928323dc124:"último (período) completado",s981f232bd33ec927:"Tasa",s9854300ef4a37d18:"no termina en",s987abe19fac8d108:"Suma",s98c337186f2d57c6:"Ancho del bin",s98db41a3eb532203:"año hasta la fecha",s991d216e6efc157c:"Sin resultados",s996319f23f6cf0b5:"termina en",s9b9009d4a5004fb8:"Agrupamiento",s9b9d6ce29d05a298:"menor o igual que",s9e40e59654c8ad67:"Columna",sa3c9339de23c1752:"Formato",sa6ab5184d6315895:"De",sa6f2645578b2d2bc:"Año",sa7effa06c0f6784c:"mayor que",sa8beb6b1182241ac:"Filtros",sa91d4991fca9514e:"más de atrás",sac8256732f2ee1e5:"Datos",sac8b59943205b14f:"próximo (período) completo",sac94bb71f7737997:"Mediana",sacae74732f544fca:"Días",saf2a19f4eaf00f68:"o más atrás",saf63b34c8601a6e1:"&gt;",sb1f654608a3eea75:"Día de la semana",sb3b793ff5cc1bc39:"próximos (x) períodos",sb47daaf9e1c4a905:"Mes",sb5b295e3a7500b9c:"Niveles de duración",sb6513caf69971fb5:"Corto",sb70671db5700ff60:"no termina en",sb93e5af29aca2e3d:"falta",sbbb97b1c63507dc0:"Número",sbeebe911264bed23:"últimos (x) períodos disponibles",sc1bf67624fa6d498:"% de cambio",sc4842e5b8b90466a:"Segundos",sc6e49f3d37e54030:"Hora en el día",sc6f5a4fc0583d734:"está en",sc86e72c4fdd4e0ec:"Contar distinto",scb7bab1a17663a6c:"YTD",scf2bb2b0de9cdb8a:"Milisegundo",sd237be440de38cc7:"Trimestre",sd28141a332dc31fa:"Día del mes",sd5b1040899eb149d:"siguiente completo",sd66a74fff07a11fb:"{count} elementos seleccionados",sd7ebafacf602c9bd:"Letra",sdb73788b3c975f16:"Automático",sdc673e73b5c13aea:"Eliminar",sdebe99a43259a451:"Contar filas",sdfeb2151b9e78d4d:"no contiene",se0955919920ee87d:"Día",se211e3d21bbf3bff:"Medida",se2b7530e30fa607d:"Comparación de períodos",se2d6ee866b592a9f:"más de (x) períodos atrás",se415bbea6c976fb1:"Agrupar por",se5316cbaa025f028:"siguiente",se715be190539325a:"hace",se9e535bb9591039e:"Seleccionar una expresión",se9ff6e9a514d8cf9:"Lunes",seb4eae68d45315b7:"Mínimo",seb9c440de1ce6044:"empieza con",sec2f608650e36ac5:"último período completado",secf42ec1c7c47be2:"no falta",see0ec27fb03d880e:"Minutos",sef49aec68fd1dc66:"Nombre",sf095cc47a4ff9c3d:"Fórmula",sf518b78d9734f57b:"no empieza con",sf6cda8263b3170af:"Usar período hasta la fecha para períodos incompletos",sf70eaf9ab4c93082:"no cont",sf9c10516a62a23db:"Mostrar como",sfa2d0aa30ee5aa58:"últimos (x) períodos",sfad9ed343e97551c:"Valor pasado",sfb9e6d0c6baa99f5:"Coincide con el rango de fechas visible en el gráfico o tabla",sfbac36245480ddbc:"Separador",sfda1c9d0be35cec8:"trimestre hasta la fecha",s7c95876637f6a9d7:"Filter",s92ab9b834d8fd1fc:"Subgroup",s79f7983c97f2aaed:"Add filter group",s8ba2b22eee9bb57e:"Add filter",s98b1cb8fb62909ec:"Group"};exports.templates=e;
@@ -17,4 +17,4 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../index-BNAmjOkm.cjs");Object.defineProperty(exports,"LuzmoFilterExpressionPicker",{enumerable:!0,get:()=>e.LuzmoFilterExpressionPicker});
20
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../index-DM58h73U.cjs");Object.defineProperty(exports,"LuzmoFilterExpressionPicker",{enumerable:!0,get:()=>e.LuzmoFilterExpressionPicker});
@@ -17,7 +17,7 @@
17
17
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
18
  * SOFTWARE.
19
19
  * */
20
- import { L as u } from "../index-DdyZ2g5L.js";
20
+ import { L as u } from "../index-DR5275fa.js";
21
21
  (function() {
22
22
  if (typeof document < "u" && !document.querySelector("style[data-luzmo-vars]")) {
23
23
  const o = document.createElement("style");
@@ -1,6 +1,6 @@
1
1
  import { CSSResultArray, PropertyValues, TemplateResult } from 'lit';
2
2
  import { LuzmoElement } from '@luzmo/lucero/utils';
3
- import './../filter-data-item-picker';
3
+ import './../data-items-select';
4
4
  import './../filter-expression-picker';
5
5
  import './../filter-value-picker';
6
6
  declare const LuzmoFilterItem_base: typeof LuzmoElement & {