@luzmo/analytics-components-kit 1.2.1 → 1.3.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.
- package/README.md +2 -0
- package/angular/components/interactive-viz-item.ts +2 -2
- package/angular/esm/components/interactive-viz-item.d.ts +2 -2
- package/angular/esm/components/interactive-viz-item.js +1 -1
- package/angular/package.json +2 -2
- package/components/add-to-dashboard/index.cjs +1 -1
- package/components/add-to-dashboard/index.js +1 -1
- package/components/{add-to-dashboard-NwsCPIlg.cjs → add-to-dashboard-CzIuDtAq.cjs} +1 -1
- package/components/{add-to-dashboard-NcVHlqrc.js → add-to-dashboard-DGC0_hRB.js} +1 -1
- package/components/{chart-helpers-Dng_LGfq.js → chart-helpers-Cbl3sRra.js} +3 -2
- package/components/chart-helpers-fMnqHRzC.cjs +20 -0
- package/components/index.cjs +1 -1
- package/components/index.js +3 -3
- package/components/interactive-viz-item/index.cjs +1 -1
- package/components/interactive-viz-item/index.d.ts +1 -1
- package/components/interactive-viz-item/index.js +2 -2
- package/components/interactive-viz-item/interactive-viz-item.d.ts +3 -1
- package/components/interactive-viz-item/types.d.ts +4 -0
- package/components/{interactive-viz-item-CwRRaCZB.js → interactive-viz-item-BKLOmawA.js} +25 -19
- package/components/{interactive-viz-item-CxdrGRKc.cjs → interactive-viz-item-ojdH1uk0.cjs} +21 -18
- package/custom-elements.json +9 -1
- package/package.json +2 -2
- package/react/package.json +2 -2
- package/standalone/add-to-dashboard.js +40 -40
- package/standalone/chunks/{chart-helpers-DsIGsaDc.js → chart-helpers-CR-EUEPf.js} +2 -2
- package/standalone/chunks/{choropleth-map-options.config-rUJsEJcm.js → choropleth-map-options.config-CDMjKnJD.js} +1 -1
- package/standalone/chunks/{color-range-utils-DxOtqAKB.js → color-range-utils-BVyHBRiq.js} +1 -1
- package/standalone/chunks/de-BkB0q1Eg.js +2 -0
- package/standalone/chunks/display-settings-binning-BeLLxd3i.js +38 -0
- package/standalone/chunks/display-settings-datetime-BkeiKIVV.js +199 -0
- package/standalone/chunks/display-settings-grand-totals-BuhpQKJ6.js +26 -0
- package/standalone/chunks/display-settings-numeric-m30IYI7I.js +172 -0
- package/standalone/chunks/display-settings-period-over-period-CqDlOSRn.js +209 -0
- package/standalone/chunks/embed-Bv1ps-EM.js +260 -0
- package/standalone/chunks/en-63f7j4v7.js +2 -0
- package/standalone/chunks/en-GB-QAmXQf8W.js +2 -0
- package/standalone/chunks/en-US-63f7j4v7.js +2 -0
- package/standalone/chunks/es-Bo0jStZn.js +2 -0
- package/standalone/chunks/{filters-DKgJcQGP.js → filters-CxgBXUF1.js} +61 -61
- package/standalone/chunks/{formula-codemirror-BbyvNEVD.js → formula-codemirror-Cq94j3-f.js} +17 -17
- package/standalone/chunks/fr-Co_qVhhV.js +2 -0
- package/standalone/chunks/{heat-map-options.config-D93AeYFi.js → heat-map-options.config-DDQMD38W.js} +1 -1
- package/standalone/chunks/{heat-table-options.config-ZVML76FK.js → heat-table-options.config-B4K0Ygug.js} +1 -1
- package/standalone/chunks/{is-same-option-value-Di-A7Wmg.js → is-same-option-value-7kXNF4st.js} +1 -1
- package/standalone/chunks/item-option-action-button-group-BoyqF9vt.js +35 -0
- package/standalone/chunks/item-option-base-CBcDT8MX.js +38 -0
- package/standalone/chunks/item-option-color-palette-picker-C9PGAv4V.js +22 -0
- package/standalone/chunks/item-option-color-picker-D4fVJlqF.js +19 -0
- package/standalone/chunks/item-option-color-range-BlAdTguE.js +83 -0
- package/standalone/chunks/item-option-guidelines-DMsYsHDu.js +120 -0
- package/standalone/chunks/{item-option-multi-language-field-DPPpN2qg.js → item-option-multi-language-field-NUbm1drg.js} +1 -1
- package/standalone/chunks/{item-option-number-field-CkqJjInE.js → item-option-number-field-DRp7kbHL.js} +1 -1
- package/standalone/chunks/item-option-panel-cXrRclzM.js +316 -0
- package/standalone/chunks/{item-option-picker-BnwQPT9A.js → item-option-picker-Ba09L4Cs.js} +1 -1
- package/standalone/chunks/item-option-position-picker-GEGTnhjw.js +14 -0
- package/standalone/chunks/item-option-positions-number-field-n44s1k5v.js +31 -0
- package/standalone/chunks/{item-option-radio-button-group-BkymJq3E.js → item-option-radio-button-group-3s_b1NvR.js} +1 -1
- package/standalone/chunks/item-option-slider-DtY65Gxk.js +18 -0
- package/standalone/chunks/item-option-switch-4sJaI0mx.js +12 -0
- package/standalone/chunks/{item-option-text-field-D7bkuhsv.js → item-option-text-field-Bt6Lj6kh.js} +1 -1
- package/standalone/chunks/{item-slot-picker-panel-D4BMxGs9.js → item-slot-picker-panel-BOSVFBIy.js} +43 -43
- package/standalone/chunks/load-data-fields-for-datasets-CDlut-6S.js +25 -0
- package/standalone/chunks/localized-decorator-DosMCCQo.js +2 -0
- package/standalone/chunks/{version-BW4Ixl63.js → localized-mixin-BWJj88bd.js} +1 -1
- package/standalone/chunks/nl-CQz2jrVx.js +2 -0
- package/standalone/chunks/{option-interaction-controller-BslAXAHF.js → option-interaction-controller-BuwRr21c.js} +1 -1
- package/standalone/chunks/{route-map-options.config-Dwy0JSVq.js → route-map-options.config-CGBkHnhM.js} +1 -1
- package/standalone/chunks/{spike-map-options.config-DFmuNxym.js → spike-map-options.config-CSenlJ_F.js} +1 -1
- package/standalone/interactive-viz-item.js +45 -42
- package/standalone/item-grid.js +10 -10
- package/standalone/manifest.json +44 -44
- package/components/chart-helpers-ufZ6VbXs.cjs +0 -20
- package/standalone/chunks/de-mdZT2W1G.js +0 -2
- package/standalone/chunks/display-settings-binning-Byffw2Kl.js +0 -38
- package/standalone/chunks/display-settings-datetime-CD52d6Sv.js +0 -199
- package/standalone/chunks/display-settings-grand-totals-Cky99LX9.js +0 -26
- package/standalone/chunks/display-settings-numeric-C9ea7Tgc.js +0 -172
- package/standalone/chunks/display-settings-period-over-period-BLSGumkD.js +0 -209
- package/standalone/chunks/embed-CBu7iQRx.js +0 -231
- package/standalone/chunks/en-CSboh17P.js +0 -2
- package/standalone/chunks/en-GB-HoXKQBOY.js +0 -2
- package/standalone/chunks/en-US-CSboh17P.js +0 -2
- package/standalone/chunks/es-Di5D8JFd.js +0 -2
- package/standalone/chunks/fr-DZku7iB9.js +0 -2
- package/standalone/chunks/item-option-action-button-group-BEAwPHVw.js +0 -35
- package/standalone/chunks/item-option-base-CRUxNhJQ.js +0 -38
- package/standalone/chunks/item-option-color-palette-picker-CBz61iZb.js +0 -22
- package/standalone/chunks/item-option-color-picker-lLvBPnKA.js +0 -19
- package/standalone/chunks/item-option-color-range-BqeatOei.js +0 -83
- package/standalone/chunks/item-option-guidelines-Cop8rM8y.js +0 -120
- package/standalone/chunks/item-option-panel-CzSKFCVl.js +0 -316
- package/standalone/chunks/item-option-position-picker-Bkc4JvJX.js +0 -14
- package/standalone/chunks/item-option-positions-number-field-Dr_315TE.js +0 -31
- package/standalone/chunks/item-option-slider-K_bsNci8.js +0 -18
- package/standalone/chunks/item-option-switch-DeihDHhM.js +0 -12
- package/standalone/chunks/load-data-fields-for-datasets-ClctSj6y.js +0 -25
- package/standalone/chunks/localized-decorator-DJVBmJVH.js +0 -2
- package/standalone/chunks/nl-CViTevL3.js +0 -2
|
@@ -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
|
-
require("./tokens-BWMfo_w4.cjs");const e=require("./base-CGDNY_7v.cjs"),t=require("./decorate-DCJt-2rt.cjs"),n=require("./localized-mixin-EoNvtTBG.cjs"),r=require("./is-same-option-value-Cf6BQcs7.cjs"),i=require("./chart-helpers-ufZ6VbXs.cjs"),a=require("./create-lazy-loader-DYPgQh0L.cjs");let o=require("@luzmo/icons");require("@luzmo/lucero/action-button"),require("@luzmo/lucero/icon"),require("@luzmo/lucero/overlay"),require("@luzmo/lucero/popover");let s=require("lit"),c=require("lit/decorators.js"),l=require("@lit/localize");require("@luzmo/embed"),require("@luzmo/lucero/action-group"),require("@luzmo/lucero/field-label"),require("@luzmo/lucero/number-field"),require("@luzmo/lucero/picker"),require("@luzmo/lucero/progress-circle"),require("@luzmo/lucero/tabs");var u=`:host{box-sizing:border-box;display:block;container-type:inline-size}.answer{width:100%;display:block}.chart-actions-bar{justify-content:space-between;align-items:flex-start;gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));padding-block:var(--luzmo-interactive-viz-item-actions-padding-block,var(--interactive-viz-item-actions-padding-block));flex-wrap:nowrap;margin-block-start:var(--luzmo-interactive-viz-item-actions-margin-block-start,var(--interactive-viz-item-actions-margin-block-start));display:flex}.chart-actions-primary{gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.ranking-content{gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-3);flex-direction:column;display:flex}.ranking-row{gap:var(--luzmo-spacing-3);align-items:center;display:flex}.ranking-number{width:4rem}.icon-flipped{transform:scaleY(-1)}.chart-container{border-radius:var(--luzmo-interactive-viz-item-chart-border-radius,var(--interactive-viz-item-chart-border-radius));height:var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height));overflow:hidden}.chart-container luzmo-embed-viz-item{width:100%;height:100%;display:block}.feedback-row{padding-block:var(--luzmo-interactive-viz-item-feedback-padding-block,var(--interactive-viz-item-feedback-padding-block));justify-content:space-between;align-items:center;display:flex}.rating-btn-positive{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.rating-btn-negative{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.config-toggle{--luzmo-action-button-border-radius:32px;margin-inline-start:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.config-panel{border:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));border-radius:var(--luzmo-interactive-viz-item-config-panel-border-radius,var(--interactive-viz-item-config-panel-border-radius));padding:var(--luzmo-interactive-viz-item-config-panel-padding,var(--interactive-viz-item-config-panel-padding));background:var(--luzmo-interactive-viz-item-config-panel-background,var(--interactive-viz-item-config-panel-background));margin-block-start:var(--luzmo-spacing-2)}.config-panel luzmo-tab-panel[selected]{padding-block-start:var(--luzmo-spacing-4);display:block}.config-panel luzmo-item-option-panel,.config-panel luzmo-item-slot-picker-panel,.config-panel luzmo-filters{width:100%;max-height:15rem;scrollbar-width:thin;scrollbar-color:var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color)) transparent;padding-inline-end:var(--luzmo-spacing-3);overflow-y:auto}.edit-grid{min-height:12.5rem;display:flex}.edit-column{gap:var(--luzmo-spacing-3);flex-direction:column;display:flex}.edit-column:first-child{flex-shrink:0;max-width:15rem}.edit-column-filters{border-inline-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));flex:1;min-width:18.75rem;padding-inline-start:var(--luzmo-spacing-5)}@container (width<=520px){.edit-grid{flex-direction:column}.edit-column,.edit-column:first-child{width:100%;min-width:0;max-width:100%}.edit-column-filters{border-inline-start:none;border-block-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));min-width:0;margin-block-start:var(--luzmo-spacing-3);padding-block-start:var(--luzmo-spacing-4);padding-inline-start:0}}@container (width<=768px){.chart-container{height:calc(var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height)) - var(--luzmo-interactive-viz-item-chart-narrow-offset,var(--interactive-viz-item-chart-narrow-offset)))}}:host{--interactive-viz-item-actions-gap:var(--luzmo-spacing-3);--interactive-viz-item-actions-padding-block:var(--luzmo-spacing-3);--interactive-viz-item-actions-margin-block-start:var(--luzmo-spacing-5);--interactive-viz-item-chart-height:20rem;--interactive-viz-item-chart-narrow-offset:2.5rem;--interactive-viz-item-chart-border-radius:var(--luzmo-border-radius);--interactive-viz-item-feedback-padding-block:var(--luzmo-spacing-4);--interactive-viz-item-config-panel-padding:var(--luzmo-spacing-5);--interactive-viz-item-config-panel-border-color:var(--luzmo-border-color);--interactive-viz-item-config-panel-border-radius:var(--luzmo-border-radius);--interactive-viz-item-config-panel-background:var(--luzmo-background-color);--interactive-viz-item-rating-positive-color:var(--luzmo-positive-color,#12855a);--interactive-viz-item-rating-negative-color:var(--luzmo-negative-color,#ca221c);--interactive-viz-item-rating-selected-background:var(--luzmo-background-color-focus,#0000000f)}:host([size=s]){--interactive-viz-item-chart-height:17.5rem}:host([size=l]){--interactive-viz-item-chart-height:22rem}:host([size=xl]){--interactive-viz-item-chart-height:24rem}`,d=a.t(()=>Promise.resolve().then(()=>require("./add-to-dashboard/index.cjs"))).load,f=[`luzmo-filters`,`luzmo-item-option-panel`,`luzmo-item-slot-picker-panel`],p=a.t(()=>Promise.all([Promise.resolve().then(()=>require("./filters/index.cjs")),Promise.resolve().then(()=>require("./item-option-panel/index.cjs")),Promise.resolve().then(()=>require("./item-slot-picker-panel/index.cjs"))])),m=p.load,h=()=>p.isLoaded()||f.every(e=>customElements.get(e)!==void 0),g=0,_={},v=(e,t)=>t!==null&&r.n(JSON.parse(JSON.stringify(e)),JSON.parse(JSON.stringify(t))),y=class extends n.t(e.n(e.i,{validSizes:Object.values(e.t)})){constructor(...e){super(...e),this.chart=null,this.feedback=null,this.messageId=``,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.contentLanguage=``,this.hideActions=!1,this.hideFeedback=!1,this.hideConfigPanel=!1,this.addToDashboard=!1,this.dashboardActions=null,this.controlled=!1,this.liveInteractions=!1,this._configPanelOpen=!1,this._configPanelPending=!1,this._configPanelLoadFailed=!1,this._rankingTriggerId=`interactive-viz-item-ranking-${++g}`,this._interactionGeneration=0,this._openInteractions=new Map,this._ownCharts=[],this._handleSlotsChanged=e=>{this.chart&&this._emitChart({...this.chart,slots:e.detail.slotsContents})},this._handleFiltersChanged=e=>{this.chart&&this._emitChart({...this.chart,filters:e.detail.filters})},this._handleOptionsChanged=e=>{if(!this.chart)return;let{options:t,interaction:n}=e.detail;if(!t)return;if(n){let e=this._openInteractions.get(n.id);if(!e||!this._isCurrentContext(e)){e?.generation===this._interactionGeneration&&this._invalidateInteractions();return}}let r=this.chart.options.theme??{};this._emitChart({...this.chart,options:{...t,theme:r}},n)},this._handleInteractionStart=e=>{if(!this.chart)return;let t={chart:this.chart,generation:this._interactionGeneration,auth:this._auth};this._openInteractions.set(e.detail.id,t),this._dispatchInteraction(e,t)},this._handleInteractionClosed=e=>{let t=this._openInteractions.get(e.detail.id);this._openInteractions.delete(e.detail.id),this._openInteractions.size===0&&(this._ownCharts=this._ownCharts.slice(-1)),t&&this._dispatchInteraction(e,t)}}static get styles(){return[(0,s.unsafeCSS)(u)]}get _effectiveContentLanguage(){return this.contentLanguage||this.language}_dispatch(e,t){let n=new CustomEvent(e,{detail:t,bubbles:!0,composed:!0});this.dispatchEvent(n)}get _chartActions(){return this.chart?i.n(i.o(this.chart)):[]}get _rating(){return this.feedback?.rating??0}get _canShowConfigPanel(){return!!this.chart&&!this.hideConfigPanel}async _toggleConfigPanel(){if(this._configPanelLoadFailed=!1,this._configPanelOpen)this.endInteraction(),this._configPanelOpen=!1;else if(!this._configPanelPending){if(!h()){this._configPanelPending=!0;try{await m()}catch(e){console.warn(`Failed to load the chart configuration panel:`,e),this._configPanelLoadFailed=!0;return}finally{this._configPanelPending=!1}}this.isConnected&&this._canShowConfigPanel&&(this._configPanelOpen=!0)}}endInteraction(){this.renderRoot?.querySelector(`luzmo-item-option-panel`)?.endInteraction?.()}willUpdate(e){super.willUpdate(e),this._openInteractions.size>0&&this._invalidatesInteractions(e)&&this._invalidateInteractions(),e.has(`addToDashboard`)&&this.addToDashboard&&d().catch(e=>console.warn(`Failed to load add to dashboard:`,e))}_emitOptions(e){!this.controlled&&this.chart&&(this.chart={...this.chart,options:e}),this._dispatch(`luzmo-chart-options-changed`,{options:e})}_invalidatesInteractions(e){return e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`hideConfigPanel`)?!0:e.has(`chart`)&&[...this._openInteractions.values()].some(e=>!this._isCurrentChart(e))}_invalidateInteractions(){this._interactionGeneration++,this.endInteraction()}get _auth(){return[this.authKey,this.authToken,this.apiUrl]}_isCurrentChart(e){let t=this.chart;return t===e.chart||this._ownCharts.some(e=>e===t)||[...this._ownCharts].reverse().some(e=>v(e,t))||v(e.chart,t)}_isCurrentContext(e){return e.generation===this._interactionGeneration&&e.auth.every((e,t)=>e===this._auth[t])&&this._isCurrentChart(e)}_emitChart(e,t){this._ownCharts=this._openInteractions.size>0?[...this._ownCharts,e]:[e],this.controlled||(this.chart=e),this._dispatch(`luzmo-chart-changed`,t?{chart:e,interaction:t}:{chart:e})}_handleDropdownChange(e,t){if(!this.chart)return;t.stopPropagation();let n=t.detail,r=typeof n==`string`?n:n?.value??t.target?.value;if(!r)return;let a=i.t({...i.o(this.chart),options:this.chart.options},{type:`chartAction`,actionType:e.mutationType,key:r});this._emitOptions(a.options)}_currentRanking(e){return e.ranking??{active:!1,number:5,direction:i.c.Top}}_currentSort(e){return e.sort??{direction:i.u.Desc,by:i.l.Measure}}_emitRankAndSort(e,t){this.chart&&this._emitOptions({...this.chart.options,ranking:e,sort:t})}_renderOptionDropdown(e){let t=e.values??[],n=e.currentValue||t[0]?.key||``;return s.html`
|
|
20
|
+
require("./tokens-BWMfo_w4.cjs");const e=require("./base-CGDNY_7v.cjs"),t=require("./decorate-DCJt-2rt.cjs"),n=require("./localized-mixin-EoNvtTBG.cjs"),r=require("./is-same-option-value-Cf6BQcs7.cjs"),i=require("./chart-helpers-fMnqHRzC.cjs"),a=require("./create-lazy-loader-DYPgQh0L.cjs");let o=require("@luzmo/icons");require("@luzmo/lucero/action-button"),require("@luzmo/lucero/icon"),require("@luzmo/lucero/overlay"),require("@luzmo/lucero/popover");let s=require("lit"),c=require("lit/decorators.js"),l=require("@lit/localize");require("@luzmo/embed"),require("@luzmo/lucero/action-group"),require("@luzmo/lucero/field-label"),require("@luzmo/lucero/number-field"),require("@luzmo/lucero/picker"),require("@luzmo/lucero/progress-circle"),require("@luzmo/lucero/tabs");var u=`:host{box-sizing:border-box;display:block;container-type:inline-size}.answer{width:100%;display:block}.chart-actions-bar{justify-content:space-between;align-items:flex-start;gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));padding-block:var(--luzmo-interactive-viz-item-actions-padding-block,var(--interactive-viz-item-actions-padding-block));flex-wrap:nowrap;margin-block-start:var(--luzmo-interactive-viz-item-actions-margin-block-start,var(--interactive-viz-item-actions-margin-block-start));display:flex}.chart-actions-primary{gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.ranking-content{gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-3);flex-direction:column;display:flex}.ranking-row{gap:var(--luzmo-spacing-3);align-items:center;display:flex}.ranking-number{width:4rem}.icon-flipped{transform:scaleY(-1)}.chart-container{border-radius:var(--luzmo-interactive-viz-item-chart-border-radius,var(--interactive-viz-item-chart-border-radius));height:var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height));overflow:hidden}.chart-container luzmo-embed-viz-item{width:100%;height:100%;display:block}.feedback-row{padding-block:var(--luzmo-interactive-viz-item-feedback-padding-block,var(--interactive-viz-item-feedback-padding-block));justify-content:space-between;align-items:center;display:flex}.rating-btn-positive{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.rating-btn-negative{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.config-toggle{--luzmo-action-button-border-radius:32px;margin-inline-start:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.config-panel{border:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));border-radius:var(--luzmo-interactive-viz-item-config-panel-border-radius,var(--interactive-viz-item-config-panel-border-radius));padding:var(--luzmo-interactive-viz-item-config-panel-padding,var(--interactive-viz-item-config-panel-padding));background:var(--luzmo-interactive-viz-item-config-panel-background,var(--interactive-viz-item-config-panel-background));margin-block-start:var(--luzmo-spacing-2)}.config-panel luzmo-tab-panel[selected]{padding-block-start:var(--luzmo-spacing-4);display:block}.config-panel luzmo-item-option-panel,.config-panel luzmo-item-slot-picker-panel,.config-panel luzmo-filters{width:100%;max-height:15rem;scrollbar-width:thin;scrollbar-color:var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color)) transparent;padding-inline-end:var(--luzmo-spacing-3);overflow-y:auto}.edit-grid{min-height:12.5rem;display:flex}.edit-column{gap:var(--luzmo-spacing-3);flex-direction:column;display:flex}.edit-column:first-child{flex-shrink:0;max-width:15rem}.edit-column-filters{border-inline-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));flex:1;min-width:18.75rem;padding-inline-start:var(--luzmo-spacing-5)}@container (width<=520px){.edit-grid{flex-direction:column}.edit-column,.edit-column:first-child{width:100%;min-width:0;max-width:100%}.edit-column-filters{border-inline-start:none;border-block-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));min-width:0;margin-block-start:var(--luzmo-spacing-3);padding-block-start:var(--luzmo-spacing-4);padding-inline-start:0}}@container (width<=768px){.chart-container{height:calc(var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height)) - var(--luzmo-interactive-viz-item-chart-narrow-offset,var(--interactive-viz-item-chart-narrow-offset)))}}:host{--interactive-viz-item-actions-gap:var(--luzmo-spacing-3);--interactive-viz-item-actions-padding-block:var(--luzmo-spacing-3);--interactive-viz-item-actions-margin-block-start:var(--luzmo-spacing-5);--interactive-viz-item-chart-height:20rem;--interactive-viz-item-chart-narrow-offset:2.5rem;--interactive-viz-item-chart-border-radius:var(--luzmo-border-radius);--interactive-viz-item-feedback-padding-block:var(--luzmo-spacing-4);--interactive-viz-item-config-panel-padding:var(--luzmo-spacing-5);--interactive-viz-item-config-panel-border-color:var(--luzmo-border-color);--interactive-viz-item-config-panel-border-radius:var(--luzmo-border-radius);--interactive-viz-item-config-panel-background:var(--luzmo-background-color);--interactive-viz-item-rating-positive-color:var(--luzmo-positive-color,#12855a);--interactive-viz-item-rating-negative-color:var(--luzmo-negative-color,#ca221c);--interactive-viz-item-rating-selected-background:var(--luzmo-background-color-focus,#0000000f)}:host([size=s]){--interactive-viz-item-chart-height:17.5rem}:host([size=l]){--interactive-viz-item-chart-height:22rem}:host([size=xl]){--interactive-viz-item-chart-height:24rem}`,d=a.t(()=>Promise.resolve().then(()=>require("./add-to-dashboard/index.cjs"))).load,f=[`luzmo-filters`,`luzmo-item-option-panel`,`luzmo-item-slot-picker-panel`],p=a.t(()=>Promise.all([Promise.resolve().then(()=>require("./filters/index.cjs")),Promise.resolve().then(()=>require("./item-option-panel/index.cjs")),Promise.resolve().then(()=>require("./item-slot-picker-panel/index.cjs"))])),m=p.load,h=()=>p.isLoaded()||f.every(e=>customElements.get(e)!==void 0),g=0,_={},v=(e,t)=>t!==null&&r.n(JSON.parse(JSON.stringify(e)),JSON.parse(JSON.stringify(t))),y=class extends n.t(e.n(e.i,{validSizes:Object.values(e.t)})){constructor(...e){super(...e),this.chart=null,this.feedback=null,this.messageId=``,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.contentLanguage=``,this.hideActions=!1,this.hideFeedback=!1,this.hideConfigPanel=!1,this.addToDashboard=!1,this.dashboardActions=null,this.controlled=!1,this.liveInteractions=!1,this._configPanelOpen=!1,this._configPanelPending=!1,this._configPanelLoadFailed=!1,this._rankingTriggerId=`interactive-viz-item-ranking-${++g}`,this._interactionGeneration=0,this._openInteractions=new Map,this._ownCharts=[],this._handleSlotsChanged=e=>{this.chart&&this._emitChart({...this.chart,slots:e.detail.slotsContents})},this._handleFiltersChanged=e=>{this.chart&&this._emitChart({...this.chart,filters:e.detail.filters})},this._handleOptionsChanged=e=>{if(!this.chart)return;let{options:t,interaction:n}=e.detail;if(!t)return;if(n){let e=this._openInteractions.get(n.id);if(!e||!this._isCurrentContext(e)){e?.generation===this._interactionGeneration&&this._invalidateInteractions();return}}let r=this.chart.options.theme??{};this._emitChart({...this.chart,options:{...t,theme:r}},n)},this._handleInteractionStart=e=>{if(!this.chart)return;let t={chart:this.chart,generation:this._interactionGeneration,auth:this._auth};this._openInteractions.set(e.detail.id,t),this._dispatchInteraction(e,t)},this._handleInteractionClosed=e=>{let t=this._openInteractions.get(e.detail.id);this._openInteractions.delete(e.detail.id),this._openInteractions.size===0&&(this._ownCharts=this._ownCharts.slice(-1)),t&&this._dispatchInteraction(e,t)}}static get styles(){return[(0,s.unsafeCSS)(u)]}get _effectiveContentLanguage(){return this.contentLanguage||this.language}_dispatch(e,t){let n=new CustomEvent(e,{detail:t,bubbles:!0,composed:!0});this.dispatchEvent(n)}get _chartActions(){return this.chart?i.n(i.o(this.chart)):[]}get _rating(){return this.feedback?.rating??0}get _canShowConfigPanel(){return!this.chart||this.hideConfigPanel?!1:!this.chart.inlineData||i.i(i.o(this.chart).slots).length>0}async _toggleConfigPanel(){if(this._configPanelLoadFailed=!1,this._configPanelOpen)this.endInteraction(),this._configPanelOpen=!1;else if(!this._configPanelPending){if(!h()){this._configPanelPending=!0;try{await m()}catch(e){console.warn(`Failed to load the chart configuration panel:`,e),this._configPanelLoadFailed=!0;return}finally{this._configPanelPending=!1}}this.isConnected&&this._canShowConfigPanel&&(this._configPanelOpen=!0)}}endInteraction(){this.renderRoot?.querySelector(`luzmo-item-option-panel`)?.endInteraction?.()}willUpdate(e){super.willUpdate(e),this._openInteractions.size>0&&this._invalidatesInteractions(e)&&this._invalidateInteractions(),e.has(`addToDashboard`)&&this.addToDashboard&&d().catch(e=>console.warn(`Failed to load add to dashboard:`,e))}_emitOptions(e){!this.controlled&&this.chart&&(this.chart={...this.chart,options:e}),this._dispatch(`luzmo-chart-options-changed`,{options:e})}_invalidatesInteractions(e){return e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`hideConfigPanel`)?!0:e.has(`chart`)&&[...this._openInteractions.values()].some(e=>!this._isCurrentChart(e))}_invalidateInteractions(){this._interactionGeneration++,this.endInteraction()}get _auth(){return[this.authKey,this.authToken,this.apiUrl]}_isCurrentChart(e){let t=this.chart;return t===e.chart||this._ownCharts.some(e=>e===t)||[...this._ownCharts].reverse().some(e=>v(e,t))||v(e.chart,t)}_isCurrentContext(e){return e.generation===this._interactionGeneration&&e.auth.every((e,t)=>e===this._auth[t])&&this._isCurrentChart(e)}_emitChart(e,t){this._ownCharts=this._openInteractions.size>0?[...this._ownCharts,e]:[e],this.controlled||(this.chart=e),this._dispatch(`luzmo-chart-changed`,t?{chart:e,interaction:t}:{chart:e})}_handleDropdownChange(e,t){if(!this.chart)return;t.stopPropagation();let n=t.detail,r=typeof n==`string`?n:n?.value??t.target?.value;if(!r)return;let a=i.t({...i.o(this.chart),options:this.chart.options},{type:`chartAction`,actionType:e.mutationType,key:r});this._emitOptions(a.options)}_currentRanking(e){return e.ranking??{active:!1,number:5,direction:i.c.Top}}_currentSort(e){return e.sort??{direction:i.u.Desc,by:i.l.Measure}}_emitRankAndSort(e,t){this.chart&&this._emitOptions({...this.chart.options,ranking:e,sort:t})}_renderOptionDropdown(e){let t=e.values??[],n=e.currentValue||t[0]?.key||``;return s.html`
|
|
21
21
|
<luzmo-picker
|
|
22
22
|
size=${this.size}
|
|
23
23
|
variant="highlight"
|
|
@@ -141,6 +141,7 @@ require("./tokens-BWMfo_w4.cjs");const e=require("./base-CGDNY_7v.cjs"),t=requir
|
|
|
141
141
|
.options=${e.options}
|
|
142
142
|
.slots=${e.slots}
|
|
143
143
|
.filters=${e.filters??[]}
|
|
144
|
+
.inlineData=${e.inlineData}
|
|
144
145
|
.authKey=${this.authKey}
|
|
145
146
|
.authToken=${this.authToken}
|
|
146
147
|
.apiHost=${this.apiUrl}
|
|
@@ -191,7 +192,24 @@ require("./tokens-BWMfo_w4.cjs");const e=require("./base-CGDNY_7v.cjs"),t=requir
|
|
|
191
192
|
<span class="sr-only" role="alert">${this._configPanelLoadFailed?(0,l.msg)(`Failed to load the chart configuration. Please try again.`,{desc:`Error message when the chart config panel fails to load`}):``}</span>
|
|
192
193
|
`:s.nothing}
|
|
193
194
|
</div>
|
|
194
|
-
`}_toggleRating(e){let t=e?1:-1,n=this._rating===t?0:t;this._dispatch(`luzmo-feedback-changed`,{rating:n,comment:this.feedback?.comment})}
|
|
195
|
+
`}_toggleRating(e){let t=e?1:-1,n=this._rating===t?0:t;this._dispatch(`luzmo-feedback-changed`,{rating:n,comment:this.feedback?.comment})}_renderFilters(e,t){return e.inlineData?s.nothing:s.html`
|
|
196
|
+
<div class="edit-column edit-column-filters">
|
|
197
|
+
<luzmo-field-label size=${this.size}
|
|
198
|
+
>${(0,l.msg)(`Filters`,{desc:`Label for the filters section`})}</luzmo-field-label
|
|
199
|
+
>
|
|
200
|
+
<luzmo-filters
|
|
201
|
+
size=${this.size}
|
|
202
|
+
.datasetIds=${t}
|
|
203
|
+
.filters=${e.filters??[]}
|
|
204
|
+
.authKey=${this.authKey}
|
|
205
|
+
.authToken=${this.authToken}
|
|
206
|
+
.apiUrl=${this.apiUrl}
|
|
207
|
+
.language=${this.language}
|
|
208
|
+
.contentLanguage=${this._effectiveContentLanguage}
|
|
209
|
+
@luzmo-filters-changed=${this._handleFiltersChanged}
|
|
210
|
+
></luzmo-filters>
|
|
211
|
+
</div>
|
|
212
|
+
`}_renderConfigPanel(){if(!this.chart||!this._canShowConfigPanel||!this._configPanelOpen)return s.nothing;let e=this.chart,t=i.r(e.slots??[]),n=i.i(t),r=e.options.theme??_;return s.html`
|
|
195
213
|
<div class="config-panel" part="config-panel">
|
|
196
214
|
<luzmo-tabs selected="data" size=${this.size}>
|
|
197
215
|
<luzmo-tab value="data">${(0,l.msg)(`Data`,{desc:`Label for the data section`})}</luzmo-tab>
|
|
@@ -214,22 +232,7 @@ require("./tokens-BWMfo_w4.cjs");const e=require("./base-CGDNY_7v.cjs"),t=requir
|
|
|
214
232
|
@luzmo-slots-contents-changed=${this._handleSlotsChanged}
|
|
215
233
|
></luzmo-item-slot-picker-panel>
|
|
216
234
|
</div>
|
|
217
|
-
|
|
218
|
-
<luzmo-field-label size=${this.size}
|
|
219
|
-
>${(0,l.msg)(`Filters`,{desc:`Label for the filters section`})}</luzmo-field-label
|
|
220
|
-
>
|
|
221
|
-
<luzmo-filters
|
|
222
|
-
size=${this.size}
|
|
223
|
-
.datasetIds=${n}
|
|
224
|
-
.filters=${e.filters??[]}
|
|
225
|
-
.authKey=${this.authKey}
|
|
226
|
-
.authToken=${this.authToken}
|
|
227
|
-
.apiUrl=${this.apiUrl}
|
|
228
|
-
.language=${this.language}
|
|
229
|
-
.contentLanguage=${this._effectiveContentLanguage}
|
|
230
|
-
@luzmo-filters-changed=${this._handleFiltersChanged}
|
|
231
|
-
></luzmo-filters>
|
|
232
|
-
</div>
|
|
235
|
+
${this._renderFilters(e,n)}
|
|
233
236
|
</div>
|
|
234
237
|
</luzmo-tab-panel>
|
|
235
238
|
|
package/custom-elements.json
CHANGED
|
@@ -14444,7 +14444,7 @@
|
|
|
14444
14444
|
"text": "FlexChartConfig | null"
|
|
14445
14445
|
},
|
|
14446
14446
|
"default": "null",
|
|
14447
|
-
"description": "Loose chart config (type, options, slots, filters); slots may use the keyed-object form.",
|
|
14447
|
+
"description": "Loose chart config (type, options, slots, filters, inlineData); slots may use the keyed-object form.",
|
|
14448
14448
|
"fieldName": "chart"
|
|
14449
14449
|
},
|
|
14450
14450
|
{
|
|
@@ -14674,6 +14674,14 @@
|
|
|
14674
14674
|
}
|
|
14675
14675
|
],
|
|
14676
14676
|
"exports": [
|
|
14677
|
+
{
|
|
14678
|
+
"kind": "js",
|
|
14679
|
+
"name": "InlineData",
|
|
14680
|
+
"declaration": {
|
|
14681
|
+
"name": "InlineData",
|
|
14682
|
+
"module": "src/components/interactive-viz-item/types.ts"
|
|
14683
|
+
}
|
|
14684
|
+
},
|
|
14677
14685
|
{
|
|
14678
14686
|
"kind": "js",
|
|
14679
14687
|
"name": "DEFAULT_RANKING_NUMBER",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luzmo/analytics-components-kit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/cumulio-internal/analytics-components-kit.git"
|
|
@@ -346,7 +346,7 @@
|
|
|
346
346
|
"@lit/context": "^1.1.5",
|
|
347
347
|
"@lit/localize": "^0.12.2",
|
|
348
348
|
"@lit/task": "^1.0.1",
|
|
349
|
-
"@luzmo/embed": "^7.5.0",
|
|
349
|
+
"@luzmo/embed": "^7.5.0 || ^8.0.0",
|
|
350
350
|
"@luzmo/icons": "^1.0.1-alpha.49",
|
|
351
351
|
"@luzmo/lucero": "^2.6.1",
|
|
352
352
|
"colorjs.io": "^0.5.2",
|
package/react/package.json
CHANGED
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
"peerDependencies": {
|
|
30
30
|
"@lit/react": "^1.0.6",
|
|
31
31
|
"react": "^18.0.0 || ^19.0.0",
|
|
32
|
-
"@luzmo/analytics-components-kit": "^1.
|
|
32
|
+
"@luzmo/analytics-components-kit": "^1.3.0"
|
|
33
33
|
},
|
|
34
|
-
"version": "1.
|
|
34
|
+
"version": "1.3.0",
|
|
35
35
|
"repository": {
|
|
36
36
|
"type": "git",
|
|
37
37
|
"url": "git+https://github.com/cumulio-internal/analytics-components-kit.git"
|
|
@@ -19,44 +19,44 @@
|
|
|
19
19
|
*
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import{a as e,i as t,n,r,t as i}from"./chunks/version-BW4Ixl63.js";import{t as a}from"./chunks/localized-decorator-DJVBmJVH.js";import{t as o}from"./chunks/luzmoAngleDown-PNrItYzK.js";import{t as s}from"./chunks/luzmoAngleLeft-ebJO7ROy.js";import{t as c}from"./chunks/luzmoArrowsHorizontal-TohKbcQD.js";import{t as l}from"./chunks/luzmoPlus-Dyrrz0v8.js";import{d as u,f as d,o as f,p}from"./chunks/chart-helpers-DsIGsaDc.js";import{t as m}from"./chunks/data-broker-DXDyIrj_.js";import{t as h}from"./chunks/localize-DXRmGRe-.js";import{html as g,ifDefined as _,nothing as v,property as y,query as b,state as x,unsafeCSS as S}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/checkbox.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/divider.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/field-group.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/menu.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/notice.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/search.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.js";var C={icon:[32,32,`m9.3 7.3-9 9a1 1 0 0 0 0 1.4l9 9c1 1 2.3-.5 1.4-1.4L3.4 18H31c1.3 0 1.3-2 0-2H3.4l7.3-7.3c1-1-.5-2.3-1.4-1.4Z`],name:`arrow-left`},w={icon:[32,32,`m22.7 7.3 9 9c.4.4.4 1 0 1.4l-9 9c-1 1-2.4-.5-1.4-1.4l7.3-7.3H1c-1.3 0-1.3-2 0-2h27.6l-7.3-7.3c-1-1 .5-2.3 1.4-1.4z`],name:`arrow-right`},T={icon:[14,32,`m3.7 8.2 8 7a1 1 0 0 1 0 1.6l-8 7c-1 .8-2.3-.7-1.4-1.6L9.5 16 2.3 9.8c-1-1 .4-2.4 1.4-1.6z`],name:`angle-right`},E={icon:[32,32,`M13.1 2.05.53 26.55C-.797 29.136.63 32 4.43 32H27.6c3.8 0 5.23-2.865 3.9-5.45L18.9 2.05c-1.423-2.745-4.437-2.686-5.8 0zm4 .9 12.6 24.5c.72 1.43.04 2.55-2.1 2.55H4.43c-2.14 0-2.82-1.12-2.1-2.55L14.9 2.95c.614-1.268 1.586-1.268 2.2 0zM15 11v10c0 1.3 2 1.3 2 0V11c0-1.305-2-1.305-2 0zm-.5 14.5c0 1.961 3 1.961 3 0s-3-1.961-3 0z`],name:`alert-outline`},D={icon:[32,32,`m14 26c-1.4 0-1.4 2 0 2h4c1.4 0 1.4-2 0-2zM10 2C7.8 2 6 3.8 6 6v22c0 2.2 1.8 4 4 4h12c2.2 0 4-1.8 4-4V6C26 3.8 24.2 2 22 2Zm0 2h12c1.1 0 2 0.9 2 2v22c0 1.1-0.9 2-2 2H10C8.9 30 8 29.1 8 28V6C8 4.9 8.9 4 10 4Z`],name:`mobile`},O={icon:[32,32,`m12 26c-1.4 0-1.4 2 0 2h8c1.4 0 1.4-2 0-2zM6 0C3.8 0 2 1.8 2 4v24c0 2.2 1.8 4 4 4h20c2.2 0 4-1.8 4-4V4C30 1.8 28.2 0 26 0Zm0 2h20c1.1 0 2 0.9 2 2v24c0 1.1-0.9 2-2 2H6C4.9 30 4 29.1 4 28V4C4 2.9 4.9 2 6 2Z`],name:`tablet`},ee={icon:[40,32,`M7 2C5.4 2 4 3.4 4 5v19c0 1.6 1.4 3 3 3h26c1.6 0 3-1.4 3-3V5C36 3.4 34.6 2 33 2Zm0 2h26c0.6 0 1 0.4 1 1v19c0 0.6-0.4 1-1 1H7C6.4 25 6 24.6 6 24V5C6 4.4 6.4 4 7 4ZM1 25a1 1 0 0 0-1 1v1c0 2.7 2.3 5 5 5h30c2.7 0 5-2.3 5-5v-1a1 1 0 0 0-1-1zm1 2h36c0 1.7-1.3 3-3 3H5C3.3 30 2 28.7 2 27Z`],name:`laptop`},te={icon:[40,32,`m18.2 22-2.2 8.8 1.9 0.5L19.8 24h0.4l1.8 7.2 1.9-0.5L21.8 22ZM11 30a1 1 0 0 0-1 1 1 1 0 0 0 1 1h18a1 1 0 0 0 1-1 1 1 0 0 0-1-1zM3 0C1.4 0 0 1.4 0 3v18c0 1.6 1.4 3 3 3h34c1.6 0 3-1.4 3-3V3C40 1.4 38.6 0 37 0Zm0 2h34c0.6 0 1 0.4 1 1v18c0 0.6-0.4 1-1 1H3C2.4 22 2 21.6 2 21V3C2 2.4 2.4 2 3 2Z`],name:`desktop`},ne={icon:[32,32,`M24 0C22 0 20 0.8 18.5 2.2A0.9 0.9 0 0 0 18.5 2.2 0.9 0.9 0 0 0 18.4 2.3C18.4 2.3 18.4 2.3 18.3 2.3A0.9 0.9 0 0 0 18.2 2.5 0.9 0.9 0 0 0 18.2 2.5L13.2 7.5A0.9 0.9 0 0 0 13.2 7.5 0.9 0.9 0 0 0 13.1 7.6C13.1 7.6 13.1 7.6 13.1 7.6L13 7.7A0.9 0.9 0 0 0 12.8 8.1 0.9 0.9 0 0 0 12.8 8.1C11.7 9.5 11 11.2 11 13 11 16.4 13.2 19.5 16.5 20.6A0.9 0.9 0 0 0 17.6 20 0.9 0.9 0 0 0 17 18.9C14.5 18 12.8 15.7 12.8 13 12.8 11.5 13.4 10 14.4 8.9L19.6 3.6A0.9 0.9 0 0 0 19.7 3.6C20.8 2.5 22.4 1.8 24 1.8 27.4 1.8 30.2 4.6 30.2 8 30.2 9.6 29.5 11.2 28.4 12.3A0.9 0.9 0 0 0 28.4 12.4L23.4 17.4A0.9 0.9 0 0 0 23.4 18.6 0.9 0.9 0 0 0 24.6 18.6L29.5 13.8A0.9 0.9 0 0 0 29.7 13.7C29.7 13.6 29.7 13.6 29.7 13.6A0.9 0.9 0 0 0 29.8 13.5 0.9 0.9 0 0 0 29.8 13.4C31.2 12 32 10 32 8 32 3.6 28.4 0 24 0zM15.2 11.4A0.9 0.9 0 0 0 14.4 12 0.9 0.9 0 0 0 15 13.1C17.5 14 19.2 16.3 19.2 19 19.2 20.5 18.6 22 17.6 23.1L12.4 28.4A0.9 0.9 0 0 0 12.3 28.4C11.2 29.5 9.6 30.2 8 30.2 4.6 30.2 1.8 27.4 1.8 24 1.8 22.4 2.5 20.8 3.6 19.7A0.9 0.9 0 0 0 3.6 19.6L8.6 14.6A0.9 0.9 0 0 0 8.6 13.4 0.9 0.9 0 0 0 7.4 13.4L2.5 18.2A0.9 0.9 0 0 0 2.3 18.3C2.3 18.4 2.3 18.4 2.3 18.4A0.9 0.9 0 0 0 2.2 18.5 0.9 0.9 0 0 0 2.2 18.6C0.8 20 0 22 0 24 0 28.4 3.6 32 8 32 10 32 12 31.2 13.5 29.8 13.5 29.8 13.5 29.8 13.5 29.8A0.9 0.9 0 0 0 13.6 29.7C13.6 29.7 13.6 29.7 13.7 29.7A0.9 0.9 0 0 0 13.8 29.5 0.9 0.9 0 0 0 13.8 29.5L18.8 24.5 18.8 24.5A0.9 0.9 0 0 0 18.9 24.4C18.9 24.4 18.9 24.4 18.9 24.4L19 24.3A0.9 0.9 0 0 0 19.2 23.9C19.2 23.9 19.2 23.9 19.2 23.9 20.3 22.5 21 20.8 21 19 21 15.6 18.8 12.5 15.5 11.4A0.9 0.9 0 0 0 15.2 11.4z`],name:`link`},re={icon:[32,32,`M16 0a16 16 0 1 0 0 32 16 16 0 0 0 0-32Zm0 2a14 14 0 0 1 14 14 14 14 0 0 1-14 14A14 14 0 0 1 2 16 14 14 0 0 1 16 2Zm5.2 8.4-6.3 9-4.2-4.1c-1-1-2.3.5-1.4 1.4l5 5a1 1 0 0 0 1.5-.1l7-10c.8-1.1-.9-2.2-1.6-1.2z`],name:`check-circle-outline`},k=`:host{align-items:flex-end;gap:var(--luzmo-spacing-2);font-family:var(--luzmo-font-family);flex-direction:column;display:inline-flex}.trigger-spinner{--luzmo-progress-circle-size:var(--luzmo-icon-size-xs)}.trigger-chevron{margin-inline-start:var(--luzmo-spacing-1)}.picker{gap:var(--luzmo-spacing-3);width:var(--luzmo-add-to-dashboard-picker-width,var(--add-to-dashboard-picker-width));max-width:90vw;padding:var(--luzmo-spacing-2);color:var(--luzmo-font-color);font-size:var(--luzmo-font-size-s);flex-direction:column;display:flex}luzmo-search{width:100%}.list{max-height:var(--luzmo-add-to-dashboard-list-max-height,var(--add-to-dashboard-list-max-height));flex-direction:column;display:flex;overflow-y:auto}.menu{--luzmo-menu-max-height:none;flex:none;width:100%;overflow:visible}.create-row{--luzmo-menu-item-label-icon-color-default:var(--luzmo-primary)}.thumbnail{object-fit:cover;border:var(--luzmo-border-width) solid var(--luzmo-border-color);border-radius:var(--luzmo-border-radius);width:2.75rem;height:2rem}.drill-in{color:var(--luzmo-font-color-extra-dimmed)}.header{align-items:center;gap:var(--luzmo-spacing-2);display:flex}.header-title{font-weight:var(--luzmo-font-weight-bold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty{align-items:center;gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-4);text-align:center;flex-direction:column;display:flex}.loading{padding:var(--luzmo-spacing-3);justify-content:center;display:flex}.screen-modes{gap:var(--luzmo-spacing-2);flex-direction:column;display:flex}.screen-mode{align-items:center;gap:var(--luzmo-spacing-2);display:flex}.screen-mode-size{color:var(--luzmo-font-color-extra-dimmed)}.footer{justify-content:flex-end;display:flex}.status{justify-content:flex-end;width:0;min-width:100%;display:flex}.status:empty{display:none}.alert{flex:none;inline-size:max-content}.alert-body{align-items:center;gap:var(--luzmo-spacing-3);block-size:1lh;min-inline-size:0;display:flex}.alert-text{min-inline-size:0;font-weight:var(--luzmo-font-weight-semibold);white-space:pre;display:flex}.alert[variant=negative] .alert-text{white-space:normal}.alert-name{min-inline-size:0;font-weight:var(--luzmo-font-weight-bold);text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext;overflow:hidden}.alert-open{flex:none}:host{--add-to-dashboard-picker-width:18rem;--add-to-dashboard-list-max-height:16rem}`,A=`0.1.0`,j=[`id`,`name`,`contents`,`modified_at`,`is_variant`,`original_id`],M=/* @__PURE__ */ new Set([`designer`,`owner`]),N=`flag_dashboard_variants`,P=[`desktop`,`tablet`,`mobile`];async function F(e,t,n){let r=[],i=t,a=0;for(let t of e){let e=n-r.length,o=await t(i,Math.max(e,1));e>0&&r.push(...o.rows.slice(0,e)),i=Math.max(0,i-o.count),a+=o.count}return{rows:r,total:a}}async function I(e){let t=await e.fetchApi(`/user`,{action:`get`,version:A,find:{where:{id:`me`},attributes:[`id`,`flags`]}});return{id:t.rows?.[0]?.id??``,flags:t.rows?.[0]?.flags??[]}}async function L(e,t){return(await e.fetchApi(`/authorization`,{action:`get`,version:A,find:{where:{id:t}}})).rows?.[0]}async function R(e,t,n){let r={...t,where:{...t.where,type:`dashboard`}},i=await e.fetchApi(`/securable`,{action:`get`,version:A,find:r},{signal:n});return{rows:i.rows??[],count:i.count??i.rows?.length??0}}function z(e){let t={modifyIds:/* @__PURE__ */ new Set,useOnlyIds:/* @__PURE__ */ new Set};for(let n of e?.access?.dashboards??[])n.rights?.Modify?t.modifyIds.add(n.id):n.rights?.Use&&t.useOnlyIds.add(n.id);return t}function B(){return{version:i,syncScreenModes:!0,views:P.map(e=>({screenModus:e,options:{theme:{id:`default`}},filterGroups:[],items:[]})),timezone:{type:`fixed`,id:`UTC`}}}function V(e){return e?{search:{match_types:[`name`,`description`],keyphrase:e,securable_types:[`dashboard`]}}:{}}function H(e,t){return{include:[{model:`User`,as:`allUsers`,attributes:[],required:!0,where:{id:e,...Object.fromEntries(Object.entries(t).map(([e,t])=>[`securableAccessRight.${e}`,t]))}}]}}async function U(e){let n=new m({apiUrl:e.apiUrl,authKey:e.authKey,authToken:e.authToken,skipNetworkListeners:!0}),[r,i]=await Promise.all([I(n),L(n,e.authKey)]),a=z(i),o=i?.type!==`embed`||M.has(i.role??``),s=!!r.id&&r.flags.includes(N),c=[...a.modifyIds,...s?a.useOnlyIds:[]],l=c.length>0?{id:{notIn:c}}:{},u=(t,n=!1)=>{let r=[...new Set((t.contents?.views??[]).map(e=>e.screenModus))];return{id:t.id,name:h(t.name??{},e.language),syncScreenModes:t.contents?.syncScreenModes!==!1,screenModes:r.length>0?r:[`desktop`],...n?{requiresVariant:n}:{}}},d,f=(e,t)=>async(r,i)=>{if(c.length===0)return{count:0,rows:[]};let o=r>0&&d?.search===e?d.rows:void 0;return o||(o=(await R(n,{where:{is_variant:!1,archived_at:null,id:{in:c}},attributes:j,...V(e)},t)).rows.map(e=>u(e,!a.modifyIds.has(e.id))).sort((e,t)=>e.name.localeCompare(t.name)),d={search:e,rows:o}),{count:o.length,rows:o.slice(r,r+i)}},p=(e,t,i,a)=>async(o,s)=>{let c=await R(n,{where:{is_variant:!1,archived_at:null,...l},attributes:j,...H(r.id,i),...V(e),limit:s,offset:o,order:[[`modified_at`,`desc`]]},t);return{count:c.count,rows:c.rows.map(e=>u(e,a))}},g=async(e,t,r,i)=>{await n.fetchApi(`/securable`,{action:`update`,version:A,id:e,properties:{append_item:{item:t,...r?.length?{screenModes:r}:{}}}},{signal:i})},_=async(e,t,r)=>{try{await g(e.id,t,r)}catch(t){throw await n.fetchApi(`/securable`,{action:`delete`,version:A,id:e.id}).catch(()=>void 0),t}},v=async(e,t)=>await n.fetchApi(`/securable`,{action:`create`,version:A,properties:{...e,type:`dashboard`},associations:t});return{async list(e,t){return r.id?await F([f(e.search,t.signal),...s?[p(e.search,t.signal,{flagUse:!0,flagModify:!1},!0)]:[],p(e.search,t.signal,{flagModify:!0},!1)],e.offset,e.limit):{rows:[],total:0}},async add(e,t,n,r){await g(e.id,t,n.screenModes,r.signal)},...o?{async create(t,n){let r=await v({name:n.name?{[e.language]:n.name}:{},contents:B()});return await _(r,t,void 0),u(r)}}:{},...s?{async listVariants(e,t){return(await R(n,{where:{is_variant:!0,original_id:e.id,archived_at:null},attributes:j,...H(r.id,{flagModify:!0}),order:[[`modified_at`,`desc`]]},t.signal)).rows.map(e=>u(e))}}:{},...s&&o?{async addToVariant(r,i,a){let o=(await R(n,{where:{id:r.id},attributes:[`id`,`name`,`contents`]})).rows[0];if(!o?.contents)throw Error(t(`The dashboard was not found.`,{desc:`Adding the chart to a variant failed because the original dashboard could not be loaded`}));let s=o.name??{},c=await v({name:a.name?{...s,[e.language]:a.name}:s,contents:o.contents},[{role:`original`,id:r.id}]);return await _(c,i,a.screenModes),u({...c,contents:c.contents??o.contents})}}:{}}}function W(e){let{theme:t,...n}=e.options??{};return{...f(e),options:n}}function G(e,t){let n=new Set(e),r=e.length+1;for(;n.has(t(r));)r+=1;return r}var K=20,q=300,J=8,Y=48,X=`__luzmo-new-dashboard`,Z=`__luzmo-new-variant`,Q=/* @__PURE__ */ new Map,ie=0,$=class extends n(d(p,{validSizes:Object.values(u)})){constructor(...e){super(...e),this.chart=null,this.dashboardActions=null,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.placement=`bottom-end`,this.disabled=!1,this._open=!1,this._actions=null,this._step=`list`,this._rows=[],this._hasMore=!1,this._loading=!1,this._listFailed=!1,this._original=null,this._variants=[],this._variantsLoading=!1,this._variantsFailed=!1,this._pending=null,this._screenModes=[],this._saving=!1,this._status=null,this._triggerId=`add-to-dashboard-trigger-${++ie}`,this._search=``,this._actionsGeneration=0,this._reloadOnUpdate=!1}static get styles(){let e=super.styles??[];return[...Array.isArray(e)?e:[e],S(k)]}get _hasSource(){return!!this.dashboardActions||!!(this.authKey&&this.authToken)}connectedCallback(){super.connectedCallback(),this._status&&this._startFittingAlert()}disconnectedCallback(){super.disconnectedCallback(),this._handleClosed(),this._actionsGeneration+=1,this._saveAbort?.abort(),this._stopFittingAlert()}willUpdate(e){super.willUpdate(e),(e.has(`dashboardActions`)||e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`language`))&&(this._actions=null,this._actionsGeneration+=1,this._open&&(this._listAbort?.abort(),this._variantsAbort?.abort(),this._step=`list`,this._original=null,this._pending=null,this._rows=[],this._open=this._hasSource,this._reloadOnUpdate=this._hasSource)),e.has(`disabled`)&&this.disabled&&(this._open=!1),e.has(`chart`)&&!this.chart&&this._handleClosed()}updated(e){super.updated(e),this._reloadOnUpdate&&(this._reloadOnUpdate=!1,this._loadList()),e.has(`_step`)&&this._open&&this._focusStep(),e.has(`_status`)&&(this._status?this._startFittingAlert():this._stopFittingAlert())}get _alertContainer(){let e=this.getRootNode();return this.parentElement??(e instanceof ShadowRoot?e.host:null)}_startFittingAlert(){this._fitAlert();let e=this._alertContainer;!this._alertResizeObserver&&e&&(this._alertResizeObserver=new ResizeObserver(()=>this._fitAlert()),this._alertResizeObserver.observe(this),this._alertResizeObserver.observe(e))}_stopFittingAlert(){this._alertResizeObserver?.disconnect(),this._alertResizeObserver=void 0}_fitAlert(){let e=this._noticeElement,t=this._alertContainer;if(!e||!t)return;let n=this.getBoundingClientRect(),r=t.getBoundingClientRect(),i=Number.parseFloat(getComputedStyle(t).paddingInlineStart)||0,a=(this.isLTR?n.right-r.left:r.right-n.left)-i;e.style.setProperty(`--luzmo-notice-max-inline-size`,`${Math.max(0,a)}px`)}async _resolveActions(){if(this.dashboardActions)return this.dashboardActions;let e={apiUrl:this.apiUrl,authKey:this.authKey,authToken:this.authToken,language:this.language},t=JSON.stringify(e),n=Q.get(t);return n||(Q.clear(),n=U(e),Q.set(t,n),n.catch(()=>Q.delete(t))),await n}_dispatch(e,t){let n=new CustomEvent(e,{detail:t,bubbles:!0,composed:!0});this.dispatchEvent(n)}_displayName(e){return e.name.trim()||t(`Untitled dashboard`,{desc:`Fallback name of a dashboard without a name`})}_variantName(n,r){let i=this._displayName(n);return t(e`${i} (variant ${r})`,{desc:`Name of a new dashboard variant`})}_screenModeChoices(){return[{name:`mobile`,label:t(`Smartphone`,{desc:`Screen mode name`}),size:`< 768px`,icon:D},{name:`tablet`,label:t(`Tablet`,{desc:`Screen mode name`}),size:`≥ 768px`,icon:O},{name:`desktop`,label:t(`Desktop`,{desc:`Screen mode name`}),size:`≥ 1200px`,icon:ee},{name:`largeScreen`,label:t(`Large screen`,{desc:`Screen mode name`}),size:`≥ 1600px`,icon:te},{name:`fixed`,label:t(`Fixed width`,{desc:`Screen mode name`}),icon:c}]}async _handleOpened(e){e.target===e.currentTarget&&(this._open=!0,this._step=`list`,this._search=``,this._original=null,this._pending=null,this._rows=[],await this.updateComplete,this._searchElement?.focus(),await this._loadList())}async _loadList(){let e=this._actionsGeneration;this._loading=!0,this._listFailed=!1;try{let t=this._actions??await this._resolveActions();if(e!==this._actionsGeneration)return;this._actions=t}catch(t){if(!this.isConnected||e!==this._actionsGeneration)return;console.error(`Failed to resolve the add to dashboard actions:`,t),this._loading=!1,this._listFailed=!0;return}this.isConnected&&this._open&&await this._loadPage(!1)}_handleClosed(e){e&&e.target!==e.currentTarget||(this._open=!1,clearTimeout(this._searchTimer),this._listAbort?.abort(),this._variantsAbort?.abort())}async _loadPage(e){let t=this._actions;if(!t)return;this._listAbort?.abort();let n=new AbortController;this._listAbort=n,this._loading=!0,this._listFailed=!1,e||(this._rows=[]);try{let e=await t.list({search:this._search,offset:this._rows.length,limit:K},{signal:n.signal});if(n.signal.aborted)return;this._rows=[...this._rows,...e.rows],this._hasMore=e.total===void 0?e.rows.length===K:this._rows.length<e.total}catch(e){if(n.signal.aborted)return;console.error(`Failed to load dashboards:`,e),this._listFailed=!0}finally{n.signal.aborted||(this._loading=!1)}}_handleSearchInput(e){this._search=String(e.target?.value??``),clearTimeout(this._searchTimer),this._searchTimer=setTimeout(()=>void this._loadPage(!1),q)}_handleListScroll(e){let t=e.target;this._hasMore&&!this._loading&&t.scrollHeight-t.scrollTop-t.clientHeight<=Y&&this._loadPage(!0)}_menuValue(e){return e.stopPropagation(),e.target.value??``}_handleListChange(e){let t=this._menuValue(e);if(t===X){this._actions?.create&&this._save({kind:`create`});return}let n=this._rows.find(e=>e.id===t);n&&(n.requiresVariant?(this._original=n,this._step=`variants`,this._loadVariants()):this._selectTarget({kind:`add`,dashboard:n,isVariant:!1},n))}_handleVariantChange(e){let t=this._menuValue(e),n=this._original;if(!n)return;if(t===Z){if(!this._actions?.addToVariant)return;let e=this._variants.map(e=>this._displayName(e)),t=this._variantName(n,G(e,e=>this._variantName(n,e)));this._selectTarget({kind:`variant`,original:n,name:t},n);return}let r=this._variants.find(e=>e.id===t);r&&this._selectTarget({kind:`add`,dashboard:r,isVariant:!0},r)}_selectTarget(e,t){t.syncScreenModes!==!1||!t.screenModes?.length?this._save(e):(this._pending=e,this._screenModes=[...t.screenModes??[]],this._step=`screenModes`)}async _loadVariants(){let e=this._actions,t=this._original;if(this._variantsAbort?.abort(),this._variants=[],this._variantsLoading=!1,this._variantsFailed=!1,!e?.listVariants||!t)return;let n=new AbortController;this._variantsAbort=n,this._variantsLoading=!0;try{let r=await e.listVariants(t,{signal:n.signal});n.signal.aborted||(this._variants=r)}catch(e){n.signal.aborted||(console.error(`Failed to load dashboard variants:`,e),this._variantsFailed=!0)}finally{n.signal.aborted||(this._variantsLoading=!1)}}_handleBack(){this._step===`screenModes`&&this._original?this._step=`variants`:(this._step=`list`,this._original=null),this._pending=null}_toggleScreenMode(e){this._screenModes=this._screenModes.includes(e)?this._screenModes.filter(t=>t!==e):[...this._screenModes,e]}_handleConfirmScreenModes(){this._pending&&this._screenModes.length>0&&this._save(this._pending,{screenModes:[...this._screenModes]})}async _save(e,t={}){let n=this._actions;if(!n||!this.chart||this._saving)return;this._open=!1,this._saving=!0,this._setStatus(null),this._saveAbort=new AbortController;let r=W(this.chart),i={signal:this._saveAbort.signal};try{let a;if(e.kind===`create`&&n.create)a=await n.create(r,t,i);else if(e.kind===`variant`&&n.addToVariant)a=await n.addToVariant(e.original,r,{...t,name:e.name},i);else if(e.kind===`add`)a=await n.add(e.dashboard,r,t,i)||e.dashboard;else return;if(i.signal.aborted)return;this._setStatus({kind:`success`,dashboard:a,isVariant:e.kind===`variant`||e.kind===`add`&&e.isVariant,openDashboard:n.openDashboard?.bind(n)}),this._dispatch(`luzmo-chart-added`,{dashboard:a})}catch(e){if(i.signal.aborted)return;console.error(`Failed to add the chart to a dashboard:`,e),this._setStatus({kind:`error`,message:e instanceof Error&&e.message?e.message:void 0}),this._dispatch(`luzmo-chart-add-failed`,{error:e})}finally{this._saving=!1}await this.updateComplete,this.isConnected&&this._isFocusLost()&&this._focusTrigger()}_setStatus(e){this._status=e}_focusTrigger(){this._triggerElement?.focus()}_isFocusLost(){return!document.activeElement||document.activeElement===document.body}async _handleNoticeClose(e){e.stopPropagation();let t=e.currentTarget.matches(`:focus-within`);this._setStatus(null),await this.updateComplete,t&&this._isFocusLost()&&this._focusTrigger()}async _focusStep(){let e=this._step===`list`?this._searchElement:this._backElement;await e?.updateComplete,e?.focus()}_renderRow(e){return g`
|
|
22
|
+
import{i as e,n as t,r as n,t as r}from"./chunks/localized-mixin-BWJj88bd.js";import{t as i}from"./chunks/localized-decorator-DosMCCQo.js";import{t as a}from"./chunks/luzmoAngleDown-PNrItYzK.js";import{t as o}from"./chunks/luzmoAngleLeft-ebJO7ROy.js";import{t as s}from"./chunks/luzmoArrowsHorizontal-TohKbcQD.js";import{t as c}from"./chunks/luzmoPlus-Dyrrz0v8.js";import{d as l,f as u,o as d,p as f}from"./chunks/chart-helpers-CR-EUEPf.js";import{t as p}from"./chunks/data-broker-DXDyIrj_.js";import{t as m}from"./chunks/localize-DXRmGRe-.js";import{html as h,ifDefined as g,nothing as _,property as v,query as y,state as b,unsafeCSS as x}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/checkbox.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/divider.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/field-group.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/menu.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/notice.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/search.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.js";var S={icon:[32,32,`m9.3 7.3-9 9a1 1 0 0 0 0 1.4l9 9c1 1 2.3-.5 1.4-1.4L3.4 18H31c1.3 0 1.3-2 0-2H3.4l7.3-7.3c1-1-.5-2.3-1.4-1.4Z`],name:`arrow-left`},C={icon:[32,32,`m22.7 7.3 9 9c.4.4.4 1 0 1.4l-9 9c-1 1-2.4-.5-1.4-1.4l7.3-7.3H1c-1.3 0-1.3-2 0-2h27.6l-7.3-7.3c-1-1 .5-2.3 1.4-1.4z`],name:`arrow-right`},w={icon:[14,32,`m3.7 8.2 8 7a1 1 0 0 1 0 1.6l-8 7c-1 .8-2.3-.7-1.4-1.6L9.5 16 2.3 9.8c-1-1 .4-2.4 1.4-1.6z`],name:`angle-right`},T={icon:[32,32,`M13.1 2.05.53 26.55C-.797 29.136.63 32 4.43 32H27.6c3.8 0 5.23-2.865 3.9-5.45L18.9 2.05c-1.423-2.745-4.437-2.686-5.8 0zm4 .9 12.6 24.5c.72 1.43.04 2.55-2.1 2.55H4.43c-2.14 0-2.82-1.12-2.1-2.55L14.9 2.95c.614-1.268 1.586-1.268 2.2 0zM15 11v10c0 1.3 2 1.3 2 0V11c0-1.305-2-1.305-2 0zm-.5 14.5c0 1.961 3 1.961 3 0s-3-1.961-3 0z`],name:`alert-outline`},E={icon:[32,32,`m14 26c-1.4 0-1.4 2 0 2h4c1.4 0 1.4-2 0-2zM10 2C7.8 2 6 3.8 6 6v22c0 2.2 1.8 4 4 4h12c2.2 0 4-1.8 4-4V6C26 3.8 24.2 2 22 2Zm0 2h12c1.1 0 2 0.9 2 2v22c0 1.1-0.9 2-2 2H10C8.9 30 8 29.1 8 28V6C8 4.9 8.9 4 10 4Z`],name:`mobile`},D={icon:[32,32,`m12 26c-1.4 0-1.4 2 0 2h8c1.4 0 1.4-2 0-2zM6 0C3.8 0 2 1.8 2 4v24c0 2.2 1.8 4 4 4h20c2.2 0 4-1.8 4-4V4C30 1.8 28.2 0 26 0Zm0 2h20c1.1 0 2 0.9 2 2v24c0 1.1-0.9 2-2 2H6C4.9 30 4 29.1 4 28V4C4 2.9 4.9 2 6 2Z`],name:`tablet`},ee={icon:[40,32,`M7 2C5.4 2 4 3.4 4 5v19c0 1.6 1.4 3 3 3h26c1.6 0 3-1.4 3-3V5C36 3.4 34.6 2 33 2Zm0 2h26c0.6 0 1 0.4 1 1v19c0 0.6-0.4 1-1 1H7C6.4 25 6 24.6 6 24V5C6 4.4 6.4 4 7 4ZM1 25a1 1 0 0 0-1 1v1c0 2.7 2.3 5 5 5h30c2.7 0 5-2.3 5-5v-1a1 1 0 0 0-1-1zm1 2h36c0 1.7-1.3 3-3 3H5C3.3 30 2 28.7 2 27Z`],name:`laptop`},te={icon:[40,32,`m18.2 22-2.2 8.8 1.9 0.5L19.8 24h0.4l1.8 7.2 1.9-0.5L21.8 22ZM11 30a1 1 0 0 0-1 1 1 1 0 0 0 1 1h18a1 1 0 0 0 1-1 1 1 0 0 0-1-1zM3 0C1.4 0 0 1.4 0 3v18c0 1.6 1.4 3 3 3h34c1.6 0 3-1.4 3-3V3C40 1.4 38.6 0 37 0Zm0 2h34c0.6 0 1 0.4 1 1v18c0 0.6-0.4 1-1 1H3C2.4 22 2 21.6 2 21V3C2 2.4 2.4 2 3 2Z`],name:`desktop`},ne={icon:[32,32,`M24 0C22 0 20 0.8 18.5 2.2A0.9 0.9 0 0 0 18.5 2.2 0.9 0.9 0 0 0 18.4 2.3C18.4 2.3 18.4 2.3 18.3 2.3A0.9 0.9 0 0 0 18.2 2.5 0.9 0.9 0 0 0 18.2 2.5L13.2 7.5A0.9 0.9 0 0 0 13.2 7.5 0.9 0.9 0 0 0 13.1 7.6C13.1 7.6 13.1 7.6 13.1 7.6L13 7.7A0.9 0.9 0 0 0 12.8 8.1 0.9 0.9 0 0 0 12.8 8.1C11.7 9.5 11 11.2 11 13 11 16.4 13.2 19.5 16.5 20.6A0.9 0.9 0 0 0 17.6 20 0.9 0.9 0 0 0 17 18.9C14.5 18 12.8 15.7 12.8 13 12.8 11.5 13.4 10 14.4 8.9L19.6 3.6A0.9 0.9 0 0 0 19.7 3.6C20.8 2.5 22.4 1.8 24 1.8 27.4 1.8 30.2 4.6 30.2 8 30.2 9.6 29.5 11.2 28.4 12.3A0.9 0.9 0 0 0 28.4 12.4L23.4 17.4A0.9 0.9 0 0 0 23.4 18.6 0.9 0.9 0 0 0 24.6 18.6L29.5 13.8A0.9 0.9 0 0 0 29.7 13.7C29.7 13.6 29.7 13.6 29.7 13.6A0.9 0.9 0 0 0 29.8 13.5 0.9 0.9 0 0 0 29.8 13.4C31.2 12 32 10 32 8 32 3.6 28.4 0 24 0zM15.2 11.4A0.9 0.9 0 0 0 14.4 12 0.9 0.9 0 0 0 15 13.1C17.5 14 19.2 16.3 19.2 19 19.2 20.5 18.6 22 17.6 23.1L12.4 28.4A0.9 0.9 0 0 0 12.3 28.4C11.2 29.5 9.6 30.2 8 30.2 4.6 30.2 1.8 27.4 1.8 24 1.8 22.4 2.5 20.8 3.6 19.7A0.9 0.9 0 0 0 3.6 19.6L8.6 14.6A0.9 0.9 0 0 0 8.6 13.4 0.9 0.9 0 0 0 7.4 13.4L2.5 18.2A0.9 0.9 0 0 0 2.3 18.3C2.3 18.4 2.3 18.4 2.3 18.4A0.9 0.9 0 0 0 2.2 18.5 0.9 0.9 0 0 0 2.2 18.6C0.8 20 0 22 0 24 0 28.4 3.6 32 8 32 10 32 12 31.2 13.5 29.8 13.5 29.8 13.5 29.8 13.5 29.8A0.9 0.9 0 0 0 13.6 29.7C13.6 29.7 13.6 29.7 13.7 29.7A0.9 0.9 0 0 0 13.8 29.5 0.9 0.9 0 0 0 13.8 29.5L18.8 24.5 18.8 24.5A0.9 0.9 0 0 0 18.9 24.4C18.9 24.4 18.9 24.4 18.9 24.4L19 24.3A0.9 0.9 0 0 0 19.2 23.9C19.2 23.9 19.2 23.9 19.2 23.9 20.3 22.5 21 20.8 21 19 21 15.6 18.8 12.5 15.5 11.4A0.9 0.9 0 0 0 15.2 11.4z`],name:`link`},re={icon:[32,32,`M16 0a16 16 0 1 0 0 32 16 16 0 0 0 0-32Zm0 2a14 14 0 0 1 14 14 14 14 0 0 1-14 14A14 14 0 0 1 2 16 14 14 0 0 1 16 2Zm5.2 8.4-6.3 9-4.2-4.1c-1-1-2.3.5-1.4 1.4l5 5a1 1 0 0 0 1.5-.1l7-10c.8-1.1-.9-2.2-1.6-1.2z`],name:`check-circle-outline`},O=`:host{align-items:flex-end;gap:var(--luzmo-spacing-2);font-family:var(--luzmo-font-family);flex-direction:column;display:inline-flex}.trigger-spinner{--luzmo-progress-circle-size:var(--luzmo-icon-size-xs)}.trigger-chevron{margin-inline-start:var(--luzmo-spacing-1)}.picker{gap:var(--luzmo-spacing-3);width:var(--luzmo-add-to-dashboard-picker-width,var(--add-to-dashboard-picker-width));max-width:90vw;padding:var(--luzmo-spacing-2);color:var(--luzmo-font-color);font-size:var(--luzmo-font-size-s);flex-direction:column;display:flex}luzmo-search{width:100%}.list{max-height:var(--luzmo-add-to-dashboard-list-max-height,var(--add-to-dashboard-list-max-height));flex-direction:column;display:flex;overflow-y:auto}.menu{--luzmo-menu-max-height:none;flex:none;width:100%;overflow:visible}.create-row{--luzmo-menu-item-label-icon-color-default:var(--luzmo-primary)}.thumbnail{object-fit:cover;border:var(--luzmo-border-width) solid var(--luzmo-border-color);border-radius:var(--luzmo-border-radius);width:2.75rem;height:2rem}.drill-in{color:var(--luzmo-font-color-extra-dimmed)}.header{align-items:center;gap:var(--luzmo-spacing-2);display:flex}.header-title{font-weight:var(--luzmo-font-weight-bold);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty{align-items:center;gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-4);text-align:center;flex-direction:column;display:flex}.loading{padding:var(--luzmo-spacing-3);justify-content:center;display:flex}.screen-modes{gap:var(--luzmo-spacing-2);flex-direction:column;display:flex}.screen-mode{align-items:center;gap:var(--luzmo-spacing-2);display:flex}.screen-mode-size{color:var(--luzmo-font-color-extra-dimmed)}.footer{justify-content:flex-end;display:flex}.status{justify-content:flex-end;width:0;min-width:100%;display:flex}.status:empty{display:none}.alert{flex:none;inline-size:max-content}.alert-body{align-items:center;gap:var(--luzmo-spacing-3);block-size:1lh;min-inline-size:0;display:flex}.alert-text{min-inline-size:0;font-weight:var(--luzmo-font-weight-semibold);white-space:pre;display:flex}.alert[variant=negative] .alert-text{white-space:normal}.alert-name{min-inline-size:0;font-weight:var(--luzmo-font-weight-bold);text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext;overflow:hidden}.alert-open{flex:none}:host{--add-to-dashboard-picker-width:18rem;--add-to-dashboard-list-max-height:16rem}`,k=`0.1.107`,A=`0.1.0`,j=[`id`,`name`,`contents`,`modified_at`,`is_variant`,`original_id`],M=/* @__PURE__ */ new Set([`designer`,`owner`]),N=`flag_dashboard_variants`,P=[`desktop`,`tablet`,`mobile`];async function F(e,t,n){let r=[],i=t,a=0;for(let t of e){let e=n-r.length,o=await t(i,Math.max(e,1));e>0&&r.push(...o.rows.slice(0,e)),i=Math.max(0,i-o.count),a+=o.count}return{rows:r,total:a}}async function I(e){let t=await e.fetchApi(`/user`,{action:`get`,version:A,find:{where:{id:`me`},attributes:[`id`,`flags`]}});return{id:t.rows?.[0]?.id??``,flags:t.rows?.[0]?.flags??[]}}async function L(e,t){return(await e.fetchApi(`/authorization`,{action:`get`,version:A,find:{where:{id:t}}})).rows?.[0]}async function R(e,t,n){let r={...t,where:{...t.where,type:`dashboard`}},i=await e.fetchApi(`/securable`,{action:`get`,version:A,find:r},{signal:n});return{rows:i.rows??[],count:i.count??i.rows?.length??0}}function z(e){let t={modifyIds:/* @__PURE__ */ new Set,useOnlyIds:/* @__PURE__ */ new Set};for(let n of e?.access?.dashboards??[])n.rights?.Modify?t.modifyIds.add(n.id):n.rights?.Use&&t.useOnlyIds.add(n.id);return t}function B(){return{version:k,syncScreenModes:!0,views:P.map(e=>({screenModus:e,options:{theme:{id:`default`}},filterGroups:[],items:[]})),timezone:{type:`fixed`,id:`UTC`}}}function V(e){return e?{search:{match_types:[`name`,`description`],keyphrase:e,securable_types:[`dashboard`]}}:{}}function H(e,t){return{include:[{model:`User`,as:`allUsers`,attributes:[],required:!0,where:{id:e,...Object.fromEntries(Object.entries(t).map(([e,t])=>[`securableAccessRight.${e}`,t]))}}]}}async function U(e){let t=new p({apiUrl:e.apiUrl,authKey:e.authKey,authToken:e.authToken,skipNetworkListeners:!0}),[r,i]=await Promise.all([I(t),L(t,e.authKey)]),a=z(i),o=i?.type!==`embed`||M.has(i.role??``),s=!!r.id&&r.flags.includes(N),c=[...a.modifyIds,...s?a.useOnlyIds:[]],l=c.length>0?{id:{notIn:c}}:{},u=(t,n=!1)=>{let r=[...new Set((t.contents?.views??[]).map(e=>e.screenModus))];return{id:t.id,name:m(t.name??{},e.language),syncScreenModes:t.contents?.syncScreenModes!==!1,screenModes:r.length>0?r:[`desktop`],...n?{requiresVariant:n}:{}}},d,f=(e,n)=>async(r,i)=>{if(c.length===0)return{count:0,rows:[]};let o=r>0&&d?.search===e?d.rows:void 0;return o||(o=(await R(t,{where:{is_variant:!1,archived_at:null,id:{in:c}},attributes:j,...V(e)},n)).rows.map(e=>u(e,!a.modifyIds.has(e.id))).sort((e,t)=>e.name.localeCompare(t.name)),d={search:e,rows:o}),{count:o.length,rows:o.slice(r,r+i)}},h=(e,n,i,a)=>async(o,s)=>{let c=await R(t,{where:{is_variant:!1,archived_at:null,...l},attributes:j,...H(r.id,i),...V(e),limit:s,offset:o,order:[[`modified_at`,`desc`]]},n);return{count:c.count,rows:c.rows.map(e=>u(e,a))}},g=async(e,n,r,i)=>{await t.fetchApi(`/securable`,{action:`update`,version:A,id:e,properties:{append_item:{item:n,...r?.length?{screenModes:r}:{}}}},{signal:i})},_=async(e,n,r)=>{try{await g(e.id,n,r)}catch(n){throw await t.fetchApi(`/securable`,{action:`delete`,version:A,id:e.id}).catch(()=>void 0),n}},v=async(e,n)=>await t.fetchApi(`/securable`,{action:`create`,version:A,properties:{...e,type:`dashboard`},associations:n});return{async list(e,t){return r.id?await F([f(e.search,t.signal),...s?[h(e.search,t.signal,{flagUse:!0,flagModify:!1},!0)]:[],h(e.search,t.signal,{flagModify:!0},!1)],e.offset,e.limit):{rows:[],total:0}},async add(e,t,n,r){await g(e.id,t,n.screenModes,r.signal)},...o?{async create(t,n){let r=await v({name:n.name?{[e.language]:n.name}:{},contents:B()});return await _(r,t,void 0),u(r)}}:{},...s?{async listVariants(e,n){return(await R(t,{where:{is_variant:!0,original_id:e.id,archived_at:null},attributes:j,...H(r.id,{flagModify:!0}),order:[[`modified_at`,`desc`]]},n.signal)).rows.map(e=>u(e))}}:{},...s&&o?{async addToVariant(r,i,a){let o=(await R(t,{where:{id:r.id},attributes:[`id`,`name`,`contents`]})).rows[0];if(!o?.contents)throw Error(n(`The dashboard was not found.`,{desc:`Adding the chart to a variant failed because the original dashboard could not be loaded`}));let s=o.name??{},c=await v({name:a.name?{...s,[e.language]:a.name}:s,contents:o.contents},[{role:`original`,id:r.id}]);return await _(c,i,a.screenModes),u({...c,contents:c.contents??o.contents})}}:{}}}function W(e){let{theme:t,...n}=e.options??{};return{...d(e),options:n}}function G(e,t){let n=new Set(e),r=e.length+1;for(;n.has(t(r));)r+=1;return r}var K=20,q=300,J=8,Y=48,X=`__luzmo-new-dashboard`,Z=`__luzmo-new-variant`,Q=/* @__PURE__ */ new Map,ie=0,$=class extends r(u(f,{validSizes:Object.values(l)})){constructor(...e){super(...e),this.chart=null,this.dashboardActions=null,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.placement=`bottom-end`,this.disabled=!1,this._open=!1,this._actions=null,this._step=`list`,this._rows=[],this._hasMore=!1,this._loading=!1,this._listFailed=!1,this._original=null,this._variants=[],this._variantsLoading=!1,this._variantsFailed=!1,this._pending=null,this._screenModes=[],this._saving=!1,this._status=null,this._triggerId=`add-to-dashboard-trigger-${++ie}`,this._search=``,this._actionsGeneration=0,this._reloadOnUpdate=!1}static get styles(){let e=super.styles??[];return[...Array.isArray(e)?e:[e],x(O)]}get _hasSource(){return!!this.dashboardActions||!!(this.authKey&&this.authToken)}connectedCallback(){super.connectedCallback(),this._status&&this._startFittingAlert()}disconnectedCallback(){super.disconnectedCallback(),this._handleClosed(),this._actionsGeneration+=1,this._saveAbort?.abort(),this._stopFittingAlert()}willUpdate(e){super.willUpdate(e),(e.has(`dashboardActions`)||e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`language`))&&(this._actions=null,this._actionsGeneration+=1,this._open&&(this._listAbort?.abort(),this._variantsAbort?.abort(),this._step=`list`,this._original=null,this._pending=null,this._rows=[],this._open=this._hasSource,this._reloadOnUpdate=this._hasSource)),e.has(`disabled`)&&this.disabled&&(this._open=!1),e.has(`chart`)&&!this.chart&&this._handleClosed()}updated(e){super.updated(e),this._reloadOnUpdate&&(this._reloadOnUpdate=!1,this._loadList()),e.has(`_step`)&&this._open&&this._focusStep(),e.has(`_status`)&&(this._status?this._startFittingAlert():this._stopFittingAlert())}get _alertContainer(){let e=this.getRootNode();return this.parentElement??(e instanceof ShadowRoot?e.host:null)}_startFittingAlert(){this._fitAlert();let e=this._alertContainer;!this._alertResizeObserver&&e&&(this._alertResizeObserver=new ResizeObserver(()=>this._fitAlert()),this._alertResizeObserver.observe(this),this._alertResizeObserver.observe(e))}_stopFittingAlert(){this._alertResizeObserver?.disconnect(),this._alertResizeObserver=void 0}_fitAlert(){let e=this._noticeElement,t=this._alertContainer;if(!e||!t)return;let n=this.getBoundingClientRect(),r=t.getBoundingClientRect(),i=Number.parseFloat(getComputedStyle(t).paddingInlineStart)||0,a=(this.isLTR?n.right-r.left:r.right-n.left)-i;e.style.setProperty(`--luzmo-notice-max-inline-size`,`${Math.max(0,a)}px`)}async _resolveActions(){if(this.dashboardActions)return this.dashboardActions;let e={apiUrl:this.apiUrl,authKey:this.authKey,authToken:this.authToken,language:this.language},t=JSON.stringify(e),n=Q.get(t);return n||(Q.clear(),n=U(e),Q.set(t,n),n.catch(()=>Q.delete(t))),await n}_dispatch(e,t){let n=new CustomEvent(e,{detail:t,bubbles:!0,composed:!0});this.dispatchEvent(n)}_displayName(e){return e.name.trim()||n(`Untitled dashboard`,{desc:`Fallback name of a dashboard without a name`})}_variantName(t,r){let i=this._displayName(t);return n(e`${i} (variant ${r})`,{desc:`Name of a new dashboard variant`})}_screenModeChoices(){return[{name:`mobile`,label:n(`Smartphone`,{desc:`Screen mode name`}),size:`< 768px`,icon:E},{name:`tablet`,label:n(`Tablet`,{desc:`Screen mode name`}),size:`≥ 768px`,icon:D},{name:`desktop`,label:n(`Desktop`,{desc:`Screen mode name`}),size:`≥ 1200px`,icon:ee},{name:`largeScreen`,label:n(`Large screen`,{desc:`Screen mode name`}),size:`≥ 1600px`,icon:te},{name:`fixed`,label:n(`Fixed width`,{desc:`Screen mode name`}),icon:s}]}async _handleOpened(e){e.target===e.currentTarget&&(this._open=!0,this._step=`list`,this._search=``,this._original=null,this._pending=null,this._rows=[],await this.updateComplete,this._searchElement?.focus(),await this._loadList())}async _loadList(){let e=this._actionsGeneration;this._loading=!0,this._listFailed=!1;try{let t=this._actions??await this._resolveActions();if(e!==this._actionsGeneration)return;this._actions=t}catch(t){if(!this.isConnected||e!==this._actionsGeneration)return;console.error(`Failed to resolve the add to dashboard actions:`,t),this._loading=!1,this._listFailed=!0;return}this.isConnected&&this._open&&await this._loadPage(!1)}_handleClosed(e){e&&e.target!==e.currentTarget||(this._open=!1,clearTimeout(this._searchTimer),this._listAbort?.abort(),this._variantsAbort?.abort())}async _loadPage(e){let t=this._actions;if(!t)return;this._listAbort?.abort();let n=new AbortController;this._listAbort=n,this._loading=!0,this._listFailed=!1,e||(this._rows=[]);try{let e=await t.list({search:this._search,offset:this._rows.length,limit:K},{signal:n.signal});if(n.signal.aborted)return;this._rows=[...this._rows,...e.rows],this._hasMore=e.total===void 0?e.rows.length===K:this._rows.length<e.total}catch(e){if(n.signal.aborted)return;console.error(`Failed to load dashboards:`,e),this._listFailed=!0}finally{n.signal.aborted||(this._loading=!1)}}_handleSearchInput(e){this._search=String(e.target?.value??``),clearTimeout(this._searchTimer),this._searchTimer=setTimeout(()=>void this._loadPage(!1),q)}_handleListScroll(e){let t=e.target;this._hasMore&&!this._loading&&t.scrollHeight-t.scrollTop-t.clientHeight<=Y&&this._loadPage(!0)}_menuValue(e){return e.stopPropagation(),e.target.value??``}_handleListChange(e){let t=this._menuValue(e);if(t===X){this._actions?.create&&this._save({kind:`create`});return}let n=this._rows.find(e=>e.id===t);n&&(n.requiresVariant?(this._original=n,this._step=`variants`,this._loadVariants()):this._selectTarget({kind:`add`,dashboard:n,isVariant:!1},n))}_handleVariantChange(e){let t=this._menuValue(e),n=this._original;if(!n)return;if(t===Z){if(!this._actions?.addToVariant)return;let e=this._variants.map(e=>this._displayName(e)),t=this._variantName(n,G(e,e=>this._variantName(n,e)));this._selectTarget({kind:`variant`,original:n,name:t},n);return}let r=this._variants.find(e=>e.id===t);r&&this._selectTarget({kind:`add`,dashboard:r,isVariant:!0},r)}_selectTarget(e,t){t.syncScreenModes!==!1||!t.screenModes?.length?this._save(e):(this._pending=e,this._screenModes=[...t.screenModes??[]],this._step=`screenModes`)}async _loadVariants(){let e=this._actions,t=this._original;if(this._variantsAbort?.abort(),this._variants=[],this._variantsLoading=!1,this._variantsFailed=!1,!e?.listVariants||!t)return;let n=new AbortController;this._variantsAbort=n,this._variantsLoading=!0;try{let r=await e.listVariants(t,{signal:n.signal});n.signal.aborted||(this._variants=r)}catch(e){n.signal.aborted||(console.error(`Failed to load dashboard variants:`,e),this._variantsFailed=!0)}finally{n.signal.aborted||(this._variantsLoading=!1)}}_handleBack(){this._step===`screenModes`&&this._original?this._step=`variants`:(this._step=`list`,this._original=null),this._pending=null}_toggleScreenMode(e){this._screenModes=this._screenModes.includes(e)?this._screenModes.filter(t=>t!==e):[...this._screenModes,e]}_handleConfirmScreenModes(){this._pending&&this._screenModes.length>0&&this._save(this._pending,{screenModes:[...this._screenModes]})}async _save(e,t={}){let n=this._actions;if(!n||!this.chart||this._saving)return;this._open=!1,this._saving=!0,this._setStatus(null),this._saveAbort=new AbortController;let r=W(this.chart),i={signal:this._saveAbort.signal};try{let a;if(e.kind===`create`&&n.create)a=await n.create(r,t,i);else if(e.kind===`variant`&&n.addToVariant)a=await n.addToVariant(e.original,r,{...t,name:e.name},i);else if(e.kind===`add`)a=await n.add(e.dashboard,r,t,i)||e.dashboard;else return;if(i.signal.aborted)return;this._setStatus({kind:`success`,dashboard:a,isVariant:e.kind===`variant`||e.kind===`add`&&e.isVariant,openDashboard:n.openDashboard?.bind(n)}),this._dispatch(`luzmo-chart-added`,{dashboard:a})}catch(e){if(i.signal.aborted)return;console.error(`Failed to add the chart to a dashboard:`,e),this._setStatus({kind:`error`,message:e instanceof Error&&e.message?e.message:void 0}),this._dispatch(`luzmo-chart-add-failed`,{error:e})}finally{this._saving=!1}await this.updateComplete,this.isConnected&&this._isFocusLost()&&this._focusTrigger()}_setStatus(e){this._status=e}_focusTrigger(){this._triggerElement?.focus()}_isFocusLost(){return!document.activeElement||document.activeElement===document.body}async _handleNoticeClose(e){e.stopPropagation();let t=e.currentTarget.matches(`:focus-within`);this._setStatus(null),await this.updateComplete,t&&this._isFocusLost()&&this._focusTrigger()}async _focusStep(){let e=this._step===`list`?this._searchElement:this._backElement;await e?.updateComplete,e?.focus()}_renderRow(e){return h`
|
|
23
23
|
<luzmo-menu-item value=${e.id} no-wrap ?disabled=${this._saving}>
|
|
24
|
-
${e.thumbnailUrl?
|
|
24
|
+
${e.thumbnailUrl?h`<img slot="icon" class="thumbnail" alt="" src=${e.thumbnailUrl} />`:_}
|
|
25
25
|
${this._displayName(e)}
|
|
26
|
-
${e.requiresVariant?
|
|
26
|
+
${e.requiresVariant?h`<luzmo-icon slot="value" class="drill-in" size="xs" block .icon=${this.isLTR?w:o}></luzmo-icon>`:_}
|
|
27
27
|
</luzmo-menu-item>
|
|
28
|
-
`}_renderCreateRow(e,t,n,r=!1){let i=`${this._triggerId}-${e}-reason`;return
|
|
28
|
+
`}_renderCreateRow(e,t,n,r=!1){let i=`${this._triggerId}-${e}-reason`;return h`
|
|
29
29
|
<luzmo-menu-item
|
|
30
30
|
class="create-row"
|
|
31
31
|
value=${e}
|
|
32
32
|
label=${t}
|
|
33
|
-
aria-describedby=${
|
|
33
|
+
aria-describedby=${g(n?i:void 0)}
|
|
34
34
|
no-wrap
|
|
35
35
|
?disabled=${this._saving||r||!!n}
|
|
36
36
|
>
|
|
37
|
-
<luzmo-icon slot="icon" size="s" .icon=${
|
|
38
|
-
${t} ${n?
|
|
37
|
+
<luzmo-icon slot="icon" size="s" .icon=${c}></luzmo-icon>
|
|
38
|
+
${t} ${n?h`<span slot="description" id=${i}>${n}</span>`:_}
|
|
39
39
|
</luzmo-menu-item>
|
|
40
|
-
`}_renderLoading(){let e=
|
|
40
|
+
`}_renderLoading(){let e=n(`Loading`,{desc:`Loading spinner label`});return h`<div class="loading"><luzmo-progress-circle size="s" indeterminate .label=${e}></luzmo-progress-circle></div>`}async _handleRetry(e){let t=e();await this.updateComplete,this._isFocusLost()&&await this._focusStep(),await t}_renderEmpty(e,t){return h`
|
|
41
41
|
<div class="empty">
|
|
42
42
|
<span>${e}</span>
|
|
43
|
-
${
|
|
43
|
+
${t?h`<luzmo-button size="s" treatment="outline" @click=${()=>this._handleRetry(t)}>${n(`Retry`,{desc:`Retry a failed request`})}</luzmo-button>`:_}
|
|
44
44
|
</div>
|
|
45
|
-
`}_renderHeader(e){return
|
|
45
|
+
`}_renderHeader(e){return h`
|
|
46
46
|
<div class="header">
|
|
47
|
-
<luzmo-action-button size="s" quiet label=${
|
|
48
|
-
<luzmo-icon slot="icon" size="xs" .icon=${this.isLTR?C
|
|
47
|
+
<luzmo-action-button size="s" quiet label=${n(`Back`,{desc:`Go back to the previous step`})} @click=${this._handleBack}>
|
|
48
|
+
<luzmo-icon slot="icon" size="xs" .icon=${this.isLTR?S:C}></luzmo-icon>
|
|
49
49
|
</luzmo-action-button>
|
|
50
50
|
<span class="header-title" tabindex="-1"
|
|
51
51
|
>${e}<luzmo-tooltip self-managed show-only-if-truncated placement="top" .size=${this.size}>${e}</luzmo-tooltip></span
|
|
52
52
|
>
|
|
53
53
|
</div>
|
|
54
|
-
`}_renderList(){let e=this._actions&&!this._actions.create?
|
|
54
|
+
`}_renderList(){let e=this._actions&&!this._actions.create?n(`These credentials cannot create dashboards`,{id:`add-to-dashboard-cannot-create`,desc:`Why a new dashboard cannot be created`}):void 0;return h`
|
|
55
55
|
<luzmo-search
|
|
56
56
|
size="s"
|
|
57
57
|
border="none"
|
|
58
|
-
label=${
|
|
59
|
-
placeholder=${
|
|
58
|
+
label=${n(`Search dashboards`,{desc:`Label of the dashboard search field`})}
|
|
59
|
+
placeholder=${n(`Search dashboards`,{desc:`Label of the dashboard search field`})}
|
|
60
60
|
.value=${this._search}
|
|
61
61
|
@input=${this._handleSearchInput}
|
|
62
62
|
@submit=${e=>e.preventDefault()}
|
|
@@ -64,31 +64,31 @@ import{a as e,i as t,n,r,t as i}from"./chunks/version-BW4Ixl63.js";import{t as a
|
|
|
64
64
|
<luzmo-divider size="s"></luzmo-divider>
|
|
65
65
|
<div class="list" @scroll=${this._handleListScroll}>
|
|
66
66
|
<luzmo-menu class="menu" size="s" @change=${this._handleListChange} @close=${e=>e.stopPropagation()}>
|
|
67
|
-
${this._renderCreateRow(X,
|
|
67
|
+
${this._renderCreateRow(X,n(`New dashboard`,{desc:`Create a new dashboard for the chart`}),e,!this._actions)}
|
|
68
68
|
${this._rows.map(e=>this._renderRow(e))}
|
|
69
69
|
</luzmo-menu>
|
|
70
70
|
<div class="list-state" role="status" aria-live="polite">
|
|
71
|
-
${this._listFailed?this._renderEmpty(
|
|
72
|
-
${this._loading?this._renderLoading():
|
|
71
|
+
${this._listFailed?this._renderEmpty(n(`Failed to load dashboards`,{desc:`Dashboard list failed to load`}),()=>this._loadList()):!this._loading&&this._rows.length===0?this._renderEmpty(n(`No dashboards found`,{desc:`Dashboard list is empty`})):_}
|
|
72
|
+
${this._loading?this._renderLoading():_}
|
|
73
73
|
</div>
|
|
74
74
|
</div>
|
|
75
|
-
`}_renderVariants(e){let
|
|
75
|
+
`}_renderVariants(e){let t=this._actions?.addToVariant?void 0:n(`These credentials cannot create variants`,{id:`add-to-dashboard-cannot-create-variant`,desc:`Why a new dashboard variant cannot be created`}),r=!this._variantsLoading&&!this._variantsFailed;return h`
|
|
76
76
|
${this._renderHeader(this._displayName(e))}
|
|
77
77
|
<luzmo-divider size="s"></luzmo-divider>
|
|
78
78
|
<div class="list">
|
|
79
79
|
<luzmo-menu class="menu" size="s" @change=${this._handleVariantChange} @close=${e=>e.stopPropagation()}>
|
|
80
|
-
${this._renderCreateRow(Z,
|
|
80
|
+
${this._renderCreateRow(Z,n(`New variant`,{desc:`Create a new variant of a dashboard`}),t,!r)}
|
|
81
81
|
${this._variants.map(e=>this._renderRow(e))}
|
|
82
82
|
</luzmo-menu>
|
|
83
83
|
<div class="list-state" role="status" aria-live="polite">
|
|
84
|
-
${this._variantsFailed?this._renderEmpty(
|
|
85
|
-
${this._variantsLoading?this._renderLoading():
|
|
84
|
+
${this._variantsFailed?this._renderEmpty(n(`Failed to load variants`,{desc:`Variant list failed to load`}),()=>this._loadVariants()):!this._variantsLoading&&this._variants.length===0?this._renderEmpty(n(`No variants yet`,{desc:`Variant list is empty`})):_}
|
|
85
|
+
${this._variantsLoading?this._renderLoading():_}
|
|
86
86
|
</div>
|
|
87
87
|
</div>
|
|
88
|
-
`}_renderScreenModes(e){let
|
|
88
|
+
`}_renderScreenModes(e){let t=e.kind===`variant`?e.original:e.dashboard,r=e.kind===`variant`?e.name:this._displayName(t),i=t.screenModes??[];return h`
|
|
89
89
|
${this._renderHeader(r)}
|
|
90
|
-
<luzmo-field-group class="screen-modes" vertical label=${
|
|
91
|
-
${this._screenModeChoices().filter(e=>i.includes(e.name)).map(e=>
|
|
90
|
+
<luzmo-field-group class="screen-modes" vertical label=${n(`Screen modes`,{desc:`Label of the group of screen-mode checkboxes`})}>
|
|
91
|
+
${this._screenModeChoices().filter(e=>i.includes(e.name)).map(e=>h`
|
|
92
92
|
<luzmo-checkbox
|
|
93
93
|
size="s"
|
|
94
94
|
?checked=${this._screenModes.includes(e.name)}
|
|
@@ -97,17 +97,17 @@ import{a as e,i as t,n,r,t as i}from"./chunks/version-BW4Ixl63.js";import{t as a
|
|
|
97
97
|
<span class="screen-mode">
|
|
98
98
|
<luzmo-icon size="xs" block .icon=${e.icon}></luzmo-icon>
|
|
99
99
|
${e.label}
|
|
100
|
-
${e.size?
|
|
100
|
+
${e.size?h`<span class="screen-mode-size" dir="ltr">${e.size}</span>`:_}
|
|
101
101
|
</span>
|
|
102
102
|
</luzmo-checkbox>
|
|
103
103
|
`)}
|
|
104
104
|
</luzmo-field-group>
|
|
105
105
|
<div class="footer">
|
|
106
106
|
<luzmo-button size="s" variant="primary" ?disabled=${this._screenModes.length===0||this._saving} @click=${this._handleConfirmScreenModes}>
|
|
107
|
-
${
|
|
107
|
+
${n(`Confirm`,{desc:`Confirm the selected screen modes`})}
|
|
108
108
|
</luzmo-button>
|
|
109
109
|
</div>
|
|
110
|
-
`}_renderPicker(){return this._step===`screenModes`&&this._pending?this._renderScreenModes(this._pending):this._step===`variants`&&this._original?this._renderVariants(this._original):this._renderList()}_noticeLabels(){return{close:
|
|
110
|
+
`}_renderPicker(){return this._step===`screenModes`&&this._pending?this._renderScreenModes(this._pending):this._step===`variants`&&this._original?this._renderVariants(this._original):this._renderList()}_noticeLabels(){return{close:n(`Close`,{id:`add-to-dashboard-close`,desc:`Close the save result notice`})}}_renderStatus(){let e=this._status;if(!e)return _;if(e.kind===`error`)return h`
|
|
111
111
|
<luzmo-notice
|
|
112
112
|
class="alert"
|
|
113
113
|
size="s"
|
|
@@ -116,10 +116,10 @@ import{a as e,i as t,n,r,t as i}from"./chunks/version-BW4Ixl63.js";import{t as a
|
|
|
116
116
|
.labels=${this._noticeLabels()}
|
|
117
117
|
@luzmo-notice-close=${this._handleNoticeClose}
|
|
118
118
|
>
|
|
119
|
-
<luzmo-icon slot="icon" .icon=${
|
|
120
|
-
<span class="alert-text" dir="auto">${e.message??
|
|
119
|
+
<luzmo-icon slot="icon" .icon=${T}></luzmo-icon>
|
|
120
|
+
<span class="alert-text" dir="auto">${e.message??n(`Failed to copy item`,{desc:`Saving the chart to a dashboard failed`})}</span>
|
|
121
121
|
</luzmo-notice>
|
|
122
|
-
`;let
|
|
122
|
+
`;let t=this._displayName(e.dashboard),r=h`<strong class="alert-name" tabindex="-1">${t}<luzmo-tooltip self-managed show-only-if-truncated placement="top" .size=${this.size}>${t}</luzmo-tooltip></strong>`,i=e.openDashboard;return h`
|
|
123
123
|
<luzmo-notice
|
|
124
124
|
class="alert"
|
|
125
125
|
size="s"
|
|
@@ -130,16 +130,16 @@ import{a as e,i as t,n,r,t as i}from"./chunks/version-BW4Ixl63.js";import{t as a
|
|
|
130
130
|
>
|
|
131
131
|
<luzmo-icon slot="icon" .icon=${re}></luzmo-icon>
|
|
132
132
|
<div class="alert-body">
|
|
133
|
-
<span class="alert-text" dir="auto">${
|
|
134
|
-
${i&&!e.isVariant?
|
|
133
|
+
<span class="alert-text" dir="auto">${n(h`Item copied to ${r}`,{desc:`The chart was saved to a dashboard`})}</span>
|
|
134
|
+
${i&&!e.isVariant?h`
|
|
135
135
|
<luzmo-action-button class="alert-open" size="s" quiet @click=${()=>i(e.dashboard)}>
|
|
136
136
|
<luzmo-icon slot="icon" size="xs" .icon=${ne}></luzmo-icon>
|
|
137
|
-
${
|
|
137
|
+
${n(`Open`,{id:`add-to-dashboard-open`,desc:`Open the dashboard the chart was saved to`})}
|
|
138
138
|
</luzmo-action-button>
|
|
139
|
-
`:
|
|
139
|
+
`:_}
|
|
140
140
|
</div>
|
|
141
141
|
</luzmo-notice>
|
|
142
|
-
`}render(){if(!this.chart||!this._hasSource)return
|
|
142
|
+
`}render(){if(!this.chart||!this._hasSource)return _;let e=this._saving?n(`Adding to dashboard`,{desc:`The chart is being saved to a dashboard`}):n(`Add to dashboard`,{desc:`Button that opens the add to dashboard picker`});return h`
|
|
143
143
|
<luzmo-action-button
|
|
144
144
|
id=${this._triggerId}
|
|
145
145
|
class="trigger"
|
|
@@ -148,9 +148,9 @@ import{a as e,i as t,n,r,t as i}from"./chunks/version-BW4Ixl63.js";import{t as a
|
|
|
148
148
|
aria-expanded=${this._open?`true`:`false`}
|
|
149
149
|
?disabled=${this.disabled||this._saving}
|
|
150
150
|
>
|
|
151
|
-
${this._saving?
|
|
151
|
+
${this._saving?h`<luzmo-progress-circle class="trigger-spinner" slot="icon" indeterminate .label=${e}></luzmo-progress-circle>`:h`<luzmo-icon slot="icon" size="xs" .icon=${c}></luzmo-icon>`}
|
|
152
152
|
${e}
|
|
153
|
-
<luzmo-icon class="trigger-chevron" size="xs" .icon=${
|
|
153
|
+
<luzmo-icon class="trigger-chevron" size="xs" .icon=${a}></luzmo-icon>
|
|
154
154
|
</luzmo-action-button>
|
|
155
155
|
<luzmo-overlay
|
|
156
156
|
type="auto"
|
|
@@ -161,8 +161,8 @@ import{a as e,i as t,n,r,t as i}from"./chunks/version-BW4Ixl63.js";import{t as a
|
|
|
161
161
|
@luzmo-closed=${this._handleClosed}
|
|
162
162
|
>
|
|
163
163
|
<luzmo-popover>
|
|
164
|
-
<div class="picker">${this._open?this._renderPicker():
|
|
164
|
+
<div class="picker">${this._open?this._renderPicker():_}</div>
|
|
165
165
|
</luzmo-popover>
|
|
166
166
|
</luzmo-overlay>
|
|
167
167
|
<div class="status">${this._renderStatus()}</div>
|
|
168
|
-
`}};
|
|
168
|
+
`}};t([v({attribute:!1})],$.prototype,`chart`,void 0),t([v({attribute:!1})],$.prototype,`dashboardActions`,void 0),t([v({type:String,attribute:`auth-key`})],$.prototype,`authKey`,void 0),t([v({type:String,attribute:`auth-token`})],$.prototype,`authToken`,void 0),t([v({type:String,attribute:`api-url`})],$.prototype,`apiUrl`,void 0),t([v({type:String,reflect:!0})],$.prototype,`placement`,void 0),t([v({type:Boolean,reflect:!0})],$.prototype,`disabled`,void 0),t([b()],$.prototype,`_open`,void 0),t([b()],$.prototype,`_actions`,void 0),t([b()],$.prototype,`_step`,void 0),t([b()],$.prototype,`_rows`,void 0),t([b()],$.prototype,`_hasMore`,void 0),t([b()],$.prototype,`_loading`,void 0),t([b()],$.prototype,`_listFailed`,void 0),t([b()],$.prototype,`_original`,void 0),t([b()],$.prototype,`_variants`,void 0),t([b()],$.prototype,`_variantsLoading`,void 0),t([b()],$.prototype,`_variantsFailed`,void 0),t([b()],$.prototype,`_pending`,void 0),t([b()],$.prototype,`_screenModes`,void 0),t([b()],$.prototype,`_saving`,void 0),t([b()],$.prototype,`_status`,void 0),t([y(`.trigger`)],$.prototype,`_triggerElement`,void 0),t([y(`luzmo-search`)],$.prototype,`_searchElement`,void 0),t([y(`.header luzmo-action-button`)],$.prototype,`_backElement`,void 0),t([y(`luzmo-notice`)],$.prototype,`_noticeElement`,void 0),$=t([i()],$),typeof customElements<`u`&&!customElements.get(`luzmo-add-to-dashboard`)&&customElements.define(`luzmo-add-to-dashboard`,$);export{$ as LuzmoAddToDashboard,U as createDashboardActions};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
import{
|
|
2
|
+
import{n as e}from"./localized-mixin-BWJj88bd.js";import{LitElement as t,property as n}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";var r=/* @__PURE__ */ new Set;new MutationObserver(()=>{let e=document.documentElement.dir===`rtl`?document.documentElement.dir:`ltr`;r.forEach(t=>{t.setAttribute(`dir`,e)})}).observe(document.documentElement,{attributes:!0,attributeFilter:[`dir`]});var i=e=>e.startManagingContentDirection!==void 0||e.tagName===`LUZMO-THEME`,a=(e=document)=>{let t=e.activeElement;for(;t?.shadowRoot&&t.shadowRoot.activeElement;)t=t.shadowRoot.activeElement;let n=t?[t]:[];for(;t;){let e=t.assignedSlot||t.parentElement||t.getRootNode()?.host;e&&n.push(e),t=e}return n};function o(e){class t extends e{get isLTR(){return this.dir===`ltr`}hasVisibleFocusInTree(){let e=a(this.getRootNode())[0];if(!e)return!1;try{return e.matches(`:focus-visible`)||e.matches(`.focus-visible`)}catch{return e.matches(`.focus-visible`)}}connectedCallback(){if(super.connectedCallback(),!this.hasAttribute(`dir`)){let e=this.assignedSlot||this.parentNode;for(;e!==document.documentElement&&!i(e);)e=e.assignedSlot||e.parentNode||e.host;if(this.dir=e.dir===`rtl`?e.dir:this.dir||`ltr`,e===document.documentElement)r.add(this);else{let{localName:t}=e;t.search(`-`)>-1&&!customElements.get(t)?
|
|
3
3
|
/* c8 ignore next 8 */
|
|
4
|
-
customElements.whenDefined(t).then(()=>{typeof e.startManagingContentDirection==`function`&&e.startManagingContentDirection(this)}):typeof e.startManagingContentDirection==`function`&&e.startManagingContentDirection(this)}this._dirParent=e}super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._dirParent&&(this._dirParent===document.documentElement?r.delete(this):typeof this._dirParent.stopManagingContentDirection==`function`&&this._dirParent.stopManagingContentDirection(this),this.removeAttribute(`dir`))}}return t}var s=class extends o(t){},c=!0;try{document.body.querySelector(`:focus-visible`)}catch{c=!1}var l=e=>{if(e.shadowRoot==null||Object.hasOwn(e.dataset,`jsFocusVisible`))return()=>{};if(self.applyFocusVisiblePolyfill)self.applyFocusVisiblePolyfill(e.shadowRoot),e.manageAutoFocus&&e.manageAutoFocus();else{let t=()=>{self.applyFocusVisiblePolyfill&&e.shadowRoot&&self.applyFocusVisiblePolyfill(e.shadowRoot),e.manageAutoFocus&&e.manageAutoFocus()};return self.addEventListener(`focus-visible-polyfill-ready`,t,{once:!0}),()=>{self.removeEventListener(`focus-visible-polyfill-ready`,t)}}return()=>{}},u=e=>{let t=Symbol(`endPolyfillCoordination`);class n extends e{constructor(...e){super(...e),this[t]=null}connectedCallback(){super.connectedCallback&&super.connectedCallback(),c||requestAnimationFrame(()=>{this[t]??(this[t]=l(this))})}disconnectedCallback(){super.disconnectedCallback&&super.disconnectedCallback(),c||requestAnimationFrame(()=>{this[t]!=null&&(this[t](),this[t]=null)})}}return n};function d(){return new Promise(e=>requestAnimationFrame(()=>e()))}var f=class extends u(s){constructor(...e){super(...e),this.disabled=!1,this.autofocus=!1,this._tabIndex=0,this.manipulatingTabindex=!1,this.autofocusReady=Promise.resolve()}get tabIndex(){if(this.focusElement===this){let e=this.hasAttribute(`tabindex`)?Number(this.getAttribute(`tabindex`)):NaN;return Number.isNaN(e)?-1:e}let e=Number.parseFloat(this.hasAttribute(`tabindex`)&&this.getAttribute(`tabindex`)||`0`);return this.disabled||e<0?-1:this.focusElement?this._tabIndex:e}set tabIndex(e){if(this.manipulatingTabindex)this.manipulatingTabindex=!1;else if(this.focusElement===this){if(this.disabled)this._tabIndex=e;else if(e!==this._tabIndex){this._tabIndex=e;let t=``+e;this.manipulatingTabindex=!0,this.setAttribute(`tabindex`,t)}}else if(e===-1?this.addEventListener(`pointerdown`,this.onPointerdownManagementOfTabIndex):(this.manipulatingTabindex=!0,this.removeEventListener(`pointerdown`,this.onPointerdownManagementOfTabIndex)),e===-1||this.disabled){if(this.manipulatingTabindex=!0,this.setAttribute(`tabindex`,`-1`),this.removeAttribute(`focusable`),this.selfManageFocusElement)return;e===-1?this.focusElement?.removeAttribute(`tabindex`):(this._tabIndex=e,this.manageFocusElementTabindex(e))}else this.setAttribute(`focusable`,``),this.hasAttribute(`tabindex`)?this.removeAttribute(`tabindex`):this.manipulatingTabindex=!1,this._tabIndex=e,this.manageFocusElementTabindex(e)}onPointerdownManagementOfTabIndex(){this.tabIndex===-1&&setTimeout(()=>{this.tabIndex=0,this.focus({preventScroll:!0}),this.tabIndex=-1})}async manageFocusElementTabindex(e){this.focusElement||await this.updateComplete,e===null?this.focusElement.removeAttribute(`tabindex`):this.focusElement!==this&&(this.focusElement.tabIndex=e)}get focusElement(){throw Error(`Must implement focusElement getter!`)}get selfManageFocusElement(){return!1}focus(e){!this.disabled&&this.focusElement&&(this.focusElement===this?Reflect.apply(HTMLElement.prototype.focus,this,[e]):this.focusElement.focus(e))}blur(){let e=this.focusElement||this;e===this?HTMLElement.prototype.blur.apply(this):e.blur()}click(){if(this.disabled)return;let e=this.focusElement||this;e===this?HTMLElement.prototype.click.apply(this):e.click()}manageAutoFocus(){this.autofocus&&(this.dispatchEvent(new KeyboardEvent(`keydown`,{code:`Tab`})),this.focusElement.focus())}firstUpdated(e){super.firstUpdated(e),this.hasAttribute(`tabindex`)&&this.getAttribute(`tabindex`)===`-1`||this.setAttribute(`focusable`,``)}update(e){e.has(`disabled`)&&this.handleDisabledChanged(this.disabled,e.get(`disabled`)),super.update(e)}updated(e){super.updated(e),e.has(`disabled`)&&this.disabled&&this.blur()}async handleDisabledChanged(e,t){let n=()=>this.focusElement!==this&&this.focusElement.disabled!==void 0;e?(this.manipulatingTabindex=!0,this.setAttribute(`tabindex`,`-1`),await this.updateComplete,n()?this.focusElement.disabled=!0:this.setAttribute(`aria-disabled`,`true`)):t&&(this.manipulatingTabindex=!0,this.focusElement===this?this.setAttribute(`tabindex`,``+this._tabIndex):this.removeAttribute(`tabindex`),await this.updateComplete,n()?this.focusElement.disabled=!1:this.removeAttribute(`aria-disabled`))}async getUpdateComplete(){let e=await super.getUpdateComplete();return await this.autofocusReady,e}connectedCallback(){super.connectedCallback(),this.autofocus&&(this.autofocusReady=(async()=>{await d(),await d()})(),this.updateComplete.then(()=>this.manageAutoFocus()))}};e([n({type:Boolean,reflect:!0})],f.prototype,`disabled`,void 0),e([n({type:Boolean})],f.prototype,`autofocus`,void 0),e([n({type:Number})],f.prototype,`tabIndex`,null);var p={xxs:`xxs`,xs:`xs`,s:`s`,m:`m`,l:`l`,xl:`xl`,xxl:`xxl`};function m(t,{validSizes:r=[`s`,`m`,`l`,`xl`],noDefaultSize:i,defaultSize:a=`m`}={}){class o extends t{constructor(...e){super(...e),this._size=a}get size(){return this._size||a}set size(e){let t=i?null:a,n=e&&e.toLocaleLowerCase(),o=r.includes(n)?n:t;if(o&&this.setAttribute(`size`,o),this._size===o)return;let s=this._size;this._size=o,this.requestUpdate(`size`,s)}update(e){!this.hasAttribute(`size`)&&!i&&this.setAttribute(`size`,this.size),super.update(e)}}return e([n({type:String})],o.prototype,`size`,null),o}var h=/* @__PURE__ */ function(e){return e.Top=`top`,e.Bottom=`bottom`,e}({}),g=/* @__PURE__ */ function(e){return e.Asc=`asc`,e.Desc=`desc`,e}({}),_=/* @__PURE__ */ function(e){return e.Measure=`measure`,e.Category=`category`,e}({}),v=5,y=Array.isArray;function b(e){return typeof e==`string`}function x(e){let t={...e};return!t.datasetId&&t.set&&(t.datasetId=t.set),!t.set&&t.datasetId&&(t.set=t.datasetId),!t.columnId&&t.column&&(t.columnId=t.column),!t.column&&t.columnId&&(t.column=t.columnId),!t.formulaId&&t.formula&&(t.formulaId=t.formula),!t.formula&&t.formulaId&&(t.formula=t.formulaId),t}function S(e){return y(e)?e:Object.entries(e).map(([e,t])=>({name:e,content:y(t)?t:[]}))}function C(e){let t=/* @__PURE__ */ new Set;for(let n of e)for(let e of n.content){let n=e.datasetId??e.set;b(n)&&t.add(n)}return[...t]}function w(e){let t=S(e.slots??[]),n=e.options??{},r=n.interactivity;return{type:e.type,options:{...n,interactivity:{...r,scheduledExport:!1}},slots:t.map(e=>({...e,content:y(e.content)?e.content.map(e=>x(e)):[]})),filters:e.filters}}function T(e,t){return{...e,options:{...e.options,theme:{...e.options.theme,...t}}}}function E(e){let t=e.find(e=>e.name===`measure`||e.name===`measures`);if(t&&t.content.length>1)return!0;let n=e.find(e=>e.name===`legend`);return n?n.content.length>0:!1}function D(e){let t=[],n=e.options;switch(e.type){case`area-chart`:case`bar-chart`:case`column-chart`:if(t.push({type:`rankingPicker`,mutationType:`rankAndSort`,ranking:n.ranking??{active:!1,number:5,direction:h.Top},sort:n.sort??{direction:g.Desc,by:_.Measure},importance:100}),E(e.slots)){let r=e.type===`area-chart`,i=r?[{key:`stacked`,label:`Stacked`},{key:`unstacked`,label:`Unstacked`},{key:`100`,label:`100%`},{key:`stream`,label:`Stream`}]:[{key:`grouped`,label:`Grouped`},{key:`stacked`,label:`Stacked`},{key:`100`,label:`100%`}],a=r?`stacked`:`grouped`;t.push({type:`optionDropdown`,mutationType:`mode`,values:i,currentValue:n.mode??a,importance:90})}break;case`donut-chart`:{let e=n.display??{};t.push({type:`optionDropdown`,mutationType:`donutLabelDisplay`,values:[{key:`withLegend`,label:`With legend`},{key:`withLabels`,label:`With labels`}],currentValue:e.categoryLabels===!0?`withLabels`:`withLegend`,importance:90});break}case`bubble-chart`:{let e=n.display??{};t.push({type:`optionDropdown`,mutationType:`bubbleValues`,values:[{key:`none`,label:`No values`},{key:`absolute`,label:`Absolute`},{key:`percentage`,label:`Percentage`}],currentValue:e.bubbleValues??e.values??`none`,importance:100});break}}return t.sort((e,t)=>t.importance-e.importance)}function O(e,t,n){let r=e.options;switch(t){case`mode`:return{...e,options:{...r,mode:n}};case`donutLabelDisplay`:{let t={...r.display??{}};return n===`withLabels`?(t.legend=!1,t.categoryLabels=!0):(t.legend=!0,t.categoryLabels=!1),{...e,options:{...r,display:t}}}case`bubbleValues`:{let t={...r.display??{}};return t.bubbleLabels=t.bubbleLabels!==!1,t.bubbleValues=n,{...e,options:{...r,display:t}}}default:return e}}function k(e,t){switch(t.type){case`slots`:return{...e,slots:t.slotsContents};case`options`:return{...e,options:t.options};case`filters`:return{...e,filters:t.filters};case`chartAction`:return O(e,t.actionType,t.key);case`rankAndSort`:return{...e,options:{...e.options,ranking:t.ranking,sort:t.sort}};case`fullReplace`:return t.chart;default:return e}}export{T as a,h as c,p as d,m as f,C as i,_ as l,D as n,w as o,s as p,S as r,v as s,k as t,g as u};
|
|
4
|
+
customElements.whenDefined(t).then(()=>{typeof e.startManagingContentDirection==`function`&&e.startManagingContentDirection(this)}):typeof e.startManagingContentDirection==`function`&&e.startManagingContentDirection(this)}this._dirParent=e}super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this._dirParent&&(this._dirParent===document.documentElement?r.delete(this):typeof this._dirParent.stopManagingContentDirection==`function`&&this._dirParent.stopManagingContentDirection(this),this.removeAttribute(`dir`))}}return t}var s=class extends o(t){},c=!0;try{document.body.querySelector(`:focus-visible`)}catch{c=!1}var l=e=>{if(e.shadowRoot==null||Object.hasOwn(e.dataset,`jsFocusVisible`))return()=>{};if(self.applyFocusVisiblePolyfill)self.applyFocusVisiblePolyfill(e.shadowRoot),e.manageAutoFocus&&e.manageAutoFocus();else{let t=()=>{self.applyFocusVisiblePolyfill&&e.shadowRoot&&self.applyFocusVisiblePolyfill(e.shadowRoot),e.manageAutoFocus&&e.manageAutoFocus()};return self.addEventListener(`focus-visible-polyfill-ready`,t,{once:!0}),()=>{self.removeEventListener(`focus-visible-polyfill-ready`,t)}}return()=>{}},u=e=>{let t=Symbol(`endPolyfillCoordination`);class n extends e{constructor(...e){super(...e),this[t]=null}connectedCallback(){super.connectedCallback&&super.connectedCallback(),c||requestAnimationFrame(()=>{this[t]??(this[t]=l(this))})}disconnectedCallback(){super.disconnectedCallback&&super.disconnectedCallback(),c||requestAnimationFrame(()=>{this[t]!=null&&(this[t](),this[t]=null)})}}return n};function d(){return new Promise(e=>requestAnimationFrame(()=>e()))}var f=class extends u(s){constructor(...e){super(...e),this.disabled=!1,this.autofocus=!1,this._tabIndex=0,this.manipulatingTabindex=!1,this.autofocusReady=Promise.resolve()}get tabIndex(){if(this.focusElement===this){let e=this.hasAttribute(`tabindex`)?Number(this.getAttribute(`tabindex`)):NaN;return Number.isNaN(e)?-1:e}let e=Number.parseFloat(this.hasAttribute(`tabindex`)&&this.getAttribute(`tabindex`)||`0`);return this.disabled||e<0?-1:this.focusElement?this._tabIndex:e}set tabIndex(e){if(this.manipulatingTabindex)this.manipulatingTabindex=!1;else if(this.focusElement===this){if(this.disabled)this._tabIndex=e;else if(e!==this._tabIndex){this._tabIndex=e;let t=``+e;this.manipulatingTabindex=!0,this.setAttribute(`tabindex`,t)}}else if(e===-1?this.addEventListener(`pointerdown`,this.onPointerdownManagementOfTabIndex):(this.manipulatingTabindex=!0,this.removeEventListener(`pointerdown`,this.onPointerdownManagementOfTabIndex)),e===-1||this.disabled){if(this.manipulatingTabindex=!0,this.setAttribute(`tabindex`,`-1`),this.removeAttribute(`focusable`),this.selfManageFocusElement)return;e===-1?this.focusElement?.removeAttribute(`tabindex`):(this._tabIndex=e,this.manageFocusElementTabindex(e))}else this.setAttribute(`focusable`,``),this.hasAttribute(`tabindex`)?this.removeAttribute(`tabindex`):this.manipulatingTabindex=!1,this._tabIndex=e,this.manageFocusElementTabindex(e)}onPointerdownManagementOfTabIndex(){this.tabIndex===-1&&setTimeout(()=>{this.tabIndex=0,this.focus({preventScroll:!0}),this.tabIndex=-1})}async manageFocusElementTabindex(e){this.focusElement||await this.updateComplete,e===null?this.focusElement.removeAttribute(`tabindex`):this.focusElement!==this&&(this.focusElement.tabIndex=e)}get focusElement(){throw Error(`Must implement focusElement getter!`)}get selfManageFocusElement(){return!1}focus(e){!this.disabled&&this.focusElement&&(this.focusElement===this?Reflect.apply(HTMLElement.prototype.focus,this,[e]):this.focusElement.focus(e))}blur(){let e=this.focusElement||this;e===this?HTMLElement.prototype.blur.apply(this):e.blur()}click(){if(this.disabled)return;let e=this.focusElement||this;e===this?HTMLElement.prototype.click.apply(this):e.click()}manageAutoFocus(){this.autofocus&&(this.dispatchEvent(new KeyboardEvent(`keydown`,{code:`Tab`})),this.focusElement.focus())}firstUpdated(e){super.firstUpdated(e),this.hasAttribute(`tabindex`)&&this.getAttribute(`tabindex`)===`-1`||this.setAttribute(`focusable`,``)}update(e){e.has(`disabled`)&&this.handleDisabledChanged(this.disabled,e.get(`disabled`)),super.update(e)}updated(e){super.updated(e),e.has(`disabled`)&&this.disabled&&this.blur()}async handleDisabledChanged(e,t){let n=()=>this.focusElement!==this&&this.focusElement.disabled!==void 0;e?(this.manipulatingTabindex=!0,this.setAttribute(`tabindex`,`-1`),await this.updateComplete,n()?this.focusElement.disabled=!0:this.setAttribute(`aria-disabled`,`true`)):t&&(this.manipulatingTabindex=!0,this.focusElement===this?this.setAttribute(`tabindex`,``+this._tabIndex):this.removeAttribute(`tabindex`),await this.updateComplete,n()?this.focusElement.disabled=!1:this.removeAttribute(`aria-disabled`))}async getUpdateComplete(){let e=await super.getUpdateComplete();return await this.autofocusReady,e}connectedCallback(){super.connectedCallback(),this.autofocus&&(this.autofocusReady=(async()=>{await d(),await d()})(),this.updateComplete.then(()=>this.manageAutoFocus()))}};e([n({type:Boolean,reflect:!0})],f.prototype,`disabled`,void 0),e([n({type:Boolean})],f.prototype,`autofocus`,void 0),e([n({type:Number})],f.prototype,`tabIndex`,null);var p={xxs:`xxs`,xs:`xs`,s:`s`,m:`m`,l:`l`,xl:`xl`,xxl:`xxl`};function m(t,{validSizes:r=[`s`,`m`,`l`,`xl`],noDefaultSize:i,defaultSize:a=`m`}={}){class o extends t{constructor(...e){super(...e),this._size=a}get size(){return this._size||a}set size(e){let t=i?null:a,n=e&&e.toLocaleLowerCase(),o=r.includes(n)?n:t;if(o&&this.setAttribute(`size`,o),this._size===o)return;let s=this._size;this._size=o,this.requestUpdate(`size`,s)}update(e){!this.hasAttribute(`size`)&&!i&&this.setAttribute(`size`,this.size),super.update(e)}}return e([n({type:String})],o.prototype,`size`,null),o}var h=/* @__PURE__ */ function(e){return e.Top=`top`,e.Bottom=`bottom`,e}({}),g=/* @__PURE__ */ function(e){return e.Asc=`asc`,e.Desc=`desc`,e}({}),_=/* @__PURE__ */ function(e){return e.Measure=`measure`,e.Category=`category`,e}({}),v=5,y=Array.isArray;function b(e){return typeof e==`string`}function x(e){let t={...e};return!t.datasetId&&t.set&&(t.datasetId=t.set),!t.set&&t.datasetId&&(t.set=t.datasetId),!t.columnId&&t.column&&(t.columnId=t.column),!t.column&&t.columnId&&(t.column=t.columnId),!t.formulaId&&t.formula&&(t.formulaId=t.formula),!t.formula&&t.formulaId&&(t.formula=t.formulaId),t}function S(e){return y(e)?e:Object.entries(e).map(([e,t])=>({name:e,content:y(t)?t:[]}))}function C(e){let t=/* @__PURE__ */ new Set;for(let n of e)for(let e of n.content){let n=e.datasetId??e.set;b(n)&&t.add(n)}return[...t]}function w(e){let t=S(e.slots??[]),n=e.options??{},r=n.interactivity;return{type:e.type,options:{...n,interactivity:{...r,scheduledExport:!1}},slots:t.map(e=>({...e,content:y(e.content)?e.content.map(e=>x(e)):[]})),filters:e.filters,inlineData:e.inlineData}}function T(e,t){return{...e,options:{...e.options,theme:{...e.options.theme,...t}}}}function E(e){let t=e.find(e=>e.name===`measure`||e.name===`measures`);if(t&&t.content.length>1)return!0;let n=e.find(e=>e.name===`legend`);return n?n.content.length>0:!1}function D(e){let t=[],n=e.options;switch(e.type){case`area-chart`:case`bar-chart`:case`column-chart`:if(e.inlineData||t.push({type:`rankingPicker`,mutationType:`rankAndSort`,ranking:n.ranking??{active:!1,number:5,direction:h.Top},sort:n.sort??{direction:g.Desc,by:_.Measure},importance:100}),E(e.slots)){let r=e.type===`area-chart`,i=r?[{key:`stacked`,label:`Stacked`},{key:`unstacked`,label:`Unstacked`},{key:`100`,label:`100%`},{key:`stream`,label:`Stream`}]:[{key:`grouped`,label:`Grouped`},{key:`stacked`,label:`Stacked`},{key:`100`,label:`100%`}],a=r?`stacked`:`grouped`;t.push({type:`optionDropdown`,mutationType:`mode`,values:i,currentValue:n.mode??a,importance:90})}break;case`donut-chart`:{let e=n.display??{};t.push({type:`optionDropdown`,mutationType:`donutLabelDisplay`,values:[{key:`withLegend`,label:`With legend`},{key:`withLabels`,label:`With labels`}],currentValue:e.categoryLabels===!0?`withLabels`:`withLegend`,importance:90});break}case`bubble-chart`:{let e=n.display??{};t.push({type:`optionDropdown`,mutationType:`bubbleValues`,values:[{key:`none`,label:`No values`},{key:`absolute`,label:`Absolute`},{key:`percentage`,label:`Percentage`}],currentValue:e.bubbleValues??e.values??`none`,importance:100});break}}return t.sort((e,t)=>t.importance-e.importance)}function O(e,t,n){let r=e.options;switch(t){case`mode`:return{...e,options:{...r,mode:n}};case`donutLabelDisplay`:{let t={...r.display??{}};return n===`withLabels`?(t.legend=!1,t.categoryLabels=!0):(t.legend=!0,t.categoryLabels=!1),{...e,options:{...r,display:t}}}case`bubbleValues`:{let t={...r.display??{}};return t.bubbleLabels=t.bubbleLabels!==!1,t.bubbleValues=n,{...e,options:{...r,display:t}}}default:return e}}function k(e,t){switch(t.type){case`slots`:return{...e,slots:t.slotsContents};case`options`:return{...e,options:t.options};case`filters`:return{...e,filters:t.filters};case`chartAction`:return O(e,t.actionType,t.key);case`rankAndSort`:return{...e,options:{...e.options,ranking:t.ranking,sort:t.sort}};case`fullReplace`:return t.chart;default:return e}}export{T as a,h as c,p as d,m as f,C as i,_ as l,D as n,w as o,s as p,S as r,v as s,k as t,g as u};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{t as e}from"./info-tooltip-options.config-DtfU5ZO8.js";import{t}from"./interactivity-options.config-09eXx6k6.js";import{n,t as r}from"./color-palettes-B41FvzWH.js";import{t as i}from"./map-tile-providers-DZT1QZX_.js";import{n as a,r as o,t as s}from"./color-range-utils-
|
|
2
|
+
import{t as e}from"./info-tooltip-options.config-DtfU5ZO8.js";import{t}from"./interactivity-options.config-09eXx6k6.js";import{n,t as r}from"./color-palettes-B41FvzWH.js";import{t as i}from"./map-tile-providers-DZT1QZX_.js";import{n as a,r as o,t as s}from"./color-range-utils-BVyHBRiq.js";var c=(e,t)=>{let n=`colors${t}`;return r()[e]?.[n]},l=[{key:`general`,type:`group`,open:!0,children:[{key:`display.title`,control:{type:`switch`,label:`Title`,default:!0}},{key:`display.legend`,control:{type:`switch`,label:`Legend`,default:!0}}]},{key:`map`,type:`group`,open:!0,children:[{key:`enabled.zoom`,control:{type:`switch`,label:`Zoom`,default:!0}},{key:`enabled.pan`,control:{type:`switch`,label:`Pan`,default:!0}},{key:`enabled.pitchBearing`,control:{type:`switch`,label:`Pitch & Rotate`,tooltip:`Use ctrl + drag`,default:!1}},{type:`divider`},{key:`vectorTileProvider`,control:{type:`picker`,label:`Map style`,default:`Basic`,enum:[`No Tiles`,`Basic`,`Bright`,`Dark`,`Fiord`,`Liberty`,`Pastel`,`Positron`,`Streets`,`Toner`,`Topographique`,`Voyager`,`3D buildings`],parseValue:e=>e?.name||`Basic`,toValue:e=>i[e]??{}}}]},{key:`colors`,type:`group`,open:!0,children:[{key:`opacity`,control:{type:`slider`,label:`Opacity`,default:.85,min:.2,max:1,step:.01}},{key:`colorsClassType`,control:{type:`picker`,label:`Colors type`,default:`sequential`,enum:[`sequential`,`divergent`,`manual`],calculateValue:({options:e})=>e?.colorsClass===`manual`?`manual`:r()?.[e?.colorsClass]?.type??`sequential`,toOptions:({options:e,value:t})=>{let i=e?.colorsClass??`PuBu`,c=e?.numberClasses??5,l=a(e?.manualValues?.ranges),u=i===`manual`?`manual`:i,d;t===`manual`?d=`manual`:t!==r()?.[e?.colorsClass]?.type&&(d=n(t??`sequential`)[0]);let f={...e,colorsClass:d};if(t===`manual`||e?.classification===`manual`){let e=s(c,t===`manual`?u:d,l);f.manualValues={...f.manualValues,ranges:o(e)}}else delete f?.manualValues?.ranges;return f}}},{key:`colorsClass`,control:{type:`color-palette-picker`,label:`Color palette`,hideLabel:!0,default:({options:e})=>{let t=r()?.[e?.colorsClass]?.type;return n(t??`sequential`)[0]},enum:({options:e})=>{let t=r()?.[e?.colorsClass]?.type;return n(t??`sequential`)},toOptions:({options:e,value:t})=>{let n={...e,colorsClass:t};if(e?.classification===`manual`){let r=c(t,e?.numberClasses??5);n.manualValues={...n.manualValues,ranges:e?.manualValues?.ranges?.map(e=>({...e,color:typeof e.val==`number`?r?.[e.val]:void 0}))}}return n}},visibleIf:({options:e})=>e?.colorsClass!==`manual`},{key:`manualValues.ranges`,control:{type:`color-range`,editRangeSize:!1,debounce:500,noValues:!0,noAlphaChannel:!0,label:`Manual range colors`,hideLabel:!0},calculateValue:({options:e})=>s(e?.numberClasses,e?.colorsClass,a(e?.manualValues?.ranges)),toOptions:({options:e,value:t})=>({...e,manualValues:{...e.manualValues,ranges:o(t)}}),visibleIf:({options:e})=>e?.colorsClass===`manual`}]},{key:`classification`,type:`group`,open:!0,children:[{key:`numberClasses`,control:{type:`picker`,label:`Number of classes`,default:`5`,enum:[`3`,`4`,`5`,`6`,`7`,`8`,`9`],parseValue:e=>e?.toString()??`5`,toOptions:({options:e,value:t})=>{let n=Number.parseInt(t,10)||5,r={...e,numberClasses:n};if(e?.classification===`manual`||e?.colorsClass===`manual`){let n=s(t,e?.colorsClass,a(e?.manualValues?.ranges));r.manualValues={...r.manualValues,ranges:o(n)}}return r}}},{key:`classification`,control:{type:`picker`,label:`Method`,default:`interval`,enum:[`interval`,`manual`,`quantile`,`continuous`],toOptions:({options:e,value:t})=>{let n={...e,classification:t};if(t===`manual`||e?.colorsClass===`manual`){let t=s(e?.numberClasses,e?.colorsClass,a(e?.manualValues?.ranges));n.manualValues={...n.manualValues,ranges:o(t)}}else delete n?.manualValues?.ranges;return n}}},{key:`manualValues.rangesValues`,control:{type:`color-range`,editRangeSize:!1,debounce:500,noValues:!1,readOnlyColorPicker:!0,label:`Manual range values`,hideLabel:!0,calculateValue:({options:e})=>s(e?.numberClasses,e?.colorsClass,a(e?.manualValues?.ranges)),toOptions:({options:e,value:t})=>({...e,manualValues:{...e.manualValues,ranges:o(t)}})},visibleIf:({options:e})=>e?.classification===`manual`}]},{key:`legend`,type:`group`,open:!1,children:[{key:`legend.type`,control:{type:`picker`,label:`Type`,default:`bar`,enum:[`bar`,`list`]}},{key:`legend.size`,control:{type:`radio-button-group`,label:`Size`,default:`M`,enum:[`S`,`M`,`L`]}},{key:`legend.position`,control:{type:`position-picker`,label:`Position`,default:`bottomLeft`,enum:[`topLeft`,`top`,`topRight`,`right`,`bottomRight`,`bottom`,`bottomLeft`,`left`]}}],visibleIf:({options:e})=>e?.display?.legend===!0},e(),t({select:{default:!0}})];export{l as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
|
|
2
|
-
import{t as e}from"./color-palettes-B41FvzWH.js";import{t}from"./embed-
|
|
2
|
+
import{t as e}from"./color-palettes-B41FvzWH.js";import{t}from"./embed-Bv1ps-EM.js";var n=(e,n=.1)=>{if(e.length<2)return`#AAAAAA`;let r=e.length,i=new t(e[r-2]).to(`oklab`),a=new t(e[r-1]).to(`oklab`),o=i.coords[0],s=a.coords[0],c=Math.min(1,Math.max(0,s+(s>o?1:-1)*n));return new t(`oklab`,[c,a.coords[1],a.coords[2]],a.alpha).to(`srgb`).toString({format:`hex`,precision:0})},r=e=>e?.map(e=>({color:e.color,value:e.val}))??[],i=e=>e?.map(e=>({color:e.color,val:e.value}))??[],a=(t,r,i)=>{t=typeof t==`string`?Number.parseInt(t,10):t,t=typeof t==`number`?Math.max(Math.min(t,9),3):5;let a=Array.isArray(i)?i:[],o=Math.min(...a.map(e=>e?.value??1/0)),s=Math.max(...a.map(e=>e?.value??-1/0)),c=!1,l=typeof o==`number`&&typeof s==`number`&&o!==1/0&&s!==-1/0?s-o:0;if(a.length>t)c=o!==1/0&&s!==-1/0,a=a.slice(0,t);else if(a.length<t)for(;a.length<t;)a.push({});let u=[],d=e();if(Object.keys(d).includes(r??``))u=d[r]?.[`colors${t}`]??[];else if(r===`manual`){if(u=a.map(e=>e.color).filter(e=>e!==void 0),u.length<t)for(;u.length<t;)u.push(n(u))}else u=d.PuBu?.[`colors${t}`]??[];if(u?.forEach((e,t)=>{a[t].color=e}),a.filter(e=>e.value===void 0)?.length>0){let e=o===1/0?0:o,n=l/(t-1)||100;for(let r=0;r<t;r++)a[r].value=Number((e+r*n).toFixed(10))}if(c){let e=o===1/0?0:o,n=l/(t-1)||100;for(let r=0;r<t;r++)a[r].value=Number((e+r*n).toFixed(10))}return a};export{r as n,i as r,a as t};
|