ts-spatial-navigation 1.0.0-beta.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spatial-navigation.js","sourceRoot":"","sources":["../src/spatial-navigation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * State Management Module
3
+ * Encapsulates navigation state with type-safe access.
4
+ */
5
+ import type { GlobalConfig, SectionConfig, NavigationState, SectionStore } from './types';
6
+ /**
7
+ * Creates initial global configuration with default values.
8
+ */
9
+ export declare const createDefaultGlobalConfig: () => GlobalConfig;
10
+ /**
11
+ * Creates initial navigation state.
12
+ */
13
+ export declare const createInitialState: () => NavigationState;
14
+ /**
15
+ * State Manager class for encapsulating navigation state.
16
+ * Provides type-safe access to state with controlled mutations.
17
+ */
18
+ export declare class StateManager {
19
+ private _state;
20
+ private _globalConfig;
21
+ constructor();
22
+ get globalConfig(): GlobalConfig;
23
+ setGlobalConfig(config: Partial<GlobalConfig>): void;
24
+ get ready(): boolean;
25
+ setReady(value: boolean): void;
26
+ get paused(): boolean;
27
+ setPaused(value: boolean): void;
28
+ get duringFocusChange(): boolean;
29
+ setDuringFocusChange(value: boolean): void;
30
+ get defaultSectionId(): string;
31
+ setDefaultSectionId(value: string): void;
32
+ get lastSectionId(): string;
33
+ setLastSectionId(value: string): void;
34
+ get sectionCount(): number;
35
+ get sections(): SectionStore;
36
+ /**
37
+ * Generates a unique section ID.
38
+ */
39
+ generateSectionId(): string;
40
+ /**
41
+ * Checks if a section exists.
42
+ */
43
+ hasSection(id: string): boolean;
44
+ /**
45
+ * Gets a section configuration.
46
+ */
47
+ getSection(id: string): SectionConfig | undefined;
48
+ /**
49
+ * Adds or updates a section.
50
+ */
51
+ setSection(id: string, config: SectionConfig): void;
52
+ /**
53
+ * Removes a section.
54
+ */
55
+ removeSection(id: string): boolean;
56
+ /**
57
+ * Gets all section IDs.
58
+ */
59
+ getSectionIds(): string[];
60
+ /**
61
+ * Clears all sections.
62
+ */
63
+ clearSections(): void;
64
+ /**
65
+ * Resets state to initial values.
66
+ */
67
+ reset(): void;
68
+ /**
69
+ * Resets global config to defaults.
70
+ */
71
+ resetGlobalConfig(): void;
72
+ /**
73
+ * Full reset of both state and config.
74
+ */
75
+ fullReset(): void;
76
+ }
77
+ /**
78
+ * Default singleton instance for backwards compatibility.
79
+ * New code should prefer creating instances via createSpatialNavigation().
80
+ */
81
+ export declare const defaultStateManager: StateManager;
82
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG1F;;GAEG;AACH,eAAO,MAAM,yBAAyB,QAAO,YAa3C,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAO,eASpC,CAAC;AAEH;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,aAAa,CAAe;;IAWpC,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAQpD,IAAI,KAAK,IAAI,OAAO,CAEnB;IAED,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI/B,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI1C,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIxC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQrC,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAM3B;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIjD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAQnD;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQlC;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,aAAa,IAAI,IAAI;IAWrB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAIzB;;OAEG;IACH,SAAS,IAAI,IAAI;CAIlB;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cAAqB,CAAC"}
package/dist/state.js ADDED
@@ -0,0 +1,179 @@
1
+ /**
2
+ * State Management Module
3
+ * Encapsulates navigation state with type-safe access.
4
+ */
5
+ import { Defaults } from './constants';
6
+ /**
7
+ * Creates initial global configuration with default values.
8
+ */
9
+ export const createDefaultGlobalConfig = () => ({
10
+ selector: '',
11
+ straightOnly: false,
12
+ straightOverlapThreshold: Defaults.STRAIGHT_OVERLAP_THRESHOLD,
13
+ rememberSource: false,
14
+ disabled: false,
15
+ defaultElement: '',
16
+ enterTo: '',
17
+ leaveFor: null,
18
+ restrict: Defaults.RESTRICT_MODE,
19
+ tabIndexIgnoreList: Defaults.TAB_INDEX_IGNORE_LIST,
20
+ sectionPrefix: Defaults.SECTION_PREFIX,
21
+ eventPrefix: Defaults.EVENT_PREFIX,
22
+ });
23
+ /**
24
+ * Creates initial navigation state.
25
+ */
26
+ export const createInitialState = () => ({
27
+ ready: false,
28
+ paused: false,
29
+ duringFocusChange: false,
30
+ sections: new Map(),
31
+ sectionCount: 0,
32
+ defaultSectionId: '',
33
+ lastSectionId: '',
34
+ idPool: 0,
35
+ });
36
+ /**
37
+ * State Manager class for encapsulating navigation state.
38
+ * Provides type-safe access to state with controlled mutations.
39
+ */
40
+ export class StateManager {
41
+ constructor() {
42
+ this._state = createInitialState();
43
+ this._globalConfig = createDefaultGlobalConfig();
44
+ }
45
+ // ============================================================================
46
+ // Global Config Accessors
47
+ // ============================================================================
48
+ get globalConfig() {
49
+ return this._globalConfig;
50
+ }
51
+ setGlobalConfig(config) {
52
+ this._globalConfig = { ...this._globalConfig, ...config };
53
+ }
54
+ // ============================================================================
55
+ // State Accessors
56
+ // ============================================================================
57
+ get ready() {
58
+ return this._state.ready;
59
+ }
60
+ setReady(value) {
61
+ this._state.ready = value;
62
+ }
63
+ get paused() {
64
+ return this._state.paused;
65
+ }
66
+ setPaused(value) {
67
+ this._state.paused = value;
68
+ }
69
+ get duringFocusChange() {
70
+ return this._state.duringFocusChange;
71
+ }
72
+ setDuringFocusChange(value) {
73
+ this._state.duringFocusChange = value;
74
+ }
75
+ get defaultSectionId() {
76
+ return this._state.defaultSectionId;
77
+ }
78
+ setDefaultSectionId(value) {
79
+ this._state.defaultSectionId = value;
80
+ }
81
+ get lastSectionId() {
82
+ return this._state.lastSectionId;
83
+ }
84
+ setLastSectionId(value) {
85
+ this._state.lastSectionId = value;
86
+ }
87
+ // ============================================================================
88
+ // Section Management
89
+ // ============================================================================
90
+ get sectionCount() {
91
+ return this._state.sectionCount;
92
+ }
93
+ get sections() {
94
+ return this._state.sections;
95
+ }
96
+ /**
97
+ * Generates a unique section ID.
98
+ */
99
+ generateSectionId() {
100
+ const prefix = this._globalConfig.sectionPrefix || Defaults.SECTION_PREFIX;
101
+ const id = `${prefix}${++this._state.idPool}`;
102
+ return id;
103
+ }
104
+ /**
105
+ * Checks if a section exists.
106
+ */
107
+ hasSection(id) {
108
+ return this._state.sections.has(id);
109
+ }
110
+ /**
111
+ * Gets a section configuration.
112
+ */
113
+ getSection(id) {
114
+ return this._state.sections.get(id);
115
+ }
116
+ /**
117
+ * Adds or updates a section.
118
+ */
119
+ setSection(id, config) {
120
+ const isNew = !this._state.sections.has(id);
121
+ this._state.sections.set(id, config);
122
+ if (isNew) {
123
+ this._state.sectionCount++;
124
+ }
125
+ }
126
+ /**
127
+ * Removes a section.
128
+ */
129
+ removeSection(id) {
130
+ const existed = this._state.sections.delete(id);
131
+ if (existed) {
132
+ this._state.sectionCount--;
133
+ }
134
+ return existed;
135
+ }
136
+ /**
137
+ * Gets all section IDs.
138
+ */
139
+ getSectionIds() {
140
+ return Array.from(this._state.sections.keys());
141
+ }
142
+ /**
143
+ * Clears all sections.
144
+ */
145
+ clearSections() {
146
+ this._state.sections.clear();
147
+ this._state.sectionCount = 0;
148
+ this._state.defaultSectionId = '';
149
+ this._state.lastSectionId = '';
150
+ }
151
+ // ============================================================================
152
+ // State Reset
153
+ // ============================================================================
154
+ /**
155
+ * Resets state to initial values.
156
+ */
157
+ reset() {
158
+ this._state = createInitialState();
159
+ }
160
+ /**
161
+ * Resets global config to defaults.
162
+ */
163
+ resetGlobalConfig() {
164
+ this._globalConfig = createDefaultGlobalConfig();
165
+ }
166
+ /**
167
+ * Full reset of both state and config.
168
+ */
169
+ fullReset() {
170
+ this.reset();
171
+ this.resetGlobalConfig();
172
+ }
173
+ }
174
+ /**
175
+ * Default singleton instance for backwards compatibility.
176
+ * New code should prefer creating instances via createSpatialNavigation().
177
+ */
178
+ export const defaultStateManager = new StateManager();
179
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Navigation Strategy Module
3
+ * Implements Strategy Pattern for directional navigation.
4
+ *
5
+ * Each direction has its own strategy for determining navigation priorities
6
+ * based on spatial relationships between elements.
7
+ */
8
+ import type { Direction, DistanceFunctions, Priority, Rect } from './types';
9
+ /**
10
+ * Strategy interface for navigation direction.
11
+ * Each direction implements this interface to define its priority rules.
12
+ */
13
+ export interface NavigationStrategy {
14
+ /**
15
+ * The direction this strategy handles.
16
+ */
17
+ readonly direction: Direction;
18
+ /**
19
+ * Builds priority groups for candidate selection.
20
+ *
21
+ * @param groups - 9-element array from partition() (external groups)
22
+ * @param internalGroups - 9-element array from partition() (internal groups for overlapping)
23
+ * @param distanceFunctions - Distance calculation functions
24
+ * @returns Array of priority groups, ordered by preference
25
+ */
26
+ buildPriorities(groups: Rect[][], internalGroups: Rect[][], distanceFunctions: DistanceFunctions): Priority[];
27
+ }
28
+ /**
29
+ * Strategy for navigating LEFT.
30
+ * Prioritizes elements to the left of the current focus.
31
+ */
32
+ export declare const leftStrategy: NavigationStrategy;
33
+ /**
34
+ * Strategy for navigating RIGHT.
35
+ * Prioritizes elements to the right of the current focus.
36
+ */
37
+ export declare const rightStrategy: NavigationStrategy;
38
+ /**
39
+ * Strategy for navigating UP.
40
+ * Prioritizes elements above the current focus.
41
+ */
42
+ export declare const upStrategy: NavigationStrategy;
43
+ /**
44
+ * Strategy for navigating DOWN.
45
+ * Prioritizes elements below the current focus.
46
+ */
47
+ export declare const downStrategy: NavigationStrategy;
48
+ /**
49
+ * Map of direction to strategy.
50
+ * Allows O(1) lookup of strategy by direction.
51
+ */
52
+ export declare const navigationStrategies: Record<Direction, NavigationStrategy>;
53
+ /**
54
+ * Gets the navigation strategy for a direction.
55
+ *
56
+ * @param direction - Navigation direction
57
+ * @returns The strategy for that direction, or undefined if invalid
58
+ */
59
+ export declare function getStrategy(direction: Direction): NavigationStrategy | undefined;
60
+ /**
61
+ * Builds priorities for a given direction using the Strategy pattern.
62
+ *
63
+ * @param direction - Navigation direction
64
+ * @param groups - External partition groups
65
+ * @param internalGroups - Internal partition groups
66
+ * @param distanceFunctions - Distance calculation functions
67
+ * @returns Priority array or null if direction is invalid
68
+ */
69
+ export declare function buildPrioritiesForDirection(direction: Direction, groups: Rect[][], internalGroups: Rect[][], distanceFunctions: DistanceFunctions): Priority[] | null;
70
+ //# sourceMappingURL=strategies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../src/strategies.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5E;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B;;;;;;;OAOG;IACH,eAAe,CACb,MAAM,EAAE,IAAI,EAAE,EAAE,EAChB,cAAc,EAAE,IAAI,EAAE,EAAE,EACxB,iBAAiB,EAAE,iBAAiB,GACnC,QAAQ,EAAE,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,kBAwB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,kBAqB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,kBAqBxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,kBAqB1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,SAAS,EAAE,kBAAkB,CAKtE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB,GAAG,SAAS,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,IAAI,EAAE,EAAE,EAChB,cAAc,EAAE,IAAI,EAAE,EAAE,EACxB,iBAAiB,EAAE,iBAAiB,GACnC,QAAQ,EAAE,GAAG,IAAI,CAMnB"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * Navigation Strategy Module
3
+ * Implements Strategy Pattern for directional navigation.
4
+ *
5
+ * Each direction has its own strategy for determining navigation priorities
6
+ * based on spatial relationships between elements.
7
+ */
8
+ import { Grid } from './constants';
9
+ /**
10
+ * Strategy for navigating LEFT.
11
+ * Prioritizes elements to the left of the current focus.
12
+ */
13
+ export const leftStrategy = {
14
+ direction: 'left',
15
+ buildPriorities(groups, internalGroups, df) {
16
+ return [
17
+ {
18
+ // First priority: internal elements to the left (within overlapping zone)
19
+ group: internalGroups[Grid.TOP_LEFT]
20
+ .concat(internalGroups[Grid.MIDDLE_LEFT])
21
+ .concat(internalGroups[Grid.BOTTOM_LEFT]),
22
+ distance: [df.nearPlumbLineIsBetter, df.topIsBetter]
23
+ },
24
+ {
25
+ // Second priority: external elements directly to the left
26
+ group: groups[Grid.MIDDLE_LEFT],
27
+ distance: [df.nearPlumbLineIsBetter, df.topIsBetter]
28
+ },
29
+ {
30
+ // Third priority: corner elements (diagonal)
31
+ group: groups[Grid.TOP_LEFT].concat(groups[Grid.BOTTOM_LEFT]),
32
+ distance: [df.nearHorizonIsBetter, df.rightIsBetter, df.nearTargetTopIsBetter]
33
+ }
34
+ ];
35
+ }
36
+ };
37
+ /**
38
+ * Strategy for navigating RIGHT.
39
+ * Prioritizes elements to the right of the current focus.
40
+ */
41
+ export const rightStrategy = {
42
+ direction: 'right',
43
+ buildPriorities(groups, internalGroups, df) {
44
+ return [
45
+ {
46
+ group: internalGroups[Grid.TOP_RIGHT]
47
+ .concat(internalGroups[Grid.MIDDLE_RIGHT])
48
+ .concat(internalGroups[Grid.BOTTOM_RIGHT]),
49
+ distance: [df.nearPlumbLineIsBetter, df.topIsBetter]
50
+ },
51
+ {
52
+ group: groups[Grid.MIDDLE_RIGHT],
53
+ distance: [df.nearPlumbLineIsBetter, df.topIsBetter]
54
+ },
55
+ {
56
+ group: groups[Grid.TOP_RIGHT].concat(groups[Grid.BOTTOM_RIGHT]),
57
+ distance: [df.nearHorizonIsBetter, df.leftIsBetter, df.nearTargetTopIsBetter]
58
+ }
59
+ ];
60
+ }
61
+ };
62
+ /**
63
+ * Strategy for navigating UP.
64
+ * Prioritizes elements above the current focus.
65
+ */
66
+ export const upStrategy = {
67
+ direction: 'up',
68
+ buildPriorities(groups, internalGroups, df) {
69
+ return [
70
+ {
71
+ group: internalGroups[Grid.TOP_LEFT]
72
+ .concat(internalGroups[Grid.TOP_CENTER])
73
+ .concat(internalGroups[Grid.TOP_RIGHT]),
74
+ distance: [df.nearHorizonIsBetter, df.leftIsBetter]
75
+ },
76
+ {
77
+ group: groups[Grid.TOP_CENTER],
78
+ distance: [df.nearHorizonIsBetter, df.leftIsBetter]
79
+ },
80
+ {
81
+ group: groups[Grid.TOP_LEFT].concat(groups[Grid.TOP_RIGHT]),
82
+ distance: [df.nearPlumbLineIsBetter, df.bottomIsBetter, df.nearTargetLeftIsBetter]
83
+ }
84
+ ];
85
+ }
86
+ };
87
+ /**
88
+ * Strategy for navigating DOWN.
89
+ * Prioritizes elements below the current focus.
90
+ */
91
+ export const downStrategy = {
92
+ direction: 'down',
93
+ buildPriorities(groups, internalGroups, df) {
94
+ return [
95
+ {
96
+ group: internalGroups[Grid.BOTTOM_LEFT]
97
+ .concat(internalGroups[Grid.BOTTOM_CENTER])
98
+ .concat(internalGroups[Grid.BOTTOM_RIGHT]),
99
+ distance: [df.nearHorizonIsBetter, df.leftIsBetter]
100
+ },
101
+ {
102
+ group: groups[Grid.BOTTOM_CENTER],
103
+ distance: [df.nearHorizonIsBetter, df.leftIsBetter]
104
+ },
105
+ {
106
+ group: groups[Grid.BOTTOM_LEFT].concat(groups[Grid.BOTTOM_RIGHT]),
107
+ distance: [df.nearPlumbLineIsBetter, df.topIsBetter, df.nearTargetLeftIsBetter]
108
+ }
109
+ ];
110
+ }
111
+ };
112
+ /**
113
+ * Map of direction to strategy.
114
+ * Allows O(1) lookup of strategy by direction.
115
+ */
116
+ export const navigationStrategies = {
117
+ left: leftStrategy,
118
+ right: rightStrategy,
119
+ up: upStrategy,
120
+ down: downStrategy
121
+ };
122
+ /**
123
+ * Gets the navigation strategy for a direction.
124
+ *
125
+ * @param direction - Navigation direction
126
+ * @returns The strategy for that direction, or undefined if invalid
127
+ */
128
+ export function getStrategy(direction) {
129
+ return navigationStrategies[direction];
130
+ }
131
+ /**
132
+ * Builds priorities for a given direction using the Strategy pattern.
133
+ *
134
+ * @param direction - Navigation direction
135
+ * @param groups - External partition groups
136
+ * @param internalGroups - Internal partition groups
137
+ * @param distanceFunctions - Distance calculation functions
138
+ * @returns Priority array or null if direction is invalid
139
+ */
140
+ export function buildPrioritiesForDirection(direction, groups, internalGroups, distanceFunctions) {
141
+ const strategy = getStrategy(direction);
142
+ if (!strategy) {
143
+ return null;
144
+ }
145
+ return strategy.buildPriorities(groups, internalGroups, distanceFunctions);
146
+ }
147
+ //# sourceMappingURL=strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../src/strategies.ts"],"names":[],"mappings":"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"}