529 lines
22 KiB
Markdown
529 lines
22 KiB
Markdown
# Graph Report - fabric-nademitex_user (2026-10-01)
|
|||
|
|
|
||
|
|
## Corpus Check
|
||
|
|
- 222 files · ~295,428 words
|
||
|
|
- Verdict: corpus is large enough that graph structure adds value.
|
||
|
|
- Unclassified: 23 file(s) not represented in the graph (top: .css 7, .woff2 6, (none) 5)
|
||
|
|
|
||
|
|
## Summary
|
||
|
|
- 1643 nodes · 3374 edges · 97 communities (85 shown, 12 thin omitted)
|
||
|
|
- Extraction: 98% EXTRACTED · 2% INFERRED · 0% AMBIGUOUS · INFERRED: 57 edges (avg confidence: 0.85)
|
||
|
|
- Token cost: 0 input · 0 output
|
||
|
|
|
||
|
|
## Graph Freshness
|
||
|
|
- Built from commit: `adb0ce88`
|
||
|
|
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
|
||
|
|
- Run `graphify update .` after code changes (no API cost).
|
||
|
|
|
||
|
|
## Community Hubs (Navigation)
|
||
|
|
- ProductsView.vue
|
||
|
|
- LatestOrderStatusView.vue
|
||
|
|
- HomeView.vue
|
||
|
|
- OrderDetailView.vue
|
||
|
|
- ProductDetailView.vue
|
||
|
|
- CheckFormView.vue
|
||
|
|
- CustomerDetailView.vue
|
||
|
|
- CustomerCreateForm.vue
|
||
|
|
- PersianDateInput.vue
|
||
|
|
- CatalogDetailView.vue
|
||
|
|
- TimeInput.vue
|
||
|
|
- RemindersView.vue
|
||
|
|
- types/crm.ts
|
||
|
|
- SettlementTypeView.vue
|
||
|
|
- MobileProfilePage.vue
|
||
|
|
- AppSelect.vue
|
||
|
|
- OtpView.vue
|
||
|
|
- ProfileEditView.vue
|
||
|
|
- useOrderList.ts
|
||
|
|
- DesktopProfilePage.vue
|
||
|
|
- vue-router
|
||
|
|
- MeetingReportForm.vue
|
||
|
|
- package.json
|
||
|
|
- categoryIcons.ts
|
||
|
|
- format.ts
|
||
|
|
- router/index.ts
|
||
|
|
- auth.ts
|
||
|
|
- CustomersView.vue
|
||
|
|
- devDependencies
|
||
|
|
- serve-user.mjs
|
||
|
|
- RegisterView.vue
|
||
|
|
- AddressesView.vue
|
||
|
|
- stores/crm.ts
|
||
|
|
- AppSlotBanner.vue
|
||
|
|
- navigation.ts
|
||
|
|
- orderTracking.ts
|
||
|
|
- CheckListView.vue
|
||
|
|
- CashSettlementView.vue
|
||
|
|
- AuthThemeToggle.vue
|
||
|
|
- CategoriesView.vue
|
||
|
|
- types/index.ts
|
||
|
|
- vue
|
||
|
|
- BasicIcon.vue
|
||
|
|
- BaseButton.vue
|
||
|
|
- AppToast.vue
|
||
|
|
- CatalogsHubView.vue
|
||
|
|
- FavoritesView.vue
|
||
|
|
- HomeSuggestionsSection.vue
|
||
|
|
- LoginView.vue
|
||
|
|
- ProductOrderModal.vue
|
||
|
|
- DesktopHeader.vue
|
||
|
|
- SupportWidget.vue
|
||
|
|
- catalogGallery.ts
|
||
|
|
- DesktopCartPage.vue
|
||
|
|
- useOrderStore
|
||
|
|
- cart.ts
|
||
|
|
- supportLinks.ts
|
||
|
|
- scripts
|
||
|
|
- main.ts
|
||
|
|
- caliteCollections.ts
|
||
|
|
- WelcomeView.vue
|
||
|
|
- CheckModeSelectView.vue
|
||
|
|
- DesktopSidebar.vue
|
||
|
|
- StatusBadge.vue
|
||
|
|
- http.ts
|
||
|
|
- ProfileDisplayView.vue
|
||
|
|
- fabric-trade
|
||
|
|
- App.vue
|
||
|
|
- IconChevronLeft.vue
|
||
|
|
- useConfirm.ts
|
||
|
|
- dependencies
|
||
|
|
- tsconfig.app.json
|
||
|
|
- CustomerCreateOverlay.vue
|
||
|
|
- formatNumber
|
||
|
|
- useProductOrdering
|
||
|
|
- usePublicContact.ts
|
||
|
|
- buildCatalogGallery
|
||
|
|
- .oxlintrc.json
|
||
|
|
- DefaultLayout.vue
|
||
|
|
- useCatalogRequest
|
||
|
|
- vite.config.ts
|
||
|
|
- AddressCompletionModal.vue
|
||
|
|
- MeetingReportOverlay.vue
|
||
|
|
- buildProductsQuery
|
||
|
|
- .prettierrc.json
|
||
|
|
- useCatalogRequest.ts
|
||
|
|
- useSlotBanners.ts
|
||
|
|
- storage.ts
|
||
|
|
- entrypoint.sh
|
||
|
|
- IconHeart.vue
|
||
|
|
- SearchField.vue
|
||
|
|
- tsconfig.json
|
||
|
|
- unocss
|
||
|
|
|
||
|
|
## God Nodes (most connected - your core abstractions)
|
||
|
|
1. `vue` - 90 edges
|
||
|
|
2. `vue-router` - 56 edges
|
||
|
|
3. `router` - 35 edges
|
||
|
|
4. `useAuthStore` - 32 edges
|
||
|
|
5. `formatNumber()` - 32 edges
|
||
|
|
6. `useCrmStore` - 27 edges
|
||
|
|
7. `useOrderStore` - 27 edges
|
||
|
|
8. `apiRequest()` - 24 edges
|
||
|
|
9. `toPersianDigits()` - 24 edges
|
||
|
|
10. `useCartStore` - 22 edges
|
||
|
|
|
||
|
|
## Surprising Connections (you probably didn't know these)
|
||
|
|
- `useFavoritesStore` --indirect_call--> `toggle()` [INFERRED]
|
||
|
|
fabric-nademitex_user/src/stores/favorites.ts → fabric-nademitex_user/src/components/ui/AppSelect.vue
|
||
|
|
- `useCartStore` --indirect_call--> `selectCompany()` [INFERRED]
|
||
|
|
fabric-nademitex_user/src/stores/cart.ts → fabric-nademitex_user/src/views/companies/CompanySelectView.vue
|
||
|
|
- `useCatalogRequestsStore` --indirect_call--> `statusLabel()` [INFERRED]
|
||
|
|
fabric-nademitex_user/src/stores/catalogRequests.ts → fabric-nademitex_user/src/views/customers/CustomersView.vue
|
||
|
|
- `goCta()` --calls--> `followBannerLink()` [EXTRACTED]
|
||
|
|
fabric-nademitex_user/src/components/banners/AppSlotBanner.vue → fabric-nademitex_user/src/utils/bannerLink.ts
|
||
|
|
- `onBannerSurfaceClick()` --calls--> `followBannerLink()` [EXTRACTED]
|
||
|
|
fabric-nademitex_user/src/components/banners/AppSlotBanner.vue → fabric-nademitex_user/src/utils/bannerLink.ts
|
||
|
|
|
||
|
|
## Import Cycles
|
||
|
|
- None detected.
|
||
|
|
|
||
|
|
## Communities (97 total, 12 thin omitted)
|
||
|
|
|
||
|
|
### Community 0 - "ProductsView.vue"
|
||
|
|
Cohesion: 0.04
|
||
|
|
Nodes (41): categoryIconOf(), usageCategoryIconKey(), bannerCopy, bannerIcon, bannerImageLink, bannerImageUrl, { banners: productsHeroBanners }, bannerStyle (+33 more)
|
||
|
|
|
||
|
|
### Community 1 - "LatestOrderStatusView.vue"
|
||
|
|
Cohesion: 0.06
|
||
|
|
Nodes (38): props, CatalogRequest, CatalogRequestItem, CatalogRequestStatus, mapServerRow(), readAll(), SERVER_TO_UI, STATUS_LABELS (+30 more)
|
||
|
|
|
||
|
|
### Community 2 - "HomeView.vue"
|
||
|
|
Cohesion: 0.05
|
||
|
|
Nodes (37): actions, agentActions, agentLevel, auth, banner, bannerImageLink, bannerIndex, banners (+29 more)
|
||
|
|
|
||
|
|
### Community 3 - "OrderDetailView.vue"
|
||
|
|
Cohesion: 0.07
|
||
|
|
Nodes (38): checksTotal, props, getStatusHero(), getTrackingFooterLabel(), CASH_PAYMENT_STATUSES, isInCashPaymentPhase(), isInCheckPhase(), SETTLEMENT_TYPE_LABELS (+30 more)
|
||
|
|
|
||
|
|
### Community 4 - "ProductDetailView.vue"
|
||
|
|
Cohesion: 0.05
|
||
|
|
Nodes (37): adding, cartStore, catalogStore, categoryChips, closeOrderModal(), crm, currentColorName, currentGalleryImage (+29 more)
|
||
|
|
|
||
|
|
### Community 5 - "CheckFormView.vue"
|
||
|
|
Cohesion: 0.07
|
||
|
|
Nodes (37): MeterageValidationResult, parseFormattedNumber(), fileToBase64(), validateImageFile(), validateNationalId(), validateSayadId(), amount, backImage (+29 more)
|
||
|
|
|
||
|
|
### Community 6 - "CustomerDetailView.vue"
|
||
|
|
Cohesion: 0.06
|
||
|
|
Nodes (27): agentCode, agentInitial, agentName, auth, closeEdit(), closeMeetingReport(), crm, customer (+19 more)
|
||
|
|
|
||
|
|
### Community 7 - "CustomerCreateForm.vue"
|
||
|
|
Cohesion: 0.08
|
||
|
|
Nodes (32): auth, businessName, clearField(), crm, emit, fieldErrors, firstName, formError (+24 more)
|
||
|
|
|
||
|
|
### Community 8 - "PersianDateInput.vue"
|
||
|
|
Cohesion: 0.10
|
||
|
|
Nodes (30): jalaali-js, calendarDays, closeCalendar(), displayValue, emit, isOpen, isToday(), onDocumentClick() (+22 more)
|
||
|
|
|
||
|
|
### Community 9 - "CatalogDetailView.vue"
|
||
|
|
Cohesion: 0.08
|
||
|
|
Nodes (27): demoProductsFor(), findMockCalite(), catalogLatinName(), addAllToInquiry(), adding, appToast, cartStore, catalog (+19 more)
|
||
|
|
|
||
|
|
### Community 10 - "TimeInput.vue"
|
||
|
|
Cohesion: 0.09
|
||
|
|
Nodes (27): closePanel(), confirmSelection(), displayValue, draftHour, draftMinute, emit, formatTimeLabel(), hourListRef (+19 more)
|
||
|
|
|
||
|
|
### Community 11 - "RemindersView.vue"
|
||
|
|
Cohesion: 0.07
|
||
|
|
Nodes (25): completedExpanded, completedToday, crm, customerOptions, customers, error, filter, filters (+17 more)
|
||
|
|
|
||
|
|
### Community 12 - "types/crm.ts"
|
||
|
|
Cohesion: 0.08
|
||
|
|
Nodes (25): AgentProfile, CrmCustomer, CrmMeeting, CrmOrderSummary, CrmReminder, CustomerStatus, CustomerTab, HomeBanner (+17 more)
|
||
|
|
|
||
|
|
### Community 13 - "SettlementTypeView.vue"
|
||
|
|
Cohesion: 0.10
|
||
|
|
Nodes (23): steps, useRequirePricedOrder(), redirectIfNeeded(), OrderItem, canChooseSettlement(), canEnterChecks(), canSubmitCashReceipt(), CASH_RECEIPT_STATUSES (+15 more)
|
||
|
|
|
||
|
|
### Community 14 - "MobileProfilePage.vue"
|
||
|
|
Cohesion: 0.07
|
||
|
|
Nodes (27): agentQuickActions, auth, code, codeLabel, crm, customerQuickActions, customersCount, displayName (+19 more)
|
||
|
|
|
||
|
|
### Community 15 - "AppSelect.vue"
|
||
|
|
Cohesion: 0.11
|
||
|
|
Nodes (25): AppSelectOption, bindPositionListeners(), displayLabel, emit, filteredOptions, menuRef, menuStyle, onOptionKeydown() (+17 more)
|
||
|
|
|
||
|
|
### Community 16 - "OtpView.vue"
|
||
|
|
Cohesion: 0.13
|
||
|
|
Nodes (23): extractNumericString(), auth, canResend, clearCodeError(), code, digits, fieldErrors, fillDigits() (+15 more)
|
||
|
|
|
||
|
|
### Community 17 - "ProfileEditView.vue"
|
||
|
|
Cohesion: 0.10
|
||
|
|
Nodes (23): fileToProfileAvatar(), readFileAsDataUrl(), resizeDataUrl(), address, auth, avatarUrl, fieldErrors, fileInput (+15 more)
|
||
|
|
|
||
|
|
### Community 18 - "useOrderList.ts"
|
||
|
|
Cohesion: 0.12
|
||
|
|
Nodes (16): useOrderList(), companySlug(), iconVariant(), CANCELLED_STATUSES, DELIVERED_STATUSES, DesktopOrderFilterId, IN_PROGRESS_STATUSES, matchesDesktopOrderFilter() (+8 more)
|
||
|
|
|
||
|
|
### Community 19 - "DesktopProfilePage.vue"
|
||
|
|
Cohesion: 0.09
|
||
|
|
Nodes (22): unreadLabel, monthLabel, toPersianDigits(), displayPhone, displayDigit(), timerLabel, displayPhone, auth (+14 more)
|
||
|
|
|
||
|
|
### Community 20 - "vue-router"
|
||
|
|
Cohesion: 0.11
|
||
|
|
Nodes (14): vue-router, navigateToCatalogProduct(), catalogs, catalogStore, company, companyId, loading, openCatalog() (+6 more)
|
||
|
|
|
||
|
|
### Community 21 - "MeetingReportForm.vue"
|
||
|
|
Cohesion: 0.09
|
||
|
|
Nodes (19): content, crm, customer, date, emit, error, interactionType, loading (+11 more)
|
||
|
|
|
||
|
|
### Community 22 - "package.json"
|
||
|
|
Cohesion: 0.11
|
||
|
|
Nodes (20): name, private, type, version, eslint, eslint-config-prettier, eslint-plugin-oxlint, eslint-plugin-vue (+12 more)
|
||
|
|
|
||
|
|
### Community 23 - "categoryIcons.ts"
|
||
|
|
Cohesion: 0.10
|
||
|
|
Nodes (8): CATEGORY_ICON_MAP, USAGE_ICON_BY_ID, displayCompanies, emit, orderSteps, props, quickLinks, router
|
||
|
|
|
||
|
|
### Community 24 - "format.ts"
|
||
|
|
Cohesion: 0.10
|
||
|
|
Nodes (16): props, remaining, isFull, isNearFull, percentage, props, remaining, formatMeterage() (+8 more)
|
||
|
|
|
||
|
|
### Community 25 - "router/index.ts"
|
||
|
|
Cohesion: 0.11
|
||
|
|
Nodes (11): router, NotificationTone, SHOP_BROWSE_PATH, {
|
||
|
|
cartStore,
|
||
|
|
items,
|
||
|
|
isEmpty,
|
||
|
|
companyName,
|
||
|
|
companySummaries,
|
||
|
|
showFullDialog,
|
||
|
|
submitting,
|
||
|
|
submitError,
|
||
|
|
addressPickerOpen,
|
||
|
|
addresses,
|
||
|
|
selectedAddressId,
|
||
|
|
newAddress,
|
||
|
|
addressBusy,
|
||
|
|
confirmAddressAndOrder,
|
||
|
|
removeItem,
|
||
|
|
proceedToCheckout,
|
||
|
|
proceedAnyway,
|
||
|
|
createNewInvoice,
|
||
|
|
}, router, router, hasUnread, items (+3 more)
|
||
|
|
|
||
|
|
### Community 26 - "auth.ts"
|
||
|
|
Cohesion: 0.23
|
||
|
|
Nodes (19): cacheUser(), fetchMe(), getCachedUser(), getCurrentUser(), isAuthenticated(), logout(), PendingOtp, sendOtp() (+11 more)
|
||
|
|
|
||
|
|
### Community 27 - "CustomersView.vue"
|
||
|
|
Cohesion: 0.11
|
||
|
|
Nodes (20): activeCount, closeCreate(), crm, customerListQuery(), customers, cycleStatusFilter(), error, filtered (+12 more)
|
||
|
|
|
||
|
|
### Community 28 - "devDependencies"
|
||
|
|
Cohesion: 0.10
|
||
|
|
Nodes (21): devDependencies, eslint, eslint-config-prettier, eslint-plugin-oxlint, eslint-plugin-vue, jiti, npm-run-all2, oxlint (+13 more)
|
||
|
|
|
||
|
|
### Community 29 - "serve-user.mjs"
|
||
|
|
Cohesion: 0.12
|
||
|
|
Nodes (12): root, __dirname, distDir, MIME, port, resolveSafe(), sendFile(), sendIndex() (+4 more)
|
||
|
|
|
||
|
|
### Community 30 - "RegisterView.vue"
|
||
|
|
Cohesion: 0.11
|
||
|
|
Nodes (16): JOB_CATEGORY_OPTIONS, JobCategory, PendingRegister, acceptedTerms, auth, clearField(), fieldErrors, firstName (+8 more)
|
||
|
|
|
||
|
|
### Community 31 - "AddressesView.vue"
|
||
|
|
Cohesion: 0.11
|
||
|
|
Nodes (17): add(), addOpen, closeAddForm(), formError, isDesktop, label, loading, makeDefault() (+9 more)
|
||
|
|
|
||
|
|
### Community 32 - "stores/crm.ts"
|
||
|
|
Cohesion: 0.26
|
||
|
|
Nodes (19): AgentProfileDto, agentRequest(), BrowseProductDto, completeReminder(), createAgentCustomer(), CreateAgentCustomerPayload, CreateMeetingPayload, createMeetingReport() (+11 more)
|
||
|
|
|
||
|
|
### Community 33 - "AppSlotBanner.vue"
|
||
|
|
Cohesion: 0.12
|
||
|
|
Nodes (15): banner, bannerImageLink, { banners, loading }, bannerStyle, goCta(), index, onBannerSurfaceClick(), { onTouchStart, onTouchEnd } (+7 more)
|
||
|
|
|
||
|
|
### Community 34 - "navigation.ts"
|
||
|
|
Cohesion: 0.13
|
||
|
|
Nodes (14): cartCount, cartStore, navigate(), route, router, DESKTOP_NAV_ITEMS, isNavItemActive(), MAIN_NAV_ITEMS (+6 more)
|
||
|
|
|
||
|
|
### Community 35 - "orderTracking.ts"
|
||
|
|
Cohesion: 0.15
|
||
|
|
Nodes (16): icons, currentIndex, props, steps, timestampFor(), OrderStatus, getOrderTrackingSteps(), getStepTimestamp() (+8 more)
|
||
|
|
|
||
|
|
### Community 36 - "CheckListView.vue"
|
||
|
|
Cohesion: 0.10
|
||
|
|
Nodes (15): authStore, checks, formError, invoiceAmount, isAmountComplete, isCheckout, isOverInvoice, openMenuId (+7 more)
|
||
|
|
|
||
|
|
### Community 37 - "CashSettlementView.vue"
|
||
|
|
Cohesion: 0.12
|
||
|
|
Nodes (14): BankAccount, formatDate(), formatDateTime(), isJalaliDateString(), accountsSectionTitle, bankAccounts, catalogStore, expiryMessage (+6 more)
|
||
|
|
|
||
|
|
### Community 38 - "AuthThemeToggle.vue"
|
||
|
|
Cohesion: 0.15
|
||
|
|
Nodes (15): pinia, @vueuse/core, { isDark }, themeIcon, themeLabel, themeStore, close(), open (+7 more)
|
||
|
|
|
||
|
|
### Community 39 - "CategoriesView.vue"
|
||
|
|
Cohesion: 0.12
|
||
|
|
Nodes (12): CATALOG_SEASON_CATEGORIES, CATALOG_USAGE_CATEGORIES, getCatalogCategories(), ProductCategory, SeasonCategory, crm, error, { goBack } (+4 more)
|
||
|
|
|
||
|
|
### Community 40 - "types/index.ts"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (15): Cart, CashPaymentReceipt, CheckData, CheckRassResult, CheckRegistrationMode, Order, OrderStatusHistoryEntry, SettlementType (+7 more)
|
||
|
|
|
||
|
|
### Community 41 - "vue"
|
||
|
|
Cohesion: 0.14
|
||
|
|
Nodes (10): vue, Company, cartStore, catalogStore, companies, displayMeta, { goBack }, loading (+2 more)
|
||
|
|
|
||
|
|
### Community 42 - "BasicIcon.vue"
|
||
|
|
Cohesion: 0.15
|
||
|
|
Nodes (6): ariaHidden, attrs, props, style, svgHtml, emit
|
||
|
|
|
||
|
|
### Community 43 - "BaseButton.vue"
|
||
|
|
Cohesion: 0.14
|
||
|
|
Nodes (10): props, resolvedIcon, resolvedMessage, resolvedTitle, variantIcons, variantTitles, emit, emit (+2 more)
|
||
|
|
|
||
|
|
### Community 44 - "AppToast.vue"
|
||
|
|
Cohesion: 0.15
|
||
|
|
Nodes (12): footerRef, { message, title, tone, clear }, onKeydown(), toneClass, AppToastTone, defaultTitle(), message, title (+4 more)
|
||
|
|
|
||
|
|
### Community 45 - "CatalogsHubView.vue"
|
||
|
|
Cohesion: 0.12
|
||
|
|
Nodes (13): useGoBack(), catalogs, catalogStore, crm, filter, filters, { goBack }, loading (+5 more)
|
||
|
|
|
||
|
|
### Community 46 - "FavoritesView.vue"
|
||
|
|
Cohesion: 0.15
|
||
|
|
Nodes (12): readLocal(), useFavoritesStore, writeLocal(), productListThumb(), crm, error, favorites, loading (+4 more)
|
||
|
|
|
||
|
|
### Community 47 - "HomeSuggestionsSection.vue"
|
||
|
|
Cohesion: 0.14
|
||
|
|
Nodes (9): favorites, hasItems, props, {
|
||
|
|
requesting,
|
||
|
|
addressModalOpen,
|
||
|
|
addressError,
|
||
|
|
requestCatalog,
|
||
|
|
submitAddressAndRequest,
|
||
|
|
closeAddressModal,
|
||
|
|
}, requestSwatch(), router, toProductCard(), isProductUnavailable() (+1 more)
|
||
|
|
|
||
|
|
### Community 48 - "LoginView.vue"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (13): normalizePhone(), validatePhone(), auth, fieldErrors, formError, onPhoneBlur(), onPhoneInput(), phone (+5 more)
|
||
|
|
|
||
|
|
### Community 49 - "ProductOrderModal.vue"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (11): emit, estimatedPrice, onKeydown(), props, rollsByColor, submit(), totalMeters, totalRolls (+3 more)
|
||
|
|
|
||
|
|
### Community 50 - "DesktopHeader.vue"
|
||
|
|
Cohesion: 0.15
|
||
|
|
Nodes (8): authStore, cartStore, companyLabel, initials, logout(), notificationStore, router, showUserMenu
|
||
|
|
|
||
|
|
### Community 51 - "SupportWidget.vue"
|
||
|
|
Cohesion: 0.17
|
||
|
|
Nodes (10): LINK_ICON, { load, loaded, supportLinks, hasSupportLinks }, onFabKeydown(), open, panelRef, props, rootRef, showWidget (+2 more)
|
||
|
|
|
||
|
|
### Community 52 - "catalogGallery.ts"
|
||
|
|
Cohesion: 0.19
|
||
|
|
Nodes (12): CatalogProductCard, SeasonKind, Catalog, CatalogGalleryCard, CatalogGalleryFilter, CatalogPatternCard, filterCatalogGallery(), normalizeCatalogSearchText() (+4 more)
|
||
|
|
|
||
|
|
### Community 53 - "DesktopCartPage.vue"
|
||
|
|
Cohesion: 0.18
|
||
|
|
Nodes (5): CartItem, emit, quickLinks, router, emit
|
||
|
|
|
||
|
|
### Community 54 - "useOrderStore"
|
||
|
|
Cohesion: 0.26
|
||
|
|
Nodes (11): useCartPage(), chosenAddressText(), confirmAddressAndOrder(), openAddressPicker(), proceedAnyway(), proceedToCheckout(), removeItem(), submitOrder() (+3 more)
|
||
|
|
|
||
|
|
### Community 55 - "cart.ts"
|
||
|
|
Cohesion: 0.33
|
||
|
|
Nodes (9): ApiCart, companyMeterage(), emptyCart(), uniqueCompanyNames(), useCartStore, useLocalCart(), useCatalogStore, Product (+1 more)
|
||
|
|
|
||
|
|
### Community 56 - "supportLinks.ts"
|
||
|
|
Cohesion: 0.35
|
||
|
|
Nodes (10): mailtoHref(), PublicContact, telHref(), buildSupportLinks(), instagramHref(), isHttpUrl(), SupportLinkItem, telegramHref() (+2 more)
|
||
|
|
|
||
|
|
### Community 57 - "scripts"
|
||
|
|
Cohesion: 0.18
|
||
|
|
Nodes (11): scripts, build, build-only, dev, format, lint, lint:eslint, lint:oxlint (+3 more)
|
||
|
|
|
||
|
|
### Community 60 - "WelcomeView.vue"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (5): go(), index, onTouchEnd(), router, slides
|
||
|
|
|
||
|
|
### Community 61 - "CheckModeSelectView.vue"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (7): formatCurrency(), invoiceLabel, invoiceLabel, { orderId, order }, orderStore, router, invoiceLabel
|
||
|
|
|
||
|
|
### Community 62 - "DesktopSidebar.vue"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (8): activeCompanyId, cartCount, cartStore, { load, supportPhone, supportHref }, navigate(), route, router, resolveNavPath()
|
||
|
|
|
||
|
|
### Community 63 - "StatusBadge.vue"
|
||
|
|
Cohesion: 0.22
|
||
|
|
Nodes (8): label, props, variant, DEFAULT_MAX_METERAGE, ORDER_STATUS_LABELS, ORDER_TRACKING_STEPS, PAYMENT_RECIPIENT_COMPANY_SLUG, STATUS_BADGE_VARIANT
|
||
|
|
|
||
|
|
### Community 64 - "http.ts"
|
||
|
|
Cohesion: 0.29
|
||
|
|
Nodes (8): ApiError, apiRequest(), buildUrl(), errorMessageFromBody(), getApiBaseUrl(), RequestOptions, fetchMySuggestions(), ProductSuggestionDto
|
||
|
|
|
||
|
|
### Community 65 - "ProfileDisplayView.vue"
|
||
|
|
Cohesion: 0.18
|
||
|
|
Nodes (9): auth, checksCount, logout(), orderStore, router, saved, { start: hideSaved }, theme (+1 more)
|
||
|
|
|
||
|
|
### Community 66 - "fabric-trade"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (9): Compile and Hot-Reload for Development, Customize configuration, fabric-trade, Lint with [ESLint](https://eslint.org/), Project Setup, Recommended Browser Setup, Recommended IDE Setup, Type-Check, Compile and Minify for Production (+1 more)
|
||
|
|
|
||
|
|
### Community 67 - "App.vue"
|
||
|
|
Cohesion: 0.20
|
||
|
|
Nodes (8): lodash-es, authStore, cartStore, catalogStore, notificationStore, orderStore, router, transitionName
|
||
|
|
|
||
|
|
### Community 69 - "useConfirm.ts"
|
||
|
|
Cohesion: 0.31
|
||
|
|
Nodes (8): cancel(), confirmAction(), state, ConfirmOptions, ConfirmState, resolveConfirm(), state, useConfirmState()
|
||
|
|
|
||
|
|
### Community 70 - "dependencies"
|
||
|
|
Cohesion: 0.22
|
||
|
|
Nodes (9): dependencies, jalaali-js, lodash-es, pinia, unocss, @unocss/vite, vue, vue-router (+1 more)
|
||
|
|
|
||
|
|
### Community 71 - "tsconfig.app.json"
|
||
|
|
Cohesion: 0.22
|
||
|
|
Nodes (8): @vue/tsconfig/tsconfig.dom.json, compilerOptions, noUncheckedIndexedAccess, paths, tsBuildInfoFile, exclude, extends, include
|
||
|
|
|
||
|
|
### Community 72 - "CustomerCreateOverlay.vue"
|
||
|
|
Cohesion: 0.36
|
||
|
|
Nodes (7): CustomerFormInitial, close(), emit, onKeydown(), onSuccess(), props, sheetTitle
|
||
|
|
|
||
|
|
### Community 73 - "formatNumber"
|
||
|
|
Cohesion: 0.32
|
||
|
|
Nodes (7): widthText(), displayValue, emit, onInput(), props, formatNumber(), metaLine()
|
||
|
|
|
||
|
|
### Community 74 - "useProductOrdering"
|
||
|
|
Cohesion: 0.32
|
||
|
|
Nodes (4): useProductOrdering(), addProduct(), adjustMeterage(), getMeterage()
|
||
|
|
|
||
|
|
### Community 75 - "usePublicContact.ts"
|
||
|
|
Cohesion: 0.32
|
||
|
|
Nodes (6): emptyContact, ensureLoaded(), state, usePublicContact(), load(), getPublicContact()
|
||
|
|
|
||
|
|
### Community 76 - "buildCatalogGallery"
|
||
|
|
Cohesion: 0.25
|
||
|
|
Nodes (8): buildCatalogGallery(), catalogDisplayTitle(), groupCatalogPatterns(), majority(), patternKindOf(), patterns, title, gallery
|
||
|
|
|
||
|
|
### Community 77 - ".oxlintrc.json"
|
||
|
|
Cohesion: 0.29
|
||
|
|
Nodes (6): categories, correctness, env, browser, plugins, $schema
|
||
|
|
|
||
|
|
### Community 78 - "DefaultLayout.vue"
|
||
|
|
Cohesion: 0.29
|
||
|
|
Nodes (5): isImmersiveAuth, isWideGuest, route, showNav, showSupportWidget
|
||
|
|
|
||
|
|
### Community 79 - "useCatalogRequest"
|
||
|
|
Cohesion: 0.43
|
||
|
|
Nodes (7): useCatalogRequest(), closeAddressModal(), createRequest(), requestCatalog(), submitAddressAndRequest(), onAddressSubmit(), requestPhysicalCatalog()
|
||
|
|
|
||
|
|
### Community 80 - "vite.config.ts"
|
||
|
|
Cohesion: 0.33
|
||
|
|
Nodes (5): @unocss/vite, vite, vite-plugin-vue-devtools, @vitejs/plugin-vue, @vitejs/plugin-vue-jsx
|
||
|
|
|
||
|
|
### Community 81 - "AddressCompletionModal.vue"
|
||
|
|
Cohesion: 0.47
|
||
|
|
Nodes (5): address, emit, onKeydown(), props, submit()
|
||
|
|
|
||
|
|
### Community 82 - "MeetingReportOverlay.vue"
|
||
|
|
Cohesion: 0.53
|
||
|
|
Nodes (5): close(), emit, onKeydown(), onSuccess(), props
|
||
|
|
|
||
|
|
### Community 83 - "buildProductsQuery"
|
||
|
|
Cohesion: 0.40
|
||
|
|
Nodes (6): applyFilter(), applySearch(), buildProductsQuery(), clearFilter(), closeFilter(), resolveFilterAxis()
|
||
|
|
|
||
|
|
### Community 84 - ".prettierrc.json"
|
||
|
|
Cohesion: 0.40
|
||
|
|
Nodes (4): printWidth, $schema, semi, singleQuote
|
||
|
|
|
||
|
|
### Community 86 - "useSlotBanners.ts"
|
||
|
|
Cohesion: 0.60
|
||
|
|
Nodes (4): useSlotBanners(), load(), AppBannerDto, fetchBanners()
|
||
|
|
|
||
|
|
### Community 87 - "storage.ts"
|
||
|
|
Cohesion: 0.40
|
||
|
|
Nodes (4): getItem(), removeItem(), setItem(), STORAGE_KEYS
|
||
|
|
|
||
|
|
### Community 88 - "entrypoint.sh"
|
||
|
|
Cohesion: 0.83
|
||
|
|
Nodes (3): escape_sed(), load_env_file(), entrypoint.sh script
|
||
|
|
|
||
|
|
## Knowledge Gaps
|
||
|
|
- **759 isolated node(s):** `$schema`, `plugins`, `browser`, `correctness`, `$schema` (+754 more)
|
||
|
|
These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 926 node(s) total have ≤1 connection when file, concept and rationale nodes are included.)
|
||
|
|
- **12 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||
|
|
|
||
|
|
## Suggested Questions
|
||
|
|
_Questions this graph is uniquely positioned to answer:_
|
||
|
|
|
||
|
|
- **Why does `vue` connect `vue` to `ProductsView.vue`, `LatestOrderStatusView.vue`, `HomeView.vue`, `OrderDetailView.vue`, `ProductDetailView.vue`, `CheckFormView.vue`, `CustomerDetailView.vue`, `CustomerCreateForm.vue`, `PersianDateInput.vue`, `CatalogDetailView.vue`, `TimeInput.vue`, `RemindersView.vue`, `types/crm.ts`, `SettlementTypeView.vue`, `MobileProfilePage.vue`, `AppSelect.vue`, `OtpView.vue`, `ProfileEditView.vue`, `useOrderList.ts`, `DesktopProfilePage.vue`, `vue-router`, `MeetingReportForm.vue`, `package.json`, `categoryIcons.ts`, `format.ts`, `router/index.ts`, `auth.ts`, `CustomersView.vue`, `RegisterView.vue`, `AddressesView.vue`, `stores/crm.ts`, `AppSlotBanner.vue`, `navigation.ts`, `orderTracking.ts`, `CheckListView.vue`, `CashSettlementView.vue`, `AuthThemeToggle.vue`, `CategoriesView.vue`, `types/index.ts`, `BasicIcon.vue`, `BaseButton.vue`, `AppToast.vue`, `CatalogsHubView.vue`, `FavoritesView.vue`, `HomeSuggestionsSection.vue`, `LoginView.vue`, `ProductOrderModal.vue`, `DesktopHeader.vue`, `SupportWidget.vue`, `cart.ts`, `main.ts`, `WelcomeView.vue`, `CheckModeSelectView.vue`, `DesktopSidebar.vue`, `StatusBadge.vue`, `ProfileDisplayView.vue`, `App.vue`, `useConfirm.ts`, `CustomerCreateOverlay.vue`, `formatNumber`, `usePublicContact.ts`, `DefaultLayout.vue`, `AddressCompletionModal.vue`, `MeetingReportOverlay.vue`, `useCatalogRequest.ts`, `useSlotBanners.ts`, `SearchField.vue`?**
|
||
|
|
_High betweenness centrality (0.334) - this node is a cross-community bridge._
|
||
|
|
- **Why does `vue-router` connect `vue-router` to `ProductsView.vue`, `LatestOrderStatusView.vue`, `HomeView.vue`, `OrderDetailView.vue`, `ProductDetailView.vue`, `CheckFormView.vue`, `CustomerDetailView.vue`, `CatalogDetailView.vue`, `RemindersView.vue`, `types/crm.ts`, `SettlementTypeView.vue`, `MobileProfilePage.vue`, `OtpView.vue`, `ProfileEditView.vue`, `useOrderList.ts`, `DesktopProfilePage.vue`, `package.json`, `categoryIcons.ts`, `format.ts`, `router/index.ts`, `CustomersView.vue`, `RegisterView.vue`, `AppSlotBanner.vue`, `navigation.ts`, `CheckListView.vue`, `CashSettlementView.vue`, `CategoriesView.vue`, `vue`, `BaseButton.vue`, `CatalogsHubView.vue`, `FavoritesView.vue`, `HomeSuggestionsSection.vue`, `LoginView.vue`, `DesktopHeader.vue`, `DesktopCartPage.vue`, `cart.ts`, `WelcomeView.vue`, `CheckModeSelectView.vue`, `DesktopSidebar.vue`, `ProfileDisplayView.vue`, `App.vue`, `IconChevronLeft.vue`, `DefaultLayout.vue`, `useCatalogRequest.ts`?**
|
||
|
|
_High betweenness centrality (0.105) - this node is a cross-community bridge._
|
||
|
|
- **Why does `devDependencies` connect `devDependencies` to `package.json`?**
|
||
|
|
_High betweenness centrality (0.031) - this node is a cross-community bridge._
|
||
|
|
- **Are the 2 inferred relationships involving `useAuthStore` (e.g. with `logout()` and `updateProfile()`) actually correct?**
|
||
|
|
_`useAuthStore` has 2 INFERRED edges - model-reasoned connections that need verification._
|
||
|
|
- **What connects `$schema`, `plugins`, `browser` to the rest of the system?**
|
||
|
|
_759 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||
|
|
- **Should `ProductsView.vue` be split into smaller, more focused modules?**
|
||
|
|
_Cohesion score 0.042352941176470586 - nodes in this community are weakly interconnected._
|
||
|
|
- **Should `LatestOrderStatusView.vue` be split into smaller, more focused modules?**
|
||
|
|
_Cohesion score 0.05959183673469388 - nodes in this community are weakly interconnected._
|