@nyaruka/temba-components 0.157.1 → 0.158.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/CHANGELOG.md +9 -0
- package/dist/temba-components.js +184 -237
- package/dist/temba-components.js.map +1 -1
- package/orca/setup.sh +81 -0
- package/orca.yaml +3 -0
- package/package.json +1 -1
- package/src/events/eventRenderers.ts +4 -9
- package/src/flow/CanvasNode.ts +14 -6
- package/src/flow/DragManager.ts +4 -2
- package/src/flow/utils.ts +1 -0
- package/src/form/DatePicker.ts +2 -1
- package/src/layout/Tab.ts +0 -15
- package/src/layout/TabPane.ts +73 -163
- package/src/live/ContactChat.ts +6 -2
- package/src/live/ContactDetails.ts +40 -35
- package/src/live/ContactFieldEditor.ts +35 -55
- package/src/live/ContactFields.ts +1 -2
- package/src/live/ContactNotepad.ts +9 -1
- package/src/live/ContactPending.ts +1 -0
- package/src/styles/designTokens.ts +2 -0
- package/static/css/temba-components.css +2 -0
package/dist/temba-components.js
CHANGED
|
@@ -73,9 +73,11 @@ const Ye=1,Ke=2,Ge=t=>(...e)=>({_$litDirective$:t,values:e});let Xe=class{constr
|
|
|
73
73
|
/* neutrals */
|
|
74
74
|
--bg: #f6f7f9;
|
|
75
75
|
--surface: #ffffff;
|
|
76
|
+
--surface-note: #fff9c2;
|
|
76
77
|
--sunken: #f1f3f5;
|
|
77
78
|
--border: #e6e8ec;
|
|
78
79
|
--border-strong: #d2d6dc;
|
|
80
|
+
--border-note: #ebdf6f;
|
|
79
81
|
--text-1: #1a1f26;
|
|
80
82
|
--text-2: #4d5664;
|
|
81
83
|
--text-3: #7b8593;
|
|
@@ -3500,7 +3502,7 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
3500
3502
|
</div>`:V`<div style=${Eh}>
|
|
3501
3503
|
Cleared ${Ch(t.field)}
|
|
3502
3504
|
</div>`)(t);break;case xh.CONTACT_GROUPS_CHANGED:i=(t=>t.groups_added?Th("Added to","Added to",t.groups_added):t.groups_removed?Th("Removed from","Removed from",t.groups_removed):void 0)(t);break;case xh.CONTACT_LANGUAGE_CHANGED:i=(t=>t.language?V`<div style=${Eh}>
|
|
3503
|
-
Language updated to ${$h(t.language)}
|
|
3505
|
+
Language updated to ${$h(Nl(t.language))}
|
|
3504
3506
|
</div>`:V`<div style=${Eh}>Cleared language</div>`)(t);break;case xh.CONTACT_NAME_CHANGED:i=(t=>t.name?V`<div style=${Eh}>
|
|
3505
3507
|
Updated name to ${$h(t.name)}
|
|
3506
3508
|
</div>`:V`<div style=${Eh}>Cleared name</div>`)(t);break;case xh.CONTACT_STATUS_CHANGED:i=(t=>t.status?V`<div style=${Eh}>
|
|
@@ -3530,9 +3532,7 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
3530
3532
|
Sent broadcast: "${e[i].text}"
|
|
3531
3533
|
</div>`:V`<div>Sent broadcast</div>`})(t);break;case xh.SESSION_TRIGGERED:i=(t=>{const e=t.flow;return e?V`<div>Started somebody else in ${kh(e)}</div>`:null})(t);break;case xh.RESTHOOK_CALLED:i=(t=>V`<div>
|
|
3532
3534
|
Triggered flow event <strong>${t.resthook}</strong>
|
|
3533
|
-
</div>`)(t);break;case xh.WEBHOOK_CALLED:i=(t=>{const e=t.url&&t.url.length>50?t.url.slice(0,50)+"...":t.url;return V`<div>Called <strong>${e}</strong></div>`})(t);break;case xh.SERVICE_CALLED:i=(t=>{const e=t.service;return"classifier"===e?V`<div>Called classifier</div>`:V`<div>Called <strong>${e}</strong></div>`})(t);break;case xh.TICKET_ASSIGNEE_CHANGED:i=(t=>{var e;const i=(null===(e=t.ticket)||void 0===e?void 0:e.uuid)||t.ticket_uuid,o=V`<a href="/ticket/all/open/${i}/"
|
|
3534
|
-
>ticket</a
|
|
3535
|
-
>`,n=V`<a href="/ticket/all/open/${i}/"
|
|
3535
|
+
</div>`)(t);break;case xh.WEBHOOK_CALLED:i=(t=>{const e=t.url&&t.url.length>50?t.url.slice(0,50)+"...":t.url;return V`<div>Called <strong>${e}</strong></div>`})(t);break;case xh.SERVICE_CALLED:i=(t=>{const e=t.service;return"classifier"===e?V`<div>Called classifier</div>`:V`<div>Called <strong>${e}</strong></div>`})(t);break;case xh.TICKET_ASSIGNEE_CHANGED:i=(t=>{var e;const i=(null===(e=t.ticket)||void 0===e?void 0:e.uuid)||t.ticket_uuid,o=V`<a href="/ticket/all/open/${i}/">ticket</a>`,n=V`<a href="/ticket/all/open/${i}/"
|
|
3536
3536
|
>This ticket</a
|
|
3537
3537
|
>`;if(t._user)return t.assignee?t._user.uuid&&t._user.uuid===t.assignee.uuid||t._user.email&&t._user.email===t.assignee.email?V`<div style=${Eh}>
|
|
3538
3538
|
${Ah(t._user)} took this ${o}
|
|
@@ -3557,11 +3557,11 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
3557
3557
|
display: flex;
|
|
3558
3558
|
flex-direction: row;
|
|
3559
3559
|
min-height: 0;
|
|
3560
|
+
margin-top: var(--gap);
|
|
3560
3561
|
--compose-shadow: none;
|
|
3561
3562
|
--compose-border: none;
|
|
3562
3563
|
--compose-padding: 3px;
|
|
3563
3564
|
--compose-curvature: none;
|
|
3564
|
-
border-top: 1px inset rgba(0, 0, 0, 0.05);
|
|
3565
3565
|
}
|
|
3566
3566
|
|
|
3567
3567
|
.chat-wrapper {
|
|
@@ -3569,7 +3569,11 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
3569
3569
|
flex-grow: 1;
|
|
3570
3570
|
flex-direction: column;
|
|
3571
3571
|
min-height: 0;
|
|
3572
|
-
background:
|
|
3572
|
+
background: var(--surface);
|
|
3573
|
+
border: 1px solid var(--border-strong);
|
|
3574
|
+
border-radius: var(--r-sm);
|
|
3575
|
+
box-shadow: var(--shadow-2);
|
|
3576
|
+
overflow: hidden;
|
|
3573
3577
|
}
|
|
3574
3578
|
|
|
3575
3579
|
temba-contact-history {
|
|
@@ -5651,7 +5655,7 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
5651
5655
|
</div>
|
|
5652
5656
|
</div>
|
|
5653
5657
|
</div>
|
|
5654
|
-
`}}e([gt({type:Boolean})],Kh.prototype,"open",void 0),e([gt({type:Boolean})],Kh.prototype,"dormant",void 0),e([gt({type:Number})],Kh.prototype,"arrowSize",void 0),e([gt({type:Number})],Kh.prototype,"margin",void 0),e([gt({type:Boolean})],Kh.prototype,"mask",void 0);class Gh extends Ze{constructor(){super(...arguments),this.
|
|
5658
|
+
`}}e([gt({type:Boolean})],Kh.prototype,"open",void 0),e([gt({type:Boolean})],Kh.prototype,"dormant",void 0),e([gt({type:Number})],Kh.prototype,"arrowSize",void 0),e([gt({type:Number})],Kh.prototype,"margin",void 0),e([gt({type:Boolean})],Kh.prototype,"mask",void 0);class Gh extends Ze{constructor(){super(...arguments),this.collapses=!1,this.unselect=!1,this.focusedName=!1,this.index=-1,this.refresh="",this.options=[]}static get styles(){return l`
|
|
5655
5659
|
:host {
|
|
5656
5660
|
display: flex;
|
|
5657
5661
|
flex-direction: column;
|
|
@@ -5662,43 +5666,48 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
5662
5666
|
.options {
|
|
5663
5667
|
display: flex;
|
|
5664
5668
|
align-items: stretch;
|
|
5665
|
-
|
|
5666
|
-
border-bottom:
|
|
5669
|
+
gap: 4px;
|
|
5670
|
+
border-bottom: 1px solid var(--border);
|
|
5667
5671
|
}
|
|
5668
5672
|
|
|
5669
5673
|
.option {
|
|
5670
5674
|
user-select: none;
|
|
5671
|
-
padding: 0.5em 0.7em;
|
|
5672
|
-
margin: 0em 0em;
|
|
5673
|
-
cursor: pointer;
|
|
5674
5675
|
display: flex;
|
|
5675
|
-
font-size: 1.1em;
|
|
5676
5676
|
align-items: center;
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5683
|
-
|
|
5684
|
-
|
|
5677
|
+
cursor: pointer;
|
|
5678
|
+
padding: 8px 14px 10px;
|
|
5679
|
+
margin-bottom: -1px;
|
|
5680
|
+
background: transparent;
|
|
5681
|
+
color: var(--text-2);
|
|
5682
|
+
--icon-color: var(--text-2);
|
|
5683
|
+
font-size: 13px;
|
|
5684
|
+
font-weight: var(--w-medium);
|
|
5685
|
+
border-bottom: 2px solid transparent;
|
|
5685
5686
|
white-space: nowrap;
|
|
5686
|
-
transition:
|
|
5687
|
+
transition:
|
|
5688
|
+
color 100ms linear,
|
|
5689
|
+
border-color 100ms linear;
|
|
5687
5690
|
}
|
|
5688
5691
|
|
|
5689
|
-
.
|
|
5690
|
-
|
|
5692
|
+
.option:hover {
|
|
5693
|
+
color: var(--text-1);
|
|
5694
|
+
--icon-color: var(--text-1);
|
|
5691
5695
|
}
|
|
5692
5696
|
|
|
5693
|
-
.
|
|
5694
|
-
|
|
5697
|
+
.option.selected,
|
|
5698
|
+
.option.selected:hover {
|
|
5699
|
+
cursor: default;
|
|
5700
|
+
color: var(--accent-700);
|
|
5701
|
+
--icon-color: var(--accent-700);
|
|
5702
|
+
border-bottom-color: var(--accent-600);
|
|
5695
5703
|
}
|
|
5696
5704
|
|
|
5697
|
-
.option.
|
|
5698
|
-
|
|
5705
|
+
.unselect .option.selected {
|
|
5706
|
+
cursor: pointer;
|
|
5699
5707
|
}
|
|
5700
5708
|
|
|
5701
|
-
.option
|
|
5709
|
+
.option.hidden {
|
|
5710
|
+
display: none;
|
|
5702
5711
|
}
|
|
5703
5712
|
|
|
5704
5713
|
.option .name {
|
|
@@ -5714,6 +5723,9 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
5714
5723
|
|
|
5715
5724
|
.option .badge {
|
|
5716
5725
|
margin-left: 0.4em;
|
|
5726
|
+
margin-right: -6px;
|
|
5727
|
+
display: inline-flex;
|
|
5728
|
+
align-items: center;
|
|
5717
5729
|
}
|
|
5718
5730
|
|
|
5719
5731
|
@media (max-width: 900px) {
|
|
@@ -5729,9 +5741,6 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
5729
5741
|
}
|
|
5730
5742
|
}
|
|
5731
5743
|
|
|
5732
|
-
.focusedname .option.selected {
|
|
5733
|
-
}
|
|
5734
|
-
|
|
5735
5744
|
.focusedname .option .name {
|
|
5736
5745
|
max-width: 0px;
|
|
5737
5746
|
margin: 0;
|
|
@@ -5745,153 +5754,96 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
5745
5754
|
max-width: 200px;
|
|
5746
5755
|
}
|
|
5747
5756
|
|
|
5748
|
-
.option {
|
|
5749
|
-
|
|
5750
|
-
--icon-color: rgba(0, 0, 0, 0.5);
|
|
5751
|
-
color: rgba(0, 0, 0, 0.5);
|
|
5752
|
-
}
|
|
5753
|
-
|
|
5754
|
-
.option.selected {
|
|
5755
|
-
}
|
|
5756
|
-
|
|
5757
|
-
.option.selected,
|
|
5758
|
-
.option.selected:hover {
|
|
5759
|
-
cursor: default;
|
|
5760
|
-
box-shadow: 0px -3px 3px 1px rgba(0, 0, 0, 0.02);
|
|
5761
|
-
|
|
5762
|
-
background: var(--focused-tab-color, #fff);
|
|
5763
|
-
transform: scale(1) translateY(1px);
|
|
5764
|
-
--icon-color: #666;
|
|
5765
|
-
color: #666;
|
|
5766
|
-
border: 1px inset rgba(0, 0, 0, 0.15);
|
|
5767
|
-
border-bottom: 0px;
|
|
5768
|
-
}
|
|
5769
|
-
|
|
5770
|
-
.option.selected .dot {
|
|
5771
|
-
display: none;
|
|
5772
|
-
}
|
|
5773
|
-
|
|
5774
|
-
.unselect .option.selected {
|
|
5775
|
-
cursor: pointer;
|
|
5757
|
+
.focusedname .option .name {
|
|
5758
|
+
transition: all 0s linear !important;
|
|
5776
5759
|
}
|
|
5777
5760
|
|
|
5778
|
-
.
|
|
5779
|
-
|
|
5761
|
+
.focusedname .option.selected .name {
|
|
5762
|
+
transition: all 200ms linear !important;
|
|
5780
5763
|
}
|
|
5781
5764
|
|
|
5782
|
-
.option
|
|
5783
|
-
|
|
5784
|
-
color: #666;
|
|
5785
|
-
background: rgba(0, 0, 0, 0.02);
|
|
5765
|
+
.option.dirty {
|
|
5766
|
+
font-weight: var(--w-semibold);
|
|
5786
5767
|
}
|
|
5787
5768
|
|
|
5788
|
-
.option.
|
|
5789
|
-
|
|
5769
|
+
.option.alert {
|
|
5770
|
+
color: var(--danger);
|
|
5771
|
+
--icon-color: var(--danger);
|
|
5790
5772
|
}
|
|
5791
5773
|
|
|
5792
5774
|
.pane {
|
|
5793
5775
|
display: flex;
|
|
5794
5776
|
flex-direction: column;
|
|
5795
5777
|
flex-grow: 1;
|
|
5796
|
-
background: var(--focused-tab-color, #fff);
|
|
5797
|
-
border-bottom-left-radius: var(--curvature);
|
|
5798
|
-
border-bottom-right-radius: var(--curvature);
|
|
5799
|
-
overflow: hidden;
|
|
5800
|
-
|
|
5801
|
-
box-shadow: var(
|
|
5802
|
-
--tabs-shadow,
|
|
5803
|
-
rgba(0, 0, 0, 0.1) 0px 1px 3px 0px,
|
|
5804
|
-
rgba(0, 0, 0, 0.03) 0px 1px 2px 0px
|
|
5805
|
-
);
|
|
5806
5778
|
min-height: 0;
|
|
5807
|
-
}
|
|
5808
|
-
|
|
5809
|
-
.pane.first {
|
|
5810
|
-
border-top-left-radius: 0px;
|
|
5811
5779
|
overflow: hidden;
|
|
5812
5780
|
}
|
|
5813
5781
|
|
|
5814
5782
|
.count {
|
|
5815
|
-
|
|
5816
|
-
|
|
5817
|
-
|
|
5818
|
-
|
|
5819
|
-
|
|
5820
|
-
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
5825
|
-
height: 0.5em;
|
|
5826
|
-
width: 0.5em;
|
|
5827
|
-
margin-left: 0.2em;
|
|
5828
|
-
background: var(--color-primary-dark);
|
|
5829
|
-
border-radius: 99px;
|
|
5830
|
-
}
|
|
5831
|
-
|
|
5832
|
-
.notify .count {
|
|
5833
|
-
background: var(--color-alert);
|
|
5834
|
-
color: #fff;
|
|
5783
|
+
display: inline-flex;
|
|
5784
|
+
align-items: center;
|
|
5785
|
+
justify-content: center;
|
|
5786
|
+
height: 16px;
|
|
5787
|
+
padding: 0 2px;
|
|
5788
|
+
color: inherit;
|
|
5789
|
+
opacity: 0.6;
|
|
5790
|
+
font-size: 11px;
|
|
5791
|
+
font-weight: var(--w-medium);
|
|
5792
|
+
font-variant-numeric: tabular-nums;
|
|
5835
5793
|
}
|
|
5836
5794
|
|
|
5837
|
-
.
|
|
5838
|
-
|
|
5839
|
-
|
|
5795
|
+
.option.selected .count,
|
|
5796
|
+
.option.alert .count {
|
|
5797
|
+
min-width: 16px;
|
|
5798
|
+
padding: 0 4px;
|
|
5799
|
+
border-radius: 999px;
|
|
5800
|
+
opacity: 1;
|
|
5840
5801
|
}
|
|
5841
5802
|
|
|
5842
|
-
.
|
|
5843
|
-
|
|
5844
|
-
|
|
5845
|
-
|
|
5846
|
-
border-right: none !important;
|
|
5847
|
-
border-bottom: none !important;
|
|
5803
|
+
.option.selected .count {
|
|
5804
|
+
background: var(--accent-100);
|
|
5805
|
+
color: var(--accent-700);
|
|
5806
|
+
font-weight: var(--w-semibold);
|
|
5848
5807
|
}
|
|
5849
5808
|
|
|
5850
|
-
.
|
|
5851
|
-
|
|
5852
|
-
|
|
5853
|
-
border-top: none !important;
|
|
5809
|
+
.option.alert .count {
|
|
5810
|
+
background: var(--danger-bg);
|
|
5811
|
+
color: var(--danger);
|
|
5854
5812
|
}
|
|
5855
5813
|
|
|
5856
|
-
.
|
|
5857
|
-
|
|
5858
|
-
|
|
5859
|
-
|
|
5814
|
+
.dot {
|
|
5815
|
+
height: 0.5em;
|
|
5816
|
+
width: 0.5em;
|
|
5817
|
+
margin-left: 0.2em;
|
|
5818
|
+
background: var(--accent-600);
|
|
5819
|
+
border-radius: 99px;
|
|
5860
5820
|
}
|
|
5861
5821
|
|
|
5862
|
-
.
|
|
5863
|
-
|
|
5822
|
+
.option.selected .dot {
|
|
5823
|
+
display: none;
|
|
5864
5824
|
}
|
|
5865
5825
|
|
|
5866
5826
|
.check {
|
|
5867
5827
|
margin-left: 0.4em;
|
|
5868
5828
|
}
|
|
5869
|
-
|
|
5870
|
-
.pane {
|
|
5871
|
-
display: flex;
|
|
5872
|
-
}
|
|
5873
|
-
`}handleTabClick(t){const e=parseInt(t.currentTarget.dataset.index);this.unselect&&this.index===e?this.index=-1:this.index=e,t.preventDefault(),t.stopPropagation(),this.requestUpdate("index")}handleSlotChange(){const t=[];for(const e of this.children)if("TEMBA-TAB"===e.tagName){const i=e;t.push(i)}this.options=t,this.index=0}firstUpdated(t){super.firstUpdated(t),this.shadowRoot.addEventListener("slotchange",this.handleSlotChange.bind(this))}updated(t){if(super.updated(t),t.has("options")&&this.options.forEach((t,e)=>{t.selected=e==this.index}),t.has("index")&&this.options.length>=0&&this.index!==t.get("index")&&(this.options.forEach((t,e)=>{t.selected=e==this.index}),this.fireEvent(Uo.ContextChanged)),this.index>this.options.length){const t=this.options[this.index];if(t&&t.hidden)for(let t=0;t<this.options.length;t++){const e=this.options[t];if(e&&!e.hidden)return void(this.index=t)}}}focusTab(t){const e=this.options.findIndex(e=>e.name===t);if(e>=0)return this.index=e,this.getTab(e)}setTabDetails(t,e){if(t<this.options.length){const i=this.options[t];i.count=e.count,i.hidden=e.hidden,this.requestUpdate()}else setTimeout(()=>{this.setTabDetails(t,e)},100)}getCurrentTab(){return this.options[this.index]}getTab(t){return this.options[t]}handleTabContentChanged(){this.requestUpdate()}handleTabDetailsChanged(){this.requestUpdate()}render(){const t=this.options[this.index];return V`
|
|
5829
|
+
`}handleTabClick(t){const e=parseInt(t.currentTarget.dataset.index);this.unselect&&this.index===e?this.index=-1:this.index=e,t.preventDefault(),t.stopPropagation(),this.requestUpdate("index")}handleSlotChange(){const t=[];for(const e of this.children)if("TEMBA-TAB"===e.tagName){const i=e;t.push(i)}this.options=t,this.index=0}firstUpdated(t){super.firstUpdated(t),this.shadowRoot.addEventListener("slotchange",this.handleSlotChange.bind(this))}updated(t){if(super.updated(t),t.has("options")&&this.options.forEach((t,e)=>{t.selected=e==this.index}),t.has("index")&&this.options.length>=0&&this.index!==t.get("index")&&(this.options.forEach((t,e)=>{t.selected=e==this.index}),this.fireEvent(Uo.ContextChanged)),this.index>this.options.length){const t=this.options[this.index];if(t&&t.hidden)for(let t=0;t<this.options.length;t++){const e=this.options[t];if(e&&!e.hidden)return void(this.index=t)}}}focusTab(t){const e=this.options.findIndex(e=>e.name===t);if(e>=0)return this.index=e,this.getTab(e)}setTabDetails(t,e){if(t<this.options.length){const i=this.options[t];i.count=e.count,i.hidden=e.hidden,this.requestUpdate()}else setTimeout(()=>{this.setTabDetails(t,e)},100)}getCurrentTab(){return this.options[this.index]}getTab(t){return this.options[t]}handleTabContentChanged(){this.requestUpdate()}handleTabDetailsChanged(){this.requestUpdate()}render(){return V`
|
|
5874
5830
|
<div
|
|
5875
|
-
class="${ge({options:!0,collapses:this.collapses,
|
|
5831
|
+
class="${ge({options:!0,collapses:this.collapses,focusedname:this.focusedName,unselect:this.unselect})}"
|
|
5876
5832
|
>
|
|
5877
5833
|
${this.options.map((t,e)=>V`
|
|
5878
5834
|
<div
|
|
5879
5835
|
@click=${this.handleTabClick}
|
|
5880
5836
|
data-index=${e}
|
|
5881
|
-
class="${ge({option:!0,first:0==e,selected:e==this.index,hidden:t.hidden,
|
|
5882
|
-
style="${t.selectionColor&&e==this.index?`color:${t.selectionColor};--icon-color:${t.selectionColor};`:""} ${t.selectionBackground&&e==this.index?`background-color:${t.selectionBackground};`:""}"
|
|
5837
|
+
class="${ge({option:!0,first:0==e,selected:e==this.index,hidden:t.hidden,alert:t.alert,dirty:t.dirty})}"
|
|
5883
5838
|
>
|
|
5884
5839
|
${t.icon?V`<temba-icon name=${t.icon} />`:null}
|
|
5885
5840
|
<div class="name">${t.name} ${t.dirty?" *":""}</div>
|
|
5886
5841
|
${t.hasBadge()?V`
|
|
5887
5842
|
<div class="badge">
|
|
5888
5843
|
${t.count>0&&!t.activity?V`<div class="count">
|
|
5889
|
-
${t.
|
|
5844
|
+
${t.count.toLocaleString()}
|
|
5890
5845
|
</div>`:null}
|
|
5891
|
-
${t.activity&&t.count>0&&!t.dirty?V`<div
|
|
5892
|
-
class="dot"
|
|
5893
|
-
style="background:${t.activityColor}"
|
|
5894
|
-
></div>`:null}
|
|
5846
|
+
${t.activity&&t.count>0&&!t.dirty?V`<div class="dot"></div>`:null}
|
|
5895
5847
|
</div>
|
|
5896
5848
|
`:null}
|
|
5897
5849
|
${t.checked&&!t.alert?V`<temba-icon class="check" name="check"></temba-icon>`:null}
|
|
@@ -5903,15 +5855,11 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
5903
5855
|
<slot name="tab-right"></slot>
|
|
5904
5856
|
</div>
|
|
5905
5857
|
</div>
|
|
5906
|
-
<div
|
|
5907
|
-
@temba-details-changed=${this.handleTabDetailsChanged}
|
|
5908
|
-
style="${(null==t?void 0:t.borderColor)?`\n border-top: var(--temba-tabs-border-top, 1px solid ${(null==t?void 0:t.borderColor)||"var(--color-widget-border)"});\n\n border-left: var(--temba-tabs-border-left, 1px solid ${(null==t?void 0:t.borderColor)||"var(--color-widget-border)"});\n\n border-bottom: var(--temba-tabs-border-bottom, 1px solid ${(null==t?void 0:t.borderColor)||"var(--color-widget-border)"});\n\n border-right: var(--temba-tabs-border-right, 1px solid ${(null==t?void 0:t.borderColor)||"var(--color-widget-border)"});\n\n `:""} ${(null==t?void 0:t.selectionBackground)?`background:${null==t?void 0:t.selectionBackground};`:""}"
|
|
5909
|
-
class="pane ${ge({first:0==this.index,embedded:this.embedded})}"
|
|
5910
|
-
>
|
|
5858
|
+
<div @temba-details-changed=${this.handleTabDetailsChanged} class="pane">
|
|
5911
5859
|
<slot></slot>
|
|
5912
5860
|
<slot name="pane-bottom"></slot>
|
|
5913
5861
|
</div>
|
|
5914
|
-
`}}e([gt({type:Boolean})],Gh.prototype,"
|
|
5862
|
+
`}}e([gt({type:Boolean})],Gh.prototype,"collapses",void 0),e([gt({type:Boolean})],Gh.prototype,"unselect",void 0),e([gt({type:Boolean})],Gh.prototype,"focusedName",void 0),e([gt({type:Number})],Gh.prototype,"index",void 0),e([gt({type:String})],Gh.prototype,"refresh",void 0),e([gt({type:Array,attribute:!1})],Gh.prototype,"options",void 0);class Xh extends Ze{constructor(){super(...arguments),this.selected=!1,this.alert=!1,this.hidden=!1,this.hideEmpty=!1,this.activity=!1,this.count=0,this.checked=!1,this.dirty=!1}static get styles(){return l`
|
|
5915
5863
|
:host {
|
|
5916
5864
|
display: none;
|
|
5917
5865
|
flex-direction: column;
|
|
@@ -5927,7 +5875,7 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
5927
5875
|
`}updated(t){super.updated(t),t.has("selected")&&this.classList.toggle("selected",this.selected)}hasBadge(){return this.count>0}handleDetailsChanged(t){"dirty"in t.detail&&(this.dirty=t.detail.dirty),"count"in t.detail&&(this.count=t.detail.count,this.hideEmpty&&(this.hidden=0===this.count))}render(){return V`<slot
|
|
5928
5876
|
@temba-details-changed=${this.handleDetailsChanged}
|
|
5929
5877
|
class="${ge({selected:this.selected})}"
|
|
5930
|
-
></slot> `}}e([gt({type:String})],Xh.prototype,"name",void 0),e([gt({type:String})],Xh.prototype,"icon",void 0),e([gt({type:
|
|
5878
|
+
></slot> `}}e([gt({type:String})],Xh.prototype,"name",void 0),e([gt({type:String})],Xh.prototype,"icon",void 0),e([gt({type:Boolean})],Xh.prototype,"selected",void 0),e([gt({type:Boolean})],Xh.prototype,"alert",void 0),e([gt({type:Boolean})],Xh.prototype,"hidden",void 0),e([gt({type:Boolean})],Xh.prototype,"hideEmpty",void 0),e([gt({type:Boolean})],Xh.prototype,"activity",void 0),e([gt({type:Number})],Xh.prototype,"count",void 0),e([gt({type:Boolean})],Xh.prototype,"checked",void 0),e([gt({type:Boolean})],Xh.prototype,"dirty",void 0);let Qh=class extends ct{static get styles(){return l`
|
|
5931
5879
|
${Do}
|
|
5932
5880
|
|
|
5933
5881
|
:host {
|
|
@@ -6205,9 +6153,8 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
6205
6153
|
|
|
6206
6154
|
.toggle {
|
|
6207
6155
|
display: flex;
|
|
6208
|
-
background: #fff;
|
|
6209
6156
|
align-items: center;
|
|
6210
|
-
margin-
|
|
6157
|
+
margin-top: 0.5em;
|
|
6211
6158
|
}
|
|
6212
6159
|
|
|
6213
6160
|
.disabled .toggle {
|
|
@@ -6282,51 +6229,34 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
6282
6229
|
--color-widget-border: rgb(235, 235, 235);
|
|
6283
6230
|
}
|
|
6284
6231
|
|
|
6285
|
-
.prefix {
|
|
6286
|
-
border-top-left-radius: var(--curvature-widget);
|
|
6287
|
-
border-bottom-left-radius: var(--curvature-widget);
|
|
6288
|
-
cursor: pointer !important;
|
|
6289
|
-
white-space: nowrap;
|
|
6290
|
-
overflow: hidden;
|
|
6291
|
-
text-overflow: ellipsis;
|
|
6292
|
-
display: flex;
|
|
6293
|
-
/* Pin to the top-left of the host (temba-select :host is
|
|
6294
|
-
position: relative). Using top rather than margin-top keeps
|
|
6295
|
-
the absolute element out of the flex flow of .left-side so
|
|
6296
|
-
it doesn't push the selected value down. */
|
|
6297
|
-
position: absolute;
|
|
6298
|
-
top: -0.6em;
|
|
6299
|
-
left: 0.5em;
|
|
6300
|
-
pointer-events: none;
|
|
6301
|
-
background: #fff;
|
|
6302
|
-
border-radius: var(--curvature);
|
|
6303
|
-
}
|
|
6304
|
-
|
|
6305
|
-
temba-select .prefix {
|
|
6306
|
-
top: -0.7em;
|
|
6307
|
-
}
|
|
6308
|
-
|
|
6309
6232
|
.wrapper {
|
|
6310
6233
|
margin-bottom: 0.5em;
|
|
6311
6234
|
}
|
|
6312
6235
|
|
|
6313
|
-
.
|
|
6314
|
-
|
|
6315
|
-
|
|
6316
|
-
|
|
6236
|
+
.field-label {
|
|
6237
|
+
display: block;
|
|
6238
|
+
font-size: 12px;
|
|
6239
|
+
font-weight: var(--w-medium);
|
|
6240
|
+
color: var(--text-2);
|
|
6241
|
+
margin: 0 0 4px 2px;
|
|
6317
6242
|
white-space: nowrap;
|
|
6318
6243
|
overflow: hidden;
|
|
6319
6244
|
text-overflow: ellipsis;
|
|
6320
|
-
|
|
6245
|
+
}
|
|
6246
|
+
|
|
6247
|
+
.label .name {
|
|
6248
|
+
color: var(--text-2);
|
|
6249
|
+
font-size: 12px;
|
|
6250
|
+
font-weight: var(--w-medium);
|
|
6321
6251
|
}
|
|
6322
6252
|
|
|
6323
6253
|
.disabled .name {
|
|
6324
|
-
margin-top:
|
|
6325
|
-
margin-left: 0.
|
|
6254
|
+
margin-top: 0.25em;
|
|
6255
|
+
margin-left: 0.25em;
|
|
6326
6256
|
}
|
|
6327
6257
|
|
|
6328
6258
|
.disabled .value {
|
|
6329
|
-
margin-left: 0.
|
|
6259
|
+
margin-left: 0.25em;
|
|
6330
6260
|
margin-top: 0.1em;
|
|
6331
6261
|
min-height: 1.75em;
|
|
6332
6262
|
}
|
|
@@ -6503,23 +6433,26 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
6503
6433
|
|
|
6504
6434
|
temba-option {
|
|
6505
6435
|
}
|
|
6506
|
-
`}connectedCallback(){super.connectedCallback(),this.handleInput=this.handleInput.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}handleIconClick(t){const e=t.target.getAttribute("icon-action"),i=this.shadowRoot.querySelector("temba-textinput");"copy"===e&&navigator.clipboard&&(this.iconClass="clicked",navigator.clipboard.writeText(i.getDisplayValue()).then(()=>{window.setTimeout(()=>{this.iconClass=""},300)})),"search"===e&&this.fireCustomEvent(Uo.ButtonClicked,{key:this.key,value:this.value}),t.preventDefault(),t.stopPropagation()}handleResponse(t){200===t.status?(this.value=t.json.fields[this.key],this.status=iu.Ready,this.dirty=!1):(this.status=iu.Failure,this.dirty=!1)}handleSelectChange(t){const e=t.currentTarget;let i="";t.preventDefault(),t.stopPropagation(),e.values.length>0&&(i=e.values[0].path),i!==this.value&&(this.dirty=!0,this.status=iu.Saving,this.value=i,this.fireEvent("change"))}handleSubmit(){const t=this.shadowRoot.querySelector("temba-textinput, temba-datepicker");t.value!==this.value&&(this.dirty=!0,this.status=iu.Saving,this.value=t.value,this.fireEvent("change"))}handleChange(t){t.preventDefault(),t.stopPropagation()}handleDateChange(t){t.preventDefault(),t.stopPropagation(),this.dirty=!0}handleInput(t){const e=t.currentTarget;"Enter"===t.key?(e.blur(),this.handleSubmit()):e.value!==this.value&&(this.dirty=!0)}getInputType(t){return"numeric"===t?No.Number:No.Text}renderDateField(t){return V`
|
|
6507
|
-
|
|
6508
|
-
|
|
6509
|
-
|
|
6510
|
-
|
|
6511
|
-
|
|
6512
|
-
|
|
6513
|
-
|
|
6514
|
-
|
|
6515
|
-
|
|
6516
|
-
|
|
6517
|
-
|
|
6518
|
-
|
|
6436
|
+
`}connectedCallback(){super.connectedCallback(),this.handleInput=this.handleInput.bind(this),this.handleSubmit=this.handleSubmit.bind(this)}handleIconClick(t){const e=t.target.getAttribute("icon-action"),i=this.shadowRoot.querySelector("temba-textinput");"copy"===e&&navigator.clipboard&&(this.iconClass="clicked",navigator.clipboard.writeText(i.getDisplayValue()).then(()=>{window.setTimeout(()=>{this.iconClass=""},300)})),"search"===e&&this.fireCustomEvent(Uo.ButtonClicked,{key:this.key,value:this.value}),t.preventDefault(),t.stopPropagation()}handleResponse(t){200===t.status?(this.value=t.json.fields[this.key],this.status=iu.Ready,this.dirty=!1):(this.status=iu.Failure,this.dirty=!1)}handleSelectChange(t){const e=t.currentTarget;let i="";t.preventDefault(),t.stopPropagation(),e.values.length>0&&(i=e.values[0].path),i!==this.value&&(this.dirty=!0,this.status=iu.Saving,this.value=i,this.fireEvent("change"))}handleSubmit(){const t=this.shadowRoot.querySelector("temba-textinput, temba-datepicker");t.value!==this.value&&(this.dirty=!0,this.status=iu.Saving,this.value=t.value,this.fireEvent("change"))}handleChange(t){t.preventDefault(),t.stopPropagation()}handleDateChange(t){t.preventDefault(),t.stopPropagation(),this.dirty=!0}handleInput(t){const e=t.currentTarget;"Enter"===t.key?(e.blur(),this.handleSubmit()):e.value!==this.value&&(this.dirty=!0)}getInputType(t){return"numeric"===t?No.Number:No.Text}renderDateField(t){return V`
|
|
6437
|
+
<label id="field-label" class="field-label">${this.name}</label>
|
|
6438
|
+
<temba-datepicker
|
|
6439
|
+
aria-labelledby="field-label"
|
|
6440
|
+
timezone=${this.timezone}
|
|
6441
|
+
value="${this.value?this.value:""}"
|
|
6442
|
+
@change=${this.handleDateChange}
|
|
6443
|
+
?disabled=${this.disabled}
|
|
6444
|
+
time
|
|
6445
|
+
>
|
|
6446
|
+
<div class="postfix" slot="postfix">
|
|
6447
|
+
<div class="popper ${this.status} ${this.dirty?"dirty":""}">
|
|
6448
|
+
${t}
|
|
6449
|
+
</div>
|
|
6519
6450
|
</div>
|
|
6520
|
-
</
|
|
6521
|
-
|
|
6451
|
+
</temba-datepicker>
|
|
6452
|
+
`}renderTextField(t){return V`
|
|
6453
|
+
<label id="field-label" class="field-label">${this.name}</label>
|
|
6522
6454
|
<temba-textinput
|
|
6455
|
+
aria-labelledby="field-label"
|
|
6523
6456
|
class="${this.status} ${this.dirty?"dirty":""}"
|
|
6524
6457
|
value="${this.value?this.value:""}"
|
|
6525
6458
|
@keyup=${this.handleInput}
|
|
@@ -6527,10 +6460,6 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
6527
6460
|
type=${this.getInputType(this.type)}
|
|
6528
6461
|
?disabled=${this.disabled}
|
|
6529
6462
|
>
|
|
6530
|
-
<div class="prefix" slot="prefix">
|
|
6531
|
-
<div class="name">${this.name}</div>
|
|
6532
|
-
</div>
|
|
6533
|
-
|
|
6534
6463
|
<div class="postfix">
|
|
6535
6464
|
<div
|
|
6536
6465
|
class="popper ${this.iconClass} ${this.status} ${this.dirty?"dirty":""}"
|
|
@@ -6561,7 +6490,9 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
6561
6490
|
<span>${t.path}</span>
|
|
6562
6491
|
</div>
|
|
6563
6492
|
`:null}renderLocationField(t="state"){return V`
|
|
6493
|
+
<label id="field-label" class="field-label">${this.name}</label>
|
|
6564
6494
|
<temba-select
|
|
6495
|
+
aria-labelledby="field-label"
|
|
6565
6496
|
endpoint="/api/internal/locations.json?level=${t}"
|
|
6566
6497
|
nameKey="path"
|
|
6567
6498
|
valueKey="path"
|
|
@@ -6571,12 +6502,8 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
6571
6502
|
queryParam="query"
|
|
6572
6503
|
searchable
|
|
6573
6504
|
clearable
|
|
6574
|
-
inpsutStyle=${JSON.stringify({"margin-top":"1.1em !important;"})}
|
|
6575
6505
|
values=${this.value?JSON.stringify([{path:this.value,osm_id:this.value}]):"[]"}
|
|
6576
6506
|
>
|
|
6577
|
-
<div class="prefix" slot="prefix">
|
|
6578
|
-
<div class="name">${this.name}</div>
|
|
6579
|
-
</div>
|
|
6580
6507
|
</temba-select>
|
|
6581
6508
|
`}render(){if(this.disabled)return V`<div
|
|
6582
6509
|
class=${this.status+" "+ge({wrapper:!0,set:!!this.value,unset:!this.value,disabled:this.disabled,mutable:!this.disabled,dirty:this.dirty})}
|
|
@@ -6797,6 +6724,7 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
6797
6724
|
display: flex;
|
|
6798
6725
|
flex-direction: row;
|
|
6799
6726
|
align-items: center;
|
|
6727
|
+
background: var(--surface);
|
|
6800
6728
|
box-shadow:
|
|
6801
6729
|
0 0 8px 1px rgba(0, 0, 0, 0.055),
|
|
6802
6730
|
0 0 0px 1px rgba(0, 0, 0, 0.02);
|
|
@@ -7165,6 +7093,7 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
7165
7093
|
.container {
|
|
7166
7094
|
border-radius: var(--curvature);
|
|
7167
7095
|
border: 1px solid var(--color-widget-border);
|
|
7096
|
+
background: var(--color-widget-bg);
|
|
7168
7097
|
display: flex;
|
|
7169
7098
|
cursor: pointer;
|
|
7170
7099
|
box-shadow: var(--widget-box-shadow);
|
|
@@ -7205,7 +7134,7 @@ const{I:nh}=at,sh=t=>t,rh=()=>document.createComment(""),ah=(t,e,i)=>{const o=t.
|
|
|
7205
7134
|
}
|
|
7206
7135
|
|
|
7207
7136
|
.tz-wrapper {
|
|
7208
|
-
background:
|
|
7137
|
+
background: var(--sunken);
|
|
7209
7138
|
display: flex;
|
|
7210
7139
|
flex-direction: row;
|
|
7211
7140
|
align-items: center;
|
|
@@ -9354,7 +9283,7 @@ background: #ccc;
|
|
|
9354
9283
|
${this.renderUploader()}
|
|
9355
9284
|
</div>
|
|
9356
9285
|
</div>
|
|
9357
|
-
</div>`}}e([gt({type:String,attribute:!1})],Bu.prototype,"endpoint",void 0),e([gt({type:Boolean})],Bu.prototype,"pendingDrop",void 0),e([gt({type:Boolean})],Bu.prototype,"ignoreDrops",void 0),e([gt({type:String})],Bu.prototype,"icon",void 0),e([gt({type:String})],Bu.prototype,"accept",void 0),e([gt({type:Number})],Bu.prototype,"max",void 0),e([gt({type:Array})],Bu.prototype,"attachments",void 0),e([gt({type:Boolean,attribute:!1})],Bu.prototype,"uploading",void 0);let Fu="dev";try{Fu="0.
|
|
9286
|
+
</div>`}}e([gt({type:String,attribute:!1})],Bu.prototype,"endpoint",void 0),e([gt({type:Boolean})],Bu.prototype,"pendingDrop",void 0),e([gt({type:Boolean})],Bu.prototype,"ignoreDrops",void 0),e([gt({type:String})],Bu.prototype,"icon",void 0),e([gt({type:String})],Bu.prototype,"accept",void 0),e([gt({type:Number})],Bu.prototype,"max",void 0),e([gt({type:Array})],Bu.prototype,"attachments",void 0),e([gt({type:Boolean,attribute:!1})],Bu.prototype,"uploading",void 0);let Fu="dev";try{Fu="0.158.0"}catch(t){}const qu=Fu,Uu=[{type:"has_any_word",name:"has any of the words",operands:1},{type:"has_all_words",name:"has all of the words",operands:1},{type:"has_phrase",name:"has the phrase",operands:1},{type:"has_only_phrase",name:"has only the phrase",operands:1},{type:"has_beginning",name:"starts with",operands:1},{type:"has_text",name:"has some text",operands:0,categoryName:"Has Text"},{type:"has_number",name:"has a number",operands:0,categoryName:"Has Number"},{type:"has_number_between",name:"has a number between",operands:2},{type:"has_number_lt",name:"has a number below",operands:1},{type:"has_number_lte",name:"has a number at or below",operands:1},{type:"has_number_eq",name:"has a number equal to",operands:1},{type:"has_number_gte",name:"has a number at or above",operands:1},{type:"has_number_gt",name:"has a number above",operands:1},{type:"has_date",name:"has a date",operands:0,categoryName:"Has Date"},{type:"has_date_lt",name:"has a date before",operands:1},{type:"has_date_eq",name:"has a date equal to",operands:1},{type:"has_date_gt",name:"has a date after",operands:1},{type:"has_time",name:"has a time",operands:0,categoryName:"Has Time"},{type:"has_phone",name:"has a phone number",operands:0,categoryName:"Has Phone"},{type:"has_email",name:"has an email",operands:0,categoryName:"Has Email"},{type:"has_state",name:"has state",operands:0,categoryName:"Has State",filter:"locations"},{type:"has_district",name:"has district",operands:1,categoryName:"Has District",filter:"locations"},{type:"has_ward",name:"has ward",operands:2,categoryName:"Has Ward",filter:"locations"},{type:"has_group",name:"is in the group",operands:1,visibility:"hidden"},{type:"has_category",name:"has the category",operands:0,visibility:"hidden"},{type:"has_error",name:"has an error",operands:0,categoryName:"Has Error",visibility:"hidden"},{type:"has_value",name:"is not empty",operands:0,categoryName:"Not Empty",visibility:"hidden"},{type:"has_pattern",name:"matches regex",operands:1}],ju=t=>Uu.filter(e=>"hidden"!==e.visibility&&(!e.filter||!!t&&t.includes(e.filter))),Hu=new Set(["has_beginning","has_number","has_number_between","has_number_lt","has_number_lte","has_number_eq","has_number_gte","has_number_gt","has_pattern"]),Wu=t=>Uu.find(e=>e.type===t),Vu=t=>t.map(t=>({value:t.type,name:t.name})),Zu={type:"text",required:!1,maxLength:64,placeholder:"(optional)",helpText:"The name to use to reference this result in the flow"},Yu={type:"checkbox",label:"Require rules to be localized",helpText:"Each language must specify its own rules for this node"},Ku={type:"checkbox",label:"Require categories to be localized",helpText:t=>{var e;const i=null===(e=t.result_name)||void 0===e?void 0:e.trim();if(i){return`Only enable if you plan to use @results.${i.toLowerCase().replace(/\s+/g,"_")}.category_localized`}return"Only enable if you plan to use category_localized in your expressions for this result"},conditions:{visible:t=>!!t.result_name}},Gu={label:"Save Result",localizable:!1,items:["result_name"],collapsed:t=>!(t._isNew&&t.result_name),getValueCount:t=>!!t.result_name},Xu={type:"accordion",multi:!0,sections:[Gu,{label:"Localization",localizable:!1,items:["localizeRules","localizeCategories"],collapsed:!0,getValueCount:t=>!(!t.localizeRules&&!t.localizeCategories)}]},Qu={type:"accordion",multi:!0,sections:[Gu]},Ju={type:"accordion",multi:!0,sections:[Gu,{label:"Localization",localizable:!1,items:["localizeCategories"],collapsed:!0,getValueCount:t=>!!t.localizeCategories}]};function tp(t,e){var i,o;const n=(null===(i=t.router)||void 0===i?void 0:i.categories)||[],s={};n.forEach(t=>{const i=t.uuid,o=e[i];s[i]={originalName:t.name,localizedName:o&&o.name?Array.isArray(o.name)?o.name[0]||"":o.name:""}});const r=(null===(o=t.router)||void 0===o?void 0:o.cases)||[],a={};return r.forEach(t=>{var i,o;if(!(null===(i=t.arguments)||void 0===i?void 0:i.length)||!t.arguments.some(t=>t))return;const n=e[t.uuid],s=(null===(o=Wu(t.type))||void 0===o?void 0:o.name)||t.type;a[t.uuid]={operatorName:s,originalArguments:[...t.arguments],localizedArguments:(null==n?void 0:n.arguments)?[...n.arguments]:t.arguments.map(()=>"")}}),{categories:s,rules:a}}function ep(t,e){const i={};return t.categories&&Object.keys(t.categories).forEach(e=>{var o,n;const s=t.categories[e],r=(null===(o=s.localizedName)||void 0===o?void 0:o.trim())||"",a=(null===(n=s.originalName)||void 0===n?void 0:n.trim())||"";r&&r!==a&&(i[e]={name:[r]})}),t.rules&&Object.keys(t.rules).forEach(e=>{const o=t.rules[e],n=o.localizedArguments||[],s=o.originalArguments||[],r=n.some((t,e)=>(null==t?void 0:t.trim())&&t.trim()!==(s[e]||""));r&&(i[e]={arguments:n.map(t=>(null==t?void 0:t.trim())||"")})}),i}function ip(t,e,i,o=[]){const n=[],s=[],r=[];return t.forEach(t=>{const a=re(e,t.name),l=a?i.find(t=>t.uuid===a.exit_uuid):null,d=(null==l?void 0:l.uuid)||Gt(),c=(null==a?void 0:a.uuid)||Gt();if(n.push({uuid:c,name:t.name,exit_uuid:d}),s.push({uuid:d,destination_uuid:(null==l?void 0:l.destination_uuid)||null}),t.case){const e=t.case.arguments[0],i=o.find(t=>{var i;return(null===(i=t.arguments)||void 0===i?void 0:i[0])===e});r.push({uuid:(null==i?void 0:i.uuid)||Gt(),type:t.case.type,arguments:t.case.arguments,category_uuid:c})}}),{categories:n,exits:s,cases:r}}function op(t,e,i,o,n){const s=n.some(t=>se(t,"Other"))?null:re(i,"Other"),r=s?o.find(t=>t.uuid===s.exit_uuid):null,a=(null==r?void 0:r.uuid)||Gt(),l=(null==s?void 0:s.uuid)||Gt();return t.push({uuid:l,name:"Other",exit_uuid:a}),e.push({uuid:a,destination_uuid:(null==r?void 0:r.destination_uuid)||null}),l}function np(t){return e=>{const i={};return t(e,i),{valid:0===Object.keys(i).length,errors:i}}}function sp(t){return t.toLocalizationFormData?t.toLocalizationFormData:"categories"===t.localizable?tp:Array.isArray(t.localizable)?(e=t.localizable,(t,i)=>{const o={uuid:t.uuid};return e.forEach(t=>{const e=i[t];o[t]=Array.isArray(e)&&e[0]||""}),o}):void 0;var e}function rp(t){return t.fromLocalizationFormData?t.fromLocalizationFormData:"categories"===t.localizable?ep:Array.isArray(t.localizable)?(e=t.localizable,(t,i)=>{const o={};return e.forEach(e=>{const n=t[e];n&&""!==n.trim()&&n!==i[e]&&(o[e]=[n])}),o}):void 0;var e}const ap="undefined"!=typeof navigator&&/Mac|iPod|iPhone|iPad/.test(navigator.platform);function lp(t){return 0!==t.button||!(!ap||!t.ctrlKey)}function dp(t){if(t.dependency){const e=t.dependency.name||t.dependency.key;return`Cannot find a ${t.dependency.type} for ${e}`}return t.description}function cp(t){const e=20*Math.round(t/20);return Math.max(e,0)}const hp="font-family:SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace;font-size:0.95em",up={[nc.ExpressionPrefix]:`color:${Cc.expression};font-weight:600;${hp}`,[nc.Identifier]:`color:${Cc.expression};${hp}`,[nc.FunctionName]:`color:${Cc.fn};font-weight:900;${hp}`,[nc.StringLiteral]:`color:${Cc.string};${hp}`,[nc.NumberLiteral]:`color:${Cc.number};${hp}`,[nc.Keyword]:`color:${Cc.keyword};${hp}`,[nc.Operator]:`color:${Cc.operator};${hp}`,[nc.ContextRef]:`color:${Cc.expression};${hp}`,[nc.Separator]:`color:${Cc.operator};${hp}`,[nc.Arrow]:`color:${Cc.operator};${hp}`,[nc.Bracket]:`color:${Cc.operator};${hp}`,[nc.Paren]:`color:${Cc.paren};${hp}`,[nc.Whitespace]:hp},pp=[[/claude|anthropic/i,"anthropic"],[/gpt|openai|o1|o3|o4/i,"openai"],[/gemini|google/i,"gemini"],[/azure|microsoft/i,"azure"],[/deepseek/i,"deepseek"]],mp=(t,e=!1)=>{const i=cc(t||"",e?Gd:Kd),o=[];for(const t of i){const e=!!up[t.type],i=o[o.length-1];i&&i.isExpr===e?i.tokens.push(t):o.push({isExpr:e,tokens:[t]})}const n=t=>{const e=up[t.type];if(!e){const e=t.text.split("\n");return V`${e.map((t,e)=>V`${e>0?V`<br />`:null}${t}`)}`}const i=t.text.split("\n");return V`${i.map((t,i)=>V`${i>0?V`<br />`:null}${t?V`<span style="${e}">${t}</span>`:null}`)}`};return V`${o.map(t=>{const e=V`${t.tokens.map(n)}`;return t.isExpr?V`<span style="hyphens:none">${e}</span>`:e})}`},gp=(t,e,i=3)=>V`<div
|
|
9358
9287
|
style="display: -webkit-box; -webkit-line-clamp: ${i}; -webkit-box-orient: vertical; overflow: hidden; word-wrap: break-word; overflow-wrap: break-word; hyphens: auto;"
|
|
9359
9288
|
title="${e}"
|
|
9360
9289
|
>
|
|
@@ -9370,6 +9299,7 @@ background: #ccc;
|
|
|
9370
9299
|
>`)}return o},yp=t=>{const e=[],i=4===t.length?4:Math.min(3,t.length);for(let o=0;o<i;o++){const i=t[o];i.uuid&&i.eventType?e.push(xp({uuid:i.uuid,name:i.name},i.eventType,i.icon)):e.push(vp(i.name,i.icon,i.content))}if(t.length>3&&4!==t.length){const i=t.length-3;e.push(V`<temba-label type="neutral" style=${fp}
|
|
9371
9300
|
>+${i} more</temba-label
|
|
9372
9301
|
>`)}return e},xp=(t,e,i)=>{const o=Ic(i);return V`<temba-label
|
|
9302
|
+
class="linked-pill"
|
|
9373
9303
|
icon=${i||""}
|
|
9374
9304
|
type=${o||"neutral"}
|
|
9375
9305
|
clickable
|
|
@@ -9999,13 +9929,18 @@ background: #ccc;
|
|
|
9999
9929
|
background: repeating-linear-gradient(120deg, tomato, tomato 6px, #ff7056 0, #ff7056 18px) !important;
|
|
10000
9930
|
}
|
|
10001
9931
|
|
|
10002
|
-
/* Disable links on actions/nodes with issues
|
|
9932
|
+
/* Disable links on actions/nodes with issues so clicks fall through
|
|
9933
|
+
to open the editor instead of navigating. */
|
|
10003
9934
|
.action-content.has-issues .linked-name div,
|
|
10004
9935
|
.node.has-issues > .router .linked-name div {
|
|
10005
9936
|
text-decoration: none !important;
|
|
10006
9937
|
cursor: default !important;
|
|
10007
9938
|
pointer-events: none;
|
|
10008
9939
|
}
|
|
9940
|
+
.action-content.has-issues .linked-pill,
|
|
9941
|
+
.node.has-issues > .router .linked-pill {
|
|
9942
|
+
pointer-events: none;
|
|
9943
|
+
}
|
|
10009
9944
|
|
|
10010
9945
|
.action.sortable {
|
|
10011
9946
|
display: flex;
|
|
@@ -10359,7 +10294,7 @@ background: #ccc;
|
|
|
10359
10294
|
.touch-device .add-action-button {
|
|
10360
10295
|
opacity: 0.8 !important;
|
|
10361
10296
|
}
|
|
10362
|
-
}`}constructor(){super(),this.exitRemovalTimeouts=new Map,this.connectionTimeout=null,this.exitRemovingState=new Set,this.actionRemovalTimeouts=new Map,this.actionRemovingState=new Set,this.actionClickStartPos=null,this.pendingActionClick=null,this.nodeClickStartPos=null,this.pendingNodeClick=null,this.draggedActionHeight=0,this.resizeObserver=null,this.externalDragInfo=null,this.showLastActionPlaceholder=!1,this.lastActionPlaceholderHeight=60,this.handleActionOrderChanged=this.handleActionOrderChanged.bind(this),this.handleActionDragStart=this.handleActionDragStart.bind(this),this.handleActionDragExternal=this.handleActionDragExternal.bind(this),this.handleActionDragInternal=this.handleActionDragInternal.bind(this),this.handleActionDragStop=this.handleActionDragStop.bind(this),this.handleExternalActionDragOver=this.handleExternalActionDragOver.bind(this),this.handleExternalActionDrop=this.handleExternalActionDrop.bind(this),this.handleExternalActionDragLeave=this.handleExternalActionDragLeave.bind(this),this.handleActionShowGhost=this.handleActionShowGhost.bind(this),this.handleActionHideGhost=this.handleActionHideGhost.bind(this),this.handleActionShowOriginal=this.handleActionShowOriginal.bind(this),this.handleActionHideOriginal=this.handleActionHideOriginal.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("action-drag-over",this.handleExternalActionDragOver),this.addEventListener("action-drop",this.handleExternalActionDrop),this.addEventListener("action-drag-leave",this.handleExternalActionDragLeave),this.addEventListener("action-show-ghost",this.handleActionShowGhost),this.addEventListener("action-hide-ghost",this.handleActionHideGhost),this.addEventListener("action-show-original",this.handleActionShowOriginal),this.addEventListener("action-hide-original",this.handleActionHideOriginal),this.resizeObserver=new ResizeObserver(()=>{this.plumber&&this.node&&this.plumber.revalidate([this.node.uuid])}),this.resizeObserver.observe(this)}updated(t){var e;if(super.updated(t),t.get("ui")&&t.has("ui"))for(let t=25;t<=350;t+=25)setTimeout(()=>{this.plumber.revalidate([this.node.uuid])},t);if(t.has("node")){if(this.plumber){this.connectionTimeout&&clearTimeout(this.connectionTimeout);const t=this.node.exits.map(t=>t.uuid);this.plumber.removeNodeConnections(this.node.uuid,t),this.connectionTimeout=window.setTimeout(()=>{var t;if("terminal"!==(null===(t=this.ui)||void 0===t?void 0:t.type))for(const t of this.node.exits)this.plumber.makeSource(t.uuid),t.destination_uuid&&this.plumber.connectIds(this.node.uuid,t.uuid,t.destination_uuid);this.connectionTimeout=null,this.plumber.revalidate([this.node.uuid])},0)}const t=this.parentElement;if(t&&this.ui){const i=t.getBoundingClientRect();null===(e=Fd())||void 0===e||e.getState().expandCanvas(this.ui.position.left+i.width,this.ui.position.top+i.height)}}}disconnectedCallback(){this.plumber&&this.node&&(this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=null),this.plumber.forgetNode(this.node.uuid)),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),super.disconnectedCallback(),this.removeEventListener("action-drag-over",this.handleExternalActionDragOver),this.removeEventListener("action-drop",this.handleExternalActionDrop),this.removeEventListener("action-drag-leave",this.handleExternalActionDragLeave),this.removeEventListener("action-show-ghost",this.handleActionShowGhost),this.removeEventListener("action-hide-ghost",this.handleActionHideGhost),this.removeEventListener("action-show-original",this.handleActionShowOriginal),this.removeEventListener("action-hide-original",this.handleActionHideOriginal),this.exitRemovalTimeouts.forEach(t=>{clearTimeout(t)}),this.exitRemovalTimeouts.clear(),this.actionRemovalTimeouts.forEach(t=>{clearTimeout(t)}),this.actionRemovalTimeouts.clear(),this.exitRemovingState.clear(),this.actionRemovingState.clear(),this.plumber&&this.plumber.removeNodeConnections(this.node.uuid,this.node.exits.map(t=>t.uuid))}handleExitClick(t,e){t.preventDefault(),t.stopPropagation();const i=e.uuid;if(!e.destination_uuid)return;if(this.exitRemovingState.has(i))return void this.disconnectExit(e);this.exitRemovingState.add(i),this.requestUpdate(),this.plumber.setConnectionRemovingState(i,!0),this.exitRemovalTimeouts.has(i)&&clearTimeout(this.exitRemovalTimeouts.get(i));const o=window.setTimeout(()=>{this.exitRemovingState.delete(i),this.exitRemovalTimeouts.delete(i),this.plumber.setConnectionRemovingState(i,!1),this.requestUpdate()},1500);this.exitRemovalTimeouts.set(i,o)}disconnectExit(t){var e;const i=t.uuid;this.exitRemovingState.delete(i),this.plumber.setConnectionRemovingState(i,!1),this.exitRemovalTimeouts.has(i)&&(clearTimeout(this.exitRemovalTimeouts.get(i)),this.exitRemovalTimeouts.delete(i)),this.plumber.removeExitConnection(i);const o={...t,destination_uuid:null},n=this.node.exits.map(t=>t.uuid===i?o:t),s={...this.node,exits:n};null===(e=Fd())||void 0===e||e.getState().updateNode(this.node.uuid,s),this.requestUpdate()}handleActionRemoveClick(t,e,i){t.preventDefault(),t.stopPropagation();const o=e.uuid;if(this.actionRemovingState.has(o))return void this.removeAction(e,i);this.actionRemovingState.add(o),this.requestUpdate(),this.actionRemovalTimeouts.has(o)&&clearTimeout(this.actionRemovalTimeouts.get(o));const n=window.setTimeout(()=>{this.actionRemovingState.delete(o),this.actionRemovalTimeouts.delete(o),this.requestUpdate()},1e3);this.actionRemovalTimeouts.set(o,n)}removeAction(t,e){var i;const o=t.uuid;this.actionRemovingState.delete(o),this.actionRemovalTimeouts.has(o)&&(clearTimeout(this.actionRemovalTimeouts.get(o)),this.actionRemovalTimeouts.delete(o));const n=this.node.actions.filter(t=>t.uuid!==o);if(0===n.length)this.fireCustomEvent(Uo.NodeDeleted,{uuid:this.node.uuid});else{const t={...this.node,actions:n};null===(i=Fd())||void 0===i||i.getState().updateNode(this.node.uuid,t),this.requestUpdate()}}handleNodeRemoveClick(t){t.preventDefault(),t.stopPropagation();const e=this.node.uuid;if(this.actionRemovingState.has(e))return void this.removeNode();this.actionRemovingState.add(e),this.requestUpdate(),this.actionRemovalTimeouts.has(e)&&clearTimeout(this.actionRemovalTimeouts.get(e));const i=window.setTimeout(()=>{this.actionRemovingState.delete(e),this.actionRemovalTimeouts.delete(e),this.requestUpdate()},1e3);this.actionRemovalTimeouts.set(e,i)}removeNode(){const t=this.node.uuid;this.actionRemovingState.delete(t),this.actionRemovalTimeouts.has(t)&&(clearTimeout(this.actionRemovalTimeouts.get(t)),this.actionRemovalTimeouts.delete(t)),this.fireCustomEvent(Uo.NodeDeleted,{uuid:this.node.uuid})}handleActionOrderChanged(t){var e;const[i,o]=t.detail.swap;if(this.externalDragInfo)return;const n=[...this.node.actions],s=n.splice(i,1)[0];n.splice(o,0,s),this.node={...this.node,actions:n},null===(e=Fd())||void 0===e||e.getState().updateNode(this.node.uuid,{...this.node,actions:n})}handleActionDragStart(t){const e=t.detail.id,i=this.querySelector(`#${e}`);this.draggedActionHeight=i?i.offsetHeight:60,1===this.node.actions.length&&(this.showLastActionPlaceholder=!0,this.lastActionPlaceholderHeight=this.draggedActionHeight,this.requestUpdate())}handleActionDragExternal(t){t.stopPropagation();const e=t.detail.id.split("-");if(e.length<2||isNaN(parseInt(e[1],10)))return;const i=parseInt(e[1],10),o=this.node.actions[i],n=1===this.node.actions.length;this.fireCustomEvent(Uo.DragExternal,{action:o,nodeUuid:this.node.uuid,actionIndex:i,mouseX:t.detail.mouseX,mouseY:t.detail.mouseY,actionHeight:this.draggedActionHeight,isLastAction:n})}handleActionDragInternal(t){t.stopPropagation(),this.fireCustomEvent(Uo.DragInternal,{})}handleActionDragStop(t){const e=t.detail.isExternal;if(this.showLastActionPlaceholder=!1,e){t.stopPropagation();const e=t.detail.id.split("-");if(e.length<2||isNaN(Number(e[1])))return;const i=parseInt(e[1],10),o=this.node.actions[i],n=1===this.node.actions.length;this.fireCustomEvent(Uo.DragStop,{action:o,nodeUuid:this.node.uuid,actionIndex:i,isExternal:!0,isLastAction:n,mouseX:t.detail.mouseX,mouseY:t.detail.mouseY})}this.requestUpdate()}getTopCenter(t){const e=t.getBoundingClientRect();return{x:e.left+e.width/2,y:e.top}}isActiveLink(t,e){var i,o,n;return!!t.closest(".linked-name")&&(e?!(null===(i=this.issuesByAction)||void 0===i?void 0:i.has(e.uuid)):!((null===(o=this.issuesByNode)||void 0===o?void 0:o.has(this.node.uuid))||(null===(n=this.node.actions)||void 0===n?void 0:n.some(t=>{var e;return null===(e=this.issuesByAction)||void 0===e?void 0:e.has(t.uuid)}))))}handleActionMouseDown(t,e){if(lp(t))return;const i=t.target;i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid)||(this.actionClickStartPos={x:t.clientX,y:t.clientY},this.pendingActionClick={action:e,event:t})}handleActionMouseUp(t,e){if(!this.pendingActionClick||this.pendingActionClick.action.uuid!==e.uuid)return this.actionClickStartPos=null,void(this.pendingActionClick=null);const i=t.target;if(i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid))return this.actionClickStartPos=null,void(this.pendingActionClick=null);if(this.actionClickStartPos){const i=t.clientX-this.actionClickStartPos.x,o=t.clientY-this.actionClickStartPos.y,n=Math.sqrt(i*i+o*o),s=this.closest("temba-flow-editor"),r=null==s?void 0:s.dragging;if(n<=5&&(!s||!r)){const i=t.currentTarget,o=i?this.getTopCenter(i):{x:t.clientX,y:t.clientY};this.fireCustomEvent(Uo.ActionEditRequested,{action:e,nodeUuid:this.node.uuid,originX:o.x,originY:o.y})}}this.actionClickStartPos=null,this.pendingActionClick=null}handleActionTouchStart(t,e){const i=t.target;if(i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid))return;const o=t.touches[0];o&&(this.actionClickStartPos={x:o.clientX,y:o.clientY},this.pendingActionClick={action:e,event:t})}handleActionTouchEnd(t,e){if(!this.pendingActionClick||this.pendingActionClick.action.uuid!==e.uuid)return this.actionClickStartPos=null,void(this.pendingActionClick=null);const i=t.target;if(i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid))return this.actionClickStartPos=null,void(this.pendingActionClick=null);const o=t.changedTouches[0];if(this.actionClickStartPos&&o){const i=o.clientX-this.actionClickStartPos.x,n=o.clientY-this.actionClickStartPos.y,s=Math.sqrt(i*i+n*n),r=this.closest("temba-flow-editor"),a=null==r?void 0:r.dragging;if(s<=5&&(!r||!a)){const i=t.currentTarget,n=i?this.getTopCenter(i):{x:o.clientX,y:o.clientY};this.fireCustomEvent(Uo.ActionEditRequested,{action:e,nodeUuid:this.node.uuid,originX:n.x,originY:n.y})}}this.actionClickStartPos=null,this.pendingActionClick=null}handleActionClick(t,e){t.preventDefault(),t.stopPropagation();t.target.closest(".remove-button")||this.actionRemovingState.has(e.uuid)||this.fireCustomEvent(Uo.ActionEditRequested,{action:e,nodeUuid:this.node.uuid})}handleNodeEditClick(t){t.preventDefault(),t.stopPropagation();t.target.closest(".remove-button")||this.actionRemovingState.has(this.node.uuid)||this.node.router&&(this.node.actions&&1===this.node.actions.length?this.fireCustomEvent(Uo.ActionEditRequested,{action:this.node.actions[0],nodeUuid:this.node.uuid}):this.fireCustomEvent(Uo.NodeEditRequested,{node:this.node,nodeUI:this.ui}))}handleNodeMouseDown(t){if(lp(t))return;const e=t.target;e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid)||(this.nodeClickStartPos={x:t.clientX,y:t.clientY},this.pendingNodeClick={event:t})}handleNodeMouseUp(t){if(!this.pendingNodeClick)return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);const e=t.target;if(e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid))return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);if(this.nodeClickStartPos){const e=t.clientX-this.nodeClickStartPos.x,i=t.clientY-this.nodeClickStartPos.y,o=Math.sqrt(e*e+i*i),n=this.closest("temba-flow-editor"),s=null==n?void 0:n.dragging;if(o<=5&&(!n||!s)&&this.node.router){const t=this.getTopCenter(this);this.node.actions&&1===this.node.actions.length?this.fireCustomEvent(Uo.ActionEditRequested,{action:this.node.actions[0],nodeUuid:this.node.uuid,originX:t.x,originY:t.y}):this.fireCustomEvent(Uo.NodeEditRequested,{node:this.node,nodeUI:this.ui,originX:t.x,originY:t.y})}}this.nodeClickStartPos=null,this.pendingNodeClick=null}handleNodeTouchStart(t){const e=t.target;if(e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid))return;const i=t.touches[0];i&&(this.nodeClickStartPos={x:i.clientX,y:i.clientY},this.pendingNodeClick={event:t})}handleNodeTouchEnd(t){if(!this.pendingNodeClick)return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);const e=t.target;if(e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid))return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);const i=t.changedTouches[0];if(this.nodeClickStartPos&&i){const t=i.clientX-this.nodeClickStartPos.x,e=i.clientY-this.nodeClickStartPos.y,o=Math.sqrt(t*t+e*e),n=this.closest("temba-flow-editor"),s=null==n?void 0:n.dragging;if(o<=5&&(!n||!s)&&this.node.router){const t=this.getTopCenter(this);this.node.actions&&1===this.node.actions.length?this.fireCustomEvent(Uo.ActionEditRequested,{action:this.node.actions[0],nodeUuid:this.node.uuid,originX:t.x,originY:t.y}):this.fireCustomEvent(Uo.NodeEditRequested,{node:this.node,nodeUI:this.ui,originX:t.x,originY:t.y})}}this.nodeClickStartPos=null,this.pendingNodeClick=null}handleAddActionClick(t){t.preventDefault(),t.stopPropagation(),this.fireCustomEvent(Uo.AddActionRequested,{nodeUuid:this.node.uuid})}calculateDropIndex(t){var e,i;const o=this.querySelector("temba-sortable-list");if(!o||!this.node.actions)return null!==(i=null===(e=this.node.actions)||void 0===e?void 0:e.length)&&void 0!==i?i:0;const n=Array.from(o.querySelectorAll(".action.sortable:not(.drop-placeholder)"));if(0===n.length)return 0;for(let e=0;e<n.length;e++){const i=n[e].getBoundingClientRect();if(t<i.top+i.height/2)return e}return n.length}handleExternalActionDragOver(t){if("execute_actions"!==this.ui.type)return;const{action:e,sourceNodeUuid:i,actionIndex:o,mouseY:n,actionHeight:s}=t.detail;if(i===this.node.uuid)return;const r=this.calculateDropIndex(n);this.externalDragInfo={action:e,sourceNodeUuid:i,actionIndex:o,dropIndex:r,actionHeight:s||60},this.requestUpdate()}handleExternalActionDragLeave(t){this.externalDragInfo=null,this.requestUpdate()}handleActionShowGhost(t){if(this.querySelector("temba-sortable-list")){const t=document.querySelector(".ghost");t&&(t.style.display="block")}}handleActionHideGhost(t){if(this.querySelector("temba-sortable-list")){const t=document.querySelector(".ghost");t&&(t.style.display="none")}}handleActionShowOriginal(t){const e=this.querySelector("temba-sortable-list");null==e||e.setOriginalVisible(!0),this.showLastActionPlaceholder=!1,this.requestUpdate()}handleActionHideOriginal(t){const e=this.querySelector("temba-sortable-list");null==e||e.setOriginalVisible(!1),1===this.node.actions.length&&(this.showLastActionPlaceholder=!0),this.requestUpdate()}handleExternalActionDrop(t){var e,i,o,n,s,r,a;if("execute_actions"!==this.ui.type)return;const{action:l,sourceNodeUuid:d,actionIndex:c,isCopy:h}=t.detail;if(d===this.node.uuid)return;const u=null!==(n=null!==(i=null===(e=this.externalDragInfo)||void 0===e?void 0:e.dropIndex)&&void 0!==i?i:null===(o=this.node.actions)||void 0===o?void 0:o.length)&&void 0!==n?n:0;this.externalDragInfo=null;const p=Fd();if(!p)return;const m=p.getState().flowDefinition;if(!m)return;const g=m.nodes.find(t=>t.uuid===d);if(!g)return;const f=h?{...l,uuid:Gt()}:l,v=[...this.node.actions];v.splice(u,0,f);const b={...this.node,actions:v};if(null===(s=Fd())||void 0===s||s.getState().updateNode(this.node.uuid,b),h){const t=m.localization;if(t)for(const e of Object.keys(t)){const i=null===(r=t[e])||void 0===r?void 0:r[l.uuid];i&&p.getState().updateLocalization(e,f.uuid,JSON.parse(JSON.stringify(i)))}}if(!h){const t=g.actions.filter((t,e)=>e!==c);if(0===t.length)this.fireCustomEvent(Uo.NodeDeleted,{uuid:d});else{const e={...g,actions:t};null===(a=Fd())||void 0===a||a.getState().updateNode(d,e)}}this.requestUpdate(),this.fireCustomEvent(Uo.SizeChanged,{uuid:this.node.uuid})}renderTitle(t,e,i,o=!1){var n,s,r,a,l;const d=t.group?null===(n=Rp[t.group])||void 0===n?void 0:n.color:"#aaaaaa",c="terminal"===(null===(s=this.ui)||void 0===s?void 0:s.type);return V`<div class="cn-title" style="background:${d}">
|
|
10297
|
+
}`}constructor(){super(),this.exitRemovalTimeouts=new Map,this.connectionTimeout=null,this.exitRemovingState=new Set,this.actionRemovalTimeouts=new Map,this.actionRemovingState=new Set,this.actionClickStartPos=null,this.pendingActionClick=null,this.nodeClickStartPos=null,this.pendingNodeClick=null,this.draggedActionHeight=0,this.resizeObserver=null,this.externalDragInfo=null,this.showLastActionPlaceholder=!1,this.lastActionPlaceholderHeight=60,this.handleActionOrderChanged=this.handleActionOrderChanged.bind(this),this.handleActionDragStart=this.handleActionDragStart.bind(this),this.handleActionDragExternal=this.handleActionDragExternal.bind(this),this.handleActionDragInternal=this.handleActionDragInternal.bind(this),this.handleActionDragStop=this.handleActionDragStop.bind(this),this.handleExternalActionDragOver=this.handleExternalActionDragOver.bind(this),this.handleExternalActionDrop=this.handleExternalActionDrop.bind(this),this.handleExternalActionDragLeave=this.handleExternalActionDragLeave.bind(this),this.handleActionShowGhost=this.handleActionShowGhost.bind(this),this.handleActionHideGhost=this.handleActionHideGhost.bind(this),this.handleActionShowOriginal=this.handleActionShowOriginal.bind(this),this.handleActionHideOriginal=this.handleActionHideOriginal.bind(this)}connectedCallback(){super.connectedCallback(),this.addEventListener("action-drag-over",this.handleExternalActionDragOver),this.addEventListener("action-drop",this.handleExternalActionDrop),this.addEventListener("action-drag-leave",this.handleExternalActionDragLeave),this.addEventListener("action-show-ghost",this.handleActionShowGhost),this.addEventListener("action-hide-ghost",this.handleActionHideGhost),this.addEventListener("action-show-original",this.handleActionShowOriginal),this.addEventListener("action-hide-original",this.handleActionHideOriginal),this.resizeObserver=new ResizeObserver(()=>{this.plumber&&this.node&&this.plumber.revalidate([this.node.uuid])}),this.resizeObserver.observe(this)}updated(t){var e;if(super.updated(t),t.get("ui")&&t.has("ui"))for(let t=25;t<=350;t+=25)setTimeout(()=>{this.plumber.revalidate([this.node.uuid])},t);if(t.has("node")){if(this.plumber){this.connectionTimeout&&clearTimeout(this.connectionTimeout);const t=this.node.exits.map(t=>t.uuid);this.plumber.removeNodeConnections(this.node.uuid,t),this.connectionTimeout=window.setTimeout(()=>{var t;if("terminal"!==(null===(t=this.ui)||void 0===t?void 0:t.type))for(const t of this.node.exits)this.plumber.makeSource(t.uuid),t.destination_uuid&&this.plumber.connectIds(this.node.uuid,t.uuid,t.destination_uuid);this.connectionTimeout=null,this.plumber.revalidate([this.node.uuid])},0)}const t=this.parentElement;if(t&&this.ui){const i=t.getBoundingClientRect();null===(e=Fd())||void 0===e||e.getState().expandCanvas(this.ui.position.left+i.width,this.ui.position.top+i.height)}}}disconnectedCallback(){this.plumber&&this.node&&(this.connectionTimeout&&(clearTimeout(this.connectionTimeout),this.connectionTimeout=null),this.plumber.forgetNode(this.node.uuid)),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null),super.disconnectedCallback(),this.removeEventListener("action-drag-over",this.handleExternalActionDragOver),this.removeEventListener("action-drop",this.handleExternalActionDrop),this.removeEventListener("action-drag-leave",this.handleExternalActionDragLeave),this.removeEventListener("action-show-ghost",this.handleActionShowGhost),this.removeEventListener("action-hide-ghost",this.handleActionHideGhost),this.removeEventListener("action-show-original",this.handleActionShowOriginal),this.removeEventListener("action-hide-original",this.handleActionHideOriginal),this.exitRemovalTimeouts.forEach(t=>{clearTimeout(t)}),this.exitRemovalTimeouts.clear(),this.actionRemovalTimeouts.forEach(t=>{clearTimeout(t)}),this.actionRemovalTimeouts.clear(),this.exitRemovingState.clear(),this.actionRemovingState.clear(),this.plumber&&this.plumber.removeNodeConnections(this.node.uuid,this.node.exits.map(t=>t.uuid))}handleExitClick(t,e){t.preventDefault(),t.stopPropagation();const i=e.uuid;if(!e.destination_uuid)return;if(this.exitRemovingState.has(i))return void this.disconnectExit(e);this.exitRemovingState.add(i),this.requestUpdate(),this.plumber.setConnectionRemovingState(i,!0),this.exitRemovalTimeouts.has(i)&&clearTimeout(this.exitRemovalTimeouts.get(i));const o=window.setTimeout(()=>{this.exitRemovingState.delete(i),this.exitRemovalTimeouts.delete(i),this.plumber.setConnectionRemovingState(i,!1),this.requestUpdate()},1500);this.exitRemovalTimeouts.set(i,o)}disconnectExit(t){var e;const i=t.uuid;this.exitRemovingState.delete(i),this.plumber.setConnectionRemovingState(i,!1),this.exitRemovalTimeouts.has(i)&&(clearTimeout(this.exitRemovalTimeouts.get(i)),this.exitRemovalTimeouts.delete(i)),this.plumber.removeExitConnection(i);const o={...t,destination_uuid:null},n=this.node.exits.map(t=>t.uuid===i?o:t),s={...this.node,exits:n};null===(e=Fd())||void 0===e||e.getState().updateNode(this.node.uuid,s),this.requestUpdate()}handleActionRemoveClick(t,e,i){t.preventDefault(),t.stopPropagation();const o=e.uuid;if(this.actionRemovingState.has(o))return void this.removeAction(e,i);this.actionRemovingState.add(o),this.requestUpdate(),this.actionRemovalTimeouts.has(o)&&clearTimeout(this.actionRemovalTimeouts.get(o));const n=window.setTimeout(()=>{this.actionRemovingState.delete(o),this.actionRemovalTimeouts.delete(o),this.requestUpdate()},1e3);this.actionRemovalTimeouts.set(o,n)}removeAction(t,e){var i;const o=t.uuid;this.actionRemovingState.delete(o),this.actionRemovalTimeouts.has(o)&&(clearTimeout(this.actionRemovalTimeouts.get(o)),this.actionRemovalTimeouts.delete(o));const n=this.node.actions.filter(t=>t.uuid!==o);if(0===n.length)this.fireCustomEvent(Uo.NodeDeleted,{uuid:this.node.uuid});else{const t={...this.node,actions:n};null===(i=Fd())||void 0===i||i.getState().updateNode(this.node.uuid,t),this.requestUpdate()}}handleNodeRemoveClick(t){t.preventDefault(),t.stopPropagation();const e=this.node.uuid;if(this.actionRemovingState.has(e))return void this.removeNode();this.actionRemovingState.add(e),this.requestUpdate(),this.actionRemovalTimeouts.has(e)&&clearTimeout(this.actionRemovalTimeouts.get(e));const i=window.setTimeout(()=>{this.actionRemovingState.delete(e),this.actionRemovalTimeouts.delete(e),this.requestUpdate()},1e3);this.actionRemovalTimeouts.set(e,i)}removeNode(){const t=this.node.uuid;this.actionRemovingState.delete(t),this.actionRemovalTimeouts.has(t)&&(clearTimeout(this.actionRemovalTimeouts.get(t)),this.actionRemovalTimeouts.delete(t)),this.fireCustomEvent(Uo.NodeDeleted,{uuid:this.node.uuid})}handleActionOrderChanged(t){var e;const[i,o]=t.detail.swap;if(this.externalDragInfo)return;const n=[...this.node.actions],s=n.splice(i,1)[0];n.splice(o,0,s),this.node={...this.node,actions:n},null===(e=Fd())||void 0===e||e.getState().updateNode(this.node.uuid,{...this.node,actions:n})}handleActionDragStart(t){const e=t.detail.id,i=this.querySelector(`#${e}`);this.draggedActionHeight=i?i.offsetHeight:60,1===this.node.actions.length&&(this.showLastActionPlaceholder=!0,this.lastActionPlaceholderHeight=this.draggedActionHeight,this.requestUpdate())}handleActionDragExternal(t){t.stopPropagation();const e=t.detail.id.split("-");if(e.length<2||isNaN(parseInt(e[1],10)))return;const i=parseInt(e[1],10),o=this.node.actions[i],n=1===this.node.actions.length;this.fireCustomEvent(Uo.DragExternal,{action:o,nodeUuid:this.node.uuid,actionIndex:i,mouseX:t.detail.mouseX,mouseY:t.detail.mouseY,actionHeight:this.draggedActionHeight,isLastAction:n})}handleActionDragInternal(t){t.stopPropagation(),this.fireCustomEvent(Uo.DragInternal,{})}handleActionDragStop(t){const e=t.detail.isExternal;if(this.showLastActionPlaceholder=!1,e){t.stopPropagation();const e=t.detail.id.split("-");if(e.length<2||isNaN(Number(e[1])))return;const i=parseInt(e[1],10),o=this.node.actions[i],n=1===this.node.actions.length;this.fireCustomEvent(Uo.DragStop,{action:o,nodeUuid:this.node.uuid,actionIndex:i,isExternal:!0,isLastAction:n,mouseX:t.detail.mouseX,mouseY:t.detail.mouseY})}this.requestUpdate()}getTopCenter(t){const e=t.getBoundingClientRect();return{x:e.left+e.width/2,y:e.top}}isActiveLink(t,e){var i,o,n;return!(!t.closest(".linked-name")&&!t.closest(".linked-pill"))&&(e?!(null===(i=this.issuesByAction)||void 0===i?void 0:i.has(e.uuid)):!((null===(o=this.issuesByNode)||void 0===o?void 0:o.has(this.node.uuid))||(null===(n=this.node.actions)||void 0===n?void 0:n.some(t=>{var e;return null===(e=this.issuesByAction)||void 0===e?void 0:e.has(t.uuid)}))))}handleActionMouseDown(t,e){if(lp(t))return;const i=t.target;i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid)||(this.actionClickStartPos={x:t.clientX,y:t.clientY},this.pendingActionClick={action:e,event:t})}handleActionMouseUp(t,e){if(!this.pendingActionClick||this.pendingActionClick.action.uuid!==e.uuid)return this.actionClickStartPos=null,void(this.pendingActionClick=null);const i=t.target;if(i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid))return this.actionClickStartPos=null,void(this.pendingActionClick=null);if(this.actionClickStartPos){const i=t.clientX-this.actionClickStartPos.x,o=t.clientY-this.actionClickStartPos.y,n=Math.sqrt(i*i+o*o),s=this.closest("temba-flow-editor"),r=null==s?void 0:s.dragging;if(n<=5&&(!s||!r)){const i=t.currentTarget,o=i?this.getTopCenter(i):{x:t.clientX,y:t.clientY};this.fireCustomEvent(Uo.ActionEditRequested,{action:e,nodeUuid:this.node.uuid,originX:o.x,originY:o.y})}}this.actionClickStartPos=null,this.pendingActionClick=null}handleActionTouchStart(t,e){const i=t.target;if(i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid))return;const o=t.touches[0];o&&(this.actionClickStartPos={x:o.clientX,y:o.clientY},this.pendingActionClick={action:e,event:t})}handleActionTouchEnd(t,e){if(!this.pendingActionClick||this.pendingActionClick.action.uuid!==e.uuid)return this.actionClickStartPos=null,void(this.pendingActionClick=null);const i=t.target;if(i.closest(".remove-button")||i.closest(".drag-handle")||this.isActiveLink(i,e)||this.actionRemovingState.has(e.uuid))return this.actionClickStartPos=null,void(this.pendingActionClick=null);const o=t.changedTouches[0];if(this.actionClickStartPos&&o){const i=o.clientX-this.actionClickStartPos.x,n=o.clientY-this.actionClickStartPos.y,s=Math.sqrt(i*i+n*n),r=this.closest("temba-flow-editor"),a=null==r?void 0:r.dragging;if(s<=5&&(!r||!a)){const i=t.currentTarget,n=i?this.getTopCenter(i):{x:o.clientX,y:o.clientY};this.fireCustomEvent(Uo.ActionEditRequested,{action:e,nodeUuid:this.node.uuid,originX:n.x,originY:n.y})}}this.actionClickStartPos=null,this.pendingActionClick=null}handleActionClick(t,e){t.preventDefault(),t.stopPropagation();t.target.closest(".remove-button")||this.actionRemovingState.has(e.uuid)||this.fireCustomEvent(Uo.ActionEditRequested,{action:e,nodeUuid:this.node.uuid})}handleNodeEditClick(t){t.preventDefault(),t.stopPropagation();t.target.closest(".remove-button")||this.actionRemovingState.has(this.node.uuid)||this.node.router&&(this.node.actions&&1===this.node.actions.length?this.fireCustomEvent(Uo.ActionEditRequested,{action:this.node.actions[0],nodeUuid:this.node.uuid}):this.fireCustomEvent(Uo.NodeEditRequested,{node:this.node,nodeUI:this.ui}))}handleNodeMouseDown(t){if(lp(t))return;const e=t.target;e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid)||(this.nodeClickStartPos={x:t.clientX,y:t.clientY},this.pendingNodeClick={event:t})}handleNodeMouseUp(t){if(!this.pendingNodeClick)return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);const e=t.target;if(e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid))return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);if(this.nodeClickStartPos){const e=t.clientX-this.nodeClickStartPos.x,i=t.clientY-this.nodeClickStartPos.y,o=Math.sqrt(e*e+i*i),n=this.closest("temba-flow-editor"),s=null==n?void 0:n.dragging;if(o<=5&&(!n||!s)&&this.node.router){const t=this.getTopCenter(this);this.node.actions&&1===this.node.actions.length?this.fireCustomEvent(Uo.ActionEditRequested,{action:this.node.actions[0],nodeUuid:this.node.uuid,originX:t.x,originY:t.y}):this.fireCustomEvent(Uo.NodeEditRequested,{node:this.node,nodeUI:this.ui,originX:t.x,originY:t.y})}}this.nodeClickStartPos=null,this.pendingNodeClick=null}handleNodeTouchStart(t){const e=t.target;if(e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid))return;const i=t.touches[0];i&&(this.nodeClickStartPos={x:i.clientX,y:i.clientY},this.pendingNodeClick={event:t})}handleNodeTouchEnd(t){if(!this.pendingNodeClick)return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);const e=t.target;if(e.closest(".remove-button")||e.closest(".exit")||e.closest(".exit-wrapper")||e.closest(".drag-handle")||this.isActiveLink(e)||this.actionRemovingState.has(this.node.uuid))return this.nodeClickStartPos=null,void(this.pendingNodeClick=null);const i=t.changedTouches[0];if(this.nodeClickStartPos&&i){const t=i.clientX-this.nodeClickStartPos.x,e=i.clientY-this.nodeClickStartPos.y,o=Math.sqrt(t*t+e*e),n=this.closest("temba-flow-editor"),s=null==n?void 0:n.dragging;if(o<=5&&(!n||!s)&&this.node.router){const t=this.getTopCenter(this);this.node.actions&&1===this.node.actions.length?this.fireCustomEvent(Uo.ActionEditRequested,{action:this.node.actions[0],nodeUuid:this.node.uuid,originX:t.x,originY:t.y}):this.fireCustomEvent(Uo.NodeEditRequested,{node:this.node,nodeUI:this.ui,originX:t.x,originY:t.y})}}this.nodeClickStartPos=null,this.pendingNodeClick=null}handleAddActionClick(t){t.preventDefault(),t.stopPropagation(),this.fireCustomEvent(Uo.AddActionRequested,{nodeUuid:this.node.uuid})}calculateDropIndex(t){var e,i;const o=this.querySelector("temba-sortable-list");if(!o||!this.node.actions)return null!==(i=null===(e=this.node.actions)||void 0===e?void 0:e.length)&&void 0!==i?i:0;const n=Array.from(o.querySelectorAll(".action.sortable:not(.drop-placeholder)"));if(0===n.length)return 0;for(let e=0;e<n.length;e++){const i=n[e].getBoundingClientRect();if(t<i.top+i.height/2)return e}return n.length}handleExternalActionDragOver(t){if("execute_actions"!==this.ui.type)return;const{action:e,sourceNodeUuid:i,actionIndex:o,mouseY:n,actionHeight:s}=t.detail;if(i===this.node.uuid)return;const r=this.calculateDropIndex(n);this.externalDragInfo={action:e,sourceNodeUuid:i,actionIndex:o,dropIndex:r,actionHeight:s||60},this.requestUpdate()}handleExternalActionDragLeave(t){this.externalDragInfo=null,this.requestUpdate()}handleActionShowGhost(t){if(this.querySelector("temba-sortable-list")){const t=document.querySelector(".ghost");t&&(t.style.display="block")}}handleActionHideGhost(t){if(this.querySelector("temba-sortable-list")){const t=document.querySelector(".ghost");t&&(t.style.display="none")}}handleActionShowOriginal(t){const e=this.querySelector("temba-sortable-list");null==e||e.setOriginalVisible(!0),this.showLastActionPlaceholder=!1,this.requestUpdate()}handleActionHideOriginal(t){const e=this.querySelector("temba-sortable-list");null==e||e.setOriginalVisible(!1),1===this.node.actions.length&&(this.showLastActionPlaceholder=!0),this.requestUpdate()}handleExternalActionDrop(t){var e,i,o,n,s,r,a;if("execute_actions"!==this.ui.type)return;const{action:l,sourceNodeUuid:d,actionIndex:c,isCopy:h}=t.detail;if(d===this.node.uuid)return;const u=null!==(n=null!==(i=null===(e=this.externalDragInfo)||void 0===e?void 0:e.dropIndex)&&void 0!==i?i:null===(o=this.node.actions)||void 0===o?void 0:o.length)&&void 0!==n?n:0;this.externalDragInfo=null;const p=Fd();if(!p)return;const m=p.getState().flowDefinition;if(!m)return;const g=m.nodes.find(t=>t.uuid===d);if(!g)return;const f=h?{...l,uuid:Gt()}:l,v=[...this.node.actions];v.splice(u,0,f);const b={...this.node,actions:v};if(null===(s=Fd())||void 0===s||s.getState().updateNode(this.node.uuid,b),h){const t=m.localization;if(t)for(const e of Object.keys(t)){const i=null===(r=t[e])||void 0===r?void 0:r[l.uuid];i&&p.getState().updateLocalization(e,f.uuid,JSON.parse(JSON.stringify(i)))}}if(!h){const t=g.actions.filter((t,e)=>e!==c);if(0===t.length)this.fireCustomEvent(Uo.NodeDeleted,{uuid:d});else{const e={...g,actions:t};null===(a=Fd())||void 0===a||a.getState().updateNode(d,e)}}this.requestUpdate(),this.fireCustomEvent(Uo.SizeChanged,{uuid:this.node.uuid})}renderTitle(t,e,i,o=!1){var n,s,r,a,l;const d=t.group?null===(n=Rp[t.group])||void 0===n?void 0:n.color:"#aaaaaa",c="terminal"===(null===(s=this.ui)||void 0===s?void 0:s.type);return V`<div class="cn-title" style="background:${d}">
|
|
10363
10298
|
${c?V`<div class="title-spacer"></div>`:"execute_actions"===(null===(r=this.ui)||void 0===r?void 0:r.type)||(null===(l=null===(a=this.node)||void 0===a?void 0:a.actions)||void 0===l?void 0:l.length)>1?V`<temba-icon
|
|
10364
10299
|
class="drag-handle ${this.isReadOnly()?"read-only-hidden":""}"
|
|
10365
10300
|
name="sort"
|
|
@@ -10497,7 +10432,7 @@ background: #ccc;
|
|
|
10497
10432
|
<temba-icon name="add"></temba-icon>
|
|
10498
10433
|
</div>`}
|
|
10499
10434
|
</div>
|
|
10500
|
-
`}}e([gt({type:Object})],vg.prototype,"plumber",void 0),e([gt({type:Object})],vg.prototype,"node",void 0),e([gt({type:Object})],vg.prototype,"ui",void 0),e([Nd(Rd,t=>t.isTranslating)],vg.prototype,"isTranslating",void 0),e([Nd(Rd,t=>t.languageCode)],vg.prototype,"languageCode",void 0),e([Nd(Rd,t=>t.viewingRevision)],vg.prototype,"viewingRevision",void 0),e([Nd(Rd,t=>t.flowDefinition)],vg.prototype,"flowDefinition",void 0),e([Nd(Rd,t=>t.getCurrentActivity())],vg.prototype,"activity",void 0),e([Nd(Rd,t=>t.issuesByNode)],vg.prototype,"issuesByNode",void 0),e([Nd(Rd,t=>t.issuesByAction)],vg.prototype,"issuesByAction",void 0);class bg{constructor(t){this.editor=t,this.isMouseDown=!1,this.shiftDragCopy=!1,this.currentDragIsCopy=!1,this.dragStartPos={x:0,y:0},this.originalDragItem=null,this.originalSelectedItems=null,this.dragHintTimer=null,this.autoScrollAnimationId=null,this.autoScrollDeltaX=0,this.autoScrollDeltaY=0,this.lastPointerPos=null,this.activeDragIsTouch=!1,this.isTouchDevice=!1,this.isTwoFingerPanning=!1,this.twoFingerDidPan=!1,this.twoFingerStartMidX=0,this.twoFingerStartMidY=0,this.twoFingerOnCanvas=!1,this.lastPanX=0,this.lastPanY=0,this.canvasMouseDown=!1,this.boundMouseMove=this.handleMouseMove.bind(this),this.boundMouseUp=this.handleMouseUp.bind(this),this.boundGlobalMouseDown=this.handleGlobalMouseDown.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this),this.boundKeyUp=this.handleKeyUp.bind(this),this.boundWindowBlur=this.handleWindowBlur.bind(this),this.boundTouchMove=this.handleTouchMove.bind(this),this.boundTouchEnd=this.handleTouchEnd.bind(this),this.boundTouchCancel=this.handleTouchCancel.bind(this),this.boundCanvasTouchStart=this.handleCanvasTouchStart.bind(this)}setupListeners(){document.addEventListener("mousemove",this.boundMouseMove),document.addEventListener("mouseup",this.boundMouseUp),document.addEventListener("mousedown",this.boundGlobalMouseDown),document.addEventListener("keydown",this.boundKeyDown),document.addEventListener("keyup",this.boundKeyUp),window.addEventListener("blur",this.boundWindowBlur),document.addEventListener("touchmove",this.boundTouchMove,{passive:!1}),document.addEventListener("touchend",this.boundTouchEnd),document.addEventListener("touchcancel",this.boundTouchCancel);const t=this.editor.querySelector("#canvas");null==t||t.addEventListener("touchstart",this.boundCanvasTouchStart,{passive:!1})}teardownListeners(){document.removeEventListener("mousemove",this.boundMouseMove),document.removeEventListener("mouseup",this.boundMouseUp),document.removeEventListener("mousedown",this.boundGlobalMouseDown),document.removeEventListener("keydown",this.boundKeyDown),document.removeEventListener("keyup",this.boundKeyUp),window.removeEventListener("blur",this.boundWindowBlur),document.removeEventListener("touchmove",this.boundTouchMove),document.removeEventListener("touchend",this.boundTouchEnd),document.removeEventListener("touchcancel",this.boundTouchCancel);const t=this.editor.querySelector("#canvas");null==t||t.removeEventListener("touchstart",this.boundCanvasTouchStart),this.stopAutoScroll(),this.hideDragHint()}getPosition(t,e){var i,o,n;return"node"===e?null===(i=this.editor.definition._ui.nodes[t])||void 0===i?void 0:i.position:null===(n=null===(o=this.editor.definition._ui.stickies)||void 0===o?void 0:o[t])||void 0===n?void 0:n.position}handleMouseDown(t){if(lp(t))return;if(this.editor.isReadOnly())return;this.blurActiveContentEditable();const e=t.currentTarget,i=t.target;if(i.classList.contains("exit")||i.closest(".exit")||i.closest(".linked-name"))return;const o=e.getAttribute("uuid"),n="TEMBA-FLOW-NODE"===e.tagName?"node":"sticky",s=this.getPosition(o,n);s&&(this.editor.selectedItems.has(o)||t.ctrlKey||t.metaKey?this.editor.selectedItems.has(o)||this.editor.selectedItems.add(o):this.editor.selectedItems.clear(),this.isMouseDown=!0,this.activeDragIsTouch=!1,this.shiftDragCopy=t.shiftKey,this.dragStartPos={x:t.clientX,y:t.clientY},this.editor.currentDragItem={uuid:o,position:s,element:e,type:n},t.preventDefault(),t.stopPropagation())}markTouchDevice(){var t,e;this.isTouchDevice||(this.isTouchDevice=!0,null===(t=this.editor.querySelector("#canvas"))||void 0===t||t.classList.add("touch-device"),null===(e=this.editor.querySelector("#editor"))||void 0===e||e.classList.add("touch-device"))}handleItemTouchStart(t){if(this.markTouchDevice(),this.editor.isReadOnly())return;this.blurActiveContentEditable();const e=t.touches[0];if(!e)return;const i=t.currentTarget,o=t.target;if(o.classList.contains("exit")||o.closest(".exit")||o.closest(".linked-name"))return;const n=i.getAttribute("uuid"),s="TEMBA-FLOW-NODE"===i.tagName?"node":"sticky",r=this.getPosition(n,s);r&&(this.editor.selectedItems.has(n)||this.editor.selectedItems.clear(),this.isMouseDown=!0,this.activeDragIsTouch=!0,this.dragStartPos={x:e.clientX,y:e.clientY},this.editor.currentDragItem={uuid:n,position:r,element:i,type:s},t.stopPropagation())}handleGlobalMouseDown(t){var e;if(lp(t))return;const i=null===(e=this.editor.querySelector("#grid"))||void 0===e?void 0:e.getBoundingClientRect();if(!i)return;if(!(t.clientX>=i.left&&t.clientX<=i.right&&t.clientY>=i.top&&t.clientY<=i.bottom))return;t.target.closest(".draggable")||this.handleCanvasMouseDown(t)}blurActiveContentEditable(){var t;let e=document.activeElement;for(;null===(t=null==e?void 0:e.shadowRoot)||void 0===t?void 0:t.activeElement;)e=e.shadowRoot.activeElement;e instanceof HTMLElement&&"true"===e.getAttribute("contenteditable")&&e.blur()}handleCanvasMouseDown(t){var e;if(this.editor.isReadOnly())return;this.blurActiveContentEditable();const i=t.target;if("canvas"===i.id||"grid"===i.id){this.canvasMouseDown=!0,this.dragStartPos={x:t.clientX,y:t.clientY};const i=null===(e=this.editor.querySelector("#canvas"))||void 0===e?void 0:e.getBoundingClientRect();if(i){this.editor.selectedItems.clear();const e=(t.clientX-i.left)/this.editor.zoom,o=(t.clientY-i.top)/this.editor.zoom;this.editor.selectionBox={startX:e,startY:o,endX:e,endY:o}}t.preventDefault()}}showDragHint(){if(this.editor.isReadOnly())return;const t=this.editor.querySelector("#drag-hint");t&&(this.dragHintTimer=setTimeout(()=>{t.classList.add("visible"),this.dragHintTimer=null},600))}hideDragHint(){this.dragHintTimer&&(clearTimeout(this.dragHintTimer),this.dragHintTimer=null);const t=this.editor.querySelector("#drag-hint");t&&t.classList.remove("visible")}handleKeyDown(t){var e;"Shift"===t.key&&(null===(e=this.editor.querySelector("#canvas"))||void 0===e||e.classList.add("shift-held"),this.editor.isDragging&&!this.currentDragIsCopy&&(this.hideDragHint(),this.performShiftDragCopy(),requestAnimationFrame(()=>{this.markCopyElements(),this.updateDragPositions()}))),this.editor.handleKeyDown(t)}handleKeyUp(t){var e;"Shift"===t.key&&(null===(e=this.editor.querySelector("#canvas"))||void 0===e||e.classList.remove("shift-held"),this.editor.isDragging&&this.currentDragIsCopy&&(this.revertShiftDragCopy(),requestAnimationFrame(()=>this.updateDragPositions()))),this.editor.handleKeyUp(t)}handleWindowBlur(){var t;null===(t=this.editor.querySelector("#canvas"))||void 0===t||t.classList.remove("shift-held"),this.editor.isDragging&&this.currentDragIsCopy&&(this.revertShiftDragCopy(),requestAnimationFrame(()=>this.updateDragPositions())),this.editor.handleWindowBlur()}updateSelectionBox(t){var e;if(!this.editor.selectionBox||!this.canvasMouseDown)return;const i=null===(e=this.editor.querySelector("#canvas"))||void 0===e?void 0:e.getBoundingClientRect();if(!i)return;const o=(t.clientX-i.left)/this.editor.zoom,n=(t.clientY-i.top)/this.editor.zoom;this.editor.selectionBox={...this.editor.selectionBox,endX:o,endY:n},this.updateSelectedItemsFromBox()}updateSelectedItemsFromBox(){var t,e,i;if(!this.editor.selectionBox)return;const o=new Set,n=Math.min(this.editor.selectionBox.startX,this.editor.selectionBox.endX),s=Math.min(this.editor.selectionBox.startY,this.editor.selectionBox.endY),r=Math.max(this.editor.selectionBox.startX,this.editor.selectionBox.endX),a=Math.max(this.editor.selectionBox.startY,this.editor.selectionBox.endY);null===(t=this.editor.definition)||void 0===t||t.nodes.forEach(t=>{var e,i,l;const d=this.editor.querySelector(`[id="${t.uuid}"]`);if(d){const c=null===(i=null===(e=this.editor.definition._ui)||void 0===e?void 0:e.nodes[t.uuid])||void 0===i?void 0:i.position;if(c){if(null===(l=this.editor.querySelector("#canvas"))||void 0===l?void 0:l.getBoundingClientRect()){const e=c.left,i=c.top,l=e+d.offsetWidth,h=i+d.offsetHeight;n<l&&r>e&&s<h&&a>i&&o.add(t.uuid)}}}});const l=(null===(i=null===(e=this.editor.definition)||void 0===e?void 0:e._ui)||void 0===i?void 0:i.stickies)||{};Object.entries(l).forEach(([t,e])=>{if(e.position){const i=this.editor.querySelector(`temba-sticky-note[uuid="${t}"]`);if(i){const l=i.clientWidth,d=i.clientHeight,c=e.position.left,h=e.position.top;n<c+l&&r>c&&s<h+d&&a>h&&o.add(t)}}}),this.editor.selectedItems=o}renderSelectionBox(){if(!this.editor.selectionBox||!this.editor.isSelecting)return"";const t=Math.min(this.editor.selectionBox.startX,this.editor.selectionBox.endX),e=Math.min(this.editor.selectionBox.startY,this.editor.selectionBox.endY),i=Math.abs(this.editor.selectionBox.endX-this.editor.selectionBox.startX),o=Math.abs(this.editor.selectionBox.endY-this.editor.selectionBox.startY);return V`<div
|
|
10435
|
+
`}}e([gt({type:Object})],vg.prototype,"plumber",void 0),e([gt({type:Object})],vg.prototype,"node",void 0),e([gt({type:Object})],vg.prototype,"ui",void 0),e([Nd(Rd,t=>t.isTranslating)],vg.prototype,"isTranslating",void 0),e([Nd(Rd,t=>t.languageCode)],vg.prototype,"languageCode",void 0),e([Nd(Rd,t=>t.viewingRevision)],vg.prototype,"viewingRevision",void 0),e([Nd(Rd,t=>t.flowDefinition)],vg.prototype,"flowDefinition",void 0),e([Nd(Rd,t=>t.getCurrentActivity())],vg.prototype,"activity",void 0),e([Nd(Rd,t=>t.issuesByNode)],vg.prototype,"issuesByNode",void 0),e([Nd(Rd,t=>t.issuesByAction)],vg.prototype,"issuesByAction",void 0);class bg{constructor(t){this.editor=t,this.isMouseDown=!1,this.shiftDragCopy=!1,this.currentDragIsCopy=!1,this.dragStartPos={x:0,y:0},this.originalDragItem=null,this.originalSelectedItems=null,this.dragHintTimer=null,this.autoScrollAnimationId=null,this.autoScrollDeltaX=0,this.autoScrollDeltaY=0,this.lastPointerPos=null,this.activeDragIsTouch=!1,this.isTouchDevice=!1,this.isTwoFingerPanning=!1,this.twoFingerDidPan=!1,this.twoFingerStartMidX=0,this.twoFingerStartMidY=0,this.twoFingerOnCanvas=!1,this.lastPanX=0,this.lastPanY=0,this.canvasMouseDown=!1,this.boundMouseMove=this.handleMouseMove.bind(this),this.boundMouseUp=this.handleMouseUp.bind(this),this.boundGlobalMouseDown=this.handleGlobalMouseDown.bind(this),this.boundKeyDown=this.handleKeyDown.bind(this),this.boundKeyUp=this.handleKeyUp.bind(this),this.boundWindowBlur=this.handleWindowBlur.bind(this),this.boundTouchMove=this.handleTouchMove.bind(this),this.boundTouchEnd=this.handleTouchEnd.bind(this),this.boundTouchCancel=this.handleTouchCancel.bind(this),this.boundCanvasTouchStart=this.handleCanvasTouchStart.bind(this)}setupListeners(){document.addEventListener("mousemove",this.boundMouseMove),document.addEventListener("mouseup",this.boundMouseUp),document.addEventListener("mousedown",this.boundGlobalMouseDown),document.addEventListener("keydown",this.boundKeyDown),document.addEventListener("keyup",this.boundKeyUp),window.addEventListener("blur",this.boundWindowBlur),document.addEventListener("touchmove",this.boundTouchMove,{passive:!1}),document.addEventListener("touchend",this.boundTouchEnd),document.addEventListener("touchcancel",this.boundTouchCancel);const t=this.editor.querySelector("#canvas");null==t||t.addEventListener("touchstart",this.boundCanvasTouchStart,{passive:!1})}teardownListeners(){document.removeEventListener("mousemove",this.boundMouseMove),document.removeEventListener("mouseup",this.boundMouseUp),document.removeEventListener("mousedown",this.boundGlobalMouseDown),document.removeEventListener("keydown",this.boundKeyDown),document.removeEventListener("keyup",this.boundKeyUp),window.removeEventListener("blur",this.boundWindowBlur),document.removeEventListener("touchmove",this.boundTouchMove),document.removeEventListener("touchend",this.boundTouchEnd),document.removeEventListener("touchcancel",this.boundTouchCancel);const t=this.editor.querySelector("#canvas");null==t||t.removeEventListener("touchstart",this.boundCanvasTouchStart),this.stopAutoScroll(),this.hideDragHint()}getPosition(t,e){var i,o,n;return"node"===e?null===(i=this.editor.definition._ui.nodes[t])||void 0===i?void 0:i.position:null===(n=null===(o=this.editor.definition._ui.stickies)||void 0===o?void 0:o[t])||void 0===n?void 0:n.position}handleMouseDown(t){if(lp(t))return;if(this.editor.isReadOnly())return;this.blurActiveContentEditable();const e=t.currentTarget,i=t.target;if(i.classList.contains("exit")||i.closest(".exit")||i.closest(".linked-name")||i.closest(".linked-pill"))return;const o=e.getAttribute("uuid"),n="TEMBA-FLOW-NODE"===e.tagName?"node":"sticky",s=this.getPosition(o,n);s&&(this.editor.selectedItems.has(o)||t.ctrlKey||t.metaKey?this.editor.selectedItems.has(o)||this.editor.selectedItems.add(o):this.editor.selectedItems.clear(),this.isMouseDown=!0,this.activeDragIsTouch=!1,this.shiftDragCopy=t.shiftKey,this.dragStartPos={x:t.clientX,y:t.clientY},this.editor.currentDragItem={uuid:o,position:s,element:e,type:n},t.preventDefault(),t.stopPropagation())}markTouchDevice(){var t,e;this.isTouchDevice||(this.isTouchDevice=!0,null===(t=this.editor.querySelector("#canvas"))||void 0===t||t.classList.add("touch-device"),null===(e=this.editor.querySelector("#editor"))||void 0===e||e.classList.add("touch-device"))}handleItemTouchStart(t){if(this.markTouchDevice(),this.editor.isReadOnly())return;this.blurActiveContentEditable();const e=t.touches[0];if(!e)return;const i=t.currentTarget,o=t.target;if(o.classList.contains("exit")||o.closest(".exit")||o.closest(".linked-name")||o.closest(".linked-pill"))return;const n=i.getAttribute("uuid"),s="TEMBA-FLOW-NODE"===i.tagName?"node":"sticky",r=this.getPosition(n,s);r&&(this.editor.selectedItems.has(n)||this.editor.selectedItems.clear(),this.isMouseDown=!0,this.activeDragIsTouch=!0,this.dragStartPos={x:e.clientX,y:e.clientY},this.editor.currentDragItem={uuid:n,position:r,element:i,type:s},t.stopPropagation())}handleGlobalMouseDown(t){var e;if(lp(t))return;const i=null===(e=this.editor.querySelector("#grid"))||void 0===e?void 0:e.getBoundingClientRect();if(!i)return;if(!(t.clientX>=i.left&&t.clientX<=i.right&&t.clientY>=i.top&&t.clientY<=i.bottom))return;t.target.closest(".draggable")||this.handleCanvasMouseDown(t)}blurActiveContentEditable(){var t;let e=document.activeElement;for(;null===(t=null==e?void 0:e.shadowRoot)||void 0===t?void 0:t.activeElement;)e=e.shadowRoot.activeElement;e instanceof HTMLElement&&"true"===e.getAttribute("contenteditable")&&e.blur()}handleCanvasMouseDown(t){var e;if(this.editor.isReadOnly())return;this.blurActiveContentEditable();const i=t.target;if("canvas"===i.id||"grid"===i.id){this.canvasMouseDown=!0,this.dragStartPos={x:t.clientX,y:t.clientY};const i=null===(e=this.editor.querySelector("#canvas"))||void 0===e?void 0:e.getBoundingClientRect();if(i){this.editor.selectedItems.clear();const e=(t.clientX-i.left)/this.editor.zoom,o=(t.clientY-i.top)/this.editor.zoom;this.editor.selectionBox={startX:e,startY:o,endX:e,endY:o}}t.preventDefault()}}showDragHint(){if(this.editor.isReadOnly())return;const t=this.editor.querySelector("#drag-hint");t&&(this.dragHintTimer=setTimeout(()=>{t.classList.add("visible"),this.dragHintTimer=null},600))}hideDragHint(){this.dragHintTimer&&(clearTimeout(this.dragHintTimer),this.dragHintTimer=null);const t=this.editor.querySelector("#drag-hint");t&&t.classList.remove("visible")}handleKeyDown(t){var e;"Shift"===t.key&&(null===(e=this.editor.querySelector("#canvas"))||void 0===e||e.classList.add("shift-held"),this.editor.isDragging&&!this.currentDragIsCopy&&(this.hideDragHint(),this.performShiftDragCopy(),requestAnimationFrame(()=>{this.markCopyElements(),this.updateDragPositions()}))),this.editor.handleKeyDown(t)}handleKeyUp(t){var e;"Shift"===t.key&&(null===(e=this.editor.querySelector("#canvas"))||void 0===e||e.classList.remove("shift-held"),this.editor.isDragging&&this.currentDragIsCopy&&(this.revertShiftDragCopy(),requestAnimationFrame(()=>this.updateDragPositions()))),this.editor.handleKeyUp(t)}handleWindowBlur(){var t;null===(t=this.editor.querySelector("#canvas"))||void 0===t||t.classList.remove("shift-held"),this.editor.isDragging&&this.currentDragIsCopy&&(this.revertShiftDragCopy(),requestAnimationFrame(()=>this.updateDragPositions())),this.editor.handleWindowBlur()}updateSelectionBox(t){var e;if(!this.editor.selectionBox||!this.canvasMouseDown)return;const i=null===(e=this.editor.querySelector("#canvas"))||void 0===e?void 0:e.getBoundingClientRect();if(!i)return;const o=(t.clientX-i.left)/this.editor.zoom,n=(t.clientY-i.top)/this.editor.zoom;this.editor.selectionBox={...this.editor.selectionBox,endX:o,endY:n},this.updateSelectedItemsFromBox()}updateSelectedItemsFromBox(){var t,e,i;if(!this.editor.selectionBox)return;const o=new Set,n=Math.min(this.editor.selectionBox.startX,this.editor.selectionBox.endX),s=Math.min(this.editor.selectionBox.startY,this.editor.selectionBox.endY),r=Math.max(this.editor.selectionBox.startX,this.editor.selectionBox.endX),a=Math.max(this.editor.selectionBox.startY,this.editor.selectionBox.endY);null===(t=this.editor.definition)||void 0===t||t.nodes.forEach(t=>{var e,i,l;const d=this.editor.querySelector(`[id="${t.uuid}"]`);if(d){const c=null===(i=null===(e=this.editor.definition._ui)||void 0===e?void 0:e.nodes[t.uuid])||void 0===i?void 0:i.position;if(c){if(null===(l=this.editor.querySelector("#canvas"))||void 0===l?void 0:l.getBoundingClientRect()){const e=c.left,i=c.top,l=e+d.offsetWidth,h=i+d.offsetHeight;n<l&&r>e&&s<h&&a>i&&o.add(t.uuid)}}}});const l=(null===(i=null===(e=this.editor.definition)||void 0===e?void 0:e._ui)||void 0===i?void 0:i.stickies)||{};Object.entries(l).forEach(([t,e])=>{if(e.position){const i=this.editor.querySelector(`temba-sticky-note[uuid="${t}"]`);if(i){const l=i.clientWidth,d=i.clientHeight,c=e.position.left,h=e.position.top;n<c+l&&r>c&&s<h+d&&a>h&&o.add(t)}}}),this.editor.selectedItems=o}renderSelectionBox(){if(!this.editor.selectionBox||!this.editor.isSelecting)return"";const t=Math.min(this.editor.selectionBox.startX,this.editor.selectionBox.endX),e=Math.min(this.editor.selectionBox.startY,this.editor.selectionBox.endY),i=Math.abs(this.editor.selectionBox.endX-this.editor.selectionBox.startX),o=Math.abs(this.editor.selectionBox.endY-this.editor.selectionBox.startY);return V`<div
|
|
10501
10436
|
class="selection-box"
|
|
10502
10437
|
style="left: ${t}px; top: ${e}px; width: ${i}px; height: ${o}px;"
|
|
10503
10438
|
></div>`}handleCanvasTouchStart(t){var e;this.markTouchDevice();const i=t.touches[0];if(!i)return;const o=t.target;if(o.closest(".draggable"))return;if("canvas"!==o.id&&"grid"!==o.id)return;if(t.touches.length>=2)return this.canvasMouseDown=!1,this.editor.isSelecting=!1,this.editor.selectionBox=null,this.isTwoFingerPanning=!0,this.twoFingerOnCanvas=!0,this.twoFingerDidPan=!1,this.twoFingerStartMidX=(t.touches[0].clientX+t.touches[1].clientX)/2,this.twoFingerStartMidY=(t.touches[0].clientY+t.touches[1].clientY)/2,this.lastPanX=this.twoFingerStartMidX,void(this.lastPanY=this.twoFingerStartMidY);if(this.editor.isReadOnly())return;this.canvasMouseDown=!0,this.dragStartPos={x:i.clientX,y:i.clientY};const n=null===(e=this.editor.querySelector("#canvas"))||void 0===e?void 0:e.getBoundingClientRect();if(n){this.editor.selectedItems.clear();const t=(i.clientX-n.left)/this.editor.zoom,e=(i.clientY-n.top)/this.editor.zoom;this.editor.selectionBox={startX:t,startY:e,endX:t,endY:e}}t.preventDefault()}handleMouseMove(t){if(this.canvasMouseDown&&!this.isMouseDown)return this.editor.isSelecting=!0,this.updateSelectionBox(t),void this.editor.requestUpdate();if(this.editor.plumber.connectionDragging){this.activeDragIsTouch=!1,this.lastPointerPos={clientX:t.clientX,clientY:t.clientY},this.startAutoScroll();const e=document.querySelector("temba-flow-node:hover");if(document.querySelectorAll("temba-flow-node").forEach(t=>{t.classList.remove("connection-target-valid","connection-target-invalid")}),e)this.editor.targetId=e.getAttribute("uuid"),this.editor.isValidTarget=this.editor.targetId!==this.editor.dragFromNodeId,this.editor.isValidTarget?e.classList.add("connection-target-valid"):e.classList.add("connection-target-invalid"),this.editor.connectionPlaceholder=null;else{this.editor.targetId=null,this.editor.isValidTarget=!0;const e=this.editor.querySelector("#canvas");if(e){const i=e.getBoundingClientRect(),o=(t.clientX-i.left)/this.editor.zoom,n=(t.clientY-i.top)/this.editor.zoom,s=200,r=64,a=13,l=1,d=null!=this.editor.connectionSourceY&&n<this.editor.connectionSourceY;let c;c=d?n+l-r:n-l+a,this.editor.connectionPlaceholder={position:{left:o-s/2,top:c},visible:!0,dragUp:d}}}this.editor.requestUpdate()}if(!this.isMouseDown||!this.editor.currentDragItem)return;this.lastPointerPos={clientX:t.clientX,clientY:t.clientY};const e=t.clientX-this.dragStartPos.x+this.autoScrollDeltaX,i=t.clientY-this.dragStartPos.y+this.autoScrollDeltaY,o=Math.sqrt(e*e+i*i);!this.editor.isDragging&&o>5&&(this.editor.isDragging=!0,this.startAutoScroll(),this.originalDragItem={...this.editor.currentDragItem},this.originalSelectedItems=new Set(this.editor.selectedItems),this.shiftDragCopy||t.shiftKey?(this.performShiftDragCopy(),this.shiftDragCopy=!1):this.showDragHint()),this.editor.isDragging&&this.updateDragPositions()}performShiftDragCopy(){var t,e,i,o,n;if(!this.originalDragItem)return;const s=(null===(t=this.originalSelectedItems)||void 0===t?void 0:t.has(this.originalDragItem.uuid))&&(null!==(i=null===(e=this.originalSelectedItems)||void 0===e?void 0:e.size)&&void 0!==i?i:0)>1?Array.from(this.originalSelectedItems):[this.originalDragItem.uuid];if(0===s.length)return;const r=Fd().getState().duplicateNodes(s);for(const t of s){const e=r[t];e&&!this.editor.copiedItemUuids.includes(e)&&this.editor.copiedItemUuids.push(e)}this.currentDragIsCopy=!0;for(const t of s){const e=this.editor.querySelector(`[uuid="${t}"]`),i="TEMBA-FLOW-NODE"===(null==e?void 0:e.tagName)?"node":"sticky",o=this.getPosition(t,i);e&&o&&(e.style.left=`${o.left}px`,e.style.top=`${o.top}px`)}this.editor.plumber.revalidate(s);for(const t of s){const e=this.editor.querySelector(`[uuid="${t}"]`);e&&(e.offsetHeight,e.classList.remove("dragging"))}const a=r[this.originalDragItem.uuid];if(a&&(this.editor.currentDragItem={...this.originalDragItem,uuid:a}),(null!==(n=null===(o=this.originalSelectedItems)||void 0===o?void 0:o.size)&&void 0!==n?n:0)>1){const t=new Set;for(const e of this.originalSelectedItems){const i=r[e];t.add(i||e)}this.editor.selectedItems=t}}markCopyElements(){for(const t of this.editor.copiedItemUuids){const e=this.editor.querySelector(`[uuid="${t}"]`);null==e||e.classList.add("drag-copy")}}revertShiftDragCopy(){if(this.originalDragItem){if(this.editor.copiedItemUuids.length>0){const t=this.editor.copiedItemUuids.filter(t=>this.editor.definition.nodes.some(e=>e.uuid===t)),e=this.editor.copiedItemUuids.filter(t=>{var e,i;return null===(i=null===(e=this.editor.definition._ui)||void 0===e?void 0:e.stickies)||void 0===i?void 0:i[t]});t.length>0&&Fd().getState().removeNodes(t),e.length>0&&Fd().getState().removeStickyNotes(e),this.editor.copiedItemUuids=[]}this.currentDragIsCopy=!1,Fd().getState().setDirtyDate(null),this.editor.currentDragItem={...this.originalDragItem},this.originalSelectedItems&&(this.editor.selectedItems=new Set(this.originalSelectedItems))}}updateDragPositions(){if(!this.editor.currentDragItem||!this.lastPointerPos)return;const t=(this.lastPointerPos.clientX-this.dragStartPos.x+this.autoScrollDeltaX)/this.editor.zoom,e=(this.lastPointerPos.clientY-this.dragStartPos.y+this.autoScrollDeltaY)/this.editor.zoom,i=this.editor.selectedItems.has(this.editor.currentDragItem.uuid)&&this.editor.selectedItems.size>1?Array.from(this.editor.selectedItems):[this.editor.currentDragItem.uuid];i.forEach(i=>{const o=this.editor.querySelector(`[uuid="${i}"]`);if(o){const n="TEMBA-FLOW-NODE"===o.tagName?"node":"sticky",s=this.getPosition(i,n);s&&(o.style.left=`${s.left+t}px`,o.style.top=`${s.top+e}px`,o.classList.add("dragging"),this.currentDragIsCopy&&o.classList.add("drag-copy"))}}),this.editor.plumber.revalidate(i)}startAutoScroll(){if(null!==this.autoScrollAnimationId)return;const t=this.editor.querySelector("#editor");if(!t)return;const e=()=>{var i,o,n;if(!this.editor.isDragging&&!(null===(i=this.editor.plumber)||void 0===i?void 0:i.connectionDragging)||!this.lastPointerPos)return void(this.autoScrollAnimationId=null);const s=t.getBoundingClientRect(),r=this.lastPointerPos.clientX,a=this.lastPointerPos.clientY,l=this.activeDragIsTouch?40:150;let d=0,c=0;const h=r-s.left;if(h<l){const t=h<0;d=-Math.min(1,1-h/l)*(15*(t?5:1))}const u=s.right-r;if(u<l){const t=u<0;d=Math.min(1,1-u/l)*(15*(t?5:1))}const p=a-s.top;if(p<l){const t=p<0;c=-Math.min(1,1-p/l)*(15*(t?5:1))}const m=s.bottom-a;if(m<l){const t=m<0;c=Math.min(1,1-m/l)*(15*(t?5:1))}if(0!==d||0!==c){const e=t.scrollLeft,i=t.scrollTop;if(d>0||c>0){const e=(t.scrollLeft+t.clientWidth+d)/this.editor.zoom,i=(t.scrollTop+t.clientHeight+c)/this.editor.zoom;null===(n=null===(o=Fd())||void 0===o?void 0:o.getState())||void 0===n||n.expandCanvas(e,i)}t.scrollLeft+=d,t.scrollTop+=c;const s=t.scrollLeft-e,r=t.scrollTop-i;this.autoScrollDeltaX+=s,this.autoScrollDeltaY+=r,0===s&&0===r||this.updateDragPositions()}this.autoScrollAnimationId=requestAnimationFrame(e)};this.autoScrollAnimationId=requestAnimationFrame(e)}stopAutoScroll(){null!==this.autoScrollAnimationId&&(cancelAnimationFrame(this.autoScrollAnimationId),this.autoScrollAnimationId=null)}handleMouseUp(t){if(this.canvasMouseDown&&this.editor.isSelecting)return this.editor.isSelecting=!1,this.editor.selectionBox=null,this.canvasMouseDown=!1,void this.editor.requestUpdate();if(!this.canvasMouseDown||this.editor.isSelecting){if(this.isMouseDown&&this.editor.currentDragItem){if(this.stopAutoScroll(),this.editor.isDragging){const e=(t.clientX-this.dragStartPos.x+this.autoScrollDeltaX)/this.editor.zoom,i=(t.clientY-this.dragStartPos.y+this.autoScrollDeltaY)/this.editor.zoom,o=this.editor.selectedItems.has(this.editor.currentDragItem.uuid)&&this.editor.selectedItems.size>1?Array.from(this.editor.selectedItems):[this.editor.currentDragItem.uuid],n={};o.forEach(t=>{const o=this.editor.definition.nodes.find(e=>e.uuid===t)?"node":"sticky",s=this.getPosition(t,o);if(s){const o=s.left+e,r=s.top+i,a=cp(o),l=cp(r),d={left:a,top:l};n[t]=d;const c=this.editor.querySelector(`[uuid="${t}"]`);c&&(c.classList.remove("dragging","drag-copy"),c.style.left=`${a}px`,c.style.top=`${l}px`)}}),Object.keys(n).length>0&&(this.currentDragIsCopy&&(this.editor.pendingTimer.pending=!0,this.editor.capturePositionsOnce()),Fd().getState().updateCanvasPositions(n),setTimeout(()=>{this.editor.checkCollisionsAndReflow(o),this.editor.plumber.repaintEverything()},0)),this.currentDragIsCopy&&this.editor.pendingTimer.start(),this.editor.selectedItems.clear()}this.hideDragHint(),this.editor.isDragging=!1,this.isMouseDown=!1,this.shiftDragCopy=!1,this.currentDragIsCopy=!1,this.editor.currentDragItem=null,this.originalDragItem=null,this.originalSelectedItems=null,this.canvasMouseDown=!1,this.autoScrollDeltaX=0,this.autoScrollDeltaY=0,this.lastPointerPos=null}}else this.canvasMouseDown=!1}handleTouchMove(t){var e;if(t.touches.length>=2){t.preventDefault();const e=(t.touches[0].clientX+t.touches[1].clientX)/2,i=(t.touches[0].clientY+t.touches[1].clientY)/2;if(this.isTwoFingerPanning){const t=this.lastPanX-e,o=this.lastPanY-i;(Math.abs(t)>2||Math.abs(o)>2)&&(this.twoFingerDidPan=!0);const n=this.editor.querySelector("#editor");n&&n.scrollBy(t,o)}return this.canvasMouseDown=!1,this.editor.isSelecting=!1,this.editor.selectionBox=null,this.isTwoFingerPanning=!0,this.lastPanX=e,void(this.lastPanY=i)}const i=t.touches[0];if(!i)return;if(this.canvasMouseDown&&!this.isMouseDown){t.preventDefault(),this.editor.isSelecting=!0;const o=null===(e=this.editor.querySelector("#canvas"))||void 0===e?void 0:e.getBoundingClientRect();return o&&this.editor.selectionBox&&(this.editor.selectionBox={...this.editor.selectionBox,endX:(i.clientX-o.left)/this.editor.zoom,endY:(i.clientY-o.top)/this.editor.zoom},this.updateSelectedItemsFromBox()),void this.editor.requestUpdate()}if(this.editor.plumber.connectionDragging){t.preventDefault();const e=this.editor.findTargetNodeAt(i.clientX,i.clientY);if(document.querySelectorAll("temba-flow-node").forEach(t=>{t.classList.remove("connection-target-valid","connection-target-invalid")}),e)this.editor.targetId=e.getAttribute("uuid"),this.editor.isValidTarget=this.editor.targetId!==this.editor.dragFromNodeId,this.editor.isValidTarget?e.classList.add("connection-target-valid"):e.classList.add("connection-target-invalid"),this.editor.connectionPlaceholder=null;else{this.editor.targetId=null,this.editor.isValidTarget=!0;const t=this.editor.querySelector("#canvas");if(t){const e=t.getBoundingClientRect(),o=(i.clientX-e.left)/this.editor.zoom,n=(i.clientY-e.top)/this.editor.zoom,s=200,r=64,a=13,l=1,d=null!=this.editor.connectionSourceY&&n<this.editor.connectionSourceY;let c;c=d?n+l-r:n-l+a,this.editor.connectionPlaceholder={position:{left:o-s/2,top:c},visible:!0,dragUp:d}}}return void this.editor.requestUpdate()}if(!this.isMouseDown||!this.editor.currentDragItem)return;this.lastPointerPos={clientX:i.clientX,clientY:i.clientY};const o=i.clientX-this.dragStartPos.x+this.autoScrollDeltaX,n=i.clientY-this.dragStartPos.y+this.autoScrollDeltaY,s=Math.sqrt(o*o+n*n);!this.editor.isDragging&&s>5&&(this.editor.isDragging=!0,this.startAutoScroll()),this.editor.isDragging&&(t.preventDefault(),this.updateDragPositions())}handleTouchEnd(t){if(this.isTwoFingerPanning){if(0===t.touches.length){const t=this.twoFingerDidPan,e=this.twoFingerOnCanvas,i=this.twoFingerStartMidX,o=this.twoFingerStartMidY;this.isTwoFingerPanning=!1,this.twoFingerOnCanvas=!1,this.twoFingerDidPan=!1,!t&&e&&this.editor.showContextMenuAt(i,o)}return}const e=t.changedTouches[0];if(this.canvasMouseDown&&this.editor.isSelecting)return this.editor.isSelecting=!1,this.editor.selectionBox=null,this.canvasMouseDown=!1,void this.editor.requestUpdate();if(!this.canvasMouseDown||this.editor.isSelecting){if(this.editor.plumber.connectionDragging){if(e){const t=this.editor.findTargetNodeAt(e.clientX,e.clientY);t&&(this.editor.targetId=t.getAttribute("uuid"),this.editor.isValidTarget=this.editor.targetId!==this.editor.dragFromNodeId)}}else if(this.isMouseDown&&this.editor.currentDragItem){if(this.stopAutoScroll(),this.editor.isDragging&&e){const t=(e.clientX-this.dragStartPos.x+this.autoScrollDeltaX)/this.editor.zoom,i=(e.clientY-this.dragStartPos.y+this.autoScrollDeltaY)/this.editor.zoom,o=this.editor.selectedItems.has(this.editor.currentDragItem.uuid)&&this.editor.selectedItems.size>1?Array.from(this.editor.selectedItems):[this.editor.currentDragItem.uuid],n={};o.forEach(e=>{const o=this.editor.definition.nodes.find(t=>t.uuid===e)?"node":"sticky",s=this.getPosition(e,o);if(s){const o=s.left+t,r=s.top+i,a=cp(o),l=cp(r);n[e]={left:a,top:l};const d=this.editor.querySelector(`[uuid="${e}"]`);d&&(d.classList.remove("dragging"),d.style.left=`${a}px`,d.style.top=`${l}px`)}}),Object.keys(n).length>0&&(Fd().getState().updateCanvasPositions(n),setTimeout(()=>{this.editor.checkCollisionsAndReflow(o),this.editor.plumber.repaintEverything()},0)),this.editor.selectedItems.clear()}this.editor.isDragging=!1,this.isMouseDown=!1,this.editor.currentDragItem=null,this.canvasMouseDown=!1,this.autoScrollDeltaX=0,this.autoScrollDeltaY=0,this.lastPointerPos=null}}else this.canvasMouseDown=!1}handleTouchCancel(){if(this.isTwoFingerPanning=!1,this.editor.isSelecting=!1,this.editor.selectionBox=null,this.canvasMouseDown=!1,this.editor.isDragging&&this.editor.currentDragItem){(this.editor.selectedItems.has(this.editor.currentDragItem.uuid)&&this.editor.selectedItems.size>1?Array.from(this.editor.selectedItems):[this.editor.currentDragItem.uuid]).forEach(t=>{const e=this.editor.querySelector(`[uuid="${t}"]`);e&&e.classList.remove("dragging")})}this.stopAutoScroll(),this.editor.isDragging=!1,this.isMouseDown=!1,this.editor.currentDragItem=null,this.autoScrollDeltaX=0,this.autoScrollDeltaY=0,this.lastPointerPos=null,document.querySelectorAll("temba-flow-node").forEach(t=>{t.classList.remove("connection-target-valid","connection-target-invalid")}),this.editor.connectionPlaceholder=null,this.editor.requestUpdate()}}class yg extends Ze{constructor(){super(...arguments),this.color="#6B7280",this.order=0,this.top=100,this.hidden=!1,this.saving=!1,this.active=!1}static get styles(){return l`
|
|
@@ -12345,9 +12280,12 @@ background: #ccc;
|
|
|
12345
12280
|
</div>
|
|
12346
12281
|
</div>
|
|
12347
12282
|
`}}e([gt({type:Boolean,reflect:!0})],Ag.prototype,"open",void 0),e([gt({type:String})],Ag.prototype,"mode",void 0),e([gt({type:String})],Ag.prototype,"flowType",void 0),e([gt({type:Array})],Ag.prototype,"features",void 0),e([ft()],Ag.prototype,"clickPosition",void 0),e([ft()],Ag.prototype,"searchQuery",void 0),e([ft()],Ag.prototype,"highlightedIndex",void 0);class $g extends oh{constructor(){super(...arguments),this.dirtyMessage="You have unsaved changes to the contact notepad. Are you sure you want to contiunue?"}static get styles(){return l`
|
|
12283
|
+
${Do}
|
|
12284
|
+
|
|
12348
12285
|
:host {
|
|
12349
12286
|
height: 100%;
|
|
12350
12287
|
display: flex;
|
|
12288
|
+
margin-top: var(--gap);
|
|
12351
12289
|
}
|
|
12352
12290
|
|
|
12353
12291
|
.wrapper {
|
|
@@ -12355,9 +12293,13 @@ background: #ccc;
|
|
|
12355
12293
|
--color-widget-bg: transparent;
|
|
12356
12294
|
--color-widget-bg-focused: transparent;
|
|
12357
12295
|
outline: none;
|
|
12358
|
-
border-radius: var(--curvature);
|
|
12359
12296
|
display: flex;
|
|
12360
12297
|
flex-direction: column;
|
|
12298
|
+
background: var(--surface-note);
|
|
12299
|
+
border: 1px solid var(--border-note);
|
|
12300
|
+
border-radius: var(--r-sm);
|
|
12301
|
+
box-shadow: var(--shadow-2);
|
|
12302
|
+
overflow: hidden;
|
|
12361
12303
|
}
|
|
12362
12304
|
|
|
12363
12305
|
.notepad {
|
|
@@ -16582,51 +16524,56 @@ function(t){return(e,i,o)=>((t,e,i)=>(i.configurable=!0,i.enumerable=!0,Reflect.
|
|
|
16582
16524
|
</tbody>
|
|
16583
16525
|
</table>
|
|
16584
16526
|
`}}function BC(t,e){window.customElements.get(t)||window.customElements.define(t,e)}NC.ATTACHMENT_ICONS={image:zo.attachment_image,audio:zo.attachment_audio,video:zo.attachment_video,application:zo.attachment_document},e([Nd(Rd,t=>t.flowDefinition)],NC.prototype,"definition",void 0),e([Nd(Rd,t=>t.languageCode)],NC.prototype,"languageCode",void 0),e([Nd(Rd,t=>t.isTranslating)],NC.prototype,"isTranslating",void 0),BC("temba-anchor",Yh),BC("temba-alert",Bh),BC("temba-store",qd),BC("temba-textinput",jo),BC("temba-datepicker",pu),BC("temba-range-picker",Zk),BC("temba-date",wu),BC("temba-completion",Rc),BC("temba-checkbox",Io),BC("temba-select",Pc),BC("temba-options",Ud),BC("temba-loading",jc),BC("temba-lightbox",ku),BC("temba-button",Uc),BC("temba-omnibox",Hh),BC("temba-tip",Wh),BC("temba-contact-name",Jh),BC("temba-contact-name-fetch",uu),BC("temba-contact-field",ou),BC("temba-contact-fields",eu),BC("temba-field-manager",fu),BC("temba-urn",tu),BC("temba-content-menu",yu),BC("temba-dialog",Fc),BC("temba-modax",qc),BC("temba-charcount",th),BC("temba-contact-chat",zh),BC("temba-contact-details",class extends oh{static get styles(){return l`
|
|
16585
|
-
.
|
|
16586
|
-
|
|
16587
|
-
padding: 0.4em 1em 0.8em 1em;
|
|
16588
|
-
border-bottom: 1px solid #e6e6e6;
|
|
16589
|
-
margin-bottom: 0.5em;
|
|
16527
|
+
.wrapper {
|
|
16528
|
+
padding-top: 0em;
|
|
16590
16529
|
}
|
|
16591
16530
|
|
|
16592
|
-
|
|
16593
|
-
|
|
16531
|
+
/* Mirrors the disabled <temba-contact-field> row so the Groups
|
|
16532
|
+
entry reads as just another field — same label color/size,
|
|
16533
|
+
same horizontal inset, same bottom separator. Margin matches
|
|
16534
|
+
the combined .wrapper + :host margins of contact-field
|
|
16535
|
+
(0.5em + 1em) so spacing between rows stays uniform. */
|
|
16536
|
+
.row {
|
|
16537
|
+
padding-bottom: 0.6em;
|
|
16538
|
+
border-bottom: 1px solid #ececec;
|
|
16539
|
+
margin-bottom: 1.5em;
|
|
16594
16540
|
}
|
|
16595
16541
|
|
|
16596
|
-
.
|
|
16597
|
-
|
|
16542
|
+
.row .label {
|
|
16543
|
+
color: var(--text-2);
|
|
16544
|
+
font-size: 12px;
|
|
16545
|
+
font-weight: var(--w-medium);
|
|
16546
|
+
margin-top: 0.25em;
|
|
16547
|
+
margin-left: 0.25em;
|
|
16598
16548
|
}
|
|
16599
16549
|
|
|
16600
|
-
.
|
|
16601
|
-
|
|
16602
|
-
|
|
16603
|
-
|
|
16604
|
-
|
|
16605
|
-
|
|
16606
|
-
|
|
16607
|
-
margin-bottom: 0.7em;
|
|
16550
|
+
.row .value {
|
|
16551
|
+
margin-left: 0.25em;
|
|
16552
|
+
margin-top: 0.1em;
|
|
16553
|
+
min-height: 1.75em;
|
|
16554
|
+
display: flex;
|
|
16555
|
+
flex-wrap: wrap;
|
|
16556
|
+
gap: 0.4em;
|
|
16608
16557
|
}
|
|
16609
16558
|
|
|
16610
|
-
.
|
|
16611
|
-
font-size: 0.8em;
|
|
16612
|
-
color: rgb(136, 136, 136);
|
|
16613
|
-
margin-left: 0.5em;
|
|
16614
|
-
margin-bottom: 0.4em;
|
|
16559
|
+
.group {
|
|
16615
16560
|
}
|
|
16616
16561
|
`}render(){if(!this.data)return;const t=Nl(this.data.language);return V`
|
|
16617
16562
|
<div class="wrapper">
|
|
16618
|
-
${this.data.groups.length>0?V` <div class="
|
|
16563
|
+
${this.data.groups.length>0?V` <div class="row">
|
|
16619
16564
|
<div class="label">Groups</div>
|
|
16620
|
-
|
|
16621
|
-
|
|
16622
|
-
|
|
16623
|
-
|
|
16624
|
-
|
|
16625
|
-
|
|
16626
|
-
|
|
16627
|
-
|
|
16628
|
-
|
|
16629
|
-
|
|
16565
|
+
<div class="value">
|
|
16566
|
+
${this.data.groups.map(t=>V`<temba-label
|
|
16567
|
+
class="group"
|
|
16568
|
+
onclick="goto(event)"
|
|
16569
|
+
href="/contact/group/${t.uuid}/"
|
|
16570
|
+
icon=${t.is_dynamic?zo.group_smart:zo.group}
|
|
16571
|
+
type="group"
|
|
16572
|
+
clickable
|
|
16573
|
+
>
|
|
16574
|
+
${t.name}
|
|
16575
|
+
</temba-label>`)}
|
|
16576
|
+
</div>
|
|
16630
16577
|
</div>`:null}
|
|
16631
16578
|
${this.data.urns.map(t=>{const e=t.split(":");let i=Nh[e[0]];return i||(i=Oe(e[0])),V`<temba-contact-field
|
|
16632
16579
|
name=${i}
|