@@ -115,11 +115,11 @@ export function detectPluginCellType(content: any): Grid3PluginMetadata {
115115 return { cellType : Grid3CellType . Regular } ;
116116 }
117117
118- const contentType = content . ContentType || content . contenttype || content . ContentType ;
119- const contentSubType = content . ContentSubType || content . contentsubtype || content . ContentSubType ;
118+ const contentType = content . ContentType || content . contenttype ;
119+ const contentSubType = content . ContentSubType || content . contentsubtype ;
120120
121121 // Workspace cells - full editing workspaces
122- if ( contentType === 'Workspace' ) {
122+ if ( contentType === 'Workspace' || content . Style ?. BasedOnStyle === 'Workspace' ) {
123123 return {
124124 cellType : Grid3CellType . Workspace ,
125125 subType : contentSubType || undefined ,
@@ -129,7 +129,7 @@ export function detectPluginCellType(content: any): Grid3PluginMetadata {
129129 }
130130
131131 // LiveCell detection - dynamic content displays
132- if ( contentType === 'LiveCell' ) {
132+ if ( contentType === 'LiveCell' || content . Style ?. BasedOnStyle === 'LiveCell' ) {
133133 return {
134134 cellType : Grid3CellType . LiveCell ,
135135 liveCellType : contentSubType || undefined ,
@@ -139,7 +139,7 @@ export function detectPluginCellType(content: any): Grid3PluginMetadata {
139139 }
140140
141141 // AutoContent detection - dynamic word/content suggestions
142- if ( contentType === 'AutoContent' ) {
142+ if ( contentType === 'AutoContent' || content . Style ?. BasedOnStyle === 'AutoContent' ) {
143143 const autoContentType = extractAutoContentType ( content ) ;
144144 return {
145145 cellType : Grid3CellType . AutoContent ,
@@ -190,24 +190,25 @@ function inferWorkspacePlugin(subType?: string): string | undefined {
190190
191191 const normalized = subType . toLowerCase ( ) ;
192192
193- if ( normalized . includes ( 'chat' ) ) return 'chat' ;
194- if ( normalized . includes ( 'email' ) || normalized . includes ( 'mail' ) ) return 'email' ;
195- if ( normalized . includes ( 'word' ) || normalized . includes ( 'processor' ) ) return 'wordprocessor' ;
196- if ( normalized . includes ( 'phone' ) ) return 'phone' ;
197- if ( normalized . includes ( 'sms' ) || normalized . includes ( 'text' ) ) return 'sms' ;
198- if ( normalized . includes ( 'web' ) || normalized . includes ( 'browser' ) ) return 'webbrowser' ;
199- if ( normalized . includes ( 'computer' ) || normalized . includes ( 'control' ) ) return 'computercontrol' ;
200- if ( normalized . includes ( 'calculator' ) || normalized . includes ( 'calc' ) ) return 'calculator' ;
201- if ( normalized . includes ( 'timer' ) || normalized . includes ( 'stopwatch' ) ) return 'timer' ;
202- if ( normalized . includes ( 'music' ) || normalized . includes ( 'video' ) ) return 'musicvideo' ;
203- if ( normalized . includes ( 'photo' ) || normalized . includes ( 'image' ) ) return 'photos' ;
204- if ( normalized . includes ( 'contact' ) ) return 'contacts' ;
205- if ( normalized . includes ( 'learning' ) ) return 'interactivelearning' ;
206- if ( normalized . includes ( 'message' ) && normalized . includes ( 'bank' ) ) return 'messagebanking' ;
207- if ( normalized . includes ( 'env' ) || normalized . includes ( 'ir' ) ) return 'environmentcontrol' ;
208- if ( normalized . includes ( 'setting' ) ) return 'settings' ;
209-
210- return undefined ;
193+ if ( normalized . includes ( 'chat' ) ) return 'Grid3.Chat' ;
194+ if ( normalized . includes ( 'email' ) || normalized . includes ( 'mail' ) ) return 'Grid3.Email' ;
195+ if ( normalized . includes ( 'word' ) || normalized . includes ( 'doc' ) ) return 'Grid3.WordProcessor' ;
196+ if ( normalized . includes ( 'phone' ) ) return 'Grid3.Phone' ;
197+ if ( normalized . includes ( 'sms' ) || normalized . includes ( 'text' ) ) return 'Grid3.Sms' ;
198+ if ( normalized . includes ( 'browser' ) || normalized . includes ( 'web' ) ) return 'Grid3.WebBrowser' ;
199+ if ( normalized . includes ( 'computer' ) ) return 'Grid3.ComputerControl' ;
200+ if ( normalized . includes ( 'calc' ) ) return 'Grid3.Calculator' ;
201+ if ( normalized . includes ( 'timer' ) ) return 'Grid3.Timer' ;
202+ if ( normalized . includes ( 'music' ) || normalized . includes ( 'video' ) ) return 'Grid3.MusicVideo' ;
203+ if ( normalized . includes ( 'photo' ) || normalized . includes ( 'image' ) ) return 'Grid3.Photos' ;
204+ if ( normalized . includes ( 'contact' ) ) return 'Grid3.Contacts' ;
205+ if ( normalized . includes ( 'learning' ) ) return 'Grid3.InteractiveLearning' ;
206+ if ( normalized . includes ( 'message' ) && normalized . includes ( 'banking' ) )
207+ return 'Grid3.MessageBanking' ;
208+ if ( normalized . includes ( 'control' ) ) return 'Grid3.EnvironmentControl' ;
209+ if ( normalized . includes ( 'settings' ) ) return 'Grid3.Settings' ;
210+
211+ return `Grid3.${ subType } ` ;
211212}
212213
213214/**
@@ -218,18 +219,17 @@ function inferLiveCellPlugin(liveCellType?: string): string | undefined {
218219
219220 const normalized = liveCellType . toLowerCase ( ) ;
220221
221- if ( normalized . includes ( 'clock' ) || normalized . includes ( 'time' ) || normalized . includes ( 'date' ) ) {
222- return 'clock' ;
223- }
224- if ( normalized . includes ( 'volume' ) ) return 'speech' ;
225- if ( normalized . includes ( 'speed' ) ) return 'speech' ;
226- if ( normalized . includes ( 'voice' ) ) return 'speech' ;
227- if ( normalized . includes ( 'message' ) ) return 'chat' ;
228- if ( normalized . includes ( 'battery' ) ) return 'settings' ;
229- if ( normalized . includes ( 'wifi' ) || normalized . includes ( 'network' ) ) return 'settings' ;
230- if ( normalized . includes ( 'bluetooth' ) ) return 'settings' ;
231-
232- return undefined ;
222+ if ( normalized . includes ( 'clock' ) ) return 'Grid3.Clock' ;
223+ if ( normalized . includes ( 'date' ) ) return 'Grid3.Clock' ;
224+ if ( normalized . includes ( 'volume' ) ) return 'Grid3.Volume' ;
225+ if ( normalized . includes ( 'speed' ) ) return 'Grid3.Speed' ;
226+ if ( normalized . includes ( 'voice' ) ) return 'Grid3.Speech' ;
227+ if ( normalized . includes ( 'message' ) ) return 'Grid3.Chat' ;
228+ if ( normalized . includes ( 'battery' ) ) return 'Grid3.Battery' ;
229+ if ( normalized . includes ( 'wifi' ) ) return 'Grid3.Wifi' ;
230+ if ( normalized . includes ( 'bluetooth' ) ) return 'Grid3.Bluetooth' ;
231+
232+ return `Grid3.${ liveCellType } ` ;
233233}
234234
235235/**
@@ -240,20 +240,20 @@ function inferAutoContentPlugin(autoContentType?: string): string | undefined {
240240
241241 const normalized = autoContentType . toLowerCase ( ) ;
242242
243- if ( normalized . includes ( 'voice' ) || normalized . includes ( 'speed' ) ) return 'speech ' ;
244- if ( normalized . includes ( 'email' ) || normalized . includes ( 'mail' ) ) return 'email ' ;
245- if ( normalized . includes ( 'phone' ) ) return 'phone ' ;
246- if ( normalized . includes ( 'sms' ) || normalized . includes ( 'text' ) ) return 'sms ' ;
243+ if ( normalized . includes ( 'voice' ) || normalized . includes ( 'speed' ) ) return 'Grid3.Speech ' ;
244+ if ( normalized . includes ( 'email' ) || normalized . includes ( 'mail' ) ) return 'Grid3.Email ' ;
245+ if ( normalized . includes ( 'phone' ) ) return 'Grid3.Phone ' ;
246+ if ( normalized . includes ( 'sms' ) || normalized . includes ( 'text' ) ) return 'Grid3.Sms ' ;
247247 if (
248248 normalized . includes ( 'web' ) ||
249249 normalized . includes ( 'favorite' ) ||
250250 normalized . includes ( 'history' )
251251 ) {
252- return 'webbrowser ' ;
252+ return 'Grid3.WebBrowser ' ;
253253 }
254- if ( normalized . includes ( 'prediction' ) ) return 'prediction ' ;
255- if ( normalized . includes ( 'grammar' ) ) return 'grammar ' ;
256- if ( normalized . includes ( 'context' ) ) return 'autocontent ' ;
254+ if ( normalized . includes ( 'prediction' ) ) return 'Grid3.Prediction ' ;
255+ if ( normalized . includes ( 'grammar' ) ) return 'Grid3.Grammar ' ;
256+ if ( normalized . includes ( 'context' ) ) return 'Grid3.AutoContent ' ;
257257
258258 return undefined ;
259259}
0 commit comments