@moda-editor/core 0.1.2 → 0.1.3
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/dist/conformance.d.ts.map +1 -1
- package/dist/conformance.js +140 -0
- package/dist/conformance.js.map +1 -1
- package/dist/editor/extension.d.ts +4 -2
- package/dist/editor/extension.d.ts.map +1 -1
- package/dist/features/ace.d.ts.map +1 -1
- package/dist/features/ace.js +23 -12
- package/dist/features/ace.js.map +1 -1
- package/dist/features/code-block.d.ts +29 -0
- package/dist/features/code-block.d.ts.map +1 -1
- package/dist/features/code-block.js +551 -36
- package/dist/features/code-block.js.map +1 -1
- package/dist/features/image.d.ts +14 -1
- package/dist/features/image.d.ts.map +1 -1
- package/dist/features/image.js +279 -11
- package/dist/features/image.js.map +1 -1
- package/dist/features/marks.d.ts.map +1 -1
- package/dist/features/marks.js +28 -1
- package/dist/features/marks.js.map +1 -1
- package/dist/features/table.d.ts +16 -3
- package/dist/features/table.d.ts.map +1 -1
- package/dist/features/table.js +295 -8
- package/dist/features/table.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/parse/sanitize.d.ts.map +1 -1
- package/dist/parse/sanitize.js +10 -1
- package/dist/parse/sanitize.js.map +1 -1
- package/dist/presets/highlight.d.ts +17 -0
- package/dist/presets/highlight.d.ts.map +1 -1
- package/dist/presets/highlight.js +51 -0
- package/dist/presets/highlight.js.map +1 -1
- package/dist/state/transaction.d.ts +0 -7
- package/dist/state/transaction.d.ts.map +1 -1
- package/dist/state/transaction.js +30 -1
- package/dist/state/transaction.js.map +1 -1
- package/dist/styles.css +312 -17
- package/dist/view/dom.d.ts.map +1 -1
- package/dist/view/dom.js +62 -22
- package/dist/view/dom.js.map +1 -1
- package/dist/view/input.d.ts.map +1 -1
- package/dist/view/input.js +158 -20
- package/dist/view/input.js.map +1 -1
- package/dist/view/mount.d.ts.map +1 -1
- package/dist/view/mount.js +16 -4
- package/dist/view/mount.js.map +1 -1
- package/dist/view/render.d.ts +7 -1
- package/dist/view/render.d.ts.map +1 -1
- package/dist/view/render.js +5 -1
- package/dist/view/render.js.map +1 -1
- package/dist/view/serialize.d.ts +8 -0
- package/dist/view/serialize.d.ts.map +1 -1
- package/dist/view/serialize.js +19 -0
- package/dist/view/serialize.js.map +1 -1
- package/package.json +1 -1
package/dist/styles.css
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
--me-gutter-bg: rgba(15, 23, 42, 0.035);
|
|
13
13
|
--me-gutter-color: #94a3b8;
|
|
14
14
|
--me-line-active-num: #3b82f6;
|
|
15
|
+
/* atom 노드 셀렉션 링 + 이미지 핸들 — 거터와 같은 이유로 루트에 둔다 */
|
|
16
|
+
--me-node-sel-color: #3b82f6;
|
|
15
17
|
display: flex;
|
|
16
18
|
flex-direction: column;
|
|
17
19
|
gap: 8px;
|
|
@@ -53,7 +55,6 @@
|
|
|
53
55
|
* 크롬을 담당한다 ─────────────────────────────────────────── */
|
|
54
56
|
.me-frame {
|
|
55
57
|
--me-frame-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
|
|
56
|
-
--me-focus-ring: rgba(59, 130, 246, 0.18);
|
|
57
58
|
--me-border-color: #e2e8f0;
|
|
58
59
|
--me-text-color: #1e293b;
|
|
59
60
|
--me-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas,
|
|
@@ -67,9 +68,10 @@
|
|
|
67
68
|
overflow: hidden;
|
|
68
69
|
}
|
|
69
70
|
|
|
71
|
+
/* 포커스 표시는 테두리 색만 — 글로우 링은 입력 중 카드 전체를
|
|
72
|
+
* 파란 띠로 둘러 산만했다 */
|
|
70
73
|
.me-frame:focus-within {
|
|
71
74
|
border-color: var(--me-editor-focus, #3b82f6);
|
|
72
|
-
box-shadow: 0 0 0 3px var(--me-focus-ring);
|
|
73
75
|
}
|
|
74
76
|
|
|
75
77
|
/* ── 에디터 — Ace 계열 코드 에디터 서페이스: 모노스페이스 본문 +
|
|
@@ -82,7 +84,6 @@
|
|
|
82
84
|
--me-code-bg: #f1f5f9;
|
|
83
85
|
--me-code-border: #e2e8f0;
|
|
84
86
|
--me-gutter-border: var(--me-border-color);
|
|
85
|
-
--me-line-active-bg: rgba(59, 130, 246, 0.07);
|
|
86
87
|
--me-sel-bg: rgba(59, 130, 246, 0.22);
|
|
87
88
|
--me-print-margin: rgba(148, 163, 184, 0.4);
|
|
88
89
|
|
|
@@ -182,11 +183,11 @@
|
|
|
182
183
|
}
|
|
183
184
|
|
|
184
185
|
/* 활성 라인 — aceFeature의 paintOverlay가 캐럿의 최상위 블록에
|
|
185
|
-
* me-line-active를
|
|
186
|
-
*
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
* me-line-active를 단다. 배경 띠는 칠하지 않는다(문서 편집에서
|
|
187
|
+
* 파란 띠가 산만하다는 피드백) — 활성 표시는 거터 번호 강조
|
|
188
|
+
* (.me-gnum.is-active)로만 한다. 코드블록은 코드 에디터 관례대로
|
|
189
|
+
* .me-cl.is-active가 줄 단위 배경을 칠한다. 클래스는 계속 달리므로
|
|
190
|
+
* 원하면 제품 CSS에서 배경을 되살릴 수 있다 */
|
|
190
191
|
|
|
191
192
|
/* 선택 영역 — Ace 선택색 관례 (코드블록 안도 같은 변수) */
|
|
192
193
|
.me-editor ::selection {
|
|
@@ -325,6 +326,280 @@
|
|
|
325
326
|
max-width: 100%;
|
|
326
327
|
border-radius: 6px;
|
|
327
328
|
margin: 0 0 8px;
|
|
329
|
+
cursor: default;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/* atom 노드 셀렉션 — 클릭으로 선택된 img/hr 등에 파란 링을 둔다
|
|
333
|
+
* (input.ts의 paintOverlays가 is-selected를 마킹한다) */
|
|
334
|
+
.me-editor [data-me-path].is-selected {
|
|
335
|
+
outline: 2px solid var(--me-node-sel-color);
|
|
336
|
+
outline-offset: 2px;
|
|
337
|
+
}
|
|
338
|
+
.me-editor hr.is-selected {
|
|
339
|
+
/* hr은 테두리가 굵어 outline이 묻힌다 — 위아래 여백으로 링을 띄운다 */
|
|
340
|
+
outline-offset: 4px;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
/* ── 이미지 선택 오버레이 — 선택된 img 위에 얹히는 편집/리사이즈 UI.
|
|
344
|
+
* .me-editor의 형제(.me-root의 absolute 자식)로 둬 DOM↔Point 매핑을
|
|
345
|
+
* 깨지 않는다. 래퍼는 pointer-events:none — 이미지 자체 클릭은 그대로
|
|
346
|
+
* 통과하고 핸들/바만 이벤트를 받는다 */
|
|
347
|
+
.me-imgui {
|
|
348
|
+
position: absolute;
|
|
349
|
+
z-index: 40;
|
|
350
|
+
pointer-events: none;
|
|
351
|
+
}
|
|
352
|
+
.me-imgui[hidden] {
|
|
353
|
+
display: none;
|
|
354
|
+
}
|
|
355
|
+
/* 우하단 크기 핸들 — nwse-resize (GDocs/Word 관례) */
|
|
356
|
+
.me-imgui .me-img-handle {
|
|
357
|
+
position: absolute;
|
|
358
|
+
right: -6px;
|
|
359
|
+
bottom: -6px;
|
|
360
|
+
width: 12px;
|
|
361
|
+
height: 12px;
|
|
362
|
+
border-radius: 4px;
|
|
363
|
+
background: var(--me-toolbar-bg, #fff);
|
|
364
|
+
border: 2px solid var(--me-node-sel-color);
|
|
365
|
+
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.3);
|
|
366
|
+
cursor: nwse-resize;
|
|
367
|
+
pointer-events: auto;
|
|
368
|
+
touch-action: none;
|
|
369
|
+
}
|
|
370
|
+
/* 액션 바 — 이미지 위쪽. 루트 상단에 붙으면 is-below로 아래로 뒤집는다 */
|
|
371
|
+
.me-imgui .me-img-bar {
|
|
372
|
+
position: absolute;
|
|
373
|
+
left: 0;
|
|
374
|
+
top: -6px;
|
|
375
|
+
transform: translateY(-100%);
|
|
376
|
+
display: flex;
|
|
377
|
+
flex-wrap: wrap;
|
|
378
|
+
gap: 3px;
|
|
379
|
+
padding: 4px;
|
|
380
|
+
max-width: min(320px, 90vw);
|
|
381
|
+
background: var(--me-toolbar-bg, #fff);
|
|
382
|
+
border: 1px solid var(--me-border-color);
|
|
383
|
+
border-radius: 6px;
|
|
384
|
+
box-shadow: 0 4px 14px rgba(15, 23, 42, 0.18);
|
|
385
|
+
pointer-events: auto;
|
|
386
|
+
}
|
|
387
|
+
.me-imgui.is-below .me-img-bar {
|
|
388
|
+
top: auto;
|
|
389
|
+
bottom: -6px;
|
|
390
|
+
transform: translateY(100%);
|
|
391
|
+
}
|
|
392
|
+
.me-imgui .me-imgbtn {
|
|
393
|
+
padding: 3px 8px;
|
|
394
|
+
font: inherit;
|
|
395
|
+
font-size: 12px;
|
|
396
|
+
color: inherit;
|
|
397
|
+
background: var(--me-btn-bg, transparent);
|
|
398
|
+
border: 1px solid var(--me-border-color);
|
|
399
|
+
border-radius: 4px;
|
|
400
|
+
cursor: pointer;
|
|
401
|
+
}
|
|
402
|
+
.me-imgui .me-imgbtn:hover {
|
|
403
|
+
background: var(--me-tool-hover-bg, #e2e8f0);
|
|
404
|
+
}
|
|
405
|
+
.me-imgui .me-imgbtn[data-img-act="del"]:hover {
|
|
406
|
+
color: #dc2626;
|
|
407
|
+
border-color: #dc2626;
|
|
408
|
+
}
|
|
409
|
+
/* 편집 폼 — 액션 바 안의 두 번째 행 (wrap으로 전체 폭을 차지) */
|
|
410
|
+
.me-imgui .me-imgedit {
|
|
411
|
+
flex-basis: 100%;
|
|
412
|
+
display: flex;
|
|
413
|
+
gap: 4px;
|
|
414
|
+
}
|
|
415
|
+
.me-imgui .me-imgedit[hidden] {
|
|
416
|
+
display: none;
|
|
417
|
+
}
|
|
418
|
+
.me-imgui .me-imged-src,
|
|
419
|
+
.me-imgui .me-imged-alt {
|
|
420
|
+
width: min(150px, 30vw);
|
|
421
|
+
padding: 4px 6px;
|
|
422
|
+
font: inherit;
|
|
423
|
+
font-size: 12px;
|
|
424
|
+
color: inherit;
|
|
425
|
+
background: transparent;
|
|
426
|
+
border: 1px solid var(--me-border-color);
|
|
427
|
+
border-radius: 4px;
|
|
428
|
+
outline: none;
|
|
429
|
+
}
|
|
430
|
+
.me-imgui .me-imged-src:focus,
|
|
431
|
+
.me-imgui .me-imged-alt:focus {
|
|
432
|
+
border-color: var(--me-accent, #2563eb);
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
/* ── 표 편집 오버레이 — 캐럿이 셀 안에 있을 때 표 위에 얹히는 UI.
|
|
436
|
+
* .me-imgui와 같은 패턴: 래퍼 pointer-events:none, 바/핸들만 받는다 */
|
|
437
|
+
.me-tableui {
|
|
438
|
+
position: absolute;
|
|
439
|
+
z-index: 40;
|
|
440
|
+
pointer-events: none;
|
|
441
|
+
}
|
|
442
|
+
.me-tableui[hidden] {
|
|
443
|
+
display: none;
|
|
444
|
+
}
|
|
445
|
+
/* 액션 바 — 표 위쪽 중앙. 루트 상단에 붙으면 is-below로 안쪽에 띄운다 */
|
|
446
|
+
.me-tableui .me-tbl-bar {
|
|
447
|
+
position: absolute;
|
|
448
|
+
left: 50%;
|
|
449
|
+
top: -6px;
|
|
450
|
+
transform: translate(-50%, -100%);
|
|
451
|
+
display: flex;
|
|
452
|
+
gap: 3px;
|
|
453
|
+
padding: 4px;
|
|
454
|
+
background: var(--me-toolbar-bg, #fff);
|
|
455
|
+
border: 1px solid var(--me-border-color);
|
|
456
|
+
border-radius: 6px;
|
|
457
|
+
box-shadow: 0 4px 14px rgba(15, 23, 42, 0.18);
|
|
458
|
+
white-space: nowrap;
|
|
459
|
+
pointer-events: auto;
|
|
460
|
+
}
|
|
461
|
+
.me-tableui.is-below .me-tbl-bar {
|
|
462
|
+
top: 4px;
|
|
463
|
+
transform: translate(-50%, 0);
|
|
464
|
+
}
|
|
465
|
+
.me-tableui .me-tblbtn {
|
|
466
|
+
padding: 3px 8px;
|
|
467
|
+
font: inherit;
|
|
468
|
+
font-size: 12px;
|
|
469
|
+
color: inherit;
|
|
470
|
+
background: var(--me-btn-bg, transparent);
|
|
471
|
+
border: 1px solid var(--me-border-color);
|
|
472
|
+
border-radius: 4px;
|
|
473
|
+
cursor: pointer;
|
|
474
|
+
}
|
|
475
|
+
.me-tableui .me-tblbtn:hover {
|
|
476
|
+
background: var(--me-tool-hover-bg, #e2e8f0);
|
|
477
|
+
}
|
|
478
|
+
.me-tableui .me-tblbtn[data-tbl-act="tabledel"]:hover,
|
|
479
|
+
.me-tableui .me-tblbtn[data-tbl-act="rowdel"]:hover,
|
|
480
|
+
.me-tableui .me-tblbtn[data-tbl-act="coldel"]:hover {
|
|
481
|
+
color: #dc2626;
|
|
482
|
+
border-color: #dc2626;
|
|
483
|
+
}
|
|
484
|
+
/* 열 경계 핸들 — 각 열 우측 경계의 8px 스트립. 평소엔 투명하고
|
|
485
|
+
* hover/드래그 시 리사이즈 커서 + 강조선 (GDocs 열 리사이즈 관례) */
|
|
486
|
+
.me-tableui .me-tbl-cols {
|
|
487
|
+
position: absolute;
|
|
488
|
+
inset: 0;
|
|
489
|
+
}
|
|
490
|
+
.me-tableui .me-col-handle {
|
|
491
|
+
position: absolute;
|
|
492
|
+
top: 0;
|
|
493
|
+
width: 8px;
|
|
494
|
+
cursor: col-resize;
|
|
495
|
+
pointer-events: auto;
|
|
496
|
+
touch-action: none;
|
|
497
|
+
}
|
|
498
|
+
.me-tableui .me-col-handle::after {
|
|
499
|
+
content: "";
|
|
500
|
+
position: absolute;
|
|
501
|
+
top: 0;
|
|
502
|
+
bottom: 0;
|
|
503
|
+
left: 3px;
|
|
504
|
+
width: 2px;
|
|
505
|
+
background: transparent;
|
|
506
|
+
transition: background 0.1s;
|
|
507
|
+
}
|
|
508
|
+
.me-tableui .me-col-handle:hover::after,
|
|
509
|
+
.me-tableui .me-col-handle:active::after {
|
|
510
|
+
background: var(--me-node-sel-color, #2563eb);
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
/* 코드블록 크롬 바 — 캐럿이 들어간 pre의 우측 상단(언어 라벨 자리).
|
|
514
|
+
* Notion 코드블록 언어 피커 관례. 래퍼는 좌표만 잡고 자식이 이벤트를 받는다 */
|
|
515
|
+
.me-codeui {
|
|
516
|
+
position: absolute;
|
|
517
|
+
z-index: 40;
|
|
518
|
+
transform: translateX(-100%);
|
|
519
|
+
display: flex;
|
|
520
|
+
align-items: center;
|
|
521
|
+
gap: 3px;
|
|
522
|
+
padding: 2px 4px;
|
|
523
|
+
background: var(--me-toolbar-bg, #fff);
|
|
524
|
+
border: 1px solid var(--me-border-color);
|
|
525
|
+
border-radius: 6px;
|
|
526
|
+
box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
|
|
527
|
+
white-space: nowrap;
|
|
528
|
+
}
|
|
529
|
+
.me-codeui[hidden] {
|
|
530
|
+
display: none;
|
|
531
|
+
}
|
|
532
|
+
.me-codeui .me-codelang,
|
|
533
|
+
.me-codehead .me-codelang {
|
|
534
|
+
font: inherit;
|
|
535
|
+
font-size: 11px;
|
|
536
|
+
max-width: 7.5em;
|
|
537
|
+
padding: 1px 2px;
|
|
538
|
+
color: var(--me-text-muted, #64748b);
|
|
539
|
+
background: transparent;
|
|
540
|
+
border: none;
|
|
541
|
+
border-radius: 3px;
|
|
542
|
+
cursor: pointer;
|
|
543
|
+
}
|
|
544
|
+
.me-codeui .me-codelang:hover,
|
|
545
|
+
.me-codehead .me-codelang:hover {
|
|
546
|
+
background: var(--me-tool-hover-bg, #e2e8f0);
|
|
547
|
+
}
|
|
548
|
+
.me-codeui .me-codebtn,
|
|
549
|
+
.me-codehead .me-codebtn {
|
|
550
|
+
padding: 1px 7px;
|
|
551
|
+
font: inherit;
|
|
552
|
+
font-size: 11px;
|
|
553
|
+
color: var(--me-text-muted, #64748b);
|
|
554
|
+
background: transparent;
|
|
555
|
+
border: none;
|
|
556
|
+
border-radius: 3px;
|
|
557
|
+
cursor: pointer;
|
|
558
|
+
}
|
|
559
|
+
.me-codeui .me-codebtn:hover,
|
|
560
|
+
.me-codehead .me-codebtn:hover {
|
|
561
|
+
color: inherit;
|
|
562
|
+
background: var(--me-tool-hover-bg, #e2e8f0);
|
|
563
|
+
}
|
|
564
|
+
/* 캐럿이 들어간 코드블록은 첫 줄 우측에 바 자리를 넓힌다 —
|
|
565
|
+
* 바가 코드 텍스트를 가리지 않도록 (기본 언어 라벨 패딩 5em을 덮는다) */
|
|
566
|
+
.me-editor pre.me-line-active .me-cl:first-child {
|
|
567
|
+
padding-right: 13.5em;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
/* 코드블록 노드 뷰 — 언어/정리/복사 크롬 헤더(.me-codehead) + pre
|
|
571
|
+
* 아울렛을 한 장의 카드로 묶는다 (Notion/VS Code 코드 카드 관례).
|
|
572
|
+
* 헤더는 .me-node-view의 ce=false 영역이라 캐럿 매핑에 무영향 */
|
|
573
|
+
.me-codeview {
|
|
574
|
+
background: var(--me-code-bg);
|
|
575
|
+
border: 1px solid var(--me-code-border);
|
|
576
|
+
border-radius: 6px;
|
|
577
|
+
}
|
|
578
|
+
.me-codehead {
|
|
579
|
+
display: flex;
|
|
580
|
+
align-items: center;
|
|
581
|
+
justify-content: flex-end;
|
|
582
|
+
gap: 3px;
|
|
583
|
+
padding: 2px 6px;
|
|
584
|
+
border-bottom: 1px solid var(--me-code-border);
|
|
585
|
+
border-radius: 6px 6px 0 0;
|
|
586
|
+
user-select: none;
|
|
587
|
+
}
|
|
588
|
+
/* Notion 관례 — 언어 표시는 좌측, 액션 버튼은 우측 */
|
|
589
|
+
.me-codehead .me-codelang {
|
|
590
|
+
margin-right: auto;
|
|
591
|
+
}
|
|
592
|
+
/* 카드 안 pre — 카드가 배경/테두리를 담당하므로 pre 자체 크롬은 뗀다 */
|
|
593
|
+
.me-codeview > .me-node-content {
|
|
594
|
+
margin: 0;
|
|
595
|
+
border: none;
|
|
596
|
+
border-radius: 0;
|
|
597
|
+
background: transparent;
|
|
598
|
+
}
|
|
599
|
+
/* 노드 뷰 코드블록은 헤더가 언어·액션을 담당 — 오버레이 라벨/바용
|
|
600
|
+
* 첫 줄 우측 패딩(5em/13.5em 규칙보다 뒤에 선언해 덮는다)을 되돌린다 */
|
|
601
|
+
.me-editor .me-codeview .me-cl:first-child {
|
|
602
|
+
padding-right: 0;
|
|
328
603
|
}
|
|
329
604
|
|
|
330
605
|
/* 형광펜 — 브라우저 기본 mark 색을 attr 색이 덮는다 */
|
|
@@ -680,11 +955,18 @@
|
|
|
680
955
|
display: flex;
|
|
681
956
|
align-items: center;
|
|
682
957
|
/* 한 줄 원칙 — 넘치는 항목은 두 줄로 내리지 않고 ⋯ 메뉴로 보낸다
|
|
683
|
-
* (data-rsp 티어, 아래 미디어 쿼리).
|
|
958
|
+
* (data-rsp 티어, 아래 미디어 쿼리).
|
|
959
|
+
* overflow:hidden을 쓰지 않는다 — absolute인 ⋯/A▾의 .me-menu가
|
|
960
|
+
* 툴바 아래로 열릴 때 같이 잘린다. ⋯는 absolute로 우측에 고정하고
|
|
961
|
+
* padding-right로 그 자리를 비워 넘치는 항목이 그 밑으로 스치게 한다 */
|
|
684
962
|
flex-wrap: nowrap;
|
|
685
|
-
|
|
963
|
+
/* relative+z-index: 툴바 전체를 에디터(.me-editor relative) 위에
|
|
964
|
+
* 올려 ⋯/A▾ 드롭다운이 본문에 가려지지 않게 한다. 팝오버/버블
|
|
965
|
+
* (fixed, z 50~60)보다는 아래라 겹쳐도 그쪽이 위에 뜬다 */
|
|
966
|
+
position: relative;
|
|
967
|
+
z-index: 20;
|
|
686
968
|
gap: 2px;
|
|
687
|
-
padding: 6px 8px;
|
|
969
|
+
padding: 6px 44px 6px 8px;
|
|
688
970
|
background: var(--me-toolbar-bg);
|
|
689
971
|
border-bottom: 1px solid var(--me-border-color);
|
|
690
972
|
/* IDE 크롬 — 툴 라벨도 코드 에디터 폰트로 */
|
|
@@ -776,13 +1058,19 @@
|
|
|
776
1058
|
position: relative;
|
|
777
1059
|
display: inline-flex;
|
|
778
1060
|
}
|
|
779
|
-
/* ⋯는 항상 우측 끝에 살아있어야 한다 —
|
|
780
|
-
*
|
|
1061
|
+
/* ⋯는 항상 우측 끝에 살아있어야 한다 — absolute로 핀 고정해 항목이
|
|
1062
|
+
* 넘쳐도 오버플로 진입점이 사라지지 않는다. 넘친 항목이 밑으로
|
|
1063
|
+
* 스치므로 불투명 배경으로 덮는다. absolute라 이 details 자체가
|
|
1064
|
+
* .me-menu의 containing block이다 */
|
|
781
1065
|
.me-toolbar > .me-overflow {
|
|
782
|
-
position:
|
|
783
|
-
|
|
1066
|
+
position: absolute;
|
|
1067
|
+
/* translateY 중앙정렬 대신 패딩과 같은 top — transform은 스태킹
|
|
1068
|
+
* 컨텍스트를 만들어 자식 .me-menu의 z-index를 가둔다 */
|
|
1069
|
+
right: 8px;
|
|
1070
|
+
top: 6px;
|
|
784
1071
|
flex-shrink: 0;
|
|
785
1072
|
background: var(--me-toolbar-bg);
|
|
1073
|
+
border-radius: 6px;
|
|
786
1074
|
}
|
|
787
1075
|
.me-overflow > summary,
|
|
788
1076
|
.me-styles > summary {
|
|
@@ -961,10 +1249,10 @@
|
|
|
961
1249
|
--me-gutter-bg: rgba(0, 0, 0, 0.22);
|
|
962
1250
|
--me-gutter-color: #8f908a;
|
|
963
1251
|
--me-line-active-num: #c2c2bf;
|
|
1252
|
+
--me-node-sel-color: #66d9ef;
|
|
964
1253
|
}
|
|
965
1254
|
|
|
966
1255
|
.me-frame[data-me-theme="dark"] {
|
|
967
|
-
--me-focus-ring: rgba(102, 217, 239, 0.25);
|
|
968
1256
|
background: #1e1f1c;
|
|
969
1257
|
}
|
|
970
1258
|
|
|
@@ -974,7 +1262,6 @@
|
|
|
974
1262
|
--me-code-bg: #1e1f1c;
|
|
975
1263
|
--me-code-border: #3e3d32;
|
|
976
1264
|
--me-gutter-border: #3e3d32;
|
|
977
|
-
--me-line-active-bg: rgba(255, 255, 255, 0.045);
|
|
978
1265
|
--me-sel-bg: rgba(73, 72, 62, 0.95);
|
|
979
1266
|
--me-print-margin: rgba(73, 72, 62, 0.9);
|
|
980
1267
|
}
|
|
@@ -1037,6 +1324,14 @@
|
|
|
1037
1324
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
|
|
1038
1325
|
}
|
|
1039
1326
|
|
|
1327
|
+
[data-me-theme="dark"] .me-imgui {
|
|
1328
|
+
--me-toolbar-bg: #1e1f1c;
|
|
1329
|
+
--me-btn-bg: #3e3d32;
|
|
1330
|
+
--me-tool-hover-bg: #575643;
|
|
1331
|
+
--me-accent: #66d9ef;
|
|
1332
|
+
box-shadow: none;
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1040
1335
|
[data-me-theme="dark"] .me-pop,
|
|
1041
1336
|
[data-me-theme="dark"] .me-linkcard {
|
|
1042
1337
|
--me-toolbar-bg: #1e1f1c;
|
package/dist/view/dom.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/view/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;;;GAQG;AAEH,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAqDxC,wCAAwC;AACxC,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,MAAM,GAChB,KAAK,GAAG,IAAI,CA0Cd;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,KAAK,GACX;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/view/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD;;;;;;;;GAQG;AAEH,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAqDxC,wCAAwC;AACxC,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,IAAI,EACb,SAAS,EAAE,MAAM,GAChB,KAAK,GAAG,IAAI,CA0Cd;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,KAAK,EAAE,KAAK,GACX;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAsHvC;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,GAChB;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG,IAAI,CAmCxC;AAED,8BAA8B;AAC9B,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,KAAK,EACb,KAAK,EAAE,KAAK,GACX,IAAI,CAMN"}
|
package/dist/view/dom.js
CHANGED
|
@@ -116,38 +116,71 @@ export function pointToDOM(root, point) {
|
|
|
116
116
|
if (!holder)
|
|
117
117
|
return null;
|
|
118
118
|
if (isTextHolder(holder)) {
|
|
119
|
-
// 문자 오프셋 → 텍스트 노드 + 남은
|
|
119
|
+
// 문자 오프셋 → 텍스트 노드 + 남은 오프셋.
|
|
120
|
+
// 앵커 규칙: Chromium IME 조합은 "요소 경계 끝자락" 위치(마지막 텍스트
|
|
121
|
+
// 노드의 끝, bogus <br>, 프레임워크 빈 텍스트 앵커)에서 세션을 갱신마다
|
|
122
|
+
// 리셋해 자모가 중복으로 남는다. 그래서 텍스트 끝 경계는 뒤쪽 텍스트
|
|
123
|
+
// 노드의 시작으로 내리고, 안전한 위치가 없으면 요소 경계를 쓴다.
|
|
120
124
|
let rest = point.offset;
|
|
125
|
+
let found = null;
|
|
126
|
+
let atEnd = false; // 직전 텍스트 노드의 끝에 정확히 걸친 상태
|
|
121
127
|
const walk = (n) => {
|
|
128
|
+
if (found)
|
|
129
|
+
return;
|
|
130
|
+
// <br> 안의 텍스트 노드는 유효한 편집 위치가 아니다 — 브라우저나
|
|
131
|
+
// 프레임워크 정규화로 생기는 유령 노드다
|
|
132
|
+
if (n.nodeType === 1 && n.tagName === "BR")
|
|
133
|
+
return;
|
|
122
134
|
if (n.nodeType === 3) {
|
|
123
135
|
const len = n.textContent?.length ?? 0;
|
|
124
|
-
|
|
125
|
-
|
|
136
|
+
// 길이 0 텍스트 노드는 건너뛴다 — 프레임워크 앵커용 빈 텍스트
|
|
137
|
+
// 노드(주석과 같은 역할)는 문자를 안 실으면서 캐럿만 잘못된 위치로
|
|
138
|
+
// 잡는다
|
|
139
|
+
if (!len)
|
|
140
|
+
return;
|
|
141
|
+
if (atEnd) {
|
|
142
|
+
// 경계 뒤 첫 텍스트 — 같은 doc 오프셋의 안전한 앵커
|
|
143
|
+
found = { node: n, offset: 0 };
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (rest < len) {
|
|
147
|
+
found = { node: n, offset: rest };
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
126
150
|
rest -= len;
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const r = walk(c);
|
|
131
|
-
if (r)
|
|
132
|
-
return r;
|
|
151
|
+
if (rest === 0)
|
|
152
|
+
atEnd = true;
|
|
153
|
+
return;
|
|
133
154
|
}
|
|
134
|
-
|
|
155
|
+
for (const c of Array.from(n.childNodes))
|
|
156
|
+
walk(c);
|
|
135
157
|
};
|
|
136
|
-
|
|
158
|
+
walk(holder);
|
|
137
159
|
if (found)
|
|
138
160
|
return found;
|
|
139
|
-
//
|
|
140
|
-
//
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
161
|
+
// 끝으로 클램프 — bogus <br> 자리표시자에는 절대 앵커하지 않고 그 앞의
|
|
162
|
+
// 요소 경계를 쓴다. 끝 자식이 요소면 같은 규칙으로 안쪽까지 내린다.
|
|
163
|
+
const endPos = (el) => {
|
|
164
|
+
let last = el.lastChild;
|
|
165
|
+
// 끝에서부터 마지막 "유효한" 자식을 찾는다 — 빈 텍스트 노드와
|
|
166
|
+
// 주석은 문자를 안 싣는다
|
|
167
|
+
while (last &&
|
|
168
|
+
(last.nodeType === 8 ||
|
|
169
|
+
(last.nodeType === 3 && !(last.textContent?.length ?? 0)))) {
|
|
170
|
+
last = last.previousSibling;
|
|
149
171
|
}
|
|
150
|
-
|
|
172
|
+
if (!last)
|
|
173
|
+
return { node: el, offset: 0 };
|
|
174
|
+
if (last.nodeType === 3)
|
|
175
|
+
return { node: last, offset: last.textContent?.length ?? 0 };
|
|
176
|
+
if (last.tagName === "BR")
|
|
177
|
+
return {
|
|
178
|
+
node: el,
|
|
179
|
+
offset: Array.prototype.indexOf.call(el.childNodes, last),
|
|
180
|
+
};
|
|
181
|
+
return endPos(last);
|
|
182
|
+
};
|
|
183
|
+
return endPos(holder);
|
|
151
184
|
}
|
|
152
185
|
// 컨테이너 경계를 리프 텍스트 위치로 내린다 — contenteditable 요소의
|
|
153
186
|
// (요소, 자식인덱스) 경계 셀렉션은 ce=false/중첩 editable을 건널 때
|
|
@@ -169,6 +202,13 @@ export function pointToDOM(root, point) {
|
|
|
169
202
|
if (last)
|
|
170
203
|
nodes.reverse();
|
|
171
204
|
for (const n of nodes) {
|
|
205
|
+
// <br> 안의 텍스트 노드와 길이 0 텍스트 노드는 편집 위치가 아니다 —
|
|
206
|
+
// 브라우저/프레임워크 정규화로 생기는 유령 노드라 여기에 앵커하면
|
|
207
|
+
// IME 조합이 깨진다
|
|
208
|
+
if (n.parentElement?.tagName === "BR")
|
|
209
|
+
continue;
|
|
210
|
+
if (!n.textContent?.length)
|
|
211
|
+
continue;
|
|
172
212
|
// 가장 가까운 contenteditable 조상이 false면 편집 위치가 아니다
|
|
173
213
|
// (아톰/노드뷰 크롬). 콜아웃 아울렛 안의 텍스트는 조상이 true라
|
|
174
214
|
// 통과한다
|
package/dist/view/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/view/dom.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/view/dom.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC;AAExC,SAAS,SAAS,CAAC,EAAW;IAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC7C,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,qDAAqD;AACrD,SAAS,gBAAgB,CAAC,EAAW,EAAE,IAAU,EAAE,MAAc;IAC/D,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;QAChB,4BAA4B;QAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,IAAI,GAAG,CAAC,CAAO,EAAQ,EAAE;QAC7B,IAAI,IAAI;YAAE,OAAO;QACjB,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACrB,KAAK,IAAI,MAAM,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,wCAAwC;gBACxC,8CAA8C;gBAC9C,YAAY;gBACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAChC,KAAK,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,OAAO;QACT,CAAC;QACD,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;YACpC,OAAO;QACT,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,CAAC,CAAC,CAAC;YACR,IAAI,IAAI;gBAAE,OAAO;QACnB,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,KAAK,CAAC;AACf,CAAC;AAED,6CAA6C;AAC7C,SAAS,YAAY,CAAC,EAAW;IAC/B,OAAO,EAAE,CAAC,aAAa,CAAC,IAAI,SAAS,GAAG,CAAC,KAAK,IAAI,CAAC;AACrD,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,UAAU,CACxB,IAAiB,EACjB,OAAa,EACb,SAAiB;IAEjB,MAAM,EAAE,GACN,OAAO,CAAC,QAAQ,KAAK,CAAC;QACpB,CAAC,CAAE,OAAmB;QACtB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5B,MAAM,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,SAAS,GAAG,CAAuB,CAAC;IACnE,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,2DAA2D;IAC3D,6CAA6C;IAC7C,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,OAAO,EAAE,CAAC;QAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAChD,MAAM,MAAM,GACV,OAAO,KAAK,MAAM;YAChB,CAAC,CAAC,SAAS,KAAK,CAAC;YACjB,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,wCAAwC;IACxC,wCAAwC;IACxC,IAAI,OAAO,KAAK,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;IACvE,CAAC;IACD,+CAA+C;IAC/C,8BAA8B;IAC9B,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,CAAC;gBAAE,KAAK,EAAE,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACjC,CAAC;IACD,+CAA+C;IAC/C,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,OAAO,KAAK,IAAI,KAAK,CAAC,aAAa,KAAK,MAAM;QAAE,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC;IAC5E,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACvC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;AAC9C,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,UAAU,CACxB,IAAiB,EACjB,KAAY;IAEZ,oDAAoD;IACpD,mCAAmC;IACnC,MAAM,MAAM,GACV,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QACrB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,aAAa,CAChB,IAAI,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAC3C,CAAC;IACR,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,4BAA4B;QAC5B,iDAAiD;QACjD,gDAAgD;QAChD,yCAAyC;QACzC,uCAAuC;QACvC,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QACxB,IAAI,KAAK,GAA0C,IAAI,CAAC;QACxD,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,0BAA0B;QAC7C,MAAM,IAAI,GAAG,CAAC,CAAO,EAAQ,EAAE;YAC7B,IAAI,KAAK;gBAAE,OAAO;YAClB,yCAAyC;YACzC,wBAAwB;YACxB,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,IAAK,CAAa,CAAC,OAAO,KAAK,IAAI;gBAAE,OAAO;YAChE,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACrB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;gBACvC,sCAAsC;gBACtC,wCAAwC;gBACxC,MAAM;gBACN,IAAI,CAAC,GAAG;oBAAE,OAAO;gBACjB,IAAI,KAAK,EAAE,CAAC;oBACV,kCAAkC;oBAClC,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBACD,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;oBACf,KAAK,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBAClC,OAAO;gBACT,CAAC;gBACD,IAAI,IAAI,GAAG,CAAC;gBACZ,IAAI,IAAI,KAAK,CAAC;oBAAE,KAAK,GAAG,IAAI,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;gBAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,CAAC;QACb,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,+CAA+C;QAC/C,yCAAyC;QACzC,MAAM,MAAM,GAAG,CAAC,EAAW,EAAkC,EAAE;YAC7D,IAAI,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC;YACxB,sCAAsC;YACtC,gBAAgB;YAChB,OACE,IAAI;gBACJ,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC;oBAClB,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,EAC5D,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;YAC/D,IAAK,IAAgB,CAAC,OAAO,KAAK,IAAI;gBACpC,OAAO;oBACL,IAAI,EAAE,EAAE;oBACR,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC;iBAC1D,CAAC;YACJ,OAAO,MAAM,CAAC,IAAe,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IACD,gDAAgD;IAChD,iDAAiD;IACjD,mDAAmD;IACnD,uCAAuC;IACvC,6CAA6C;IAC7C,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,OAAO,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,IAAI,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACpE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,KAAK,CAAC;YAAE,QAAQ,EAAE,CAAC;QAC1D,MAAM,EAAE,CAAC;IACX,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,IAAU,EAAE,IAAa,EAAE,EAAE;QAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,KAAK,GAAW,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;YAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,IAAI;YAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,4CAA4C;YAC5C,sCAAsC;YACtC,cAAc;YACd,IAAI,CAAC,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI;gBAAE,SAAS;YAChD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM;gBAAE,SAAS;YACrC,+CAA+C;YAC/C,yCAAyC;YACzC,OAAO;YACP,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACzD,IAAI,EAAE,EAAE,YAAY,CAAC,iBAAiB,CAAC,KAAK,OAAO;gBAAE,SAAS;YAC9D,OAAO;gBACL,IAAI,EAAE,CAAC;gBACP,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,0BAA0B;IAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;IAClB,CAAC;IACD,8BAA8B;IAC9B,KAAK,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC1C,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,YAAY,CAC1B,IAAiB;IAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,IAAI,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACjE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS;QACzB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC;QAClD,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,MAAM,IAAI,KAAK;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC9C,gDAAgD;IAChD,yCAAyC;IACzC,8BAA8B;IAC9B,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,CAAC,IAAiB,EAAE,GAAW,EAAgB,EAAE;YAC7D,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBAC/C,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAC/B,oCAAoC;gBACpC,MAAM,GAAG,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAC1C,OAAO;oBACL,IAAI,EAAE,EAAE;oBACR,MAAM,EACJ,GAAG,IAAI,CAAC;wBACN,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,MAAM;iBAC9D,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;QACF,MAAM,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,iBAAiB,CAC/B,IAAiB,EACjB,MAAa,EACb,KAAY;IAEZ,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC;IAChD,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG;QAAE,OAAO;IAC7B,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC"}
|
package/dist/view/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/view/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/view/input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA0FlD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,IAAI,IAAI,CAAC;IACf,yCAAyC;IACzC,gBAAgB,IAAI,IAAI,CAAC;IACzB,4BAA4B;IAC5B,gBAAgB,IAAI,IAAI,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;;GAKG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,0DAA0D;IAC1D,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM;CAO7D;AA2BD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,WAAW,GACd,kBAAkB,CAk/BpB"}
|