11<script >
2- import { slide } from ' svelte/transition' ;
32 import Markdown from ' $lib/common/markdown/Markdown.svelte' ;
43 import BotsharpTooltip from ' $lib/common/tooltip/BotsharpTooltip.svelte' ;
5- import { ADMIN_ROLES } from ' $lib/helpers/constants' ;
6-
7- const duration = 200 ;
84
95 /**
106 * @type {{
117 * rule: import('$agentTypes').AgentRule,
128 * ruleIndex: number,
139 * collapsed?: boolean,
14- * user: import('$userTypes').UserModel,
1510 * ruleOptions?: any[],
16- * configOptions?: any[],
1711 * windowWidth: number,
1812 * ontoggle?: (data: { ruleIdx: number, field: string, checked: boolean }) => void,
1913 * onchange?: (data: { ruleIdx: number, field: string, value: string }) => void,
2014 * ondelete?: (data: { ruleIdx: number, field: string }) => void,
21- * oncollapse?: (data: { ruleIdx: number, collapsed: boolean }) => void,
22- * onconfig?: (data: { ruleIdx: number }) => void
15+ * oncollapse?: (data: { ruleIdx: number, collapsed: boolean }) => void
2316 * }}
2417 */
2518 let {
2619 rule,
2720 ruleIndex,
2821 collapsed = true ,
29- user,
3022 ruleOptions = [],
31- configOptions = [],
3223 windowWidth,
3324 ontoggle,
3425 onchange,
3526 ondelete,
36- oncollapse,
37- onconfig
27+ oncollapse
3828 } = $props ();
3929
4030 /**
7767 collapsed: ! collapsed
7868 });
7969 }
80-
81- function toggleConfig () {
82- onconfig? .({
83- ruleIdx: ruleIndex
84- });
85- }
8670< / script>
8771
8872< div class = " utility-wrapper" >
138122 < / BotsharpTooltip>
139123 < / div>
140124 {/ if }
141-
142- {#if ADMIN_ROLES .includes (user? .role || ' ' ) && !! rule .trigger_name && rule .config ? .topology_name }
143- < div class = " line-align-center" >
144- < i
145- class = " bx bx-cog text-primary fs-6 clickable"
146- id= {` rule-config-${ ruleIndex} ` }
147- data- bs- toggle= " tooltip"
148- data- bs- placement= " top"
149- title= " Rule config"
150- role= " button"
151- tabindex= " 0"
152- onkeydown= {() => {}}
153- onclick= {() => toggleConfig ()}
154- >< / i>
155- < / div>
156- {/ if }
157125 < / div>
158126 < / div>
159127 < div class = " utility-value" >
181149 < / div>
182150 < / div>
183151 < / div>
184-
185- {#if ! collapsed}
186- < div class = " utility-row utility-row-secondary" transition: slide= {{ duration: duration }}>
187- < div class = " utility-content" >
188- < div class = " utility-list-item" >
189- < div class = " utility-label line-align-center" >
190- < div class = " d-flex gap-1" >
191- < div class = " line-align-center" >
192- {' Topology' }
193- < / div>
194- < div class = " line-align-center" >< / div>
195- < / div>
196- < / div>
197- < div class = " utility-value" >
198- < div class = " utility-input line-align-center" >
199- < select
200- class = " form-select"
201- onchange= {e => changeRule (e, ' topology' )}
202- >
203- {#each [... configOptions] as option}
204- < option value= {` ${ option .name } ` } selected= {option .name == rule .config ? .topology_name }>
205- {option .name }
206- < / option>
207- {/ each}
208- < / select>
209- < / div>
210- < div class = " utility-delete line-align-center" >< / div>
211- < / div>
212- < / div>
213- < / div>
214- < / div>
215- {/ if }
216152< / div>
0 commit comments