import { ref } from 'vue'; // Mock data const currentPositions = ref([ { symbol: 'AAPL', quantity: 100, marketPrice: 150.25, marketValue: 15025, weightPercent: 35.3 }, { symbol: 'MSFT', quantity: 80, marketPrice: 320.50, marketValue: 25640, weightPercent: 60.2 }, { symbol: 'GOOGL', quantity: 50, marketPrice: 140.75, marketValue: 7037.5, weightPercent: 16.5 }, ]); const driftThreshold = ref(5); const targetWeights = ref([ { symbol: 'AAPL', targetPercent: 40 }, { symbol: 'MSFT', targetPercent: 35 }, { symbol: 'GOOGL', targetPercent: 25 }, ]); const jobResult = ref(null); const totalValue = ref(42700); const addTarget = () => { targetWeights.value.push({ symbol: '', targetPercent: 0 }); }; const removeTarget = (idx) => { targetWeights.value.splice(idx, 1); }; const triggerRebalance = async () => { // Mock API call jobResult.value = { jobId: '550e8400-e29b-41d4-a716-446655440001', status: 'Queued', estimatedTradeCount: 3, estimatedCost: 127.35, }; }; const __VLS_ctx = { ...{}, ...{}, }; let __VLS_components; let __VLS_intrinsics; let __VLS_directives; /** @type {__VLS_StyleScopedClasses['header']} */ ; /** @type {__VLS_StyleScopedClasses['card']} */ ; /** @type {__VLS_StyleScopedClasses['positions-table']} */ ; /** @type {__VLS_StyleScopedClasses['positions-table']} */ ; /** @type {__VLS_StyleScopedClasses['positions-table']} */ ; /** @type {__VLS_StyleScopedClasses['drift-threshold']} */ ; /** @type {__VLS_StyleScopedClasses['drift-threshold']} */ ; /** @type {__VLS_StyleScopedClasses['btn-primary']} */ ; /** @type {__VLS_StyleScopedClasses['result-item']} */ ; /** @type {__VLS_StyleScopedClasses['result-item']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "rebalance-form" }, }); /** @type {__VLS_StyleScopedClasses['rebalance-form']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "header" }, }); /** @type {__VLS_StyleScopedClasses['header']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.h1, __VLS_intrinsics.h1)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.p, __VLS_intrinsics.p)({ ...{ class: "subtitle" }, }); /** @type {__VLS_StyleScopedClasses['subtitle']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "content" }, }); /** @type {__VLS_StyleScopedClasses['content']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "card" }, }); /** @type {__VLS_StyleScopedClasses['card']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.h2, __VLS_intrinsics.h2)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.table, __VLS_intrinsics.table)({ ...{ class: "positions-table" }, }); /** @type {__VLS_StyleScopedClasses['positions-table']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.thead, __VLS_intrinsics.thead)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.tr, __VLS_intrinsics.tr)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.th, __VLS_intrinsics.th)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.th, __VLS_intrinsics.th)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.th, __VLS_intrinsics.th)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.th, __VLS_intrinsics.th)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.th, __VLS_intrinsics.th)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.tbody, __VLS_intrinsics.tbody)({}); for (const [pos] of __VLS_vFor((__VLS_ctx.currentPositions))) { __VLS_asFunctionalElement1(__VLS_intrinsics.tr, __VLS_intrinsics.tr)({ key: (pos.symbol), }); __VLS_asFunctionalElement1(__VLS_intrinsics.td, __VLS_intrinsics.td)({}); (pos.symbol); __VLS_asFunctionalElement1(__VLS_intrinsics.td, __VLS_intrinsics.td)({}); (pos.quantity.toLocaleString()); __VLS_asFunctionalElement1(__VLS_intrinsics.td, __VLS_intrinsics.td)({}); (pos.marketPrice.toFixed(2)); __VLS_asFunctionalElement1(__VLS_intrinsics.td, __VLS_intrinsics.td)({}); (pos.marketValue.toLocaleString()); __VLS_asFunctionalElement1(__VLS_intrinsics.td, __VLS_intrinsics.td)({}); (pos.weightPercent.toFixed(1)); // @ts-ignore [currentPositions,]; } __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "total" }, }); /** @type {__VLS_StyleScopedClasses['total']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.strong, __VLS_intrinsics.strong)({}); (__VLS_ctx.totalValue.toLocaleString()); __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "card" }, }); /** @type {__VLS_StyleScopedClasses['card']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.h2, __VLS_intrinsics.h2)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "form-group" }, }); /** @type {__VLS_StyleScopedClasses['form-group']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "drift-threshold" }, }); /** @type {__VLS_StyleScopedClasses['drift-threshold']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.label, __VLS_intrinsics.label)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.input)({ type: "number", min: "0", max: "50", step: "1", }); (__VLS_ctx.driftThreshold); __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "targets" }, }); /** @type {__VLS_StyleScopedClasses['targets']} */ ; for (const [target, idx] of __VLS_vFor((__VLS_ctx.targetWeights))) { __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ key: (idx), ...{ class: "target-row" }, }); /** @type {__VLS_StyleScopedClasses['target-row']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.input)({ placeholder: "Symbol", ...{ class: "symbol-input" }, }); (target.symbol); /** @type {__VLS_StyleScopedClasses['symbol-input']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.input)({ type: "number", min: "0", max: "100", step: "1", placeholder: "%", ...{ class: "percent-input" }, }); (target.targetPercent); /** @type {__VLS_StyleScopedClasses['percent-input']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.button, __VLS_intrinsics.button)({ ...{ onClick: (...[$event]) => { return (__VLS_ctx.removeTarget(idx)); // @ts-ignore [totalValue, driftThreshold, targetWeights, removeTarget,]; } }, ...{ class: "btn-remove" }, }); /** @type {__VLS_StyleScopedClasses['btn-remove']} */ ; // @ts-ignore []; } __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "actions" }, }); /** @type {__VLS_StyleScopedClasses['actions']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.button, __VLS_intrinsics.button)({ ...{ onClick: (__VLS_ctx.addTarget) }, ...{ class: "btn-secondary" }, }); /** @type {__VLS_StyleScopedClasses['btn-secondary']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.button, __VLS_intrinsics.button)({ ...{ onClick: (__VLS_ctx.triggerRebalance) }, ...{ class: "btn-primary" }, }); /** @type {__VLS_StyleScopedClasses['btn-primary']} */ ; if (__VLS_ctx.jobResult) { __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "card result" }, }); /** @type {__VLS_StyleScopedClasses['card']} */ ; /** @type {__VLS_StyleScopedClasses['result']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.h2, __VLS_intrinsics.h2)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "result-item" }, }); /** @type {__VLS_StyleScopedClasses['result-item']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({ ...{ class: "mono" }, }); /** @type {__VLS_StyleScopedClasses['mono']} */ ; (__VLS_ctx.jobResult.jobId); __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "result-item" }, }); /** @type {__VLS_StyleScopedClasses['result-item']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({ ...{ class: "status-badge" }, }); /** @type {__VLS_StyleScopedClasses['status-badge']} */ ; (__VLS_ctx.jobResult.status); __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "result-item" }, }); /** @type {__VLS_StyleScopedClasses['result-item']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({}); (__VLS_ctx.jobResult.estimatedTradeCount); __VLS_asFunctionalElement1(__VLS_intrinsics.div, __VLS_intrinsics.div)({ ...{ class: "result-item" }, }); /** @type {__VLS_StyleScopedClasses['result-item']} */ ; __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({}); __VLS_asFunctionalElement1(__VLS_intrinsics.span, __VLS_intrinsics.span)({}); (__VLS_ctx.jobResult.estimatedCost.toFixed(2)); } // @ts-ignore [addTarget, triggerRebalance, jobResult, jobResult, jobResult, jobResult, jobResult,]; const __VLS_export = (await import('vue')).defineComponent({}); export default {};