@worktile/theia 19.3.3 → 19.3.5
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.
- package/fesm2022/worktile-theia.mjs +636 -49
- package/fesm2022/worktile-theia.mjs.map +1 -1
- package/interfaces/editor.d.ts +1 -0
- package/package.json +2 -2
- package/plugins/table/components/table.component.d.ts +11 -0
- package/plugins/table/components/table.component.scss +32 -1
- package/plugins/table/table.types.d.ts +1 -0
- package/utils/scrolling.d.ts +0 -5
- package/utils/get-editable-element-height.d.ts +0 -2
|
@@ -219,6 +219,18 @@ const DEFAULT_LANGUAGE = {
|
|
|
219
219
|
value: 'javascript'
|
|
220
220
|
};
|
|
221
221
|
const CODE_MODES = [
|
|
222
|
+
{
|
|
223
|
+
showName: 'APL',
|
|
224
|
+
value: 'apl'
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
showName: 'ASN.1',
|
|
228
|
+
value: 'asn.1'
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
showName: 'Brainfuck',
|
|
232
|
+
value: 'brainfuck'
|
|
233
|
+
},
|
|
222
234
|
{
|
|
223
235
|
showName: 'C',
|
|
224
236
|
value: 'c'
|
|
@@ -235,66 +247,510 @@ const CODE_MODES = [
|
|
|
235
247
|
showName: 'C-like',
|
|
236
248
|
value: 'clike'
|
|
237
249
|
},
|
|
250
|
+
{
|
|
251
|
+
showName: 'Ceylon',
|
|
252
|
+
value: 'ceylon'
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
showName: 'Clojure',
|
|
256
|
+
value: 'clojure'
|
|
257
|
+
},
|
|
258
|
+
{
|
|
259
|
+
showName: 'Closure Stylesheets (GSS)',
|
|
260
|
+
value: 'gss'
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
showName: 'CMake',
|
|
264
|
+
value: 'cmake'
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
showName: 'COBOL',
|
|
268
|
+
value: 'cobol'
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
showName: 'CoffeeScript',
|
|
272
|
+
value: 'coffeescript'
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
showName: 'Common Lisp',
|
|
276
|
+
value: 'commonlisp'
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
showName: 'Crystal',
|
|
280
|
+
value: 'crystal'
|
|
281
|
+
},
|
|
238
282
|
{
|
|
239
283
|
showName: 'CSS',
|
|
240
284
|
value: 'css'
|
|
241
285
|
},
|
|
286
|
+
{
|
|
287
|
+
showName: 'Cypher',
|
|
288
|
+
value: 'cypher'
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
showName: 'Cython',
|
|
292
|
+
value: 'cython'
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
showName: 'D',
|
|
296
|
+
value: 'd'
|
|
297
|
+
},
|
|
242
298
|
{
|
|
243
299
|
showName: 'Dart',
|
|
244
300
|
value: 'dart'
|
|
245
301
|
},
|
|
246
302
|
{
|
|
247
|
-
showName: 'Django',
|
|
303
|
+
showName: 'Django (templating language)',
|
|
248
304
|
value: 'django'
|
|
249
305
|
},
|
|
250
306
|
{
|
|
251
307
|
showName: 'Dockerfile',
|
|
252
308
|
value: 'dockerfile'
|
|
253
309
|
},
|
|
310
|
+
{
|
|
311
|
+
showName: 'diff',
|
|
312
|
+
value: 'diff'
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
showName: 'DTD',
|
|
316
|
+
value: 'dtd'
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
showName: 'Dylan',
|
|
320
|
+
value: 'dylan'
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
showName: 'EBNF',
|
|
324
|
+
value: 'ebnf'
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
showName: 'ECL',
|
|
328
|
+
value: 'ecl'
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
showName: 'Eiffel',
|
|
332
|
+
value: 'eiffel'
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
showName: 'Elixir',
|
|
336
|
+
value: 'elixir'
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
showName: 'Elm',
|
|
340
|
+
value: 'elm'
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
showName: 'Erlang',
|
|
344
|
+
value: 'erlang'
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
showName: 'Factor',
|
|
348
|
+
value: 'factor'
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
showName: 'FCL',
|
|
352
|
+
value: 'fcl'
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
showName: 'Forth',
|
|
356
|
+
value: 'forth'
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
showName: 'Fortran',
|
|
360
|
+
value: 'fortran'
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
showName: 'F#',
|
|
364
|
+
value: 'fsharp'
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
showName: 'Gas (AT&T-style assembly)',
|
|
368
|
+
value: 'gas'
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
showName: 'Gherkin',
|
|
372
|
+
value: 'gherkin'
|
|
373
|
+
},
|
|
254
374
|
{
|
|
255
375
|
showName: 'Go',
|
|
256
376
|
value: 'go'
|
|
257
377
|
},
|
|
258
378
|
{
|
|
259
|
-
showName: '
|
|
260
|
-
value: '
|
|
379
|
+
showName: 'Groovy',
|
|
380
|
+
value: 'groovy'
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
showName: 'HAML',
|
|
384
|
+
value: 'haml'
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
showName: 'Handlebars',
|
|
388
|
+
value: 'handlebars'
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
showName: 'Haskell (Literate)',
|
|
392
|
+
value: 'haskell-literate'
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
showName: 'Haxe',
|
|
396
|
+
value: 'haxe'
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
showName: 'HTML embedded (JSP, ASP.NET)',
|
|
400
|
+
value: 'htmlembedded'
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
showName: 'HTML mixed-mode',
|
|
404
|
+
value: 'htmlmixed'
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
showName: 'HTTP',
|
|
408
|
+
value: 'http'
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
showName: 'IDL',
|
|
412
|
+
value: 'idl'
|
|
261
413
|
},
|
|
262
414
|
{
|
|
263
415
|
showName: 'Java',
|
|
264
416
|
value: 'java'
|
|
265
417
|
},
|
|
266
418
|
DEFAULT_LANGUAGE,
|
|
419
|
+
{
|
|
420
|
+
showName: 'JavaScript (JSX)',
|
|
421
|
+
value: 'jsx'
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
showName: 'Jinja2',
|
|
425
|
+
value: 'jinja2'
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
showName: 'Julia',
|
|
429
|
+
value: 'julia'
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
showName: 'Kotlin',
|
|
433
|
+
value: 'kotlin'
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
showName: 'LESS',
|
|
437
|
+
value: 'less'
|
|
438
|
+
},
|
|
439
|
+
{
|
|
440
|
+
showName: 'LiveScript',
|
|
441
|
+
value: 'livescript'
|
|
442
|
+
},
|
|
443
|
+
{
|
|
444
|
+
showName: 'Lua',
|
|
445
|
+
value: 'lua'
|
|
446
|
+
},
|
|
267
447
|
{
|
|
268
448
|
showName: 'Markdown',
|
|
269
449
|
value: 'markdown'
|
|
270
450
|
},
|
|
451
|
+
{
|
|
452
|
+
showName: 'Mathematica',
|
|
453
|
+
value: 'mathematica'
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
showName: 'mbox',
|
|
457
|
+
value: 'mbox'
|
|
458
|
+
},
|
|
459
|
+
{
|
|
460
|
+
showName: 'mIRC',
|
|
461
|
+
value: 'mirc'
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
showName: 'Modelica',
|
|
465
|
+
value: 'modelica'
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
showName: 'MscGen',
|
|
469
|
+
value: 'mscgen'
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
showName: 'MUMPS',
|
|
473
|
+
value: 'mumps'
|
|
474
|
+
},
|
|
271
475
|
{
|
|
272
476
|
showName: 'Nginx',
|
|
273
477
|
value: 'nginx'
|
|
274
478
|
},
|
|
275
479
|
{
|
|
276
|
-
showName: '
|
|
277
|
-
value: '
|
|
480
|
+
showName: 'NSIS',
|
|
481
|
+
value: 'nsis'
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
showName: 'N-Triples/N-Quads',
|
|
485
|
+
value: 'ntriples'
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
showName: 'Objective C',
|
|
489
|
+
value: 'objective-c'
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
showName: 'OCaml',
|
|
493
|
+
value: 'ocaml'
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
showName: 'Octave (MATLAB)',
|
|
497
|
+
value: 'octave'
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
showName: 'Oz',
|
|
501
|
+
value: 'oz'
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
showName: 'Pascal',
|
|
505
|
+
value: 'pascal'
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
showName: 'PEG.js',
|
|
509
|
+
value: 'pegjs'
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
showName: 'Perl',
|
|
513
|
+
value: 'perl'
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
showName: 'PGP (ASCII armor)',
|
|
517
|
+
value: 'asciiarmor'
|
|
278
518
|
},
|
|
279
519
|
{
|
|
280
520
|
showName: 'PHP',
|
|
281
521
|
value: 'php'
|
|
282
522
|
},
|
|
523
|
+
{
|
|
524
|
+
showName: 'Pig Latin',
|
|
525
|
+
value: 'pig'
|
|
526
|
+
},
|
|
527
|
+
{
|
|
528
|
+
showName: 'PowerShell',
|
|
529
|
+
value: 'powershell'
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
showName: 'Properties files',
|
|
533
|
+
value: 'properties'
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
showName: 'ProtoBuf',
|
|
537
|
+
value: 'protobuf'
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
showName: 'Pug',
|
|
541
|
+
value: 'pug'
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
showName: 'Puppet',
|
|
545
|
+
value: 'puppet'
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
showName: 'Python',
|
|
549
|
+
value: 'python'
|
|
550
|
+
},
|
|
551
|
+
{
|
|
552
|
+
showName: 'Q',
|
|
553
|
+
value: 'q'
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
showName: 'R',
|
|
557
|
+
value: 'r'
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
showName: 'RPM',
|
|
561
|
+
value: 'rpm'
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
showName: 'reStructuredText',
|
|
565
|
+
value: 'rst'
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
showName: 'Ruby',
|
|
569
|
+
value: 'ruby'
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
showName: 'Rust',
|
|
573
|
+
value: 'rust'
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
showName: 'SAS',
|
|
577
|
+
value: 'sas'
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
showName: 'Sass',
|
|
581
|
+
value: 'sass'
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
showName: 'Spreadsheet',
|
|
585
|
+
value: 'spreadsheet'
|
|
586
|
+
},
|
|
587
|
+
{
|
|
588
|
+
showName: 'Scala',
|
|
589
|
+
value: 'scala'
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
showName: 'Scheme',
|
|
593
|
+
value: 'scheme'
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
showName: 'SCSS',
|
|
597
|
+
value: 'scss'
|
|
598
|
+
},
|
|
283
599
|
{
|
|
284
600
|
showName: 'Shell',
|
|
285
601
|
value: 'shell'
|
|
286
602
|
},
|
|
287
603
|
{
|
|
288
|
-
showName: '
|
|
604
|
+
showName: 'Sieve',
|
|
605
|
+
value: 'sieve'
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
showName: 'Slim',
|
|
609
|
+
value: 'slim'
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
showName: 'Smalltalk',
|
|
613
|
+
value: 'smalltalk'
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
showName: 'Smarty',
|
|
617
|
+
value: 'smarty'
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
showName: 'Solr',
|
|
621
|
+
value: 'solr'
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
showName: 'Soy',
|
|
625
|
+
value: 'soy'
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
showName: 'Stylus',
|
|
629
|
+
value: 'stylus'
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
showName: 'SQL (several dialects)',
|
|
289
633
|
value: 'sql'
|
|
290
634
|
},
|
|
635
|
+
{
|
|
636
|
+
showName: 'SPARQL',
|
|
637
|
+
value: 'sparql'
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
showName: 'Squirrel',
|
|
641
|
+
value: 'squirrel'
|
|
642
|
+
},
|
|
291
643
|
{
|
|
292
644
|
showName: 'Swift',
|
|
293
645
|
value: 'swift'
|
|
294
646
|
},
|
|
647
|
+
{
|
|
648
|
+
showName: 'sTeX, LaTeX',
|
|
649
|
+
value: 'stex'
|
|
650
|
+
},
|
|
651
|
+
{
|
|
652
|
+
showName: 'Tcl',
|
|
653
|
+
value: 'tcl'
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
showName: 'Textile',
|
|
657
|
+
value: 'textile'
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
showName: 'Tiddlywiki',
|
|
661
|
+
value: 'tiddlywiki'
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
showName: 'Tiki wiki',
|
|
665
|
+
value: 'tiki'
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
showName: 'TOML',
|
|
669
|
+
value: 'toml'
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
showName: 'Tornado (templating language)',
|
|
673
|
+
value: 'tornado'
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
showName: 'troff (for manpages)',
|
|
677
|
+
value: 'troff'
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
showName: 'TTCN',
|
|
681
|
+
value: 'ttcn'
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
showName: 'TTCN Configuration',
|
|
685
|
+
value: 'ttcn-cfg'
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
showName: 'Turtle',
|
|
689
|
+
value: 'turtle'
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
showName: 'Twig',
|
|
693
|
+
value: 'twig'
|
|
694
|
+
},
|
|
295
695
|
{
|
|
296
696
|
showName: 'TypeScript',
|
|
297
697
|
value: 'typescript'
|
|
698
|
+
},
|
|
699
|
+
{
|
|
700
|
+
showName: 'VB.NET',
|
|
701
|
+
value: 'vb'
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
showName: 'VBScript',
|
|
705
|
+
value: 'vbscript'
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
showName: 'Velocity',
|
|
709
|
+
value: 'velocity'
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
showName: 'Verilog/SystemVerilog',
|
|
713
|
+
value: 'verilog'
|
|
714
|
+
},
|
|
715
|
+
{
|
|
716
|
+
showName: 'VHDL',
|
|
717
|
+
value: 'vhdl'
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
showName: 'Vue.js app',
|
|
721
|
+
value: 'vue'
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
showName: 'Web IDL',
|
|
725
|
+
value: 'webidl'
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
showName: 'WebAssembly Text Format',
|
|
729
|
+
value: 'wast'
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
showName: 'XML/HTML',
|
|
733
|
+
value: 'xml'
|
|
734
|
+
},
|
|
735
|
+
{
|
|
736
|
+
showName: 'XQuery',
|
|
737
|
+
value: 'xquery'
|
|
738
|
+
},
|
|
739
|
+
{
|
|
740
|
+
showName: 'Yacas',
|
|
741
|
+
value: 'yacas'
|
|
742
|
+
},
|
|
743
|
+
{
|
|
744
|
+
showName: 'YAML',
|
|
745
|
+
value: 'yaml'
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
showName: 'YAML frontmatter',
|
|
749
|
+
value: 'yaml-frontmatter'
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
showName: 'Z80',
|
|
753
|
+
value: 'z80'
|
|
298
754
|
}
|
|
299
755
|
];
|
|
300
756
|
const CODEMIRROR_PADDING_TOP = 10;
|
|
@@ -2275,45 +2731,6 @@ const refocus = (editor) => {
|
|
|
2275
2731
|
AngularEditor.focus(editor);
|
|
2276
2732
|
};
|
|
2277
2733
|
|
|
2278
|
-
const getEditableElementHeight = (editor) => {
|
|
2279
|
-
const editable = AngularEditor.toDOMNode(editor, editor);
|
|
2280
|
-
return editable.clientHeight;
|
|
2281
|
-
};
|
|
2282
|
-
|
|
2283
|
-
let previousHeight = 0;
|
|
2284
|
-
/**
|
|
2285
|
-
* reset the sliding distance when the viewport position of the sliding
|
|
2286
|
-
* container coincides with the viewport position of the focus element
|
|
2287
|
-
*/
|
|
2288
|
-
const scrollIntoView = (editor, scrollContainer) => {
|
|
2289
|
-
const isFocused = AngularEditor.isFocused(editor);
|
|
2290
|
-
const nativeSelection = window.getSelection();
|
|
2291
|
-
if (!isFocused || !nativeSelection?.focusNode) {
|
|
2292
|
-
return;
|
|
2293
|
-
}
|
|
2294
|
-
// fix the page scrolling problem when the associated page card and text status switch in the table
|
|
2295
|
-
// the native selection area is abnormal, and the cursor automatically jumps to the left cursor of the block-level element (browser native behavior when switching display)
|
|
2296
|
-
// temporary solution: Determine whether the DOM corresponding to the Slate selection area is equal to the DOM corresponding to the browser selection. If they are not equal, it means an abnormal situation, and automatic scrolling will no longer be performed
|
|
2297
|
-
const domRange = AngularEditor.toDOMRange(editor, editor.selection);
|
|
2298
|
-
if (domRange.startContainer !== nativeSelection.anchorNode) {
|
|
2299
|
-
return;
|
|
2300
|
-
}
|
|
2301
|
-
const currentNodeElement = nativeSelection.focusNode.parentElement;
|
|
2302
|
-
const scrollContainerElement = currentNodeElement.closest(scrollContainer ?? DEFAULT_SCROLL_CONTAINER);
|
|
2303
|
-
if (!scrollContainerElement) {
|
|
2304
|
-
return;
|
|
2305
|
-
}
|
|
2306
|
-
const scrollContainerRect = scrollContainerElement.getBoundingClientRect();
|
|
2307
|
-
const focusBlockRect = currentNodeElement.getBoundingClientRect();
|
|
2308
|
-
const scrollHeight = scrollContainer ? window.innerHeight : scrollContainerRect.bottom;
|
|
2309
|
-
const currentHeight = getEditableElementHeight(editor);
|
|
2310
|
-
const scrollOffset = scrollHeight - focusBlockRect.bottom;
|
|
2311
|
-
if (currentHeight && scrollOffset < 30) {
|
|
2312
|
-
// 16 为底部间隔,防止紧贴底部
|
|
2313
|
-
scrollContainerElement.scrollTop = scrollContainerElement.scrollTop - scrollOffset + 16;
|
|
2314
|
-
}
|
|
2315
|
-
previousHeight = currentHeight;
|
|
2316
|
-
};
|
|
2317
2734
|
const getEditorScrollContainer = (editor, scrollContainerSelector) => {
|
|
2318
2735
|
const selector = scrollContainerSelector || editor.options.scrollContainer || DEFAULT_SCROLL_CONTAINER;
|
|
2319
2736
|
const editable = AngularEditor.toDOMNode(editor, editor);
|
|
@@ -4783,6 +5200,7 @@ const TABLE_BORDER$1 = 1;
|
|
|
4783
5200
|
const TABLE_PADDING$1 = 8;
|
|
4784
5201
|
const TABLE_CONTROL = 11;
|
|
4785
5202
|
const TABLE_NUMBER_COLUMN = 45;
|
|
5203
|
+
const TABLE_HORIZONTAL_SCROLL_HEIGHT = 16; // table component horizontal scrollbar height
|
|
4786
5204
|
const TableWithStickyRowClass = 'the-table-with-sticky-row';
|
|
4787
5205
|
var FullscreenState;
|
|
4788
5206
|
(function (FullscreenState) {
|
|
@@ -11694,7 +12112,7 @@ const createImagePlugin = (locale) => createPluginFactory({
|
|
|
11694
12112
|
menuItems: [
|
|
11695
12113
|
{
|
|
11696
12114
|
key: ElementKinds.image,
|
|
11697
|
-
keywords: `tp,tupian,image,
|
|
12115
|
+
keywords: `tp,tupian,image,picture,${locale().image}`,
|
|
11698
12116
|
execute: editor => ImageEditor.openUpload(editor),
|
|
11699
12117
|
active: editor => ImageEditor.isActive(editor),
|
|
11700
12118
|
name: locale().image,
|
|
@@ -15350,6 +15768,8 @@ class TheTable extends TheBaseElement {
|
|
|
15350
15768
|
this.theTableContextMenuService.closeContextMenu();
|
|
15351
15769
|
this.tableStore.isExistSelectedCell && this.tableStore.clearSelectedCells();
|
|
15352
15770
|
}
|
|
15771
|
+
// 表格数据变化,更新横向滚动条
|
|
15772
|
+
this.updateHorizontalScrollbar();
|
|
15353
15773
|
}
|
|
15354
15774
|
}
|
|
15355
15775
|
// 需要等待内容更新后,才可以执行 useRowControls,否则获取的高度可能不正确
|
|
@@ -15382,6 +15802,7 @@ class TheTable extends TheBaseElement {
|
|
|
15382
15802
|
this.destroy$ = new Subject();
|
|
15383
15803
|
this.rowControls = [];
|
|
15384
15804
|
this.colControls = [];
|
|
15805
|
+
this.isMouseOverTable = false;
|
|
15385
15806
|
this.getOutletParent = () => {
|
|
15386
15807
|
return this.tbodyElement.nativeElement;
|
|
15387
15808
|
};
|
|
@@ -15493,6 +15914,7 @@ class TheTable extends TheBaseElement {
|
|
|
15493
15914
|
this.listenTableContextMenuEvent();
|
|
15494
15915
|
this.listenTableWrapperScroll();
|
|
15495
15916
|
this.subscribeScrollContainerScroll(this.tableWrapperLeft);
|
|
15917
|
+
this.initHorizontalScrollbar();
|
|
15496
15918
|
if (isPrintMode) {
|
|
15497
15919
|
this.cdr.markForCheck();
|
|
15498
15920
|
}
|
|
@@ -15503,6 +15925,7 @@ class TheTable extends TheBaseElement {
|
|
|
15503
15925
|
this.getWrapperWidthAndLeft();
|
|
15504
15926
|
this.setHeaderRowShadow();
|
|
15505
15927
|
this.setStickyElementLeftStyle();
|
|
15928
|
+
this.updateHorizontalScrollbar();
|
|
15506
15929
|
});
|
|
15507
15930
|
this.contextService.theEditorResized$.pipe(takeUntil(this.destroy$)).subscribe(result => {
|
|
15508
15931
|
if (result.widthChanged) {
|
|
@@ -15510,6 +15933,7 @@ class TheTable extends TheBaseElement {
|
|
|
15510
15933
|
this.setTableScrollingShadow();
|
|
15511
15934
|
this.setGridColumnsStyle();
|
|
15512
15935
|
this.setHeaderRowShadow();
|
|
15936
|
+
this.updateHorizontalScrollbar();
|
|
15513
15937
|
}
|
|
15514
15938
|
});
|
|
15515
15939
|
});
|
|
@@ -15575,6 +15999,8 @@ class TheTable extends TheBaseElement {
|
|
|
15575
15999
|
const maxHeaderRowHeight = (24 + 8) * 11; // 超出 11 行,取消冻结
|
|
15576
16000
|
this.isStickyTop = headerRowHeight <= maxHeaderRowHeight;
|
|
15577
16001
|
}
|
|
16002
|
+
// 更新漂浮滚动条
|
|
16003
|
+
this.updateHorizontalScrollbar();
|
|
15578
16004
|
}
|
|
15579
16005
|
return this.isStickyTop;
|
|
15580
16006
|
}), distinctUntilChanged())
|
|
@@ -16103,6 +16529,161 @@ class TheTable extends TheBaseElement {
|
|
|
16103
16529
|
this.destroy$.next();
|
|
16104
16530
|
this.destroy$.complete();
|
|
16105
16531
|
}
|
|
16532
|
+
initHorizontalScrollbar() {
|
|
16533
|
+
if (!this.horizontalScrollbarContainer || !this.horizontalScrollbarContent) {
|
|
16534
|
+
return;
|
|
16535
|
+
}
|
|
16536
|
+
this.bindTableMouseEvents();
|
|
16537
|
+
this.bindScrollbarEvents();
|
|
16538
|
+
this.updateHorizontalScrollbar();
|
|
16539
|
+
}
|
|
16540
|
+
// 绑定鼠标和滚轮事件,用于处理表格横向滚动条显隐
|
|
16541
|
+
bindTableMouseEvents() {
|
|
16542
|
+
if (!this.nativeElement) {
|
|
16543
|
+
return;
|
|
16544
|
+
}
|
|
16545
|
+
// 鼠标移入表格时,更新滚动条是否显示固定
|
|
16546
|
+
fromEvent(this.nativeElement, 'mouseenter')
|
|
16547
|
+
.pipe(takeUntil(this.destroy$))
|
|
16548
|
+
.subscribe(() => {
|
|
16549
|
+
this.isMouseOverTable = true;
|
|
16550
|
+
this.updateHorizontalScrollbar();
|
|
16551
|
+
});
|
|
16552
|
+
fromEvent(this.nativeElement, 'mouseleave')
|
|
16553
|
+
.pipe(takeUntil(this.destroy$))
|
|
16554
|
+
.subscribe(() => {
|
|
16555
|
+
this.isMouseOverTable = false;
|
|
16556
|
+
this.updateHorizontalScrollbar();
|
|
16557
|
+
});
|
|
16558
|
+
// 在表格上的滚轮滚动监听,处理滚动过程中超过可视范围滚动条的显隐
|
|
16559
|
+
// 页面的垂直滚动由使用方的页面决定,表格组件无法准确获取,这里通过监听滚轮实现
|
|
16560
|
+
fromEvent(this.nativeElement, 'wheel', { passive: false })
|
|
16561
|
+
.pipe(takeUntil(this.destroy$))
|
|
16562
|
+
.subscribe((event) => {
|
|
16563
|
+
// 只有在鼠标在表格上时才处理
|
|
16564
|
+
if (!this.isMouseOverTable) {
|
|
16565
|
+
return;
|
|
16566
|
+
}
|
|
16567
|
+
const isHorizontalScroll = Math.abs(event.deltaX) > Math.abs(event.deltaY) || event.shiftKey;
|
|
16568
|
+
if (isHorizontalScroll && this.horizontalScrollbarContainer) {
|
|
16569
|
+
event.preventDefault();
|
|
16570
|
+
let deltaX = event.deltaX;
|
|
16571
|
+
// 如果是 Shift + 滚轮,将垂直滚动转换为横向滚动
|
|
16572
|
+
if (event.shiftKey && Math.abs(event.deltaY) > Math.abs(event.deltaX)) {
|
|
16573
|
+
deltaX = event.deltaY;
|
|
16574
|
+
}
|
|
16575
|
+
const scrollbarContainer = this.horizontalScrollbarContainer.nativeElement;
|
|
16576
|
+
const newScrollLeft = Math.max(0, Math.min(scrollbarContainer.scrollLeft + deltaX, scrollbarContainer.scrollWidth - scrollbarContainer.clientWidth));
|
|
16577
|
+
// 同步滚动到滚动条
|
|
16578
|
+
scrollbarContainer.scrollLeft = newScrollLeft;
|
|
16579
|
+
}
|
|
16580
|
+
else {
|
|
16581
|
+
// 纵向滚动,需要延迟执行是否需要固定滚动条
|
|
16582
|
+
setTimeout(() => {
|
|
16583
|
+
this.updateScrollbarFixedState();
|
|
16584
|
+
}, 100);
|
|
16585
|
+
}
|
|
16586
|
+
});
|
|
16587
|
+
}
|
|
16588
|
+
// 监听横向滚动条滚动事件
|
|
16589
|
+
bindScrollbarEvents() {
|
|
16590
|
+
if (!this.horizontalScrollbarContainer || !this.horizontalScrollbarContent) {
|
|
16591
|
+
return;
|
|
16592
|
+
}
|
|
16593
|
+
// 滚动条滚动事件同步到表格
|
|
16594
|
+
fromEvent(this.horizontalScrollbarContainer.nativeElement, 'scroll')
|
|
16595
|
+
.pipe(takeUntil(this.destroy$))
|
|
16596
|
+
.subscribe(() => {
|
|
16597
|
+
const scrollLeft = this.horizontalScrollbarContainer.nativeElement.scrollLeft;
|
|
16598
|
+
if (this.tableWrapper.nativeElement.scrollLeft !== scrollLeft) {
|
|
16599
|
+
this.tableWrapper.nativeElement.scrollLeft = scrollLeft;
|
|
16600
|
+
}
|
|
16601
|
+
});
|
|
16602
|
+
}
|
|
16603
|
+
updateHorizontalScrollbar() {
|
|
16604
|
+
this.updateScrollbarVisibility();
|
|
16605
|
+
this.updateScrollbarFixedState();
|
|
16606
|
+
}
|
|
16607
|
+
// 更新横向滚动条可见性
|
|
16608
|
+
updateScrollbarVisibility() {
|
|
16609
|
+
if (!this.tableWrapper || !this.horizontalScrollbarContainer || !this.horizontalScrollbarContent) {
|
|
16610
|
+
return;
|
|
16611
|
+
}
|
|
16612
|
+
const tableWrapper = this.tableWrapper.nativeElement;
|
|
16613
|
+
const scrollbarContainer = this.horizontalScrollbarContainer.nativeElement;
|
|
16614
|
+
const scrollbarContent = this.horizontalScrollbarContent.nativeElement;
|
|
16615
|
+
const hasHorizontalScroll = tableWrapper.scrollWidth > tableWrapper.clientWidth;
|
|
16616
|
+
if (!hasHorizontalScroll) {
|
|
16617
|
+
this.renderer.removeClass(scrollbarContainer, 'visible');
|
|
16618
|
+
return;
|
|
16619
|
+
}
|
|
16620
|
+
this.renderer.setStyle(scrollbarContent, 'width', `${tableWrapper.scrollWidth}px`);
|
|
16621
|
+
this.renderer.addClass(scrollbarContainer, 'visible');
|
|
16622
|
+
}
|
|
16623
|
+
// 更新横向滚动条固定状态
|
|
16624
|
+
updateScrollbarFixedState() {
|
|
16625
|
+
if (this.editor.options.disabledTableStickyScrollbar || !this.horizontalScrollbarContainer) {
|
|
16626
|
+
return;
|
|
16627
|
+
}
|
|
16628
|
+
if (!this.isMouseOverTable) {
|
|
16629
|
+
this.setScrollbarFixed(false, 0);
|
|
16630
|
+
return;
|
|
16631
|
+
}
|
|
16632
|
+
const tableRect = this.nativeElement.getBoundingClientRect();
|
|
16633
|
+
const viewportHeight = this.getViewportHeight();
|
|
16634
|
+
const scrollbarBottomPosition = tableRect.bottom;
|
|
16635
|
+
// 是否在可视范围内
|
|
16636
|
+
const isScrollbarOutOfView = scrollbarBottomPosition > viewportHeight && tableRect.top < viewportHeight;
|
|
16637
|
+
this.setScrollbarFixed(isScrollbarOutOfView, viewportHeight);
|
|
16638
|
+
}
|
|
16639
|
+
getViewportHeight() {
|
|
16640
|
+
try {
|
|
16641
|
+
const scrollContainer = this.contextService.getScrollContainer();
|
|
16642
|
+
if (scrollContainer && scrollContainer !== document.documentElement && scrollContainer !== document.body) {
|
|
16643
|
+
// 如果有自定义滚动容器且不是 html/body 元素,使用容器的可视高度
|
|
16644
|
+
const containerRect = scrollContainer.getBoundingClientRect();
|
|
16645
|
+
return containerRect.height > window.innerHeight ? window.innerHeight : containerRect.bottom;
|
|
16646
|
+
}
|
|
16647
|
+
else if (scrollContainer === null) {
|
|
16648
|
+
// 没有自定义滚动容器,使用 theEditor 的滚动容器
|
|
16649
|
+
const theRect = this.contextService.getOptions().nativeElement.getBoundingClientRect();
|
|
16650
|
+
// 判断大于视窗高度为了兼容 theEditor 不是滚动容器,且高度已经超过视窗高度,导致滚动条位置计算错误
|
|
16651
|
+
return theRect.height > window.innerHeight ? window.innerHeight : theRect.bottom;
|
|
16652
|
+
}
|
|
16653
|
+
return window.innerHeight;
|
|
16654
|
+
}
|
|
16655
|
+
catch (error) {
|
|
16656
|
+
// 获取失败使用视窗高度
|
|
16657
|
+
return window.innerHeight;
|
|
16658
|
+
}
|
|
16659
|
+
}
|
|
16660
|
+
setScrollbarFixed(fixed, viewportHeight) {
|
|
16661
|
+
if (!this.horizontalScrollbarContainer) {
|
|
16662
|
+
return;
|
|
16663
|
+
}
|
|
16664
|
+
const scrollbar = this.horizontalScrollbarContainer.nativeElement;
|
|
16665
|
+
const currentScrollLeft = scrollbar.scrollLeft;
|
|
16666
|
+
if (fixed) {
|
|
16667
|
+
const tableRect = this.nativeElement.getBoundingClientRect();
|
|
16668
|
+
this.renderer.addClass(scrollbar, 'fixed');
|
|
16669
|
+
this.renderer.setStyle(scrollbar, 'left', `${Math.max(0, tableRect.left)}px`);
|
|
16670
|
+
this.renderer.setStyle(scrollbar, 'width', `${tableRect.width}px`);
|
|
16671
|
+
this.renderer.setStyle(scrollbar, 'top', `${viewportHeight - TABLE_HORIZONTAL_SCROLL_HEIGHT}px`);
|
|
16672
|
+
this.renderer.removeStyle(scrollbar, 'bottom');
|
|
16673
|
+
}
|
|
16674
|
+
else {
|
|
16675
|
+
this.renderer.removeClass(scrollbar, 'fixed');
|
|
16676
|
+
this.renderer.removeStyle(scrollbar, 'left');
|
|
16677
|
+
this.renderer.removeStyle(scrollbar, 'width');
|
|
16678
|
+
this.renderer.removeStyle(scrollbar, 'top');
|
|
16679
|
+
this.renderer.setStyle(scrollbar, 'bottom', `-${TABLE_HORIZONTAL_SCROLL_HEIGHT}px`);
|
|
16680
|
+
}
|
|
16681
|
+
requestAnimationFrame(() => {
|
|
16682
|
+
if (scrollbar.scrollLeft !== currentScrollLeft) {
|
|
16683
|
+
scrollbar.scrollLeft = currentScrollLeft;
|
|
16684
|
+
}
|
|
16685
|
+
});
|
|
16686
|
+
}
|
|
16106
16687
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TheTable, deps: [{ token: TableCellEventDispatcher }, { token: ColumnResizeNotifierSource }, { token: TableStore }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: TableService }, { token: TheTableContextMenuService }, { token: TableFreezeColumnPipe }, { token: TableFreezeRowPipe }, { token: i0.Renderer2 }, { token: TheContextService }, { token: THE_MODE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16107
16688
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: TheTable, isStandalone: true, selector: "ng-component", host: { properties: { "class.the-table-with-controls": "isInTable || tableStore.isRightClicking || tableStore.isFocusedInput", "class.the-table-with-sticky-column": "isFreezeColumn", "class.the-numbered-table": "element?.options?.numberedColumn", "class.the-table-selection-hide": "tableStore.isCellSelecting || tableStore.isRightClicking || tableStore.isFocusedInput" } }, providers: [
|
|
16108
16689
|
TableStore,
|
|
@@ -16116,7 +16697,7 @@ class TheTable extends TheBaseElement {
|
|
|
16116
16697
|
provide: THE_TABLE_COMPONENT_TOKEN,
|
|
16117
16698
|
useExisting: TheTable
|
|
16118
16699
|
}
|
|
16119
|
-
], viewQueries: [{ propertyName: "tableWrapper", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef, static: true }, { propertyName: "theTableElement", first: true, predicate: ["theTable"], descendants: true, read: ElementRef, static: true }, { propertyName: "tbodyElement", first: true, predicate: ["tbody"], descendants: true, read: ElementRef, static: true }, { propertyName: "tableRowControlsWrapper", first: true, predicate: ["tableRowControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "columnControlsWrapper", first: true, predicate: ["columnControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "cornerControl", first: true, predicate: ["cornerControl"], descendants: true, read: ElementRef }, { propertyName: "rowControlsInner", first: true, predicate: ["rowControlsInner"], descendants: true, read: ElementRef }, { propertyName: "headerRowLeftShadow", first: true, predicate: ["headerRowLeftShadow"], descendants: true, read: ElementRef }, { propertyName: "headerRowRightShadow", first: true, predicate: ["headerRowRightShadow"], descendants: true, read: ElementRef }, { propertyName: "colgroup", first: true, predicate: ["colgroup"], descendants: true, read: ElementRef }, { propertyName: "rowControlsButtonWrapper", predicate: ["rowControlsButtonWrapper"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"the-table-container\" theColumnResize>\n <div #tableRowControlsWrapper class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls\"\n #cornerControl\n contenteditable=\"false\"\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (pointerdown)=\"onSelectTable($event)\"></div>\n @if (!(element | hasHeaderRow) && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-row-marker\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n @if (!element?.options?.headerColumn && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-column-marker\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n @for (control of rowControls; track trackByFnRowControls(i); let i = $index) {\n <div\n class=\"the-table-row-control-button-wrap\"\n #rowControlsButtonWrapper\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n @if (!readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !element?.options?.numberedColumn) {\n <button\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n contenteditable=\"false\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n }\n @if (element?.options?.numberedColumn) {\n <div\n contenteditable=\"false\"\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">\n {{ (element | hasHeaderRow) && i === 0 ? '' : (element | hasHeaderRow) ? i : i + 1 }}\n </p>\n </div>\n }\n @if (!isMobileMode) {\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup>\n <!--\u63A7\u5236\u5E8F\u53F7\u5217\u5BBD\u5EA6-->\n @if (readonly && element?.options?.numberedColumn) {\n <col class=\"the-table-number-col\" />\n }\n @for (col of columns; track $index) {\n <col [ngStyle]=\"{ width: col.width + 'px' }\" />\n }\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n @if (readonly && element?.options?.numberedColumn) {\n <th class=\"the-table-number-col\"></th>\n }\n @for (control of colControls; track trackByFnColControls(i); let i = $index) {\n <th\n #colControl\n class=\"the-table-col-control\"\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0,\n 'the-sticky-cell': i === 0 && isFreezeColumn\n }\"\n (pointerdown)=\"onColMousedown($event, i)\"\n >\n @if ((isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !isMobileMode) {\n <the-table-insert-mark type=\"column\" [at]=\"i + 1\" [tableStore]=\"tableStore\" [parentElement]=\"colControl\">\n </the-table-insert-mark>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody #tbody></tbody>\n @if (!element?.options?.headerColumn) {\n <div #headerRowLeftShadow class=\"header-row-shadow header-row-left-shadow\" contenteditable=\"false\"></div>\n }\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TheInsertMark, selector: "the-table-insert-mark", inputs: ["type", "at", "tableStore", "parentElement"] }, { kind: "directive", type: TheColumnResizeDirective, selector: "div[theColumnResize]" }, { kind: "pipe", type: TableHasHeaderRowPipe, name: "hasHeaderRow" }] }); }
|
|
16700
|
+
], viewQueries: [{ propertyName: "tableWrapper", first: true, predicate: ["tableWrapper"], descendants: true, read: ElementRef, static: true }, { propertyName: "theTableElement", first: true, predicate: ["theTable"], descendants: true, read: ElementRef, static: true }, { propertyName: "tbodyElement", first: true, predicate: ["tbody"], descendants: true, read: ElementRef, static: true }, { propertyName: "tableRowControlsWrapper", first: true, predicate: ["tableRowControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "columnControlsWrapper", first: true, predicate: ["columnControlsWrapper"], descendants: true, read: ElementRef }, { propertyName: "cornerControl", first: true, predicate: ["cornerControl"], descendants: true, read: ElementRef }, { propertyName: "rowControlsInner", first: true, predicate: ["rowControlsInner"], descendants: true, read: ElementRef }, { propertyName: "headerRowLeftShadow", first: true, predicate: ["headerRowLeftShadow"], descendants: true, read: ElementRef }, { propertyName: "headerRowRightShadow", first: true, predicate: ["headerRowRightShadow"], descendants: true, read: ElementRef }, { propertyName: "colgroup", first: true, predicate: ["colgroup"], descendants: true, read: ElementRef }, { propertyName: "horizontalScrollbarContainer", first: true, predicate: ["horizontalScrollbarContainer"], descendants: true, read: ElementRef, static: true }, { propertyName: "horizontalScrollbarContent", first: true, predicate: ["horizontalScrollbarContent"], descendants: true, read: ElementRef, static: true }, { propertyName: "rowControlsButtonWrapper", predicate: ["rowControlsButtonWrapper"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"the-table-container\" theColumnResize>\n <div #tableRowControlsWrapper class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls\"\n #cornerControl\n contenteditable=\"false\"\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (pointerdown)=\"onSelectTable($event)\"></div>\n @if (!(element | hasHeaderRow) && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-row-marker\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n @if (!element?.options?.headerColumn && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-column-marker\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n @for (control of rowControls; track trackByFnRowControls(i); let i = $index) {\n <div\n class=\"the-table-row-control-button-wrap\"\n #rowControlsButtonWrapper\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n @if (!readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !element?.options?.numberedColumn) {\n <button\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n contenteditable=\"false\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n }\n @if (element?.options?.numberedColumn) {\n <div\n contenteditable=\"false\"\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">\n {{ (element | hasHeaderRow) && i === 0 ? '' : (element | hasHeaderRow) ? i : i + 1 }}\n </p>\n </div>\n }\n @if (!isMobileMode) {\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup>\n <!--\u63A7\u5236\u5E8F\u53F7\u5217\u5BBD\u5EA6-->\n @if (readonly && element?.options?.numberedColumn) {\n <col class=\"the-table-number-col\" />\n }\n @for (col of columns; track $index) {\n <col [ngStyle]=\"{ width: col.width + 'px' }\" />\n }\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n @if (readonly && element?.options?.numberedColumn) {\n <th class=\"the-table-number-col\"></th>\n }\n @for (control of colControls; track trackByFnColControls(i); let i = $index) {\n <th\n #colControl\n class=\"the-table-col-control\"\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0,\n 'the-sticky-cell': i === 0 && isFreezeColumn\n }\"\n (pointerdown)=\"onColMousedown($event, i)\"\n >\n @if ((isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !isMobileMode) {\n <the-table-insert-mark type=\"column\" [at]=\"i + 1\" [tableStore]=\"tableStore\" [parentElement]=\"colControl\">\n </the-table-insert-mark>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody #tbody></tbody>\n @if (!element?.options?.headerColumn) {\n <div #headerRowLeftShadow class=\"header-row-shadow header-row-left-shadow\" contenteditable=\"false\"></div>\n }\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n <div class=\"the-table-horizontal-scrollbar-container\" #horizontalScrollbarContainer>\n <div class=\"the-table-horizontal-scrollbar-content\" #horizontalScrollbarContent></div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: TheInsertMark, selector: "the-table-insert-mark", inputs: ["type", "at", "tableStore", "parentElement"] }, { kind: "directive", type: TheColumnResizeDirective, selector: "div[theColumnResize]" }, { kind: "pipe", type: TableHasHeaderRowPipe, name: "hasHeaderRow" }] }); }
|
|
16120
16701
|
}
|
|
16121
16702
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: TheTable, decorators: [{
|
|
16122
16703
|
type: Component,
|
|
@@ -16137,7 +16718,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
16137
16718
|
'[class.the-table-with-sticky-column]': 'isFreezeColumn',
|
|
16138
16719
|
'[class.the-numbered-table]': 'element?.options?.numberedColumn',
|
|
16139
16720
|
'[class.the-table-selection-hide]': 'tableStore.isCellSelecting || tableStore.isRightClicking || tableStore.isFocusedInput'
|
|
16140
|
-
}, imports: [NgClass, NgStyle, TheInsertMark, TheColumnResizeDirective, TableHasHeaderRowPipe], template: "<div class=\"the-table-container\" theColumnResize>\n <div #tableRowControlsWrapper class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls\"\n #cornerControl\n contenteditable=\"false\"\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (pointerdown)=\"onSelectTable($event)\"></div>\n @if (!(element | hasHeaderRow) && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-row-marker\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n @if (!element?.options?.headerColumn && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-column-marker\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n @for (control of rowControls; track trackByFnRowControls(i); let i = $index) {\n <div\n class=\"the-table-row-control-button-wrap\"\n #rowControlsButtonWrapper\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n @if (!readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !element?.options?.numberedColumn) {\n <button\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n contenteditable=\"false\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n }\n @if (element?.options?.numberedColumn) {\n <div\n contenteditable=\"false\"\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">\n {{ (element | hasHeaderRow) && i === 0 ? '' : (element | hasHeaderRow) ? i : i + 1 }}\n </p>\n </div>\n }\n @if (!isMobileMode) {\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup>\n <!--\u63A7\u5236\u5E8F\u53F7\u5217\u5BBD\u5EA6-->\n @if (readonly && element?.options?.numberedColumn) {\n <col class=\"the-table-number-col\" />\n }\n @for (col of columns; track $index) {\n <col [ngStyle]=\"{ width: col.width + 'px' }\" />\n }\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n @if (readonly && element?.options?.numberedColumn) {\n <th class=\"the-table-number-col\"></th>\n }\n @for (control of colControls; track trackByFnColControls(i); let i = $index) {\n <th\n #colControl\n class=\"the-table-col-control\"\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0,\n 'the-sticky-cell': i === 0 && isFreezeColumn\n }\"\n (pointerdown)=\"onColMousedown($event, i)\"\n >\n @if ((isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !isMobileMode) {\n <the-table-insert-mark type=\"column\" [at]=\"i + 1\" [tableStore]=\"tableStore\" [parentElement]=\"colControl\">\n </the-table-insert-mark>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody #tbody></tbody>\n @if (!element?.options?.headerColumn) {\n <div #headerRowLeftShadow class=\"header-row-shadow header-row-left-shadow\" contenteditable=\"false\"></div>\n }\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n</div>\n" }]
|
|
16721
|
+
}, imports: [NgClass, NgStyle, TheInsertMark, TheColumnResizeDirective, TableHasHeaderRowPipe], template: "<div class=\"the-table-container\" theColumnResize>\n <div #tableRowControlsWrapper class=\"the-table-row-controls-wrapper\">\n <div\n class=\"the-table-corner-controls\"\n #cornerControl\n contenteditable=\"false\"\n [ngClass]=\"{\n visible: !readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput),\n 'control-active': isSelectedAllCell,\n dangerous: tableStore.isSelectedTable && tableStore.dangerousCells.length > 0\n }\"\n >\n <div class=\"the-table-corner-button\" (pointerdown)=\"onSelectTable($event)\"></div>\n @if (!(element | hasHeaderRow) && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-row-marker\">\n <the-table-insert-mark type=\"row\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n @if (!element?.options?.headerColumn && !isMobileMode) {\n <div class=\"the-table-corner-controls-insert-column-marker\">\n <the-table-insert-mark type=\"column\" [at]=\"0\" [tableStore]=\"tableStore\"></the-table-insert-mark>\n </div>\n }\n </div>\n <div class=\"the-table-row-controls\">\n <div class=\"the-table-row-controls-inner\" #rowControlsInner>\n @for (control of rowControls; track trackByFnRowControls(i); let i = $index) {\n <div\n class=\"the-table-row-control-button-wrap\"\n #rowControlsButtonWrapper\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedRowsIndex.includes(control.rowIndex),\n dangerous: tableStore.dangerousRowsIndex.includes(control.rowIndex) && tableStore.dangerousCells.length > 0\n }\"\n >\n @if (!readonly && (isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !element?.options?.numberedColumn) {\n <button\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n type=\"button\"\n contenteditable=\"false\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n class=\"the-table-row-controls-button the-table-controls-button\"\n ></button>\n }\n @if (element?.options?.numberedColumn) {\n <div\n contenteditable=\"false\"\n (pointerdown)=\"onRowMousedown($event, control.rowIndex)\"\n class=\"the-table-numbered-controls-button\"\n [ngStyle]=\"{ height: control.height + 1 + 'px' }\"\n >\n <p class=\"row-number d-flex align-items-center\">\n {{ (element | hasHeaderRow) && i === 0 ? '' : (element | hasHeaderRow) ? i : i + 1 }}\n </p>\n </div>\n }\n @if (!isMobileMode) {\n <the-table-insert-mark type=\"row\" [at]=\"control.rowIndex + 1\" [tableStore]=\"tableStore\"> </the-table-insert-mark>\n }\n </div>\n }\n </div>\n </div>\n </div>\n <div class=\"the-table-wrapper\" #tableWrapper [ngClass]=\"{ 'the-table-numbered': element?.options?.numberedColumn }\">\n <table class=\"the-table\" #theTable>\n <colgroup #colgroup>\n <!--\u63A7\u5236\u5E8F\u53F7\u5217\u5BBD\u5EA6-->\n @if (readonly && element?.options?.numberedColumn) {\n <col class=\"the-table-number-col\" />\n }\n @for (col of columns; track $index) {\n <col [ngStyle]=\"{ width: col.width + 'px' }\" />\n }\n </colgroup>\n <thead>\n <tr class=\"the-table-col-controls-wrapper the-sticky-row\" #columnControlsWrapper>\n @if (readonly && element?.options?.numberedColumn) {\n <th class=\"the-table-number-col\"></th>\n }\n @for (control of colControls; track trackByFnColControls(i); let i = $index) {\n <th\n #colControl\n class=\"the-table-col-control\"\n contenteditable=\"false\"\n [ngClass]=\"{\n 'control-active': tableStore.selectedColumnsIndex.includes(i),\n dangerous: tableStore.dangerousColumnsIndex.includes(i) && tableStore.dangerousCells.length > 0,\n 'the-sticky-cell': i === 0 && isFreezeColumn\n }\"\n (pointerdown)=\"onColMousedown($event, i)\"\n >\n @if ((isInTable || tableStore.isRightClicking || tableStore.isFocusedInput) && !isMobileMode) {\n <the-table-insert-mark type=\"column\" [at]=\"i + 1\" [tableStore]=\"tableStore\" [parentElement]=\"colControl\">\n </the-table-insert-mark>\n }\n </th>\n }\n </tr>\n </thead>\n <tbody #tbody></tbody>\n @if (!element?.options?.headerColumn) {\n <div #headerRowLeftShadow class=\"header-row-shadow header-row-left-shadow\" contenteditable=\"false\"></div>\n }\n <div class=\"header-row-shadow header-row-right-shadow\" #headerRowRightShadow contenteditable=\"false\"></div>\n </table>\n </div>\n <div class=\"the-table-horizontal-scrollbar-container\" #horizontalScrollbarContainer>\n <div class=\"the-table-horizontal-scrollbar-content\" #horizontalScrollbarContent></div>\n </div>\n</div>\n" }]
|
|
16141
16722
|
}], ctorParameters: () => [{ type: TableCellEventDispatcher }, { type: ColumnResizeNotifierSource }, { type: TableStore }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: TableService }, { type: TheTableContextMenuService }, { type: TableFreezeColumnPipe }, { type: TableFreezeRowPipe }, { type: i0.Renderer2 }, { type: TheContextService }, { type: TheModeConfig, decorators: [{
|
|
16142
16723
|
type: Inject,
|
|
16143
16724
|
args: [THE_MODE_TOKEN]
|
|
@@ -16174,6 +16755,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
16174
16755
|
}], rowControlsButtonWrapper: [{
|
|
16175
16756
|
type: ViewChildren,
|
|
16176
16757
|
args: ['rowControlsButtonWrapper', { read: ElementRef }]
|
|
16758
|
+
}], horizontalScrollbarContainer: [{
|
|
16759
|
+
type: ViewChild,
|
|
16760
|
+
args: ['horizontalScrollbarContainer', { read: ElementRef, static: true }]
|
|
16761
|
+
}], horizontalScrollbarContent: [{
|
|
16762
|
+
type: ViewChild,
|
|
16763
|
+
args: ['horizontalScrollbarContent', { read: ElementRef, static: true }]
|
|
16177
16764
|
}] } });
|
|
16178
16765
|
|
|
16179
16766
|
const OVERLAY_ACTIVE_CLASS = 'the-resizable-overlay-thumb-active';
|
|
@@ -18383,5 +18970,5 @@ const withTestPlugin = (plugins, initValue) => {
|
|
|
18383
18970
|
* Generated bundle index. Do not edit.
|
|
18384
18971
|
*/
|
|
18385
18972
|
|
|
18386
|
-
export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BLOCK_HIDDEN_CLASS, BasicTest, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_PADDING_TOP, CODE_MODES, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, ColumnResizeNotifierSource, ColumnResizingStore, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DataTransferFaker, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DropdownMode, ELEMENT_UNIQUE_ID, EditorPresetConfigFactoryMock, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeaderLevelMap, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LOWEST_TEXT_CONTAINER_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QUICK_INSERT_HOTKEY, QuickInsertEditor, ResizeRef, SLA_TABLE_CELL_SELECTOR, SLA_TABLE_SELECTOR, STANDARD_HEADING_TYPES, ScrollDirection, SpecialBackgroundColor, TAB_SPACE, THE_EDITOR_BG_COLOR, THE_EDITOR_COLOR, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_I18N_DE_DE, THE_I18N_EN_US, THE_I18N_JA_JP, THE_I18N_LOCALE_ID, THE_I18N_RU_RU, THE_I18N_ZH_HANS, THE_I18N_ZH_HANT, THE_IMAGE_SERVICE_TOKEN, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_PRESET_CONFIG_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TablePosition, TheBaseElement, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheColumnResizeDirective, TheColumnResizeOverlayHandle, TheContextMenu, TheContextService, TheConversionHint, TheDataMode, TheDefaultElement, TheEditor, TheEditorComponent, TheEditorModule, TheI18nService, TheImage, TheInlineToolbar, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheLocaleType, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheQuickInsert, TheTableSelect, TheTemplate, TheText, TheToolbarComponent, TheToolbarDropdown, TheToolbarGroup, TheToolbarGroupToken, TheToolbarItem, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, bottomLeftPosition, bottomRightPosition, buildPluginMenu, buildPluginMenuItemMap, buildQuickInsertMenus, calcPrintColumnWidth, calcSpanForColumn, calcSpanForRow, calculateHeaderRowHeight, calculateRowControls, coercePixelsFromCssValue, combinePlugins, copyNode, createCell, createEmptyContent, createEmptyParagraph, createMentionPlugin, createPluginFactory, createRow, createTable, createTablePosition, createTest1Plugin, createTestPlugin, createToolbar, createVerticalAlignPlugin, customPluginMock, customPluginMockKey, dataDeserialize, dataSerializing, deDeLocale, deleteElementKey, enUsLocale, errorImageUrlMock, expandPreviousHeadings, extractFragment, filterTextFormat, fixBlockWithoutParagraph, fixBlockWithoutText, flattenDeepPlugins, getCellPositionsFromRange, getCollapsedStandardHeadingAbove, getColsTotalWidth, getColumnsWidth, getDirtyElements, getEditorScrollContainer, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getFollowElements, getGridColumns, getMode, getNextCell, getOriginCell, getPlugin, getPluginOptions, getPlugins, getPreviousRelatedHeadingElements, getRowsTotalHeight, getSelectCellNode, getSelectedCellPositions, getStartBlock, getTableByCell, getTableByRow, getTheDefaultPluginMenu, getToolbarClass, hasHeaderRow, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, injectTranslations, insertDataByInvalidType, internalPlugins, isCleanEmptyParagraph, isColorIndicator, isColorInput, isColorPanel, isDirectionKeydown, isHeadingElement, isInside, isMobileMode, isPrintMode, isPureEmptyParagraph, isRangeInTable, isRectangularInTableCells, isSelectedAllCell, isSelectionInTable, isStandardHeadingElement, isStandardHeadingElementByType, isUrl, isVirtualKey, jaJpLocale, matchOptions, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, normalizeValue, originOptions, plainToTheia, pluginKey, pluginKey1, pluginsByKey, reSelection, recursionNodes, refocus, ruRuLocale,
|
|
18973
|
+
export { ALIGN_BLOCK_TYPES, A_TAG_REL_ATTR, AlignEditor, Alignment, BLOCK_DELETE_BACKWARD_TYPES, BLOCK_HIDDEN_CLASS, BasicTest, BlockquoteEditor, CLIPBOARD_FORMAT_KEY, CODEMIRROR_PADDING_TOP, CODE_MODES, CONTAINER_BLOCKS, CONTROL_KEY, CodeEditor, ColorEditor, ColumnResizeNotifierSource, ColumnResizingStore, DEFAULT_LANGUAGE, DEFAULT_SCROLL_CONTAINER, DISABLED_OPERATE_TYPES, DataTransferFaker, DefaultElementOptions, DefaultGlobalToolbarDefinition, DefaultInlineToolbarDefinition, DropdownMode, ELEMENT_UNIQUE_ID, EditorPresetConfigFactoryMock, ElementKinds, ErrorCodes, FontSizeTypes, FontSizes, HEADING_TYPES, HeaderLevelMap, HeadingEditor, HoveredCellInfo, HrEditor, IS_MAC, ImageEditor, IndentEditor, Indents, InlineCodeEditor, LINK_DEFAULT_TEXT, LIST_BLOCK_TYPES, LOWEST_TEXT_CONTAINER_TYPES, LayoutTypes, LinkEditor, ListEditor, MarkEditor, MarkProps, MarkTypes, MentionEditor, PICTURE_ACCEPTED_UPLOAD_MIME, PICTURE_ACCEPTED_UPLOAD_SIZE, PluginKeys, PluginMenuIcons, PluginMenuSvgs, Position, QUICK_INSERT_HOTKEY, QuickInsertEditor, ResizeRef, SLA_TABLE_CELL_SELECTOR, SLA_TABLE_SELECTOR, STANDARD_HEADING_TYPES, ScrollDirection, SpecialBackgroundColor, TAB_SPACE, THE_EDITOR_BG_COLOR, THE_EDITOR_COLOR, THE_EDITOR_CONVERSION_HINT_REF, THE_EDITOR_ORIGIN_ANCHOR, THE_EDITOR_POPOVER_REF, THE_EDITOR_PREVIOUS_SELECTION, THE_EDITOR_UUID, THE_I18N_DE_DE, THE_I18N_EN_US, THE_I18N_JA_JP, THE_I18N_LOCALE_ID, THE_I18N_RU_RU, THE_I18N_ZH_HANS, THE_I18N_ZH_HANT, THE_IMAGE_SERVICE_TOKEN, THE_LISTBOX_PARENT_GROUP_TOKEN, THE_LISTBOX_PARENT_OPTION_TOKEN, THE_LISTBOX_TOKEN, THE_MODE_PROVIDER, THE_MODE_TOKEN, THE_PLUGIN_MENU_REF, THE_PRESET_CONFIG_TOKEN, TableCellEventDispatcher, TableEditor, TableHeaderBackgroundColor, TablePosition, TheBaseElement, TheBaseSuggestion, TheBaseToolbarDropdown, TheBaseToolbarItem, TheColumnResizeDirective, TheColumnResizeOverlayHandle, TheContextMenu, TheContextService, TheConversionHint, TheDataMode, TheDefaultElement, TheEditor, TheEditorComponent, TheEditorModule, TheI18nService, TheImage, TheInlineToolbar, TheListboxDirective, TheListboxGroupDirective, TheListboxOptionDirective, TheLocaleType, TheMode, TheModeConfig, ThePluginMenu, ThePluginMenuComponent, ThePluginMenuItemType, ThePreventDefaultDirective, index$1 as TheQueries, TheQuickInsert, TheTableSelect, TheTemplate, TheText, TheToolbarComponent, TheToolbarDropdown, TheToolbarGroup, TheToolbarGroupToken, TheToolbarItem, TheToolbarService, index as TheTransforms, TodoItemEditor, ToolbarActionTypes, ToolbarAlignment, ToolbarItemType, ToolbarMoreGroup, VOID_BLOCK_TYPES, VerticalAlignEditor, VerticalAlignment, ZERO_WIDTH_CHAR, autoFocus, base64toBlob, bottomLeftPosition, bottomRightPosition, buildPluginMenu, buildPluginMenuItemMap, buildQuickInsertMenus, calcPrintColumnWidth, calcSpanForColumn, calcSpanForRow, calculateHeaderRowHeight, calculateRowControls, coercePixelsFromCssValue, combinePlugins, copyNode, createCell, createEmptyContent, createEmptyParagraph, createMentionPlugin, createPluginFactory, createRow, createTable, createTablePosition, createTest1Plugin, createTestPlugin, createToolbar, createVerticalAlignPlugin, customPluginMock, customPluginMockKey, dataDeserialize, dataSerializing, deDeLocale, deleteElementKey, enUsLocale, errorImageUrlMock, expandPreviousHeadings, extractFragment, filterTextFormat, fixBlockWithoutParagraph, fixBlockWithoutText, flattenDeepPlugins, getCellPositionsFromRange, getCollapsedStandardHeadingAbove, getColsTotalWidth, getColumnsWidth, getDirtyElements, getEditorScrollContainer, getEditorUUID, getElementClassByPrefix, getElementHeight, getElementWidth, getEndBlock, getFollowElements, getGridColumns, getMode, getNextCell, getOriginCell, getPlugin, getPluginOptions, getPlugins, getPreviousRelatedHeadingElements, getRowsTotalHeight, getSelectCellNode, getSelectedCellPositions, getStartBlock, getTableByCell, getTableByRow, getTheDefaultPluginMenu, getToolbarClass, hasHeaderRow, headingOptions, htmlToTheia, idCreator, inValidTypes, initializeDefaultMenuIcons, injectTranslations, insertDataByInvalidType, internalPlugins, isCleanEmptyParagraph, isColorIndicator, isColorInput, isColorPanel, isDirectionKeydown, isHeadingElement, isInside, isMobileMode, isPrintMode, isPureEmptyParagraph, isRangeInTable, isRectangularInTableCells, isSelectedAllCell, isSelectionInTable, isStandardHeadingElement, isStandardHeadingElementByType, isUrl, isVirtualKey, jaJpLocale, matchOptions, mergeArray, mergeDeepPlugins, mergeElementOptions, mergeOptions, nestedStructureByKey, normalizeValue, originOptions, plainToTheia, pluginKey, pluginKey1, pluginsByKey, reSelection, recursionNodes, refocus, ruRuLocale, setClipboardDataByDom, setEditorUUID, theTethysIconRegistryFaker, toggleHeadingRelatedElement, topLeftPosition, topRightPosition, uniqueCellPosition, updatePopoverPosition, useElementStyle, withMention, withTestPlugin, withTheia, zhHansLocale, zhHantLocale };
|
|
18387
18974
|
//# sourceMappingURL=worktile-theia.mjs.map
|