@eric-emg/symphiq-components 1.3.73 → 1.3.74

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.
@@ -50760,7 +50760,8 @@ class SymphiqFunnelAnalysisDashboardComponent {
50760
50760
  [isLoading]="isLoading() && !isShowingLoader()"
50761
50761
  [requestedByUser]="requestedByUser()"
50762
50762
  [createdDate]="analysisCreatedDate()"
50763
- [showSearchControl]="!isLoading()" [showViewModeControl]="!isLoading()"
50763
+ [showSearchControl]="!isLoading()"
50764
+ [showViewModeControl]="!isLoading()"
50764
50765
  [hasCondensedLeftContent]="!!revenueMetric()"
50765
50766
  [embedded]="embedded()"
50766
50767
  [scrollEvent]="scrollEvent()"
@@ -51722,7 +51723,7 @@ class SymphiqFunnelAnalysisDashboardComponent {
51722
51723
  type: HostListener,
51723
51724
  args: ['window:scroll']
51724
51725
  }] }); })();
51725
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisDashboardComponent, { className: "SymphiqFunnelAnalysisDashboardComponent", filePath: "lib/components/funnel-analysis-dashboard/symphiq-funnel-analysis-dashboard.component.ts", lineNumber: 1196 }); })();
51726
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqFunnelAnalysisDashboardComponent, { className: "SymphiqFunnelAnalysisDashboardComponent", filePath: "lib/components/funnel-analysis-dashboard/symphiq-funnel-analysis-dashboard.component.ts", lineNumber: 1197 }); })();
51726
51727
 
51727
51728
  /**
51728
51729
  * Shared Theme Color Utilities
@@ -102164,7 +102165,7 @@ class SymphiqProfileAnalysisFocusAreaDashboardComponent {
102164
102165
  i0.ɵɵadvance();
102165
102166
  i0.ɵɵproperty("viewMode", ctx.viewMode())("progress", ctx.scrollProgress())("embedded", ctx.embedded());
102166
102167
  i0.ɵɵadvance(2);
102167
- i0.ɵɵproperty("title", ctx.getAnalysisSubtitle())("subtitle", "")("currentSection", "Focus Area")("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("createdDate", (tmp_14_0 = ctx.profileAnalysis()) == null ? null : tmp_14_0.selfContentCompletedDate)("showSearchControl", ctx.shouldShowHeaderControls())("showViewModeControl", ctx.shouldShowHeaderControls())("embedded", ctx.embedded())("scrollEvent", ctx.scrollEvent());
102168
+ i0.ɵɵproperty("title", ctx.getAnalysisSubtitle())("subtitle", "")("currentSection", "Focus Area")("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("createdDate", (tmp_14_0 = ctx.profileAnalysis()) == null ? null : tmp_14_0.selfContentCompletedDate)("showSearchControl", false)("showViewModeControl", ctx.shouldShowHeaderControls())("embedded", ctx.embedded())("scrollEvent", ctx.scrollEvent());
102168
102169
  i0.ɵɵadvance();
102169
102170
  i0.ɵɵclassProp("pb-32", ctx.shouldShowReviewFooter());
102170
102171
  i0.ɵɵadvance();
@@ -102293,7 +102294,8 @@ class SymphiqProfileAnalysisFocusAreaDashboardComponent {
102293
102294
  [isLoading]="isLoading()"
102294
102295
  [requestedByUser]="requestedByUser()"
102295
102296
  [createdDate]="profileAnalysis()?.selfContentCompletedDate"
102296
- [showSearchControl]="shouldShowHeaderControls()" [showViewModeControl]="shouldShowHeaderControls()"
102297
+ [showSearchControl]="false"
102298
+ [showViewModeControl]="shouldShowHeaderControls()"
102297
102299
  [embedded]="embedded()"
102298
102300
  [scrollEvent]="scrollEvent()"
102299
102301
  (searchClick)="openSearch()"
@@ -102613,7 +102615,7 @@ class SymphiqProfileAnalysisFocusAreaDashboardComponent {
102613
102615
  type: HostListener,
102614
102616
  args: ['window:scroll']
102615
102617
  }] }); })();
102616
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisFocusAreaDashboardComponent, { className: "SymphiqProfileAnalysisFocusAreaDashboardComponent", filePath: "lib/components/profile-analysis-focus-area-dashboard/symphiq-profile-analysis-focus-area-dashboard.component.ts", lineNumber: 483 }); })();
102618
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisFocusAreaDashboardComponent, { className: "SymphiqProfileAnalysisFocusAreaDashboardComponent", filePath: "lib/components/profile-analysis-focus-area-dashboard/symphiq-profile-analysis-focus-area-dashboard.component.ts", lineNumber: 484 }); })();
102617
102619
 
102618
102620
  function SourceSummaryComponent_Conditional_0_Conditional_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
102619
102621
  i0.ɵɵelementStart(0, "div", 4);
@@ -106309,7 +106311,8 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106309
106311
  openSourceGoalModal(analysis, sourceGoalId) {
106310
106312
  console.log('[SourceAnalysis] openSourceGoalModal called', { analysisId: analysis.id, sourceGoalId });
106311
106313
  const structured = analysis.profileAnalysisStructured;
106312
- const goals = structured?.strategicRoadmap?.goals || [];
106314
+ const sections = structured?.sections || [];
106315
+ const goals = sections.flatMap(section => section.goals || []);
106313
106316
  console.log('[SourceAnalysis] Found goals in source analysis:', goals.map(g => ({ id: g.id, title: g.title })));
106314
106317
  const goal = goals.find(g => g.id === sourceGoalId);
106315
106318
  console.log('[SourceAnalysis] Matched goal:', goal ? { id: goal.id, title: goal.title } : 'NOT FOUND');
@@ -106593,7 +106596,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106593
106596
  static { this.ɵfac = function SymphiqProfileAnalysisUnifiedDashboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SymphiqProfileAnalysisUnifiedDashboardComponent)(); }; }
106594
106597
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SymphiqProfileAnalysisUnifiedDashboardComponent, selectors: [["symphiq-profile-analysis-unified-dashboard"]], hostBindings: function SymphiqProfileAnalysisUnifiedDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
106595
106598
  i0.ɵɵlistener("scroll", function SymphiqProfileAnalysisUnifiedDashboardComponent_scroll_HostBindingHandler() { return ctx.onScroll(); }, i0.ɵɵresolveWindow);
106596
- } }, inputs: { viewMode: [1, "viewMode"], embedded: [1, "embedded"], isLoading: [1, "isLoading"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], unifiedProfileAnalysis: [1, "unifiedProfileAnalysis"], sourceProfileAnalyses: [1, "sourceProfileAnalyses"], isLoadingSourceAnalysis: [1, "isLoadingSourceAnalysis"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"], requestedByUser: [1, "requestedByUser"] }, outputs: { markAsReviewedClick: "markAsReviewedClick", generateGoalsClick: "generateGoalsClick", stepClick: "stepClick", nextStepClick: "nextStepClick", sourceAnalysisRequest: "sourceAnalysisRequest" }, features: [i0.ɵɵNgOnChangesFeature], decls: 16, vars: 33, consts: [[1, "relative"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [3, "viewMode", "progress", "embedded"], [1, "relative", "z-[51]"], [3, "searchClick", "viewModeClick", "title", "subtitle", "currentSection", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "showSearchControl", "showViewModeControl", "embedded", "scrollEvent"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12", 3, "pb-32"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "isLightMode", "isOpen"], [3, "viewMode", "currentMode", "isOpen"], [3, "viewMode", "selfContentStatus", "isLoading"], [3, "viewMode", "itemStatus", "currentStatus", "confettiIntensity", "title"], [3, "priorityActionGoalClick", "priorityActionRecommendationClick", "sourceAnalysisClickRequest", "viewMode", "loadingSourceAnalysisId"], [3, "isLightMode"], [3, "isLightMode", "allInsights", "allMetrics", "allCharts"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], ["title", "Loading Your Unified Analysis", "subtitle", "Please wait while we prepare your synthesized insights...", "size", "large", 3, "viewMode", "backdropBlur"], [1, "mb-12", "block", 3, "viewMode", "businessName", "isOnboarded", "analysisDate", "isUnifiedAnalysisComplete", "sourceAnalysesCount", "unifiedGoalsCount", "sourceGoalsCount"], [1, "mb-12", "block", 3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "goals", "viewMode"], [3, "unifiedGoalClick", "viewAllPriorityActionsClick", "sections", "viewMode", "unifiedExecutiveSummary", "unifiedTimeline", "unifiedPriorityMatrix", "unifiedNextSteps", "unifiedGoals", "shopCounts", "focusAreaCounts", "metricCounts", "storageKey"], [3, "viewAllPriorityActionsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "goals", "viewMode"], [3, "goalClick", "timeline", "viewMode", "goals"], [3, "goalClick", "matrix", "viewMode"], [3, "goalClick", "steps", "viewMode", "goals"], [3, "close", "isLightMode", "isOpen"], [3, "close", "modeSelected", "viewMode", "currentMode", "isOpen"], [3, "markAsReviewed", "viewMode", "selfContentStatus", "isLoading"]], template: function SymphiqProfileAnalysisUnifiedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
106599
+ } }, inputs: { viewMode: [1, "viewMode"], embedded: [1, "embedded"], isLoading: [1, "isLoading"], profile: [1, "profile"], funnelAnalysis: [1, "funnelAnalysis"], unifiedProfileAnalysis: [1, "unifiedProfileAnalysis"], sourceProfileAnalyses: [1, "sourceProfileAnalyses"], isLoadingSourceAnalysis: [1, "isLoadingSourceAnalysis"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], isOnboarded: [1, "isOnboarded"], forDemo: [1, "forDemo"], maxAccessibleStepId: [1, "maxAccessibleStepId"], itemStatus: [1, "itemStatus"], isMarkingAsReviewed: [1, "isMarkingAsReviewed"], requestedByUser: [1, "requestedByUser"] }, outputs: { markAsReviewedClick: "markAsReviewedClick", generateGoalsClick: "generateGoalsClick", stepClick: "stepClick", nextStepClick: "nextStepClick", sourceAnalysisRequest: "sourceAnalysisRequest" }, features: [i0.ɵɵNgOnChangesFeature], decls: 16, vars: 32, consts: [[1, "relative"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [3, "viewMode", "progress", "embedded"], [1, "relative", "z-51"], [3, "searchClick", "viewModeClick", "title", "subtitle", "viewMode", "viewModeLabel", "isLoading", "requestedByUser", "showSearchControl", "showViewModeControl", "embedded", "scrollEvent"], [3, "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12", 3, "pb-32"], [3, "sections", "viewMode", "embedded", "scrollElement"], [3, "isLightMode", "isOpen"], [3, "viewMode", "currentMode", "isOpen"], [3, "viewMode", "selfContentStatus", "isLoading"], [3, "viewMode", "itemStatus", "currentStatus", "confettiIntensity", "title"], [3, "priorityActionGoalClick", "priorityActionRecommendationClick", "sourceAnalysisClickRequest", "viewMode", "loadingSourceAnalysisId"], [3, "isLightMode"], [3, "isLightMode", "allInsights", "allMetrics", "allCharts"], [3, "nextStepClick", "stepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "z-10", "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-12", "space-y-12"], ["title", "Loading Your Unified Analysis", "subtitle", "Please wait while we prepare your synthesized insights...", "size", "large", 3, "viewMode", "backdropBlur"], [1, "mb-12", "block", 3, "viewMode", "businessName", "isOnboarded", "analysisDate", "isUnifiedAnalysisComplete", "sourceAnalysesCount", "unifiedGoalsCount", "sourceGoalsCount"], [1, "mb-12", "block", 3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "goals", "viewMode"], [3, "unifiedGoalClick", "viewAllPriorityActionsClick", "sections", "viewMode", "unifiedExecutiveSummary", "unifiedTimeline", "unifiedPriorityMatrix", "unifiedNextSteps", "unifiedGoals", "shopCounts", "focusAreaCounts", "metricCounts", "storageKey"], [3, "viewAllPriorityActionsClick", "summary", "viewMode", "shopCounts", "focusAreaCounts", "metricCounts"], [3, "goalClick", "sourceBadgeClick", "relatedMetricsClick", "goals", "viewMode"], [3, "goalClick", "timeline", "viewMode", "goals"], [3, "goalClick", "matrix", "viewMode"], [3, "goalClick", "steps", "viewMode", "goals"], [3, "close", "isLightMode", "isOpen"], [3, "close", "modeSelected", "viewMode", "currentMode", "isOpen"], [3, "markAsReviewed", "viewMode", "selfContentStatus", "isLoading"]], template: function SymphiqProfileAnalysisUnifiedDashboardComponent_Template(rf, ctx) { if (rf & 1) {
106597
106600
  i0.ɵɵelementStart(0, "div", 0);
106598
106601
  i0.ɵɵelement(1, "div", 1)(2, "symphiq-scroll-progress-bar", 2);
106599
106602
  i0.ɵɵelementStart(3, "div", 3)(4, "symphiq-dashboard-header", 4);
@@ -106620,7 +106623,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106620
106623
  i0.ɵɵadvance();
106621
106624
  i0.ɵɵproperty("viewMode", ctx.viewMode())("progress", ctx.scrollProgress())("embedded", ctx.embedded());
106622
106625
  i0.ɵɵadvance(2);
106623
- i0.ɵɵproperty("title", ctx.dashboardTitle())("subtitle", "Comprehensive cross-profile insights and recommendations")("currentSection", "Unified Goals")("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("showSearchControl", false)("showViewModeControl", true)("embedded", ctx.embedded())("scrollEvent", ctx.scrollEvent());
106626
+ i0.ɵɵproperty("title", ctx.dashboardTitle())("subtitle", "Comprehensive cross-profile insights and recommendations")("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("showSearchControl", false)("showViewModeControl", true)("embedded", ctx.embedded())("scrollEvent", ctx.scrollEvent());
106624
106627
  i0.ɵɵadvance();
106625
106628
  i0.ɵɵconditional(!ctx.isOnboarded() ? 5 : -1);
106626
106629
  i0.ɵɵadvance();
@@ -106640,7 +106643,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106640
106643
  i0.ɵɵadvance();
106641
106644
  i0.ɵɵproperty("isLightMode", ctx.isLightMode());
106642
106645
  i0.ɵɵadvance();
106643
- i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(32, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
106646
+ i0.ɵɵproperty("isLightMode", ctx.isLightMode())("allInsights", i0.ɵɵpureFunction0(31, _c0$7))("allMetrics", ctx.allMetrics())("allCharts", ctx.allCharts());
106644
106647
  } }, dependencies: [CommonModule,
106645
106648
  DashboardHeaderComponent,
106646
106649
  ScrollProgressBarComponent,
@@ -106703,11 +106706,10 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106703
106706
  [embedded]="embedded()"
106704
106707
  />
106705
106708
 
106706
- <div class="relative z-[51]">
106709
+ <div class="relative z-51">
106707
106710
  <symphiq-dashboard-header
106708
106711
  [title]="dashboardTitle()"
106709
106712
  [subtitle]="'Comprehensive cross-profile insights and recommendations'"
106710
- [currentSection]="'Unified Goals'"
106711
106713
  [viewMode]="viewMode()"
106712
106714
  [viewModeLabel]="displayModeLabel()"
106713
106715
  [isLoading]="isLoading()"
@@ -106919,7 +106921,7 @@ class SymphiqProfileAnalysisUnifiedDashboardComponent {
106919
106921
  type: HostListener,
106920
106922
  args: ['window:scroll']
106921
106923
  }] }); })();
106922
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 338 }); })();
106924
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisUnifiedDashboardComponent, { className: "SymphiqProfileAnalysisUnifiedDashboardComponent", filePath: "lib/components/profile-analysis-unified-dashboard/symphiq-profile-analysis-unified-dashboard.component.ts", lineNumber: 337 }); })();
106923
106925
 
106924
106926
  function SymphiqProfileMetricsAnalysesDashboardComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
106925
106927
  const _r1 = i0.ɵɵgetCurrentView();
@@ -108890,7 +108892,7 @@ class SymphiqProfileAnalysisMetricDashboardComponent {
108890
108892
  i0.ɵɵadvance();
108891
108893
  i0.ɵɵproperty("viewMode", ctx.viewMode())("progress", ctx.scrollProgress())("embedded", ctx.embedded());
108892
108894
  i0.ɵɵadvance(2);
108893
- i0.ɵɵproperty("title", ctx.getAnalysisSubtitle())("subtitle", "")("currentSection", "Metric")("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("createdDate", (tmp_14_0 = ctx.profileAnalysis()) == null ? null : tmp_14_0.selfContentCompletedDate)("showSearchControl", ctx.shouldShowHeaderControls())("showViewModeControl", ctx.shouldShowHeaderControls())("embedded", ctx.embedded())("scrollEvent", ctx.scrollEvent());
108895
+ i0.ɵɵproperty("title", ctx.getAnalysisSubtitle())("subtitle", "")("currentSection", "Metric")("viewMode", ctx.viewMode())("viewModeLabel", ctx.displayModeLabel())("isLoading", ctx.isLoading())("requestedByUser", ctx.requestedByUser())("createdDate", (tmp_14_0 = ctx.profileAnalysis()) == null ? null : tmp_14_0.selfContentCompletedDate)("showSearchControl", false)("showViewModeControl", ctx.shouldShowHeaderControls())("embedded", ctx.embedded())("scrollEvent", ctx.scrollEvent());
108894
108896
  i0.ɵɵadvance();
108895
108897
  i0.ɵɵclassProp("pb-32", ctx.shouldShowReviewFooter());
108896
108898
  i0.ɵɵadvance();
@@ -109023,7 +109025,8 @@ class SymphiqProfileAnalysisMetricDashboardComponent {
109023
109025
  [isLoading]="isLoading()"
109024
109026
  [requestedByUser]="requestedByUser()"
109025
109027
  [createdDate]="profileAnalysis()?.selfContentCompletedDate"
109026
- [showSearchControl]="shouldShowHeaderControls()" [showViewModeControl]="shouldShowHeaderControls()"
109028
+ [showSearchControl]="false"
109029
+ [showViewModeControl]="shouldShowHeaderControls()"
109027
109030
  [embedded]="embedded()"
109028
109031
  [scrollEvent]="scrollEvent()"
109029
109032
  (searchClick)="openSearch()"
@@ -109361,7 +109364,7 @@ class SymphiqProfileAnalysisMetricDashboardComponent {
109361
109364
  type: HostListener,
109362
109365
  args: ['window:scroll']
109363
109366
  }] }); })();
109364
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisMetricDashboardComponent, { className: "SymphiqProfileAnalysisMetricDashboardComponent", filePath: "lib/components/profile-analysis-metric-dashboard/symphiq-profile-analysis-metric-dashboard.component.ts", lineNumber: 509 }); })();
109367
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqProfileAnalysisMetricDashboardComponent, { className: "SymphiqProfileAnalysisMetricDashboardComponent", filePath: "lib/components/profile-analysis-metric-dashboard/symphiq-profile-analysis-metric-dashboard.component.ts", lineNumber: 510 }); })();
109365
109368
 
109366
109369
  const _forTrack0$4 = ($index, $item) => $item.id;
109367
109370
  function ShopProfileCategoryListComponent_For_2_Template(rf, ctx) { if (rf & 1) {