(function(t){const e=t["ko"]=t["ko"]||{};e.dictionary=Object.assign(e.dictionary||{},{"%0 of %1":"%0 / %1",Accept:"수락","Align cell text to the bottom":"셀 텍스트를 아래로 정렬","Align cell text to the center":"셀 텍스트를 가로 가운데로 정렬","Align cell text to the left":"셀 텍스트를 왼쪽으로 정렬","Align cell text to the middle":"셀 텍스트를 세로 가운데로 정렬","Align cell text to the right":"셀 텍스트를 오른쪽으로 정렬","Align cell text to the top":"셀 텍스트를 위로 정렬","Align center":"가운데 정렬","Align left":"왼쪽 정렬","Align right":"오른쪽 정렬","Align table to the left":"테이블을 왼쪽으로 정렬","Align table to the right":"테이블을 오른쪽으로 정렬",Alignment:"정렬",All:"전체","Almost equal to":"거의 같음",Angle:"각","Approximately equal to":"대략 같음",Aquamarine:"연한 청록색",Arrows:"화살표","Asterisk operator":"별표 연산자","Austral sign":"오스트랄 기호","back with leftwards arrow above":"BACK 위 왼쪽 화살표",Background:"배경색",Big:"큰","Bitcoin sign":"비트코인 기호",Black:"검은색","Block quote":"인용 단락","Block styles":"블록 스타일",Blue:"파랑색","Blue marker":"파란색 마커",Bold:"굵게",Border:"테두리","Break text":"텍스트 분리","Bulleted List":"불릿 목록","Bulleted list styles toolbar":"글머리 기호 목록 스타일 도구 모음",Cancel:"취소","Caption for image: %0":"이미지용 캡션: %0","Caption for the image":"이미지용 캡션","Cedi sign":"세디 기호","Cell properties":"셀 속성","Cent sign":"센트 기호","Center table":"테이블을 가운데로 정렬","Centered image":"가운데 정렬","Change image text alternative":"대체 문구 변경","Character categories":"문자 카테고리","Characters: %0":"문자 수: %0","Choose heading":"제목 선택","Choose language":"언어 선택",Circle:"흰 원형",Clear:"지우기","Click to edit block":"클릭하여 블록 편집",Code:"코드","Colon sign":"콜론 기호",Color:"색","Color picker":"색상 선택기",Column:"열","Contains as member":"원소로 포함","Copyright sign":"저작권 기호","Cruzeiro sign":"크루제이루 기호",Currency:"통화","Currency sign":"통화 기호",Dashed:"파선",Decimal:"십진수","Decimal with leading zero":"앞에 0이 붙는 십진수","Decrease indent":"들여쓰기 줄이기",Default:"기본","Degree sign":"도 기호","Delete column":"열 삭제","Delete row":"행 삭제","Dim grey":"진한 회색",Dimensions:"크기","Disable editing":"편집 비활성화",Disc:"검은 원형","Division sign":"나누기 기호","Document colors":"문서 색깔들","Dollar sign":"달러 기호","Dong sign":"동 기호",Dotted:"점선",Double:"이중선","Double dagger":"겹칼표","Double exclamation mark":"겹느낌표","Double low-9 quotation mark":"낮은 겹따옴표","Double question mark":"겹물음표",Downloadable:"다운로드 가능","downwards arrow to bar":"아래쪽 바를 향한 화살표","downwards dashed arrow":"아래쪽 대시 화살표","downwards double arrow":"아래쪽 겹화살표","downwards simple arrow":"아래쪽 단순 화살표","Drachma sign":"드라크마 기호","Drag to move":"드래그하여 이동","Dropdown toolbar":"드롭다운 툴바","Edit block":"편집 영역","Edit link":"링크 편집","Edit source":"소스 편집","Editor block content toolbar":"편집기 영역 내용 툴바","Editor contextual toolbar":"편집기 문맥 툴바","Editor editing area: %0":"편집기 편집 영역: %0","Editor toolbar":"편집기 툴바","Element of":"원소","Em dash":"엠 대시","Empty set":"공집합","Empty snippet content":"빈 코드 조각 내용","En dash":"엔 대시","Enable editing":"편집 활성화","end with leftwards arrow above":"END 위 왼쪽 화살표","Enter image caption":"사진 설명을 입력하세요","Enter table caption":"테이블 캡션 입력","Euro sign":"유로 기호","Euro-currency sign":"유로화 기호","Exclamation question mark":"느낌표 물음표",Find:"찾기","Find and replace":"찾기 및 바꾸기","Find in text…":"텍스트에서 찾기...","Font Background Color":"글자 배경 색깔","Font Color":"글자 색깔","Font Family":"글꼴 집합","Font Size":"글자 크기","For all":"전칭","Fraction slash":"분수 슬래시","French franc sign":"프랑스 프랑 기호","Full size image":"꽉 찬 크기","German penny sign":"독일 페니 기호","Greater-than or equal to":"더 크거나 같음","Greater-than sign":"더 큼 기호",Green:"초록색","Green marker":"초록색 마커","Green pen":"초록색 펜",Grey:"회색",Groove:"음각선","Guarani sign":"과라니 기호","Header column":"헤더 열","Header row":"헤더 행",Heading:"제목","Heading 1":"제목 1","Heading 2":"제목 2","Heading 3":"제목 3","Heading 4":"제목 4","Heading 5":"제목 5","Heading 6":"제목 6",Height:"세로",HEX:"HEX",Highlight:"강조","Horizontal ellipsis":"세 점 줄임표","Horizontal line":"수평선","Horizontal text alignment toolbar":"가로 텍스트 정렬 도구 모음","Hryvnia sign":"흐리브냐 기호","HTML object":"HTML 오브젝트","HTML snippet":"HTML 코드 조각",Huge:"매우 큰","Identical to":"합동","Image resize list":"사진 크기 목록","Image toolbar":"사진 툴바","image widget":"사진 위젯","In line":"줄 안에","Increase indent":"들여쓰기 늘리기","Indian rupee sign":"인도 루피 기호",Infinity:"무한대",Insert:"삽입","Insert code block":"코드 블럭 삽입","Insert column left":"왼쪽에 열 삽입","Insert column right":"오른쪽에 열 삽입","Insert HTML":"HTML 삽입","Insert image":"사진 삽입","Insert image via URL":"URL로 이미지 삽입","Insert media":"미디어 삽입","Insert paragraph after block":"블록 뒤에 단락 삽입","Insert paragraph before block":"블록 앞에 단락 삽입","Insert row above":"위에 행 삽입","Insert row below":"아래에 행 삽입","Insert table":"테이블 삽입",Inset:"측면 음각선",Integral:"적분",Intersection:"교집합","Inverted exclamation mark":"역느낌표","Inverted question mark":"역물음표",Italic:"기울임꼴",Justify:"양쪽 정렬","Justify cell text":"셀 텍스트를 양쪽으로 정렬","Kip sign":"킵 기호",Language:"언어",Latin:"라틴","Latin capital letter a with breve":"반달점 부호가 있는 라틴어 대문자 A","Latin capital letter a with macron":"장음 부호가 있는 라틴어 대문자 A","Latin capital letter a with ogonek":"꼬리 부호가 있는 라틴어 대문자 A","Latin capital letter c with acute":"양음 부호가 있는 라틴어 대문자 C","Latin capital letter c with caron":"반대 곡절 부호가 있는 라틴어 대문자 C","Latin capital letter c with circumflex":"곡절 부호가 있는 라틴어 대문자 C","Latin capital letter c with dot above":"위에 점 부호가 있는 라틴어 대문자 C","Latin capital letter d with caron":"반대 곡절 부호가 있는 라틴어 대문자 D","Latin capital letter d with stroke":"획 부호가 있는 라틴어 대문자 D","Latin capital letter e with breve":"반달점 부호가 있는 라틴어 대문자 E","Latin capital letter e with caron":"반대 곡절 부호가 있는 라틴어 대문자 E","Latin capital letter e with dot above":"위에 점 부호가 있는 라틴어 대문자 E","Latin capital letter e with macron":"장음 부호가 있는 라틴어 대문자 E","Latin capital letter e with ogonek":"꼬리 부호가 있는 라틴어 대문자 E","Latin capital letter eng":"라틴어 대문자 엥","Latin capital letter g with breve":"반달점 부호가 있는 라틴어 대문자 G","Latin capital letter g with cedilla":"갈고리 부호가 있는 라틴어 대문자 G","Latin capital letter g with circumflex":"곡절 부호가 있는 라틴어 대문자 G","Latin capital letter g with dot above":"위에 점 부호가 있는 라틴어 대문자 G","Latin capital letter h with circumflex":"곡절 부호가 있는 라틴어 대문자 H","Latin capital letter h with stroke":"획 부호가 있는 라틴어 대문자 H","Latin capital letter i with breve":"반달점 부호가 있는 라틴어 대문자 I","Latin capital letter i with dot above":"위에 점 부호가 있는 라틴어 대문자 I","Latin capital letter i with macron":"장음 부호가 있는 라틴어 대문자 I","Latin capital letter i with ogonek":"꼬리 부호가 있는 라틴어 대문자 I","Latin capital letter i with tilde":"물결 부호가 있는 라틴어 대문자 I","Latin capital letter j with circumflex":"곡절 부호가 있는 라틴어 대문자 J","Latin capital letter k with cedilla":"갈고리 부호가 있는 라틴어 대문자 K","Latin capital letter l with acute":"양음 부호가 있는 라틴어 대문자 I","Latin capital letter l with caron":"반대 곡절 부호가 있는 라틴어 대문자 I","Latin capital letter l with cedilla":"갈고리 부호가 있는 라틴어 대문자 I","Latin capital letter l with middle dot":"중간에 점 부호가 있는 라틴어 대문자 I","Latin capital letter l with stroke":"획 부호가 있는 라틴어 대문자 I","Latin capital letter n with acute":"양음 부호가 있는 라틴어 대문자 N","Latin capital letter n with caron":"반대 곡절 부호가 있는 라틴어 대문자 N","Latin capital letter n with cedilla":"갈고리 부호가 있는 라틴어 대문자 N","Latin capital letter o with breve":"반달점 부호가 있는 라틴어 대문자 O","Latin capital letter o with double acute":"이중 양음 부호가 있는 라틴어 대문자 O","Latin capital letter o with macron":"장음 부호가 있는 라틴어 대문자 O","Latin capital letter r with acute":"양음 부호가 있는 라틴어 대문자 R","Latin capital letter r with caron":"반대 곡절 부호가 있는 라틴어 대문자 R","Latin capital letter r with cedilla":"갈고리 부호가 있는 라틴어 대문자 R","Latin capital letter s with acute":"양음 부호가 있는 라틴어 대문자 S","Latin capital letter s with caron":"반대 곡절 부호가 있는 라틴어 대문자 S","Latin capital letter s with cedilla":"갈고리 부호가 있는 라틴어 대문자 S","Latin capital letter s with circumflex":"곡절 부호가 있는 라틴어 대문자 S","Latin capital letter t with caron":"반대 곡절 부호가 있는 라틴어 대문자 T","Latin capital letter t with cedilla":"갈고리 부호가 있는 라틴어 대문자 T","Latin capital letter t with stroke":"획 부호가 있는 라틴어 대문자 T","Latin capital letter u with breve":"반달점 부호가 있는 라틴어 대문자 U","Latin capital letter u with double acute":"이중 양음 부호가 있는 라틴어 대문자 U","Latin capital letter u with macron":"장음 부호가 있는 라틴어 대문자 U","Latin capital letter u with ogonek":"꼬리 부호가 있는 라틴어 대문자 U","Latin capital letter u with ring above":"위에 고리가 있는 라틴어 대문자 U","Latin capital letter u with tilde":"물결 부호가 있는 라틴어 대문자 U","Latin capital letter w with circumflex":"곡절 부호가 있는 라틴어 대문자 W","Latin capital letter y with circumflex":"곡절 부호가 있는 라틴어 대문자 Y","Latin capital letter y with diaeresis":"분음 부호가 있는 라틴어 대문자 Y","Latin capital letter z with acute":"양음 부호가 있는 라틴어 대문자 Z","Latin capital letter z with caron":"반대 곡절 부호가 있는 라틴어 대문자 Z","Latin capital letter z with dot above":"위에 점 부호가 있는 라틴어 대문자 Z","Latin capital ligature ij":"라틴어 대문자 합자 IJ","Latin capital ligature oe":"라틴어 대문자 합자 OE","Latin small letter a with breve":"반달점 부호가 있는 라틴어 소문자 a","Latin small letter a with macron":"장음 부호가 있는 라틴어 소문자 a","Latin small letter a with ogonek":"꼬리 부호가 있는 라틴어 소문자 a","Latin small letter c with acute":"양음 부호가 있는 라틴어 소문자 c","Latin small letter c with caron":"반대 곡절 부호가 있는 라틴어 소문자 c","Latin small letter c with circumflex":"곡절 부호가 있는 라틴어 소문자 c","Latin small letter c with dot above":"위에 점 부호가 있는 라틴어 소문자 c","Latin small letter d with caron":"반대 곡절 부호가 있는 라틴어 소문자 d","Latin small letter d with stroke":"획 부호가 있는 라틴어 소문자 d","Latin small letter dotless i":"라틴어 소문자 점 없는 i","Latin small letter e with breve":"반달점 부호가 있는 라틴어 소문자 e","Latin small letter e with caron":"반대 곡절 부호가 있는 라틴어 소문자 e","Latin small letter e with dot above":"위에 점 부호가 있는 라틴어 소문자 e","Latin small letter e with macron":"장음 부호가 있는 라틴어 소문자 e","Latin small letter e with ogonek":"꼬리 부호가 있는 라틴어 소문자 e","Latin small letter eng":"라틴어 소문자 엥","Latin small letter f with hook":"밑이 구부러진 라틴어 소문자 f","Latin small letter g with breve":"반달점 부호가 있는 라틴어 소문자 g","Latin small letter g with cedilla":"갈고리 부호가 있는 라틴어 소문자 g","Latin small letter g with circumflex":"곡절 부호가 있는 라틴어 소문자 g","Latin small letter g with dot above":"위에 점 부호가 있는 라틴어 소문자 g","Latin small letter h with circumflex":"곡절 부호가 있는 라틴어 소문자 h","Latin small letter h with stroke":"획 부호가 있는 라틴어 소문자 h","Latin small letter i with breve":"반달점 부호가 있는 라틴어 소문자 i","Latin small letter i with macron":"장음 부호가 있는 라틴어 소문자 i","Latin small letter i with ogonek":"꼬리 부호가 있는 라틴어 소문자 i","Latin small letter i with tilde":"물결 부호가 있는 라틴어 소문자 i","Latin small letter j with circumflex":"곡절 부호가 있는 라틴어 소문자 j","Latin small letter k with cedilla":"갈고리 부호가 있는 라틴어 소문자 k","Latin small letter kra":"라틴어 소문자 크라","Latin small letter l with acute":"양음 부호가 있는 라틴어 소문자 i","Latin small letter l with caron":"반대 곡절 부호가 있는 라틴어 소문자 i","Latin small letter l with cedilla":"갈고리 부호가 있는 라틴어 소문자 i","Latin small letter l with middle dot":"중간에 점 부호가 있는 라틴어 소문자 i","Latin small letter l with stroke":"획 부호가 있는 라틴어 소문자 i","Latin small letter long s":"라틴어 소문자 긴 s","Latin small letter n preceded by apostrophe":"아포스트로피 다음에 있는 라틴어 소문자 n","Latin small letter n with acute":"양음 부호가 있는 라틴어 소문자 n","Latin small letter n with caron":"반대 곡절 부호가 있는 라틴어 소문자 n","Latin small letter n with cedilla":"갈고리 부호가 있는 라틴어 소문자 n","Latin small letter o with breve":"반달점 부호가 있는 라틴어 소문자 o","Latin small letter o with double acute":"이중 양음 부호가 있는 라틴어 소문자 o","Latin small letter o with macron":"장음 부호가 있는 라틴어 소문자 o","Latin small letter r with acute":"양음 부호가 있는 라틴어 소문자 r","Latin small letter r with caron":"반대 곡절 부호가 있는 라틴어 소문자 r","Latin small letter r with cedilla":"갈고리 부호가 있는 라틴어 소문자 r","Latin small letter s with acute":"양음 부호가 있는 라틴어 소문자 s","Latin small letter s with caron":"반대 곡절 부호가 있는 라틴어 소문자 s","Latin small letter s with cedilla":"갈고리 부호가 있는 라틴어 소문자 s","Latin small letter s with circumflex":"곡절 부호가 있는 라틴어 소문자 s","Latin small letter t with caron":"반대 곡절 부호가 있는 라틴어 소문자 t","Latin small letter t with cedilla":"갈고리 부호가 있는 라틴어 소문자 t","Latin small letter t with stroke":"획 부호가 있는 라틴어 소문자 t","Latin small letter u with breve":"반달점 부호가 있는 라틴어 소문자 u","Latin small letter u with double acute":"이중 양음 부호가 있는 라틴어 소문자 u","Latin small letter u with macron":"장음 부호가 있는 라틴어 소문자 u","Latin small letter u with ogonek":"꼬리 부호가 있는 라틴어 소문자 u","Latin small letter u with ring above":"위에 고리가 있는 라틴어 소문자 u","Latin small letter u with tilde":"물결 부호가 있는 라틴어 소문자 u","Latin small letter w with circumflex":"곡절 부호가 있는 라틴어 소문자 w","Latin small letter y with circumflex":"곡절 부호가 있는 라틴어 소문자 y","Latin small letter z with acute":"양음 부호가 있는 라틴어 소문자 z","Latin small letter z with caron":"반대 곡절 부호가 있는 라틴어 소문자 z","Latin small letter z with dot above":"위에 점 부호가 있는 라틴어 소문자 z","Latin small ligature ij":"라틴어 소문자 합자 ij","Latin small ligature oe":"라틴어 소문자 합자 oe","Left aligned image":"왼쪽 정렬","Left double quotation mark":"왼쪽 큰따옴표","Left single quotation mark":"왼쪽 작은따옴표","Left-pointing double angle quotation mark":"왼쪽 겹화살괄호","leftwards arrow to bar":"왼쪽 바를 향한 화살표","leftwards dashed arrow":"왼쪽 대시 화살표","leftwards double arrow":"왼쪽 겹화살표","leftwards simple arrow":"왼쪽 단순 화살표","Less-than or equal to":"더 작거나 같음","Less-than sign":"더 작음 기호","Light blue":"연한 파랑색","Light green":"연한 초록색","Light grey":"밝은 회색",Link:"링크","Link image":"사진 링크","Link URL":"링크 주소","Lira sign":"리라 기호","List properties":"목록 속성","Livre tournois sign":"리브르 트르누아 기호","Logical and":"논리곱","Logical or":"논리합","Lower-latin":"소문자 알파벳","Lower–roman":"소문자 로마자",Macron:"장음 부호","Manat sign":"마나트 기호","Match case":"대/소문자 구분",Mathematical:"수식","Media toolbar":"미디어 툴바","Media URL":"미디어 URL","media widget":"미디어 위젯","Merge cell down":"아래 셀과 병합","Merge cell left":"왼쪽 셀과 병합","Merge cell right":"오른쪽 셀과 병합","Merge cell up":"위 셀과 병합","Merge cells":"셀 병합","Mill sign":"밀 기호","Minus sign":"빼기 기호","Multiple styles":"다중 스타일","Multiplication sign":"곱하기 기호","N-ary product":"중복순열","N-ary summation":"누계합",Nabla:"나블라","Naira sign":"나이라 기호","Navigate editable regions":"편집 가능한 구역 탐색","New sheqel sign":"뉴 세켈 기호",Next:"다음","Next editable region":"다음 편집 가능한 구역","Next result":"다음 결과","No preview available":"미리보기를 이용할 수 없습니다","No results found":"결과 찾을 수 없음","No searchable items":"검색 가능한 항목 없음",None:"선 없음","Nordic mark sign":"노르딕 마크 기호","Not an element of":"원소가 아님","Not equal to":"같지 않음","Not sign":"부정 기호","Numbered List":"번호 목록","Numbered list styles toolbar":"번호 목록 스타일 도구 모음","on with exclamation mark with left right arrow above":"ON! 위 왼쪽 오른쪽 화살표","Open in a new tab":"새 탭에서 열기","Open link in new tab":"새 탭에서 링크 열기","Open media in new tab":"새 탭에서 미디어 열기",Orange:"주황색",Original:"원본",Outset:"측면 양각선",Overline:"윗줄",Padding:"여백","Page break":"페이지 나누기",Paragraph:"문단","Paragraph sign":"단락 기호","Partial differential":"편미분","Paste raw HTML here...":"원시 HTML을 여기에 붙여넣으세요...","Paste the media URL in the input.":"미디어 URL을 입력해주세요.","Per mille sign":"퍼 마일 기호","Per ten thousand sign":"만분율 기호","Peseta sign":"페세타 기호","Peso sign":"페소 기호","Pink marker":"분홍색 마커","Plain text":"평문","Plus-minus sign":"더하기 빼기 기호","Pound sign":"파운드 기호","Press Enter to type after or press Shift + Enter to type before the widget":"엔터를 눌러서 위젯 뒤에 입력하거나 시프트 + 엔터를 눌러서 위젯 앞에 입력하세요",Previous:"이전","Previous editable region":"이전 편집 가능한 구역","Previous result":"이전 결과","Proportional to":"비례",Purple:"보라색","Question exclamation mark":"물음표 느낌표",Red:"빨간색","Red pen":"빨간색 펜",Redo:"다시 실행","Registered sign":"등록 상표 기호","Remove color":"색깔 제거","Remove Format":"서식 지우기","Remove highlight":"강조 제거","Remove language":"언어 제거",Replace:"바꾸기","Replace all":"모두 바꾸기","Replace from computer":"컴퓨터에서 교체","Replace image":"이미지 교체","Replace image from computer":"컴퓨터에서 이미지 교체","Replace with…":"바꿀 내용...","Resize image":"사진 크기 조절","Resize image to %0":"사진의 크기를 %0으로 조절","Resize image to the original size":"사진을 원래 크기로 돌려놓기","Restore default":"기본값 복원","Reversed order":"역순","Reversed paragraph sign":"반전된 단락 기호","Rich Text Editor":"서식 있는 텍스트 편집기",Ridge:"양각선","Right aligned image":"오른쪽 정렬","Right double quotation mark":"오른쪽 큰따옴표","Right single quotation mark":"오른쪽 작은따옴표","Right-pointing double angle quotation mark":"오른쪽 겹화살괄호","rightwards arrow to bar":"오른쪽 바를 향한 화살표","rightwards dashed arrow":"오른쪽 대시 화살표","rightwards double arrow":"오른쪽 겹화살표","rightwards simple arrow":"오른쪽 단순 화살표",Row:"행","Ruble sign":"루블 기호","Rupee sign":"루피 기호",Save:"저장","Save changes":"변경사항 저장","Saving changes":"변경된 내용을 저장하고 있습니다","Section sign":"구역 기호","Select all":"전체 선택","Select column":"열 선택","Select row":"행 선택","Show blocks":"블록 표시","Show more items":"더보기","Show options":"옵션 보기","Side image":"본문 옆에 배치","Single left-pointing angle quotation mark":"왼쪽 홑화살괄호","Single low-9 quotation mark":"낮은 홑따옴표","Single right-pointing angle quotation mark":"오른쪽 홑화살괄호",Small:"작은",Solid:"실선","soon with rightwards arrow above":"SOON 위 오른쪽 화살표",Source:"소스","Special characters":"특수 문자","Spesmilo sign":"스페스밀로 기호","Split cell horizontally":"가로로 셀 분할","Split cell vertically":"세로로 셀 분할",Square:"검은 사각형","Square root":"제곱근","Start at":"시작 번호","Start index must be greater than 0.":"시작 번호는 0보다 커야 합니다.",Strikethrough:"취소선",Style:"스타일",Styles:"스타일",Subscript:"아래 첨자",Superscript:"위 첨자","Table alignment toolbar":"표 정렬 도구 모음","Table cell text alignment":"표 셀 텍스트 정렬","Table properties":"표 속성","Table toolbar":"표 도구 모음","Tenge sign":"텡게 기호",Text:"텍스트","Text alignment":"텍스트 정렬","Text alignment toolbar":"텍스트 정렬 툴바","Text alternative":"대체 문구","Text highlight toolbar":"글자 강조 툴바","Text styles":"텍스트 스타일","Text to find must not be empty.":"찾을 텍스트를 입력해야 합니다.",'The color is invalid. Try "#FF0000" or "rgb(255,0,0)" or "red".':'유효하지 않은 색입니다. "#FF0000"이나 "rgb(255,0,0)", 또는 "red"를 입력해 보세요.',"The URL must not be empty.":"URL이 비어있을 수 없습니다.",'The value is invalid. Try "10px" or "2em" or simply "2".':'유효하지 않은 값입니다. "10px"나 "2em" 또는 그냥 "2"를 입력해 보세요.',"There exists":"존재","This link has no URL":"이 주소에는 URL이 없습니다.","This media URL is not supported.":"이 미디어 URL은 지원되지 않습니다.","Tilde operator":"물결표 연산자",Tiny:"매우 작은","Tip: Find some text first in order to replace it.":"팁: 바꾸려는 텍스트를 먼저 찾으세요.","Tip: Paste the URL into the content to embed faster.":"팁: URL을 붙여넣으면 더 빨리 삽입할 수 있습니다.","To-do List":"확인 목록","Toggle caption off":"캡션 지우기","Toggle caption on":"캡션 넣기","Toggle the circle list style":"검은 원형 목록 스타일 전환","Toggle the decimal list style":"십진수 목록 스타일 전환","Toggle the decimal with leading zero list style":"앞에 0이 붙는 십진수 목록 스타일 전환","Toggle the disc list style":"흰 원형 목록 스타일 전환","Toggle the lower–latin list style":"소문자 알파벳 목록 스타일 전환","Toggle the lower–roman list style":"소문자 로마자 목록 스타일 전환","Toggle the square list style":"검은 사각형 목록 스타일 전환","Toggle the upper–latin list style":"대문자 알파벳 목록 스타일 전환","Toggle the upper–roman list style":"대문자 로마자 목록 스타일 전환","top with upwards arrow above":"TOP 위 위쪽 화살표","Trade mark sign":"상표 기호","Tugrik sign":"투그리크 기호","Turkish lira sign":"터키 리라 기호",Turquoise:"청록색","Two dot leader":"두 점 줄임표","Type or paste your content here.":"여기에 내용을 입력하거나 붙여넣으세요.","Type your title":"제목을 입력해주세요",Underline:"밑줄",Undo:"실행 취소",Union:"합집합",Unlink:"링크 삭제","up down arrow with base":"받침이 있는 위아래 화살표",Update:"업데이트","Update image URL":"이미지 URL 업데이트","Upload failed":"업로드 실패","Upload from computer":"컴퓨터에서 업로드","Upload image from computer":"컴퓨터에서 이미지 업로드","Upload in progress":"업로드 진행 중","Upper-latin":"대문자 알파벳","Upper-roman":"대문자 로마자","upwards arrow to bar":"위쪽 바를 향한 화살표","upwards dashed arrow":"위쪽 대시 화살표","upwards double arrow":"위쪽 겹화살표","upwards simple arrow":"위쪽 단순 화살표","Vertical text alignment toolbar":"세로 텍스트 정렬 도구 모음","Vulgar fraction one half":"2분의 1","Vulgar fraction one quarter":"4분의 1","Vulgar fraction three quarters":"4분의 3",White:"흰색","Whole words only":"전체 단어만","Widget toolbar":"위젯 툴바",Width:"가로","Won sign":"원 기호","Words: %0":"단어 수: %0","Wrap text":"텍스트 줄 바꿈",Yellow:"노랑색","Yellow marker":"노란색 마커","Yen sign":"엔 기호"});e.getPluralForm=function(t){return 0}})(window.CKEDITOR_TRANSLATIONS||(window.CKEDITOR_TRANSLATIONS={}));
/*!
* @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md.
*/(function t(e,n){if(typeof exports==="object"&&typeof module==="object")module.exports=n();else if(typeof define==="function"&&define.amd)define([],n);else if(typeof exports==="object")exports["CKSource"]=n();else e["CKSource"]=n()})(self,(()=>(()=>{var t={8168:(t,e,n)=>{const i=n(8874);const o={};for(const t of Object.keys(i)){o[i[t]]=t}const r={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};t.exports=r;for(const t of Object.keys(r)){if(!("channels"in r[t])){throw new Error("missing channels property: "+t)}if(!("labels"in r[t])){throw new Error("missing channel labels property: "+t)}if(r[t].labels.length!==r[t].channels){throw new Error("channel and label counts mismatch: "+t)}const{channels:e,labels:n}=r[t];delete r[t].channels;delete r[t].labels;Object.defineProperty(r[t],"channels",{value:e});Object.defineProperty(r[t],"labels",{value:n})}r.rgb.hsl=function(t){const e=t[0]/255;const n=t[1]/255;const i=t[2]/255;const o=Math.min(e,n,i);const r=Math.max(e,n,i);const s=r-o;let a;let c;if(r===o){a=0}else if(e===r){a=(n-i)/s}else if(n===r){a=2+(i-e)/s}else if(i===r){a=4+(e-n)/s}a=Math.min(a*60,360);if(a<0){a+=360}const l=(o+r)/2;if(r===o){c=0}else if(l<=.5){c=s/(r+o)}else{c=s/(2-r-o)}return[a,c*100,l*100]};r.rgb.hsv=function(t){let e;let n;let i;let o;let r;const s=t[0]/255;const a=t[1]/255;const c=t[2]/255;const l=Math.max(s,a,c);const d=l-Math.min(s,a,c);const u=function(t){return(l-t)/6/d+1/2};if(d===0){o=0;r=0}else{r=d/l;e=u(s);n=u(a);i=u(c);if(s===l){o=i-n}else if(a===l){o=1/3+e-i}else if(c===l){o=2/3+n-e}if(o<0){o+=1}else if(o>1){o-=1}}return[o*360,r*100,l*100]};r.rgb.hwb=function(t){const e=t[0];const n=t[1];let i=t[2];const o=r.rgb.hsl(t)[0];const s=1/255*Math.min(e,Math.min(n,i));i=1-1/255*Math.max(e,Math.max(n,i));return[o,s*100,i*100]};r.rgb.cmyk=function(t){const e=t[0]/255;const n=t[1]/255;const i=t[2]/255;const o=Math.min(1-e,1-n,1-i);const r=(1-e-o)/(1-o)||0;const s=(1-n-o)/(1-o)||0;const a=(1-i-o)/(1-o)||0;return[r*100,s*100,a*100,o*100]};function s(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}r.rgb.keyword=function(t){const e=o[t];if(e){return e}let n=Infinity;let r;for(const e of Object.keys(i)){const o=i[e];const a=s(t,o);if(a.04045?((e+.055)/1.055)**2.4:e/12.92;n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;const o=e*.4124+n*.3576+i*.1805;const r=e*.2126+n*.7152+i*.0722;const s=e*.0193+n*.1192+i*.9505;return[o*100,r*100,s*100]};r.rgb.lab=function(t){const e=r.rgb.xyz(t);let n=e[0];let i=e[1];let o=e[2];n/=95.047;i/=100;o/=108.883;n=n>.008856?n**(1/3):7.787*n+16/116;i=i>.008856?i**(1/3):7.787*i+16/116;o=o>.008856?o**(1/3):7.787*o+16/116;const s=116*i-16;const a=500*(n-i);const c=200*(i-o);return[s,a,c]};r.hsl.rgb=function(t){const e=t[0]/360;const n=t[1]/100;const i=t[2]/100;let o;let r;let s;if(n===0){s=i*255;return[s,s,s]}if(i<.5){o=i*(1+n)}else{o=i+n-i*n}const a=2*i-o;const c=[0,0,0];for(let t=0;t<3;t++){r=e+1/3*-(t-1);if(r<0){r++}if(r>1){r--}if(6*r<1){s=a+(o-a)*6*r}else if(2*r<1){s=o}else if(3*r<2){s=a+(o-a)*(2/3-r)*6}else{s=a}c[t]=s*255}return c};r.hsl.hsv=function(t){const e=t[0];let n=t[1]/100;let i=t[2]/100;let o=n;const r=Math.max(i,.01);i*=2;n*=i<=1?i:2-i;o*=r<=1?r:2-r;const s=(i+n)/2;const a=i===0?2*o/(r+o):2*n/(i+n);return[e,a*100,s*100]};r.hsv.rgb=function(t){const e=t[0]/60;const n=t[1]/100;let i=t[2]/100;const o=Math.floor(e)%6;const r=e-Math.floor(e);const s=255*i*(1-n);const a=255*i*(1-n*r);const c=255*i*(1-n*(1-r));i*=255;switch(o){case 0:return[i,c,s];case 1:return[a,i,s];case 2:return[s,i,c];case 3:return[s,a,i];case 4:return[c,s,i];case 5:return[i,s,a]}};r.hsv.hsl=function(t){const e=t[0];const n=t[1]/100;const i=t[2]/100;const o=Math.max(i,.01);let r;let s;s=(2-n)*i;const a=(2-n)*o;r=n*o;r/=a<=1?a:2-a;r=r||0;s/=2;return[e,r*100,s*100]};r.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100;let i=t[2]/100;const o=n+i;let r;if(o>1){n/=o;i/=o}const s=Math.floor(6*e);const a=1-i;r=6*e-s;if((s&1)!==0){r=1-r}const c=n+r*(a-n);let l;let d;let u;switch(s){default:case 6:case 0:l=a;d=c;u=n;break;case 1:l=c;d=a;u=n;break;case 2:l=n;d=a;u=c;break;case 3:l=n;d=c;u=a;break;case 4:l=c;d=n;u=a;break;case 5:l=a;d=n;u=c;break}return[l*255,d*255,u*255]};r.cmyk.rgb=function(t){const e=t[0]/100;const n=t[1]/100;const i=t[2]/100;const o=t[3]/100;const r=1-Math.min(1,e*(1-o)+o);const s=1-Math.min(1,n*(1-o)+o);const a=1-Math.min(1,i*(1-o)+o);return[r*255,s*255,a*255]};r.xyz.rgb=function(t){const e=t[0]/100;const n=t[1]/100;const i=t[2]/100;let o;let r;let s;o=e*3.2406+n*-1.5372+i*-.4986;r=e*-.9689+n*1.8758+i*.0415;s=e*.0557+n*-.204+i*1.057;o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92;r=r>.0031308?1.055*r**(1/2.4)-.055:r*12.92;s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92;o=Math.min(Math.max(0,o),1);r=Math.min(Math.max(0,r),1);s=Math.min(Math.max(0,s),1);return[o*255,r*255,s*255]};r.xyz.lab=function(t){let e=t[0];let n=t[1];let i=t[2];e/=95.047;n/=100;i/=108.883;e=e>.008856?e**(1/3):7.787*e+16/116;n=n>.008856?n**(1/3):7.787*n+16/116;i=i>.008856?i**(1/3):7.787*i+16/116;const o=116*n-16;const r=500*(e-n);const s=200*(n-i);return[o,r,s]};r.lab.xyz=function(t){const e=t[0];const n=t[1];const i=t[2];let o;let r;let s;r=(e+16)/116;o=n/500+r;s=r-i/200;const a=r**3;const c=o**3;const l=s**3;r=a>.008856?a:(r-16/116)/7.787;o=c>.008856?c:(o-16/116)/7.787;s=l>.008856?l:(s-16/116)/7.787;o*=95.047;r*=100;s*=108.883;return[o,r,s]};r.lab.lch=function(t){const e=t[0];const n=t[1];const i=t[2];let o;const r=Math.atan2(i,n);o=r*360/2/Math.PI;if(o<0){o+=360}const s=Math.sqrt(n*n+i*i);return[e,s,o]};r.lch.lab=function(t){const e=t[0];const n=t[1];const i=t[2];const o=i/360*2*Math.PI;const r=n*Math.cos(o);const s=n*Math.sin(o);return[e,r,s]};r.rgb.ansi16=function(t,e=null){const[n,i,o]=t;let s=e===null?r.rgb.hsv(t)[2]:e;s=Math.round(s/50);if(s===0){return 30}let a=30+(Math.round(o/255)<<2|Math.round(i/255)<<1|Math.round(n/255));if(s===2){a+=60}return a};r.hsv.ansi16=function(t){return r.rgb.ansi16(r.hsv.rgb(t),t[2])};r.rgb.ansi256=function(t){const e=t[0];const n=t[1];const i=t[2];if(e===n&&n===i){if(e<8){return 16}if(e>248){return 231}return Math.round((e-8)/247*24)+232}const o=16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5);return o};r.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7){if(t>50){e+=3.5}e=e/10.5*255;return[e,e,e]}const n=(~~(t>50)+1)*.5;const i=(e&1)*n*255;const o=(e>>1&1)*n*255;const r=(e>>2&1)*n*255;return[i,o,r]};r.ansi256.rgb=function(t){if(t>=232){const e=(t-232)*10+8;return[e,e,e]}t-=16;let e;const n=Math.floor(t/36)/5*255;const i=Math.floor((e=t%36)/6)/5*255;const o=e%6/5*255;return[n,i,o]};r.rgb.hex=function(t){const e=((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255);const n=e.toString(16).toUpperCase();return"000000".substring(n.length)+n};r.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e){return[0,0,0]}let n=e[0];if(e[0].length===3){n=n.split("").map((t=>t+t)).join("")}const i=parseInt(n,16);const o=i>>16&255;const r=i>>8&255;const s=i&255;return[o,r,s]};r.rgb.hcg=function(t){const e=t[0]/255;const n=t[1]/255;const i=t[2]/255;const o=Math.max(Math.max(e,n),i);const r=Math.min(Math.min(e,n),i);const s=o-r;let a;let c;if(s<1){a=r/(1-s)}else{a=0}if(s<=0){c=0}else if(o===e){c=(n-i)/s%6}else if(o===n){c=2+(i-e)/s}else{c=4+(e-n)/s}c/=6;c%=1;return[c*360,s*100,a*100]};r.hsl.hcg=function(t){const e=t[1]/100;const n=t[2]/100;const i=n<.5?2*e*n:2*e*(1-n);let o=0;if(i<1){o=(n-.5*i)/(1-i)}return[t[0],i*100,o*100]};r.hsv.hcg=function(t){const e=t[1]/100;const n=t[2]/100;const i=e*n;let o=0;if(i<1){o=(n-i)/(1-i)}return[t[0],i*100,o*100]};r.hcg.rgb=function(t){const e=t[0]/360;const n=t[1]/100;const i=t[2]/100;if(n===0){return[i*255,i*255,i*255]}const o=[0,0,0];const r=e%1*6;const s=r%1;const a=1-s;let c=0;switch(Math.floor(r)){case 0:o[0]=1;o[1]=s;o[2]=0;break;case 1:o[0]=a;o[1]=1;o[2]=0;break;case 2:o[0]=0;o[1]=1;o[2]=s;break;case 3:o[0]=0;o[1]=a;o[2]=1;break;case 4:o[0]=s;o[1]=0;o[2]=1;break;default:o[0]=1;o[1]=0;o[2]=a}c=(1-n)*i;return[(n*o[0]+c)*255,(n*o[1]+c)*255,(n*o[2]+c)*255]};r.hcg.hsv=function(t){const e=t[1]/100;const n=t[2]/100;const i=e+n*(1-e);let o=0;if(i>0){o=e/i}return[t[0],o*100,i*100]};r.hcg.hsl=function(t){const e=t[1]/100;const n=t[2]/100;const i=n*(1-e)+.5*e;let o=0;if(i>0&&i<.5){o=e/(2*i)}else if(i>=.5&&i<1){o=e/(2*(1-i))}return[t[0],o*100,i*100]};r.hcg.hwb=function(t){const e=t[1]/100;const n=t[2]/100;const i=e+n*(1-e);return[t[0],(i-e)*100,(1-i)*100]};r.hwb.hcg=function(t){const e=t[1]/100;const n=t[2]/100;const i=1-n;const o=i-e;let r=0;if(o<1){r=(i-o)/(1-o)}return[t[0],o*100,r*100]};r.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};r.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};r.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};r.gray.hsl=function(t){return[0,0,t[0]]};r.gray.hsv=r.gray.hsl;r.gray.hwb=function(t){return[0,100,t[0]]};r.gray.cmyk=function(t){return[0,0,0,t[0]]};r.gray.lab=function(t){return[t[0],0,0]};r.gray.hex=function(t){const e=Math.round(t[0]/100*255)&255;const n=(e<<16)+(e<<8)+e;const i=n.toString(16).toUpperCase();return"000000".substring(i.length)+i};r.rgb.gray=function(t){const e=(t[0]+t[1]+t[2])/3;return[e/255*100]}},2085:(t,e,n)=>{const i=n(8168);const o=n(4111);const r={};const s=Object.keys(i);function a(t){const e=function(...e){const n=e[0];if(n===undefined||n===null){return n}if(n.length>1){e=n}return t(e)};if("conversion"in t){e.conversion=t.conversion}return e}function c(t){const e=function(...e){const n=e[0];if(n===undefined||n===null){return n}if(n.length>1){e=n}const i=t(e);if(typeof i==="object"){for(let t=i.length,e=0;e{r[t]={};Object.defineProperty(r[t],"channels",{value:i[t].channels});Object.defineProperty(r[t],"labels",{value:i[t].labels});const e=o(t);const n=Object.keys(e);n.forEach((n=>{const i=e[n];r[t][n]=c(i);r[t][n].raw=a(i)}))}));t.exports=r},4111:(t,e,n)=>{const i=n(8168);function o(){const t={};const e=Object.keys(i);for(let n=e.length,i=0;i{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},5363:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck-content code{background-color:hsla(0,0%,78%,.3);border-radius:2px;padding:.15em}.ck.ck-editor__editable .ck-code_selected{background-color:hsla(0,0%,78%,.5)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-basic-styles/theme/code.css"],names:[],mappings:"AAKA,iBACC,kCAAuC,CAEvC,iBAAkB,CADlB,aAED,CAEA,0CACC,kCACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content code {\n\tbackground-color: hsla(0, 0%, 78%, 0.3);\n\tpadding: .15em;\n\tborder-radius: 2px;\n}\n\n.ck.ck-editor__editable .ck-code_selected {\n\tbackground-color: hsla(0, 0%, 78%, 0.5);\n}\n"],sourceRoot:""}]);const c=a},3789:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck-content blockquote{border-left:5px solid #ccc;font-style:italic;margin-left:0;margin-right:0;overflow:hidden;padding-left:1.5em;padding-right:1.5em}.ck-content[dir=rtl] blockquote{border-left:0;border-right:5px solid #ccc}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css"],names:[],mappings:"AAKA,uBAWC,0BAAsC,CADtC,iBAAkB,CAFlB,aAAc,CACd,cAAe,CAPf,eAAgB,CAIhB,kBAAmB,CADnB,mBAOD,CAEA,gCACC,aAAc,CACd,2BACD",sourcesContent:['/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content blockquote {\n\t/* See #12 */\n\toverflow: hidden;\n\n\t/* https://github.com/ckeditor/ckeditor5-block-quote/issues/15 */\n\tpadding-right: 1.5em;\n\tpadding-left: 1.5em;\n\n\tmargin-left: 0;\n\tmargin-right: 0;\n\tfont-style: italic;\n\tborder-left: solid 5px hsl(0, 0%, 80%);\n}\n\n.ck-content[dir="rtl"] blockquote {\n\tborder-left: 0;\n\tborder-right: solid 5px hsl(0, 0%, 80%);\n}\n'],sourceRoot:""}]);const c=a},799:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,'.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position{display:inline;pointer-events:none;position:relative}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{position:absolute;width:0}.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__selection-handle,.ck.ck-editor__editable .ck-widget:-webkit-drag>.ck-widget__type-around{display:none}.ck.ck-clipboard-drop-target-line{pointer-events:none;position:absolute}:root{--ck-clipboard-drop-target-dot-width:12px;--ck-clipboard-drop-target-dot-height:8px;--ck-clipboard-drop-target-color:var(--ck-color-focus-border)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);bottom:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);margin-left:-1px;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5)}.ck.ck-editor__editable .ck.ck-clipboard-drop-target-position span:after{border-color:var(--ck-clipboard-drop-target-color) transparent transparent transparent;border-style:solid;border-width:calc(var(--ck-clipboard-drop-target-dot-height)) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5);content:"";display:block;height:0;left:50%;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-height)*-.5);transform:translateX(-50%);width:0}.ck.ck-editor__editable .ck-widget.ck-clipboard-drop-target-range{outline:var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color)!important}.ck.ck-editor__editable .ck-widget:-webkit-drag{zoom:.6;outline:none!important}.ck.ck-clipboard-drop-target-line{background:var(--ck-clipboard-drop-target-color);border:1px solid var(--ck-clipboard-drop-target-color);height:0;margin-top:-1px}.ck.ck-clipboard-drop-target-line:before{border-style:solid;content:"";height:0;position:absolute;top:calc(var(--ck-clipboard-drop-target-dot-width)*-.5);width:0}[dir=ltr] .ck.ck-clipboard-drop-target-line:before{border-color:transparent transparent transparent var(--ck-clipboard-drop-target-color);border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0 calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height);left:-1px}[dir=rtl] .ck.ck-clipboard-drop-target-line:before{border-color:transparent var(--ck-clipboard-drop-target-color) transparent transparent;border-width:calc(var(--ck-clipboard-drop-target-dot-width)*.5) var(--ck-clipboard-drop-target-dot-height) calc(var(--ck-clipboard-drop-target-dot-width)*.5) 0;right:-1px}',"",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-clipboard/theme/clipboard.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-clipboard/clipboard.css"],names:[],mappings:"AASC,8DACC,cAAe,CAEf,mBAAoB,CADpB,iBAOD,CAJC,mEACC,iBAAkB,CAClB,OACD,CAWA,qJACC,YACD,CAIF,kCAEC,mBAAoB,CADpB,iBAED,CC9BA,MACC,yCAA0C,CAC1C,yCAA0C,CAC1C,6DACD,CAOE,mEAIC,gDAAiD,CADjD,sDAAuD,CAFvD,2DAA8D,CAI9D,gBAAiB,CAHjB,wDAqBD,CAfC,yEAWC,sFAAuF,CAEvF,kBAAmB,CADnB,qKAA0K,CAX1K,UAAW,CAIX,aAAc,CAFd,QAAS,CAIT,QAAS,CADT,iBAAkB,CAElB,wDAA2D,CAE3D,0BAA2B,CAR3B,OAYD,CAOF,kEACC,gGACD,CAKA,gDACC,OAAS,CACT,sBACD,CAGD,kCAGC,gDAAiD,CADjD,sDAAuD,CADvD,QAAS,CAGT,eAwBD,CAtBC,yCAMC,kBAAmB,CALnB,UAAW,CAIX,QAAS,CAHT,iBAAkB,CAClB,uDAA0D,CAC1D,OAiBD,CArBA,mDAYE,sFAAuF,CADvF,+JAAoK,CAFpK,SAYF,CArBA,mDAmBE,sFAAuF,CADvF,+JAAmK,CAFnK,UAKF",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\tdisplay: inline;\n\t\tposition: relative;\n\t\tpointer-events: none;\n\n\t\t& span {\n\t\t\tposition: absolute;\n\t\t\twidth: 0;\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\t& > .ck-widget__selection-handle {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\t& > .ck-widget__type-around {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\tposition: absolute;\n\tpointer-events: none;\n}\n","/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import \"@ckeditor/ckeditor5-ui/theme/mixins/_dir.css\";\n\n:root {\n\t--ck-clipboard-drop-target-dot-width: 12px;\n\t--ck-clipboard-drop-target-dot-height: 8px;\n\t--ck-clipboard-drop-target-color: var(--ck-color-focus-border);\n}\n\n.ck.ck-editor__editable {\n\t/*\n\t * Vertical drop target (in text).\n\t */\n\t& .ck.ck-clipboard-drop-target-position {\n\t\t& span {\n\t\t\tbottom: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\t\t\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\t\t\tbackground: var(--ck-clipboard-drop-target-color);\n\t\t\tmargin-left: -1px;\n\n\t\t\t/* The triangle above the marker */\n\t\t\t&::after {\n\t\t\t\tcontent: '';\n\t\t\t\twidth: 0;\n\t\t\t\theight: 0;\n\n\t\t\t\tdisplay: block;\n\t\t\t\tposition: absolute;\n\t\t\t\tleft: 50%;\n\t\t\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-height));\n\n\t\t\t\ttransform: translateX(-50%);\n\t\t\t\tborder-color: var(--ck-clipboard-drop-target-color) transparent transparent transparent;\n\t\t\t\tborder-width: calc(var(--ck-clipboard-drop-target-dot-height)) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\t\t\tborder-style: solid;\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * Styles of the widget that it a drop target.\n\t */\n\t& .ck-widget.ck-clipboard-drop-target-range {\n\t\toutline: var(--ck-widget-outline-thickness) solid var(--ck-clipboard-drop-target-color) !important;\n\t}\n\n\t/*\n\t * Styles of the widget being dragged (its preview).\n\t */\n\t& .ck-widget:-webkit-drag {\n\t\tzoom: 0.6;\n\t\toutline: none !important;\n\t}\n}\n\n.ck.ck-clipboard-drop-target-line {\n\theight: 0;\n\tborder: 1px solid var(--ck-clipboard-drop-target-color);\n\tbackground: var(--ck-clipboard-drop-target-color);\n\tmargin-top: -1px;\n\n\t&::before {\n\t\tcontent: '';\n\t\tposition: absolute;\n\t\ttop: calc(-.5 * var(--ck-clipboard-drop-target-dot-width));\n\t\twidth: 0;\n\t\theight: 0;\n\t\tborder-style: solid;\n\n\t\t@mixin ck-dir ltr {\n\t\t\tleft: -1px;\n\n\t\t\tborder-width: calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0 calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height);\n\t\t\tborder-color: transparent transparent transparent var(--ck-clipboard-drop-target-color);\n\t\t}\n\n\t\t@mixin ck-dir rtl {\n\t\t\tright: -1px;\n\n\t\t\tborder-width:calc(.5 * var(--ck-clipboard-drop-target-dot-width)) var(--ck-clipboard-drop-target-dot-height) calc(.5 * var(--ck-clipboard-drop-target-dot-width)) 0;\n\t\t\tborder-color: transparent var(--ck-clipboard-drop-target-color) transparent transparent;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]);const c=a},3229:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck-content pre{background:hsla(0,0%,78%,.3);border:1px solid #c4c4c4;border-radius:2px;color:#353535;direction:ltr;font-style:normal;min-width:200px;padding:1em;tab-size:4;text-align:left;white-space:pre-wrap}.ck-content pre code{background:unset;border-radius:0;padding:0}.ck.ck-editor__editable pre{position:relative}.ck.ck-editor__editable pre[data-language]:after{content:attr(data-language);position:absolute}:root{--ck-color-code-block-label-background:#757575}.ck.ck-editor__editable pre[data-language]:after{background:var(--ck-color-code-block-label-background);color:#fff;font-family:var(--ck-font-face);font-size:10px;line-height:16px;padding:var(--ck-spacing-tiny) var(--ck-spacing-medium);right:10px;top:-1px;white-space:nowrap}.ck.ck-code-block-dropdown .ck-dropdown__panel{max-height:250px;overflow-x:hidden;overflow-y:auto}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-code-block/theme/codeblock.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-code-block/codeblock.css"],names:[],mappings:"AAKA,gBAGC,4BAAiC,CACjC,wBAAiC,CACjC,iBAAkB,CAHlB,aAAwB,CAOxB,aAAc,CAMd,iBAAkB,CAGlB,eAAgB,CAjBhB,WAAY,CAUZ,UAAW,CAHX,eAAgB,CAIhB,oBAaD,CALC,qBACC,gBAAiB,CAEjB,eAAgB,CADhB,SAED,CAGD,4BACC,iBAMD,CAJC,iDACC,2BAA4B,CAC5B,iBACD,CCjCD,MACC,8CACD,CAEA,iDAGC,sDAAuD,CAMvD,UAAuB,CAHvB,+BAAgC,CADhC,cAAe,CAEf,gBAAiB,CACjB,uDAAwD,CANxD,UAAW,CADX,QAAS,CAST,kBACD,CAEA,+CAEC,gBAAiB,CAEjB,iBAAkB,CADlB,eAED",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-content pre {\n\tpadding: 1em;\n\tcolor: hsl(0, 0%, 20.8%);\n\tbackground: hsla(0, 0%, 78%, 0.3);\n\tborder: 1px solid hsl(0, 0%, 77%);\n\tborder-radius: 2px;\n\n\t/* Code block are language direction–agnostic. */\n\ttext-align: left;\n\tdirection: ltr;\n\n\ttab-size: 4;\n\twhite-space: pre-wrap;\n\n\t/* Don't inherit the style, e.g. when in a block quote. */\n\tfont-style: normal;\n\n\t/* Don't let the code be squashed e.g. when in a table cell. */\n\tmin-width: 200px;\n\n\t& code {\n\t\tbackground: unset;\n\t\tpadding: 0;\n\t\tborder-radius: 0;\n\t}\n}\n\n.ck.ck-editor__editable pre {\n\tposition: relative;\n\n\t&[data-language]::after {\n\t\tcontent: attr(data-language);\n\t\tposition: absolute;\n\t}\n}\n","/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n:root {\n\t--ck-color-code-block-label-background: hsl(0, 0%, 46%);\n}\n\n.ck.ck-editor__editable pre[data-language]::after {\n\ttop: -1px;\n\tright: 10px;\n\tbackground: var(--ck-color-code-block-label-background);\n\n\tfont-size: 10px;\n\tfont-family: var(--ck-font-face);\n\tline-height: 16px;\n\tpadding: var(--ck-spacing-tiny) var(--ck-spacing-medium);\n\tcolor: hsl(0, 0%, 100%);\n\twhite-space: nowrap;\n}\n\n.ck.ck-code-block-dropdown .ck-dropdown__panel {\n\t/* There could be dozens of languages available. Use scroll to prevent a 10e6px dropdown. */\n\tmax-height: 250px;\n\toverflow-y: auto;\n\toverflow-x: hidden;\n}\n"],sourceRoot:""}]);const c=a},3624:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck.ck-editor{position:relative}.ck.ck-editor .ck-editor__top .ck-sticky-panel .ck-toolbar{z-index:var(--ck-z-modal)}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-bottom-left-radius:0;border-bottom-right-radius:0}.ck.ck-editor__top .ck-sticky-panel .ck-toolbar{border-bottom-width:0}.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar{border-bottom-width:1px;border-radius:0}.ck-rounded-corners .ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar,.ck.ck-editor__top .ck-sticky-panel .ck-sticky-panel__content_sticky .ck-toolbar.ck-rounded-corners{border-radius:var(--ck-border-radius);border-radius:0}.ck.ck-editor__main>.ck-editor__editable{background:var(--ck-color-base-background);border-radius:0}.ck-rounded-corners .ck.ck-editor__main>.ck-editor__editable,.ck.ck-editor__main>.ck-editor__editable.ck-rounded-corners{border-radius:var(--ck-border-radius);border-top-left-radius:0;border-top-right-radius:0}.ck.ck-editor__main>.ck-editor__editable:not(.ck-focused){border-color:var(--ck-color-base-border)}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-editor-classic/theme/classiceditor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-editor-classic/classiceditor.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/mixins/_rounded.css"],names:[],mappings:"AAKA,cAIC,iBAMD,CAJC,2DAEC,yBACD,CCLC,gDCED,eDKC,CAPA,uICMA,qCAAsC,CDJpC,2BAA4B,CAC5B,4BAIF,CAPA,gDAMC,qBACD,CAEA,iFACC,uBAAwB,CCR1B,eDaC,CANA,yMCHA,qCAAsC,CDOpC,eAEF,CAKF,yCAEC,0CAA2C,CCpB3C,eD8BD,CAZA,yHCdE,qCAAsC,CDmBtC,wBAAyB,CACzB,yBAMF,CAHC,0DACC,wCACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-editor {\n\t/* All the elements within `.ck-editor` are positioned relatively to it.\n\t If any element needs to be positioned with respect to the , etc.,\n\t it must land outside of the `.ck-editor` in DOM. */\n\tposition: relative;\n\n\t& .ck-editor__top .ck-sticky-panel .ck-toolbar {\n\t\t/* https://github.com/ckeditor/ckeditor5-editor-classic/issues/62 */\n\t\tz-index: var(--ck-z-modal);\n\t}\n}\n",'/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "../mixins/_rounded.css";\n\n.ck.ck-editor__top {\n\t& .ck-sticky-panel {\n\t\t& .ck-toolbar {\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-bottom-left-radius: 0;\n\t\t\t\tborder-bottom-right-radius: 0;\n\t\t\t}\n\n\t\t\tborder-bottom-width: 0;\n\t\t}\n\n\t\t& .ck-sticky-panel__content_sticky .ck-toolbar {\n\t\t\tborder-bottom-width: 1px;\n\n\t\t\t@mixin ck-rounded-corners {\n\t\t\t\tborder-radius: 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\n/* Note: Use ck-editor__main to make sure these styles don\'t apply to other editor types */\n.ck.ck-editor__main > .ck-editor__editable {\n\t/* https://github.com/ckeditor/ckeditor5-theme-lark/issues/113 */\n\tbackground: var(--ck-color-base-background);\n\n\t@mixin ck-rounded-corners {\n\t\tborder-top-left-radius: 0;\n\t\tborder-top-right-radius: 0;\n\t}\n\n\t&:not(.ck-focused) {\n\t\tborder-color: var(--ck-color-base-border);\n\t}\n}\n',"/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Implements rounded corner interface for .ck-rounded-corners class.\n *\n * @see $ck-border-radius\n */\n@define-mixin ck-rounded-corners {\n\tborder-radius: 0;\n\n\t@nest .ck-rounded-corners &,\n\t&.ck-rounded-corners {\n\t\tborder-radius: var(--ck-border-radius);\n\t\t@mixin-content;\n\t}\n}\n"],sourceRoot:""}]);const c=a},7372:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck .ck-placeholder,.ck.ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{content:attr(data-placeholder);left:0;pointer-events:none;position:absolute;right:0}.ck.ck-read-only .ck-placeholder:before{display:none}.ck.ck-reset_all .ck-placeholder{position:relative}.ck .ck-placeholder:before,.ck.ck-placeholder:before{color:var(--ck-color-engine-placeholder-text);cursor:text}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-engine/placeholder.css"],names:[],mappings:"AAMA,uCAEC,iBAWD,CATC,qDAIC,8BAA+B,CAF/B,MAAO,CAKP,mBAAoB,CANpB,iBAAkB,CAElB,OAKD,CAKA,wCACC,YACD,CAQD,iCACC,iBACD,CC5BC,qDAEC,6CAA8C,CAD9C,WAED",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder,\n.ck .ck-placeholder {\n\tposition: relative;\n\n\t&::before {\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tcontent: attr(data-placeholder);\n\n\t\t/* See ckeditor/ckeditor5#469. */\n\t\tpointer-events: none;\n\t}\n}\n\n/* See ckeditor/ckeditor5#1987. */\n.ck.ck-read-only .ck-placeholder {\n\t&::before {\n\t\tdisplay: none;\n\t}\n}\n\n/*\n * Rules for the `ck-placeholder` are loaded before the rules for `ck-reset_all` in the base CKEditor 5 DLL build.\n * This fix overwrites the incorrectly set `position: static` from `ck-reset_all`.\n * See https://github.com/ckeditor/ckeditor5/issues/11418.\n */\n.ck.ck-reset_all .ck-placeholder {\n\tposition: relative;\n}\n","/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* See ckeditor/ckeditor5#936. */\n.ck.ck-placeholder, .ck .ck-placeholder {\n\t&::before {\n\t\tcursor: text;\n\t\tcolor: var(--ck-color-engine-placeholder-text);\n\t}\n}\n"],sourceRoot:""}]);const c=a},5037:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck.ck-editor__editable span[data-ck-unsafe-element]{display:none}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-engine/theme/renderer.css"],names:[],mappings:"AAMA,qDACC,YACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* Elements marked by the Renderer as hidden should be invisible in the editor. */\n.ck.ck-editor__editable span[data-ck-unsafe-element] {\n\tdisplay: none;\n}\n"],sourceRoot:""}]);const c=a},2218:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck-find-result{background:var(--ck-color-highlight-background);color:var(--ck-color-text)}.ck-find-result_selected{background:#ff9633}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplace.css"],names:[],mappings:"AAKA,gBACC,+CAAgD,CAChD,0BACD,CAEA,yBACC,kBACD",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck-find-result {\n\tbackground: var(--ck-color-highlight-background);\n\tcolor: var(--ck-color-text);\n}\n\n.ck-find-result_selected {\n\tbackground: hsl(29, 100%, 60%);\n}\n"],sourceRoot:""}]);const c=a},3403:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var i=n(4015);var o=n.n(i);var r=n(3645);var s=n.n(r);var a=s()(o());a.push([t.id,".ck.ck-find-and-replace-form{max-width:100%}.ck.ck-find-and-replace-form fieldset{display:flex}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{position:absolute}.ck.ck-find-and-replace-form{width:400px}.ck.ck-find-and-replace-form:focus{outline:none}.ck.ck-find-and-replace-form fieldset{align-content:stretch;align-items:center;border:0;flex-direction:row;flex-wrap:nowrap;margin:0;padding:var(--ck-spacing-large)}.ck.ck-find-and-replace-form fieldset>.ck-button{flex:0 0 auto}[dir=ltr] .ck.ck-find-and-replace-form fieldset>*+*{margin-left:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-find-and-replace-form fieldset>*+*{margin-right:var(--ck-spacing-standard)}.ck.ck-find-and-replace-form fieldset .ck-labeled-field-view{flex:1 1 auto}.ck.ck-find-and-replace-form fieldset .ck-labeled-field-view .ck-input{min-width:50px;width:100%}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find{align-items:flex-start}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-find{font-weight:700}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-find .ck-button__label{padding-left:var(--ck-spacing-large);padding-right:var(--ck-spacing-large)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-prev>.ck-icon{transform:rotate(90deg)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button-next>.ck-icon{transform:rotate(-90deg)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{top:50%;transform:translateY(-50%)}[dir=ltr] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{right:var(--ck-spacing-standard)}[dir=rtl] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{left:var(--ck-spacing-standard)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-results-counter{color:var(--ck-color-base-border)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace{flex-wrap:wrap;justify-content:flex-end;margin-top:calc(var(--ck-spacing-large)*-1)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-labeled-field-view{margin-bottom:var(--ck-spacing-large)}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-options-dropdown{margin-left:0;margin-right:auto}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-labeled-field-view,.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-labeled-field-view .ck-input{width:100%}@media screen and (max-width:600px){.ck.ck-find-and-replace-form{width:300px}.ck.ck-find-and-replace-form fieldset{flex-wrap:wrap}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find .ck-labeled-field-view{flex:1 0 auto;margin-bottom:var(--ck-spacing-standard);width:100%}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button{text-align:center}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type{flex:1 1 auto}[dir=ltr] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type{margin-left:0}[dir=rtl] .ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type{margin-right:0}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__find>.ck-button:first-of-type .ck-button__label{text-align:center;width:100%}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>:not(.ck-labeled-field-view){flex:1 1 auto}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-dropdown:not(.ck-labeled-field-view){flex-grow:0}.ck.ck-find-and-replace-form fieldset.ck-find-and-replace-form__replace>.ck-button:not(.ck-labeled-field-view)>.ck-button__label{text-align:center;width:100%}}","",{version:3,sources:["webpack://./node_modules/@ckeditor/ckeditor5-find-and-replace/theme/findandreplaceform.css","webpack://./node_modules/@ckeditor/ckeditor5-theme-lark/theme/ckeditor5-find-and-replace/findandreplaceform.css","webpack://./node_modules/@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css"],names:[],mappings:"AAKA,6BACC,cAUD,CARC,sCACC,YAMD,CAHC,yFACC,iBACD,CCNF,6BACC,WAyGD,CAnGC,mCACC,YACD,CAEA,sCAIC,qBAAsB,CADtB,kBAAmB,CAInB,QAAS,CANT,kBAAmB,CACnB,gBAAiB,CAMjB,QAAS,CAFT,+BAwFD,CApFC,iDACC,aACD,CAGC,oDACC,sCACD,CAIA,oDACC,uCACD,CAGD,6DACC,aAMD,CAJC,uEAEC,cAAe,CADf,UAED,CAID,qEAEC,sBAkCD,CAhCC,qFACC,eAOD,CAJC,uGACC,oCAAqC,CACrC,qCACD,CAGD,8FACC,uBACD,CAEA,8FACC,wBACD,CAEA,yFACC,OAAQ,CACR,0BAWD,CAbA,mGAKE,gCAQF,CAbA,mGASE,+BAIF,CAbA,yFAYC,iCACD,CAID,wEACC,cAAe,CACf,wBAAyB,CACzB,2CAeD,CAbC,+FACC,qCACD,CAEA,6FAEC,aAAc,CADd,iBAED,CAEA,wMAEC,UACD,CCzGF,oCD+GA,6BACC,WAiDD,CA/CC,sCACC,cA6CD,CAzCE,4FACC,aAAc,CAEd,wCAAyC,CADzC,UAED,CAEA,gFACC,iBAkBD,CAhBC,8FACC,aAcD,CAfA,wGAIE,aAWF,CAfA,wGAQE,cAOF,CAJC,gHAEC,iBAAkB,CADlB,UAED,CAMH,qGACC,aAUD,CARC,iHACC,WACD,CAEA,iIAEC,iBAAkB,CADlB,UAED,CC5JH",sourcesContent:["/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n.ck.ck-find-and-replace-form {\n\tmax-width: 100%;\n\n\t& fieldset {\n\t\tdisplay: flex;\n\n\t\t/* The find fieldset */\n\t\t&.ck-find-and-replace-form__find .ck-results-counter {\n\t\t\tposition: absolute;\n\t\t}\n\t}\n}\n",'/*\n * Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_rwd.css";\n@import "@ckeditor/ckeditor5-ui/theme/mixins/_dir.css";\n\n.ck.ck-find-and-replace-form {\n\twidth: 400px;\n\n\t/*\n\t * The
").replace(/\r?\n/g," ").replace(/\t/g," ").replace(/^\s/," ").replace(/\s$/," ").replace(/\s\s/g," ");if(t.includes("
")||t.includes(" ")){t=`
${t}
`}return t}function kM(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>{if(e.length==1){return" "}return e})).replace(//g,"")}const bM=["figcaption","li"];const wM=["ol","ul"];function AM(t){if(t.is("$text")||t.is("$textProxy")){return t.data}if(t.is("element","img")&&t.hasAttribute("alt")){return t.getAttribute("alt")}if(t.is("element","br")){return"\n"}let e="";let n=null;for(const i of t.getChildren()){e+=CM(i,n)+AM(i);n=i}return e}function CM(t,e){if(!e){return""}if(t.is("element","li")&&!t.isEmpty&&t.getChild(0).is("containerElement")){return"\n\n"}if(wM.includes(t.name)&&wM.includes(e.name)){return"\n\n"}if(!t.is("containerElement")&&!e.is("containerElement")){return""}if(bM.includes(t.name)||bM.includes(e.name)){return"\n"}return"\n\n"}class _M extends rh{static get pluginName(){return"ClipboardPipeline"}init(){const t=this.editor;const e=t.editing.view;e.addObserver(mM);this._setupPasteDrop();this._setupCopyCut()}_fireOutputTransformationEvent(t,e,n){const i=this.editor.model.getSelectedContent(e);this.fire("outputTransformation",{dataTransfer:t,content:i,method:n})}_setupPasteDrop(){const t=this.editor;const e=t.model;const n=t.editing.view;const i=n.document;this.listenTo(i,"clipboardInput",((e,n)=>{if(n.method=="paste"&&!t.model.canEditAt(t.model.document.selection)){e.stop()}}),{priority:"highest"});this.listenTo(i,"clipboardInput",((t,e)=>{const i=e.dataTransfer;let o;if(e.content){o=e.content}else{let t="";if(i.getData("text/html")){t=kM(i.getData("text/html"))}else if(i.getData("text/plain")){t=pM(i.getData("text/plain"))}o=this.editor.data.htmlProcessor.toView(t)}const r=new D(this,"inputTransformation");this.fire(r,{content:o,dataTransfer:i,targetRanges:e.targetRanges,method:e.method});if(r.stop.called){t.stop()}n.scrollToTheSelection()}),{priority:"low"});this.listenTo(this,"inputTransformation",((t,n)=>{if(n.content.isEmpty){return}const i=this.editor.data;const o=i.toModel(n.content,"$clipboardHolder");if(o.childCount==0){return}t.stop();e.change((()=>{this.fire("contentInsertion",{content:o,method:n.method,dataTransfer:n.dataTransfer,targetRanges:n.targetRanges})}))}),{priority:"low"});this.listenTo(this,"contentInsertion",((t,n)=>{n.resultRange=e.insertContent(n.content)}),{priority:"low"})}_setupCopyCut(){const t=this.editor;const e=t.model.document;const n=t.editing.view;const i=n.document;const o=(t,n)=>{const i=n.dataTransfer;n.preventDefault();this._fireOutputTransformationEvent(i,e.selection,t.name)};this.listenTo(i,"copy",o,{priority:"low"});this.listenTo(i,"cut",((e,n)=>{if(!t.model.canEditAt(t.model.document.selection)){n.preventDefault()}else{o(e,n)}}),{priority:"low"});this.listenTo(this,"outputTransformation",((e,n)=>{const o=t.data.toView(n.content);i.fire("clipboardOutput",{dataTransfer:n.dataTransfer,content:o,method:n.method})}),{priority:"low"});this.listenTo(i,"clipboardOutput",((n,i)=>{if(!i.content.isEmpty){i.dataTransfer.setData("text/html",this.editor.data.htmlProcessor.toData(i.content));i.dataTransfer.setData("text/plain",AM(i.content))}if(i.method=="cut"){t.model.deleteContent(e.selection)}}),{priority:"low"})}}class vM extends(W()){constructor(){super(...arguments);this._stack=[]}add(t,e){const n=this._stack;const i=n[0];this._insertDescriptor(t);const o=n[0];if(i!==o&&!yM(i,o)){this.fire("change:top",{oldDescriptor:i,newDescriptor:o,writer:e})}}remove(t,e){const n=this._stack;const i=n[0];this._removeDescriptor(t);const o=n[0];if(i!==o&&!yM(i,o)){this.fire("change:top",{oldDescriptor:i,newDescriptor:o,writer:e})}}_insertDescriptor(t){const e=this._stack;const n=e.findIndex((e=>e.id===t.id));if(yM(t,e[n])){return}if(n>-1){e.splice(n,1)}let i=0;while(e[i]&&xM(e[i],t)){i++}e.splice(i,0,t)}_removeDescriptor(t){const e=this._stack;const n=e.findIndex((e=>e.id===t));if(n>-1){e.splice(n,1)}}}function yM(t,e){return t&&e&&t.priority==e.priority&&EM(t.classes)==EM(e.classes)}function xM(t,e){if(t.priority>e.priority){return true}else if(t.priorityEM(e.classes)}function EM(t){return Array.isArray(t)?t.sort().join(","):t}const DM=' ';const SM="ck-widget";const TM="ck-widget_selected";function BM(t){if(!t.is("element")){return false}return!!t.getCustomProperty("widget")}function IM(t,e,n={}){if(!t.is("containerElement")){throw new N("widget-to-widget-wrong-element-type",null,{element:t})}e.setAttribute("contenteditable","false",t);e.addClass(SM,t);e.setCustomProperty("widget",true,t);t.getFillerOffset=FM;e.setCustomProperty("widgetLabel",[],t);if(n.label){zM(t,n.label)}if(n.hasSelectionHandle){jM(t,e)}NM(t,e);return t}function MM(t,e,n){if(e.classes){n.addClass(rl(e.classes),t)}if(e.attributes){for(const i in e.attributes){n.setAttribute(i,e.attributes[i],t)}}}function LM(t,e,n){if(e.classes){n.removeClass(rl(e.classes),t)}if(e.attributes){for(const i in e.attributes){n.removeAttribute(i,t)}}}function NM(t,e,n=MM,i=LM){const o=new vM;o.on("change:top",((e,o)=>{if(o.oldDescriptor){i(t,o.oldDescriptor,o.writer)}if(o.newDescriptor){n(t,o.newDescriptor,o.writer)}}));const r=(t,e,n)=>o.add(e,n);const s=(t,e,n)=>o.remove(e,n);e.setCustomProperty("addHighlight",r,t);e.setCustomProperty("removeHighlight",s,t)}function zM(t,e){const n=t.getCustomProperty("widgetLabel");n.push(e)}function PM(t){const e=t.getCustomProperty("widgetLabel");return e.reduce(((t,e)=>{if(typeof e==="function"){return t?t+". "+e():e()}else{return t?t+". "+e:e}}),"")}function RM(t,e,n={}){e.addClass(["ck-editor__editable","ck-editor__nested-editable"],t);e.setAttribute("role","textbox",t);if(n.label){e.setAttribute("aria-label",n.label,t)}e.setAttribute("contenteditable",t.isReadOnly?"false":"true",t);t.on("change:isReadOnly",((n,i,o)=>{e.setAttribute("contenteditable",o?"false":"true",t)}));t.on("change:isFocused",((n,i,o)=>{if(o){e.addClass("ck-editor__nested-editable_focused",t)}else{e.removeClass("ck-editor__nested-editable_focused",t)}}));NM(t,e);return t}function VM(t,e){const n=t.getSelectedElement();if(n){const i=WM(t);if(i){return e.createRange(e.createPositionAt(n,i))}}return $C(t,e)}function OM(t,e){return(n,i)=>{const{mapper:o,viewPosition:r}=i;const s=o.findMappedViewAncestor(r);if(!e(s)){return}const a=o.toModelElement(s);i.modelPosition=t.createPositionAt(a,r.isAtStart?"before":"after")}}function FM(){return null}function jM(t,e){const n=e.createUIElement("div",{class:"ck ck-widget__selection-handle"},(function(t){const e=this.toDomElement(t);const n=new wd;n.set("content",DM);n.render();e.appendChild(n.element);return e}));e.insert(e.createPositionAt(t,0),n);e.addClass(["ck-widget_with-selection-handle"],t)}const HM="widget-type-around";function UM(t,e,n){return!!t&&BM(t)&&!n.isInline(e)}function qM(t){return t.closest(".ck-widget__type-around__button")}function GM(t){return t.classList.contains("ck-widget__type-around__button_before")?"before":"after"}function $M(t,e){const n=t.closest(".ck-widget");return e.mapDomToView(n)}function WM(t){return t.getAttribute(HM)}const ZM=' ';var KM=n(2347);var YM={injectType:"singletonStyleTag",attributes:{"data-cke":true}};YM.insert="head";YM.singleton=true;var QM=Nl()(KM.Z,YM);const JM=KM.Z.locals||{};const XM=["before","after"];const tL=(new DOMParser).parseFromString(ZM,"image/svg+xml").firstChild;const eL="ck-widget__type-around_disabled";class nL extends rh{constructor(){super(...arguments);this._currentFakeCaretModelElement=null}static get pluginName(){return"WidgetTypeAround"}static get requires(){return[aI,MT]}init(){const t=this.editor;const e=t.editing.view;this.on("change:isEnabled",((n,i,o)=>{e.change((t=>{for(const n of e.document.roots){if(o){t.removeClass(eL,n)}else{t.addClass(eL,n)}}}));if(!o){t.model.change((t=>{t.removeSelectionAttribute(HM)}))}}));this._enableTypeAroundUIInjection();this._enableInsertingParagraphsOnButtonClick();this._enableInsertingParagraphsOnEnterKeypress();this._enableInsertingParagraphsOnTypingKeystroke();this._enableTypeAroundFakeCaretActivationUsingKeyboardArrows();this._enableDeleteIntegration();this._enableInsertContentIntegration();this._enableInsertObjectIntegration();this._enableDeleteContentIntegration()}destroy(){super.destroy();this._currentFakeCaretModelElement=null}_insertParagraph(t,e){const n=this.editor;const i=n.editing.view;const o=n.model.schema.getAttributesWithProperty(t,"copyOnReplace",true);n.execute("insertParagraph",{position:n.model.createPositionAt(t,e),attributes:o});i.focus();i.scrollToTheSelection()}_listenToIfEnabled(t,e,n,i){this.listenTo(t,e,((...t)=>{if(this.isEnabled){n(...t)}}),i)}_insertParagraphAccordingToFakeCaretPosition(){const t=this.editor;const e=t.model;const n=e.document.selection;const i=WM(n);if(!i){return false}const o=n.getSelectedElement();this._insertParagraph(o,i);return true}_enableTypeAroundUIInjection(){const t=this.editor;const e=t.model.schema;const n=t.locale.t;const i={before:n("Insert paragraph before block"),after:n("Insert paragraph after block")};t.editing.downcastDispatcher.on("insert",((t,o,r)=>{const s=r.mapper.toViewElement(o.item);if(!s){return}if(UM(s,o.item,e)){iL(r.writer,i,s);const t=s.getCustomProperty("widgetLabel");t.push((()=>this.isEnabled?n("Press Enter to type after or press Shift + Enter to type before the widget"):""))}}),{priority:"low"})}_enableTypeAroundFakeCaretActivationUsingKeyboardArrows(){const t=this.editor;const e=t.model;const n=e.document.selection;const i=e.schema;const o=t.editing.view;this._listenToIfEnabled(o.document,"arrowKey",((t,e)=>{this._handleArrowKeyPress(t,e)}),{context:[BM,"$text"],priority:"high"});this._listenToIfEnabled(n,"change:range",((e,n)=>{if(!n.directChange){return}t.model.change((t=>{t.removeSelectionAttribute(HM)}))}));this._listenToIfEnabled(e.document,"change:data",(()=>{const e=n.getSelectedElement();if(e){const n=t.editing.mapper.toViewElement(e);if(UM(n,e,i)){return}}t.model.change((t=>{t.removeSelectionAttribute(HM)}))}));this._listenToIfEnabled(t.editing.downcastDispatcher,"selection",((t,e,n)=>{const o=n.writer;if(this._currentFakeCaretModelElement){const t=n.mapper.toViewElement(this._currentFakeCaretModelElement);if(t){o.removeClass(XM.map(r),t);this._currentFakeCaretModelElement=null}}const s=e.selection.getSelectedElement();if(!s){return}const a=n.mapper.toViewElement(s);if(!UM(a,s,i)){return}const c=WM(e.selection);if(!c){return}o.addClass(r(c),a);this._currentFakeCaretModelElement=s}));this._listenToIfEnabled(t.ui.focusTracker,"change:isFocused",((e,n,i)=>{if(!i){t.model.change((t=>{t.removeSelectionAttribute(HM)}))}}));function r(t){return`ck-widget_type-around_show-fake-caret_${t}`}}_handleArrowKeyPress(t,e){const n=this.editor;const i=n.model;const o=i.document.selection;const r=i.schema;const s=n.editing.view;const a=e.keyCode;const c=tl(a,n.locale.contentLanguageDirection);const l=s.document.selection.getSelectedElement();const d=n.editing.mapper.toModelElement(l);let u;if(UM(l,d,r)){u=this._handleArrowKeyPressOnSelectedWidget(c)}else if(o.isCollapsed){u=this._handleArrowKeyPressWhenSelectionNextToAWidget(c)}else if(!e.shiftKey){u=this._handleArrowKeyPressWhenNonCollapsedSelection(c)}if(u){e.preventDefault();t.stop()}}_handleArrowKeyPressOnSelectedWidget(t){const e=this.editor;const n=e.model;const i=n.document.selection;const o=WM(i);return n.change((e=>{if(o){const n=o===(t?"after":"before");if(!n){e.removeSelectionAttribute(HM);return true}}else{e.setSelectionAttribute(HM,t?"after":"before");return true}return false}))}_handleArrowKeyPressWhenSelectionNextToAWidget(t){const e=this.editor;const n=e.model;const i=n.schema;const o=e.plugins.get("Widget");const r=o._getObjectElementNextToSelection(t);const s=e.editing.mapper.toViewElement(r);if(UM(s,r,i)){n.change((e=>{o._setSelectionOverElement(r);e.setSelectionAttribute(HM,t?"before":"after")}));return true}return false}_handleArrowKeyPressWhenNonCollapsedSelection(t){const e=this.editor;const n=e.model;const i=n.schema;const o=e.editing.mapper;const r=n.document.selection;const s=t?r.getLastPosition().nodeBefore:r.getFirstPosition().nodeAfter;const a=o.toViewElement(s);if(UM(a,s,i)){n.change((e=>{e.setSelection(s,"on");e.setSelectionAttribute(HM,t?"after":"before")}));return true}return false}_enableInsertingParagraphsOnButtonClick(){const t=this.editor;const e=t.editing.view;this._listenToIfEnabled(e.document,"mousedown",((n,i)=>{const o=qM(i.domTarget);if(!o){return}const r=GM(o);const s=$M(o,e.domConverter);const a=t.editing.mapper.toModelElement(s);this._insertParagraph(a,r);i.preventDefault();n.stop()}))}_enableInsertingParagraphsOnEnterKeypress(){const t=this.editor;const e=t.model.document.selection;const n=t.editing.view;this._listenToIfEnabled(n.document,"enter",((n,i)=>{if(n.eventPhase!="atTarget"){return}const o=e.getSelectedElement();const r=t.editing.mapper.toViewElement(o);const s=t.model.schema;let a;if(this._insertParagraphAccordingToFakeCaretPosition()){a=true}else if(UM(r,o,s)){this._insertParagraph(o,i.isSoft?"before":"after");a=true}if(a){i.preventDefault();n.stop()}}),{context:BM})}_enableInsertingParagraphsOnTypingKeystroke(){const t=this.editor;const e=t.editing.view.document;this._listenToIfEnabled(e,"insertText",((t,n)=>{if(this._insertParagraphAccordingToFakeCaretPosition()){n.selection=e.selection}}),{priority:"high"});if(l.isAndroid){this._listenToIfEnabled(e,"keydown",((t,e)=>{if(e.keyCode==229){this._insertParagraphAccordingToFakeCaretPosition()}}))}else{this._listenToIfEnabled(e,"compositionstart",(()=>{this._insertParagraphAccordingToFakeCaretPosition()}),{priority:"high"})}}_enableDeleteIntegration(){const t=this.editor;const e=t.editing.view;const n=t.model;const i=n.schema;this._listenToIfEnabled(e.document,"delete",((e,o)=>{if(e.eventPhase!="atTarget"){return}const r=WM(n.document.selection);if(!r){return}const s=o.direction;const a=n.document.selection.getSelectedElement();const c=r==="before";const l=s=="forward";const d=c===l;if(d){t.execute("delete",{selection:n.createSelection(a,"on")})}else{const e=i.getNearestSelectionRange(n.createPositionAt(a,r),s);if(e){if(!e.isCollapsed){n.change((n=>{n.setSelection(e);t.execute(l?"deleteForward":"delete")}))}else{const o=n.createSelection(e.start);n.modifySelection(o,{direction:s});if(!o.focus.isEqual(e.start)){n.change((n=>{n.setSelection(e);t.execute(l?"deleteForward":"delete")}))}else{const t=sL(i,e.start.parent);n.deleteContent(n.createSelection(t,"on"),{doNotAutoparagraph:true})}}}}o.preventDefault();e.stop()}),{context:BM})}_enableInsertContentIntegration(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;this._listenToIfEnabled(t.model,"insertContent",((t,[i,o])=>{if(o&&!o.is("documentSelection")){return}const r=WM(n);if(!r){return}t.stop();return e.change((t=>{const o=n.getSelectedElement();const s=e.createPositionAt(o,r);const a=t.createSelection(s);const c=e.insertContent(i,a);t.setSelection(a);return c}))}),{priority:"high"})}_enableInsertObjectIntegration(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;this._listenToIfEnabled(t.model,"insertObject",((t,e)=>{const[,i,o={}]=e;if(i&&!i.is("documentSelection")){return}const r=WM(n);if(!r){return}o.findOptimalPosition=r;e[3]=o}),{priority:"high"})}_enableDeleteContentIntegration(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;this._listenToIfEnabled(t.model,"deleteContent",((t,[e])=>{if(e&&!e.is("documentSelection")){return}const i=WM(n);if(i){t.stop()}}),{priority:"high"})}}function iL(t,e,n){const i=t.createUIElement("div",{class:"ck ck-reset_all ck-widget__type-around"},(function(t){const n=this.toDomElement(t);oL(n,e);rL(n);return n}));t.insert(t.createPositionAt(n,"end"),i)}function oL(t,e){for(const n of XM){const i=new jl({tag:"div",attributes:{class:["ck","ck-widget__type-around__button",`ck-widget__type-around__button_${n}`],title:e[n],"aria-hidden":"true"},children:[t.ownerDocument.importNode(tL,true)]});t.appendChild(i.render())}}function rL(t){const e=new jl({tag:"div",attributes:{class:["ck","ck-widget__type-around__fake-caret"]}});t.appendChild(e.render())}function sL(t,e){let n=e;for(const i of e.getAncestors({parentFirst:true})){if(i.childCount>1||t.isLimit(i)){break}n=i}return n}function aL(t){const e=t.model;return(n,i)=>{const o=i.keyCode==$c.arrowup;const r=i.keyCode==$c.arrowdown;const s=i.shiftKey;const a=e.document.selection;if(!o&&!r){return}const c=r;if(s&&hL(a,c)){return}const l=cL(t,a,c);if(!l){return}if(l.isCollapsed){if(a.isCollapsed){return}else if(s){return}}if(l.isCollapsed||uL(t,l,c)){e.change((t=>{const n=c?l.end:l.start;if(s){const i=e.createSelection(a.anchor);i.setFocus(n);t.setSelection(i)}else{t.setSelection(n)}}));n.stop();i.preventDefault();i.stopPropagation()}}}function cL(t,e,n){const i=t.model;if(n){const t=e.isCollapsed?e.focus:e.getLastPosition();const n=lL(i,t,"forward");if(!n){return null}const o=i.createRange(t,n);const r=dL(i.schema,o,"backward");if(r){return i.createRange(t,r)}return null}else{const t=e.isCollapsed?e.focus:e.getFirstPosition();const n=lL(i,t,"backward");if(!n){return null}const o=i.createRange(n,t);const r=dL(i.schema,o,"forward");if(r){return i.createRange(r,t)}return null}}function lL(t,e,n){const i=t.schema;const o=t.createRangeIn(e.root);const r=n=="forward"?"elementStart":"elementEnd";for(const{previousPosition:t,item:s,type:a}of o.getWalker({startPosition:e,direction:n})){if(i.isLimit(s)&&!i.isInline(s)){return t}if(a==r&&i.isBlock(s)){return null}}return null}function dL(t,e,n){const i=n=="backward"?e.end:e.start;if(t.checkChild(i,"$text")){return i}for(const{nextPosition:i}of e.getWalker({direction:n})){if(t.checkChild(i,"$text")){return i}}return null}function uL(t,e,n){const i=t.model;const o=t.view.domConverter;if(n){const t=i.createSelection(e.start);i.modifySelection(t);if(!t.focus.isAtEnd&&!e.start.isEqual(t.focus)){e=i.createRange(t.focus,e.end)}}const r=t.mapper.toViewRange(e);const s=o.viewRangeToDom(r);const a=uc.getDomRangeRects(s);let c;for(const t of a){if(c===undefined){c=Math.round(t.bottom);continue}if(Math.round(t.top)>=c){return false}c=Math.max(c,Math.round(t.bottom))}return true}function hL(t,e){return!t.isCollapsed&&t.isBackward==e}var gL=n(7153);var mL={injectType:"singletonStyleTag",attributes:{"data-cke":true}};mL.insert="head";mL.singleton=true;var fL=Nl()(gL.Z,mL);const pL=gL.Z.locals||{};class kL extends rh{constructor(){super(...arguments);this._previouslySelected=new Set}static get pluginName(){return"Widget"}static get requires(){return[nL,MT]}init(){const t=this.editor;const e=t.editing.view;const n=e.document;this.editor.editing.downcastDispatcher.on("selection",((e,n,i)=>{const o=i.writer;const r=n.selection;if(r.isCollapsed){return}const s=r.getSelectedElement();if(!s){return}const a=t.editing.mapper.toViewElement(s);if(!BM(a)){return}if(!i.consumable.consume(r,"selection")){return}o.setSelection(o.createRangeOn(a),{fake:true,label:PM(a)})}));this.editor.editing.downcastDispatcher.on("selection",((t,e,n)=>{this._clearPreviouslySelectedWidgets(n.writer);const i=n.writer;const o=i.document.selection;let r=null;for(const t of o.getRanges()){for(const e of t){const t=e.item;if(BM(t)&&!wL(t,r)){i.addClass(TM,t);this._previouslySelected.add(t);r=t}}}}),{priority:"low"});e.addObserver(s_);this.listenTo(n,"mousedown",((...t)=>this._onMousedown(...t)));this.listenTo(n,"arrowKey",((...t)=>{this._handleSelectionChangeOnArrowKeyPress(...t)}),{context:[BM,"$text"]});this.listenTo(n,"arrowKey",((...t)=>{this._preventDefaultOnArrowKeyPress(...t)}),{context:"$root"});this.listenTo(n,"arrowKey",aL(this.editor.editing),{context:"$text"});this.listenTo(n,"delete",((t,e)=>{if(this._handleDelete(e.direction=="forward")){e.preventDefault();t.stop()}}),{context:"$root"})}_onMousedown(t,e){const n=this.editor;const i=n.editing.view;const o=i.document;let r=e.target;if(e.domEvent.detail>=3){if(this._selectBlockContent(r)){e.preventDefault()}return}if(bL(r)){return}if(!BM(r)){r=r.findAncestor(BM);if(!r){return}}if(l.isAndroid){e.preventDefault()}if(!o.isFocused){i.focus()}const s=n.editing.mapper.toModelElement(r);this._setSelectionOverElement(s)}_selectBlockContent(t){const e=this.editor;const n=e.model;const i=e.editing.mapper;const o=n.schema;const r=i.findMappedViewAncestor(this.editor.editing.view.createPositionAt(t,0));const s=AL(i.toModelElement(r),n.schema);if(!s){return false}n.change((t=>{const e=!o.isLimit(s)?CL(t.createPositionAfter(s),o):null;const n=t.createPositionAt(s,0);const i=e?t.createPositionAt(e,0):t.createPositionAt(s,"end");t.setSelection(t.createRange(n,i))}));return true}_handleSelectionChangeOnArrowKeyPress(t,e){const n=e.keyCode;const i=this.editor.model;const o=i.schema;const r=i.document.selection;const s=r.getSelectedElement();const a=Jc(n,this.editor.locale.contentLanguageDirection);const c=a=="down"||a=="right";const l=a=="up"||a=="down";if(s&&o.isObject(s)){const n=c?r.getLastPosition():r.getFirstPosition();const s=o.getNearestSelectionRange(n,c?"forward":"backward");if(s){i.change((t=>{t.setSelection(s)}));e.preventDefault();t.stop()}return}if(!r.isCollapsed&&!e.shiftKey){const n=r.getFirstPosition();const s=r.getLastPosition();const a=n.nodeAfter;const l=s.nodeBefore;if(a&&o.isObject(a)||l&&o.isObject(l)){i.change((t=>{t.setSelection(c?s:n)}));e.preventDefault();t.stop()}return}if(!r.isCollapsed){return}const d=this._getObjectElementNextToSelection(c);if(d&&o.isObject(d)){if(o.isInline(d)&&l){return}this._setSelectionOverElement(d);e.preventDefault();t.stop()}}_preventDefaultOnArrowKeyPress(t,e){const n=this.editor.model;const i=n.schema;const o=n.document.selection.getSelectedElement();if(o&&i.isObject(o)){e.preventDefault();t.stop()}}_handleDelete(t){const e=this.editor.model.document;const n=e.selection;if(!this.editor.model.canEditAt(n)){return}if(!n.isCollapsed){return}const i=this._getObjectElementNextToSelection(t);if(i){this.editor.model.change((t=>{let e=n.anchor.parent;while(e.isEmpty){const n=e;e=n.parent;t.remove(n)}this._setSelectionOverElement(i)}));return true}}_setSelectionOverElement(t){this.editor.model.change((e=>{e.setSelection(e.createRangeOn(t))}))}_getObjectElementNextToSelection(t){const e=this.editor.model;const n=e.schema;const i=e.document.selection;const o=e.createSelection(i);e.modifySelection(o,{direction:t?"forward":"backward"});if(o.isEqual(i)){return null}const r=t?o.focus.nodeBefore:o.focus.nodeAfter;if(!!r&&n.isObject(r)){return r}return null}_clearPreviouslySelectedWidgets(t){for(const e of this._previouslySelected){t.removeClass(TM,e)}this._previouslySelected.clear()}}function bL(t){let e=t;while(e){if(e.is("editableElement")&&!e.is("rootElement")){return true}if(BM(e)){return false}e=e.parent}return false}function wL(t,e){if(!e){return false}return Array.from(t.getAncestors()).includes(e)}function AL(t,e){for(const n of t.getAncestors({includeSelf:true,parentFirst:true})){if(e.checkChild(n,"$text")){return n}if(e.isLimit(n)&&!e.isObject(n)){break}}return null}function CL(t,e){const n=new Rk({startPosition:t});for(const{item:t}of n){if(e.isLimit(t)||!t.is("element")){return null}if(e.checkChild(t,"$text")){return t}}return null}class _L extends rh{constructor(){super(...arguments);this._toolbarDefinitions=new Map}static get requires(){return[MD]}static get pluginName(){return"WidgetToolbarRepository"}init(){const t=this.editor;if(t.plugins.has("BalloonToolbar")){const e=t.plugins.get("BalloonToolbar");this.listenTo(e,"show",(e=>{if(xL(t.editing.view.document.selection)){e.stop()}}),{priority:"high"})}this._balloon=this.editor.plugins.get("ContextualBalloon");this.on("change:isEnabled",(()=>{this._updateToolbarsVisibility()}));this.listenTo(t.ui,"update",(()=>{this._updateToolbarsVisibility()}));this.listenTo(t.ui.focusTracker,"change:isFocused",(()=>{this._updateToolbarsVisibility()}),{priority:"low"})}destroy(){super.destroy();for(const t of this._toolbarDefinitions.values()){t.view.destroy()}}register(t,{ariaLabel:e,items:n,getRelatedElement:i,balloonClassName:o="ck-toolbar-container"}){if(!n.length){z("widget-toolbar-no-items",{toolbarId:t});return}const r=this.editor;const s=r.t;const a=new ny(r.locale);a.ariaLabel=e||s("Widget toolbar");if(this._toolbarDefinitions.has(t)){throw new N("widget-toolbar-duplicated",this,{toolbarId:t})}const c={view:a,getRelatedElement:i,balloonClassName:o,itemsConfig:n,initialized:false};r.ui.addToolbar(a,{isContextual:true,beforeFocus:()=>{const t=i(r.editing.view.document.selection);if(t){this._showToolbar(c,t)}},afterBlur:()=>{this._hideToolbar(c)}});this._toolbarDefinitions.set(t,c)}_updateToolbarsVisibility(){let t=0;let e=null;let n=null;for(const i of this._toolbarDefinitions.values()){const o=i.getRelatedElement(this.editor.editing.view.document.selection);if(!this.isEnabled||!o){if(this._isToolbarInBalloon(i)){this._hideToolbar(i)}}else if(!this.editor.ui.focusTracker.isFocused){if(this._isToolbarVisible(i)){this._hideToolbar(i)}}else{const r=o.getAncestors().length;if(r>t){t=r;e=o;n=i}}}if(n){this._showToolbar(n,e)}}_hideToolbar(t){this._balloon.remove(t.view);this.stopListening(this._balloon,"change:visibleView")}_showToolbar(t,e){if(this._isToolbarVisible(t)){vL(this.editor,e)}else if(!this._isToolbarInBalloon(t)){if(!t.initialized){t.initialized=true;t.view.fillFromConfig(t.itemsConfig,this.editor.ui.componentFactory)}this._balloon.add({view:t.view,position:yL(this.editor,e),balloonClassName:t.balloonClassName});this.listenTo(this._balloon,"change:visibleView",(()=>{for(const t of this._toolbarDefinitions.values()){if(this._isToolbarVisible(t)){const e=t.getRelatedElement(this.editor.editing.view.document.selection);vL(this.editor,e)}}}))}}_isToolbarVisible(t){return this._balloon.visibleView===t.view}_isToolbarInBalloon(t){return this._balloon.hasView(t.view)}}function vL(t,e){const n=t.plugins.get("ContextualBalloon");const i=yL(t,e);n.updatePosition(i)}function yL(t,e){const n=t.editing.view;const i=_E.defaultPositions;return{target:n.domConverter.mapViewToDom(e),positions:[i.northArrowSouth,i.northArrowSouthWest,i.northArrowSouthEast,i.southArrowNorth,i.southArrowNorthWest,i.southArrowNorthEast,i.viewportStickyNorth]}}function xL(t){const e=t.getSelectedElement();return!!(e&&BM(e))}class EL extends(gt()){constructor(t){super();this.set("activeHandlePosition",null);this.set("proposedWidthPercents",null);this.set("proposedWidth",null);this.set("proposedHeight",null);this.set("proposedHandleHostWidth",null);this.set("proposedHandleHostHeight",null);this._options=t;this._referenceCoordinates=null}get originalWidth(){return this._originalWidth}get originalHeight(){return this._originalHeight}get originalWidthPercents(){return this._originalWidthPercents}get aspectRatio(){return this._aspectRatio}begin(t,e,n){const i=new uc(e);this.activeHandlePosition=BL(t);this._referenceCoordinates=SL(e,IL(this.activeHandlePosition));this._originalWidth=i.width;this._originalHeight=i.height;this._aspectRatio=i.width/i.height;const o=n.style.width;if(o&&o.match(/^\d+(\.\d*)?%$/)){this._originalWidthPercents=parseFloat(o)}else{this._originalWidthPercents=DL(n,i)}}update(t){this.proposedWidth=t.width;this.proposedHeight=t.height;this.proposedWidthPercents=t.widthPercents;this.proposedHandleHostWidth=t.handleHostWidth;this.proposedHandleHostHeight=t.handleHostHeight}}function DL(t,e){const n=t.parentElement;let i=parseFloat(n.ownerDocument.defaultView.getComputedStyle(n).width);const o=5;let r=0;let s=n;while(isNaN(i)){s=s.parentElement;if(++r>o){return 0}i=parseFloat(n.ownerDocument.defaultView.getComputedStyle(s).width)}return e.width/i*100}function SL(t,e){const n=new uc(t);const i=e.split("-");const o={x:i[1]=="right"?n.right:n.left,y:i[0]=="bottom"?n.bottom:n.top};o.x+=t.ownerDocument.defaultView.scrollX;o.y+=t.ownerDocument.defaultView.scrollY;return o}function TL(t){return`ck-widget__resizer__handle-${t}`}function BL(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e){if(t.classList.contains(TL(n))){return n}}}function IL(t){const e=t.split("-");const n={top:"bottom",bottom:"top",left:"right",right:"left"};return`${n[e[0]]}-${n[e[1]]}`}class ML extends Ol{constructor(){super();const t=this.bindTemplate;this.setTemplate({tag:"div",attributes:{class:["ck","ck-size-view",t.to("_viewPosition",(t=>t?`ck-orientation-${t}`:""))],style:{display:t.if("_isVisible","none",(t=>!t))}},children:[{text:t.to("_label")}]})}_bindToState(t,e){this.bind("_isVisible").to(e,"proposedWidth",e,"proposedHeight",((t,e)=>t!==null&&e!==null));this.bind("_label").to(e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",e,"proposedWidthPercents",((e,n,i)=>{if(t.unit==="px"){return`${e}×${n}`}else{return`${i}%`}}));this.bind("_viewPosition").to(e,"activeHandlePosition",e,"proposedHandleHostWidth",e,"proposedHandleHostHeight",((t,e,n)=>e<50||n<50?"above-center":t))}_dismiss(){this.unbind();this._isVisible=false}}class LL extends(gt()){constructor(t){super();this._viewResizerWrapper=null;this._options=t;this.set("isEnabled",true);this.set("isSelected",false);this.bind("isVisible").to(this,"isEnabled",this,"isSelected",((t,e)=>t&&e));this.decorate("begin");this.decorate("cancel");this.decorate("commit");this.decorate("updateSize");this.on("commit",(t=>{if(!this.state.proposedWidth&&!this.state.proposedWidthPercents){this._cleanup();t.stop()}}),{priority:"high"})}get state(){return this._state}show(){const t=this._options.editor.editing.view;t.change((t=>{t.removeClass("ck-hidden",this._viewResizerWrapper)}))}hide(){const t=this._options.editor.editing.view;t.change((t=>{t.addClass("ck-hidden",this._viewResizerWrapper)}))}attach(){const t=this;const e=this._options.viewElement;const n=this._options.editor.editing.view;n.change((n=>{const i=n.createUIElement("div",{class:"ck ck-reset_all ck-widget__resizer"},(function(e){const n=this.toDomElement(e);t._appendHandles(n);t._appendSizeUI(n);return n}));n.insert(n.createPositionAt(e,"end"),i);n.addClass("ck-widget_with-resizer",e);this._viewResizerWrapper=i;if(!this.isVisible){this.hide()}}));this.on("change:isVisible",(()=>{if(this.isVisible){this.show();this.redraw()}else{this.hide()}}))}begin(t){this._state=new EL(this._options);this._sizeView._bindToState(this._options,this.state);this._initialViewWidth=this._options.viewElement.getStyle("width");this.state.begin(t,this._getHandleHost(),this._getResizeHost())}updateSize(t){const e=this._proposeNewSize(t);const n=this._options.editor.editing.view;n.change((t=>{const n=this._options.unit||"%";const i=(n==="%"?e.widthPercents:e.width)+n;t.setStyle("width",i,this._options.viewElement)}));const i=this._getHandleHost();const o=new uc(i);const r=Math.round(o.width);const s=Math.round(o.height);const a=new uc(i);e.width=Math.round(a.width);e.height=Math.round(a.height);this.redraw(o);this.state.update({...e,handleHostWidth:r,handleHostHeight:s})}commit(){const t=this._options.unit||"%";const e=(t==="%"?this.state.proposedWidthPercents:this.state.proposedWidth)+t;this._options.editor.editing.view.change((()=>{this._cleanup();this._options.onCommit(e)}))}cancel(){this._cleanup()}destroy(){this.cancel()}redraw(t){const e=this._domResizerWrapper;if(!PL(e)){return}const n=e.parentElement;const i=this._getHandleHost();const o=this._viewResizerWrapper;const r=[o.getStyle("width"),o.getStyle("height"),o.getStyle("left"),o.getStyle("top")];let s;if(n.isSameNode(i)){const e=t||new uc(i);s=[e.width+"px",e.height+"px",undefined,undefined]}else{s=[i.offsetWidth+"px",i.offsetHeight+"px",i.offsetLeft+"px",i.offsetTop+"px"]}if(Et(r,s)!=="same"){this._options.editor.editing.view.change((t=>{t.setStyle({width:s[0],height:s[1],left:s[2],top:s[3]},o)}))}}containsHandle(t){return this._domResizerWrapper.contains(t)}static isResizeHandle(t){return t.classList.contains("ck-widget__resizer__handle")}_cleanup(){this._sizeView._dismiss();const t=this._options.editor.editing.view;t.change((t=>{t.setStyle("width",this._initialViewWidth,this._options.viewElement)}))}_proposeNewSize(t){const e=this.state;const n=zL(t);const i=this._options.isCentered?this._options.isCentered(this):true;const o={x:e._referenceCoordinates.x-(n.x+e.originalWidth),y:n.y-e.originalHeight-e._referenceCoordinates.y};if(i&&e.activeHandlePosition.endsWith("-right")){o.x=n.x-(e._referenceCoordinates.x+e.originalWidth)}if(i){o.x*=2}let r=Math.abs(e.originalWidth+o.x);let s=Math.abs(e.originalHeight+o.y);const a=r/e.aspectRatio>s?"width":"height";if(a=="width"){s=r/e.aspectRatio}else{r=s*e.aspectRatio}return{width:Math.round(r),height:Math.round(s),widthPercents:Math.min(Math.round(e.originalWidthPercents/e.originalWidth*r*100)/100,100)}}_getResizeHost(){const t=this._domResizerWrapper.parentElement;return this._options.getResizeHost(t)}_getHandleHost(){const t=this._domResizerWrapper.parentElement;return this._options.getHandleHost(t)}get _domResizerWrapper(){return this._options.editor.editing.view.domConverter.mapViewToDom(this._viewResizerWrapper)}_appendHandles(t){const e=["top-left","top-right","bottom-right","bottom-left"];for(const n of e){t.appendChild(new jl({tag:"div",attributes:{class:`ck-widget__resizer__handle ${NL(n)}`}}).render())}}_appendSizeUI(t){this._sizeView=new ML;this._sizeView.render();t.appendChild(this._sizeView.element)}}function NL(t){return`ck-widget__resizer__handle-${t}`}function zL(t){return{x:t.pageX,y:t.pageY}}function PL(t){return t&&t.ownerDocument&&t.ownerDocument.contains(t)}var RL=n(4875);var VL={injectType:"singletonStyleTag",attributes:{"data-cke":true}};VL.insert="head";VL.singleton=true;var OL=Nl()(RL.Z,VL);const FL=RL.Z.locals||{};class jL extends rh{constructor(){super(...arguments);this._resizers=new Map}static get pluginName(){return"WidgetResize"}init(){const t=this.editor.editing;const e=nc.window.document;this.set("selectedResizer",null);this.set("_activeResizer",null);t.view.addObserver(s_);this._observer=new(Qa());this.listenTo(t.view.document,"mousedown",this._mouseDownListener.bind(this),{priority:"high"});this._observer.listenTo(e,"mousemove",this._mouseMoveListener.bind(this));this._observer.listenTo(e,"mouseup",this._mouseUpListener.bind(this));this._redrawSelectedResizerThrottled=zE((()=>this.redrawSelectedResizer()),200);this.editor.ui.on("update",this._redrawSelectedResizerThrottled);this.editor.model.document.on("change",(()=>{for(const[t,e]of this._resizers){if(!t.isAttached()){this._resizers.delete(t);e.destroy()}}}),{priority:"lowest"});this._observer.listenTo(nc.window,"resize",this._redrawSelectedResizerThrottled);const n=this.editor.editing.view.document.selection;n.on("change",(()=>{const t=n.getSelectedElement();const e=this.getResizerByViewElement(t)||null;if(e){this.select(e)}else{this.deselect()}}))}redrawSelectedResizer(){if(this.selectedResizer&&this.selectedResizer.isVisible){this.selectedResizer.redraw()}}destroy(){super.destroy();this._observer.stopListening();for(const t of this._resizers.values()){t.destroy()}this._redrawSelectedResizerThrottled.cancel()}select(t){this.deselect();this.selectedResizer=t;this.selectedResizer.isSelected=true}deselect(){if(this.selectedResizer){this.selectedResizer.isSelected=false}this.selectedResizer=null}attachTo(t){const e=new LL(t);const n=this.editor.plugins;e.attach();if(n.has("WidgetToolbarRepository")){const t=n.get("WidgetToolbarRepository");e.on("begin",(()=>{t.forceDisabled("resize")}),{priority:"lowest"});e.on("cancel",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"});e.on("commit",(()=>{t.clearForceDisabled("resize")}),{priority:"highest"})}this._resizers.set(t.viewElement,e);const i=this.editor.editing.view.document.selection;const o=i.getSelectedElement();if(this.getResizerByViewElement(o)==e){this.select(e)}return e}getResizerByViewElement(t){return this._resizers.get(t)}_getResizerByHandle(t){for(const e of this._resizers.values()){if(e.containsHandle(t)){return e}}}_mouseDownListener(t,e){const n=e.domTarget;if(!LL.isResizeHandle(n)){return}this._activeResizer=this._getResizerByHandle(n)||null;if(this._activeResizer){this._activeResizer.begin(n);t.stop();e.preventDefault()}}_mouseMoveListener(t,e){if(this._activeResizer){this._activeResizer.updateSize(e)}}_mouseUpListener(){if(this._activeResizer){this._activeResizer.commit();this._activeResizer=null}}}const HL=Ac("px");class UL extends Ol{constructor(){super();const t=this.bindTemplate;this.set({isVisible:false,left:null,top:null,width:null});this.setTemplate({tag:"div",attributes:{class:["ck","ck-clipboard-drop-target-line",t.if("isVisible","ck-hidden",(t=>!t))],style:{left:t.to("left",(t=>HL(t))),top:t.to("top",(t=>HL(t))),width:t.to("width",(t=>HL(t)))}}})}}class qL extends rh{constructor(){super(...arguments);this.removeDropMarkerDelayed=Cl((()=>this.removeDropMarker()),40);this._updateDropMarkerThrottled=zE((t=>this._updateDropMarker(t)),40);this._reconvertMarkerThrottled=zE((()=>{if(this.editor.model.markers.has("drop-target")){this.editor.editing.reconvertMarker("drop-target")}}),0);this._dropTargetLineView=new UL;this._domEmitter=new(Qa());this._scrollables=new Map}static get pluginName(){return"DragDropTarget"}init(){this._setupDropMarker()}destroy(){this._domEmitter.stopListening();for(const{resizeObserver:t}of this._scrollables.values()){t.destroy()}this._updateDropMarkerThrottled.cancel();this.removeDropMarkerDelayed.cancel();this._reconvertMarkerThrottled.cancel();return super.destroy()}updateDropMarker(t,e,n,i,o,r){this.removeDropMarkerDelayed.cancel();const s=GL(this.editor,t,e,n,i,o,r);if(!s){return}if(r&&r.containsRange(s)){return this.removeDropMarker()}this._updateDropMarkerThrottled(s)}getFinalDropRange(t,e,n,i,o,r){const s=GL(this.editor,t,e,n,i,o,r);this.removeDropMarker();return s}removeDropMarker(){const t=this.editor.model;this.removeDropMarkerDelayed.cancel();this._updateDropMarkerThrottled.cancel();this._dropTargetLineView.isVisible=false;if(t.markers.has("drop-target")){t.change((t=>{t.removeMarker("drop-target")}))}}_setupDropMarker(){const t=this.editor;t.ui.view.body.add(this._dropTargetLineView);t.conversion.for("editingDowncast").markerToHighlight({model:"drop-target",view:{classes:["ck-clipboard-drop-target-range"]}});t.conversion.for("editingDowncast").markerToElement({model:"drop-target",view:(e,{writer:n})=>{if(t.model.schema.checkChild(e.markerRange.start,"$text")){this._dropTargetLineView.isVisible=false;return this._createDropTargetPosition(n)}else{if(e.markerRange.isCollapsed){this._updateDropTargetLine(e.markerRange)}else{this._dropTargetLineView.isVisible=false}}}})}_updateDropMarker(t){const e=this.editor;const n=e.model.markers;e.model.change((e=>{if(n.has("drop-target")){if(!n.get("drop-target").getRange().isEqual(t)){e.updateMarker("drop-target",{range:t})}}else{e.addMarker("drop-target",{range:t,usingOperation:false,affectsData:false})}}))}_createDropTargetPosition(t){return t.createUIElement("span",{class:"ck ck-clipboard-drop-target-position"},(function(t){const e=this.toDomElement(t);e.append("",t.createElement("span"),"");return e}))}_updateDropTargetLine(t){const e=this.editor.editing;const n=t.start.nodeBefore;const i=t.start.nodeAfter;const o=t.start.parent;const r=n?e.mapper.toViewElement(n):null;const s=r?e.view.domConverter.mapViewToDom(r):null;const a=i?e.mapper.toViewElement(i):null;const c=a?e.view.domConverter.mapViewToDom(a):null;const l=e.mapper.toViewElement(o);const d=e.view.domConverter.mapViewToDom(l);const u=this._getScrollableRect(l);const{scrollX:h,scrollY:g}=nc.window;const m=s?new uc(s):null;const f=c?new uc(c):null;const p=new uc(d).excludeScrollbarsAndBorders();const k=m?m.bottom:p.top;const b=f?f.top:p.bottom;const w=nc.window.getComputedStyle(d);const A=k<=b?(k+b)/2:b;if(u.topa.schema.checkChild(r,t)));if(l){if(a.schema.checkChild(r,"$text")){return a.createRange(r)}else if(e){return WL(t,KL(t,e.parent),i,o)}}}}else if(a.schema.isInline(d)){return WL(t,d,i,o)}}if(a.schema.isBlock(d)){return WL(t,d,i,o)}else if(a.schema.checkChild(d,"$block")){const e=Array.from(d.getChildren()).filter((e=>e.is("element")&&!$L(t,e)));let n=0;let r=e.length;if(r==0){return a.createRange(a.createPositionAt(d,"end"))}while(n{if(n){this.forceDisabled("readOnlyMode");this._isBlockDragging=false}else{this.clearForceDisabled("readOnlyMode")}}));if(l.isAndroid){this.forceDisabled("noAndroidSupport")}if(t.plugins.has("BlockToolbar")){const e=t.plugins.get("BlockToolbar");const n=e.buttonView.element;this._domEmitter.listenTo(n,"dragstart",((t,e)=>this._handleBlockDragStart(e)));this._domEmitter.listenTo(nc.document,"dragover",((t,e)=>this._handleBlockDragging(e)));this._domEmitter.listenTo(nc.document,"drop",((t,e)=>this._handleBlockDragging(e)));this._domEmitter.listenTo(nc.document,"dragend",(()=>this._handleBlockDragEnd()),{useCapture:true});if(this.isEnabled){n.setAttribute("draggable","true")}this.on("change:isEnabled",((t,e,i)=>{n.setAttribute("draggable",i?"true":"false")}))}}destroy(){this._domEmitter.stopListening();return super.destroy()}_handleBlockDragStart(t){if(!this.isEnabled){return}const e=this.editor.model;const n=e.document.selection;const i=this.editor.editing.view;const o=Array.from(n.getSelectedBlocks());const r=e.createRange(e.createPositionBefore(o[0]),e.createPositionAfter(o[o.length-1]));e.change((t=>t.setSelection(r)));this._isBlockDragging=true;i.focus();i.getObserver(mM).onDomEvent(t)}_handleBlockDragging(t){if(!this.isEnabled||!this._isBlockDragging){return}const e=t.clientX+(this.editor.locale.contentLanguageDirection=="ltr"?100:-100);const n=t.clientY;const i=document.elementFromPoint(e,n);const o=this.editor.editing.view;if(!i||!i.closest(".ck-editor__editable")){return}o.getObserver(mM).onDomEvent({...t,type:t.type,dataTransfer:t.dataTransfer,target:i,clientX:e,clientY:n,preventDefault:()=>t.preventDefault(),stopPropagation:()=>t.stopPropagation()})}_handleBlockDragEnd(){this._isBlockDragging=false}}var JL=n(799);var XL={injectType:"singletonStyleTag",attributes:{"data-cke":true}};XL.insert="head";XL.singleton=true;var tN=Nl()(JL.Z,XL);const eN=JL.Z.locals||{};class nN extends rh{constructor(){super(...arguments);this._clearDraggableAttributesDelayed=Cl((()=>this._clearDraggableAttributes()),40);this._blockMode=false;this._domEmitter=new(Qa())}static get pluginName(){return"DragDrop"}static get requires(){return[_M,kL,qL,QL]}init(){const t=this.editor;const e=t.editing.view;this._draggedRange=null;this._draggingUid="";this._draggableElement=null;e.addObserver(mM);e.addObserver(s_);this._setupDragging();this._setupContentInsertionIntegration();this._setupClipboardInputIntegration();this._setupDraggableAttributeHandling();this.listenTo(t,"change:isReadOnly",((t,e,n)=>{if(n){this.forceDisabled("readOnlyMode")}else{this.clearForceDisabled("readOnlyMode")}}));this.on("change:isEnabled",((t,e,n)=>{if(!n){this._finalizeDragging(false)}}));if(l.isAndroid){this.forceDisabled("noAndroidSupport")}}destroy(){if(this._draggedRange){this._draggedRange.detach();this._draggedRange=null}if(this._previewContainer){this._previewContainer.remove()}this._domEmitter.stopListening();this._clearDraggableAttributesDelayed.cancel();return super.destroy()}_setupDragging(){const t=this.editor;const e=t.model;const n=t.editing.view;const i=n.document;const o=t.plugins.get(qL);this.listenTo(i,"dragstart",((t,n)=>{if(n.target&&n.target.is("editableElement")){n.preventDefault();return}this._prepareDraggedRange(n.target);if(!this._draggedRange){n.preventDefault();return}this._draggingUid=T();n.dataTransfer.effectAllowed=this.isEnabled?"copyMove":"copy";n.dataTransfer.setData("application/ckeditor5-dragging-uid",this._draggingUid);const i=e.createSelection(this._draggedRange.toRange());const o=this.editor.plugins.get("ClipboardPipeline");o._fireOutputTransformationEvent(n.dataTransfer,i,"dragstart");const{dataTransfer:r,domTarget:s,domEvent:a}=n;const{clientX:c}=a;this._updatePreview({dataTransfer:r,domTarget:s,clientX:c});n.stopPropagation();if(!this.isEnabled){this._draggedRange.detach();this._draggedRange=null;this._draggingUid=""}}),{priority:"low"});this.listenTo(i,"dragend",((t,e)=>{this._finalizeDragging(!e.dataTransfer.isCanceled&&e.dataTransfer.dropEffect=="move")}),{priority:"low"});this._domEmitter.listenTo(nc.document,"dragend",(()=>{this._blockMode=false}),{useCapture:true});this.listenTo(i,"dragenter",(()=>{if(!this.isEnabled){return}n.focus()}));this.listenTo(i,"dragleave",(()=>{o.removeDropMarkerDelayed()}));this.listenTo(i,"dragging",((t,e)=>{if(!this.isEnabled){e.dataTransfer.dropEffect="none";return}const{clientX:n,clientY:i}=e.domEvent;o.updateDropMarker(e.target,e.targetRanges,n,i,this._blockMode,this._draggedRange);if(!this._draggedRange){e.dataTransfer.dropEffect="copy"}if(!l.isGecko){if(e.dataTransfer.effectAllowed=="copy"){e.dataTransfer.dropEffect="copy"}else if(["all","copyMove"].includes(e.dataTransfer.effectAllowed)){e.dataTransfer.dropEffect="move"}}t.stop()}),{priority:"low"})}_setupClipboardInputIntegration(){const t=this.editor;const e=t.editing.view;const n=e.document;const i=t.plugins.get(qL);this.listenTo(n,"clipboardInput",((e,n)=>{if(n.method!="drop"){return}const{clientX:o,clientY:r}=n.domEvent;const s=i.getFinalDropRange(n.target,n.targetRanges,o,r,this._blockMode,this._draggedRange);if(!s){this._finalizeDragging(false);e.stop();return}if(this._draggedRange&&this._draggingUid!=n.dataTransfer.getData("application/ckeditor5-dragging-uid")){this._draggedRange.detach();this._draggedRange=null;this._draggingUid=""}const a=iN(n.dataTransfer)=="move";if(a&&this._draggedRange&&this._draggedRange.containsRange(s,true)){this._finalizeDragging(false);e.stop();return}n.targetRanges=[t.editing.mapper.toViewRange(s)]}),{priority:"high"})}_setupContentInsertionIntegration(){const t=this.editor.plugins.get(_M);t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||e.method!=="drop"){return}const n=e.targetRanges.map((t=>this.editor.editing.mapper.toModelRange(t)));this.editor.model.change((t=>t.setSelection(n)))}),{priority:"high"});t.on("contentInsertion",((t,e)=>{if(!this.isEnabled||e.method!=="drop"){return}const n=iN(e.dataTransfer)=="move";const i=!e.resultRange||!e.resultRange.isCollapsed;this._finalizeDragging(i&&n)}),{priority:"lowest"})}_setupDraggableAttributeHandling(){const t=this.editor;const e=t.editing.view;const n=e.document;this.listenTo(n,"mousedown",((i,o)=>{if(l.isAndroid||!o){return}this._clearDraggableAttributesDelayed.cancel();let r=oN(o.target);if(l.isBlink&&!t.isReadOnly&&!r&&!n.selection.isCollapsed){const t=n.selection.getSelectedElement();if(!t||!BM(t)){r=n.selection.editableElement}}if(r){e.change((t=>{t.setAttribute("draggable","true",r)}));this._draggableElement=t.editing.mapper.toModelElement(r)}}));this.listenTo(n,"mouseup",(()=>{if(!l.isAndroid){this._clearDraggableAttributesDelayed()}}))}_clearDraggableAttributes(){const t=this.editor.editing;t.view.change((e=>{if(this._draggableElement&&this._draggableElement.root.rootName!="$graveyard"){e.removeAttribute("draggable",t.mapper.toViewElement(this._draggableElement))}this._draggableElement=null}))}_finalizeDragging(t){const e=this.editor;const n=e.model;const i=e.plugins.get(qL);i.removeDropMarker();this._clearDraggableAttributes();if(e.plugins.has("WidgetToolbarRepository")){const t=e.plugins.get("WidgetToolbarRepository");t.clearForceDisabled("dragDrop")}this._draggingUid="";if(this._previewContainer){this._previewContainer.remove();this._previewContainer=undefined}if(!this._draggedRange){return}if(t&&this.isEnabled){n.change((t=>{const e=n.createSelection(this._draggedRange);n.deleteContent(e,{doNotAutoparagraph:true});const i=e.getFirstPosition().parent;if(i.isEmpty&&!n.schema.checkChild(i,"$text")&&n.schema.checkChild(i,"paragraph")){t.insertElement("paragraph",i,0)}}))}this._draggedRange.detach();this._draggedRange=null}_prepareDraggedRange(t){const e=this.editor;const n=e.model;const i=n.document.selection;const o=t?oN(t):null;if(o){const t=e.editing.mapper.toModelElement(o);this._draggedRange=cb.fromRange(n.createRangeOn(t));this._blockMode=n.schema.isBlock(t);if(e.plugins.has("WidgetToolbarRepository")){const t=e.plugins.get("WidgetToolbarRepository");t.forceDisabled("dragDrop")}return}if(i.isCollapsed&&!i.getFirstPosition().parent.isEmpty){return}const r=Array.from(i.getSelectedBlocks());const s=i.getFirstRange();if(r.length==0){this._draggedRange=cb.fromRange(s);return}const a=rN(n,r);if(r.length>1){this._draggedRange=cb.fromRange(a);this._blockMode=true}else if(r.length==1){const t=s.start.isTouching(a.start)&&s.end.isTouching(a.end);this._draggedRange=cb.fromRange(t?a:s);this._blockMode=t}n.change((t=>t.setSelection(this._draggedRange.toRange())))}_updatePreview({dataTransfer:t,domTarget:e,clientX:n}){const i=this.editor.editing.view;const o=i.document.selection.editableElement;const r=i.domConverter.mapViewToDom(o);const s=nc.window.getComputedStyle(r);if(!this._previewContainer){this._previewContainer=ie(nc.document,"div",{style:"position: fixed; left: -999999px;"});nc.document.body.appendChild(this._previewContainer)}else if(this._previewContainer.firstElementChild){this._previewContainer.removeChild(this._previewContainer.firstElementChild)}const a=new uc(r);if(r.contains(e)){return}const c=parseFloat(s.paddingLeft);const d=ie(nc.document,"div");d.className="ck ck-content";d.style.width=s.width;d.style.paddingLeft=`${a.left-n+c}px`;if(l.isiOS){d.style.backgroundColor="white"}d.innerHTML=t.getData("text/html");t.setDragImage(d,0,0);this._previewContainer.appendChild(d)}}function iN(t){if(l.isGecko){return t.dropEffect}return["all","copyMove"].includes(t.effectAllowed)?"move":"copy"}function oN(t){if(t.is("editableElement")){return null}if(t.hasClass("ck-widget__selection-handle")){return t.findAncestor(BM)}if(BM(t)){return t}const e=t.findAncestor((t=>BM(t)||t.is("editableElement")));if(BM(e)){return e}return null}function rN(t,e){const n=e[0];const i=e[e.length-1];const o=n.getCommonAncestor(i);const r=t.createPositionBefore(n);const s=t.createPositionAfter(i);if(o&&o.is("element")&&!t.schema.isLimit(o)){const e=t.createRangeOn(o);const n=r.isTouching(e.start);const i=s.isTouching(e.end);if(n&&i){return rN(t,[o])}}return t.createRange(r,s)}class sN extends rh{static get pluginName(){return"PastePlainText"}static get requires(){return[_M]}init(){const t=this.editor;const e=t.model;const n=t.editing.view;const i=n.document;const o=e.document.selection;let r=false;n.addObserver(mM);this.listenTo(i,"keydown",((t,e)=>{r=e.shiftKey}));t.plugins.get(_M).on("contentInsertion",((t,n)=>{if(!r&&!aN(n.content,e.schema)){return}e.change((t=>{const i=Array.from(o.getAttributes()).filter((([t])=>e.schema.getAttributeProperties(t).isFormatting));if(!o.isCollapsed){e.deleteContent(o,{doNotAutoparagraph:true})}i.push(...o.getAttributes());const r=t.createRangeIn(n.content);for(const e of r.getItems()){if(e.is("$textProxy")){t.setAttributes(i,e)}}}))}))}}function aN(t,e){if(t.childCount>1){return false}const n=t.getChild(0);if(e.isObject(n)){return false}return Array.from(n.getAttributeKeys()).length==0}class cN extends rh{static get pluginName(){return"Clipboard"}static get requires(){return[_M,nN,sN]}}class lN extends ah{constructor(t){super(t);this.affectsData=false}execute(){const t=this.editor.model;const e=t.document.selection;let n=t.schema.getLimitElement(e);if(e.containsEntireContent(n)||!dN(t.schema,n)){do{n=n.parent;if(!n){return}}while(!dN(t.schema,n))}t.change((t=>{t.setSelection(n,"in")}))}}function dN(t,e){return t.isLimit(e)&&(t.checkChild(e,"$text")||t.checkChild(e,"paragraph"))}const uN=Kc("Ctrl+A");class hN extends rh{static get pluginName(){return"SelectAllEditing"}init(){const t=this.editor;const e=t.editing.view;const n=e.document;t.commands.add("selectAll",new lN(t));this.listenTo(n,"keydown",((e,n)=>{if(Zc(n)===uN){t.execute("selectAll");n.preventDefault()}}))}}const gN=' ';class mN extends rh{static get pluginName(){return"SelectAllUI"}init(){const t=this.editor;t.ui.componentFactory.add("selectAll",(e=>{const n=t.commands.get("selectAll");const i=new xd(e);const o=e.t;i.set({label:o("Select all"),icon:gN,keystroke:"Ctrl+A",tooltip:true});i.bind("isEnabled").to(n,"isEnabled");this.listenTo(i,"execute",(()=>{t.execute("selectAll");t.editing.view.focus()}));return i}))}}class fN extends rh{static get requires(){return[hN,mN]}static get pluginName(){return"SelectAll"}}class pN extends ah{constructor(t){super(t);this._stack=[];this._createdBatches=new WeakSet;this.refresh();this._isEnabledBasedOnSelection=false;this.listenTo(t.data,"set",((t,e)=>{e[1]={...e[1]};const n=e[1];if(!n.batchType){n.batchType={isUndoable:false}}}),{priority:"high"});this.listenTo(t.data,"set",((t,e)=>{const n=e[1];if(!n.batchType.isUndoable){this.clearStack()}}))}refresh(){this.isEnabled=this._stack.length>0}get createdBatches(){return this._createdBatches}addBatch(t){const e=this.editor.model.document.selection;const n={ranges:e.hasOwnRange?Array.from(e.getRanges()):[],isBackward:e.isBackward};this._stack.push({batch:t,selection:n});this.refresh()}clearStack(){this._stack=[];this.refresh()}_restoreSelection(t,e,n){const i=this.editor.model;const o=i.document;const r=[];const s=t.map((t=>t.getTransformedByOperations(n)));const a=s.flat();for(const t of s){const e=t.filter((t=>t.root!=o.graveyard)).filter((t=>!bN(t,a)));if(!e.length){continue}kN(e);r.push(e[0])}if(r.length){i.change((t=>{t.setSelection(r,{backward:e})}))}}_undo(t,e){const n=this.editor.model;const i=n.document;this._createdBatches.add(e);const o=t.operations.slice().filter((t=>t.isDocumentOperation));o.reverse();for(const t of o){const o=t.baseVersion+1;const r=Array.from(i.history.getOperations(o));const s=KA([t.getReversed()],r,{useRelations:true,document:this.editor.model.document,padWithNoOps:false,forceWeakRemove:true});const a=s.operationsA;for(let o of a){const r=o.affectedSelectable;if(r&&!n.canEditAt(r)){o=new VA(o.baseVersion)}e.addOperation(o);n.applyOperation(o);i.history.setOperationAsUndone(t,o)}}}}function kN(t){t.sort(((t,e)=>t.start.isBefore(e.start)?-1:1));for(let e=1;ee!==t&&e.containsRange(t,true)))}class wN extends pN{execute(t=null){const e=t?this._stack.findIndex((e=>e.batch==t)):this._stack.length-1;const n=this._stack.splice(e,1)[0];const i=this.editor.model.createBatch({isUndo:true});this.editor.model.enqueueChange(i,(()=>{this._undo(n.batch,i);const t=this.editor.model.document.history.getOperations(n.batch.baseVersion);this._restoreSelection(n.selection.ranges,n.selection.isBackward,t)}));this.fire("revert",n.batch,i);this.refresh()}}class AN extends pN{execute(){const t=this._stack.pop();const e=this.editor.model.createBatch({isUndo:true});this.editor.model.enqueueChange(e,(()=>{const n=t.batch.operations[t.batch.operations.length-1];const i=n.baseVersion+1;const o=this.editor.model.document.history.getOperations(i);this._restoreSelection(t.selection.ranges,t.selection.isBackward,o);this._undo(t.batch,e)}));this.refresh()}}class CN extends rh{constructor(){super(...arguments);this._batchRegistry=new WeakSet}static get pluginName(){return"UndoEditing"}init(){const t=this.editor;this._undoCommand=new wN(t);this._redoCommand=new AN(t);t.commands.add("undo",this._undoCommand);t.commands.add("redo",this._redoCommand);this.listenTo(t.model,"applyOperation",((t,e)=>{const n=e[0];if(!n.isDocumentOperation){return}const i=n.batch;const o=this._redoCommand.createdBatches.has(i);const r=this._undoCommand.createdBatches.has(i);const s=this._batchRegistry.has(i);if(s){return}this._batchRegistry.add(i);if(!i.isUndoable){return}if(o){this._undoCommand.addBatch(i)}else if(!r){this._undoCommand.addBatch(i);this._redoCommand.clearStack()}}),{priority:"highest"});this.listenTo(this._undoCommand,"revert",((t,e,n)=>{this._redoCommand.addBatch(n)}));t.keystrokes.set("CTRL+Z","undo");t.keystrokes.set("CTRL+Y","redo");t.keystrokes.set("CTRL+SHIFT+Z","redo")}}const _N=' ';const vN=' ';class yN extends rh{static get pluginName(){return"UndoUI"}init(){const t=this.editor;const e=t.locale;const n=t.t;const i=e.uiLanguageDirection=="ltr"?_N:vN;const o=e.uiLanguageDirection=="ltr"?vN:_N;this._addButton("undo",n("Undo"),"CTRL+Z",i);this._addButton("redo",n("Redo"),"CTRL+Y",o)}_addButton(t,e,n,i){const o=this.editor;o.ui.componentFactory.add(t,(r=>{const s=o.commands.get(t);const a=new xd(r);a.set({label:e,icon:i,keystroke:n,tooltip:true});a.bind("isEnabled").to(s,"isEnabled");this.listenTo(a,"execute",(()=>{o.execute(t);o.editing.view.focus()}));return a}))}}class xN extends rh{static get requires(){return[CN,yN]}static get pluginName(){return"Undo"}}class EN extends rh{static get requires(){return[cN,aI,fN,gI,LT,xN]}static get pluginName(){return"Essentials"}}var DN=n(6603);var SN={injectType:"singletonStyleTag",attributes:{"data-cke":true}};SN.insert="head";SN.singleton=true;var TN=Nl()(DN.Z,SN);const BN=DN.Z.locals||{};var IN=n(3403);var MN={injectType:"singletonStyleTag",attributes:{"data-cke":true}};MN.insert="head";MN.singleton=true;var LN=Nl()(IN.Z,MN);const NN=IN.Z.locals||{};class zN extends Ol{constructor(t){super(t);const e=t.t;this.set("matchCount",0);this.set("highlightOffset",0);this.set("isDirty",false);this.set("_areCommandsEnabled",{});this.set("_resultsCounterText","");this.set("_matchCase",false);this.set("_wholeWordsOnly",false);this.bind("_searchResultsFound").to(this,"matchCount",this,"isDirty",((t,e)=>t>0&&!e));this._findInputView=this._createInputField(e("Find in text…"));this._replaceInputView=this._createInputField(e("Replace with…"));this._findButtonView=this._createButton({label:e("Find"),class:"ck-button-find ck-button-action",withText:true});this._findPrevButtonView=this._createButton({label:e("Previous result"),class:"ck-button-prev",icon:CD,keystroke:"Shift+F3",tooltip:true});this._findNextButtonView=this._createButton({label:e("Next result"),class:"ck-button-next",icon:CD,keystroke:"F3",tooltip:true});this._optionsDropdown=this._createOptionsDropdown();this._replaceButtonView=this._createButton({label:e("Replace"),class:"ck-button-replace",withText:true});this._replaceAllButtonView=this._createButton({label:e("Replace all"),class:"ck-button-replaceall",withText:true});this._findFieldsetView=this._createFindFieldset();this._replaceFieldsetView=this._createReplaceFieldset();this._focusTracker=new fl;this._keystrokes=new pl;this._focusables=new Il;this._focusCycler=new Xu({focusables:this._focusables,focusTracker:this._focusTracker,keystrokeHandler:this._keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});this.setTemplate({tag:"form",attributes:{class:["ck","ck-find-and-replace-form"],tabindex:"-1"},children:[new kD(t,{label:e("Find and replace")}),this._findFieldsetView,this._replaceFieldsetView]})}render(){super.render();o({view:this});this._initFocusCycling();this._initKeystrokeHandling()}destroy(){super.destroy();this._focusTracker.destroy();this._keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}reset(){this._findInputView.errorText=null;this.isDirty=true}get _textToFind(){return this._findInputView.fieldView.element.value}get _textToReplace(){return this._replaceInputView.fieldView.element.value}_createFindFieldset(){const t=this.locale;const e=new Ol(t);this._findInputView.fieldView.on("input",(()=>{this.isDirty=true}));this._findButtonView.on("execute",this._onFindButtonExecute.bind(this));this._findPrevButtonView.delegate("execute").to(this,"findPrevious");this._findNextButtonView.delegate("execute").to(this,"findNext");this._findPrevButtonView.bind("isEnabled").to(this,"_areCommandsEnabled",(({findPrevious:t})=>t));this._findNextButtonView.bind("isEnabled").to(this,"_areCommandsEnabled",(({findNext:t})=>t));this._injectFindResultsCounter();e.setTemplate({tag:"fieldset",attributes:{class:["ck","ck-find-and-replace-form__find"]},children:[this._findInputView,this._findButtonView,this._findPrevButtonView,this._findNextButtonView]});return e}_onFindButtonExecute(){if(!this._textToFind){const t=this.t;this._findInputView.errorText=t("Text to find must not be empty.");return}this.isDirty=false;this.fire("findNext",{searchText:this._textToFind,matchCase:this._matchCase,wholeWords:this._wholeWordsOnly})}_injectFindResultsCounter(){const t=this.locale;const e=t.t;const n=this.bindTemplate;const i=new Ol(this.locale);this.bind("_resultsCounterText").to(this,"highlightOffset",this,"matchCount",((t,n)=>e("%0 of %1",[t,n])));i.setTemplate({tag:"span",attributes:{class:["ck","ck-results-counter",n.if("isDirty","ck-hidden")]},children:[{text:n.to("_resultsCounterText")}]});const o=()=>{const e=this._findInputView.fieldView.element;if(!e||!xc(e)){return}const n=new uc(i.element).width;const o=t.uiLanguageDirection==="ltr"?"paddingRight":"paddingLeft";if(!n){e.style[o]=""}else{e.style[o]=`calc( 2 * var(--ck-spacing-standard) + ${n}px )`}};this.on("change:_resultsCounterText",o,{priority:"low"});this.on("change:isDirty",o,{priority:"low"});this._findInputView.template.children[0].children.push(i)}_createReplaceFieldset(){const t=this.locale;const e=t.t;const n=new Ol(this.locale);this._replaceButtonView.bind("isEnabled").to(this,"_areCommandsEnabled",this,"_searchResultsFound",(({replace:t},e)=>t&&e));this._replaceAllButtonView.bind("isEnabled").to(this,"_areCommandsEnabled",this,"_searchResultsFound",(({replaceAll:t},e)=>t&&e));this._replaceInputView.bind("isEnabled").to(this,"_areCommandsEnabled",this,"_searchResultsFound",(({replace:t},e)=>t&&e));this._replaceInputView.bind("infoText").to(this._replaceInputView,"isEnabled",this._replaceInputView,"isFocused",((t,n)=>{if(t||!n){return""}return e("Tip: Find some text first in order to replace it.")}));this._replaceButtonView.on("execute",(()=>{this.fire("replace",{searchText:this._textToFind,replaceText:this._textToReplace})}));this._replaceAllButtonView.on("execute",(()=>{this.fire("replaceAll",{searchText:this._textToFind,replaceText:this._textToReplace});this.focus()}));n.setTemplate({tag:"fieldset",attributes:{class:["ck","ck-find-and-replace-form__replace"]},children:[this._replaceInputView,this._optionsDropdown,this._replaceButtonView,this._replaceAllButtonView]});return n}_createOptionsDropdown(){const t=this.locale;const e=t.t;const n=Dy(this.locale);n.class="ck-options-dropdown";n.buttonView.set({withText:false,label:e("Show options"),icon:Kv.cog,tooltip:true});const i=new AD({withText:true,label:e("Match case"),_isMatchCaseSwitch:true});const o=new AD({withText:true,label:e("Whole words only")});i.bind("isOn").to(this,"_matchCase");o.bind("isOn").to(this,"_wholeWordsOnly");n.on("execute",(t=>{if(t.source._isMatchCaseSwitch){this._matchCase=!this._matchCase}else{this._wholeWordsOnly=!this._wholeWordsOnly}this.isDirty=true}));By(n,new gl([{type:"switchbutton",model:i},{type:"switchbutton",model:o}]));return n}_initFocusCycling(){const t=[this._findInputView,this._findButtonView,this._findPrevButtonView,this._findNextButtonView,this._replaceInputView,this._optionsDropdown,this._replaceButtonView,this._replaceAllButtonView];t.forEach((t=>{this._focusables.add(t);this._focusTracker.add(t.element)}))}_initKeystrokeHandling(){const t=t=>t.stopPropagation();const e=t=>{t.stopPropagation();t.preventDefault()};this._keystrokes.listenTo(this.element);this._keystrokes.set("f3",(t=>{e(t);this._findNextButtonView.fire("execute")}));this._keystrokes.set("shift+f3",(t=>{e(t);this._findPrevButtonView.fire("execute")}));this._keystrokes.set("enter",(t=>{const n=t.target;if(n===this._findInputView.fieldView.element){if(this._areCommandsEnabled.findNext){this._findNextButtonView.fire("execute")}else{this._findButtonView.fire("execute")}e(t)}else if(n===this._replaceInputView.fieldView.element&&!this.isDirty){this._replaceButtonView.fire("execute");e(t)}}));this._keystrokes.set("shift+enter",(t=>{const n=t.target;if(n!==this._findInputView.fieldView.element){return}if(this._areCommandsEnabled.findPrevious){this._findPrevButtonView.fire("execute")}else{this._findButtonView.fire("execute")}e(t)}));this._keystrokes.set("arrowright",t);this._keystrokes.set("arrowleft",t);this._keystrokes.set("arrowup",t);this._keystrokes.set("arrowdown",t)}_createButton(t){const e=new xd(this.locale);e.set(t);return e}_createInputField(t){const e=new Tu(this.locale,jy);e.label=t;return e}}const PN=' ';class RN extends rh{static get pluginName(){return"FindAndReplaceUI"}constructor(t){super(t);this.formView=null}init(){const t=this.editor;t.ui.componentFactory.add("findAndReplace",(n=>{const i=Dy(n);const o=t.commands.get("find");i.bind("isEnabled").to(o);i.once("change:isOpen",(()=>{this.formView=new(e(zN))(t.locale);i.panelView.children.add(this.formView);this._setupFormView(this.formView)}));i.on("change:isOpen",((t,e,n)=>{if(n){this.formView.disableCssTransitions();this.formView.reset();this.formView._findInputView.fieldView.select();this.formView.enableCssTransitions()}else{this.fire("searchReseted")}}),{priority:"low"});this._setupDropdownButton(i);return i}))}_setupDropdownButton(t){const e=this.editor;const n=e.locale.t;t.buttonView.set({icon:PN,label:n("Find and replace"),keystroke:"CTRL+F",tooltip:true});e.keystrokes.set("Ctrl+F",((e,n)=>{if(t.isEnabled){t.isOpen=true;n()}}))}_setupFormView(t){const e=this.editor;const n=e.commands;const i=this.editor.plugins.get("FindAndReplaceEditing");const o=i.state;const r={before:-1,same:0,after:1,different:1};t.bind("highlightOffset").to(o,"highlightedResult",(t=>{if(!t){return 0}return Array.from(o.results).sort(((t,e)=>r[t.marker.getStart().compareWith(e.marker.getStart())])).indexOf(t)+1}));t.listenTo(o.results,"change",(()=>{t.matchCount=o.results.length}));const s=n.get("findNext");const a=n.get("findPrevious");const c=n.get("replace");const l=n.get("replaceAll");t.bind("_areCommandsEnabled").to(s,"isEnabled",a,"isEnabled",c,"isEnabled",l,"isEnabled",((t,e,n,i)=>({findNext:t,findPrevious:e,replace:n,replaceAll:i})));t.delegate("findNext","findPrevious","replace","replaceAll").to(this);t.on("change:isDirty",((t,e,n)=>{if(n){this.fire("searchReseted")}}))}}class VN extends ah{constructor(t,e){super(t);this.isEnabled=true;this.affectsData=false;this._state=e}execute(t,{matchCase:e,wholeWords:n}={}){const{editor:i}=this;const{model:o}=i;const r=i.plugins.get("FindAndReplaceUtils");let s;if(typeof t==="string"){s=r.findByTextCallback(t,{matchCase:e,wholeWords:n});this._state.searchText=t}else{s=t}const a=o.document.getRootNames().reduce(((t,e)=>r.updateFindResultFromRange(o.createRangeIn(o.document.getRoot(e)),o,s,t)),null);this._state.clear(o);this._state.results.addMany(a);this._state.highlightedResult=a.get(0);if(typeof t==="string"){this._state.searchText=t}this._state.matchCase=!!e;this._state.matchWholeWords=!!n;return{results:a,findCallback:s}}}class ON extends ah{constructor(t,e){super(t);this.isEnabled=true;this._state=e;this._isEnabledBasedOnSelection=false}_replace(t,e){const{model:n}=this.editor;const i=e.marker.getRange();if(!n.canEditAt(i)){return}n.change((o=>{if(i.root.rootName==="$graveyard"){this._state.results.remove(e);return}let r={};for(const t of i.getItems()){if(t.is("$text")||t.is("$textProxy")){r=t.getAttributes();break}}n.insertContent(o.createText(t,r),i);if(this._state.results.has(e)){this._state.results.remove(e)}}))}}class FN extends ON{execute(t,e){this._replace(t,e)}}class jN extends ON{execute(t,e){const{editor:n}=this;const{model:i}=n;const o=n.plugins.get("FindAndReplaceUtils");const r=e instanceof gl?e:i.document.getRootNames().reduce(((t,n)=>o.updateFindResultFromRange(i.createRangeIn(i.document.getRoot(n)),i,o.findByTextCallback(e,this._state),t)),null);if(r.length){i.change((()=>{[...r].forEach((e=>{this._replace(t,e)}))}))}}}class HN extends ah{constructor(t,e){super(t);this.affectsData=false;this._state=e;this.isEnabled=false;this.listenTo(this._state.results,"change",(()=>{this.isEnabled=this._state.results.length>1}))}refresh(){this.isEnabled=this._state.results.length>1}execute(){const t=this._state.results;const e=t.getIndex(this._state.highlightedResult);const n=e+1>=t.length?0:e+1;this._state.highlightedResult=this._state.results.get(n)}}class UN extends HN{execute(){const t=this._state.results;const e=t.getIndex(this._state.highlightedResult);const n=e-1<0?this._state.results.length-1:e-1;this._state.highlightedResult=this._state.results.get(n)}}class qN extends(gt()){constructor(t){super();this.set("results",new gl);this.set("highlightedResult",null);this.set("searchText","");this.set("replaceText","");this.set("matchCase",false);this.set("matchWholeWords",false);this.results.on("change",((e,{removed:n,index:i})=>{if(Array.from(n).length){let e=false;t.change((i=>{for(const o of n){if(this.highlightedResult===o){e=true}if(t.markers.has(o.marker.name)){i.removeMarker(o.marker)}}}));if(e){const t=i>=this.results.length?0:i;this.highlightedResult=this.results.get(t)}}}))}clear(t){this.searchText="";t.change((e=>{if(this.highlightedResult){const n=this.highlightedResult.marker.name.split(":")[1];const i=t.markers.get(`findResultHighlighted:${n}`);if(i){e.removeMarker(i)}}[...this.results].forEach((({marker:t})=>{e.removeMarker(t)}))}));this.results.clear()}}class GN extends rh{static get pluginName(){return"FindAndReplaceUtils"}updateFindResultFromRange(t,e,n,i){const o=i||new gl;e.change((i=>{[...t].forEach((({type:t,item:r})=>{if(t==="elementStart"){if(e.schema.checkChild(r,"$text")){const t=n({item:r,text:this.rangeToText(e.createRangeIn(r))});if(!t){return}t.forEach((t=>{const e=`findResult:${T()}`;const n=i.addMarker(e,{usingOperation:false,affectsData:false,range:i.createRange(i.createPositionAt(r,t.start),i.createPositionAt(r,t.end))});const s=$N(o,n);o.add({id:e,label:t.label,marker:n},s)}))}}}))}));return o}rangeToText(t){return Array.from(t.getItems()).reduce(((t,e)=>{if(!(e.is("$text")||e.is("$textProxy"))){return`${t}\n`}return t+e.data}),"")}findByTextCallback(t,e){let n="gu";if(!e.matchCase){n+="i"}let i=`(${WD(t)})`;if(e.wholeWords){const e="[^a-zA-ZÀ-ɏḀ-ỿ]";if(!new RegExp("^"+e).test(t)){i=`(^|${e}|_)${i}`}if(!new RegExp(e+"$").test(t)){i=`${i}(?=_|${e}|$)`}}const o=new RegExp(i,n);function r({text:t}){const e=[...t.matchAll(o)];return e.map(WN)}return r}}function $N(t,e){const n=t.find((({marker:t})=>e.getStart().isBefore(t.getStart())));return n?t.getIndex(n):t.length}function WN(t){const e=t.length-1;let n=t.index;if(t.length===3){n+=t[1].length}return{label:t[e],start:n,end:n+t[e].length}}var ZN=n(2218);var KN={injectType:"singletonStyleTag",attributes:{"data-cke":true}};KN.insert="head";KN.singleton=true;var YN=Nl()(ZN.Z,KN);const QN=ZN.Z.locals||{};const JN="ck-find-result_selected";function XN(t,e,n){const i=new Set;const o=new Set;const r=e.model;const s=r.document.differ.getChanges();s.forEach((t=>{if(t.name==="$text"||r.schema.isInline(t.position.nodeAfter)){i.add(t.position.parent);[...r.markers.getMarkersAtPosition(t.position)].forEach((t=>{o.add(t.name)}))}else if(t.type==="insert"){i.add(t.position.nodeAfter)}}));r.document.differ.getChangedMarkers().forEach((({name:t,data:{newRange:e}})=>{if(e&&e.start.root.rootName==="$graveyard"){o.add(t)}}));i.forEach((t=>{const e=[...r.markers.getMarkersIntersectingRange(r.createRangeIn(t))];e.forEach((t=>o.add(t.name)))}));r.change((e=>{o.forEach((n=>{if(t.has(n)){t.remove(n)}e.removeMarker(n)}))}));i.forEach((i=>{const o=e.plugins.get("FindAndReplaceUtils");o.updateFindResultFromRange(r.createRangeOn(i),r,n,t)}))}class tz extends rh{static get requires(){return[GN]}static get pluginName(){return"FindAndReplaceEditing"}init(){this._activeResults=null;this.state=new qN(this.editor.model);this._defineConverters();this._defineCommands();this.listenTo(this.state,"change:highlightedResult",((t,e,n,i)=>{const{model:o}=this.editor;o.change((t=>{if(i){const e=i.marker.name.split(":")[1];const n=o.markers.get(`findResultHighlighted:${e}`);if(n){t.removeMarker(n)}}if(n){const e=n.marker.name.split(":")[1];t.addMarker(`findResultHighlighted:${e}`,{usingOperation:false,affectsData:false,range:n.marker.getRange()})}}))}));const t=(t,e,n)=>{if(n){const t=this.editor.editing.view.domConverter;const e=this.editor.editing.mapper.toViewRange(n.marker.getRange());Mc({target:t.viewRangeToDom(e),viewportOffset:40})}};const e=wu(t.bind(this),32);this.listenTo(this.state,"change:highlightedResult",e,{priority:"low"});this.listenTo(this.editor,"destroy",e.cancel)}find(t){const{editor:e}=this;const{model:n}=e;const{findCallback:i,results:o}=e.execute("find",t);this._activeResults=o;this.listenTo(n.document,"change:data",(()=>XN(this._activeResults,e,i)));return this._activeResults}stop(){if(!this._activeResults){return}this.stopListening(this.editor.model.document);this.state.clear(this.editor.model);this._activeResults=null}_defineCommands(){this.editor.commands.add("find",new VN(this.editor,this.state));this.editor.commands.add("findNext",new HN(this.editor,this.state));this.editor.commands.add("findPrevious",new UN(this.editor,this.state));this.editor.commands.add("replace",new FN(this.editor,this.state));this.editor.commands.add("replaceAll",new jN(this.editor,this.state))}_defineConverters(){const{editor:t}=this;t.conversion.for("editingDowncast").markerToHighlight({model:"findResult",view:({markerName:t})=>{const[,e]=t.split(":");return{name:"span",classes:["ck-find-result"],attributes:{"data-find-result":e}}}});t.conversion.for("editingDowncast").markerToHighlight({model:"findResultHighlighted",view:({markerName:t})=>{const[,e]=t.split(":");return{name:"span",classes:[JN],attributes:{"data-find-result":e}}}})}}class ez extends rh{static get requires(){return[tz,RN]}static get pluginName(){return"FindAndReplace"}init(){const t=this.editor.plugins.get("FindAndReplaceUI");const e=this.editor.plugins.get("FindAndReplaceEditing");const n=e.state;t.on("findNext",((t,e)=>{if(e){n.searchText=e.searchText;this.editor.execute("find",e.searchText,e)}else{this.editor.execute("findNext")}}));t.on("findPrevious",((t,e)=>{if(e&&n.searchText!==e.searchText){this.editor.execute("find",e.searchText)}else{this.editor.execute("findPrevious")}}));t.on("replace",((t,e)=>{if(n.searchText!==e.searchText){this.editor.execute("find",e.searchText)}const i=n.highlightedResult;if(i){this.editor.execute("replace",e.replaceText,i)}}));t.on("replaceAll",((t,e)=>{if(n.searchText!==e.searchText){this.editor.execute("find",e.searchText)}this.editor.execute("replaceAll",e.replaceText,n.results)}));t.on("searchReseted",(()=>{n.clear(this.editor.model);e.stop()}))}}class nz extends ah{constructor(t,e){super(t);this.attributeKey=e}refresh(){const t=this.editor.model;const e=t.document;this.value=e.selection.getAttribute(this.attributeKey);this.isEnabled=t.schema.checkAttributeInSelection(e.selection,this.attributeKey)}execute(t={}){const e=this.editor.model;const n=e.document;const i=n.selection;const o=t.value;const r=t.batch;const s=t=>{if(i.isCollapsed){if(o){t.setSelectionAttribute(this.attributeKey,o)}else{t.removeSelectionAttribute(this.attributeKey)}}else{const n=e.schema.getValidRanges(i.getRanges(),this.attributeKey);for(const e of n){if(o){t.setAttribute(this.attributeKey,o,e)}else{t.removeAttribute(this.attributeKey,e)}}}};if(r){e.enqueueChange(r,(t=>{s(t)}))}else{e.change((t=>{s(t)}))}}}const iz="fontSize";const oz="fontFamily";const rz="fontColor";const sz="fontBackgroundColor";function az(t,e){const n={model:{key:t,values:[]},view:{},upcastAlso:{}};for(const t of e){n.model.values.push(t.model);n.view[t.model]=t.view;if(t.upcastAlso){n.upcastAlso[t.model]=t.upcastAlso}}return n}function cz(t){return e=>uz(e.getStyle(t))}function lz(t){return(e,{writer:n})=>n.createAttributeElement("span",{style:`${t}:${e}`},{priority:7})}function dz({dropdownView:t,colors:e,columns:n,removeButtonLabel:i,colorPickerLabel:o,documentColorsLabel:r,documentColorsCount:s,colorPickerViewConfig:a}){const c=t.locale;const l=new hE(c,{colors:e,columns:n,removeButtonLabel:i,colorPickerLabel:o,documentColorsLabel:r,documentColorsCount:s,colorPickerViewConfig:a});t.colorSelectorView=l;t.panelView.children.add(l);return l}function uz(t){return t.replace(/\s/g,"")}class hz extends nz{constructor(t){super(t,oz)}}function gz(t){return t.map(mz).filter((t=>t!==undefined))}function mz(t){if(typeof t==="object"){return t}if(t==="default"){return{title:"Default",model:undefined}}if(typeof t!=="string"){return undefined}return fz(t)}function fz(t){const e=t.replace(/"|'/g,"").split(",");const n=e[0];const i=e.map(pz).join(", ");return{title:n,model:i,view:{name:"span",styles:{"font-family":i},priority:7}}}function pz(t){t=t.trim();if(t.indexOf(" ")>0){t=`'${t}'`}return t}class kz extends rh{static get pluginName(){return"FontFamilyEditing"}constructor(t){super(t);t.config.define(oz,{options:["default","Arial, Helvetica, sans-serif","Courier New, Courier, monospace","Georgia, serif","Lucida Sans Unicode, Lucida Grande, sans-serif","Tahoma, Geneva, sans-serif","Times New Roman, Times, serif","Trebuchet MS, Helvetica, sans-serif","Verdana, Geneva, sans-serif"],supportAllValues:false})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:oz});t.model.schema.setAttributeProperties(oz,{isFormatting:true,copyOnEnter:true});const e=gz(t.config.get("fontFamily.options")).filter((t=>t.model));const n=az(oz,e);if(t.config.get("fontFamily.supportAllValues")){this._prepareAnyValueConverters();this._prepareCompatibilityConverter()}else{t.conversion.attributeToElement(n)}t.commands.add(oz,new hz(t))}_prepareAnyValueConverters(){const t=this.editor;t.conversion.for("downcast").attributeToElement({model:oz,view:(t,{writer:e})=>e.createAttributeElement("span",{style:"font-family:"+t},{priority:7})});t.conversion.for("upcast").elementToAttribute({model:{key:oz,value:t=>t.getStyle("font-family")},view:{name:"span",styles:{"font-family":/.*/}}})}_prepareCompatibilityConverter(){const t=this.editor;t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{face:/.*/}},model:{key:oz,value:t=>t.getAttribute("face")}})}}const bz=' ';class wz extends rh{static get pluginName(){return"FontFamilyUI"}init(){const t=this.editor;const e=t.t;const n=this._getLocalizedOptions();const i=t.commands.get(oz);const o=e("Font Family");t.ui.componentFactory.add(oz,(e=>{const r=Dy(e);By(r,(()=>Az(n,i)),{role:"menu",ariaLabel:o});r.buttonView.set({label:o,icon:bz,tooltip:true});r.extendTemplate({attributes:{class:"ck-font-family-dropdown"}});r.bind("isEnabled").to(i);this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam});t.editing.view.focus()}));return r}))}_getLocalizedOptions(){const t=this.editor;const e=t.t;const n=gz(t.config.get(oz).options);return n.map((t=>{if(t.title==="Default"){t.title=e("Default")}return t}))}}function Az(t,e){const n=new gl;for(const i of t){const t={type:"button",model:new AD({commandName:oz,commandParam:i.model,label:i.title,role:"menuitemradio",withText:true})};t.model.bind("isOn").to(e,"value",(t=>{if(t===i.model){return true}if(!t||!i.model){return false}return t.split(",")[0].replace(/'/g,"").toLowerCase()===i.model.toLowerCase()}));if(i.view&&typeof i.view!=="string"&&i.view.styles){t.model.set("labelStyle",`font-family: ${i.view.styles["font-family"]}`)}n.add(t)}return n}class Cz extends rh{static get requires(){return[kz,wz]}static get pluginName(){return"FontFamily"}}class _z extends nz{constructor(t){super(t,iz)}}function vz(t){return t.map((t=>xz(t))).filter((t=>t!==undefined))}const yz={get tiny(){return{title:"Tiny",model:"tiny",view:{name:"span",classes:"text-tiny",priority:7}}},get small(){return{title:"Small",model:"small",view:{name:"span",classes:"text-small",priority:7}}},get big(){return{title:"Big",model:"big",view:{name:"span",classes:"text-big",priority:7}}},get huge(){return{title:"Huge",model:"huge",view:{name:"span",classes:"text-huge",priority:7}}}};function xz(t){if(typeof t==="number"){t=String(t)}if(typeof t==="object"&&Tz(t)){return Dz(t)}const e=Sz(t);if(e){return Dz(e)}if(t==="default"){return{model:undefined,title:"Default"}}if(Bz(t)){return undefined}return Ez(t)}function Ez(t){if(typeof t==="string"){t={title:t,model:`${parseFloat(t)}px`}}t.view={name:"span",styles:{"font-size":t.model}};return Dz(t)}function Dz(t){if(t.view&&typeof t.view!=="string"&&!t.view.priority){t.view.priority=7}return t}function Sz(t){return typeof t==="string"?yz[t]:yz[t.model]}function Tz(t){return t.title&&t.model&&t.view}function Bz(t){let e;if(typeof t==="object"){if(!t.model){throw new N("font-size-invalid-definition",null,t)}else{e=parseFloat(t.model)}}else{e=parseFloat(t)}return isNaN(e)}const Iz=["x-small","x-small","small","medium","large","x-large","xx-large","xxx-large"];class Mz extends rh{static get pluginName(){return"FontSizeEditing"}constructor(t){super(t);t.config.define(iz,{options:["tiny","small","default","big","huge"],supportAllValues:false})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:iz});t.model.schema.setAttributeProperties(iz,{isFormatting:true,copyOnEnter:true});const e=t.config.get("fontSize.supportAllValues");const n=vz(this.editor.config.get("fontSize.options")).filter((t=>t.model));const i=az(iz,n);if(e){this._prepareAnyValueConverters(i);this._prepareCompatibilityConverter()}else{t.conversion.attributeToElement(i)}t.commands.add(iz,new _z(t))}_prepareAnyValueConverters(t){const e=this.editor;const n=t.model.values.filter((t=>!w_(String(t))&&!C_(String(t))));if(n.length){throw new N("font-size-invalid-use-of-named-presets",null,{presets:n})}e.conversion.for("downcast").attributeToElement({model:iz,view:(t,{writer:e})=>{if(!t){return}return e.createAttributeElement("span",{style:"font-size:"+t},{priority:7})}});e.conversion.for("upcast").elementToAttribute({model:{key:iz,value:t=>t.getStyle("font-size")},view:{name:"span",styles:{"font-size":/.*/}}})}_prepareCompatibilityConverter(){const t=this.editor;t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{size:/^[+-]?\d{1,3}$/}},model:{key:iz,value:t=>{const e=t.getAttribute("size");const n=e[0]==="-"||e[0]==="+";let i=parseInt(e,10);if(n){i=3+i}const o=Iz.length-1;const r=Math.min(Math.max(i,0),o);return Iz[r]}}})}}var Lz=n(5991);var Nz={injectType:"singletonStyleTag",attributes:{"data-cke":true}};Nz.insert="head";Nz.singleton=true;var zz=Nl()(Lz.Z,Nz);const Pz=Lz.Z.locals||{};const Rz=' ';class Vz extends rh{static get pluginName(){return"FontSizeUI"}init(){const t=this.editor;const e=t.t;const n=this._getLocalizedOptions();const i=t.commands.get(iz);const o=e("Font Size");t.ui.componentFactory.add(iz,(e=>{const r=Dy(e);By(r,(()=>Oz(n,i)),{role:"menu",ariaLabel:o});r.buttonView.set({label:o,icon:Rz,tooltip:true});r.extendTemplate({attributes:{class:["ck-font-size-dropdown"]}});r.bind("isEnabled").to(i);this.listenTo(r,"execute",(e=>{t.execute(e.source.commandName,{value:e.source.commandParam});t.editing.view.focus()}));return r}))}_getLocalizedOptions(){const t=this.editor;const e=t.t;const n={Default:e("Default"),Tiny:e("Tiny"),Small:e("Small"),Big:e("Big"),Huge:e("Huge")};const i=vz(t.config.get(iz).options);return i.map((t=>{const e=n[t.title];if(e&&e!=t.title){t=Object.assign({},t,{title:e})}return t}))}}function Oz(t,e){const n=new gl;for(const i of t){const t={type:"button",model:new AD({commandName:iz,commandParam:i.model,label:i.title,class:"ck-fontsize-option",role:"menuitemradio",withText:true})};if(i.view&&typeof i.view!=="string"){if(i.view.styles){t.model.set("labelStyle",`font-size:${i.view.styles["font-size"]}`)}if(i.view.classes){t.model.set("class",`${t.model.class} ${i.view.classes}`)}}t.model.bind("isOn").to(e,"value",(t=>t===i.model));n.add(t)}return n}class Fz extends rh{static get requires(){return[Mz,Vz]}static get pluginName(){return"FontSize"}normalizeSizeOptions(t){return vz(t)}}class jz extends nz{constructor(t){super(t,rz)}}class Hz extends rh{static get pluginName(){return"FontColorEditing"}constructor(t){super(t);t.config.define(rz,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:true},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5});t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{color:/[\s\S]+/}},model:{key:rz,value:cz("color")}});t.conversion.for("upcast").elementToAttribute({view:{name:"font",attributes:{color:/^#?\w+$/}},model:{key:rz,value:t=>t.getAttribute("color")}});t.conversion.for("downcast").attributeToElement({model:rz,view:lz("color")});t.commands.add(rz,new jz(t));t.model.schema.extend("$text",{allowAttributes:rz});t.model.schema.setAttributeProperties(rz,{isFormatting:true,copyOnEnter:true})}}class Uz extends rh{constructor(t,{commandName:e,componentName:n,icon:i,dropdownLabel:o}){super(t);this.commandName=e;this.componentName=n;this.icon=i;this.dropdownLabel=o;this.columns=t.config.get(`${this.componentName}.columns`);this.colorSelectorView=undefined}init(){const t=this.editor;const e=t.locale;const n=e.t;const i=t.commands.get(this.commandName);const o=t.config.get(this.componentName);const r=Md(o.colors);const s=Id(e,r);const a=o.documentColors;const c=o.colorPicker!==false;t.ui.componentFactory.add(this.componentName,(e=>{const r=Dy(e);let l=false;this.colorSelectorView=dz({dropdownView:r,colors:s.map((t=>({label:t.label,color:t.model,options:{hasBorder:t.hasBorder}}))),columns:this.columns,removeButtonLabel:n("Remove color"),colorPickerLabel:n("Color picker"),documentColorsLabel:a!==0?n("Document colors"):"",documentColorsCount:a===undefined?this.columns:a,colorPickerViewConfig:c?o.colorPicker||{}:false});this.colorSelectorView.bind("selectedColor").to(i,"value");r.buttonView.set({label:this.dropdownLabel,icon:this.icon,tooltip:true});r.extendTemplate({attributes:{class:"ck-color-ui-dropdown"}});r.bind("isEnabled").to(i);this.colorSelectorView.on("execute",((e,n)=>{if(r.isOpen){t.execute(this.commandName,{value:n.value,batch:this._undoStepBatch})}if(n.source!=="colorPicker"){t.editing.view.focus()}if(n.source==="colorPickerSaveButton"){r.isOpen=false}}));this.colorSelectorView.on("colorPicker:show",(()=>{this._undoStepBatch=t.model.createBatch()}));this.colorSelectorView.on("colorPicker:cancel",(()=>{if(this._undoStepBatch.operations.length){r.isOpen=false;t.execute("undo",this._undoStepBatch)}t.editing.view.focus()}));r.on("change:isOpen",((e,n,i)=>{if(!l){l=true;r.colorSelectorView.appendUI()}if(i){if(a!==0){this.colorSelectorView.updateDocumentColors(t.model,this.componentName)}this.colorSelectorView.updateSelectedColors();this.colorSelectorView.showColorGridsFragment()}}));My(r,(()=>r.colorSelectorView.colorGridsFragmentView.staticColorsGrid.items.find((t=>t.isOn))));return r}))}}const qz=' ';class Gz extends Uz{constructor(t){const e=t.locale.t;super(t,{commandName:rz,componentName:rz,icon:qz,dropdownLabel:e("Font Color")})}static get pluginName(){return"FontColorUI"}}class $z extends rh{static get requires(){return[Hz,Gz]}static get pluginName(){return"FontColor"}}class Wz extends nz{constructor(t){super(t,sz)}}class Zz extends rh{static get pluginName(){return"FontBackgroundColorEditing"}constructor(t){super(t);t.config.define(sz,{colors:[{color:"hsl(0, 0%, 0%)",label:"Black"},{color:"hsl(0, 0%, 30%)",label:"Dim grey"},{color:"hsl(0, 0%, 60%)",label:"Grey"},{color:"hsl(0, 0%, 90%)",label:"Light grey"},{color:"hsl(0, 0%, 100%)",label:"White",hasBorder:true},{color:"hsl(0, 75%, 60%)",label:"Red"},{color:"hsl(30, 75%, 60%)",label:"Orange"},{color:"hsl(60, 75%, 60%)",label:"Yellow"},{color:"hsl(90, 75%, 60%)",label:"Light green"},{color:"hsl(120, 75%, 60%)",label:"Green"},{color:"hsl(150, 75%, 60%)",label:"Aquamarine"},{color:"hsl(180, 75%, 60%)",label:"Turquoise"},{color:"hsl(210, 75%, 60%)",label:"Light blue"},{color:"hsl(240, 75%, 60%)",label:"Blue"},{color:"hsl(270, 75%, 60%)",label:"Purple"}],columns:5});t.data.addStyleProcessorRules(z_);t.conversion.for("upcast").elementToAttribute({view:{name:"span",styles:{"background-color":/[\s\S]+/}},model:{key:sz,value:cz("background-color")}});t.conversion.for("downcast").attributeToElement({model:sz,view:lz("background-color")});t.commands.add(sz,new Wz(t));t.model.schema.extend("$text",{allowAttributes:sz});t.model.schema.setAttributeProperties(sz,{isFormatting:true,copyOnEnter:true})}}const Kz=' ';class Yz extends Uz{constructor(t){const e=t.locale.t;super(t,{commandName:sz,componentName:sz,icon:Kz,dropdownLabel:e("Font Background Color")})}static get pluginName(){return"FontBackgroundColorUI"}}class Qz extends rh{static get requires(){return[Zz,Yz]}static get pluginName(){return"FontBackgroundColor"}}class Jz extends(null&&Plugin){static get requires(){return[FontFamily,FontSize,FontColor,FontBackgroundColor]}static get pluginName(){return"Font"}}class Xz extends ah{constructor(t){super(t);this._isEnabledBasedOnSelection=false}refresh(){const t=this.editor.model;const e=t.document;const n=ml(e.selection.getSelectedBlocks());this.value=!!n&&n.is("element","paragraph");this.isEnabled=!!n&&tP(n,t.schema)}execute(t={}){const e=this.editor.model;const n=e.document;const i=t.selection||n.selection;if(!e.canEditAt(i)){return}e.change((t=>{const n=i.getSelectedBlocks();for(const i of n){if(!i.is("element","paragraph")&&tP(i,e.schema)){t.rename(i,"paragraph")}}}))}}function tP(t,e){return e.checkChild(t.parent,"paragraph")&&!e.isObject(t)}class eP extends ah{constructor(t){super(t);this._isEnabledBasedOnSelection=false}execute(t){const e=this.editor.model;const n=t.attributes;let i=t.position;if(!e.canEditAt(i)){return}e.change((t=>{i=this._findPositionToInsertParagraph(i,t);if(!i){return}const o=t.createElement("paragraph");if(n){e.schema.setAllowedAttributes(o,n,t)}e.insertContent(o,i);t.setSelection(o,"in")}))}_findPositionToInsertParagraph(t,e){const n=this.editor.model;if(n.schema.checkChild(t,"paragraph")){return t}const i=n.schema.findAllowedParent(t,"paragraph");if(!i){return null}const o=t.parent;const r=n.schema.checkChild(o,"$text");if(o.isEmpty||r&&t.isAtEnd){return n.createPositionAfter(o)}if(!o.isEmpty&&r&&t.isAtStart){return n.createPositionBefore(o)}return e.split(t,i).position}}class nP extends rh{static get pluginName(){return"Paragraph"}init(){const t=this.editor;const e=t.model;t.commands.add("paragraph",new Xz(t));t.commands.add("insertParagraph",new eP(t));e.schema.register("paragraph",{inheritAllFrom:"$block"});t.conversion.elementToElement({model:"paragraph",view:"p"});t.conversion.for("upcast").elementToElement({model:(t,{writer:e})=>{if(!nP.paragraphLikeElements.has(t.name)){return null}if(t.isEmpty){return null}return e.createElement("paragraph")},view:/.+/,converterPriority:"low"})}}nP.paragraphLikeElements=new Set(["blockquote","dd","div","dt","h1","h2","h3","h4","h5","h6","li","p","td","th"]);const iP=Kv.paragraph;class oP extends(null&&Plugin){static get requires(){return[Paragraph]}init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("paragraph",(n=>{const i=new ButtonView(n);const o=t.commands.get("paragraph");i.label=e("Paragraph");i.icon=iP;i.tooltip=true;i.isToggleable=true;i.bind("isEnabled").to(o);i.bind("isOn").to(o,"value");i.on("execute",(()=>{t.execute("paragraph")}));return i}))}}class rP extends ah{constructor(t,e){super(t);this.modelElements=e}refresh(){const t=ml(this.editor.model.document.selection.getSelectedBlocks());this.value=!!t&&this.modelElements.includes(t.name)&&t.name;this.isEnabled=!!t&&this.modelElements.some((e=>sP(t,e,this.editor.model.schema)))}execute(t){const e=this.editor.model;const n=e.document;const i=t.value;e.change((t=>{const o=Array.from(n.selection.getSelectedBlocks()).filter((t=>sP(t,i,e.schema)));for(const e of o){if(!e.is("element",i)){t.rename(e,i)}}}))}}function sP(t,e,n){return n.checkChild(t.parent,e)&&!n.isObject(t)}const aP="paragraph";class cP extends rh{static get pluginName(){return"HeadingEditing"}constructor(t){super(t);t.config.define("heading",{options:[{model:"paragraph",title:"Paragraph",class:"ck-heading_paragraph"},{model:"heading1",view:"h2",title:"Heading 1",class:"ck-heading_heading1"},{model:"heading2",view:"h3",title:"Heading 2",class:"ck-heading_heading2"},{model:"heading3",view:"h4",title:"Heading 3",class:"ck-heading_heading3"}]})}static get requires(){return[nP]}init(){const t=this.editor;const e=t.config.get("heading.options");const n=[];for(const i of e){if(i.model==="paragraph"){continue}t.model.schema.register(i.model,{inheritAllFrom:"$block"});t.conversion.elementToElement(i);n.push(i.model)}this._addDefaultH1Conversion(t);t.commands.add("heading",new rP(t,n))}afterInit(){const t=this.editor;const e=t.commands.get("enter");const n=t.config.get("heading.options");if(e){this.listenTo(e,"afterExecute",((e,i)=>{const o=t.model.document.selection.getFirstPosition().parent;const r=n.some((t=>o.is("element",t.model)));if(r&&!o.is("element",aP)&&o.childCount===0){i.writer.rename(o,aP)}}))}}_addDefaultH1Conversion(t){t.conversion.for("upcast").elementToElement({model:"heading1",view:"h1",converterPriority:I.low+1})}}function lP(t){const e=t.t;const n={Paragraph:e("Paragraph"),"Heading 1":e("Heading 1"),"Heading 2":e("Heading 2"),"Heading 3":e("Heading 3"),"Heading 4":e("Heading 4"),"Heading 5":e("Heading 5"),"Heading 6":e("Heading 6")};return t.config.get("heading.options").map((t=>{const e=n[t.title];if(e&&e!=t.title){t.title=e}return t}))}var dP=n(4249);var uP={injectType:"singletonStyleTag",attributes:{"data-cke":true}};uP.insert="head";uP.singleton=true;var hP=Nl()(dP.Z,uP);const gP=dP.Z.locals||{};class mP extends rh{static get pluginName(){return"HeadingUI"}init(){const t=this.editor;const e=t.t;const n=lP(t);const i=e("Choose heading");const o=e("Heading");t.ui.componentFactory.add("heading",(e=>{const r={};const s=new gl;const a=t.commands.get("heading");const c=t.commands.get("paragraph");const l=[a];for(const t of n){const e={type:"button",model:new AD({label:t.title,class:t.class,role:"menuitemradio",withText:true})};if(t.model==="paragraph"){e.model.bind("isOn").to(c,"value");e.model.set("commandName","paragraph");l.push(c)}else{e.model.bind("isOn").to(a,"value",(e=>e===t.model));e.model.set({commandName:"heading",commandValue:t.model})}s.add(e);r[t.model]=t.title}const d=Dy(e);By(d,s,{ariaLabel:o,role:"menu"});d.buttonView.set({ariaLabel:o,ariaLabelledBy:undefined,isOn:false,withText:true,tooltip:o});d.extendTemplate({attributes:{class:["ck-heading-dropdown"]}});d.bind("isEnabled").toMany(l,"isEnabled",((...t)=>t.some((t=>t))));d.buttonView.bind("label").to(a,"value",c,"value",((t,e)=>{const n=t||e&&"paragraph";if(typeof n==="boolean"){return i}if(!r[n]){return i}return r[n]}));this.listenTo(d,"execute",(e=>{const{commandName:n,commandValue:i}=e.source;t.execute(n,i?{value:i}:undefined);t.editing.view.focus()}));return d}))}}class fP extends rh{static get requires(){return[cP,mP]}static get pluginName(){return"Heading"}}const pP=' ';const kP=' ';const bP=' ';const wP=' ';const AP=' ';const CP=' ';const _P={heading1:pP,heading2:kP,heading3:bP,heading4:wP,heading5:AP,heading6:CP};class vP extends(null&&Plugin){init(){const t=getLocalizedOptions(this.editor);t.filter((t=>t.model!=="paragraph")).map((t=>this._createButton(t)))}_createButton(t){const e=this.editor;e.ui.componentFactory.add(t.model,(n=>{const i=new ButtonView(n);const o=e.commands.get("heading");i.label=t.title;i.icon=t.icon||_P[t.model];i.tooltip=true;i.isToggleable=true;i.bind("isEnabled").to(o);i.bind("isOn").to(o,"value",(e=>e==t.model));i.on("execute",(()=>{e.execute("heading",{value:t.model});e.editing.view.focus()}));return i}))}}const yP=new Set(["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"]);class xP extends rh{constructor(){super(...arguments);this._bodyPlaceholder=new Map}static get pluginName(){return"Title"}static get requires(){return["Paragraph"]}init(){const t=this.editor;const e=t.model;e.schema.register("title",{isBlock:true,allowIn:"$root"});e.schema.register("title-content",{isBlock:true,allowIn:"title",allowAttributes:["alignment"]});e.schema.extend("$text",{allowIn:"title-content"});e.schema.addAttributeCheck((t=>{if(t.endsWith("title-content $text")){return false}}));t.editing.mapper.on("modelToViewPosition",DP(t.editing.view));t.data.mapper.on("modelToViewPosition",DP(t.editing.view));t.conversion.for("downcast").elementToElement({model:"title-content",view:"h1"});t.conversion.for("downcast").add((t=>t.on("insert:title",((t,e,n)=>{n.consumable.consume(e.item,t.name)}))));t.data.upcastDispatcher.on("element:h1",EP,{priority:"high"});t.data.upcastDispatcher.on("element:h2",EP,{priority:"high"});t.data.upcastDispatcher.on("element:h3",EP,{priority:"high"});e.document.registerPostFixer((t=>this._fixTitleContent(t)));e.document.registerPostFixer((t=>this._fixTitleElement(t)));e.document.registerPostFixer((t=>this._fixBodyElement(t)));e.document.registerPostFixer((t=>this._fixExtraParagraph(t)));this._attachPlaceholders();this._attachTabPressHandling()}getTitle(t={}){const e=t.rootName?t.rootName:undefined;const n=this._getTitleElement(e);const i=n.getChild(0);return this.editor.data.stringify(i,t)}getBody(t={}){const e=this.editor;const n=e.data;const i=e.model;const o=t.rootName?t.rootName:undefined;const r=e.model.document.getRoot(o);const s=e.editing.view;const a=new ff(s.document);const c=i.createRangeIn(r);const l=a.createDocumentFragment();const d=i.createPositionAfter(r.getChild(0));const u=i.createRange(d,i.createPositionAt(r,"end"));const h=new Map;for(const t of i.markers){const e=u.getIntersection(t.getRange());if(e){h.set(t.name,e)}}n.mapper.clearBindings();n.mapper.bindElements(r,l);n.downcastDispatcher.convert(c,h,a,t);a.remove(a.createRangeOn(l.getChild(0)));return e.data.processor.toData(l)}_getTitleElement(t){const e=this.editor.model.document.getRoot(t);for(const t of e.getChildren()){if(SP(t)){return t}}}_fixTitleContent(t){let e=false;for(const n of this.editor.model.document.getRootNames()){const i=this._getTitleElement(n);if(!i||i.maxOffset===1){continue}const o=Array.from(i.getChildren());o.shift();for(const e of o){t.move(t.createRangeOn(e),i,"after");t.rename(e,"paragraph")}e=true}return e}_fixTitleElement(t){let e=false;const n=this.editor.model;for(const i of this.editor.model.document.getRoots()){const o=Array.from(i.getChildren()).filter(SP);const r=o[0];const s=i.getChild(0);if(s.is("element","title")){if(o.length>1){BP(o,t,n);e=true}continue}if(!r&&!yP.has(s.name)){const n=t.createElement("title");t.insert(n,i);t.insertElement("title-content",n);e=true;continue}if(yP.has(s.name)){TP(s,t,n)}else{t.move(t.createRangeOn(r),i,0)}BP(o,t,n);e=true}return e}_fixBodyElement(t){let e=false;for(const n of this.editor.model.document.getRootNames()){const i=this.editor.model.document.getRoot(n);if(i.childCount<2){const o=t.createElement("paragraph");t.insert(o,i,1);this._bodyPlaceholder.set(n,o);e=true}}return e}_fixExtraParagraph(t){let e=false;for(const n of this.editor.model.document.getRootNames()){const i=this.editor.model.document.getRoot(n);const o=this._bodyPlaceholder.get(n);if(MP(o,i)){this._bodyPlaceholder.delete(n);t.remove(o);e=true}}return e}_attachPlaceholders(){const t=this.editor;const e=t.t;const n=t.editing.view;const i=t.sourceElement;const o=t.config.get("title.placeholder")||e("Type your title");const r=t.config.get("placeholder")||i&&i.tagName.toLowerCase()==="textarea"&&i.getAttribute("placeholder")||e("Type or paste your content here.");t.editing.downcastDispatcher.on("insert:title-content",((t,e,i)=>{const r=i.mapper.toViewElement(e.item);r.placeholder=o;wh({view:n,element:r,keepOnFocus:true})}));const s=new Map;n.document.registerPostFixer((t=>{let e=false;for(const i of n.document.roots){if(i.isEmpty){continue}const n=i.getChild(1);const o=s.get(i.rootName);if(n!==o){if(o){_h(t,o);t.removeAttribute("data-placeholder",o)}t.setAttribute("data-placeholder",r,n);s.set(i.rootName,n);e=true}if(vh(n,true)&&i.childCount===2&&n.name==="p"){e=Ch(t,n)?true:e}else{e=_h(t,n)?true:e}}return e}))}_attachTabPressHandling(){const t=this.editor;const e=t.model;t.keystrokes.set("TAB",((t,n)=>{e.change((t=>{const i=e.document.selection;const o=Array.from(i.getSelectedBlocks());if(o.length===1&&o[0].is("element","title-content")){const e=i.getFirstPosition().root;const o=e.getChild(1);t.setSelection(o,0);n()}}))}));t.keystrokes.set("SHIFT + TAB",((n,i)=>{e.change((n=>{const o=e.document.selection;if(!o.isCollapsed){return}const r=ml(o.getSelectedBlocks());const s=o.getFirstPosition();const a=t.model.document.getRoot(s.root.rootName);const c=a.getChild(0);const l=a.getChild(1);if(r===l&&s.isAtStart){n.setSelection(c.getChild(0),0);i()}}))}))}}function EP(t,e,n){const i=e.modelCursor;const o=e.viewItem;if(!i.isAtStart||!i.parent.is("element","$root")){return}if(!n.consumable.consume(o,{name:true})){return}const r=n.writer;const s=r.createElement("title");const a=r.createElement("title-content");r.append(a,s);r.insert(s,i);n.convertChildren(o,a);n.updateConversionResult(s,e)}function DP(t){return(e,n)=>{const i=n.modelPosition.parent;if(!i.is("element","title")){return}const o=i.parent;const r=n.mapper.toViewElement(o);n.viewPosition=t.createPositionAt(r,0);e.stop()}}function SP(t){return t.is("element","title")}function TP(t,e,n){const i=e.createElement("title");e.insert(i,t,"before");e.insert(t,i,0);e.rename(t,"title-content");n.schema.removeDisallowedAttributes([t],e)}function BP(t,e,n){let i=false;for(const o of t){if(o.index!==0){IP(o,e,n);i=true}}return i}function IP(t,e,n){const i=t.getChild(0);if(i.isEmpty){e.remove(t);return}e.move(e.createRangeOn(i),t,"before");e.rename(i,"paragraph");e.remove(t);n.schema.removeDisallowedAttributes([i],e)}function MP(t,e){if(!t||!t.is("element","paragraph")||t.childCount){return false}if(e.childCount<=2||e.getChild(e.childCount-1)!==t){return false}return true}class LP extends ah{refresh(){const t=this.editor.model;const e=t.document;this.value=e.selection.getAttribute("highlight");this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"highlight")}execute(t={}){const e=this.editor.model;const n=e.document;const i=n.selection;const o=t.value;e.change((t=>{if(i.isCollapsed){const e=i.getFirstPosition();if(i.hasAttribute("highlight")){const n=t=>t.item.hasAttribute("highlight")&&t.item.getAttribute("highlight")===this.value;const i=e.getLastMatchingPosition(n,{direction:"backward"});const r=e.getLastMatchingPosition(n);const s=t.createRange(i,r);if(!o||this.value===o){if(!e.isEqual(r)){t.removeAttribute("highlight",s)}t.removeSelectionAttribute("highlight")}else{if(!e.isEqual(r)){t.setAttribute("highlight",o,s)}t.setSelectionAttribute("highlight",o)}}else if(o){t.setSelectionAttribute("highlight",o)}}else{const n=e.schema.getValidRanges(i.getRanges(),"highlight");for(const e of n){if(o){t.setAttribute("highlight",o,e)}else{t.removeAttribute("highlight",e)}}}}))}}class NP extends rh{static get pluginName(){return"HighlightEditing"}constructor(t){super(t);t.config.define("highlight",{options:[{model:"yellowMarker",class:"marker-yellow",title:"Yellow marker",color:"var(--ck-highlight-marker-yellow)",type:"marker"},{model:"greenMarker",class:"marker-green",title:"Green marker",color:"var(--ck-highlight-marker-green)",type:"marker"},{model:"pinkMarker",class:"marker-pink",title:"Pink marker",color:"var(--ck-highlight-marker-pink)",type:"marker"},{model:"blueMarker",class:"marker-blue",title:"Blue marker",color:"var(--ck-highlight-marker-blue)",type:"marker"},{model:"redPen",class:"pen-red",title:"Red pen",color:"var(--ck-highlight-pen-red)",type:"pen"},{model:"greenPen",class:"pen-green",title:"Green pen",color:"var(--ck-highlight-pen-green)",type:"pen"}]})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"highlight"});const e=t.config.get("highlight.options");t.conversion.attributeToElement(zP(e));t.commands.add("highlight",new LP(t))}}function zP(t){const e={model:{key:"highlight",values:[]},view:{}};for(const n of t){e.model.values.push(n.model);e.view[n.model]={name:"mark",classes:n.class}}return e}const PP=' ';const RP=' ';var VP=n(7263);var OP={injectType:"singletonStyleTag",attributes:{"data-cke":true}};OP.insert="head";OP.singleton=true;var FP=Nl()(VP.Z,OP);const jP=VP.Z.locals||{};class HP extends rh{get localizedOptionTitles(){const t=this.editor.t;return{"Yellow marker":t("Yellow marker"),"Green marker":t("Green marker"),"Pink marker":t("Pink marker"),"Blue marker":t("Blue marker"),"Red pen":t("Red pen"),"Green pen":t("Green pen")}}static get pluginName(){return"HighlightUI"}init(){const t=this.editor.config.get("highlight.options");for(const e of t){this._addHighlighterButton(e)}this._addRemoveHighlightButton();this._addDropdown(t)}_addRemoveHighlightButton(){const t=this.editor.t;const e=this.editor.commands.get("highlight");this._addButton("removeHighlight",t("Remove highlight"),Kv.eraser,null,(t=>{t.bind("isEnabled").to(e,"isEnabled")}))}_addHighlighterButton(t){const e=this.editor.commands.get("highlight");this._addButton("highlight:"+t.model,t.title,qP(t.type),t.model,n);function n(n){n.bind("isEnabled").to(e,"isEnabled");n.bind("isOn").to(e,"value",(e=>e===t.model));n.iconView.fillColor=t.color;n.isToggleable=true}}_addButton(t,e,n,i,o){const r=this.editor;r.ui.componentFactory.add(t,(t=>{const s=new xd(t);const a=this.localizedOptionTitles[e]?this.localizedOptionTitles[e]:e;s.set({label:a,icon:n,tooltip:true});s.on("execute",(()=>{r.execute("highlight",{value:i});r.editing.view.focus()}));o(s);return s}))}_addDropdown(t){const e=this.editor;const n=e.t;const i=e.ui.componentFactory;const o=t[0];const r=t.reduce(((t,e)=>{t[e.model]=e;return t}),{});i.add("highlight",(s=>{const a=e.commands.get("highlight");const c=Dy(s,by);const l=c.buttonView;l.set({label:n("Highlight"),tooltip:true,lastExecuted:o.model,commandValue:o.model,isToggleable:true});l.bind("icon").to(a,"value",(t=>qP(u(t,"type"))));l.bind("color").to(a,"value",(t=>u(t,"color")));l.bind("commandValue").to(a,"value",(t=>u(t,"model")));l.bind("isOn").to(a,"value",(t=>!!t));l.delegate("execute").to(c);const d=()=>{const e=t.map((t=>{const e=i.create("highlight:"+t.model);this.listenTo(e,"execute",(()=>{c.buttonView.set({lastExecuted:t.model})}));return e}));e.push(new eh);e.push(i.create("removeHighlight"));return e};c.bind("isEnabled").to(a,"isEnabled");Sy(c,d,{enableActiveItemFocusOnDropdownOpen:true,ariaLabel:n("Text highlight toolbar")});UP(c);l.on("execute",(()=>{e.execute("highlight",{value:l.commandValue})}));this.listenTo(c,"execute",(()=>{e.editing.view.focus()}));function u(t,e){const n=!t||t===l.lastExecuted?l.lastExecuted:t;return r[n][e]}return c}))}}function UP(t){const e=t.buttonView.actionView;e.iconView.bind("fillColor").to(t.buttonView,"color")}function qP(t){return t==="marker"?PP:RP}class GP extends rh{static get requires(){return[NP,HP]}static get pluginName(){return"Highlight"}}class $P extends ah{refresh(){const t=this.editor.model;const e=t.schema;const n=t.document.selection;this.isEnabled=WP(n,e,t)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("horizontalLine");t.insertObject(n,null,null,{setSelection:"after"})}))}}function WP(t,e,n){const i=ZP(t,n);return e.checkChild(i,"horizontalLine")}function ZP(t,e){const n=VM(t,e);const i=n.start.parent;if(i.isEmpty&&!i.is("element","$root")){return i.parent}return i}var KP=n(9893);var YP={injectType:"singletonStyleTag",attributes:{"data-cke":true}};YP.insert="head";YP.singleton=true;var QP=Nl()(KP.Z,YP);const JP=KP.Z.locals||{};class XP extends rh{static get pluginName(){return"HorizontalLineEditing"}init(){const t=this.editor;const e=t.model.schema;const n=t.t;const i=t.conversion;e.register("horizontalLine",{inheritAllFrom:"$blockObject"});i.for("dataDowncast").elementToElement({model:"horizontalLine",view:(t,{writer:e})=>e.createEmptyElement("hr")});i.for("editingDowncast").elementToStructure({model:"horizontalLine",view:(t,{writer:e})=>{const i=n("Horizontal line");const o=e.createContainerElement("div",null,e.createEmptyElement("hr"));e.addClass("ck-horizontal-line",o);e.setCustomProperty("hr",true,o);return tR(o,e,i)}});i.for("upcast").elementToElement({view:"hr",model:"horizontalLine"});t.commands.add("horizontalLine",new $P(t))}}function tR(t,e,n){e.setCustomProperty("horizontalLine",true,t);return IM(t,e,{label:n})}const eR=' ';class nR extends rh{static get pluginName(){return"HorizontalLineUI"}init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("horizontalLine",(n=>{const i=t.commands.get("horizontalLine");const o=new xd(n);o.set({label:e("Horizontal line"),icon:eR,tooltip:true});o.bind("isEnabled").to(i,"isEnabled");this.listenTo(o,"execute",(()=>{t.execute("horizontalLine");t.editing.view.focus()}));return o}))}}class iR extends rh{static get requires(){return[XP,nR,kL]}static get pluginName(){return"HorizontalLine"}}class oR extends ah{refresh(){const t=this.editor.model;const e=t.schema;const n=t.document.selection;const i=aR(n);this.isEnabled=rR(n,e,t);this.value=i?i.getAttribute("value")||"":null}execute(t){const e=this.editor.model;const n=e.document.selection;e.change((i=>{let o;if(this.value!==null){o=aR(n)}else{o=i.createElement("rawHtml");e.insertObject(o,null,null,{setSelection:"on"})}i.setAttribute("value",t,o)}))}}function rR(t,e,n){const i=sR(t,n);return e.checkChild(i,"rawHtml")}function sR(t,e){const n=VM(t,e);const i=n.start.parent;if(i.isEmpty&&!i.is("rootElement")){return i.parent}return i}function aR(t){const e=t.getSelectedElement();if(e&&e.is("element","rawHtml")){return e}return null}var cR=n(7319);var lR={injectType:"singletonStyleTag",attributes:{"data-cke":true}};lR.insert="head";lR.singleton=true;var dR=Nl()(cR.Z,lR);const uR=cR.Z.locals||{};class hR extends rh{static get pluginName(){return"HtmlEmbedEditing"}constructor(t){super(t);this._widgetButtonViewReferences=new Set;t.config.define("htmlEmbed",{showPreviews:false,sanitizeHtml:t=>{z("html-embed-provide-sanitize-function");return{html:t,hasChanged:false}}})}init(){const t=this.editor;const e=t.model.schema;e.register("rawHtml",{inheritAllFrom:"$blockObject",allowAttributes:["value"]});t.commands.add("htmlEmbed",new oR(t));this._setupConversion()}_setupConversion(){const t=this.editor;const e=t.t;const n=t.editing.view;const i=this._widgetButtonViewReferences;const o=t.config.get("htmlEmbed");this.editor.editing.view.on("render",(()=>{for(const t of i){if(t.element&&t.element.isConnected){return}t.destroy();i.delete(t)}}),{priority:"lowest"});t.data.registerRawContentMatcher({name:"div",classes:"raw-html-embed"});t.conversion.for("upcast").elementToElement({view:{name:"div",classes:"raw-html-embed"},model:(t,{writer:e})=>e.createElement("rawHtml",{value:t.getCustomProperty("$rawContent")})});t.conversion.for("dataDowncast").elementToElement({model:"rawHtml",view:(t,{writer:e})=>e.createRawElement("div",{class:"raw-html-embed"},(function(e){e.innerHTML=t.getAttribute("value")||""}))});t.conversion.for("editingDowncast").elementToStructure({model:{name:"rawHtml",attributes:["value"]},view:(i,{writer:s})=>{let a;let c;let l;const d=s.createRawElement("div",{class:"raw-html-embed__content-wrapper"},(function(e){a=e;r({editor:t,domElement:e,state:c,props:l});a.addEventListener("mousedown",(()=>{if(c.isEditable){const e=t.model;const n=e.document.selection.getSelectedElement();if(n!==i){e.change((t=>t.setSelection(i,"on")))}}}),true)}));const u={makeEditable(){c=Object.assign({},c,{isEditable:true});r({domElement:a,editor:t,state:c,props:l});n.change((t=>{t.setAttribute("data-cke-ignore-events","true",d)}));a.querySelector("textarea").focus()},save(e){if(e!==c.getRawHtmlValue()){t.execute("htmlEmbed",e);t.editing.view.focus()}else{this.cancel()}},cancel(){c=Object.assign({},c,{isEditable:false});r({domElement:a,editor:t,state:c,props:l});t.editing.view.focus();n.change((t=>{t.removeAttribute("data-cke-ignore-events",d)}))}};c={showPreviews:o.showPreviews,isEditable:false,getRawHtmlValue:()=>i.getAttribute("value")||""};l={sanitizeHtml:o.sanitizeHtml,textareaPlaceholder:e("Paste raw HTML here..."),onEditClick(){u.makeEditable()},onSaveClick(t){u.save(t)},onCancelClick(){u.cancel()}};const h=s.createContainerElement("div",{class:"raw-html-embed","data-html-embed-label":e("HTML snippet"),dir:t.locale.uiLanguageDirection},d);s.setCustomProperty("rawHtmlApi",u,h);s.setCustomProperty("rawHtml",true,h);return IM(h,s,{label:e("HTML snippet"),hasSelectionHandle:true})}});function r({editor:t,domElement:e,state:n,props:i}){e.textContent="";const o=e.ownerDocument;let r;if(n.isEditable){const t={isDisabled:false,placeholder:i.textareaPlaceholder};r=a({domDocument:o,state:n,props:t});e.append(r)}else if(n.showPreviews){const r={sanitizeHtml:i.sanitizeHtml};e.append(c({domDocument:o,state:n,props:r,editor:t}))}else{const t={isDisabled:true,placeholder:i.textareaPlaceholder};e.append(a({domDocument:o,state:n,props:t}))}const l={onEditClick:i.onEditClick,onSaveClick:()=>{i.onSaveClick(r.value)},onCancelClick:i.onCancelClick};e.prepend(s({editor:t,domDocument:o,state:n,props:l}))}function s({editor:t,domDocument:e,state:n,props:o}){const r=ie(e,"div",{class:"raw-html-embed__buttons-wrapper"});if(n.isEditable){const e=gR(t,"save",o.onSaveClick);const n=gR(t,"cancel",o.onCancelClick);r.append(e.element,n.element);i.add(e).add(n)}else{const e=gR(t,"edit",o.onEditClick);r.append(e.element);i.add(e)}return r}function a({domDocument:t,state:e,props:n}){const i=ie(t,"textarea",{placeholder:n.placeholder,class:"ck ck-reset ck-input ck-input-text raw-html-embed__source"});i.disabled=n.isDisabled;i.value=e.getRawHtmlValue();return i}function c({editor:t,domDocument:n,state:i,props:o}){const r=o.sanitizeHtml(i.getRawHtmlValue());const s=i.getRawHtmlValue().length>0?e("No preview available"):e("Empty snippet content");const a=ie(n,"div",{class:"ck ck-reset_all raw-html-embed__preview-placeholder"},s);const c=ie(n,"div",{class:"raw-html-embed__preview-content",dir:t.locale.contentLanguageDirection});const l=n.createRange();const d=l.createContextualFragment(r.html);c.appendChild(d);const u=ie(n,"div",{class:"raw-html-embed__preview"},[a,c]);return u}}}function gR(t,e,n){const{t:i}=t.locale;const o=new xd(t.locale);const r=t.commands.get("htmlEmbed");o.set({class:`raw-html-embed__${e}-button`,icon:Kv.pencil,tooltip:true,tooltipPosition:t.locale.uiLanguageDirection==="rtl"?"e":"w"});o.render();if(e==="edit"){o.set({icon:Kv.pencil,label:i("Edit source")});o.bind("isEnabled").to(r)}else if(e==="save"){o.set({icon:Kv.check,label:i("Save changes")});o.bind("isEnabled").to(r)}else{o.set({icon:Kv.cancel,label:i("Cancel")})}o.on("execute",n);return o}const mR=' ';class fR extends rh{static get pluginName(){return"HtmlEmbedUI"}init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("htmlEmbed",(n=>{const i=t.commands.get("htmlEmbed");const o=new xd(n);o.set({label:e("Insert HTML"),icon:mR,tooltip:true});o.bind("isEnabled").to(i,"isEnabled");this.listenTo(o,"execute",(()=>{t.execute("htmlEmbed");t.editing.view.focus();const e=t.editing.view.document.selection.getSelectedElement().getCustomProperty("rawHtmlApi");e.makeEditable()}));return o}))}}class pR extends rh{static get requires(){return[hR,fR,kL]}static get pluginName(){return"HtmlEmbed"}}function kR(t,e,n,i){var o=-1,r=t==null?0:t.length;if(i&&r){n=t[++o]}while(++o=i?t:yg(t,e,n)}const NV=LV;var zV="\\ud800-\\udfff",PV="\\u0300-\\u036f",RV="\\ufe20-\\ufe2f",VV="\\u20d0-\\u20ff",OV=PV+RV+VV,FV="\\ufe0e\\ufe0f";var jV="\\u200d";var HV=RegExp("["+jV+zV+OV+FV+"]");function UV(t){return HV.test(t)}const qV=UV;function GV(t){return t.split("")}const $V=GV;var WV="\\ud800-\\udfff",ZV="\\u0300-\\u036f",KV="\\ufe20-\\ufe2f",YV="\\u20d0-\\u20ff",QV=ZV+KV+YV,JV="\\ufe0e\\ufe0f";var XV="["+WV+"]",tO="["+QV+"]",eO="\\ud83c[\\udffb-\\udfff]",nO="(?:"+tO+"|"+eO+")",iO="[^"+WV+"]",oO="(?:\\ud83c[\\udde6-\\uddff]){2}",rO="[\\ud800-\\udbff][\\udc00-\\udfff]",sO="\\u200d";var aO=nO+"?",cO="["+JV+"]?",lO="(?:"+sO+"(?:"+[iO,oO,rO].join("|")+")"+cO+aO+")*",dO=cO+aO+lO,uO="(?:"+[iO+tO+"?",tO,oO,rO,XV].join("|")+")";var hO=RegExp(eO+"(?="+eO+")|"+uO+dO,"g");function gO(t){return t.match(hO)||[]}const mO=gO;function fO(t){return qV(t)?mO(t):$V(t)}const pO=fO;function kO(t){return function(e){e=gg(e);var n=qV(e)?pO(e):undefined;var i=n?n[0]:e.charAt(0);var o=n?NV(n,1).join(""):e.slice(1);return i[t]()+o}}const bO=kO;var wO=bO("toUpperCase");const AO=wO;var CO=MV((function(t,e,n){return t+(n?" ":"")+AO(e)}));const _O=CO;function vO(t,e,n,i){if(e){xO(t,e,i)}if(n){yO(t,n,i)}}function yO(t,e,n){if(e.attributes){for(const[i,o]of Object.entries(e.attributes)){t.setAttribute(i,o,n)}}if(e.styles){t.setStyle(e.styles,n)}if(e.classes){t.addClass(e.classes,n)}}function xO(t,e,n){if(e.attributes){for(const[i]of Object.entries(e.attributes)){t.removeAttribute(i,n)}}if(e.styles){for(const i of Object.keys(e.styles)){t.removeStyle(i,n)}}if(e.classes){t.removeClass(e.classes,n)}}function EO(t,e){const n=Sk(t);let i="attributes";for(i in e){if(i=="classes"){n[i]=Array.from(new Set([...t[i]||[],...e[i]]))}else{n[i]={...t[i],...e[i]}}}return n}function DO(t,e,n,i,o){const r=e.getAttribute(n);const s={};for(const t of["attributes","styles","classes"]){if(t!=i){if(r&&r[t]){s[t]=r[t]}continue}if(i=="classes"){const e=new Set(r&&r.classes||[]);o(e);if(e.size){s[t]=Array.from(e)}continue}const e=new Map(Object.entries(r&&r[t]||{}));o(e);if(e.size){s[t]=Object.fromEntries(e)}}if(Object.keys(s).length){if(e.is("documentSelection")){t.setSelectionAttribute(n,s)}else{t.setAttribute(n,s,e)}}else if(r){if(e.is("documentSelection")){t.removeSelectionAttribute(n)}else{t.removeAttribute(n,e)}}}function SO(t){return _O(t).replace(/ /g,"")}function TO(t){return`html${SO(t)}Attributes`}function BO({model:t}){return(e,n)=>n.writer.createElement(t,{htmlContent:e.getCustomProperty("$rawContent")})}function IO(t,{view:e,isInline:n}){const i=t.t;return(t,{writer:o})=>{const r=i("HTML object");const s=MO(e,t,o);const a=t.getAttribute(TO(e));o.addClass("html-object-embed__content",s);if(a){yO(o,a,s)}const c=o.createContainerElement(n?"span":"div",{class:"html-object-embed","data-html-object-embed-label":r},s);return IM(c,o,{label:r})}}function MO(t,e,n){return n.createRawElement(t,null,((t,n)=>{n.setContentOf(t,e.getAttribute("htmlContent"))}))}function LO({view:t,model:e,allowEmpty:n},i){return e=>{e.on(`element:${t}`,((t,e,r)=>{let s=i.processViewAttributes(e.viewItem,r);if(!s&&!r.consumable.test(e.viewItem,{name:true})){return}s=s||{};r.consumable.consume(e.viewItem,{name:true});if(!e.modelRange){e=Object.assign(e,r.convertChildren(e.viewItem,e.modelCursor))}if(n&&e.modelRange.isCollapsed&&Object.keys(s).length){const t=r.writer.createElement("htmlEmptyElement");if(!r.safeInsert(t,e.modelCursor)){return}const n=r.getSplitParts(t);e.modelRange=r.writer.createRange(e.modelRange.start,r.writer.createPositionAfter(n[n.length-1]));r.updateConversionResult(t,e);o(t,s,r);return}for(const t of e.modelRange.getItems()){o(t,s,r)}}),{priority:"low"})};function o(t,n,i){if(i.schema.checkAttribute(t,e)){const o=t.getAttribute(e);const r=EO(n,o||{});i.writer.setAttribute(e,r,t)}}}function NO({model:t,view:e},n){return(i,{writer:o,consumable:r})=>{if(!i.hasAttribute(t)){return null}const s=o.createContainerElement(e);const a=i.getAttribute(t);r.consume(i,`attribute:${t}`);yO(o,a,s);s.getFillerOffset=()=>null;return n?IM(s,o):s}}function zO({priority:t,view:e}){return(n,i)=>{if(!n){return}const{writer:o}=i;const r=o.createAttributeElement(e,null,{priority:t});yO(o,n,r);return r}}function PO({view:t},e){return n=>{n.on(`element:${t}`,((t,n,i)=>{if(!n.modelRange||n.modelRange.isCollapsed){return}const o=e.processViewAttributes(n.viewItem,i);if(!o){return}i.writer.setAttribute(TO(n.viewItem.name),o,n.modelRange)}),{priority:"low"})}}function RO({view:t,model:e}){return n=>{n.on(`attribute:${TO(t)}:${e}`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name)){return}const{attributeOldValue:i,attributeNewValue:o}=e;const r=n.writer;const s=n.mapper.toViewElement(e.item);vO(r,i,o,s)}))}}const VO={block:[{model:"codeBlock",view:"pre"},{model:"paragraph",view:"p"},{model:"blockQuote",view:"blockquote"},{model:"listItem",view:"li"},{model:"pageBreak",view:"div"},{model:"rawHtml",view:"div"},{model:"table",view:"table"},{model:"tableRow",view:"tr"},{model:"tableCell",view:"td"},{model:"tableCell",view:"th"},{model:"tableColumnGroup",view:"colgroup"},{model:"tableColumn",view:"col"},{model:"caption",view:"caption"},{model:"caption",view:"figcaption"},{model:"imageBlock",view:"img"},{model:"imageInline",view:"img"},{model:"htmlP",view:"p",modelSchema:{inheritAllFrom:"$block"}},{model:"htmlBlockquote",view:"blockquote",modelSchema:{inheritAllFrom:"$container"}},{model:"htmlTable",view:"table",modelSchema:{allowWhere:"$block",isBlock:true}},{model:"htmlTbody",view:"tbody",modelSchema:{allowIn:"htmlTable",isBlock:false}},{model:"htmlThead",view:"thead",modelSchema:{allowIn:"htmlTable",isBlock:false}},{model:"htmlTfoot",view:"tfoot",modelSchema:{allowIn:"htmlTable",isBlock:false}},{model:"htmlCaption",view:"caption",modelSchema:{allowIn:"htmlTable",allowChildren:"$text",isBlock:false}},{model:"htmlColgroup",view:"colgroup",modelSchema:{allowIn:"htmlTable",allowChildren:"col",isBlock:false}},{model:"htmlCol",view:"col",modelSchema:{allowIn:"htmlColgroup",isBlock:false}},{model:"htmlTr",view:"tr",modelSchema:{allowIn:["htmlTable","htmlThead","htmlTbody"],isLimit:true}},{model:"htmlTd",view:"td",modelSchema:{allowIn:"htmlTr",allowContentOf:"$container",isLimit:true,isBlock:false}},{model:"htmlTh",view:"th",modelSchema:{allowIn:"htmlTr",allowContentOf:"$container",isLimit:true,isBlock:false}},{model:"htmlFigure",view:"figure",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlFigcaption",view:"figcaption",modelSchema:{allowIn:"htmlFigure",allowChildren:"$text",isBlock:false}},{model:"htmlAddress",view:"address",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlAside",view:"aside",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlMain",view:"main",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlDetails",view:"details",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlSummary",view:"summary",modelSchema:{allowChildren:"$text",allowIn:"htmlDetails",isBlock:false}},{model:"htmlDiv",view:"div",paragraphLikeModel:"htmlDivParagraph",modelSchema:{inheritAllFrom:"$container"}},{model:"htmlFieldset",view:"fieldset",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlLegend",view:"legend",modelSchema:{allowIn:"htmlFieldset",allowChildren:"$text"}},{model:"htmlHeader",view:"header",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlFooter",view:"footer",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlForm",view:"form",modelSchema:{inheritAllFrom:"$container",isBlock:true}},{model:"htmlHgroup",view:"hgroup",modelSchema:{allowChildren:["htmlH1","htmlH2","htmlH3","htmlH4","htmlH5","htmlH6"],isBlock:false}},{model:"htmlH1",view:"h1",modelSchema:{inheritAllFrom:"$block"}},{model:"htmlH2",view:"h2",modelSchema:{inheritAllFrom:"$block"}},{model:"htmlH3",view:"h3",modelSchema:{inheritAllFrom:"$block"}},{model:"htmlH4",view:"h4",modelSchema:{inheritAllFrom:"$block"}},{model:"htmlH5",view:"h5",modelSchema:{inheritAllFrom:"$block"}},{model:"htmlH6",view:"h6",modelSchema:{inheritAllFrom:"$block"}},{model:"$htmlList",modelSchema:{allowWhere:"$container",allowChildren:["$htmlList","htmlLi"],isBlock:false}},{model:"htmlDir",view:"dir",modelSchema:{inheritAllFrom:"$htmlList"}},{model:"htmlMenu",view:"menu",modelSchema:{inheritAllFrom:"$htmlList"}},{model:"htmlUl",view:"ul",modelSchema:{inheritAllFrom:"$htmlList"}},{model:"htmlOl",view:"ol",modelSchema:{inheritAllFrom:"$htmlList"}},{model:"htmlLi",view:"li",modelSchema:{allowIn:"$htmlList",allowChildren:"$text",isBlock:false}},{model:"htmlPre",view:"pre",modelSchema:{inheritAllFrom:"$block"}},{model:"htmlArticle",view:"article",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlSection",view:"section",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlNav",view:"nav",modelSchema:{inheritAllFrom:"$container",isBlock:false}},{model:"htmlDivDl",view:"div",modelSchema:{allowChildren:["htmlDt","htmlDd"],allowIn:"htmlDl"}},{model:"htmlDl",view:"dl",modelSchema:{allowWhere:"$container",allowChildren:["htmlDt","htmlDd","htmlDivDl"],isBlock:false}},{model:"htmlDt",view:"dt",modelSchema:{allowChildren:"$block",isBlock:false}},{model:"htmlDd",view:"dd",modelSchema:{allowChildren:"$block",isBlock:false}},{model:"htmlCenter",view:"center",modelSchema:{inheritAllFrom:"$container",isBlock:false}}],inline:[{model:"htmlLiAttributes",view:"li",appliesToBlock:true,coupledAttribute:"listItemId"},{model:"htmlOlAttributes",view:"ol",appliesToBlock:true,coupledAttribute:"listItemId"},{model:"htmlUlAttributes",view:"ul",appliesToBlock:true,coupledAttribute:"listItemId"},{model:"htmlFigureAttributes",view:"figure",appliesToBlock:"table"},{model:"htmlTheadAttributes",view:"thead",appliesToBlock:"table"},{model:"htmlTbodyAttributes",view:"tbody",appliesToBlock:"table"},{model:"htmlFigureAttributes",view:"figure",appliesToBlock:"imageBlock"},{model:"htmlAcronym",view:"acronym",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlTt",view:"tt",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlFont",view:"font",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlTime",view:"time",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlVar",view:"var",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlBig",view:"big",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlSmall",view:"small",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlSamp",view:"samp",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlQ",view:"q",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlOutput",view:"output",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlKbd",view:"kbd",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlBdi",view:"bdi",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlBdo",view:"bdo",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlAbbr",view:"abbr",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlA",view:"a",priority:5,coupledAttribute:"linkHref"},{model:"htmlStrong",view:"strong",coupledAttribute:"bold",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlB",view:"b",coupledAttribute:"bold",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlI",view:"i",coupledAttribute:"italic",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlEm",view:"em",coupledAttribute:"italic",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlS",view:"s",coupledAttribute:"strikethrough",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlDel",view:"del",coupledAttribute:"strikethrough",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlIns",view:"ins",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlU",view:"u",coupledAttribute:"underline",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlSub",view:"sub",coupledAttribute:"subscript",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlSup",view:"sup",coupledAttribute:"superscript",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlCode",view:"code",coupledAttribute:"code",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlMark",view:"mark",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlSpan",view:"span",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlCite",view:"cite",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlLabel",view:"label",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlDfn",view:"dfn",attributeProperties:{copyOnEnter:true,isFormatting:true}},{model:"htmlObject",view:"object",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlIframe",view:"iframe",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlInput",view:"input",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlButton",view:"button",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlTextarea",view:"textarea",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlSelect",view:"select",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlVideo",view:"video",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlEmbed",view:"embed",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlOembed",view:"oembed",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlAudio",view:"audio",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlImg",view:"img",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlCanvas",view:"canvas",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlMeter",view:"meter",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlProgress",view:"progress",isObject:true,modelSchema:{inheritAllFrom:"$inlineObject"}},{model:"htmlScript",view:"script",modelSchema:{allowWhere:["$text","$block"],isInline:true}},{model:"htmlStyle",view:"style",modelSchema:{allowWhere:["$text","$block"],isInline:true}},{model:"htmlCustomElement",view:"$customElement",modelSchema:{allowWhere:["$text","$block"],allowAttributesOf:"$inlineObject",isInline:true}}]};var OO=bm((function(t,e,n,i){Zg(t,e,n,i)}));const FO=OO;class jO extends rh{constructor(){super(...arguments);this._definitions=[]}static get pluginName(){return"DataSchema"}init(){for(const t of VO.block){this.registerBlockElement(t)}for(const t of VO.inline){this.registerInlineElement(t)}}registerBlockElement(t){this._definitions.push({...t,isBlock:true})}registerInlineElement(t){this._definitions.push({...t,isInline:true})}extendBlockElement(t){this._extendDefinition({...t,isBlock:true})}extendInlineElement(t){this._extendDefinition({...t,isInline:true})}getDefinitionsForView(t,e=false){const n=new Set;for(const i of this._getMatchingViewDefinitions(t)){if(e){for(const t of this._getReferences(i.model)){n.add(t)}}n.add(i)}return n}getDefinitionsForModel(t){return this._definitions.filter((e=>e.model==t))}_getMatchingViewDefinitions(t){return this._definitions.filter((e=>e.view&&HO(t,e.view)))}*_getReferences(t){const e=["inheritAllFrom","inheritTypesFrom","allowWhere","allowContentOf","allowAttributesOf"];const n=this._definitions.filter((e=>e.model==t));for(const{modelSchema:i}of n){if(!i){continue}for(const n of e){for(const e of rl(i[n]||[])){const n=this._definitions.filter((t=>t.model==e));for(const i of n){if(e!==t){yield*this._getReferences(i.model);yield i}}}}}}_extendDefinition(t){const e=Array.from(this._definitions.entries()).filter((([,e])=>e.model==t.model));if(e.length==0){this._definitions.push(t);return}for(const[n,i]of e){this._definitions[n]=FO({},i,t,((t,e)=>Array.isArray(t)?t.concat(e):undefined))}}}function HO(t,e){if(typeof t==="string"){return t===e}if(t instanceof RegExp){return t.test(e)}return false}function UO(t,e,n,i){var o=t.length,r=n+(i?1:-1);while(i?r--:++r-1){if(a!==t){tF.call(a,c,1)}tF.call(t,c,1)}}return t}const nF=eF;function iF(t,e){return t&&t.length&&e&&e.length?nF(t,e):t}const oF=iF;var rF=mm(oF);const sF=rF;var aF=n(1710);var cF={injectType:"singletonStyleTag",attributes:{"data-cke":true}};cF.insert="head";cF.singleton=true;var lF=Nl()(aF.Z,cF);const dF=aF.Z.locals||{};class uF extends rh{constructor(t){super(t);this._dataSchema=t.plugins.get("DataSchema");this._allowedAttributes=new zh;this._disallowedAttributes=new zh;this._allowedElements=new Set;this._disallowedElements=new Set;this._dataInitialized=false;this._coupledAttributes=null;this._registerElementsAfterInit();this._registerElementHandlers();this._registerCoupledAttributesPostFixer();this._registerAssociatedHtmlAttributesPostFixer()}static get pluginName(){return"DataFilter"}static get requires(){return[jO,kL]}loadAllowedConfig(t){for(const e of t){const t=e.name||/[\s\S]+/;const n=bF(e);this.allowElement(t);n.forEach((t=>this.allowAttributes(t)))}}loadDisallowedConfig(t){for(const e of t){const t=e.name||/[\s\S]+/;const n=bF(e);if(n.length==0){this.disallowElement(t)}else{n.forEach((t=>this.disallowAttributes(t)))}}}loadAllowedEmptyElementsConfig(t){for(const e of t){this.allowEmptyElement(e)}}allowElement(t){for(const e of this._dataSchema.getDefinitionsForView(t,true)){this._addAllowedElement(e);this._coupledAttributes=null}}disallowElement(t){for(const e of this._dataSchema.getDefinitionsForView(t,false)){this._disallowedElements.add(e.view)}}allowEmptyElement(t){for(const e of this._dataSchema.getDefinitionsForView(t,true)){if(e.isInline){this._dataSchema.extendInlineElement({...e,allowEmpty:true})}}}allowAttributes(t){this._allowedAttributes.add(t)}disallowAttributes(t){this._disallowedAttributes.add(t)}processViewAttributes(t,e){hF(t,e,this._disallowedAttributes);return hF(t,e,this._allowedAttributes)}_addAllowedElement(t){if(this._allowedElements.has(t)){return}this._allowedElements.add(t);if("appliesToBlock"in t&&typeof t.appliesToBlock=="string"){for(const e of this._dataSchema.getDefinitionsForModel(t.appliesToBlock)){if(e.isBlock){this._addAllowedElement(e)}}}if(this._dataInitialized){this.editor.data.once("set",(()=>{this._fireRegisterEvent(t)}),{priority:I.highest+1})}}_registerElementsAfterInit(){this.editor.data.on("init",(()=>{this._dataInitialized=true;for(const t of this._allowedElements){this._fireRegisterEvent(t)}}),{priority:I.highest+1})}_registerElementHandlers(){this.on("register",((t,e)=>{const n=this.editor.model.schema;if(e.isObject&&!n.isRegistered(e.model)){this._registerObjectElement(e)}else if(e.isBlock){this._registerBlockElement(e)}else if(e.isInline){this._registerInlineElement(e)}else{throw new N("data-filter-invalid-definition",null,e)}t.stop()}),{priority:"lowest"})}_registerCoupledAttributesPostFixer(){const t=this.editor.model;const e=t.document.selection;t.document.registerPostFixer((e=>{const n=t.document.differ.getChanges();let i=false;const o=this._getCoupledAttributesMap();for(const t of n){if(t.type!="attribute"||t.attributeNewValue!==null){continue}const n=o.get(t.attributeKey);if(!n){continue}for(const{item:o}of t.range.getWalker({shallow:true})){for(const t of n){if(o.hasAttribute(t)){e.removeAttribute(t,o);i=true}}}}return i}));this.listenTo(e,"change:attribute",((n,{attributeKeys:i})=>{const o=new Set;const r=this._getCoupledAttributesMap();for(const t of i){if(e.hasAttribute(t)){continue}const n=r.get(t);if(!n){continue}for(const t of n){if(e.hasAttribute(t)){o.add(t)}}}if(o.size==0){return}t.change((t=>{for(const e of o){t.removeSelectionAttribute(e)}}))}))}_registerAssociatedHtmlAttributesPostFixer(){const t=this.editor.model;t.document.registerPostFixer((e=>{const n=t.document.differ.getChanges();let i=false;for(const o of n){if(o.type!=="insert"||o.name==="$text"){continue}for(const n of o.attributes.keys()){if(!n.startsWith("html")||!n.endsWith("Attributes")){continue}if(!t.schema.checkAttribute(o.name,n)){e.removeAttribute(n,o.position.nodeAfter);i=true}}}return i}))}_getCoupledAttributesMap(){if(this._coupledAttributes){return this._coupledAttributes}this._coupledAttributes=new Map;for(const t of this._allowedElements){if(t.coupledAttribute&&t.model){const e=this._coupledAttributes.get(t.coupledAttribute);if(e){e.push(t.model)}else{this._coupledAttributes.set(t.coupledAttribute,[t.model])}}}return this._coupledAttributes}_fireRegisterEvent(t){if(t.view&&this._disallowedElements.has(t.view)){return}this.fire(t.view?`register:${t.view}`:"register",t)}_registerObjectElement(t){const e=this.editor;const n=e.model.schema;const i=e.conversion;const{view:o,model:r}=t;n.register(r,t.modelSchema);if(!o){return}n.extend(t.model,{allowAttributes:[TO(o),"htmlContent"]});e.data.registerRawContentMatcher({name:o});i.for("upcast").elementToElement({view:o,model:BO(t),converterPriority:I.low+2});i.for("upcast").add(PO(t,this));i.for("editingDowncast").elementToStructure({model:{name:r,attributes:[TO(o)]},view:IO(e,t)});i.for("dataDowncast").elementToElement({model:r,view:(t,{writer:e})=>MO(o,t,e)});i.for("dataDowncast").add(RO(t))}_registerBlockElement(t){const e=this.editor;const n=e.model.schema;const i=e.conversion;const{view:o,model:r}=t;if(!n.isRegistered(t.model)){n.register(t.model,t.modelSchema);if(!o){return}i.for("upcast").elementToElement({model:r,view:o,converterPriority:I.low+2});i.for("downcast").elementToElement({model:r,view:o})}if(!o){return}n.extend(t.model,{allowAttributes:TO(o)});i.for("upcast").add(PO(t,this));i.for("downcast").add(RO(t))}_registerInlineElement(t){const e=this.editor;const n=e.model.schema;const i=e.conversion;const o=t.model;if(t.appliesToBlock){return}n.extend("$text",{allowAttributes:o});if(t.attributeProperties){n.setAttributeProperties(o,t.attributeProperties)}i.for("upcast").add(LO(t,this));i.for("downcast").attributeToElement({model:o,view:zO(t)});if(!t.allowEmpty){return}n.setAttributeProperties(o,{copyFromObject:false});if(!n.isRegistered("htmlEmptyElement")){n.register("htmlEmptyElement",{inheritAllFrom:"$inlineObject"})}e.data.htmlProcessor.domConverter.registerInlineObjectMatcher((e=>{if(e.name==t.view&&e.isEmpty&&Array.from(e.getAttributeKeys()).length){return{name:true}}return null}));i.for("editingDowncast").elementToElement({model:"htmlEmptyElement",view:NO(t,true)});i.for("dataDowncast").elementToElement({model:"htmlEmptyElement",view:NO(t)})}}function hF(t,e,n){const i=gF(t,e,n);const{attributes:o,styles:r,classes:s}=fF(i);const a={};if(o.size){for(const t of o){if(!yc(t)){o.delete(t)}}}if(o.size){a.attributes=pF(o,(e=>t.getAttribute(e)))}if(r.size){a.styles=pF(r,(e=>t.getStyle(e)))}if(s.size){a.classes=Array.from(s)}if(!Object.keys(a).length){return null}return a}function gF(t,{consumable:e},n){const i=n.matchAll(t)||[];const o=[];for(const n of i){mF(e,t,n);delete n.match.name;e.consume(t,n.match);o.push(n)}return o}function mF(t,e,n){for(const i of["attributes","classes","styles"]){const o=n.match[i];if(!o){continue}for(const n of Array.from(o)){if(!t.test(e,{[i]:[n]})){sF(o,n)}}}}function fF(t){const e={attributes:new Set,classes:new Set,styles:new Set};for(const n of t){for(const t in e){const i=n.match[t]||[];i.forEach((n=>e[t].add(n)))}}return e}function pF(t,e){const n={};for(const i of t){const t=e(i);if(t!==undefined){n[i]=e(i)}}return n}function kF(t,e){const{name:n}=t;const i=t[e];if(fe(i)){return Object.entries(i).map((([t,i])=>({name:n,[e]:{[t]:i}})))}if(Array.isArray(i)){return i.map((t=>({name:n,[e]:[t]})))}return[t]}function bF(t){const{name:e,attributes:n,classes:i,styles:o}=t;const r=[];if(n){r.push(...kF({name:e,attributes:n},"attributes"))}if(i){r.push(...kF({name:e,classes:i},"classes"))}if(o){r.push(...kF({name:e,styles:o},"styles"))}return r}class wF extends rh{static get requires(){return[uF]}static get pluginName(){return"CodeBlockElementSupport"}init(){if(!this.editor.plugins.has("CodeBlockEditing")){return}const t=this.editor.plugins.get(uF);t.on("register:pre",((e,n)=>{if(n.model!=="codeBlock"){return}const i=this.editor;const o=i.model.schema;const r=i.conversion;o.extend("codeBlock",{allowAttributes:["htmlPreAttributes","htmlContentAttributes"]});r.for("upcast").add(AF(t));r.for("downcast").add(CF());e.stop()}))}}function AF(t){return e=>{e.on("element:code",((e,n,i)=>{const o=n.viewItem;const r=o.parent;if(!r||!r.is("element","pre")){return}s(r,"htmlPreAttributes");s(o,"htmlContentAttributes");function s(e,o){const r=t.processViewAttributes(e,i);if(r){i.writer.setAttribute(o,r,n.modelRange)}}}),{priority:"low"})}}function CF(){return t=>{t.on("attribute:htmlPreAttributes:codeBlock",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name)){return}const{attributeOldValue:i,attributeNewValue:o}=e;const r=n.mapper.toViewElement(e.item);const s=r.parent;vO(n.writer,i,o,s)}));t.on("attribute:htmlContentAttributes:codeBlock",((t,e,n)=>{if(!n.consumable.consume(e.item,t.name)){return}const{attributeOldValue:i,attributeNewValue:o}=e;const r=n.mapper.toViewElement(e.item);vO(n.writer,i,o,r)}))}}class _F extends rh{static get requires(){return[uF]}static get pluginName(){return"DualContentModelElementSupport"}init(){const t=this.editor.plugins.get(uF);t.on("register",((t,e)=>{const n=e;const i=this.editor;const o=i.model.schema;const r=i.conversion;if(!n.paragraphLikeModel){return}if(o.isRegistered(n.model)||o.isRegistered(n.paragraphLikeModel)){return}const s={model:n.paragraphLikeModel,view:n.view};o.register(n.model,n.modelSchema);o.register(s.model,{inheritAllFrom:"$block"});r.for("upcast").elementToElement({view:n.view,model:(t,{writer:e})=>{if(this._hasBlockContent(t)){return e.createElement(n.model)}return e.createElement(s.model)},converterPriority:I.low+.5});r.for("downcast").elementToElement({view:n.view,model:n.model});this._addAttributeConversion(n);r.for("downcast").elementToElement({view:s.view,model:s.model});this._addAttributeConversion(s);t.stop()}))}_hasBlockContent(t){const e=this.editor.editing.view;const n=e.domConverter.blockElements;for(const i of e.createRangeIn(t).getItems()){if(i.is("element")&&n.includes(i.name)){return true}}return false}_addAttributeConversion(t){const e=this.editor;const n=e.conversion;const i=e.plugins.get(uF);e.model.schema.extend(t.model,{allowAttributes:TO(t.view)});n.for("upcast").add(PO(t,i));n.for("downcast").add(RO(t))}}class vF extends rh{static get requires(){return[jO,aI]}static get pluginName(){return"HeadingElementSupport"}init(){const t=this.editor;if(!t.plugins.has("HeadingEditing")){return}const e=t.config.get("heading.options");this.registerHeadingElements(t,e)}registerHeadingElements(t,e){const n=t.plugins.get(jO);const i=[];for(const t of e){if("model"in t&&"view"in t){n.registerBlockElement({view:t.view,model:t.model});i.push(t.model)}}n.extendBlockElement({model:"htmlHgroup",modelSchema:{allowChildren:i}})}}function yF(t,e,n){const i=t.createRangeOn(e);for(const{item:t}of i.getWalker()){if(t.is("element",n)){return t}}}class xF extends rh{static get requires(){return[uF]}static get pluginName(){return"ImageElementSupport"}init(){const t=this.editor;if(!t.plugins.has("ImageInlineEditing")&&!t.plugins.has("ImageBlockEditing")){return}const e=t.model.schema;const n=t.conversion;const i=t.plugins.get(uF);i.on("register:figure",(()=>{n.for("upcast").add(SF(i))}));i.on("register:img",((o,r)=>{if(r.model!=="imageBlock"&&r.model!=="imageInline"){return}if(e.isRegistered("imageBlock")){e.extend("imageBlock",{allowAttributes:["htmlImgAttributes","htmlFigureAttributes","htmlLinkAttributes"]})}if(e.isRegistered("imageInline")){e.extend("imageInline",{allowAttributes:["htmlA","htmlImgAttributes"]})}n.for("upcast").add(EF(i));n.for("downcast").add(TF());if(t.plugins.has("LinkImage")){n.for("upcast").add(DF(i,t))}o.stop()}))}}function EF(t){return e=>{e.on("element:img",((e,n,i)=>{if(!n.modelRange){return}const o=n.viewItem;const r=t.processViewAttributes(o,i);if(r){i.writer.setAttribute("htmlImgAttributes",r,n.modelRange)}}),{priority:"low"})}}function DF(t,e){const n=e.plugins.get("ImageUtils");return e=>{e.on("element:a",((e,i,o)=>{const r=i.viewItem;const s=n.findViewImgElement(r);if(!s){return}const a=i.modelCursor.parent;if(!a.is("element","imageBlock")){return}const c=t.processViewAttributes(r,o);if(c){o.writer.setAttribute("htmlLinkAttributes",c,a)}}),{priority:"low"})}}function SF(t){return e=>{e.on("element:figure",((e,n,i)=>{const o=n.viewItem;if(!n.modelRange||!o.hasClass("image")){return}const r=t.processViewAttributes(o,i);if(r){i.writer.setAttribute("htmlFigureAttributes",r,n.modelRange)}}),{priority:"low"})}}function TF(){return t=>{e("htmlImgAttributes");n("img","htmlImgAttributes");n("figure","htmlFigureAttributes");n("a","htmlLinkAttributes");function e(e){t.on(`attribute:${e}:imageInline`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name)){return}const{attributeOldValue:i,attributeNewValue:o}=e;const r=n.mapper.toViewElement(e.item);vO(n.writer,i,o,r)}),{priority:"low"})}function n(e,n){t.on(`attribute:${n}:imageBlock`,((t,n,i)=>{if(!i.consumable.test(n.item,t.name)){return}const{attributeOldValue:o,attributeNewValue:r}=n;const s=i.mapper.toViewElement(n.item);const a=yF(i.writer,s,e);if(a){vO(i.writer,o,r,a);i.consumable.consume(n.item,t.name)}}),{priority:"low"});if(e==="a"){t.on("attribute:linkHref:imageBlock",((t,e,n)=>{if(!n.consumable.consume(e.item,"attribute:htmlLinkAttributes:imageBlock")){return}const i=n.mapper.toViewElement(e.item);const o=yF(n.writer,i,"a");yO(n.writer,e.item.getAttribute("htmlLinkAttributes"),o)}),{priority:"low"})}}}}class BF extends rh{static get requires(){return[uF]}static get pluginName(){return"MediaEmbedElementSupport"}init(){const t=this.editor;if(!t.plugins.has("MediaEmbed")||t.config.get("mediaEmbed.previewsInData")){return}const e=t.model.schema;const n=t.conversion;const i=this.editor.plugins.get(uF);const o=this.editor.plugins.get(jO);const r=t.config.get("mediaEmbed.elementName");o.registerBlockElement({model:"media",view:r});i.on("register:figure",(()=>{n.for("upcast").add(MF(i))}));i.on(`register:${r}`,((t,o)=>{if(o.model!=="media"){return}e.extend("media",{allowAttributes:[TO(r),"htmlFigureAttributes"]});n.for("upcast").add(IF(i,r));n.for("dataDowncast").add(LF(r));t.stop()}))}}function IF(t,e){const n=(n,i,o)=>{const r=i.viewItem;s(r,TO(e));function s(e,n){const r=t.processViewAttributes(e,o);if(r){o.writer.setAttribute(n,r,i.modelRange)}}};return t=>{t.on(`element:${e}`,n,{priority:"low"})}}function MF(t){return e=>{e.on("element:figure",((e,n,i)=>{const o=n.viewItem;if(!n.modelRange||!o.hasClass("media")){return}const r=t.processViewAttributes(o,i);if(r){i.writer.setAttribute("htmlFigureAttributes",r,n.modelRange)}}),{priority:"low"})}}function LF(t){return e=>{n(t,TO(t));n("figure","htmlFigureAttributes");function n(t,n){e.on(`attribute:${n}:media`,((e,n,i)=>{if(!i.consumable.consume(n.item,e.name)){return}const{attributeOldValue:o,attributeNewValue:r}=n;const s=i.mapper.toViewElement(n.item);const a=yF(i.writer,s,t);vO(i.writer,o,r,a)}))}}}class NF extends rh{static get requires(){return[uF]}static get pluginName(){return"ScriptElementSupport"}init(){const t=this.editor.plugins.get(uF);t.on("register:script",((e,n)=>{const i=this.editor;const o=i.model.schema;const r=i.conversion;o.register("htmlScript",n.modelSchema);o.extend("htmlScript",{allowAttributes:["htmlScriptAttributes","htmlContent"],isContent:true});i.data.registerRawContentMatcher({name:"script"});r.for("upcast").elementToElement({view:"script",model:BO(n)});r.for("upcast").add(PO(n,t));r.for("downcast").elementToElement({model:"htmlScript",view:(t,{writer:e})=>MO("script",t,e)});r.for("downcast").add(RO(n));e.stop()}))}}class zF extends rh{static get requires(){return[uF]}static get pluginName(){return"TableElementSupport"}init(){const t=this.editor;if(!t.plugins.has("TableEditing")){return}const e=t.model.schema;const n=t.conversion;const i=t.plugins.get(uF);const o=t.plugins.get("TableUtils");i.on("register:figure",(()=>{n.for("upcast").add(VF(i))}));i.on("register:table",((r,s)=>{if(s.model!=="table"){return}e.extend("table",{allowAttributes:["htmlTableAttributes","htmlFigureAttributes","htmlTheadAttributes","htmlTbodyAttributes"]});n.for("upcast").add(RF(i));n.for("downcast").add(OF());t.model.document.registerPostFixer(PF(t.model,o));r.stop()}))}}function PF(t,e){return n=>{const i=t.document.differ.getChanges();let o=false;for(const t of i){if(t.type!="attribute"||t.attributeKey!="headingRows"){continue}const i=t.range.start.nodeAfter;const r=i.getAttribute("htmlTheadAttributes");const s=i.getAttribute("htmlTbodyAttributes");if(r&&!t.attributeNewValue){n.removeAttribute("htmlTheadAttributes",i);o=true}else if(s&&t.attributeNewValue==e.getRows(i)){n.removeAttribute("htmlTbodyAttributes",i);o=true}}return o}}function RF(t){return e=>{e.on("element:table",((e,n,i)=>{if(!n.modelRange){return}const o=n.viewItem;r(o,"htmlTableAttributes");for(const t of o.getChildren()){if(t.is("element","thead")){r(t,"htmlTheadAttributes")}if(t.is("element","tbody")){r(t,"htmlTbodyAttributes")}}function r(e,o){const r=t.processViewAttributes(e,i);if(r){i.writer.setAttribute(o,r,n.modelRange)}}}),{priority:"low"})}}function VF(t){return e=>{e.on("element:figure",((e,n,i)=>{const o=n.viewItem;if(!n.modelRange||!o.hasClass("table")){return}const r=t.processViewAttributes(o,i);if(r){i.writer.setAttribute("htmlFigureAttributes",r,n.modelRange)}}),{priority:"low"})}}function OF(){return t=>{e("table","htmlTableAttributes");e("figure","htmlFigureAttributes");e("thead","htmlTheadAttributes");e("tbody","htmlTbodyAttributes");function e(e,n){t.on(`attribute:${n}:table`,((t,n,i)=>{if(!i.consumable.test(n.item,t.name)){return}const o=i.mapper.toViewElement(n.item);const r=yF(i.writer,o,e);if(!r){return}i.consumable.consume(n.item,t.name);vO(i.writer,n.attributeOldValue,n.attributeNewValue,r)}))}}}class FF extends rh{static get requires(){return[uF]}static get pluginName(){return"StyleElementSupport"}init(){const t=this.editor.plugins.get(uF);t.on("register:style",((e,n)=>{const i=this.editor;const o=i.model.schema;const r=i.conversion;o.register("htmlStyle",n.modelSchema);o.extend("htmlStyle",{allowAttributes:["htmlStyleAttributes","htmlContent"],isContent:true});i.data.registerRawContentMatcher({name:"style"});r.for("upcast").elementToElement({view:"style",model:BO(n)});r.for("upcast").add(PO(n,t));r.for("downcast").elementToElement({model:"htmlStyle",view:(t,{writer:e})=>MO("style",t,e)});r.for("downcast").add(RO(n));e.stop()}))}}class jF extends rh{static get requires(){return[uF]}static get pluginName(){return"DocumentListElementSupport"}init(){const t=this.editor;if(!t.plugins.has("DocumentListEditing")){return}const e=t.model.schema;const n=t.conversion;const i=t.plugins.get(uF);const o=t.plugins.get("DocumentListEditing");const r=["ul","ol","li"];o.registerDowncastStrategy({scope:"item",attributeName:"htmlLiAttributes",setAttributeOnDowncast:yO});o.registerDowncastStrategy({scope:"list",attributeName:"htmlUlAttributes",setAttributeOnDowncast:yO});o.registerDowncastStrategy({scope:"list",attributeName:"htmlOlAttributes",setAttributeOnDowncast:yO});i.on("register",((t,o)=>{if(!r.includes(o.view)){return}t.stop();if(e.checkAttribute("$block","htmlLiAttributes")){return}const s=r.map((t=>TO(t)));e.extend("$listItem",{allowAttributes:s});n.for("upcast").add((t=>{t.on("element:ul",HF("htmlUlAttributes",i),{priority:"low"});t.on("element:ol",HF("htmlOlAttributes",i),{priority:"low"});t.on("element:li",HF("htmlLiAttributes",i),{priority:"low"})}))}));o.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i,previousNodeInList:o}of e){if(!o){continue}if(o.getAttribute("listType")==i.getAttribute("listType")){const e=UF(o.getAttribute("listType"));const r=o.getAttribute(e);if(!PA(i.getAttribute(e),r)&&n.model.schema.checkAttribute(i,e)){n.setAttribute(e,r,i);t.return=true}}if(o.getAttribute("listItemId")==i.getAttribute("listItemId")){const e=o.getAttribute("htmlLiAttributes");if(!PA(i.getAttribute("htmlLiAttributes"),e)&&n.model.schema.checkAttribute(i,"htmlLiAttributes")){n.setAttribute("htmlLiAttributes",e,i);t.return=true}}}}));o.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i}of e){const e=i.getAttribute("listType");if(e!=="numbered"&&i.getAttribute("htmlOlAttributes")){n.removeAttribute("htmlOlAttributes",i);t.return=true}if(e==="numbered"&&i.getAttribute("htmlUlAttributes")){n.removeAttribute("htmlUlAttributes",i);t.return=true}}}))}afterInit(){const t=this.editor;if(!t.commands.get("indentList")){return}const e=t.commands.get("indentList");this.listenTo(e,"afterExecute",((e,n)=>{t.model.change((e=>{for(const i of n){const n=UF(i.getAttribute("listType"));if(!t.model.schema.checkAttribute(i,n)){continue}e.setAttribute(n,{},i)}}))}))}}function HF(t,e){return(n,i,o)=>{const r=i.viewItem;if(!i.modelRange){Object.assign(i,o.convertChildren(i.viewItem,i.modelCursor))}const s=e.processViewAttributes(r,o);for(const e of i.modelRange.getItems({shallow:true})){if(!e.hasAttribute("listItemId")){continue}if(e.hasAttribute(t)){continue}if(o.writer.model.schema.checkAttribute(e,t)){o.writer.setAttribute(t,s||{},e)}}}}function UF(t){return t==="numbered"?"htmlOlAttributes":"htmlUlAttributes"}class qF extends rh{static get requires(){return[uF,jO]}static get pluginName(){return"CustomElementSupport"}init(){const t=this.editor.plugins.get(uF);const e=this.editor.plugins.get(jO);t.on("register:$customElement",((n,i)=>{n.stop();const o=this.editor;const r=o.model.schema;const s=o.conversion;const a=o.editing.view.domConverter.unsafeElements;const c=o.data.htmlProcessor.domConverter.preElements;r.register(i.model,i.modelSchema);r.extend(i.model,{allowAttributes:["htmlElementName","htmlCustomElementAttributes","htmlContent"],isContent:true});o.data.htmlProcessor.domConverter.registerRawContentMatcher({name:"template"});s.for("upcast").elementToElement({view:/.*/,model:(n,r)=>{if(n.name=="$comment"){return null}if(!GF(n.name)){return null}if(e.getDefinitionsForView(n.name).size){return null}if(!a.includes(n.name)){a.push(n.name)}if(!c.includes(n.name)){c.push(n.name)}const s=r.writer.createElement(i.model,{htmlElementName:n.name});const l=t.processViewAttributes(n,r);if(l){r.writer.setAttribute("htmlCustomElementAttributes",l,s)}let d;if(n.is("element","template")&&n.getCustomProperty("$rawContent")){d=n.getCustomProperty("$rawContent")}else{const t=new a_(n.document);const e=t.createDocumentFragment(n);const i=o.data.htmlProcessor.domConverter.viewToDom(e);const r=i.firstChild;while(r.firstChild){i.appendChild(r.firstChild)}r.remove();d=o.data.htmlProcessor.htmlWriter.getHtml(i)}r.writer.setAttribute("htmlContent",d,s);for(const{item:t}of o.editing.view.createRangeIn(n)){r.consumable.consume(t,{name:true})}return s},converterPriority:"low"});s.for("editingDowncast").elementToElement({model:{name:i.model,attributes:["htmlElementName","htmlCustomElementAttributes","htmlContent"]},view:(t,{writer:e})=>{const n=t.getAttribute("htmlElementName");const i=e.createRawElement(n);if(t.hasAttribute("htmlCustomElementAttributes")){yO(e,t.getAttribute("htmlCustomElementAttributes"),i)}return i}});s.for("dataDowncast").elementToElement({model:{name:i.model,attributes:["htmlElementName","htmlCustomElementAttributes","htmlContent"]},view:(t,{writer:e})=>{const n=t.getAttribute("htmlElementName");const i=t.getAttribute("htmlContent");const o=e.createRawElement(n,null,((t,e)=>{e.setContentOf(t,i)}));if(t.hasAttribute("htmlCustomElementAttributes")){yO(e,t.getAttribute("htmlCustomElementAttributes"),o)}return o}})}))}}function GF(t){try{document.createElement(t)}catch(t){return false}return true}class $F extends rh{static get pluginName(){return"GeneralHtmlSupport"}static get requires(){return[uF,wF,_F,vF,xF,BF,NF,zF,FF,jF,qF]}init(){const t=this.editor;const e=t.plugins.get(uF);e.loadAllowedEmptyElementsConfig(t.config.get("htmlSupport.allowEmpty")||[]);e.loadAllowedConfig(t.config.get("htmlSupport.allow")||[]);e.loadDisallowedConfig(t.config.get("htmlSupport.disallow")||[])}getGhsAttributeNameForElement(t){const e=this.editor.plugins.get("DataSchema");const n=Array.from(e.getDefinitionsForView(t,false));const i=n.find((t=>t.isInline&&!n[0].isObject));if(i){return i.model}return TO(t)}addModelHtmlClass(t,e,n){const i=this.editor.model;const o=this.getGhsAttributeNameForElement(t);i.change((t=>{for(const r of WF(i,n,o)){DO(t,r,o,"classes",(t=>{for(const n of rl(e)){t.add(n)}}))}}))}removeModelHtmlClass(t,e,n){const i=this.editor.model;const o=this.getGhsAttributeNameForElement(t);i.change((t=>{for(const r of WF(i,n,o)){DO(t,r,o,"classes",(t=>{for(const n of rl(e)){t.delete(n)}}))}}))}setModelHtmlAttributes(t,e,n){const i=this.editor.model;const o=this.getGhsAttributeNameForElement(t);i.change((t=>{for(const r of WF(i,n,o)){DO(t,r,o,"attributes",(t=>{for(const[n,i]of Object.entries(e)){t.set(n,i)}}))}}))}removeModelHtmlAttributes(t,e,n){const i=this.editor.model;const o=this.getGhsAttributeNameForElement(t);i.change((t=>{for(const r of WF(i,n,o)){DO(t,r,o,"attributes",(t=>{for(const n of rl(e)){t.delete(n)}}))}}))}setModelHtmlStyles(t,e,n){const i=this.editor.model;const o=this.getGhsAttributeNameForElement(t);i.change((t=>{for(const r of WF(i,n,o)){DO(t,r,o,"styles",(t=>{for(const[n,i]of Object.entries(e)){t.set(n,i)}}))}}))}removeModelHtmlStyles(t,e,n){const i=this.editor.model;const o=this.getGhsAttributeNameForElement(t);i.change((t=>{for(const r of WF(i,n,o)){DO(t,r,o,"styles",(t=>{for(const n of rl(e)){t.delete(n)}}))}}))}}function*WF(t,e,n){if(!e){return}if(!(Symbol.iterator in e)&&e.is("documentSelection")&&e.isCollapsed){if(t.schema.checkAttributeInSelection(e,n)){yield e}}else{for(const i of ZF(t,e,n)){yield*i.getItems({shallow:true})}}}function ZF(t,e,n){if(!(Symbol.iterator in e)&&(e.is("node")||e.is("$text")||e.is("$textProxy"))){if(t.schema.checkAttribute(e,n)){return[t.createRangeOn(e)]}else{return[]}}else{return t.schema.getValidRanges(t.createSelection(e).getRanges(),n)}}class KF extends rh{static get pluginName(){return"HtmlComment"}init(){const t=this.editor;const e=new Map;t.data.processor.skipComments=false;t.model.schema.addAttributeCheck(((t,e)=>{if(t.endsWith("$root")&&e.startsWith("$comment")){return true}}));t.conversion.for("upcast").elementToMarker({view:"$comment",model:t=>{const n=T();const i=`$comment:${n}`;const o=t.getCustomProperty("$rawContent");e.set(i,o);return i}});t.conversion.for("dataDowncast").markerToElement({model:"$comment",view:(t,{writer:e})=>{let n=undefined;for(const e of this.editor.model.document.getRootNames()){n=this.editor.model.document.getRoot(e);if(n.hasAttribute(t.markerName)){break}}const i=t.markerName;const o=n.getAttribute(i);const r=e.createUIElement("$comment");e.setCustomProperty("$rawContent",o,r);return r}});t.model.document.registerPostFixer((n=>{let i=false;const o=t.model.document.differ.getChangedMarkers().filter((t=>t.name.startsWith("$comment:")));for(const t of o){const{oldRange:o,newRange:r}=t.data;if(o&&r&&o.root==r.root){continue}if(o){const e=o.root;if(e.hasAttribute(t.name)){n.removeAttribute(t.name,e);i=true}}if(r){const o=r.root;if(o.rootName=="$graveyard"){n.removeMarker(t.name);i=true}else if(!o.hasAttribute(t.name)){n.setAttribute(t.name,e.get(t.name)||"",o);i=true}}}return i}));t.data.on("set",(()=>{for(const e of t.model.markers.getMarkersGroup("$comment")){this.removeHtmlComment(e.name)}}),{priority:"high"});t.model.on("deleteContent",((e,[n])=>{for(const e of n.getRanges()){const n=t.model.schema.getLimitElement(e);const i=t.model.createPositionAt(n,0);const o=t.model.createPositionAt(n,"end");let r;if(i.isTouching(e.start)&&o.isTouching(e.end)){r=this.getHtmlCommentsInRange(t.model.createRange(i,o))}else{r=this.getHtmlCommentsInRange(e,{skipBoundaries:true})}for(const t of r){this.removeHtmlComment(t)}}}),{priority:"high"})}createHtmlComment(t,e){const n=T();const i=this.editor;const o=i.model;const r=o.document.getRoot(t.root.rootName);const s=`$comment:${n}`;return o.change((n=>{const i=n.createRange(t);n.addMarker(s,{usingOperation:true,affectsData:true,range:i});n.setAttribute(s,e,r);return s}))}removeHtmlComment(t){const e=this.editor;const n=e.model.markers.get(t);if(!n){return false}e.model.change((t=>{t.removeMarker(n)}));return true}getHtmlCommentData(t){const e=this.editor;const n=e.model.markers.get(t);if(!n){return null}let i="";for(const e of this.editor.model.document.getRoots()){if(e.hasAttribute(t)){i=e.getAttribute(t);break}}return{content:i,position:n.getStart()}}getHtmlCommentsInRange(t,{skipBoundaries:e=false}={}){const n=!e;return Array.from(this.editor.model.markers.getMarkersGroup("$comment")).filter((e=>i(e,t))).map((t=>t.name));function i(t,e){const i=t.getRange().start;return(i.isAfter(e.start)||n&&i.isEqual(e.start))&&(i.isBefore(e.end)||n&&i.isEqual(e.end))}}}class YF extends(null&&HtmlDataProcessor){toView(t){if(!t.match(/<(?:html|body|head|meta)(?:\s[^>]*)?>/i)){return super.toView(t)}let e="";let n="";t=t.replace(/]*>/i,(t=>{e=t;return""}));t=t.replace(/<\?xml\s[^?]*\?>/i,(t=>{n=t;return""}));const i=this._toDom(t);const o=this.domConverter.domToView(i,{skipComments:this.skipComments});const r=new UpcastWriter(o.document);r.setCustomProperty("$fullPageDocument",i.ownerDocument.documentElement.outerHTML,o);if(e){r.setCustomProperty("$fullPageDocType",e,o)}if(n){r.setCustomProperty("$fullPageXmlDeclaration",n,o)}return o}toData(t){let e=super.toData(t);const n=t.getCustomProperty("$fullPageDocument");const i=t.getCustomProperty("$fullPageDocType");const o=t.getCustomProperty("$fullPageXmlDeclaration");if(n){e=n.replace(/<\/body\s*>/,e+"$&");if(i){e=i+"\n"+e}if(o){e=o+"\n"+e}}return e}}class QF extends(null&&Plugin){static get pluginName(){return"FullPage"}init(){const t=this.editor;const e=["$fullPageDocument","$fullPageDocType","$fullPageXmlDeclaration"];t.data.processor=new HtmlPageDataProcessor(t.data.viewDocument);t.model.schema.extend("$root",{allowAttributes:e});t.data.on("toModel",((n,[i])=>{const o=t.model.document.getRoot();t.model.change((t=>{for(const n of e){const e=i.getCustomProperty(n);if(e){t.setAttribute(n,e,o)}}}))}),{priority:"low"});t.data.on("toView",((t,[n])=>{if(!n.is("rootElement")){return}const i=n;const o=t.return;if(!i.hasAttribute("$fullPageDocument")){return}const r=new UpcastWriter(o.document);for(const t of e){const e=i.getAttribute(t);if(e){r.setCustomProperty(t,e,o)}}}),{priority:"low"});t.data.on("set",(()=>{const n=t.model.document.getRoot();t.model.change((t=>{for(const i of e){if(n.hasAttribute(i)){t.removeAttribute(i,n)}}}))}),{priority:"high"});t.data.on("get",((t,e)=>{if(!e[0]){e[0]={}}e[0].trim=false}),{priority:"high"})}}function JF(t){return t.createContainerElement("span",{class:"image-inline"},t.createEmptyElement("img"))}function XF(t){return t.createContainerElement("figure",{class:"image"},[t.createEmptyElement("img"),t.createSlot("children")])}function tj(t,e){const n=t.plugins.get("ImageUtils");const i=t.plugins.has("ImageInlineEditing")&&t.plugins.has("ImageBlockEditing");return t=>{if(!n.isInlineImageView(t)){return null}if(!i){return o(t)}const r=t.getStyle("display")=="block"||t.findAncestor(n.isBlockImageView)?"imageBlock":"imageInline";if(r!==e){return null}return o(t)};function o(t){const e={name:true};if(t.hasAttribute("src")){e.attributes=["src"]}return e}}function ej(t,e){const n=ml(e.getSelectedBlocks());if(!n||t.isObject(n)){return"imageBlock"}if(n.isEmpty&&n.name!="listItem"){return"imageBlock"}return"imageInline"}function nj(t){if(t&&t.endsWith("px")){return parseInt(t)}return null}function ij(t){const e=nj(t.getStyle("width"));const n=nj(t.getStyle("height"));return!!(e&&n)}const oj=/^(image|image-inline)$/;class rj extends rh{constructor(){super(...arguments);this._domEmitter=new(Qa())}static get pluginName(){return"ImageUtils"}isImage(t){return this.isInlineImage(t)||this.isBlockImage(t)}isInlineImageView(t){return!!t&&t.is("element","img")}isBlockImageView(t){return!!t&&t.is("element","figure")&&t.hasClass("image")}insertImage(t={},e=null,n=null,i={}){const o=this.editor;const r=o.model;const s=r.document.selection;const a=lj(o,e||s,n);t={...Object.fromEntries(s.getAttributes()),...t};for(const e in t){if(!r.schema.checkAttribute(a,e)){delete t[e]}}return r.change((n=>{const{setImageSizes:o=true}=i;const s=n.createElement(a,t);r.insertObject(s,e,null,{setSelection:"on",findOptimalPosition:!e&&a!="imageInline"?"auto":undefined});if(s.parent){if(o){this.setImageNaturalSizeAttributes(s)}return s}return null}))}setImageNaturalSizeAttributes(t){const e=t.getAttribute("src");if(!e){return}if(t.getAttribute("width")||t.getAttribute("height")){return}this.editor.model.change((n=>{const i=new nc.window.Image;this._domEmitter.listenTo(i,"load",(()=>{if(!t.getAttribute("width")&&!t.getAttribute("height")){this.editor.model.enqueueChange(n.batch,(e=>{e.setAttribute("width",i.naturalWidth,t);e.setAttribute("height",i.naturalHeight,t)}))}this._domEmitter.stopListening(i,"load")}));i.src=e}))}getClosestSelectedImageWidget(t){const e=t.getFirstPosition();if(!e){return null}const n=t.getSelectedElement();if(n&&this.isImageWidget(n)){return n}let i=e.parent;while(i){if(i.is("element")&&this.isImageWidget(i)){return i}i=i.parent}return null}getClosestSelectedImageElement(t){const e=t.getSelectedElement();return this.isImage(e)?e:t.getFirstPosition().findAncestor("imageBlock")}getImageWidgetFromImageView(t){return t.findAncestor({classes:oj})}isImageAllowed(){const t=this.editor.model;const e=t.document.selection;return sj(this.editor,e)&&aj(e)}toImageWidget(t,e,n){e.setCustomProperty("image",true,t);const i=()=>{const e=this.findViewImgElement(t);const i=e.getAttribute("alt");return i?`${i} ${n}`:n};return IM(t,e,{label:i})}isImageWidget(t){return!!t.getCustomProperty("image")&&BM(t)}isBlockImage(t){return!!t&&t.is("element","imageBlock")}isInlineImage(t){return!!t&&t.is("element","imageInline")}findViewImgElement(t){if(this.isInlineImageView(t)){return t}const e=this.editor.editing.view;for(const{item:n}of e.createRangeIn(t)){if(this.isInlineImageView(n)){return n}}}destroy(){this._domEmitter.stopListening();return super.destroy()}}function sj(t,e){const n=lj(t,e,null);if(n=="imageBlock"){const n=cj(e,t.model);if(t.model.schema.checkChild(n,"imageBlock")){return true}}else if(t.model.schema.checkChild(e.focus,"imageInline")){return true}return false}function aj(t){return[...t.focus.getAncestors()].every((t=>!t.is("element","imageBlock")))}function cj(t,e){const n=VM(t,e);const i=n.start.parent;if(i.isEmpty&&!i.is("element","$root")){return i.parent}return i}function lj(t,e,n){const i=t.model.schema;const o=t.config.get("image.insert.type");if(!t.plugins.has("ImageBlockEditing")){return"imageInline"}if(!t.plugins.has("ImageInlineEditing")){return"imageBlock"}if(n){return n}if(o==="inline"){return"imageInline"}if(o!=="auto"){return"imageBlock"}if(e.is("selection")){return ej(i,e)}return i.checkChild(e,"imageInline")?"imageInline":"imageBlock"}const dj=new RegExp(String(/^(http(s)?:\/\/)?[\w-]+\.[\w.~:/[\]@!$&'()*+,;=%-]+/.source+/\.(jpg|jpeg|png|gif|ico|webp|JPG|JPEG|PNG|GIF|ICO|WEBP)/.source+/(\?[\w.~:/[\]@!$&'()*+,;=%-]*)?/.source+/(#[\w.~:/[\]@!$&'()*+,;=%-]*)?$/.source));class uj extends rh{static get requires(){return[cN,rj,xN,MT]}static get pluginName(){return"AutoImage"}constructor(t){super(t);this._timeoutId=null;this._positionToInsert=null}init(){const t=this.editor;const e=t.model.document;const n=t.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",(()=>{const t=e.selection.getFirstRange();const n=iC.fromPosition(t.start);n.stickiness="toPrevious";const i=iC.fromPosition(t.end);i.stickiness="toNext";e.once("change:data",(()=>{this._embedImageBetweenPositions(n,i);n.detach();i.detach()}),{priority:"high"})}));t.commands.get("undo").on("execute",(()=>{if(this._timeoutId){nc.window.clearTimeout(this._timeoutId);this._positionToInsert.detach();this._timeoutId=null;this._positionToInsert=null}}),{priority:"high"})}_embedImageBetweenPositions(t,e){const n=this.editor;const i=new cb(t,e);const o=i.getWalker({ignoreElementEnd:true});const r=Object.fromEntries(n.model.document.selection.getAttributes());const s=this.editor.plugins.get("ImageUtils");let a="";for(const t of o){if(t.item.is("$textProxy")){a+=t.item.data}}a=a.trim();if(!a.match(dj)){i.detach();return}this._positionToInsert=iC.fromPosition(t);this._timeoutId=setTimeout((()=>{const t=n.commands.get("insertImage");if(!t.isEnabled){i.detach();return}n.model.change((t=>{this._timeoutId=null;t.remove(i);i.detach();let e;if(this._positionToInsert.root.rootName!=="$graveyard"){e=this._positionToInsert.toPosition()}s.insertImage({...r,src:a},e);this._positionToInsert.detach();this._positionToInsert=null}));const e=n.plugins.get("Delete");e.requestUndoOnBackspace()}),100)}}class hj extends ah{refresh(){const t=this.editor;const e=t.plugins.get("ImageUtils");const n=e.getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!n;if(this.isEnabled&&n.hasAttribute("alt")){this.value=n.getAttribute("alt")}else{this.value=false}}execute(t){const e=this.editor;const n=e.plugins.get("ImageUtils");const i=e.model;const o=n.getClosestSelectedImageElement(i.document.selection);i.change((e=>{e.setAttribute("alt",t.newValue,o)}))}}class gj extends rh{static get requires(){return[rj]}static get pluginName(){return"ImageTextAlternativeEditing"}init(){this.editor.commands.add("imageTextAlternative",new hj(this.editor))}}var mj=n(5269);var fj={injectType:"singletonStyleTag",attributes:{"data-cke":true}};fj.insert="head";fj.singleton=true;var pj=Nl()(mj.Z,fj);const kj=mj.Z.locals||{};class bj extends Ol{constructor(t){super(t);const e=this.locale.t;this.focusTracker=new fl;this.keystrokes=new pl;this.labeledInput=this._createLabeledInputView();this.saveButtonView=this._createButton(e("Save"),Kv.check,"ck-button-save");this.saveButtonView.type="submit";this.cancelButtonView=this._createButton(e("Cancel"),Kv.cancel,"ck-button-cancel","cancel");this._focusables=new Il;this._focusCycler=new Xu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});this.setTemplate({tag:"form",attributes:{class:["ck","ck-text-alternative-form","ck-responsive-form"],tabindex:"-1"},children:[this.labeledInput,this.saveButtonView,this.cancelButtonView]})}render(){super.render();this.keystrokes.listenTo(this.element);o({view:this});[this.labeledInput,this.saveButtonView,this.cancelButtonView].forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}))}destroy(){super.destroy();this.focusTracker.destroy();this.keystrokes.destroy()}_createButton(t,e,n,i){const o=new xd(this.locale);o.set({label:t,icon:e,tooltip:true});o.extendTemplate({attributes:{class:n}});if(i){o.delegate("execute").to(this,i)}return o}_createLabeledInputView(){const t=this.locale.t;const e=new Tu(this.locale,jy);e.label=t("Text alternative");return e}}function wj(t){const e=t.plugins.get("ContextualBalloon");const n=t.plugins.get("ImageUtils");if(n.getClosestSelectedImageWidget(t.editing.view.document.selection)){const n=Aj(t);e.updatePosition(n)}}function Aj(t){const e=t.editing.view;const n=_E.defaultPositions;const i=t.plugins.get("ImageUtils");return{target:e.domConverter.mapViewToDom(i.getClosestSelectedImageWidget(e.document.selection)),positions:[n.northArrowSouth,n.northArrowSouthWest,n.northArrowSouthEast,n.southArrowNorth,n.southArrowNorthWest,n.southArrowNorthEast,n.viewportStickyNorth]}}class Cj extends rh{static get requires(){return[MD]}static get pluginName(){return"ImageTextAlternativeUI"}init(){this._createButton()}destroy(){super.destroy();if(this._form){this._form.destroy()}}_createButton(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("imageTextAlternative",(n=>{const i=t.commands.get("imageTextAlternative");const o=new xd(n);o.set({label:e("Change image text alternative"),icon:Kv.textAlternative,tooltip:true});o.bind("isEnabled").to(i,"isEnabled");o.bind("isOn").to(i,"value",(t=>!!t));this.listenTo(o,"execute",(()=>{this._showForm()}));return o}))}_createForm(){const n=this.editor;const i=n.editing.view;const o=i.document;const r=n.plugins.get("ImageUtils");this._balloon=this.editor.plugins.get("ContextualBalloon");this._form=new(e(bj))(n.locale);this._form.render();this.listenTo(this._form,"submit",(()=>{n.execute("imageTextAlternative",{newValue:this._form.labeledInput.fieldView.element.value});this._hideForm(true)}));this.listenTo(this._form,"cancel",(()=>{this._hideForm(true)}));this._form.keystrokes.set("Esc",((t,e)=>{this._hideForm(true);e()}));this.listenTo(n.ui,"update",(()=>{if(!r.getClosestSelectedImageWidget(o.selection)){this._hideForm(true)}else if(this._isVisible){wj(n)}}));t({emitter:this._form,activator:()=>this._isVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideForm()})}_showForm(){if(this._isVisible){return}if(!this._form){this._createForm()}const t=this.editor;const e=t.commands.get("imageTextAlternative");const n=this._form.labeledInput;this._form.disableCssTransitions();if(!this._isInBalloon){this._balloon.add({view:this._form,position:Aj(t)})}n.fieldView.value=n.fieldView.element.value=e.value||"";this._form.labeledInput.fieldView.select();this._form.enableCssTransitions()}_hideForm(t=false){if(!this._isInBalloon){return}if(this._form.focusTracker.isFocused){this._form.saveButtonView.focus()}this._balloon.remove(this._form);if(t){this.editor.editing.view.focus()}}get _isVisible(){return!!this._balloon&&this._balloon.visibleView===this._form}get _isInBalloon(){return!!this._balloon&&this._balloon.hasView(this._form)}}class _j extends rh{static get requires(){return[gj,Cj]}static get pluginName(){return"ImageTextAlternative"}}function vj(t){const e=(e,n,i)=>{if(!i.consumable.test(n.viewItem,{name:true,classes:"image"})){return}const o=t.findViewImgElement(n.viewItem);if(!o||!i.consumable.test(o,{name:true})){return}i.consumable.consume(n.viewItem,{name:true,classes:"image"});const r=i.convertItem(o,n.modelCursor);const s=ml(r.modelRange.getItems());if(!s){i.consumable.revert(n.viewItem,{name:true,classes:"image"});return}i.convertChildren(n.viewItem,s);i.updateConversionResult(s,n)};return t=>{t.on("element:figure",e)}}function yj(t){const e=["srcset","media","type","sizes"];const n=(n,i,o)=>{const r=i.viewItem;if(!o.consumable.test(r,{name:true})){return}const s=new Map;for(const t of r.getChildren()){if(t.is("element","source")){const n={};for(const i of e){if(t.hasAttribute(i)){if(o.consumable.test(t,{attributes:i})){n[i]=t.getAttribute(i)}}}if(Object.keys(n).length){s.set(t,n)}}}const a=t.findViewImgElement(r);if(!a){return}let c=i.modelCursor.parent;if(!c.is("element","imageBlock")){const t=o.convertItem(a,i.modelCursor);i.modelRange=t.modelRange;i.modelCursor=t.modelCursor;c=first(t.modelRange.getItems())}o.consumable.consume(r,{name:true});for(const[t,e]of s){o.consumable.consume(t,{attributes:Object.keys(e)})}if(s.size){o.writer.setAttribute("sources",Array.from(s.values()),c)}o.convertChildren(r,c)};return t=>{t.on("element:picture",n)}}function xj(t,e){const n=(e,n,i)=>{if(!i.consumable.consume(n.item,e.name)){return}const o=i.writer;const r=i.mapper.toViewElement(n.item);const s=t.findViewImgElement(r);if(n.attributeNewValue===null){o.removeAttribute("srcset",s);o.removeAttribute("sizes",s)}else{if(n.attributeNewValue){o.setAttribute("srcset",n.attributeNewValue,s);o.setAttribute("sizes","100vw",s)}}};return t=>{t.on(`attribute:srcset:${e}`,n)}}function Ej(t){const e=(e,n,i)=>{if(!i.consumable.consume(n.item,e.name)){return}const o=i.writer;const r=i.mapper.toViewElement(n.item);const s=t.findViewImgElement(r);const a=n.attributeNewValue;if(a&&a.length){const t=o.createContainerElement("picture",null,a.map((t=>o.createEmptyElement("source",t))));const e=[];let n=s.parent;while(n&&n.is("attributeElement")){const t=n.parent;o.unwrap(o.createRangeOn(s),n);e.unshift(n);n=t}o.insert(o.createPositionBefore(s),t);o.move(o.createRangeOn(s),o.createPositionAt(t,"end"));for(const n of e){o.wrap(o.createRangeOn(t),n)}}else if(s.parent.is("element","picture")){const t=s.parent;o.move(o.createRangeOn(s),o.createPositionBefore(t));o.remove(t)}};return t=>{t.on("attribute:sources:imageBlock",e);t.on("attribute:sources:imageInline",e)}}function Dj(t,e,n){const i=(e,n,i)=>{if(!i.consumable.consume(n.item,e.name)){return}const o=i.writer;const r=i.mapper.toViewElement(n.item);const s=t.findViewImgElement(r);o.setAttribute(n.attributeKey,n.attributeNewValue||"",s)};return t=>{t.on(`attribute:${n}:${e}`,i)}}class Sj extends lp{observe(t){this.listenTo(t,"load",((t,e)=>{const n=e.target;if(this.checkShouldIgnoreEventFromTarget(n)){return}if(n.tagName=="IMG"){this._fireEvents(e)}}),{useCapture:true})}stopObserving(t){this.stopListening(t)}_fireEvents(t){if(this.isEnabled){this.document.fire("layoutChanged");this.document.fire("imageLoaded",t)}}}class Tj extends ah{constructor(t){super(t);const e=t.config.get("image.insert.type");if(!t.plugins.has("ImageBlockEditing")){if(e==="block"){z("image-block-plugin-required")}}if(!t.plugins.has("ImageInlineEditing")){if(e==="inline"){z("image-inline-plugin-required")}}}refresh(){const t=this.editor.plugins.get("ImageUtils");this.isEnabled=t.isImageAllowed()}execute(t){const e=rl(t.source);const n=this.editor.model.document.selection;const i=this.editor.plugins.get("ImageUtils");const o=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if(typeof t==="string"){t={src:t}}if(e&&r&&i.isImage(r)){const e=this.editor.model.createPositionAfter(r);i.insertImage({...t,...o},e)}else{i.insertImage({...t,...o})}}))}}class Bj extends ah{constructor(t){super(t);this.decorate("cleanupImage")}refresh(){const t=this.editor;const e=t.plugins.get("ImageUtils");const n=this.editor.model.document.selection.getSelectedElement();this.isEnabled=e.isImage(n);this.value=this.isEnabled?n.getAttribute("src"):null}execute(t){const e=this.editor.model.document.selection.getSelectedElement();const n=this.editor.plugins.get("ImageUtils");this.editor.model.change((i=>{i.setAttribute("src",t.source,e);this.cleanupImage(i,e);n.setImageNaturalSizeAttributes(e)}))}cleanupImage(t,e){t.removeAttribute("srcset",e);t.removeAttribute("sizes",e);t.removeAttribute("sources",e);t.removeAttribute("width",e);t.removeAttribute("height",e);t.removeAttribute("alt",e)}}class Ij extends rh{static get requires(){return[rj]}static get pluginName(){return"ImageEditing"}init(){const t=this.editor;const e=t.conversion;t.editing.view.addObserver(Sj);e.for("upcast").attributeToAttribute({view:{name:"img",key:"alt"},model:"alt"}).attributeToAttribute({view:{name:"img",key:"srcset"},model:"srcset"});const n=new Tj(t);const i=new Bj(t);t.commands.add("insertImage",n);t.commands.add("replaceImageSource",i);t.commands.add("imageInsert",n)}}class Mj extends rh{static get requires(){return[rj]}static get pluginName(){return"ImageSizeAttributes"}afterInit(){this._registerSchema();this._registerConverters("imageBlock");this._registerConverters("imageInline")}_registerSchema(){if(this.editor.plugins.has("ImageBlockEditing")){this.editor.model.schema.extend("imageBlock",{allowAttributes:["width","height"]})}if(this.editor.plugins.has("ImageInlineEditing")){this.editor.model.schema.extend("imageInline",{allowAttributes:["width","height"]})}}_registerConverters(t){const e=this.editor;const n=e.plugins.get("ImageUtils");const i=t==="imageBlock"?"figure":"img";e.conversion.for("upcast").attributeToAttribute({view:{name:i,styles:{width:/.+/}},model:{key:"width",value:t=>{if(ij(t)){return nj(t.getStyle("width"))}return null}}}).attributeToAttribute({view:{name:i,key:"width"},model:"width"}).attributeToAttribute({view:{name:i,styles:{height:/.+/}},model:{key:"height",value:t=>{if(ij(t)){return nj(t.getStyle("height"))}return null}}}).attributeToAttribute({view:{name:i,key:"height"},model:"height"});e.conversion.for("editingDowncast").add((t=>{o(t,"width","width",true);o(t,"height","height",true)}));e.conversion.for("dataDowncast").add((t=>{o(t,"width","width",false);o(t,"height","height",false)}));function o(e,i,o,r){e.on(`attribute:${i}:${t}`,((e,i,s)=>{if(!s.consumable.consume(i.item,e.name)){return}const a=s.writer;const c=s.mapper.toViewElement(i.item);const l=n.findViewImgElement(c);if(i.attributeNewValue!==null){a.setAttribute(o,i.attributeNewValue,l)}else{a.removeAttribute(o,l)}if(i.item.hasAttribute("sources")){return}const d=i.item.hasAttribute("resizedWidth");if(t==="imageInline"&&!d&&!r){return}const u=i.item.getAttribute("width");const h=i.item.getAttribute("height");if(u&&h){a.setStyle("aspect-ratio",`${u}/${h}`,l)}}))}}}class Lj extends ah{constructor(t,e){super(t);this._modelElementName=e}refresh(){const t=this.editor;const e=t.plugins.get("ImageUtils");const n=e.getClosestSelectedImageElement(this.editor.model.document.selection);if(this._modelElementName==="imageBlock"){this.isEnabled=e.isInlineImage(n)}else{this.isEnabled=e.isBlockImage(n)}}execute(t={}){const e=this.editor;const n=this.editor.model;const i=e.plugins.get("ImageUtils");const o=i.getClosestSelectedImageElement(n.document.selection);const r=Object.fromEntries(o.getAttributes());if(!r.src&&!r.uploadId){return null}return n.change((e=>{const{setImageSizes:s=true}=t;const a=Array.from(n.markers).filter((t=>t.getRange().containsItem(o)));const c=i.insertImage(r,n.createSelection(o,"on"),this._modelElementName,{setImageSizes:s});if(!c){return null}const l=e.createRangeOn(c);for(const t of a){const n=t.getRange();const i=n.root.rootName!="$graveyard"?n.getJoined(l,true):l;e.updateMarker(t,{range:i})}return{oldElement:o,newElement:c}}))}}var Nj=n(31);var zj={injectType:"singletonStyleTag",attributes:{"data-cke":true}};zj.insert="head";zj.singleton=true;var Pj=Nl()(Nj.Z,zj);const Rj=Nj.Z.locals||{};class Vj extends rh{static get requires(){return[rj]}static get pluginName(){return"ImagePlaceholder"}afterInit(){this._setupSchema();this._setupConversion();this._setupLoadListener()}_setupSchema(){const t=this.editor.model.schema;if(t.isRegistered("imageBlock")){t.extend("imageBlock",{allowAttributes:["placeholder"]})}if(t.isRegistered("imageInline")){t.extend("imageInline",{allowAttributes:["placeholder"]})}}_setupConversion(){const t=this.editor;const e=t.conversion;const n=t.plugins.get("ImageUtils");e.for("editingDowncast").add((t=>{t.on("attribute:placeholder",((t,e,i)=>{if(!i.consumable.test(e.item,t.name)){return}if(!e.item.is("element","imageBlock")&&!e.item.is("element","imageInline")){return}i.consumable.consume(e.item,t.name);const o=i.writer;const r=i.mapper.toViewElement(e.item);const s=n.findViewImgElement(r);if(e.attributeNewValue){o.addClass("image_placeholder",s);o.setStyle("background-image",`url(${e.attributeNewValue})`,s);o.setCustomProperty("editingPipeline:doNotReuseOnce",true,s)}else{o.removeClass("image_placeholder",s);o.removeStyle("background-image",s)}}))}))}_setupLoadListener(){const t=this.editor;const e=t.model;const n=t.editing;const i=n.view;const o=t.plugins.get("ImageUtils");i.addObserver(Sj);this.listenTo(i.document,"imageLoaded",((t,r)=>{const s=i.domConverter.mapDomToView(r.target);if(!s){return}const a=o.getImageWidgetFromImageView(s);if(!a){return}const c=n.mapper.toModelElement(a);if(!c||!c.hasAttribute("placeholder")){return}e.enqueueChange({isUndoable:false},(t=>{t.removeAttribute("placeholder",c)}))}))}}class Oj extends rh{static get requires(){return[Ij,Mj,rj,Vj,_M]}static get pluginName(){return"ImageBlockEditing"}init(){const t=this.editor;const e=t.model.schema;e.register("imageBlock",{inheritAllFrom:"$blockObject",allowAttributes:["alt","src","srcset"]});this._setupConversion();if(t.plugins.has("ImageInlineEditing")){t.commands.add("imageTypeBlock",new Lj(this.editor,"imageBlock"));this._setupClipboardIntegration()}}_setupConversion(){const t=this.editor;const e=t.t;const n=t.conversion;const i=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:e})=>XF(e)});n.for("editingDowncast").elementToStructure({model:"imageBlock",view:(t,{writer:n})=>i.toImageWidget(XF(n),n,e("image widget"))});n.for("downcast").add(Dj(i,"imageBlock","src")).add(Dj(i,"imageBlock","alt")).add(xj(i,"imageBlock"));n.for("upcast").elementToElement({view:tj(t,"imageBlock"),model:(t,{writer:e})=>e.createElement("imageBlock",t.hasAttribute("src")?{src:t.getAttribute("src")}:undefined)}).add(vj(i))}_setupClipboardIntegration(){const t=this.editor;const e=t.model;const n=t.editing.view;const i=t.plugins.get("ImageUtils");const o=t.plugins.get("ClipboardPipeline");this.listenTo(o,"inputTransformation",((o,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(i.isInlineImageView)){return}if(r.targetRanges){a=t.editing.mapper.toModelRange(r.targetRanges[0])}else{a=e.document.selection.getFirstRange()}const c=e.createSelection(a);if(ej(e.schema,c)==="imageBlock"){const t=new a_(n.document);const e=s.map((e=>t.createElement("figure",{class:"image"},e)));r.content=t.createDocumentFragment(e)}}));this.listenTo(o,"contentInsertion",((t,n)=>{if(n.method!=="paste"){return}e.change((t=>{const e=t.createRangeIn(n.content);for(const t of e.getItems()){if(t.is("element","imageBlock")){i.setImageNaturalSizeAttributes(t)}}}))}))}}var Fj=n(8879);var jj={injectType:"singletonStyleTag",attributes:{"data-cke":true}};jj.insert="head";jj.singleton=true;var Hj=Nl()(Fj.Z,jj);const Uj=Fj.Z.locals||{};class qj extends Ol{constructor(t,e=[]){super(t);this.focusTracker=new fl;this.keystrokes=new pl;this._focusables=new Il;this.children=this.createCollection();this._focusCycler=new Xu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});for(const t of e){this.children.add(t);this._focusables.add(t);if(t instanceof mS){this._focusables.addMany(t.children)}}if(this._focusables.length>1){for(const t of this._focusables){if(Gj(t)){t.focusCycler.on("forwardCycle",(t=>{this._focusCycler.focusNext();t.stop()}));t.focusCycler.on("backwardCycle",(t=>{this._focusCycler.focusPrevious();t.stop()}))}}}this.setTemplate({tag:"form",attributes:{class:["ck","ck-image-insert-form"],tabindex:-1},children:this.children})}render(){super.render();o({view:this});for(const t of this._focusables){this.focusTracker.add(t.element)}this.keystrokes.listenTo(this.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t);this.keystrokes.set("arrowleft",t);this.keystrokes.set("arrowup",t);this.keystrokes.set("arrowdown",t)}destroy(){super.destroy();this.focusTracker.destroy();this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}}function Gj(t){return"focusCycler"in t}class $j extends rh{static get pluginName(){return"ImageInsertUI"}static get requires(){return[rj]}constructor(t){super(t);this._integrations=new Map;t.config.define("image.insert.integrations",["upload","assetManager","url"])}init(){const t=this.editor;const e=t.model.document.selection;const n=t.plugins.get("ImageUtils");this.set("isImageSelected",false);this.listenTo(t.model.document,"change",(()=>{this.isImageSelected=n.isImage(e.getSelectedElement())}));const i=t=>this._createToolbarComponent(t);t.ui.componentFactory.add("insertImage",i);t.ui.componentFactory.add("imageInsert",i)}registerIntegration({name:t,observable:e,buttonViewCreator:n,formViewCreator:i,requiresForm:o}){if(this._integrations.has(t)){z("image-insert-integration-exists",{name:t})}this._integrations.set(t,{observable:e,buttonViewCreator:n,formViewCreator:i,requiresForm:!!o})}_createToolbarComponent(t){const e=this.editor;const n=t.t;const i=this._prepareIntegrations();if(!i.length){return null}let o;const r=i[0];if(i.length==1){if(!r.requiresForm){return r.buttonViewCreator(true)}o=r.buttonViewCreator(true)}else{const e=r.buttonViewCreator(false);o=new by(t,e);o.tooltip=true;o.bind("label").to(this,"isImageSelected",(t=>t?n("Replace image"):n("Insert image")))}const s=this.dropdownView=Dy(t,o);const a=i.map((({observable:t})=>t));s.bind("isEnabled").toMany(a,"isEnabled",((...t)=>t.some((t=>t))));s.once("change:isOpen",(()=>{const t=i.map((({formViewCreator:t})=>t(i.length==1)));const n=new qj(e.locale,t);s.panelView.children.add(n)}));return s}_prepareIntegrations(){const t=this.editor;const e=t.config.get("image.insert.integrations");const n=[];if(!e.length){z("image-insert-integrations-not-specified");return n}for(const t of e){if(!this._integrations.has(t)){if(!["upload","assetManager","url"].includes(t)){z("image-insert-unknown-integration",{item:t})}continue}n.push(this._integrations.get(t))}if(!n.length){z("image-insert-integrations-not-registered")}return n}}var Wj=n(2430);var Zj={injectType:"singletonStyleTag",attributes:{"data-cke":true}};Zj.insert="head";Zj.singleton=true;var Kj=Nl()(Wj.Z,Zj);const Yj=Wj.Z.locals||{};class Qj extends rh{static get requires(){return[Oj,kL,_j,$j]}static get pluginName(){return"ImageBlock"}}class Jj extends rh{static get requires(){return[Ij,Mj,rj,Vj,_M]}static get pluginName(){return"ImageInlineEditing"}init(){const t=this.editor;const e=t.model.schema;e.register("imageInline",{inheritAllFrom:"$inlineObject",allowAttributes:["alt","src","srcset"]});e.addChildCheck(((t,e)=>{if(t.endsWith("caption")&&e.name==="imageInline"){return false}}));this._setupConversion();if(t.plugins.has("ImageBlockEditing")){t.commands.add("imageTypeInline",new Lj(this.editor,"imageInline"));this._setupClipboardIntegration()}}_setupConversion(){const t=this.editor;const e=t.t;const n=t.conversion;const i=t.plugins.get("ImageUtils");n.for("dataDowncast").elementToElement({model:"imageInline",view:(t,{writer:e})=>e.createEmptyElement("img")});n.for("editingDowncast").elementToStructure({model:"imageInline",view:(t,{writer:n})=>i.toImageWidget(JF(n),n,e("image widget"))});n.for("downcast").add(Dj(i,"imageInline","src")).add(Dj(i,"imageInline","alt")).add(xj(i,"imageInline"));n.for("upcast").elementToElement({view:tj(t,"imageInline"),model:(t,{writer:e})=>e.createElement("imageInline",t.hasAttribute("src")?{src:t.getAttribute("src")}:undefined)})}_setupClipboardIntegration(){const t=this.editor;const e=t.model;const n=t.editing.view;const i=t.plugins.get("ImageUtils");const o=t.plugins.get("ClipboardPipeline");this.listenTo(o,"inputTransformation",((o,r)=>{const s=Array.from(r.content.getChildren());let a;if(!s.every(i.isBlockImageView)){return}if(r.targetRanges){a=t.editing.mapper.toModelRange(r.targetRanges[0])}else{a=e.document.selection.getFirstRange()}const c=e.createSelection(a);if(ej(e.schema,c)==="imageInline"){const t=new a_(n.document);const e=s.map((e=>{if(e.childCount===1){Array.from(e.getAttributes()).forEach((n=>t.setAttribute(...n,i.findViewImgElement(e))));return e.getChild(0)}else{return e}}));r.content=t.createDocumentFragment(e)}}));this.listenTo(o,"contentInsertion",((t,n)=>{if(n.method!=="paste"){return}e.change((t=>{const e=t.createRangeIn(n.content);for(const t of e.getItems()){if(t.is("element","imageInline")){i.setImageNaturalSizeAttributes(t)}}}))}))}}class Xj extends rh{static get requires(){return[Jj,kL,_j,$j]}static get pluginName(){return"ImageInline"}}class tH extends rh{static get requires(){return[Qj,Xj]}static get pluginName(){return"Image"}}class eH extends rh{static get pluginName(){return"ImageCaptionUtils"}static get requires(){return[rj]}getCaptionFromImageModelElement(t){for(const e of t.getChildren()){if(!!e&&e.is("element","caption")){return e}}return null}getCaptionFromModelSelection(t){const e=this.editor.plugins.get("ImageUtils");const n=t.getFirstPosition().findAncestor("caption");if(!n){return null}if(e.isBlockImage(n.parent)){return n}return null}matchImageCaptionViewElement(t){const e=this.editor.plugins.get("ImageUtils");if(t.name=="figcaption"&&e.isBlockImageView(t.parent)){return{name:true}}return null}}class nH extends ah{refresh(){const t=this.editor;const e=t.plugins.get("ImageCaptionUtils");const n=t.plugins.get("ImageUtils");if(!t.plugins.has(Oj)){this.isEnabled=false;this.value=false;return}const i=t.model.document.selection;const o=i.getSelectedElement();if(!o){const t=e.getCaptionFromModelSelection(i);this.isEnabled=!!t;this.value=!!t;return}this.isEnabled=n.isImage(o);if(!this.isEnabled){this.value=false}else{this.value=!!e.getCaptionFromImageModelElement(o)}}execute(t={}){const{focusCaptionOnShow:e}=t;this.editor.model.change((t=>{if(this.value){this._hideImageCaption(t)}else{this._showImageCaption(t,e)}}))}_showImageCaption(t,e){const n=this.editor.model;const i=n.document.selection;const o=this.editor.plugins.get("ImageCaptionEditing");const r=this.editor.plugins.get("ImageUtils");let s=i.getSelectedElement();const a=o._getSavedCaption(s);if(r.isInlineImage(s)){this.editor.execute("imageTypeBlock");s=i.getSelectedElement()}const c=a||t.createElement("caption");t.append(c,s);if(e){t.setSelection(c,"in")}}_hideImageCaption(t){const e=this.editor;const n=e.model.document.selection;const i=e.plugins.get("ImageCaptionEditing");const o=e.plugins.get("ImageCaptionUtils");let r=n.getSelectedElement();let s;if(r){s=o.getCaptionFromImageModelElement(r)}else{s=o.getCaptionFromModelSelection(n);r=s.parent}i._saveCaption(r,s);t.setSelection(r,"on");t.remove(s)}}class iH extends rh{static get requires(){return[rj,eH]}static get pluginName(){return"ImageCaptionEditing"}constructor(t){super(t);this._savedCaptionsMap=new WeakMap}init(){const t=this.editor;const e=t.model.schema;if(!e.isRegistered("caption")){e.register("caption",{allowIn:"imageBlock",allowContentOf:"$block",isLimit:true})}else{e.extend("caption",{allowIn:"imageBlock"})}t.commands.add("toggleImageCaption",new nH(this.editor));this._setupConversion();this._setupImageTypeCommandsIntegration();this._registerCaptionReconversion()}_setupConversion(){const t=this.editor;const e=t.editing.view;const n=t.plugins.get("ImageUtils");const i=t.plugins.get("ImageCaptionUtils");const o=t.t;t.conversion.for("upcast").elementToElement({view:t=>i.matchImageCaptionViewElement(t),model:"caption"});t.conversion.for("dataDowncast").elementToElement({model:"caption",view:(t,{writer:e})=>{if(!n.isBlockImage(t.parent)){return null}return e.createContainerElement("figcaption")}});t.conversion.for("editingDowncast").elementToElement({model:"caption",view:(t,{writer:i})=>{if(!n.isBlockImage(t.parent)){return null}const r=i.createEditableElement("figcaption");i.setCustomProperty("imageCaption",true,r);r.placeholder=o("Enter image caption");wh({view:e,element:r,keepOnFocus:true});const s=t.parent.getAttribute("alt");const a=s?o("Caption for image: %0",[s]):o("Caption for the image");return RM(r,i,{label:a})}})}_setupImageTypeCommandsIntegration(){const t=this.editor;const e=t.plugins.get("ImageUtils");const n=t.plugins.get("ImageCaptionUtils");const i=t.commands.get("imageTypeInline");const o=t.commands.get("imageTypeBlock");const r=t=>{if(!t.return){return}const{oldElement:i,newElement:o}=t.return;if(!i){return}if(e.isBlockImage(i)){const t=n.getCaptionFromImageModelElement(i);if(t){this._saveCaption(o,t);return}}const r=this._getSavedCaption(i);if(r){this._saveCaption(o,r)}};if(i){this.listenTo(i,"execute",r,{priority:"low"})}if(o){this.listenTo(o,"execute",r,{priority:"low"})}}_getSavedCaption(t){const e=this._savedCaptionsMap.get(t);return e?zk.fromJSON(e):null}_saveCaption(t,e){this._savedCaptionsMap.set(t,e.toJSON())}_registerCaptionReconversion(){const t=this.editor;const e=t.model;const n=t.plugins.get("ImageUtils");const i=t.plugins.get("ImageCaptionUtils");e.document.on("change:data",(()=>{const o=e.document.differ.getChanges();for(const e of o){if(e.attributeKey!=="alt"){continue}const o=e.range.start.nodeAfter;if(n.isBlockImage(o)){const e=i.getCaptionFromImageModelElement(o);if(!e){return}t.editing.reconvertItem(e)}}}))}}class oH extends rh{static get requires(){return[eH]}static get pluginName(){return"ImageCaptionUI"}init(){const t=this.editor;const e=t.editing.view;const n=t.plugins.get("ImageCaptionUtils");const i=t.t;t.ui.componentFactory.add("toggleImageCaption",(o=>{const r=t.commands.get("toggleImageCaption");const s=new xd(o);s.set({icon:Kv.caption,tooltip:true,isToggleable:true});s.bind("isOn","isEnabled").to(r,"value","isEnabled");s.bind("label").to(r,"value",(t=>t?i("Toggle caption off"):i("Toggle caption on")));this.listenTo(s,"execute",(()=>{t.execute("toggleImageCaption",{focusCaptionOnShow:true});const i=n.getCaptionFromModelSelection(t.model.document.selection);if(i){const n=t.editing.mapper.toViewElement(i);e.scrollToTheSelection();e.change((t=>{t.addClass("image__caption_highlighted",n)}))}t.editing.view.focus()}));return s}))}}var rH=n(2423);var sH={injectType:"singletonStyleTag",attributes:{"data-cke":true}};sH.insert="head";sH.singleton=true;var aH=Nl()(rH.Z,sH);const cH=rH.Z.locals||{};class lH extends rh{static get requires(){return[iH,oH]}static get pluginName(){return"ImageCaption"}}class dH extends(gt()){constructor(){super();const t=new window.FileReader;this._reader=t;this._data=undefined;this.set("loaded",0);t.onprogress=t=>{this.loaded=t.loaded}}get error(){return this._reader.error}get data(){return this._data}read(t){const e=this._reader;this.total=t.size;return new Promise(((n,i)=>{e.onload=()=>{const t=e.result;this._data=t;n(t)};e.onerror=()=>{i("error")};e.onabort=()=>{i("aborted")};this._reader.readAsDataURL(t)}))}abort(){this._reader.abort()}}class uH extends rh{constructor(){super(...arguments);this.loaders=new gl;this._loadersMap=new Map;this._pendingAction=null}static get pluginName(){return"FileRepository"}static get requires(){return[av]}init(){this.loaders.on("change",(()=>this._updatePendingAction()));this.set("uploaded",0);this.set("uploadTotal",null);this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0))}getLoader(t){return this._loadersMap.get(t)||null}createLoader(t){if(!this.createUploadAdapter){z("filerepository-no-upload-adapter");return null}const e=new hH(Promise.resolve(t),this.createUploadAdapter);this.loaders.add(e);this._loadersMap.set(t,e);if(t instanceof Promise){e.file.then((t=>{this._loadersMap.set(t,e)})).catch((()=>{}))}e.on("change:uploaded",(()=>{let t=0;for(const e of this.loaders){t+=e.uploaded}this.uploaded=t}));e.on("change:uploadTotal",(()=>{let t=0;for(const e of this.loaders){if(e.uploadTotal){t+=e.uploadTotal}}this.uploadTotal=t}));return e}destroyLoader(t){const e=t instanceof hH?t:this.getLoader(t);e._destroy();this.loaders.remove(e);this._loadersMap.forEach(((t,n)=>{if(t===e){this._loadersMap.delete(n)}}))}_updatePendingAction(){const t=this.editor.plugins.get(av);if(this.loaders.length){if(!this._pendingAction){const e=this.editor.t;const n=t=>`${e("Upload in progress")} ${parseInt(t)}%.`;this._pendingAction=t.add(n(this.uploadedPercent));this._pendingAction.bind("message").to(this,"uploadedPercent",n)}}else{t.remove(this._pendingAction);this._pendingAction=null}}}class hH extends(gt()){constructor(t,e){super();this.id=T();this._filePromiseWrapper=this._createFilePromiseWrapper(t);this._adapter=e(this);this._reader=new dH;this.set("status","idle");this.set("uploaded",0);this.set("uploadTotal",null);this.bind("uploadedPercent").to(this,"uploaded",this,"uploadTotal",((t,e)=>e?t/e*100:0));this.set("uploadResponse",null)}get file(){if(!this._filePromiseWrapper){return Promise.resolve(null)}else{return this._filePromiseWrapper.promise.then((t=>this._filePromiseWrapper?t:null))}}get data(){return this._reader.data}read(){if(this.status!="idle"){throw new N("filerepository-read-wrong-status",this)}this.status="reading";return this.file.then((t=>this._reader.read(t))).then((t=>{if(this.status!=="reading"){throw this.status}this.status="idle";return t})).catch((t=>{if(t==="aborted"){this.status="aborted";throw"aborted"}this.status="error";throw this._reader.error?this._reader.error:t}))}upload(){if(this.status!="idle"){throw new N("filerepository-upload-wrong-status",this)}this.status="uploading";return this.file.then((()=>this._adapter.upload())).then((t=>{this.uploadResponse=t;this.status="idle";return t})).catch((t=>{if(this.status==="aborted"){throw"aborted"}this.status="error";throw t}))}abort(){const t=this.status;this.status="aborted";if(!this._filePromiseWrapper.isFulfilled){this._filePromiseWrapper.promise.catch((()=>{}));this._filePromiseWrapper.rejecter("aborted")}else if(t=="reading"){this._reader.abort()}else if(t=="uploading"&&this._adapter.abort){this._adapter.abort()}this._destroy()}_destroy(){this._filePromiseWrapper=undefined;this._reader=undefined;this._adapter=undefined;this.uploadResponse=undefined}_createFilePromiseWrapper(t){const e={};e.promise=new Promise(((n,i)=>{e.rejecter=i;e.isFulfilled=false;t.then((t=>{e.isFulfilled=true;n(t)})).catch((t=>{e.isFulfilled=true;i(t)}))}));return e}}class gH extends xd{constructor(t){super(t);this.buttonView=this;this._fileInputView=new mH(t);this._fileInputView.bind("acceptedType").to(this);this._fileInputView.bind("allowMultipleFiles").to(this);this._fileInputView.delegate("done").to(this);this.on("execute",(()=>{this._fileInputView.open()}));this.extendTemplate({attributes:{class:"ck-file-dialog-button"}})}render(){super.render();this.children.add(this._fileInputView)}}class mH extends Ol{constructor(t){super(t);this.set("acceptedType",undefined);this.set("allowMultipleFiles",false);const e=this.bindTemplate;this.setTemplate({tag:"input",attributes:{class:["ck-hidden"],type:"file",tabindex:"-1",accept:e.to("acceptedType"),multiple:e.to("allowMultipleFiles")},on:{change:e.to((()=>{if(this.element&&this.element.files&&this.element.files.length){this.fire("done",this.element.files)}this.element.value=""}))}})}open(){this.element.click()}}class fH extends(null&&Plugin){static get requires(){return[FileRepository]}static get pluginName(){return"Base64UploadAdapter"}init(){this.editor.plugins.get(FileRepository).createUploadAdapter=t=>new pH(t)}}class pH{constructor(t){this.loader=t}upload(){return new Promise(((t,e)=>{const n=this.reader=new window.FileReader;n.addEventListener("load",(()=>{t({default:n.result})}));n.addEventListener("error",(t=>{e(t)}));n.addEventListener("abort",(()=>{e()}));this.loader.file.then((t=>{n.readAsDataURL(t)}))}))}abort(){this.reader.abort()}}class kH extends rh{static get requires(){return[uH]}static get pluginName(){return"SimpleUploadAdapter"}init(){const t=this.editor.config.get("simpleUpload");if(!t){return}if(!t.uploadUrl){z("simple-upload-adapter-missing-uploadurl");return}this.editor.plugins.get(uH).createUploadAdapter=e=>new bH(e,t)}}class bH{constructor(t,e){this.loader=t;this.options=e}upload(){return this.loader.file.then((t=>new Promise(((e,n)=>{this._initRequest();this._initListeners(e,n,t);this._sendRequest(t)}))))}abort(){if(this.xhr){this.xhr.abort()}}_initRequest(){const t=this.xhr=new XMLHttpRequest;t.open("POST",this.options.uploadUrl,true);t.responseType="json"}_initListeners(t,e,n){const i=this.xhr;const o=this.loader;const r=`Couldn't upload file: ${n.name}.`;i.addEventListener("error",(()=>e(r)));i.addEventListener("abort",(()=>e()));i.addEventListener("load",(()=>{const n=i.response;if(!n||n.error){return e(n&&n.error&&n.error.message?n.error.message:r)}const o=n.url?{default:n.url}:n.urls;t({...n,urls:o})}));if(i.upload){i.upload.addEventListener("progress",(t=>{if(t.lengthComputable){o.uploadTotal=t.total;o.uploaded=t.loaded}}))}}_sendRequest(t){const e=this.options.headers||{};const n=this.options.withCredentials||false;for(const t of Object.keys(e)){this.xhr.setRequestHeader(t,e[t])}this.xhr.withCredentials=n;const i=new FormData;i.append("upload",t);this.xhr.send(i)}}function wH(t){const e=t.map((t=>t.replace("+","\\+")));return new RegExp(`^image\\/(${e.join("|")})$`)}function AH(t){return new Promise(((e,n)=>{const i=t.getAttribute("src");fetch(i).then((t=>t.blob())).then((t=>{const n=_H(t,i);const o=n.replace("image/","");const r=`image.${o}`;const s=new File([t],r,{type:n});e(s)})).catch((t=>t&&t.name==="TypeError"?vH(i).then(e).catch(n):n(t)))}))}function CH(t,e){if(!t.isInlineImageView(e)||!e.getAttribute("src")){return false}return!!e.getAttribute("src").match(/^data:image\/\w+;base64,/g)||!!e.getAttribute("src").match(/^blob:/g)}function _H(t,e){if(t.type){return t.type}else if(e.match(/data:(image\/\w+);base64/)){return e.match(/data:(image\/\w+);base64/)[1].toLowerCase()}else{return"image/jpeg"}}function vH(t){return yH(t).then((e=>{const n=_H(e,t);const i=n.replace("image/","");const o=`image.${i}`;return new File([e],o,{type:n})}))}function yH(t){return new Promise(((e,n)=>{const i=nc.document.createElement("img");i.addEventListener("load",(()=>{const t=nc.document.createElement("canvas");t.width=i.width;t.height=i.height;const o=t.getContext("2d");o.drawImage(i,0,0);t.toBlob((t=>t?e(t):n()))}));i.addEventListener("error",(()=>n()));i.src=t}))}class xH extends rh{static get pluginName(){return"ImageUploadUI"}init(){const t=this.editor;const e=t.t;const n=n=>{const i=new gH(n);const o=t.commands.get("uploadImage");const r=t.config.get("image.upload.types");const s=wH(r);i.set({acceptedType:r.map((t=>`image/${t}`)).join(","),allowMultipleFiles:true,label:e("Upload image from computer"),icon:Kv.imageUpload,tooltip:true});i.bind("isEnabled").to(o);i.on("done",((e,n)=>{const i=Array.from(n).filter((t=>s.test(t.type)));if(i.length){t.execute("uploadImage",{file:i});t.editing.view.focus()}}));return i};t.ui.componentFactory.add("uploadImage",n);t.ui.componentFactory.add("imageUpload",n);if(t.plugins.has("ImageInsertUI")){const n=t.plugins.get("ImageInsertUI");const i=t.commands.get("uploadImage");n.registerIntegration({name:"upload",observable:i,buttonViewCreator:()=>{const i=t.ui.componentFactory.create("uploadImage");i.bind("label").to(n,"isImageSelected",(t=>t?e("Replace image from computer"):e("Upload image from computer")));return i},formViewCreator:()=>{const i=t.ui.componentFactory.create("uploadImage");i.withText=true;i.bind("label").to(n,"isImageSelected",(t=>t?e("Replace from computer"):e("Upload from computer")));i.on("execute",(()=>{n.dropdownView.isOpen=false}));return i}})}}}var EH=n(2926);var DH={injectType:"singletonStyleTag",attributes:{"data-cke":true}};DH.insert="head";DH.singleton=true;var SH=Nl()(EH.Z,DH);const TH=EH.Z.locals||{};var BH=n(1547);var IH={injectType:"singletonStyleTag",attributes:{"data-cke":true}};IH.insert="head";IH.singleton=true;var MH=Nl()(BH.Z,IH);const LH=BH.Z.locals||{};var NH=n(6618);var zH={injectType:"singletonStyleTag",attributes:{"data-cke":true}};zH.insert="head";zH.singleton=true;var PH=Nl()(NH.Z,zH);const RH=NH.Z.locals||{};class VH extends rh{static get pluginName(){return"ImageUploadProgress"}constructor(t){super(t);this.uploadStatusChange=(t,e,n)=>{const i=this.editor;const o=e.item;const r=o.getAttribute("uploadId");if(!n.consumable.consume(e.item,t.name)){return}const s=i.plugins.get("ImageUtils");const a=i.plugins.get(uH);const c=r?e.attributeNewValue:null;const l=this.placeholder;const d=i.editing.mapper.toViewElement(o);const u=n.writer;if(c=="reading"){OH(d,u);jH(s,l,d,u);return}if(c=="uploading"){const t=a.loaders.get(r);OH(d,u);if(!t){jH(s,l,d,u)}else{HH(d,u);UH(d,u,t,i.editing.view);YH(s,d,u,t)}return}if(c=="complete"&&a.loaders.get(r)){GH(d,u,i.editing.view)}qH(d,u);HH(d,u);FH(d,u)};this.placeholder="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="}init(){const t=this.editor;if(t.plugins.has("ImageBlockEditing")){t.editing.downcastDispatcher.on("attribute:uploadStatus:imageBlock",this.uploadStatusChange)}if(t.plugins.has("ImageInlineEditing")){t.editing.downcastDispatcher.on("attribute:uploadStatus:imageInline",this.uploadStatusChange)}}}function OH(t,e){if(!t.hasClass("ck-appear")){e.addClass("ck-appear",t)}}function FH(t,e){e.removeClass("ck-appear",t)}function jH(t,e,n,i){if(!n.hasClass("ck-image-upload-placeholder")){i.addClass("ck-image-upload-placeholder",n)}const o=t.findViewImgElement(n);if(o.getAttribute("src")!==e){i.setAttribute("src",e,o)}if(!ZH(n,"placeholder")){i.insert(i.createPositionAfter(o),WH(i))}}function HH(t,e){if(t.hasClass("ck-image-upload-placeholder")){e.removeClass("ck-image-upload-placeholder",t)}KH(t,e,"placeholder")}function UH(t,e,n,i){const o=$H(e);e.insert(e.createPositionAt(t,"end"),o);n.on("change:uploadedPercent",((t,e,n)=>{i.change((t=>{t.setStyle("width",n+"%",o)}))}))}function qH(t,e){KH(t,e,"progressBar")}function GH(t,e,n){const i=e.createUIElement("div",{class:"ck-image-upload-complete-icon"});e.insert(e.createPositionAt(t,"end"),i);setTimeout((()=>{n.change((t=>t.remove(t.createRangeOn(i))))}),3e3)}function $H(t){const e=t.createUIElement("div",{class:"ck-progress-bar"});t.setCustomProperty("progressBar",true,e);return e}function WH(t){const e=t.createUIElement("div",{class:"ck-upload-placeholder-loader"});t.setCustomProperty("placeholder",true,e);return e}function ZH(t,e){for(const n of t.getChildren()){if(n.getCustomProperty(e)){return n}}}function KH(t,e,n){const i=ZH(t,n);if(i){e.remove(e.createRangeOn(i))}}function YH(t,e,n,i){if(i.data){const o=t.findViewImgElement(e);n.setAttribute("src",i.data,o)}}class QH extends ah{refresh(){const t=this.editor;const e=t.plugins.get("ImageUtils");const n=t.model.document.selection.getSelectedElement();this.isEnabled=e.isImageAllowed()||e.isImage(n)}execute(t){const e=rl(t.file);const n=this.editor.model.document.selection;const i=this.editor.plugins.get("ImageUtils");const o=Object.fromEntries(n.getAttributes());e.forEach(((t,e)=>{const r=n.getSelectedElement();if(e&&r&&i.isImage(r)){const e=this.editor.model.createPositionAfter(r);this._uploadImage(t,o,e)}else{this._uploadImage(t,o)}}))}_uploadImage(t,e,n){const i=this.editor;const o=i.plugins.get(uH);const r=o.createLoader(t);const s=i.plugins.get("ImageUtils");if(!r){return}s.insertImage({...e,uploadId:r.id},n)}}class JH extends rh{static get requires(){return[uH,wD,_M,rj]}static get pluginName(){return"ImageUploadEditing"}constructor(t){super(t);t.config.define("image",{upload:{types:["jpeg","png","gif","bmp","webp","tiff"]}});this._uploadImageElements=new Map}init(){const t=this.editor;const e=t.model.document;const n=t.conversion;const i=t.plugins.get(uH);const o=t.plugins.get("ImageUtils");const r=t.plugins.get("ClipboardPipeline");const s=wH(t.config.get("image.upload.types"));const a=new QH(t);t.commands.add("uploadImage",a);t.commands.add("imageUpload",a);n.for("upcast").attributeToAttribute({view:{name:"img",key:"uploadId"},model:"uploadId"});this.listenTo(t.editing.view.document,"clipboardInput",((e,n)=>{if(XH(n.dataTransfer)){return}const i=Array.from(n.dataTransfer.files).filter((t=>{if(!t){return false}return s.test(t.type)}));if(!i.length){return}e.stop();t.model.change((e=>{if(n.targetRanges){e.setSelection(n.targetRanges.map((e=>t.editing.mapper.toModelRange(e))))}t.execute("uploadImage",{file:i})}))}));this.listenTo(r,"inputTransformation",((e,n)=>{const r=Array.from(t.editing.view.createRangeIn(n.content)).map((t=>t.item)).filter((t=>CH(o,t)&&!t.getAttribute("uploadProcessed"))).map((t=>({promise:AH(t),imageElement:t})));if(!r.length){return}const s=new a_(t.editing.view.document);for(const t of r){s.setAttribute("uploadProcessed",true,t.imageElement);const e=i.createLoader(t.promise);if(e){s.setAttribute("src","",t.imageElement);s.setAttribute("uploadId",e.id,t.imageElement)}}}));t.editing.view.document.on("dragover",((t,e)=>{e.preventDefault()}));e.on("change",(()=>{const n=e.differ.getChanges({includeChangesInGraveyard:true}).reverse();const o=new Set;for(const e of n){if(e.type=="insert"&&e.name!="$text"){const n=e.position.nodeAfter;const r=e.position.root.rootName=="$graveyard";for(const e of tU(t,n)){const t=e.getAttribute("uploadId");if(!t){continue}const n=i.loaders.get(t);if(!n){continue}if(r){if(!o.has(t)){n.abort()}}else{o.add(t);this._uploadImageElements.set(t,e);if(n.status=="idle"){this._readAndUpload(n)}}}}}}));this.on("uploadComplete",((t,{imageElement:e,data:n})=>{const i=n.urls?n.urls:n;this.editor.model.change((t=>{t.setAttribute("src",i.default,e);this._parseAndSetSrcsetAttributeOnImage(i,e,t);o.setImageNaturalSizeAttributes(e)}))}),{priority:"low"})}afterInit(){const t=this.editor.model.schema;if(this.editor.plugins.has("ImageBlockEditing")){t.extend("imageBlock",{allowAttributes:["uploadId","uploadStatus"]})}if(this.editor.plugins.has("ImageInlineEditing")){t.extend("imageInline",{allowAttributes:["uploadId","uploadStatus"]})}}_readAndUpload(t){const e=this.editor;const n=e.model;const i=e.locale.t;const o=e.plugins.get(uH);const r=e.plugins.get(wD);const s=e.plugins.get("ImageUtils");const a=this._uploadImageElements;n.enqueueChange({isUndoable:false},(e=>{e.setAttribute("uploadStatus","reading",a.get(t.id))}));return t.read().then((()=>{const i=t.upload();const o=a.get(t.id);if(l.isSafari){const t=e.editing.mapper.toViewElement(o);const n=s.findViewImgElement(t);e.editing.view.once("render",(()=>{if(!n.parent){return}const t=e.editing.view.domConverter.mapViewToDom(n.parent);if(!t){return}const i=t.style.display;t.style.display="none";t._ckHack=t.offsetHeight;t.style.display=i}))}n.enqueueChange({isUndoable:false},(t=>{t.setAttribute("uploadStatus","uploading",o)}));return i})).then((e=>{n.enqueueChange({isUndoable:false},(n=>{const i=a.get(t.id);n.setAttribute("uploadStatus","complete",i);this.fire("uploadComplete",{data:e,imageElement:i})}));c()})).catch((e=>{if(t.status!=="error"&&t.status!=="aborted"){throw e}if(t.status=="error"&&e){r.showWarning(e,{title:i("Upload failed"),namespace:"upload"})}n.enqueueChange({isUndoable:false},(e=>{e.remove(a.get(t.id))}));c()}));function c(){n.enqueueChange({isUndoable:false},(e=>{const n=a.get(t.id);e.removeAttribute("uploadId",n);e.removeAttribute("uploadStatus",n);a.delete(t.id)}));o.destroyLoader(t)}}_parseAndSetSrcsetAttributeOnImage(t,e,n){let i=0;const o=Object.keys(t).filter((t=>{const e=parseInt(t,10);if(!isNaN(e)){i=Math.max(i,e);return true}})).map((e=>`${t[e]} ${e}w`)).join(", ");if(o!=""){const t={srcset:o};if(!e.hasAttribute("width")&&!e.hasAttribute("height")){t.width=i}n.setAttributes(t,e)}}}function XH(t){return Array.from(t.types).includes("text/html")&&t.getData("text/html")!==""}function tU(t,e){const n=t.plugins.get("ImageUtils");return Array.from(t.model.createRangeOn(e)).filter((t=>n.isImage(t.item))).map((t=>t.item))}class eU extends rh{static get pluginName(){return"ImageUpload"}static get requires(){return[JH,xH,VH]}}class nU extends Ol{constructor(t){super(t);this.set("imageURLInputValue","");this.set("isImageSelected",false);this.set("isEnabled",true);this.focusTracker=new fl;this.keystrokes=new pl;this._focusables=new Il;this.focusCycler=new Xu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});this.urlInputView=this._createUrlInputView();this.insertButtonView=this._createInsertButton();this.cancelButtonView=this._createCancelButton();this._focusables.addMany([this.urlInputView,this.insertButtonView,this.cancelButtonView]);this.setTemplate({tag:"div",attributes:{class:["ck","ck-image-insert-url"]},children:[this.urlInputView,{tag:"div",attributes:{class:["ck","ck-image-insert-url__action-row"]},children:[this.insertButtonView,this.cancelButtonView]}]})}render(){super.render();for(const t of this._focusables){this.focusTracker.add(t.element)}this.keystrokes.listenTo(this.element)}destroy(){super.destroy();this.focusTracker.destroy();this.keystrokes.destroy()}_createUrlInputView(){const t=this.locale;const e=t.t;const n=new Tu(t,jy);n.bind("label").to(this,"isImageSelected",(t=>t?e("Update image URL"):e("Insert image via URL")));n.bind("isEnabled").to(this);n.fieldView.placeholder="https://example.com/image.png";n.fieldView.bind("value").to(this,"imageURLInputValue",(t=>t||""));n.fieldView.on("input",(()=>{this.imageURLInputValue=n.fieldView.element.value.trim()}));return n}_createInsertButton(){const t=this.locale;const e=t.t;const n=new xd(t);n.set({icon:Kv.check,class:"ck-button-save",type:"submit",withText:true});n.bind("label").to(this,"isImageSelected",(t=>t?e("Update"):e("Insert")));n.bind("isEnabled").to(this,"imageURLInputValue",this,"isEnabled",((...t)=>t.every((t=>t))));n.delegate("execute").to(this,"submit");return n}_createCancelButton(){const t=this.locale;const e=t.t;const n=new xd(t);n.set({label:e("Cancel"),icon:Kv.cancel,class:"ck-button-cancel",withText:true});n.bind("isEnabled").to(this);n.delegate("execute").to(this,"cancel");return n}focus(t){if(t===-1){this.focusCycler.focusLast()}else{this.focusCycler.focusFirst()}}}class iU extends rh{static get pluginName(){return"ImageInsertViaUrlUI"}static get requires(){return[$j]}init(){this._imageInsertUI=this.editor.plugins.get("ImageInsertUI");const t=this.editor.commands.get("insertImage");this._imageInsertUI.registerIntegration({name:"url",observable:t,requiresForm:true,buttonViewCreator:t=>this._createInsertUrlButton(t),formViewCreator:t=>this._createInsertUrlView(t)})}_createInsertUrlView(t){const e=this.editor;const n=e.locale;const i=n.t;const o=e.commands.get("replaceImageSource");const r=e.commands.get("insertImage");const s=new nU(n);const a=t?null:new mS(n,[s]);s.bind("isImageSelected").to(this._imageInsertUI);s.bind("isEnabled").toMany([r,o],"isEnabled",((...t)=>t.some((t=>t))));s.imageURLInputValue=o.value||"";this._imageInsertUI.dropdownView.on("change:isOpen",(()=>{if(this._imageInsertUI.dropdownView.isOpen){s.imageURLInputValue=o.value||"";if(a){a.isCollapsed=true}}}),{priority:"low"});s.on("submit",(()=>{if(o.isEnabled){e.execute("replaceImageSource",{source:s.imageURLInputValue})}else{e.execute("insertImage",{source:s.imageURLInputValue})}this._closePanel()}));s.on("cancel",(()=>this._closePanel()));if(a){a.set({isCollapsed:true});a.bind("label").to(this._imageInsertUI,"isImageSelected",(t=>t?i("Update image URL"):i("Insert image via URL")));return a}return s}_createInsertUrlButton(t){const e=t?Ju:xd;const n=this.editor;const i=new e(n.locale);const o=n.locale.t;i.set({icon:Kv.imageUrl,tooltip:true});i.bind("label").to(this._imageInsertUI,"isImageSelected",(t=>t?o("Update image URL"):o("Insert image via URL")));return i}_closePanel(){this.editor.editing.view.focus();this._imageInsertUI.dropdownView.isOpen=false}}class oU extends rh{static get pluginName(){return"ImageInsertViaUrl"}static get requires(){return[iU,$j]}}class rU extends rh{static get pluginName(){return"ImageInsert"}static get requires(){return[eU,oU,$j]}}class sU extends ah{refresh(){const t=this.editor;const e=t.plugins.get("ImageUtils");const n=e.getClosestSelectedImageElement(t.model.document.selection);this.isEnabled=!!n;if(!n||!n.hasAttribute("resizedWidth")){this.value=null}else{this.value={width:n.getAttribute("resizedWidth"),height:null}}}execute(t){const e=this.editor;const n=e.model;const i=e.plugins.get("ImageUtils");const o=i.getClosestSelectedImageElement(n.document.selection);this.value={width:t.width,height:null};if(o){n.change((e=>{e.setAttribute("resizedWidth",t.width,o);e.removeAttribute("resizedHeight",o);i.setImageNaturalSizeAttributes(o)}))}}}class aU extends rh{static get requires(){return[rj]}static get pluginName(){return"ImageResizeEditing"}constructor(t){super(t);t.config.define("image",{resizeUnit:"%",resizeOptions:[{name:"resizeImage:original",value:null,icon:"original"},{name:"resizeImage:25",value:"25",icon:"small"},{name:"resizeImage:50",value:"50",icon:"medium"},{name:"resizeImage:75",value:"75",icon:"large"}]})}init(){const t=this.editor;const e=new sU(t);this._registerSchema();this._registerConverters("imageBlock");this._registerConverters("imageInline");t.commands.add("resizeImage",e);t.commands.add("imageResize",e)}_registerSchema(){if(this.editor.plugins.has("ImageBlockEditing")){this.editor.model.schema.extend("imageBlock",{allowAttributes:["resizedWidth","resizedHeight"]})}if(this.editor.plugins.has("ImageInlineEditing")){this.editor.model.schema.extend("imageInline",{allowAttributes:["resizedWidth","resizedHeight"]})}}_registerConverters(t){const e=this.editor;const n=e.plugins.get("ImageUtils");e.conversion.for("downcast").add((e=>e.on(`attribute:resizedWidth:${t}`,((t,e,n)=>{if(!n.consumable.consume(e.item,t.name)){return}const i=n.writer;const o=n.mapper.toViewElement(e.item);if(e.attributeNewValue!==null){i.setStyle("width",e.attributeNewValue,o);i.addClass("image_resized",o)}else{i.removeStyle("width",o);i.removeClass("image_resized",o)}}))));e.conversion.for("dataDowncast").attributeToAttribute({model:{name:t,key:"resizedHeight"},view:t=>({key:"style",value:{height:t}})});e.conversion.for("editingDowncast").add((e=>e.on(`attribute:resizedHeight:${t}`,((e,i,o)=>{if(!o.consumable.consume(i.item,e.name)){return}const r=o.writer;const s=o.mapper.toViewElement(i.item);const a=t==="imageInline"?n.findViewImgElement(s):s;if(i.attributeNewValue!==null){r.setStyle("height",i.attributeNewValue,a)}else{r.removeStyle("height",a)}}))));e.conversion.for("upcast").attributeToAttribute({view:{name:t==="imageBlock"?"figure":"img",styles:{width:/.+/}},model:{key:"resizedWidth",value:t=>{if(ij(t)){return null}return t.getStyle("width")}}});e.conversion.for("upcast").attributeToAttribute({view:{name:t==="imageBlock"?"figure":"img",styles:{height:/.+/}},model:{key:"resizedHeight",value:t=>{if(ij(t)){return null}return t.getStyle("height")}}})}}const cU={small:Kv.objectSizeSmall,medium:Kv.objectSizeMedium,large:Kv.objectSizeLarge,original:Kv.objectSizeFull};class lU extends rh{static get requires(){return[aU]}static get pluginName(){return"ImageResizeButtons"}constructor(t){super(t);this._resizeUnit=t.config.get("image.resizeUnit")}init(){const t=this.editor;const e=t.config.get("image.resizeOptions");const n=t.commands.get("resizeImage");this.bind("isEnabled").to(n);for(const t of e){this._registerImageResizeButton(t)}this._registerImageResizeDropdown(e)}_registerImageResizeButton(t){const e=this.editor;const{name:n,value:i,icon:o}=t;const r=i?i+this._resizeUnit:null;e.ui.componentFactory.add(n,(n=>{const i=new xd(n);const s=e.commands.get("resizeImage");const a=this._getOptionLabelValue(t,true);if(!cU[o]){throw new N("imageresizebuttons-missing-icon",e,t)}i.set({label:a,icon:cU[o],tooltip:a,isToggleable:true});i.bind("isEnabled").to(this);i.bind("isOn").to(s,"value",dU(r));this.listenTo(i,"execute",(()=>{e.execute("resizeImage",{width:r})}));return i}))}_registerImageResizeDropdown(t){const e=this.editor;const n=e.t;const i=t.find((t=>!t.value));const o=o=>{const r=e.commands.get("resizeImage");const s=Dy(o,Ju);const a=s.buttonView;const c=n("Resize image");a.set({tooltip:c,commandValue:i.value,icon:cU.medium,isToggleable:true,label:this._getOptionLabelValue(i),withText:true,class:"ck-resize-image-button",ariaLabel:c,ariaLabelledBy:undefined});a.bind("label").to(r,"value",(t=>{if(t&&t.width){return t.width}else{return this._getOptionLabelValue(i)}}));s.bind("isEnabled").to(this);By(s,(()=>this._getResizeDropdownListItemDefinitions(t,r)),{ariaLabel:n("Image resize list"),role:"menu"});this.listenTo(s,"execute",(t=>{e.execute(t.source.commandName,{width:t.source.commandValue});e.editing.view.focus()}));return s};e.ui.componentFactory.add("resizeImage",o);e.ui.componentFactory.add("imageResize",o)}_getOptionLabelValue(t,e=false){const n=this.editor.t;if(t.label){return t.label}else if(e){if(t.value){return n("Resize image to %0",t.value+this._resizeUnit)}else{return n("Resize image to the original size")}}else{if(t.value){return t.value+this._resizeUnit}else{return n("Original")}}}_getResizeDropdownListItemDefinitions(t,e){const n=new gl;t.map((t=>{const i=t.value?t.value+this._resizeUnit:null;const o={type:"button",model:new AD({commandName:"resizeImage",commandValue:i,label:this._getOptionLabelValue(t),role:"menuitemradio",withText:true,icon:null})};o.model.bind("isOn").to(e,"value",dU(i));n.add(o)}));return n}}function dU(t){return e=>{const n=e;if(t===null&&n===t){return true}return n!==null&&n.width===t}}const uU="figure.image.ck-widget > img,"+"figure.image.ck-widget > picture > img,"+"figure.image.ck-widget > a > img,"+"figure.image.ck-widget > a > picture > img,"+"span.image-inline.ck-widget > img,"+"span.image-inline.ck-widget > picture > img";const hU="image_resized";class gU extends rh{static get requires(){return[jL,rj]}static get pluginName(){return"ImageResizeHandles"}init(){const t=this.editor.commands.get("resizeImage");this.bind("isEnabled").to(t);this._setupResizerCreator()}_setupResizerCreator(){const t=this.editor;const e=t.editing.view;const n=t.plugins.get("ImageUtils");e.addObserver(Sj);this.listenTo(e.document,"imageLoaded",((i,o)=>{if(!o.target.matches(uU)){return}const r=t.editing.view.domConverter;const s=r.domToView(o.target);const a=n.getImageWidgetFromImageView(s);let c=this.editor.plugins.get(jL).getResizerByViewElement(a);if(c){c.redraw();return}const l=t.editing.mapper;const d=l.toModelElement(a);c=t.plugins.get(jL).attachTo({unit:t.config.get("image.resizeUnit"),modelElement:d,viewElement:a,editor:t,getHandleHost(t){return t.querySelector("img")},getResizeHost(){return r.mapViewToDom(l.toViewElement(d.parent))},isCentered(){const t=d.getAttribute("imageStyle");return!t||t=="block"||t=="alignCenter"},onCommit(n){e.change((t=>{t.removeClass(hU,a)}));t.execute("resizeImage",{width:n})}});c.on("updateSize",(()=>{if(!a.hasClass(hU)){e.change((t=>{t.addClass(hU,a)}))}const t=d.name==="imageInline"?s:a;if(t.getStyle("height")){e.change((e=>{e.removeStyle("height",t)}))}}));c.bind("isEnabled").to(this)}))}}var mU=n(2400);var fU={injectType:"singletonStyleTag",attributes:{"data-cke":true}};fU.insert="head";fU.singleton=true;var pU=Nl()(mU.Z,fU);const kU=mU.Z.locals||{};class bU extends rh{static get requires(){return[aU,gU,lU]}static get pluginName(){return"ImageResize"}}class wU extends ah{constructor(t,e){super(t);this._defaultStyles={imageBlock:false,imageInline:false};this._styles=new Map(e.map((t=>{if(t.isDefault){for(const e of t.modelElements){this._defaultStyles[e]=t.name}}return[t.name,t]})))}refresh(){const t=this.editor;const e=t.plugins.get("ImageUtils");const n=e.getClosestSelectedImageElement(this.editor.model.document.selection);this.isEnabled=!!n;if(!this.isEnabled){this.value=false}else if(n.hasAttribute("imageStyle")){this.value=n.getAttribute("imageStyle")}else{this.value=this._defaultStyles[n.name]}}execute(t={}){const e=this.editor;const n=e.model;const i=e.plugins.get("ImageUtils");n.change((e=>{const o=t.value;const{setImageSizes:r=true}=t;let s=i.getClosestSelectedImageElement(n.document.selection);if(o&&this.shouldConvertImageType(o,s)){this.editor.execute(i.isBlockImage(s)?"imageTypeInline":"imageTypeBlock",{setImageSizes:r});s=i.getClosestSelectedImageElement(n.document.selection)}if(!o||this._styles.get(o).isDefault){e.removeAttribute("imageStyle",s)}else{e.setAttribute("imageStyle",o,s)}if(r){i.setImageNaturalSizeAttributes(s)}}))}shouldConvertImageType(t,e){const n=this._styles.get(t).modelElements;return!n.includes(e.name)}}const{objectFullWidth:AU,objectInline:CU,objectLeft:_U,objectRight:vU,objectCenter:yU,objectBlockLeft:xU,objectBlockRight:EU}=Kv;const DU={get inline(){return{name:"inline",title:"In line",icon:CU,modelElements:["imageInline"],isDefault:true}},get alignLeft(){return{name:"alignLeft",title:"Left aligned image",icon:_U,modelElements:["imageBlock","imageInline"],className:"image-style-align-left"}},get alignBlockLeft(){return{name:"alignBlockLeft",title:"Left aligned image",icon:xU,modelElements:["imageBlock"],className:"image-style-block-align-left"}},get alignCenter(){return{name:"alignCenter",title:"Centered image",icon:yU,modelElements:["imageBlock"],className:"image-style-align-center"}},get alignRight(){return{name:"alignRight",title:"Right aligned image",icon:vU,modelElements:["imageBlock","imageInline"],className:"image-style-align-right"}},get alignBlockRight(){return{name:"alignBlockRight",title:"Right aligned image",icon:EU,modelElements:["imageBlock"],className:"image-style-block-align-right"}},get block(){return{name:"block",title:"Centered image",icon:yU,modelElements:["imageBlock"],isDefault:true}},get side(){return{name:"side",title:"Side image",icon:vU,modelElements:["imageBlock"],className:"image-style-side"}}};const SU={full:AU,left:xU,right:EU,center:yU,inlineLeft:_U,inlineRight:vU,inline:CU};const TU=[{name:"imageStyle:wrapText",title:"Wrap text",defaultItem:"imageStyle:alignLeft",items:["imageStyle:alignLeft","imageStyle:alignRight"]},{name:"imageStyle:breakText",title:"Break text",defaultItem:"imageStyle:block",items:["imageStyle:alignBlockLeft","imageStyle:block","imageStyle:alignBlockRight"]}];function BU(t){const e=t.configuredStyles.options||[];const n=e.map((t=>LU(t))).filter((e=>NU(e,t)));return n}function IU(t,e){if(t&&e){return{options:["inline","alignLeft","alignRight","alignCenter","alignBlockLeft","alignBlockRight","block","side"]}}else if(t){return{options:["block","side"]}}else if(e){return{options:["inline","alignLeft","alignRight"]}}return{}}function MU(t){if(t.has("ImageBlockEditing")&&t.has("ImageInlineEditing")){return[...TU]}else{return[]}}function LU(t){if(typeof t==="string"){if(!DU[t]){t={name:t}}else{t={...DU[t]}}}else{t=zU(DU[t.name],t)}if(typeof t.icon==="string"){t.icon=SU[t.icon]||t.icon}return t}function NU(t,{isBlockPluginLoaded:e,isInlinePluginLoaded:n}){const{modelElements:i,name:o}=t;if(!i||!i.length||!o){PU({style:t});return false}else{const o=[e?"imageBlock":null,n?"imageInline":null];if(!i.some((t=>o.includes(t)))){z("image-style-missing-dependency",{style:t,missingPlugins:i.map((t=>t==="imageBlock"?"ImageBlockEditing":"ImageInlineEditing"))});return false}}return true}function zU(t,e){const n={...e};for(const i in t){if(!Object.prototype.hasOwnProperty.call(e,i)){n[i]=t[i]}}return n}function PU(t){z("image-style-configuration-definition-invalid",t)}const RU={normalizeStyles:BU,getDefaultStylesConfiguration:IU,getDefaultDropdownDefinitions:MU,warnInvalidStyle:PU,DEFAULT_OPTIONS:DU,DEFAULT_ICONS:SU,DEFAULT_DROPDOWN_DEFINITIONS:TU};function VU(t){return(e,n,i)=>{if(!i.consumable.consume(n.item,e.name)){return}const o=FU(n.attributeNewValue,t);const r=FU(n.attributeOldValue,t);const s=i.mapper.toViewElement(n.item);const a=i.writer;if(r){a.removeClass(r.className,s)}if(o){a.addClass(o.className,s)}}}function OU(t){const e={imageInline:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageInline"))),imageBlock:t.filter((t=>!t.isDefault&&t.modelElements.includes("imageBlock")))};return(t,n,i)=>{if(!n.modelRange){return}const o=n.viewItem;const r=ml(n.modelRange.getItems());if(!r){return}if(!i.schema.checkAttribute(r,"imageStyle")){return}for(const t of e[r.name]){if(i.consumable.consume(o,{classes:t.className})){i.writer.setAttribute("imageStyle",t.name,r)}}}}function FU(t,e){for(const n of e){if(n.name===t){return n}}}class jU extends rh{static get pluginName(){return"ImageStyleEditing"}static get requires(){return[rj]}init(){const{normalizeStyles:t,getDefaultStylesConfiguration:e}=RU;const n=this.editor;const i=n.plugins.has("ImageBlockEditing");const o=n.plugins.has("ImageInlineEditing");n.config.define("image.styles",e(i,o));this.normalizedStyles=t({configuredStyles:n.config.get("image.styles"),isBlockPluginLoaded:i,isInlinePluginLoaded:o});this._setupConversion(i,o);this._setupPostFixer();n.commands.add("imageStyle",new wU(n,this.normalizedStyles))}_setupConversion(t,e){const n=this.editor;const i=n.model.schema;const o=VU(this.normalizedStyles);const r=OU(this.normalizedStyles);n.editing.downcastDispatcher.on("attribute:imageStyle",o);n.data.downcastDispatcher.on("attribute:imageStyle",o);if(t){i.extend("imageBlock",{allowAttributes:"imageStyle"});n.data.upcastDispatcher.on("element:figure",r,{priority:"low"})}if(e){i.extend("imageInline",{allowAttributes:"imageStyle"});n.data.upcastDispatcher.on("element:img",r,{priority:"low"})}}_setupPostFixer(){const t=this.editor;const e=t.model.document;const n=t.plugins.get(rj);const i=new Map(this.normalizedStyles.map((t=>[t.name,t])));e.registerPostFixer((t=>{let o=false;for(const r of e.differ.getChanges()){if(r.type=="insert"||r.type=="attribute"&&r.attributeKey=="imageStyle"){let e=r.type=="insert"?r.position.nodeAfter:r.range.start.nodeAfter;if(e&&e.is("element","paragraph")&&e.childCount>0){e=e.getChild(0)}if(!n.isImage(e)){continue}const s=e.getAttribute("imageStyle");if(!s){continue}const a=i.get(s);if(!a||!a.modelElements.includes(e.name)){t.removeAttribute("imageStyle",e);o=true}}}return o}))}}var HU=n(3534);var UU={injectType:"singletonStyleTag",attributes:{"data-cke":true}};UU.insert="head";UU.singleton=true;var qU=Nl()(HU.Z,UU);const GU=HU.Z.locals||{};class $U extends rh{static get requires(){return[jU]}static get pluginName(){return"ImageStyleUI"}get localizedDefaultStylesTitles(){const t=this.editor.t;return{"Wrap text":t("Wrap text"),"Break text":t("Break text"),"In line":t("In line"),"Full size image":t("Full size image"),"Side image":t("Side image"),"Left aligned image":t("Left aligned image"),"Centered image":t("Centered image"),"Right aligned image":t("Right aligned image")}}init(){const t=this.editor.plugins;const e=this.editor.config.get("image.toolbar")||[];const n=t.get("ImageStyleEditing");const i=WU(n.normalizedStyles,this.localizedDefaultStylesTitles);for(const t of i){this._createButton(t)}const o=WU([...e.filter(st),...RU.getDefaultDropdownDefinitions(t)],this.localizedDefaultStylesTitles);for(const t of o){this._createDropdown(t,i)}}_createDropdown(t,e){const n=this.editor.ui.componentFactory;n.add(t.name,(i=>{let o;const{defaultItem:r,items:s,title:a}=t;const c=s.filter((t=>e.find((({name:e})=>ZU(e)===t)))).map((t=>{const e=n.create(t);if(t===r){o=e}return e}));if(s.length!==c.length){RU.warnInvalidStyle({dropdown:t})}const l=Dy(i,by);const d=l.buttonView;const u=d.arrowView;Sy(l,c,{enableActiveItemFocusOnDropdownOpen:true});d.set({label:KU(a,o.label),class:null,tooltip:true});u.unbind("label");u.set({label:a});d.bind("icon").toMany(c,"isOn",((...t)=>{const e=t.findIndex(Yg);return e<0?o.icon:c[e].icon}));d.bind("label").toMany(c,"isOn",((...t)=>{const e=t.findIndex(Yg);return KU(a,e<0?o.label:c[e].label)}));d.bind("isOn").toMany(c,"isOn",((...t)=>t.some(Yg)));d.bind("class").toMany(c,"isOn",((...t)=>t.some(Yg)?"ck-splitbutton_flatten":undefined));d.on("execute",(()=>{if(!c.some((({isOn:t})=>t))){o.fire("execute")}else{l.isOpen=!l.isOpen}}));l.bind("isEnabled").toMany(c,"isEnabled",((...t)=>t.some(Yg)));this.listenTo(l,"execute",(()=>{this.editor.editing.view.focus()}));return l}))}_createButton(t){const e=t.name;this.editor.ui.componentFactory.add(ZU(e),(n=>{const i=this.editor.commands.get("imageStyle");const o=new xd(n);o.set({label:t.title,icon:t.icon,tooltip:true,isToggleable:true});o.bind("isEnabled").to(i,"isEnabled");o.bind("isOn").to(i,"value",(t=>t===e));o.on("execute",this._executeCommand.bind(this,e));return o}))}_executeCommand(t){this.editor.execute("imageStyle",{value:t});this.editor.editing.view.focus()}}function WU(t,e){for(const n of t){if(e[n.title]){n.title=e[n.title]}}return t}function ZU(t){return`imageStyle:${t}`}function KU(t,e){return(t?t+": ":"")+e}class YU extends rh{static get requires(){return[jU,$U]}static get pluginName(){return"ImageStyle"}}class QU extends rh{static get requires(){return[_L,rj]}static get pluginName(){return"ImageToolbar"}afterInit(){const t=this.editor;const e=t.t;const n=t.plugins.get(_L);const i=t.plugins.get("ImageUtils");n.register("image",{ariaLabel:e("Image toolbar"),items:JU(t.config.get("image.toolbar")||[]),getRelatedElement:t=>i.getClosestSelectedImageWidget(t)})}}function JU(t){return t.map((t=>st(t)?t.name:t))}class XU extends(null&&Plugin){static get requires(){return[ImageEditing,ImageUtils]}static get pluginName(){return"PictureEditing"}afterInit(){const t=this.editor;if(t.plugins.has("ImageBlockEditing")){t.model.schema.extend("imageBlock",{allowAttributes:["sources"]})}if(t.plugins.has("ImageInlineEditing")){t.model.schema.extend("imageInline",{allowAttributes:["sources"]})}this._setupConversion();this._setupImageUploadEditingIntegration()}_setupConversion(){const t=this.editor;const e=t.conversion;const n=t.plugins.get("ImageUtils");e.for("upcast").add(upcastPicture(n));e.for("downcast").add(downcastSourcesAttribute(n))}_setupImageUploadEditingIntegration(){const t=this.editor;if(!t.plugins.has("ImageUploadEditing")){return}const e=t.plugins.get("ImageUploadEditing");this.listenTo(e,"uploadComplete",((e,{imageElement:n,data:i})=>{const o=i.sources;if(!o){return}t.model.change((t=>{t.setAttributes({sources:o},n)}))}))}}class tq extends rh{static get pluginName(){return"IndentEditing"}init(){const t=this.editor;t.commands.add("indent",new lh(t));t.commands.add("outdent",new lh(t))}}const eq=' ';const nq=' ';class iq extends rh{static get pluginName(){return"IndentUI"}init(){const t=this.editor;const e=t.locale;const n=t.t;const i=e.uiLanguageDirection=="ltr"?eq:nq;const o=e.uiLanguageDirection=="ltr"?nq:eq;this._defineButton("indent",n("Increase indent"),i);this._defineButton("outdent",n("Decrease indent"),o)}_defineButton(t,e,n){const i=this.editor;i.ui.componentFactory.add(t,(o=>{const r=i.commands.get(t);const s=new xd(o);s.set({label:e,icon:n,tooltip:true});s.bind("isEnabled").to(r,"isEnabled");this.listenTo(s,"execute",(()=>{i.execute(t);i.editing.view.focus()}));return s}))}}class oq extends rh{static get pluginName(){return"Indent"}static get requires(){return[tq,iq]}}class rq extends ah{constructor(t,e){super(t);this._indentBehavior=e}refresh(){const t=this.editor;const e=t.model;const n=ml(e.document.selection.getSelectedBlocks());if(!n||!this._isIndentationChangeAllowed(n)){this.isEnabled=false;return}this.isEnabled=this._indentBehavior.checkEnabled(n.getAttribute("blockIndent"))}execute(){const t=this.editor.model;const e=this._getBlocksToChange();t.change((t=>{for(const n of e){const e=n.getAttribute("blockIndent");const i=this._indentBehavior.getNextIndent(e);if(i){t.setAttribute("blockIndent",i,n)}else{t.removeAttribute("blockIndent",n)}}}))}_getBlocksToChange(){const t=this.editor.model;const e=t.document.selection;const n=Array.from(e.getSelectedBlocks());return n.filter((t=>this._isIndentationChangeAllowed(t)))}_isIndentationChangeAllowed(t){const e=this.editor;if(!e.model.schema.checkAttribute(t,"blockIndent")){return false}if(!e.plugins.has("DocumentListUtils")){return true}if(!this._indentBehavior.isForward){return true}const n=e.plugins.get("DocumentListUtils");return!n.isListItemBlock(t)}}class sq{constructor(t){this.isForward=t.direction==="forward";this.offset=t.offset;this.unit=t.unit}checkEnabled(t){const e=parseFloat(t||"0");return this.isForward||e>0}getNextIndent(t){const e=parseFloat(t||"0");const n=!t||t.endsWith(this.unit);if(!n){return this.isForward?this.offset+this.unit:undefined}const i=this.isForward?this.offset:-this.offset;const o=e+i;return o>0?o+this.unit:undefined}}class aq{constructor(t){this.isForward=t.direction==="forward";this.classes=t.classes}checkEnabled(t){const e=this.classes.indexOf(t);if(this.isForward){return e=0}}getNextIndent(t){const e=this.classes.indexOf(t);const n=this.isForward?1:-1;return this.classes[e+n]}}const cq=["paragraph","heading1","heading2","heading3","heading4","heading5","heading6"];class lq extends rh{constructor(t){super(t);t.config.define("indentBlock",{offset:40,unit:"px"})}static get pluginName(){return"IndentBlock"}init(){const t=this.editor;const e=t.config.get("indentBlock");if(e.classes&&e.classes.length){this._setupConversionUsingClasses(e.classes);t.commands.add("indentBlock",new rq(t,new aq({direction:"forward",classes:e.classes})));t.commands.add("outdentBlock",new rq(t,new aq({direction:"backward",classes:e.classes})))}else{t.data.addStyleProcessorRules(Q_);this._setupConversionUsingOffset();t.commands.add("indentBlock",new rq(t,new sq({direction:"forward",offset:e.offset,unit:e.unit})));t.commands.add("outdentBlock",new rq(t,new sq({direction:"backward",offset:e.offset,unit:e.unit})))}}afterInit(){const t=this.editor;const e=t.model.schema;const n=t.commands.get("indent");const i=t.commands.get("outdent");const o=t.config.get("heading.options");const r=o&&o.map((t=>t.model));const s=r||cq;s.forEach((t=>{if(e.isRegistered(t)){e.extend(t,{allowAttributes:"blockIndent"})}}));e.setAttributeProperties("blockIndent",{isFormatting:true});n.registerChildCommand(t.commands.get("indentBlock"));i.registerChildCommand(t.commands.get("outdentBlock"))}_setupConversionUsingOffset(){const t=this.editor.conversion;const e=this.editor.locale;const n=e.contentLanguageDirection==="rtl"?"margin-right":"margin-left";t.for("upcast").attributeToAttribute({view:{styles:{[n]:/[\s\S]+/}},model:{key:"blockIndent",value:t=>{if(!t.is("element","li")){return t.getStyle(n)}}}});t.for("downcast").attributeToAttribute({model:"blockIndent",view:t=>({key:"style",value:{[n]:t}})})}_setupConversionUsingClasses(t){const e={model:{key:"blockIndent",values:[]},view:{}};for(const n of t){e.model.values.push(n);e.view[n]={key:"class",value:[n]}}this.editor.conversion.attributeToAttribute(e)}}function dq(t,e){e=e||ol(t);return`${t}:${e}`}function uq(t){const[e,n]=t.split(":");return{languageCode:e,textDirection:n}}class hq extends ah{refresh(){const t=this.editor.model;const e=t.document;this.value=this._getValueFromFirstAllowedNode();this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"language")}execute({languageCode:t,textDirection:e}={}){const n=this.editor.model;const i=n.document;const o=i.selection;const r=t?dq(t,e):false;n.change((t=>{if(o.isCollapsed){if(r){t.setSelectionAttribute("language",r)}else{t.removeSelectionAttribute("language")}}else{const e=n.schema.getValidRanges(o.getRanges(),"language");for(const n of e){if(r){t.setAttribute("language",r,n)}else{t.removeAttribute("language",n)}}}}))}_getValueFromFirstAllowedNode(){const t=this.editor.model;const e=t.schema;const n=t.document.selection;if(n.isCollapsed){return n.getAttribute("language")||false}for(const t of n.getRanges()){for(const n of t.getItems()){if(e.checkAttribute(n,"language")){return n.getAttribute("language")||false}}}return false}}class gq extends rh{static get pluginName(){return"TextPartLanguageEditing"}constructor(t){super(t);t.config.define("language",{textPartLanguage:[{title:"Arabic",languageCode:"ar"},{title:"French",languageCode:"fr"},{title:"Spanish",languageCode:"es"}]})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"language"});t.model.schema.setAttributeProperties("language",{copyOnEnter:true});this._defineConverters();t.commands.add("textPartLanguage",new hq(t))}_defineConverters(){const t=this.editor.conversion;t.for("upcast").elementToAttribute({model:{key:"language",value:t=>{const e=t.getAttribute("lang");const n=t.getAttribute("dir");return dq(e,n)}},view:{name:"span",attributes:{lang:/[\s\S]+/}}});t.for("downcast").attributeToElement({model:"language",view:(t,{writer:e},n)=>{if(!t){return}if(!n.item.is("$textProxy")&&!n.item.is("documentSelection")){return}const{languageCode:i,textDirection:o}=uq(t);return e.createAttributeElement("span",{lang:i,dir:o})}})}}class mq extends rh{static get pluginName(){return"TextPartLanguageUI"}init(){const t=this.editor;const e=t.t;const n=t.config.get("language.textPartLanguage");const i=e("Choose language");const o=e("Remove language");const r=e("Language");t.ui.componentFactory.add("textPartLanguage",(e=>{const s=new gl;const a={};const c=t.commands.get("textPartLanguage");s.add({type:"button",model:new AD({label:o,languageCode:false,withText:true})});s.add({type:"separator"});for(const t of n){const e={type:"button",model:new AD({label:t.title,languageCode:t.languageCode,role:"menuitemradio",textDirection:t.textDirection,withText:true})};const n=dq(t.languageCode,t.textDirection);e.model.bind("isOn").to(c,"value",(t=>t===n));s.add(e);a[n]=t.title}const l=Dy(e);By(l,s,{ariaLabel:r,role:"menu"});l.buttonView.set({ariaLabel:r,ariaLabelledBy:undefined,isOn:false,withText:true,tooltip:r});l.extendTemplate({attributes:{class:["ck-text-fragment-language-dropdown"]}});l.bind("isEnabled").to(c,"isEnabled");l.buttonView.bind("label").to(c,"value",(t=>t&&a[t]||i));this.listenTo(l,"execute",(e=>{c.execute({languageCode:e.source.languageCode,textDirection:e.source.textDirection});t.editing.view.focus()}));return l}))}}class fq extends rh{static get requires(){return[gq,mq]}static get pluginName(){return"TextPartLanguage"}}class pq{constructor(){this._definitions=new Set}get length(){return this._definitions.size}add(t){if(Array.isArray(t)){t.forEach((t=>this._definitions.add(t)))}else{this._definitions.add(t)}}getDispatcher(){return t=>{t.on("attribute:linkHref",((t,e,n)=>{if(!n.consumable.test(e.item,"attribute:linkHref")){return}if(!(e.item.is("selection")||n.schema.isInline(e.item))){return}const i=n.writer;const o=i.document.selection;for(const t of this._definitions){const r=i.createAttributeElement("a",t.attributes,{priority:5});if(t.classes){i.addClass(t.classes,r)}for(const e in t.styles){i.setStyle(e,t.styles[e],r)}i.setCustomProperty("link",true,r);if(t.callback(e.attributeNewValue)){if(e.item.is("selection")){i.wrap(o.getFirstRange(),r)}else{i.wrap(n.mapper.toViewRange(e.range),r)}}else{i.unwrap(n.mapper.toViewRange(e.range),r)}}}),{priority:"high"})}}getDispatcherForLinkedImage(){return t=>{t.on("attribute:linkHref:imageBlock",((t,e,{writer:n,mapper:i})=>{const o=i.toViewElement(e.item);const r=Array.from(o.getChildren()).find((t=>t.is("element","a")));for(const t of this._definitions){const i=bl(t.attributes);if(t.callback(e.attributeNewValue)){for(const[t,e]of i){if(t==="class"){n.addClass(e,r)}else{n.setAttribute(t,e,r)}}if(t.classes){n.addClass(t.classes,r)}for(const e in t.styles){n.setStyle(e,t.styles[e],r)}}else{for(const[t,e]of i){if(t==="class"){n.removeClass(e,r)}else{n.removeAttribute(t,r)}}if(t.classes){n.removeClass(t.classes,r)}for(const e in t.styles){n.removeStyle(e,r)}}}}))}}}const kq=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g;const bq=/^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;const wq=/^[\S]+@((?![-_])(?:[-\w\u00a1-\uffff]{0,63}[^-_]\.))+(?:[a-z\u00a1-\uffff]{2,})$/i;const Aq=/^((\w+:(\/{2,})?)|(\W))/i;const Cq="Ctrl+K";function _q(t){return t.is("attributeElement")&&!!t.getCustomProperty("link")}function vq(t,{writer:e}){const n=e.createAttributeElement("a",{href:t},{priority:5});e.setCustomProperty("link",true,n);return n}function yq(t){const e=String(t);return xq(e)?e:"#"}function xq(t){const e=t.replace(kq,"");return!!e.match(bq)}function Eq(t,e){const n={"Open in a new tab":t("Open in a new tab"),Downloadable:t("Downloadable")};e.forEach((t=>{if("label"in t&&n[t.label]){t.label=n[t.label]}return t}));return e}function Dq(t){const e=[];if(t){for(const[n,i]of Object.entries(t)){const t=Object.assign({},i,{id:`link${AO(n)}`});e.push(t)}}return e}function Sq(t,e){if(!t){return false}return e.checkAttribute(t.name,"linkHref")}function Tq(t){return wq.test(t)}function Bq(t,e){const n=Tq(t)?"mailto:":e;const i=!!n&&!Iq(t);return t&&i?n+t:t}function Iq(t){return Aq.test(t)}function Mq(t){window.open(t,"_blank","noopener")}class Lq extends ah{constructor(){super(...arguments);this.manualDecorators=new gl;this.automaticDecorators=new pq}restoreManualDecoratorStates(){for(const t of this.manualDecorators){t.value=this._getDecoratorStateFromModel(t.id)}}refresh(){const t=this.editor.model;const e=t.document.selection;const n=e.getSelectedElement()||ml(e.getSelectedBlocks());if(Sq(n,t.schema)){this.value=n.getAttribute("linkHref");this.isEnabled=t.schema.checkAttribute(n,"linkHref")}else{this.value=e.getAttribute("linkHref");this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}for(const t of this.manualDecorators){t.value=this._getDecoratorStateFromModel(t.id)}}execute(t,e={}){const n=this.editor.model;const i=n.document.selection;const o=[];const r=[];for(const t in e){if(e[t]){o.push(t)}else{r.push(t)}}n.change((e=>{if(i.isCollapsed){const s=i.getFirstPosition();if(i.hasAttribute("linkHref")){const a=Nq(i);let c=XT(s,"linkHref",i.getAttribute("linkHref"),n);if(i.getAttribute("linkHref")===a){c=this._updateLinkContent(n,e,c,t)}e.setAttribute("linkHref",t,c);o.forEach((t=>{e.setAttribute(t,true,c)}));r.forEach((t=>{e.removeAttribute(t,c)}));e.setSelection(e.createPositionAfter(c.end.nodeBefore))}else if(t!==""){const r=bl(i.getAttributes());r.set("linkHref",t);o.forEach((t=>{r.set(t,true)}));const{end:a}=n.insertContent(e.createText(t,r),s);e.setSelection(a)}["linkHref",...o,...r].forEach((t=>{e.removeSelectionAttribute(t)}))}else{const s=n.schema.getValidRanges(i.getRanges(),"linkHref");const a=[];for(const t of i.getSelectedBlocks()){if(n.schema.checkAttribute(t,"linkHref")){a.push(e.createRangeOn(t))}}const c=a.slice();for(const t of s){if(this._isRangeToUpdate(t,a)){c.push(t)}}for(const s of c){let a=s;if(c.length===1){const o=Nq(i);if(i.getAttribute("linkHref")===o){a=this._updateLinkContent(n,e,s,t);e.setSelection(e.createSelection(a))}}e.setAttribute("linkHref",t,a);o.forEach((t=>{e.setAttribute(t,true,a)}));r.forEach((t=>{e.removeAttribute(t,a)}))}}}))}_getDecoratorStateFromModel(t){const e=this.editor.model;const n=e.document.selection;const i=n.getSelectedElement();if(Sq(i,e.schema)){return i.getAttribute(t)}return n.getAttribute(t)}_isRangeToUpdate(t,e){for(const n of e){if(n.containsRange(t)){return false}}return true}_updateLinkContent(t,e,n,i){const o=e.createText(i,{linkHref:i});return t.insertContent(o,n)}}function Nq(t){if(t.isCollapsed){const e=t.getFirstPosition();return e.textNode&&e.textNode.data}else{const e=Array.from(t.getFirstRange().getItems());if(e.length>1){return null}const n=e[0];if(n.is("$text")||n.is("$textProxy")){return n.data}return null}}class zq extends ah{refresh(){const t=this.editor.model;const e=t.document.selection;const n=e.getSelectedElement();if(Sq(n,t.schema)){this.isEnabled=t.schema.checkAttribute(n,"linkHref")}else{this.isEnabled=t.schema.checkAttributeInSelection(e,"linkHref")}}execute(){const t=this.editor;const e=this.editor.model;const n=e.document.selection;const i=t.commands.get("link");e.change((t=>{const o=n.isCollapsed?[XT(n.getFirstPosition(),"linkHref",n.getAttribute("linkHref"),e)]:e.schema.getValidRanges(n.getRanges(),"linkHref");for(const e of o){t.removeAttribute("linkHref",e);if(i){for(const n of i.manualDecorators){t.removeAttribute(n.id,e)}}}}))}}class Pq extends(gt()){constructor({id:t,label:e,attributes:n,classes:i,styles:o,defaultValue:r}){super();this.id=t;this.set("value",undefined);this.defaultValue=r;this.label=e;this.attributes=n;this.classes=i;this.styles=o}_createPattern(){return{attributes:this.attributes,classes:this.classes,styles:this.styles}}}var Rq=n(3925);var Vq={injectType:"singletonStyleTag",attributes:{"data-cke":true}};Vq.insert="head";Vq.singleton=true;var Oq=Nl()(Rq.Z,Vq);const Fq=Rq.Z.locals||{};const jq="ck-link_selected";const Hq="automatic";const Uq="manual";const qq=/^(https?:)?\/\//;class Gq extends rh{static get pluginName(){return"LinkEditing"}static get requires(){return[PT,wT,_M]}constructor(t){super(t);t.config.define("link",{addTargetToExternalLinks:false})}init(){const t=this.editor;t.model.schema.extend("$text",{allowAttributes:"linkHref"});t.conversion.for("dataDowncast").attributeToElement({model:"linkHref",view:vq});t.conversion.for("editingDowncast").attributeToElement({model:"linkHref",view:(t,e)=>vq(yq(t),e)});t.conversion.for("upcast").elementToAttribute({view:{name:"a",attributes:{href:true}},model:{key:"linkHref",value:t=>t.getAttribute("href")}});t.commands.add("link",new Lq(t));t.commands.add("unlink",new zq(t));const e=Eq(t.t,Dq(t.config.get("link.decorators")));this._enableAutomaticDecorators(e.filter((t=>t.mode===Hq)));this._enableManualDecorators(e.filter((t=>t.mode===Uq)));const n=t.plugins.get(PT);n.registerAttribute("linkHref");eB(t,"linkHref","a",jq);this._enableLinkOpen();this._enableSelectionAttributesFixer();this._enableClipboardIntegration()}_enableAutomaticDecorators(t){const e=this.editor;const n=e.commands.get("link");const i=n.automaticDecorators;if(e.config.get("link.addTargetToExternalLinks")){i.add({id:"linkIsExternal",mode:Hq,callback:t=>!!t&&qq.test(t),attributes:{target:"_blank",rel:"noopener noreferrer"}})}i.add(t);if(i.length){e.conversion.for("downcast").add(i.getDispatcher())}}_enableManualDecorators(t){if(!t.length){return}const e=this.editor;const n=e.commands.get("link");const i=n.manualDecorators;t.forEach((t=>{e.model.schema.extend("$text",{allowAttributes:t.id});const n=new Pq(t);i.add(n);e.conversion.for("downcast").attributeToElement({model:n.id,view:(t,{writer:e,schema:i},{item:o})=>{if(!(o.is("selection")||i.isInline(o))){return}if(t){const t=e.createAttributeElement("a",n.attributes,{priority:5});if(n.classes){e.addClass(n.classes,t)}for(const i in n.styles){e.setStyle(i,n.styles[i],t)}e.setCustomProperty("link",true,t);return t}}});e.conversion.for("upcast").elementToAttribute({view:{name:"a",...n._createPattern()},model:{key:n.id}})}))}_enableLinkOpen(){const t=this.editor;const e=t.editing.view;const n=e.document;this.listenTo(n,"click",((t,e)=>{const n=l.isMac?e.domEvent.metaKey:e.domEvent.ctrlKey;if(!n){return}let i=e.domTarget;if(i.tagName.toLowerCase()!="a"){i=i.closest("a")}if(!i){return}const o=i.getAttribute("href");if(!o){return}t.stop();e.preventDefault();Mq(o)}),{context:"$capture"});this.listenTo(n,"keydown",((e,n)=>{const i=t.commands.get("link");const o=i.value;const r=!!o&&n.keyCode===$c.enter&&n.altKey;if(!r){return}e.stop();Mq(o)}))}_enableSelectionAttributesFixer(){const t=this.editor;const e=t.model;const n=e.document.selection;this.listenTo(n,"change:attribute",((t,{attributeKeys:i})=>{if(!i.includes("linkHref")||n.hasAttribute("linkHref")){return}e.change((t=>{$q(t,Wq(e.schema))}))}))}_enableClipboardIntegration(){const t=this.editor;const e=t.model;const n=this.editor.config.get("link.defaultProtocol");if(!n){return}this.listenTo(t.plugins.get("ClipboardPipeline"),"contentInsertion",((t,i)=>{e.change((t=>{const e=t.createRangeIn(i.content);for(const i of e.getItems()){if(i.hasAttribute("linkHref")){const e=Bq(i.getAttribute("linkHref"),n);t.setAttribute("linkHref",e,i)}}}))}))}}function $q(t,e){t.removeSelectionAttribute("linkHref");for(const n of e){t.removeSelectionAttribute(n)}}function Wq(t){const e=t.getDefinition("$text").allowAttributes;return e.filter((t=>t.startsWith("link")))}var Zq=n(4874);var Kq={injectType:"singletonStyleTag",attributes:{"data-cke":true}};Kq.insert="head";Kq.singleton=true;var Yq=Nl()(Zq.Z,Kq);const Qq=Zq.Z.locals||{};class Jq extends Ol{constructor(t,e){super(t);this.focusTracker=new fl;this.keystrokes=new pl;this._focusables=new Il;const n=t.t;this.urlInputView=this._createUrlInput();this.saveButtonView=this._createButton(n("Save"),Kv.check,"ck-button-save");this.saveButtonView.type="submit";this.cancelButtonView=this._createButton(n("Cancel"),Kv.cancel,"ck-button-cancel","cancel");this._manualDecoratorSwitches=this._createManualDecoratorSwitches(e);this.children=this._createFormChildren(e.manualDecorators);this._focusCycler=new Xu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});const i=["ck","ck-link-form","ck-responsive-form"];if(e.manualDecorators.length){i.push("ck-link-form_layout-vertical","ck-vertical-form")}this.setTemplate({tag:"form",attributes:{class:i,tabindex:"-1"},children:this.children})}getDecoratorSwitchesState(){return Array.from(this._manualDecoratorSwitches).reduce(((t,e)=>{t[e.name]=e.isOn;return t}),{})}render(){super.render();o({view:this});const t=[this.urlInputView,...this._manualDecoratorSwitches,this.saveButtonView,this.cancelButtonView];t.forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}));this.keystrokes.listenTo(this.element)}destroy(){super.destroy();this.focusTracker.destroy();this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createUrlInput(){const t=this.locale.t;const e=new Tu(this.locale,jy);e.label=t("Link URL");return e}_createButton(t,e,n,i){const o=new xd(this.locale);o.set({label:t,icon:e,tooltip:true});o.extendTemplate({attributes:{class:n}});if(i){o.delegate("execute").to(this,i)}return o}_createManualDecoratorSwitches(t){const e=this.createCollection();for(const n of t.manualDecorators){const i=new Bd(this.locale);i.set({name:n.id,label:n.label,withText:true});i.bind("isOn").toMany([n,t],"value",((t,e)=>e===undefined&&t===undefined?!!n.defaultValue:!!t));i.on("execute",(()=>{n.set("value",!i.isOn)}));e.add(i)}return e}_createFormChildren(t){const e=this.createCollection();e.add(this.urlInputView);if(t.length){const t=new Ol;t.setTemplate({tag:"ul",children:this._manualDecoratorSwitches.map((t=>({tag:"li",children:[t],attributes:{class:["ck","ck-list__item"]}}))),attributes:{class:["ck","ck-reset","ck-list"]}});e.add(t)}e.add(this.saveButtonView);e.add(this.cancelButtonView);return e}}var Xq=n(7536);var tG={injectType:"singletonStyleTag",attributes:{"data-cke":true}};tG.insert="head";tG.singleton=true;var eG=Nl()(Xq.Z,tG);const nG=Xq.Z.locals||{};const iG=' ';class oG extends Ol{constructor(t){super(t);this.focusTracker=new fl;this.keystrokes=new pl;this._focusables=new Il;const e=t.t;this.previewButtonView=this._createPreviewButton();this.unlinkButtonView=this._createButton(e("Unlink"),iG,"unlink");this.editButtonView=this._createButton(e("Edit link"),Kv.pencil,"edit");this.set("href",undefined);this._focusCycler=new Xu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});this.setTemplate({tag:"div",attributes:{class:["ck","ck-link-actions","ck-responsive-form"],tabindex:"-1"},children:[this.previewButtonView,this.editButtonView,this.unlinkButtonView]})}render(){super.render();const t=[this.previewButtonView,this.editButtonView,this.unlinkButtonView];t.forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}));this.keystrokes.listenTo(this.element)}destroy(){super.destroy();this.focusTracker.destroy();this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}_createButton(t,e,n){const i=new xd(this.locale);i.set({label:t,icon:e,tooltip:true});i.delegate("execute").to(this,n);return i}_createPreviewButton(){const t=new xd(this.locale);const e=this.bindTemplate;const n=this.t;t.set({withText:true,tooltip:n("Open link in new tab")});t.extendTemplate({attributes:{class:["ck","ck-link-actions__preview"],href:e.to("href",(t=>t&&yq(t))),target:"_blank",rel:"noopener noreferrer"}});t.bind("label").to(this,"href",(t=>t||n("This link has no URL")));t.bind("isEnabled").to(this,"href",(t=>!!t));t.template.tag="a";t.template.eventListeners={};return t}}const rG=' ';const sG="link-ui";class aG extends rh{constructor(){super(...arguments);this.actionsView=null;this.formView=null}static get requires(){return[MD]}static get pluginName(){return"LinkUI"}init(){const t=this.editor;t.editing.view.addObserver(r_);this._balloon=t.plugins.get(MD);this._createToolbarLinkButton();this._enableBalloonActivators();t.conversion.for("editingDowncast").markerToHighlight({model:sG,view:{classes:["ck-fake-link-selection"]}});t.conversion.for("editingDowncast").markerToElement({model:sG,view:{name:"span",classes:["ck-fake-link-selection","ck-fake-link-selection_collapsed"]}})}destroy(){super.destroy();if(this.formView){this.formView.destroy()}if(this.actionsView){this.actionsView.destroy()}}_createViews(){this.actionsView=this._createActionsView();this.formView=this._createFormView();this._enableUserBalloonInteractions()}_createActionsView(){const t=this.editor;const e=new oG(t.locale);const n=t.commands.get("link");const i=t.commands.get("unlink");e.bind("href").to(n,"value");e.editButtonView.bind("isEnabled").to(n);e.unlinkButtonView.bind("isEnabled").to(i);this.listenTo(e,"edit",(()=>{this._addFormView()}));this.listenTo(e,"unlink",(()=>{t.execute("unlink");this._hideUI()}));e.keystrokes.set("Esc",((t,e)=>{this._hideUI();e()}));e.keystrokes.set(Cq,((t,e)=>{this._addFormView();e()}));return e}_createFormView(){const t=this.editor;const n=t.commands.get("link");const i=t.config.get("link.defaultProtocol");const o=new(e(Jq))(t.locale,n);o.urlInputView.fieldView.bind("value").to(n,"value");o.urlInputView.bind("isEnabled").to(n,"isEnabled");o.saveButtonView.bind("isEnabled").to(n);this.listenTo(o,"submit",(()=>{const{value:e}=o.urlInputView.fieldView.element;const n=Bq(e,i);t.execute("link",n,o.getDecoratorSwitchesState());this._closeFormView()}));this.listenTo(o,"cancel",(()=>{this._closeFormView()}));o.keystrokes.set("Esc",((t,e)=>{this._closeFormView();e()}));return o}_createToolbarLinkButton(){const t=this.editor;const e=t.commands.get("link");const n=t.t;t.ui.componentFactory.add("link",(t=>{const i=new xd(t);i.isEnabled=true;i.label=n("Link");i.icon=rG;i.keystroke=Cq;i.tooltip=true;i.isToggleable=true;i.bind("isEnabled").to(e,"isEnabled");i.bind("isOn").to(e,"value",(t=>!!t));this.listenTo(i,"execute",(()=>this._showUI(true)));return i}))}_enableBalloonActivators(){const t=this.editor;const e=t.editing.view.document;this.listenTo(e,"click",(()=>{const t=this._getSelectedLinkElement();if(t){this._showUI()}}));t.keystrokes.set(Cq,((e,n)=>{n();if(t.commands.get("link").isEnabled){this._showUI(true)}}))}_enableUserBalloonInteractions(){this.editor.keystrokes.set("Tab",((t,e)=>{if(this._areActionsVisible&&!this.actionsView.focusTracker.isFocused){this.actionsView.focus();e()}}),{priority:"high"});this.editor.keystrokes.set("Esc",((t,e)=>{if(this._isUIVisible){this._hideUI();e()}}));t({emitter:this.formView,activator:()=>this._isUIInPanel,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUI()})}_addActionsView(){if(!this.actionsView){this._createViews()}if(this._areActionsInPanel){return}this._balloon.add({view:this.actionsView,position:this._getBalloonPositionData()})}_addFormView(){if(!this.formView){this._createViews()}if(this._isFormInPanel){return}const t=this.editor;const e=t.commands.get("link");this.formView.disableCssTransitions();this._balloon.add({view:this.formView,position:this._getBalloonPositionData()});if(this._balloon.visibleView===this.formView){this.formView.urlInputView.fieldView.select()}this.formView.enableCssTransitions();this.formView.urlInputView.fieldView.element.value=e.value||""}_closeFormView(){const t=this.editor.commands.get("link");t.restoreManualDecoratorStates();if(t.value!==undefined){this._removeFormView()}else{this._hideUI()}}_removeFormView(){if(this._isFormInPanel){this.formView.saveButtonView.focus();this._balloon.remove(this.formView);this.editor.editing.view.focus();this._hideFakeVisualSelection()}}_showUI(t=false){if(!this.formView){this._createViews()}if(!this._getSelectedLinkElement()){this._showFakeVisualSelection();this._addActionsView();if(t){this._balloon.showStack("main")}this._addFormView()}else{if(this._areActionsVisible){this._addFormView()}else{this._addActionsView()}if(t){this._balloon.showStack("main")}}this._startUpdatingUI()}_hideUI(){if(!this._isUIInPanel){return}const t=this.editor;this.stopListening(t.ui,"update");this.stopListening(this._balloon,"change:visibleView");t.editing.view.focus();this._removeFormView();this._balloon.remove(this.actionsView);this._hideFakeVisualSelection()}_startUpdatingUI(){const t=this.editor;const e=t.editing.view.document;let n=this._getSelectedLinkElement();let i=r();const o=()=>{const t=this._getSelectedLinkElement();const e=r();if(n&&!t||!n&&e!==i){this._hideUI()}else if(this._isUIVisible){this._balloon.updatePosition(this._getBalloonPositionData())}n=t;i=e};function r(){return e.selection.focus.getAncestors().reverse().find((t=>t.is("element")))}this.listenTo(t.ui,"update",o);this.listenTo(this._balloon,"change:visibleView",o)}get _isFormInPanel(){return!!this.formView&&this._balloon.hasView(this.formView)}get _areActionsInPanel(){return!!this.actionsView&&this._balloon.hasView(this.actionsView)}get _areActionsVisible(){return!!this.actionsView&&this._balloon.visibleView===this.actionsView}get _isUIInPanel(){return this._isFormInPanel||this._areActionsInPanel}get _isUIVisible(){const t=this._balloon.visibleView;return!!this.formView&&t==this.formView||this._areActionsVisible}_getBalloonPositionData(){const t=this.editor.editing.view;const e=this.editor.model;const n=t.document;let i;if(e.markers.has(sG)){const e=Array.from(this.editor.editing.mapper.markerNameToElements(sG));const n=t.createRange(t.createPositionBefore(e[0]),t.createPositionAfter(e[e.length-1]));i=t.domConverter.viewRangeToDom(n)}else{i=()=>{const e=this._getSelectedLinkElement();return e?t.domConverter.mapViewToDom(e):t.domConverter.viewRangeToDom(n.selection.getFirstRange())}}return{target:i}}_getSelectedLinkElement(){const t=this.editor.editing.view;const e=t.document.selection;const n=e.getSelectedElement();if(e.isCollapsed||n&&BM(n)){return cG(e.getFirstPosition())}else{const n=e.getFirstRange().getTrimmed();const i=cG(n.start);const o=cG(n.end);if(!i||i!=o){return null}if(t.createRangeIn(i).getTrimmed().isEqual(n)){return i}else{return null}}}_showFakeVisualSelection(){const t=this.editor.model;t.change((e=>{const n=t.document.selection.getFirstRange();if(t.markers.has(sG)){e.updateMarker(sG,{range:n})}else{if(n.start.isAtEnd){const i=n.start.getLastMatchingPosition((({item:e})=>!t.schema.isContent(e)),{boundaries:n});e.addMarker(sG,{usingOperation:false,affectsData:false,range:e.createRange(i,n.end)})}else{e.addMarker(sG,{usingOperation:false,affectsData:false,range:n})}}}))}_hideFakeVisualSelection(){const t=this.editor.model;if(t.markers.has(sG)){t.change((t=>{t.removeMarker(sG)}))}}}function cG(t){return t.getAncestors().find((t=>_q(t)))||null}const lG=4;const dG=new RegExp("(^|\\s)"+"("+"("+"(?:(?:(?:https?|ftp):)?\\/\\/)"+"(?:\\S+(?::\\S*)?@)?"+"(?:"+"(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])"+"(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}"+"(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))"+"|"+"("+"((?!www\\.)|(www\\.))"+"(?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.)+"+"(?:[a-z\\u00a1-\\uffff]{2,63})"+")"+")"+"(?::\\d{2,5})?"+"(?:[/?#]\\S*)?"+")"+"|"+"("+"(www.|(\\S+@))"+"((?![-_])(?:[-_a-z0-9\\u00a1-\\uffff]{1,63}\\.))+"+"(?:[a-z\\u00a1-\\uffff]{2,63})"+")"+")$","i");const uG=2;class hG extends rh{static get requires(){return[MT,Gq]}static get pluginName(){return"AutoLink"}init(){const t=this.editor;const e=t.model.document.selection;e.on("change:range",(()=>{this.isEnabled=!e.anchor.parent.is("element","codeBlock")}));this._enableTypingHandling()}afterInit(){this._enableEnterHandling();this._enableShiftEnterHandling();this._enablePasteLinking()}_expandLinkRange(t,e){if(e.textNode&&e.textNode.hasAttribute("linkHref")){return XT(e,"linkHref",e.textNode.getAttribute("linkHref"),t)}else{return null}}_selectEntireLinks(t,e){const n=this.editor;const i=n.model;const o=i.document.selection;const r=o.getFirstPosition();const s=o.getLastPosition();let a=e.getJoined(this._expandLinkRange(i,r)||e);if(a){a=a.getJoined(this._expandLinkRange(i,s)||e)}if(a&&(a.start.isBefore(r)||a.end.isAfter(s))){t.setSelection(a)}}_enablePasteLinking(){const t=this.editor;const e=t.model;const n=e.document.selection;const i=t.plugins.get("ClipboardPipeline");const o=t.commands.get("link");i.on("inputTransformation",((t,i)=>{if(!this.isEnabled||!o.isEnabled||n.isCollapsed){return}if(n.rangeCount>1){return}const r=n.getFirstRange();const s=i.dataTransfer.getData("text/plain");if(!s){return}const a=s.match(dG);if(a&&a[2]===s){e.change((t=>{this._selectEntireLinks(t,r);o.execute(s)}));t.stop()}}),{priority:"high"})}_enableTypingHandling(){const t=this.editor;const e=new zT(t.model,(t=>{if(!gG(t)){return}const e=mG(t.substr(0,t.length-1));if(e){return{url:e}}}));e.on("matched:data",((e,n)=>{const{batch:i,range:o,url:r}=n;if(!i.isTyping){return}const s=o.end.getShiftedBy(-1);const a=s.getShiftedBy(-r.length);const c=t.model.createRange(a,s);this._applyAutoLink(r,c)}));e.bind("isEnabled").to(this)}_enableEnterHandling(){const t=this.editor;const e=t.model;const n=t.commands.get("enter");if(!n){return}n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();if(!t.parent.previousSibling){return}const n=e.createRangeIn(t.parent.previousSibling);this._checkAndApplyAutoLinkOnRange(n)}))}_enableShiftEnterHandling(){const t=this.editor;const e=t.model;const n=t.commands.get("shiftEnter");if(!n){return}n.on("execute",(()=>{const t=e.document.selection.getFirstPosition();const n=e.createRange(e.createPositionAt(t.parent,0),t.getShiftedBy(-1));this._checkAndApplyAutoLinkOnRange(n)}))}_checkAndApplyAutoLinkOnRange(t){const e=this.editor.model;const{text:n,range:i}=NT(t,e);const o=mG(n);if(o){const t=e.createRange(i.end.getShiftedBy(-o.length),i.end);this._applyAutoLink(o,t)}}_applyAutoLink(t,e){const n=this.editor.model;const i=this.editor.config.get("link.defaultProtocol");const o=Bq(t,i);if(!this.isEnabled||!fG(e,n)||!Iq(o)||pG(e)){return}this._persistAutoLink(o,e)}_persistAutoLink(t,e){const n=this.editor.model;const i=this.editor.plugins.get("Delete");n.enqueueChange((o=>{o.setAttribute("linkHref",t,e);n.enqueueChange((()=>{i.requestUndoOnBackspace()}))}))}}function gG(t){return t.length>lG&&t[t.length-1]===" "&&t[t.length-2]!==" "}function mG(t){const e=dG.exec(t);return e?e[uG]:null}function fG(t,e){return e.schema.checkAttributeInSelection(e.createSelection(t),"linkHref")}function pG(t){const e=t.start.nodeAfter;return!!e&&e.hasAttribute("linkHref")}class kG extends rh{static get requires(){return[Gq,aG,hG]}static get pluginName(){return"Link"}}class bG extends rh{static get requires(){return["ImageEditing","ImageUtils",Gq]}static get pluginName(){return"LinkImageEditing"}init(){const t=this.editor;const e=t.model.schema;if(t.plugins.has("ImageBlockEditing")){e.extend("imageBlock",{allowAttributes:["linkHref"]})}t.conversion.for("upcast").add(wG(t));t.conversion.for("downcast").add(AG(t));this._enableAutomaticDecorators();this._enableManualDecorators()}_enableAutomaticDecorators(){const t=this.editor;const e=t.commands.get("link");const n=e.automaticDecorators;if(n.length){t.conversion.for("downcast").add(n.getDispatcherForLinkedImage())}}_enableManualDecorators(){const t=this.editor;const e=t.commands.get("link");for(const n of e.manualDecorators){if(t.plugins.has("ImageBlockEditing")){t.model.schema.extend("imageBlock",{allowAttributes:n.id})}if(t.plugins.has("ImageInlineEditing")){t.model.schema.extend("imageInline",{allowAttributes:n.id})}t.conversion.for("downcast").add(CG(n));t.conversion.for("upcast").add(_G(t,n))}}}function wG(t){const e=t.plugins.has("ImageInlineEditing");const n=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,i,o)=>{const r=i.viewItem;const s=n.findViewImgElement(r);if(!s){return}const a=s.findAncestor((t=>n.isBlockImageView(t)));if(e&&!a){return}const c={attributes:["href"]};if(!o.consumable.consume(r,c)){return}const l=r.getAttribute("href");if(!l){return}let d=i.modelCursor.parent;if(!d.is("element","imageBlock")){const t=o.convertItem(s,i.modelCursor);i.modelRange=t.modelRange;i.modelCursor=t.modelCursor;d=i.modelCursor.nodeBefore}if(d&&d.is("element","imageBlock")){o.writer.setAttribute("linkHref",l,d)}}),{priority:"high"})}}function AG(t){const e=t.plugins.get("ImageUtils");return t=>{t.on("attribute:linkHref:imageBlock",((t,n,i)=>{if(!i.consumable.consume(n.item,t.name)){return}const o=i.mapper.toViewElement(n.item);const r=i.writer;const s=Array.from(o.getChildren()).find((t=>t.is("element","a")));const a=e.findViewImgElement(o);const c=a.parent.is("element","picture")?a.parent:a;if(s){if(n.attributeNewValue){r.setAttribute("href",n.attributeNewValue,s)}else{r.move(r.createRangeOn(c),r.createPositionAt(o,0));r.remove(s)}}else{const t=r.createContainerElement("a",{href:n.attributeNewValue});r.insert(r.createPositionAt(o,0),t);r.move(r.createRangeOn(c),r.createPositionAt(t,0))}}),{priority:"high"})}}function CG(t){return e=>{e.on(`attribute:${t.id}:imageBlock`,((e,n,i)=>{const o=i.mapper.toViewElement(n.item);const r=Array.from(o.getChildren()).find((t=>t.is("element","a")));if(!r){return}for(const[e,n]of bl(t.attributes)){i.writer.setAttribute(e,n,r)}if(t.classes){i.writer.addClass(t.classes,r)}for(const e in t.styles){i.writer.setStyle(e,t.styles[e],r)}}))}}function _G(t,e){const n=t.plugins.has("ImageInlineEditing");const i=t.plugins.get("ImageUtils");return t=>{t.on("element:a",((t,o,r)=>{const s=o.viewItem;const a=i.findViewImgElement(s);if(!a){return}const c=a.findAncestor((t=>i.isBlockImageView(t)));if(n&&!c){return}const l=new zh(e._createPattern());const d=l.match(s);if(!d){return}if(!r.consumable.consume(s,d.match)){return}const u=o.modelCursor.nodeBefore||o.modelCursor.parent;r.writer.setAttribute(e.id,true,u)}),{priority:"high"})}}class vG extends rh{static get requires(){return[Gq,aG,"ImageBlockEditing"]}static get pluginName(){return"LinkImageUI"}init(){const t=this.editor;const e=t.editing.view.document;this.listenTo(e,"click",((e,n)=>{if(this._isSelectedLinkedImage(t.model.document.selection)){n.preventDefault();e.stop()}}),{priority:"high"});this._createToolbarLinkImageButton()}_createToolbarLinkImageButton(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("linkImage",(n=>{const i=new xd(n);const o=t.plugins.get("LinkUI");const r=t.commands.get("link");i.set({isEnabled:true,label:e("Link image"),icon:rG,keystroke:Cq,tooltip:true,isToggleable:true});i.bind("isEnabled").to(r,"isEnabled");i.bind("isOn").to(r,"value",(t=>!!t));this.listenTo(i,"execute",(()=>{if(this._isSelectedLinkedImage(t.model.document.selection)){o._addActionsView()}else{o._showUI(true)}}));return i}))}_isSelectedLinkedImage(t){const e=t.getSelectedElement();const n=this.editor.plugins.get("ImageUtils");return n.isImage(e)&&e.hasAttribute("linkHref")}}var yG=n(4330);var xG={injectType:"singletonStyleTag",attributes:{"data-cke":true}};xG.insert="head";xG.singleton=true;var EG=Nl()(yG.Z,xG);const DG=yG.Z.locals||{};class SG extends rh{static get requires(){return[bG,vG]}static get pluginName(){return"LinkImage"}}class TG{constructor(t,e){this._startElement=t;this._referenceIndent=t.getAttribute("listIndent");this._isForward=e.direction=="forward";this._includeSelf=!!e.includeSelf;this._sameAttributes=rl(e.sameAttributes||[]);this._sameIndent=!!e.sameIndent;this._lowerIndent=!!e.lowerIndent;this._higherIndent=!!e.higherIndent}static first(t,e){const n=new this(t,e);const i=n[Symbol.iterator]();return ml(i)}*[Symbol.iterator](){const t=[];for(const{node:e}of BG(this._getStartNode(),this._isForward?"forward":"backward")){const n=e.getAttribute("listIndent");if(nthis._referenceIndent){if(!this._higherIndent){continue}if(!this._isForward){t.push(e);continue}}else{if(!this._sameIndent){if(this._higherIndent){if(t.length){yield*t;t.length=0}break}continue}if(this._sameAttributes.some((t=>e.getAttribute(t)!==this._startElement.getAttribute(t)))){break}}if(t.length){yield*t;t.length=0}yield e}}_getStartNode(){if(this._includeSelf){return this._startElement}return this._isForward?this._startElement.nextSibling:this._startElement.previousSibling}}function*BG(t,e="forward"){const n=e=="forward";const i=[];let o=null;while(LG(t)){let e=null;if(o){const n=t.getAttribute("listIndent");const r=o.getAttribute("listIndent");if(n>r){i[r]=o}else if(nt.getAttribute("listIndent"))));const r=new Map;for(const t of n){r.set(t,ListWalker.first(t,{lowerIndent:true}))}for(const t of n){if(i.has(t)){continue}i.add(t);const n=t.getAttribute("listIndent")-1;if(n<0){$G(t,e);continue}if(t.getAttribute("listIndent")==o){const n=JG(t,r.get(t),e);for(const t of n){i.add(t)}if(n.length){continue}}e.setAttribute("listIndent",n,t)}return KG(i)}function $G(t,e){t=toArray(t);for(const n of t){if(n.is("element","listItem")){e.rename(n,"paragraph")}}for(const n of t){for(const t of n.getAttributeKeys()){if(t.startsWith("list")){e.removeAttribute(t,n)}}}return t}function WG(t){if(!t.length){return false}const e=t[0].getAttribute("listItemId");if(!e){return false}return!t.some((t=>t.getAttribute("listItemId")!=e))}function ZG(t,e){const n=[];let i=Number.POSITIVE_INFINITY;for(const{node:o}of iterateSiblingListBlocks(t.nextSibling,"forward")){const t=o.getAttribute("listIndent");if(t==0){break}if(tt.root.rootName!=="$graveyard")).sort(((t,e)=>t.index-e.index))}function YG(t){const e=t.document.selection.getSelectedElement();if(!e){return null}if(t.schema.isObject(e)&&t.schema.isBlock(e)){return e}return null}function QG(t,e){return e.checkChild(t.parent,"listItem")&&e.checkChild(t,"$text")&&!e.isObject(t)}function JG(t,e,n){const i=zG(e,{direction:"forward"});if(i.pop().index>t.index){return UG(t,e,n)}return[]}class XG extends(null&&Command){constructor(t,e){super(t);this._direction=e}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model;const e=t$(t.document.selection);t.change((t=>{const n=[];if(isSingleListItem(e)&&!isFirstBlockOfListItem(e[0])){if(this._direction=="forward"){n.push(...indentBlocks(e,t))}n.push(...splitListItemBefore(e[0],t))}else{if(this._direction=="forward"){n.push(...indentBlocks(e,t,{expand:true}))}else{n.push(...outdentBlocksWithMerge(e,t))}}for(const e of n){if(!e.hasAttribute("listType")){continue}const n=ListWalker.first(e,{sameIndent:true});if(n){t.setAttribute("listType",n.getAttribute("listType"),e)}}this._fireAfterExecute(n)}))}_fireAfterExecute(t){this.fire("afterExecute",sortBlocks(new Set(t)))}_checkEnabled(){let t=t$(this.editor.model.document.selection);let e=t[0];if(!e){return false}if(this._direction=="backward"){return true}if(isSingleListItem(t)&&!isFirstBlockOfListItem(t[0])){return true}t=expandListBlocksToCompleteItems(t);e=t[0];const n=ListWalker.first(e,{sameIndent:true});if(!n){return false}if(n.getAttribute("listType")==e.getAttribute("listType")){return true}return false}}function t$(t){const e=Array.from(t.getSelectedBlocks());const n=e.findIndex((t=>!isListItemBlock(t)));if(n!=-1){e.length=n}return e}class e$ extends(null&&Command){constructor(t,e){super(t);this.type=e}refresh(){this.value=this._getValue();this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model;const n=e.document;const i=getSelectedBlockObject(e);const o=Array.from(n.selection.getSelectedBlocks()).filter((t=>e.schema.checkAttribute(t,"listType")||canBecomeSimpleListItem(t,e.schema)));const r=t.forceValue!==undefined?!t.forceValue:this.value;e.change((t=>{if(r){const e=o[o.length-1];const n=getListItemBlocks(e,{direction:"forward"});const i=[];if(n.length>1){i.push(...splitListItemBefore(n[1],t))}i.push(...removeListAttributes(o,t));i.push(...outdentFollowingItems(e,t));this._fireAfterExecute(i)}else if((i||n.selection.isCollapsed)&&isListItemBlock(o[0])){const e=getListItems(i||o[0]);for(const n of e){t.setAttribute("listType",this.type,n)}this._fireAfterExecute(e)}else{const n=[];for(const i of o){if(!i.hasAttribute("listType")){if(!i.is("element","listItem")&&canBecomeSimpleListItem(i,e.schema)){t.rename(i,"listItem")}t.setAttributes({listIndent:0,listItemId:ListItemUid.next(),listType:this.type},i);n.push(i)}else{for(const e of expandListBlocksToCompleteItems(i,{withNested:false})){if(e.getAttribute("listType")!=this.type){t.setAttribute("listType",this.type,e);n.push(e)}}}}this._fireAfterExecute(n)}}))}_fireAfterExecute(t){this.fire("afterExecute",sortBlocks(new Set(t)))}_getValue(){const t=this.editor.model.document.selection;const e=Array.from(t.getSelectedBlocks());if(!e.length){return false}for(const t of e){if(t.getAttribute("listType")!=this.type){return false}}return true}_checkEnabled(){const t=this.editor.model;const e=t.schema;const n=t.document.selection;const i=Array.from(n.getSelectedBlocks());if(!i.length){return false}if(this.value){return true}for(const t of i){if(e.checkAttribute(t,"listType")||canBecomeSimpleListItem(t,e)){return true}}return false}}class n$ extends(null&&Command){constructor(t,e){super(t);this._direction=e}refresh(){this.isEnabled=this._checkEnabled()}execute({shouldMergeOnBlocksContentLevel:t=false}={}){const e=this.editor.model;const n=e.document.selection;const i=[];e.change((o=>{const{firstElement:r,lastElement:s}=this._getMergeSubjectElements(n,t);const a=r.getAttribute("listIndent")||0;const c=s.getAttribute("listIndent");const l=s.getAttribute("listItemId");if(a!=c){const t=getNestedListBlocks(s);i.push(...indentBlocks([s,...t],o,{indentBy:a-c,expand:a{const e=splitListItemBefore(this._getStartBlock(),t);this._fireAfterExecute(e)}))}_fireAfterExecute(t){this.fire("afterExecute",sortBlocks(new Set(t)))}_checkEnabled(){const t=this.editor.model.document.selection;const e=this._getStartBlock();return t.isCollapsed&&isListItemBlock(e)&&!isFirstBlockOfListItem(e)}_getStartBlock(){const t=this.editor.model.document;const e=t.selection.getFirstPosition().parent;return this._direction=="before"?e:e.nextSibling}}class o$ extends(null&&Plugin){static get pluginName(){return"DocumentListUtils"}expandListBlocksToCompleteList(t){return expandListBlocksToCompleteList(t)}isFirstBlockOfListItem(t){return isFirstBlockOfListItem(t)}isListItemBlock(t){return isListItemBlock(t)}expandListBlocksToCompleteItems(t,e={}){return expandListBlocksToCompleteItems(t,e)}}function r$(t,e){const n=t.nodeBefore;if(!isListItemBlock(n)){const n=t.nodeAfter;if(isListItemBlock(n)){e.set(n,n)}}else{let t=n;for(const{node:n}of iterateSiblingListBlocks(t,"backward")){t=n;if(e.has(t)){return}}e.set(n,t)}}function s$(t,e){let n=0;let i=-1;let o=null;let r=false;for(const{node:s}of t){const t=s.getAttribute("listIndent");if(t>n){let a;if(o===null){o=t-n;a=n}else{if(o>t){o=t}a=t-o}if(a>i+1){a=i+1}e.setAttribute("listIndent",a,s);r=true;i=a}else{o=null;n=t+1;i=t}}return r}function a$(t,e,n){const i=new Set;let o=false;for(const{node:r}of t){if(i.has(r)){continue}let t=r.getAttribute("listType");let s=r.getAttribute("listItemId");if(e.has(s)){s=ListItemUid.next()}e.add(s);if(r.is("element","listItem")){if(r.getAttribute("listItemId")!=s){n.setAttribute("listItemId",s,r);o=true}continue}for(const e of getListItemBlocks(r,{direction:"forward"})){i.add(e);if(e.getAttribute("listType")!=t){s=ListItemUid.next();t=e.getAttribute("listType")}if(e.getAttribute("listItemId")!=s){n.setAttribute("listItemId",s,e);o=true}}}return o}function c$(){return(t,e,n)=>{const{writer:i,schema:o}=n;if(!e.modelRange){return}const r=Array.from(e.modelRange.getItems({shallow:true})).filter((t=>o.checkAttribute(t,"listItemId")));if(!r.length){return}const s=ListItemUid.next();const a=getIndent(e.viewItem);let c=e.viewItem.parent&&e.viewItem.parent.is("element","ol")?"numbered":"bulleted";const l=r[0].getAttribute("listType");if(l){c=l}const d={listItemId:s,listIndent:a,listType:c};for(const t of r){if(!t.hasAttribute("listItemId")){i.setAttributes(d,t)}}if(r.length>1){if(r[1].getAttribute("listItemId")!=d.listItemId){n.keepEmptyElement(r[0])}}}}function l$(){return(t,e,n)=>{if(!n.consumable.test(e.viewItem,{name:true})){return}const i=new UpcastWriter(e.viewItem.document);for(const t of Array.from(e.viewItem.getChildren())){if(!isListItemView(t)&&!isListView(t)){i.remove(t)}}}}function d$(t,e,n,i){return()=>{const i=t.document.differ.getChanges();const s=[];const a=new Map;const c=new Set;for(const t of i){if(t.type=="insert"&&t.name!="$text"){findAndAddListHeadToMap(t.position,a);if(!t.attributes.has("listItemId")){findAndAddListHeadToMap(t.position.getShiftedBy(t.length),a)}else{c.add(t.position.nodeAfter)}}else if(t.type=="remove"&&t.attributes.has("listItemId")){findAndAddListHeadToMap(t.position,a)}else if(t.type=="attribute"){const e=t.range.start.nodeAfter;if(n.includes(t.attributeKey)){findAndAddListHeadToMap(t.range.start,a);if(t.attributeNewValue===null){findAndAddListHeadToMap(t.range.start.getShiftedBy(1),a);if(r(e)){s.push(e)}}else{c.add(e)}}else if(isListItemBlock(e)){if(r(e)){s.push(e)}}}}for(const t of a.values()){s.push(...o(t,c))}for(const t of new Set(s)){e.reconvertItem(t)}};function o(t,e){const i=[];const o=new Set;const a=[];for(const{node:c,previous:l}of iterateSiblingListBlocks(t,"forward")){if(o.has(c)){continue}const t=c.getAttribute("listIndent");if(l&&tn.includes(t))));const d=getListItemBlocks(c,{direction:"forward"});for(const t of d){o.add(t);if(r(t,d)){i.push(t)}else if(s(t,a,e)){i.push(t)}}}return i}function r(t,o){const r=e.mapper.toViewElement(t);if(!r){return false}const s=i.fire("checkElement",{modelElement:t,viewElement:r});if(s){return true}if(!t.is("element","paragraph")&&!t.is("element","listItem")){return false}const a=w$(t,n,o);if(a&&r.is("element","p")){return true}else if(!a&&r.is("element","span")){return true}return false}function s(t,n,o){if(o.has(t)){return false}const r=e.mapper.toViewElement(t);let s=n.length-1;for(let t=r.parent;!t.is("editableElement");t=t.parent){const e=isListItemView(t);const o=isListView(t);if(!o&&!e){continue}const r=`checkAttributes:${e?"item":"list"}`;const a=i.fire(r,{viewElement:t,modelAttributes:n[s]});if(a){break}if(o){s--;if(s<0){return false}}}return true}}function u$(t,e,n,{dataPipeline:i}={}){const o=b$(t);return(r,s,a)=>{const{writer:c,mapper:l,consumable:d}=a;const u=s.item;if(!t.includes(s.attributeKey)){return}if(!o(u,d)){return}const h=g$(u,l,n);m$(h,c,l);p$(h,c);const g=f$(u,h,e,c,{dataPipeline:i});k$(u,g,e,c)}}function h$(t,{dataPipeline:e}={}){return(n,{writer:i})=>{if(!w$(n,t)){return null}if(!e){return i.createContainerElement("span",{class:"ck-list-bogus-paragraph"})}const o=i.createContainerElement("p");i.setCustomProperty("dataPipeline:transparentRendering",true,o);return o}}function g$(t,e,n){const i=n.createRangeOn(t);const o=e.toViewRange(i).getTrimmed();return o.end.nodeBefore}function m$(t,e,n){while(t.parent.is("attributeElement")&&t.parent.getCustomProperty("listItemWrapper")){e.unwrap(e.createRangeIn(t.parent),t.parent)}const i=e.createPositionBefore(t).getWalker({direction:"backward"});const o=[];for(const{item:t}of i){if(t.is("element")&&n.toModelElement(t)){break}if(t.is("element")&&t.getCustomProperty("listItemMarker")){o.push(t)}}for(const t of o){e.remove(t)}}function f$(t,e,n,i,{dataPipeline:o}){let r=i.createRangeOn(e);if(!isFirstBlockOfListItem(t)){return r}for(const s of n){if(s.scope!="itemMarker"){continue}const n=s.createElement(i,t,{dataPipeline:o});if(!n){continue}i.setCustomProperty("listItemMarker",true,n);i.insert(r.start,n);r=i.createRange(i.createPositionBefore(n),i.createPositionAfter(e));if(!s.createWrapperElement||!s.canWrapElement){continue}const a=s.createWrapperElement(i,t,{dataPipeline:o});i.setCustomProperty("listItemWrapper",true,a);if(s.canWrapElement(t)){r=i.wrap(r,a)}else{r=i.wrap(i.createRangeOn(n),a);r=i.createRange(r.start,i.createPositionAfter(e))}}return r}function p$(t,e){let n=t.parent;while(n.is("attributeElement")&&["ul","ol","li"].includes(n.name)){const i=n.parent;e.unwrap(e.createRangeOn(t),n);n=i}}function k$(t,e,n,i){if(!t.hasAttribute("listIndent")){return}const o=t.getAttribute("listIndent");let r=t;for(let t=o;t>=0;t--){const o=createListItemElement(i,t,r.getAttribute("listItemId"));const s=createListElement(i,t,r.getAttribute("listType"));for(const t of n){if((t.scope=="list"||t.scope=="item")&&r.hasAttribute(t.attributeName)){t.setAttributeOnDowncast(i,r.getAttribute(t.attributeName),t.scope=="list"?s:o)}}e=i.wrap(e,o);e=i.wrap(e,s);if(t==0){break}r=ListWalker.first(r,{lowerIndent:true});if(!r){break}}}function b$(t){return(e,n)=>{const i=[];for(const n of t){if(e.hasAttribute(n)){i.push(`attribute:${n}`)}}if(!i.every((t=>n.test(e,t)!==false))){return false}i.forEach((t=>n.consume(e,t)));return true}}function w$(t,e,n=getAllListItemBlocks(t)){if(!isListItemBlock(t)){return false}for(const n of t.getAttributeKeys()){if(n.startsWith("selection:")){continue}if(!e.includes(n)){return false}}return n.length<2}var A$=n(3190);var C$={injectType:"singletonStyleTag",attributes:{"data-cke":true}};C$.insert="head";C$.singleton=true;var _$=Nl()(A$.Z,C$);const v$=A$.Z.locals||{};var y$=n(4784);var x$={injectType:"singletonStyleTag",attributes:{"data-cke":true}};x$.insert="head";x$.singleton=true;var E$=Nl()(y$.Z,x$);const D$=y$.Z.locals||{};const S$=null&&["listType","listIndent","listItemId"];class T$ extends(null&&Plugin){static get pluginName(){return"DocumentListEditing"}static get requires(){return[Enter,Delete,DocumentListUtils,ClipboardPipeline]}constructor(t){super(t);this._downcastStrategies=[];t.config.define("list.multiBlock",true)}init(){const t=this.editor;const e=t.model;const n=t.config.get("list.multiBlock");if(t.plugins.has("ListEditing")){throw new CKEditorError("document-list-feature-conflict",this,{conflictPlugin:"ListEditing"})}e.schema.register("$listItem",{allowAttributes:S$});if(n){e.schema.extend("$container",{allowAttributesOf:"$listItem"});e.schema.extend("$block",{allowAttributesOf:"$listItem"});e.schema.extend("$blockObject",{allowAttributesOf:"$listItem"})}else{e.schema.register("listItem",{inheritAllFrom:"$block",allowAttributesOf:"$listItem"})}for(const t of S$){e.schema.setAttributeProperties(t,{copyOnReplace:true})}t.commands.add("numberedList",new DocumentListCommand(t,"numbered"));t.commands.add("bulletedList",new DocumentListCommand(t,"bulleted"));t.commands.add("indentList",new DocumentListIndentCommand(t,"forward"));t.commands.add("outdentList",new DocumentListIndentCommand(t,"backward"));t.commands.add("splitListItemBefore",new DocumentListSplitCommand(t,"before"));t.commands.add("splitListItemAfter",new DocumentListSplitCommand(t,"after"));if(n){t.commands.add("mergeListItemBackward",new DocumentListMergeCommand(t,"backward"));t.commands.add("mergeListItemForward",new DocumentListMergeCommand(t,"forward"))}this._setupDeleteIntegration();this._setupEnterIntegration();this._setupTabIntegration();this._setupClipboardIntegration()}afterInit(){const t=this.editor;const e=t.commands;const n=e.get("indent");const i=e.get("outdent");if(n){n.registerChildCommand(e.get("indentList"),{priority:"high"})}if(i){i.registerChildCommand(e.get("outdentList"),{priority:"lowest"})}this._setupModelPostFixing();this._setupConversion()}registerDowncastStrategy(t){this._downcastStrategies.push(t)}getListAttributeNames(){return[...S$,...this._downcastStrategies.map((t=>t.attributeName))]}_setupDeleteIntegration(){const t=this.editor;const e=t.commands.get("mergeListItemBackward");const n=t.commands.get("mergeListItemForward");this.listenTo(t.editing.view.document,"delete",((i,o)=>{const r=t.model.document.selection;if(getSelectedBlockObject(t.model)){return}t.model.change((()=>{const s=r.getFirstPosition();if(r.isCollapsed&&o.direction=="backward"){if(!s.isAtStart){return}const n=s.parent;if(!isListItemBlock(n)){return}const r=ListWalker.first(n,{sameAttributes:"listType",sameIndent:true});if(!r&&n.getAttribute("listIndent")===0){if(!isLastBlockOfListItem(n)){t.execute("splitListItemAfter")}t.execute("outdentList")}else{if(!e||!e.isEnabled){return}e.execute({shouldMergeOnBlocksContentLevel:M$(t.model,"backward")})}o.preventDefault();i.stop()}else{if(r.isCollapsed&&!r.getLastPosition().isAtEnd){return}if(!n||!n.isEnabled){return}n.execute({shouldMergeOnBlocksContentLevel:M$(t.model,"forward")});o.preventDefault();i.stop()}}))}),{context:"li"})}_setupEnterIntegration(){const t=this.editor;const e=t.model;const n=t.commands;const i=n.get("enter");this.listenTo(t.editing.view.document,"enter",((n,i)=>{const o=e.document;const r=o.selection.getFirstPosition().parent;if(o.selection.isCollapsed&&isListItemBlock(r)&&r.isEmpty&&!i.isSoft){const e=isFirstBlockOfListItem(r);const o=isLastBlockOfListItem(r);if(e&&o){t.execute("outdentList");i.preventDefault();n.stop()}else if(e&&!o){t.execute("splitListItemAfter");i.preventDefault();n.stop()}else if(o){t.execute("splitListItemBefore");i.preventDefault();n.stop()}}}),{context:"li"});this.listenTo(i,"afterExecute",(()=>{const e=n.get("splitListItemBefore");e.refresh();if(!e.isEnabled){return}const i=t.model.document;const o=i.selection.getLastPosition().parent;const r=getAllListItemBlocks(o);if(r.length===2){e.execute()}}))}_setupTabIntegration(){const t=this.editor;this.listenTo(t.editing.view.document,"tab",((e,n)=>{const i=n.shiftKey?"outdentList":"indentList";const o=this.editor.commands.get(i);if(o.isEnabled){t.execute(i);n.stopPropagation();n.preventDefault();e.stop()}}),{context:"li"})}_setupConversion(){const t=this.editor;const e=t.model;const n=this.getListAttributeNames();const i=t.config.get("list.multiBlock");const o=i?"paragraph":"listItem";t.conversion.for("upcast").elementToElement({view:"li",model:(t,{writer:e})=>e.createElement(o,{listType:""})}).elementToElement({view:"p",model:(t,{writer:e})=>{if(t.parent&&t.parent.is("element","li")){return e.createElement(o,{listType:""})}return null},converterPriority:"high"}).add((t=>{t.on("element:li",listItemUpcastConverter());t.on("element:ul",listUpcastCleanList(),{priority:"high"});t.on("element:ol",listUpcastCleanList(),{priority:"high"})}));if(!i){t.conversion.for("downcast").elementToElement({model:"listItem",view:"p"})}t.conversion.for("editingDowncast").elementToElement({model:o,view:bogusParagraphCreator(n),converterPriority:"high"}).add((t=>{t.on("attribute",listItemDowncastConverter(n,this._downcastStrategies,e))}));t.conversion.for("dataDowncast").elementToElement({model:o,view:bogusParagraphCreator(n,{dataPipeline:true}),converterPriority:"high"}).add((t=>{t.on("attribute",listItemDowncastConverter(n,this._downcastStrategies,e,{dataPipeline:true}))}));this.listenTo(e.document,"change:data",reconvertItemsOnDataChange(e,t.editing,n,this),{priority:"high"});this.on("checkAttributes:item",((t,{viewElement:e,modelAttributes:n})=>{if(e.id!=n.listItemId){t.return=true;t.stop()}}));this.on("checkAttributes:list",((t,{viewElement:e,modelAttributes:n})=>{if(e.name!=getViewElementNameForListType(n.listType)||e.id!=getViewElementIdForListType(n.listType,n.listIndent)){t.return=true;t.stop()}}))}_setupModelPostFixing(){const t=this.editor.model;const e=this.getListAttributeNames();t.document.registerPostFixer((n=>B$(t,n,e,this)));this.on("postFixer",((t,{listNodes:e,writer:n})=>{t.return=fixListIndents(e,n)||t.return}),{priority:"high"});this.on("postFixer",((t,{listNodes:e,writer:n,seenIds:i})=>{t.return=fixListItemIds(e,i,n)||t.return}),{priority:"high"})}_setupClipboardIntegration(){const t=this.editor.model;const e=this.editor.plugins.get("ClipboardPipeline");this.listenTo(t,"insertContent",I$(t),{priority:"high"});this.listenTo(e,"outputTransformation",((e,n)=>{t.change((t=>{const e=Array.from(n.content.getChildren());const i=e[e.length-1];if(e.length>1&&i.is("element")&&i.isEmpty){const n=e.slice(0,-1);if(n.every(isListItemBlock)){t.remove(i)}}if(n.method=="copy"||n.method=="cut"){const e=Array.from(n.content.getChildren());const i=isSingleListItem(e);if(i){removeListAttributes(e,t)}}}))}))}}function B$(t,e,n,i){const o=t.document.differ.getChanges();const r=new Map;const s=i.editor.config.get("list.multiBlock");let a=false;for(const i of o){if(i.type=="insert"&&i.name!="$text"){const o=i.position.nodeAfter;if(!t.schema.checkAttribute(o,"listItemId")){for(const t of Array.from(o.getAttributeKeys())){if(n.includes(t)){e.removeAttribute(t,o);a=true}}}findAndAddListHeadToMap(i.position,r);if(!i.attributes.has("listItemId")){findAndAddListHeadToMap(i.position.getShiftedBy(i.length),r)}for(const{item:e,previousPosition:n}of t.createRangeIn(o)){if(isListItemBlock(e)){findAndAddListHeadToMap(n,r)}}}else if(i.type=="remove"){findAndAddListHeadToMap(i.position,r)}else if(i.type=="attribute"&&n.includes(i.attributeKey)){findAndAddListHeadToMap(i.range.start,r);if(i.attributeNewValue===null){findAndAddListHeadToMap(i.range.start.getShiftedBy(1),r)}}if(!s&&i.type=="attribute"&&S$.includes(i.attributeKey)){const t=i.range.start.nodeAfter;if(i.attributeNewValue===null&&t&&t.is("element","listItem")){e.rename(t,"paragraph");a=true}else if(i.attributeOldValue===null&&t&&t.is("element")&&t.name!="listItem"){e.rename(t,"listItem");a=true}}}const c=new Set;for(const t of r.values()){a=i.fire("postFixer",{listNodes:new ListBlocksIterable(t),listHead:t,writer:e,seenIds:c})||a}return a}function I$(t){return(e,[n,i])=>{const o=n.is("documentFragment")?Array.from(n.getChildren()):[n];if(!o.length){return}const r=i?t.createSelection(i):t.document.selection;const s=r.getFirstPosition();let a;if(isListItemBlock(s.parent)){a=s.parent}else if(isListItemBlock(s.nodeBefore)){a=s.nodeBefore}else{return}t.change((t=>{const e=a.getAttribute("listType");const n=a.getAttribute("listIndent");const i=o[0].getAttribute("listIndent")||0;const r=Math.max(n-i,0);for(const n of o){const i=isListItemBlock(n);if(a.is("element","listItem")&&n.is("element","paragraph")){t.rename(n,"listItem")}t.setAttributes({listIndent:(i?n.getAttribute("listIndent"):0)+r,listItemId:i?n.getAttribute("listItemId"):ListItemUid.next(),listType:e},n)}}))}}function M$(t,e){const n=t.document.selection;if(!n.isCollapsed){return!getSelectedBlockObject(t)}if(e==="forward"){return true}const i=n.getFirstPosition();const o=i.parent;const r=o.previousSibling;if(t.schema.isObject(r)){return false}if(r.isEmpty){return true}return isSingleListItem([o,r])}function L$(t){const e=t.createContainerElement("li");e.getFillerOffset=$$;return e}function N$(t,e){const n=e.mapper;const i=e.writer;const o=t.getAttribute("listType")=="numbered"?"ol":"ul";const r=L$(i);const s=i.createContainerElement(o,null);i.insert(i.createPositionAt(s,0),r);n.bindElements(t,r);return r}function z$(t,e,n,i){const o=e.parent;const r=n.mapper;const s=n.writer;let a=r.toViewPosition(i.createPositionBefore(t));const c=V$(t.previousSibling,{sameIndent:true,smallerIndent:true,listIndent:t.getAttribute("listIndent")});const l=t.previousSibling;if(c&&c.getAttribute("listIndent")==t.getAttribute("listIndent")){const t=r.toViewElement(c);a=s.breakContainer(s.createPositionAfter(t))}else{if(l&&l.name=="listItem"){a=r.toViewPosition(i.createPositionAt(l,"end"));const t=r.findMappedViewAncestor(a);const e=F$(t);if(e){a=s.createPositionBefore(e)}else{a=s.createPositionAt(t,"end")}}else{a=r.toViewPosition(i.createPositionBefore(t))}}a=R$(a);s.insert(a,o);if(l&&l.name=="listItem"){const t=r.toViewElement(l);const n=s.createRange(s.createPositionAt(t,0),a);const i=n.getWalker({ignoreElementEnd:true});for(const t of i){if(t.item.is("element","li")){const n=s.breakContainer(s.createPositionBefore(t.item));const o=t.item.parent;const r=s.createPositionAt(e,"end");P$(s,r.nodeBefore,r.nodeAfter);s.move(s.createRangeOn(o),r);i._position=n}}}else{const n=o.nextSibling;if(n&&(n.is("element","ul")||n.is("element","ol"))){let i=null;for(const e of n.getChildren()){const n=r.toModelElement(e);if(n&&n.getAttribute("listIndent")>t.getAttribute("listIndent")){i=e}else{break}}if(i){s.breakContainer(s.createPositionAfter(i));s.move(s.createRangeOn(i.parent),s.createPositionAt(e,"end"))}}}P$(s,o,o.nextSibling);P$(s,o.previousSibling,o)}function P$(t,e,n){if(!e||!n||e.name!="ul"&&e.name!="ol"){return null}if(e.name!=n.name||e.getAttribute("class")!==n.getAttribute("class")){return null}return t.mergeContainers(t.createPositionAfter(e))}function R$(t){return t.getLastMatchingPosition((t=>t.item.is("uiElement")))}function V$(t,e){const n=!!e.sameIndent;const i=!!e.smallerIndent;const o=e.listIndent;let r=t;while(r&&r.name=="listItem"){const t=r.getAttribute("listIndent");if(n&&o==t||i&&o>t){return r}if(e.direction==="forward"){r=r.nextSibling}else{r=r.previousSibling}}return null}function O$(t,e,n,i){t.ui.componentFactory.add(e,(o=>{const r=t.commands.get(e);const s=new xd(o);s.set({label:n,icon:i,tooltip:true,isToggleable:true});s.bind("isOn","isEnabled").to(r,"value","isEnabled");s.on("execute",(()=>{t.execute(e);t.editing.view.focus()}));return s}))}function F$(t){for(const e of t.getChildren()){if(e.name=="ul"||e.name=="ol"){return e}}return null}function j$(t,e){const n=[];const i=t.parent;const o={ignoreElementEnd:false,startPosition:t,shallow:true,direction:e};const r=i.getAttribute("listIndent");const s=[...new Rk(o)].filter((t=>t.item.is("element"))).map((t=>t.item));for(const t of s){if(!t.is("element","listItem")){break}if(t.getAttribute("listIndent")r){continue}if(t.getAttribute("listType")!==i.getAttribute("listType")){break}if(t.getAttribute("listStyle")!==i.getAttribute("listStyle")){break}if(t.getAttribute("listReversed")!==i.getAttribute("listReversed")){break}if(t.getAttribute("listStart")!==i.getAttribute("listStart")){break}if(e==="backward"){n.unshift(t)}else{n.push(t)}}return n}function H$(t){const e=t.document;let n=[...e.selection.getSelectedBlocks()].filter((t=>t.is("element","listItem"))).map((e=>{const n=t.change((t=>t.createPositionAt(e,0)));return[...j$(n,"backward"),...j$(n,"forward")]})).flat();n=[...new Set(n)];return n}const U$=["disc","circle","square"];const q$=["decimal","decimal-leading-zero","lower-roman","upper-roman","lower-latin","upper-latin"];function G$(t){if(U$.includes(t)){return"bulleted"}if(q$.includes(t)){return"numbered"}return null}function $$(){const t=!this.isEmpty&&(this.getChild(0).name=="ul"||this.getChild(0).name=="ol");if(this.isEmpty||t){return 0}return zm.call(this)}const W$=' ';const Z$=' ';class K$ extends rh{static get pluginName(){return"ListUI"}init(){const t=this.editor.t;O$(this.editor,"numberedList",t("Numbered List"),W$);O$(this.editor,"bulletedList",t("Bulleted List"),Z$)}}class Y$ extends(null&&Plugin){static get requires(){return[DocumentListEditing,ListUI]}static get pluginName(){return"DocumentList"}}class Q$ extends(null&&Plugin){static get pluginName(){return"AdjacentListsSupport"}init(){const t=this.editor;const e=t.model;e.schema.register("listSeparator",{allowWhere:"$block",isBlock:true});t.conversion.for("upcast").add((t=>{t.on("element:ol",J$());t.on("element:ul",J$())})).elementToElement({model:"listSeparator",view:"ck-list-separator"});t.conversion.for("editingDowncast").elementToElement({model:"listSeparator",view:{name:"div",classes:["ck-list-separator","ck-hidden"]}});t.conversion.for("dataDowncast").elementToElement({model:"listSeparator",view:(t,e)=>{const n=e.writer.createContainerElement("ck-list-separator");e.writer.setCustomProperty("dataPipeline:transparentRendering",true,n);n.getFillerOffset=()=>null;return n}})}}function J$(){return(t,e,n)=>{const i=e.viewItem;const o=i.nextSibling;if(!o){return}if(i.name!==o.name){return}if(!e.modelRange){Object.assign(e,n.convertChildren(e.viewItem,e.modelCursor))}const r=n.writer;const s=r.createElement("listSeparator");if(!n.safeInsert(s,e.modelCursor)){return}const a=n.getSplitParts(s);e.modelRange=r.createRange(e.modelRange.start,r.createPositionAfter(a[a.length-1]));n.updateConversionResult(s,e)}}class X$ extends(null&&Command){refresh(){const t=this._getValue();this.value=t;this.isEnabled=t!=null}execute({startIndex:t=1}={}){const e=this.editor.model;const n=e.document;let i=Array.from(n.selection.getSelectedBlocks()).filter((t=>isListItemBlock(t)&&t.getAttribute("listType")=="numbered"));i=expandListBlocksToCompleteList(i);e.change((e=>{for(const n of i){e.setAttribute("listStart",t>=0?t:1,n)}}))}_getValue(){const t=this.editor.model;const e=t.document;const n=first(e.selection.getSelectedBlocks());if(n&&isListItemBlock(n)&&n.getAttribute("listType")=="numbered"){return n.getAttribute("listStart")}return null}}const tW={};const eW={};const nW={};const iW=[{listStyle:"disc",typeAttribute:"disc",listType:"bulleted"},{listStyle:"circle",typeAttribute:"circle",listType:"bulleted"},{listStyle:"square",typeAttribute:"square",listType:"bulleted"},{listStyle:"decimal",typeAttribute:"1",listType:"numbered"},{listStyle:"decimal-leading-zero",typeAttribute:null,listType:"numbered"},{listStyle:"lower-roman",typeAttribute:"i",listType:"numbered"},{listStyle:"upper-roman",typeAttribute:"I",listType:"numbered"},{listStyle:"lower-alpha",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-alpha",typeAttribute:"A",listType:"numbered"},{listStyle:"lower-latin",typeAttribute:"a",listType:"numbered"},{listStyle:"upper-latin",typeAttribute:"A",listType:"numbered"}];for(const{listStyle:t,typeAttribute:e,listType:n}of iW){tW[t]=n;eW[t]=e;if(e){nW[e]=t}}function oW(){return iW.map((t=>t.listStyle))}function rW(t){return tW[t]||null}function sW(t){return nW[t]||null}function aW(t){return eW[t]||null}class cW extends(null&&Command){constructor(t,e,n){super(t);this.defaultType=e;this._supportedTypes=n}refresh(){this.value=this._getValue();this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model;const n=e.document;e.change((e=>{this._tryToConvertItemsToList(t);let i=Array.from(n.selection.getSelectedBlocks()).filter((t=>t.hasAttribute("listType")));if(!i.length){return}i=expandListBlocksToCompleteList(i);for(const n of i){e.setAttribute("listStyle",t.type||this.defaultType,n)}}))}isStyleTypeSupported(t){if(!this._supportedTypes){return true}return this._supportedTypes.includes(t)}_getValue(){const t=first(this.editor.model.document.selection.getSelectedBlocks());if(isListItemBlock(t)){return t.getAttribute("listStyle")}return null}_checkEnabled(){const t=this.editor;const e=t.commands.get("numberedList");const n=t.commands.get("bulletedList");return e.isEnabled||n.isEnabled}_tryToConvertItemsToList(t){if(!t.type){return}const e=getListTypeFromListStyleType(t.type);if(!e){return}const n=this.editor;const i=`${e}List`;const o=n.commands.get(i);if(!o.value){n.execute(i)}}}class lW extends(null&&Command){refresh(){const t=this._getValue();this.value=t;this.isEnabled=t!=null}execute(t={}){const e=this.editor.model;const n=e.document;let i=Array.from(n.selection.getSelectedBlocks()).filter((t=>isListItemBlock(t)&&t.getAttribute("listType")=="numbered"));i=expandListBlocksToCompleteList(i);e.change((e=>{for(const n of i){e.setAttribute("listReversed",!!t.reversed,n)}}))}_getValue(){const t=this.editor.model;const e=t.document;const n=first(e.selection.getSelectedBlocks());if(isListItemBlock(n)&&n.getAttribute("listType")=="numbered"){return n.getAttribute("listReversed")}return null}}class dW extends(null&&Plugin){static get pluginName(){return"DocumentListPropertiesUtils"}getAllSupportedStyleTypes(){return getAllSupportedStyleTypes()}getListTypeFromListStyleType(t){return getListTypeFromListStyleType(t)}getListStyleTypeFromTypeAttribute(t){return getListStyleTypeFromTypeAttribute(t)}getTypeAttributeFromListStyleType(t){return getTypeAttributeFromListStyleType(t)}}const uW="default";class hW extends(null&&Plugin){static get requires(){return[DocumentListEditing,DocumentListPropertiesUtils]}static get pluginName(){return"DocumentListPropertiesEditing"}constructor(t){super(t);t.config.define("list.properties",{styles:true,startIndex:false,reversed:false})}init(){const t=this.editor;const e=t.model;const n=t.plugins.get(DocumentListEditing);const i=t.config.get("list.properties");const o=gW(i);for(const i of o){i.addCommand(t);e.schema.extend("$listItem",{allowAttributes:i.attributeName});n.registerDowncastStrategy({scope:"list",attributeName:i.attributeName,setAttributeOnDowncast(t,e,n){i.setAttributeOnDowncast(t,e,n)}})}t.conversion.for("upcast").add((t=>{for(const e of o){t.on("element:ol",listPropertiesUpcastConverter(e));t.on("element:ul",listPropertiesUpcastConverter(e))}}));n.on("checkAttributes:list",((t,{viewElement:e,modelAttributes:n})=>{for(const i of o){if(i.getAttributeOnUpcast(e)!=n[i.attributeName]){t.return=true;t.stop()}}}));this.listenTo(t.commands.get("indentList"),"afterExecute",((t,n)=>{e.change((t=>{for(const e of n){for(const n of o){if(n.appliesToListItem(e)){t.setAttribute(n.attributeName,n.defaultValue,e)}}}}))}));n.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i}of e){for(const e of o){if(e.hasValidAttribute(i)){continue}if(e.appliesToListItem(i)){n.setAttribute(e.attributeName,e.defaultValue,i)}else{n.removeAttribute(e.attributeName,i)}t.return=true}}}));n.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i,previousNodeInList:r}of e){if(!r){continue}if(r.getAttribute("listType")!=i.getAttribute("listType")){continue}for(const e of o){const{attributeName:o}=e;if(!e.appliesToListItem(i)){continue}const s=r.getAttribute(o);if(i.getAttribute(o)!=s){n.setAttribute(o,s,i);t.return=true}}}}))}}function gW(t){const e=[];if(t.styles){const n=typeof t.styles=="object"&&t.styles.useAttribute;e.push({attributeName:"listStyle",defaultValue:uW,viewConsumables:{styles:"list-style-type"},addCommand(t){let e=getAllSupportedStyleTypes();if(n){e=e.filter((t=>!!getTypeAttributeFromListStyleType(t)))}t.commands.add("listStyle",new DocumentListStyleCommand(t,uW,e))},appliesToListItem(t){return t.getAttribute("listType")=="numbered"||t.getAttribute("listType")=="bulleted"},hasValidAttribute(t){if(!this.appliesToListItem(t)){return!t.hasAttribute("listStyle")}if(!t.hasAttribute("listStyle")){return false}const e=t.getAttribute("listStyle");if(e==uW){return true}return getListTypeFromListStyleType(e)==t.getAttribute("listType")},setAttributeOnDowncast(t,e,i){if(e&&e!==uW){if(n){const n=getTypeAttributeFromListStyleType(e);if(n){t.setAttribute("type",n,i);return}}else{t.setStyle("list-style-type",e,i);return}}t.removeStyle("list-style-type",i);t.removeAttribute("type",i)},getAttributeOnUpcast(t){const e=t.getStyle("list-style-type");if(e){return e}const n=t.getAttribute("type");if(n){return getListStyleTypeFromTypeAttribute(n)}return uW}})}if(t.reversed){e.push({attributeName:"listReversed",defaultValue:false,viewConsumables:{attributes:"reversed"},addCommand(t){t.commands.add("listReversed",new DocumentListReversedCommand(t))},appliesToListItem(t){return t.getAttribute("listType")=="numbered"},hasValidAttribute(t){return this.appliesToListItem(t)==t.hasAttribute("listReversed")},setAttributeOnDowncast(t,e,n){if(e){t.setAttribute("reversed","reversed",n)}else{t.removeAttribute("reversed",n)}},getAttributeOnUpcast(t){return t.hasAttribute("reversed")}})}if(t.startIndex){e.push({attributeName:"listStart",defaultValue:1,viewConsumables:{attributes:"start"},addCommand(t){t.commands.add("listStart",new DocumentListStartCommand(t))},appliesToListItem(t){return t.getAttribute("listType")=="numbered"},hasValidAttribute(t){return this.appliesToListItem(t)==t.hasAttribute("listStart")},setAttributeOnDowncast(t,e,n){if(e==0||e>1){t.setAttribute("start",e,n)}else{t.removeAttribute("start",n)}},getAttributeOnUpcast(t){const e=t.getAttribute("start");return e>=0?e:1}})}return e}var mW=n(9938);var fW={injectType:"singletonStyleTag",attributes:{"data-cke":true}};fW.insert="head";fW.singleton=true;var pW=Nl()(mW.Z,fW);const kW=mW.Z.locals||{};class bW extends Ol{constructor(t,{enabledProperties:e,styleButtonViews:n,styleGridAriaLabel:i}){super(t);this.stylesView=null;this.additionalPropertiesCollapsibleView=null;this.startIndexFieldView=null;this.reversedSwitchButtonView=null;this.focusTracker=new fl;this.keystrokes=new pl;this.focusables=new Il;const o=["ck","ck-list-properties"];this.children=this.createCollection();this.focusCycler=new Xu({focusables:this.focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});if(e.styles){this.stylesView=this._createStylesView(n,i);this.children.add(this.stylesView)}else{o.push("ck-list-properties_without-styles")}if(e.startIndex||e.reversed){this._addNumberedListPropertyViews(e);o.push("ck-list-properties_with-numbered-properties")}this.setTemplate({tag:"div",attributes:{class:o},children:this.children})}render(){super.render();if(this.stylesView){this.focusables.add(this.stylesView);this.focusTracker.add(this.stylesView.element);if(this.startIndexFieldView||this.reversedSwitchButtonView){this.focusables.add(this.children.last.buttonView);this.focusTracker.add(this.children.last.buttonView.element)}for(const t of this.stylesView.children){this.stylesView.focusTracker.add(t.element)}r({keystrokeHandler:this.stylesView.keystrokes,focusTracker:this.stylesView.focusTracker,gridItems:this.stylesView.children,numberOfColumns:()=>nc.window.getComputedStyle(this.stylesView.element).getPropertyValue("grid-template-columns").split(" ").length,uiLanguageDirection:this.locale&&this.locale.uiLanguageDirection})}if(this.startIndexFieldView){this.focusables.add(this.startIndexFieldView);this.focusTracker.add(this.startIndexFieldView.element);const t=t=>t.stopPropagation();this.keystrokes.set("arrowright",t);this.keystrokes.set("arrowleft",t);this.keystrokes.set("arrowup",t);this.keystrokes.set("arrowdown",t)}if(this.reversedSwitchButtonView){this.focusables.add(this.reversedSwitchButtonView);this.focusTracker.add(this.reversedSwitchButtonView.element)}this.keystrokes.listenTo(this.element)}focus(){this.focusCycler.focusFirst()}focusLast(){this.focusCycler.focusLast()}destroy(){super.destroy();this.focusTracker.destroy();this.keystrokes.destroy()}_createStylesView(t,e){const n=new Ol(this.locale);n.children=n.createCollection();n.children.addMany(t);n.setTemplate({tag:"div",attributes:{"aria-label":e,class:["ck","ck-list-styles-list"]},children:n.children});n.children.delegate("execute").to(this);n.focus=function(){this.children.first.focus()};n.focusTracker=new fl;n.keystrokes=new pl;n.render();n.keystrokes.listenTo(n.element);return n}_addNumberedListPropertyViews(t){const e=this.locale.t;const n=[];if(t.startIndex){this.startIndexFieldView=this._createStartIndexField();n.push(this.startIndexFieldView)}if(t.reversed){this.reversedSwitchButtonView=this._createReversedSwitchButton();n.push(this.reversedSwitchButtonView)}if(t.styles){this.additionalPropertiesCollapsibleView=new mS(this.locale,n);this.additionalPropertiesCollapsibleView.set({label:e("List properties"),isCollapsed:true});this.additionalPropertiesCollapsibleView.buttonView.bind("isEnabled").toMany(n,"isEnabled",((...t)=>t.some((t=>t))));this.additionalPropertiesCollapsibleView.buttonView.on("change:isEnabled",((t,e,n)=>{if(!n){this.additionalPropertiesCollapsibleView.isCollapsed=true}}));this.children.add(this.additionalPropertiesCollapsibleView)}else{this.children.addMany(n)}}_createStartIndexField(){const t=this.locale.t;const e=new Tu(this.locale,Hy);e.set({label:t("Start at"),class:"ck-numbered-list-properties__start-index"});e.fieldView.set({min:0,step:1,value:1,inputMode:"numeric"});e.fieldView.on("input",(()=>{const n=e.fieldView.element;const i=n.valueAsNumber;if(Number.isNaN(i)){return}if(!n.checkValidity()){e.errorText=t("Start index must be greater than 0.")}else{this.fire("listStart",{startIndex:i})}}));return e}_createReversedSwitchButton(){const t=this.locale.t;const e=new Bd(this.locale);e.set({withText:true,label:t("Reversed order"),class:"ck-numbered-list-properties__reversed-order"});e.delegate("execute").to(this,"listReversed");return e}}const wW=' ';const AW=' ';const CW=' ';const _W=' ';const vW=' ';const yW=' ';const xW=' ';const EW=' ';const DW=' ';var SW=n(2591);var TW={injectType:"singletonStyleTag",attributes:{"data-cke":true}};TW.insert="head";TW.singleton=true;var BW=Nl()(SW.Z,TW);const IW=SW.Z.locals||{};class MW extends rh{static get pluginName(){return"ListPropertiesUI"}init(){const t=this.editor;const e=t.locale.t;const n=t.config.get("list.properties");if(n.styles){t.ui.componentFactory.add("bulletedList",LW({editor:t,parentCommandName:"bulletedList",buttonLabel:e("Bulleted List"),buttonIcon:Z$,styleGridAriaLabel:e("Bulleted list styles toolbar"),styleDefinitions:[{label:e("Toggle the disc list style"),tooltip:e("Disc"),type:"disc",icon:wW},{label:e("Toggle the circle list style"),tooltip:e("Circle"),type:"circle",icon:AW},{label:e("Toggle the square list style"),tooltip:e("Square"),type:"square",icon:CW}]}))}if(n.styles||n.startIndex||n.reversed){t.ui.componentFactory.add("numberedList",LW({editor:t,parentCommandName:"numberedList",buttonLabel:e("Numbered List"),buttonIcon:W$,styleGridAriaLabel:e("Numbered list styles toolbar"),styleDefinitions:[{label:e("Toggle the decimal list style"),tooltip:e("Decimal"),type:"decimal",icon:_W},{label:e("Toggle the decimal with leading zero list style"),tooltip:e("Decimal with leading zero"),type:"decimal-leading-zero",icon:vW},{label:e("Toggle the lower–roman list style"),tooltip:e("Lower–roman"),type:"lower-roman",icon:yW},{label:e("Toggle the upper–roman list style"),tooltip:e("Upper-roman"),type:"upper-roman",icon:xW},{label:e("Toggle the lower–latin list style"),tooltip:e("Lower-latin"),type:"lower-latin",icon:EW},{label:e("Toggle the upper–latin list style"),tooltip:e("Upper-latin"),type:"upper-latin",icon:DW}]}))}}}function LW({editor:t,parentCommandName:e,buttonLabel:n,buttonIcon:i,styleGridAriaLabel:o,styleDefinitions:r}){const s=t.commands.get(e);return a=>{const c=Dy(a,by);const l=c.buttonView;c.bind("isEnabled").to(s);c.class="ck-list-styles-dropdown";l.on("execute",(()=>{t.execute(e);t.editing.view.focus()}));l.set({label:n,icon:i,tooltip:true,isToggleable:true});l.bind("isOn").to(s,"value",(t=>!!t));c.once("change:isOpen",(()=>{const n=zW({editor:t,dropdownView:c,parentCommandName:e,styleGridAriaLabel:o,styleDefinitions:r});c.panelView.children.add(n)}));c.on("execute",(()=>{t.editing.view.focus()}));return c}}function NW({editor:t,listStyleCommand:e,parentCommandName:n}){const i=t.locale;const o=t.commands.get(n);return({label:n,type:r,icon:s,tooltip:a})=>{const c=new xd(i);c.set({label:n,icon:s,tooltip:a});e.on("change:value",(()=>{c.isOn=e.value===r}));c.on("execute",(()=>{if(o.value){if(e.value!==r){t.execute("listStyle",{type:r})}else{t.execute("listStyle",{type:e.defaultType})}}else{t.model.change((()=>{t.execute("listStyle",{type:r})}))}}));return c}}function zW({editor:t,dropdownView:e,parentCommandName:n,styleDefinitions:i,styleGridAriaLabel:o}){const r=t.locale;const s=t.config.get("list.properties");let a=null;if(n!="numberedList"){s.startIndex=false;s.reversed=false}if(s.styles){const e=t.commands.get("listStyle");const o=NW({editor:t,parentCommandName:n,listStyleCommand:e});const r=typeof e.isStyleTypeSupported=="function"?t=>e.isStyleTypeSupported(t.type):()=>true;a=i.filter(r).map(o)}const c=new bW(r,{styleGridAriaLabel:o,enabledProperties:s,styleButtonViews:a});if(s.styles){My(e,(()=>c.stylesView.children.find((t=>t.isOn))))}if(s.startIndex){const e=t.commands.get("listStart");c.startIndexFieldView.bind("isEnabled").to(e);c.startIndexFieldView.fieldView.bind("value").to(e);c.on("listStart",((e,n)=>t.execute("listStart",n)))}if(s.reversed){const e=t.commands.get("listReversed");c.reversedSwitchButtonView.bind("isEnabled").to(e);c.reversedSwitchButtonView.bind("isOn").to(e,"value",(t=>!!t));c.on("listReversed",(()=>{const n=e.value;t.execute("listReversed",{reversed:!n})}))}c.delegate("execute").to(e);return c}class PW extends(null&&Plugin){static get requires(){return[DocumentListPropertiesEditing,ListPropertiesUI]}static get pluginName(){return"DocumentListProperties"}}class RW extends ah{constructor(t,e){super(t);this._indentBy=e=="forward"?1:-1}refresh(){this.isEnabled=this._checkEnabled()}execute(){const t=this.editor.model;const e=t.document;let n=Array.from(e.selection.getSelectedBlocks());t.change((t=>{const e=n[n.length-1];let i=e.nextSibling;while(i&&i.name=="listItem"&&i.getAttribute("listIndent")>e.getAttribute("listIndent")){n.push(i);i=i.nextSibling}if(this._indentBy<0){n=n.reverse()}for(const e of n){const n=e.getAttribute("listIndent")+this._indentBy;if(n<0){t.rename(e,"paragraph")}else{t.setAttribute("listIndent",n,e)}}this.fire("_executeCleanup",n)}))}_checkEnabled(){const t=ml(this.editor.model.document.selection.getSelectedBlocks());if(!t||!t.is("element","listItem")){return false}if(this._indentBy>0){const e=t.getAttribute("listIndent");const n=t.getAttribute("listType");let i=t.previousSibling;while(i&&i.is("element","listItem")&&i.getAttribute("listIndent")>=e){if(i.getAttribute("listIndent")==e){return i.getAttribute("listType")==n}i=i.previousSibling}return false}return true}}class VW extends ah{constructor(t,e){super(t);this.type=e}refresh(){this.value=this._getValue();this.isEnabled=this._checkEnabled()}execute(t={}){const e=this.editor.model;const n=e.document;const i=Array.from(n.selection.getSelectedBlocks()).filter((t=>FW(t,e.schema)));const o=t.forceValue!==undefined?!t.forceValue:this.value;e.change((t=>{if(o){let e=i[i.length-1].nextSibling;let n=Number.POSITIVE_INFINITY;let o=[];while(e&&e.name=="listItem"&&e.getAttribute("listIndent")!==0){const t=e.getAttribute("listIndent");if(t=n){if(r>o.getAttribute("listIndent")){r=o.getAttribute("listIndent")}if(o.getAttribute("listIndent")==r){t[e?"unshift":"push"](o)}o=o[e?"previousSibling":"nextSibling"]}}}function FW(t,e){return e.checkChild(t.parent,"listItem")&&!e.isObject(t)}class jW extends rh{static get pluginName(){return"ListUtils"}getListTypeFromListStyleType(t){return G$(t)}getSelectedListItems(t){return H$(t)}getSiblingNodes(t,e){return j$(t,e)}}function HW(t){return(e,n,i)=>{const o=i.consumable;if(!o.test(n.item,"insert")||!o.test(n.item,"attribute:listType")||!o.test(n.item,"attribute:listIndent")){return}o.consume(n.item,"insert");o.consume(n.item,"attribute:listType");o.consume(n.item,"attribute:listIndent");const r=n.item;const s=N$(r,i);z$(r,s,i,t)}}function UW(t){return(e,n,i)=>{const o=i.mapper.toViewPosition(n.position);const r=o.getLastMatchingPosition((t=>!t.item.is("element","li")));const s=r.nodeAfter;const a=i.writer;a.breakContainer(a.createPositionBefore(s));a.breakContainer(a.createPositionAfter(s));const c=s.parent;const l=c.previousSibling;const d=a.createRangeOn(c);const u=a.remove(d);if(l&&l.nextSibling){P$(a,l,l.nextSibling)}const h=i.mapper.toModelElement(s);oZ(h.getAttribute("listIndent")+1,n.position,d.start,s,i,t);for(const t of a.createRangeIn(u).getItems()){i.mapper.unbindViewElement(t)}e.stop()}}const qW=(t,e,n)=>{if(!n.consumable.test(e.item,t.name)){return}const i=n.mapper.toViewElement(e.item);const o=n.writer;o.breakContainer(o.createPositionBefore(i));o.breakContainer(o.createPositionAfter(i));const r=i.parent;const s=e.attributeNewValue=="numbered"?"ol":"ul";o.rename(s,r)};const GW=(t,e,n)=>{n.consumable.consume(e.item,t.name);const i=n.mapper.toViewElement(e.item);const o=i.parent;const r=n.writer;P$(r,o,o.nextSibling);P$(r,o.previousSibling,o)};function $W(t){return(e,n,i)=>{if(!i.consumable.consume(n.item,"attribute:listIndent")){return}const o=i.mapper.toViewElement(n.item);const r=i.writer;r.breakContainer(r.createPositionBefore(o));r.breakContainer(r.createPositionAfter(o));const s=o.parent;const a=s.previousSibling;const c=r.createRangeOn(s);r.remove(c);if(a&&a.nextSibling){P$(r,a,a.nextSibling)}oZ(n.attributeOldValue+1,n.range.start,c.start,o,i,t);z$(n.item,o,i,t);for(const t of n.item.getChildren()){i.consumable.consume(t,"insert")}}}const WW=(t,e,n)=>{if(!n.consumable.test(e.item,t.name)){return}if(e.item.name!="listItem"){let t=n.mapper.toViewPosition(e.range.start);const i=n.writer;const o=[];while(t.parent.name=="ul"||t.parent.name=="ol"){t=i.breakContainer(t);if(t.parent.name!="li"){break}const e=t;const n=i.createPositionAt(t.parent,"end");if(!e.isEqual(n)){const t=i.remove(i.createRange(e,n));o.push(t)}t=i.createPositionAfter(t.parent)}if(o.length>0){for(let e=0;e0){const e=P$(i,n,n.nextSibling);if(e&&e.parent==n){t.offset--}}}P$(i,t.nodeBefore,t.nodeAfter)}}};const ZW=(t,e,n)=>{const i=n.mapper.toViewPosition(e.position);const o=i.nodeBefore;const r=i.nodeAfter;P$(n.writer,o,r)};const KW=(t,e,n)=>{if(n.consumable.consume(e.viewItem,{name:true})){const t=n.writer;const i=t.createElement("listItem");const o=sZ(e.viewItem);t.setAttribute("listIndent",o,i);const r=e.viewItem.parent&&e.viewItem.parent.name=="ol"?"numbered":"bulleted";t.setAttribute("listType",r,i);if(!n.safeInsert(i,e.modelCursor)){return}const s=nZ(i,e.viewItem.getChildren(),n);e.modelRange=t.createRange(e.modelCursor,s);n.updateConversionResult(i,e)}};const YW=(t,e,n)=>{if(n.consumable.test(e.viewItem,{name:true})){const t=Array.from(e.viewItem.getChildren());for(const e of t){const t=!(e.is("element","li")||rZ(e));if(t){e._remove()}}}};const QW=(t,e,n)=>{if(n.consumable.test(e.viewItem,{name:true})){if(e.viewItem.childCount===0){return}const t=[...e.viewItem.getChildren()];let n=false;for(const e of t){if(n&&!rZ(e)){e._remove()}if(rZ(e)){n=true}}}};function JW(t){return(e,n)=>{if(n.isPhantom){return}const i=n.modelPosition.nodeBefore;if(i&&i.is("element","listItem")){const e=n.mapper.toViewElement(i);const o=e.getAncestors().find(rZ);const r=t.createPositionAt(e,0).getWalker();for(const t of r){if(t.type=="elementStart"&&t.item.is("element","li")){n.viewPosition=t.previousPosition;break}else if(t.type=="elementEnd"&&t.item==o){n.viewPosition=t.nextPosition;break}}}}}function XW(t){return(e,n)=>{const i=n.viewPosition;const o=i.parent;const r=n.mapper;if(o.name=="ul"||o.name=="ol"){if(!i.isAtEnd){const e=r.toModelElement(i.nodeAfter);n.modelPosition=t.createPositionBefore(e)}else{const e=r.toModelElement(i.nodeBefore);const o=r.getModelLength(i.nodeBefore);n.modelPosition=t.createPositionBefore(e).getShiftedBy(o)}e.stop()}else if(o.name=="li"&&i.nodeBefore&&(i.nodeBefore.name=="ul"||i.nodeBefore.name=="ol")){const s=r.toModelElement(o);let a=1;let c=i.nodeBefore;while(c&&rZ(c)){a+=r.getModelLength(c);c=c.previousSibling}n.modelPosition=t.createPositionBefore(s).getShiftedBy(a);e.stop()}}}function tZ(t,e){const n=t.document.differ.getChanges();const i=new Map;let o=false;for(const i of n){if(i.type=="insert"&&i.name=="listItem"){r(i.position)}else if(i.type=="insert"&&i.name!="listItem"){if(i.name!="$text"){const n=i.position.nodeAfter;if(n.hasAttribute("listIndent")){e.removeAttribute("listIndent",n);o=true}if(n.hasAttribute("listType")){e.removeAttribute("listType",n);o=true}if(n.hasAttribute("listStyle")){e.removeAttribute("listStyle",n);o=true}if(n.hasAttribute("listReversed")){e.removeAttribute("listReversed",n);o=true}if(n.hasAttribute("listStart")){e.removeAttribute("listStart",n);o=true}for(const e of Array.from(t.createRangeIn(n)).filter((t=>t.item.is("element","listItem")))){r(e.previousPosition)}}const n=i.position.getShiftedBy(i.length);r(n)}else if(i.type=="remove"&&i.name=="listItem"){r(i.position)}else if(i.type=="attribute"&&i.attributeKey=="listIndent"){r(i.range.start)}else if(i.type=="attribute"&&i.attributeKey=="listType"){r(i.range.start)}}for(const t of i.values()){s(t);a(t)}return o;function r(t){const e=t.nodeBefore;if(!e||!e.is("element","listItem")){const e=t.nodeAfter;if(e&&e.is("element","listItem")){i.set(e,e)}}else{let t=e;if(i.has(t)){return}for(let e=t.previousSibling;e&&e.is("element","listItem");e=t.previousSibling){t=e;if(i.has(t)){return}}i.set(e,t)}}function s(t){let n=0;let i=null;while(t&&t.is("element","listItem")){const r=t.getAttribute("listIndent");if(r>n){let s;if(i===null){i=r-n;s=n}else{if(i>r){i=r}s=r-i}e.setAttribute("listIndent",s,t);o=true}else{i=null;n=t.getAttribute("listIndent")+1}t=t.nextSibling}}function a(t){let n=[];let i=null;while(t&&t.is("element","listItem")){const r=t.getAttribute("listIndent");if(i&&i.getAttribute("listIndent")>r){n=n.slice(0,r+1)}if(r!=0){if(n[r]){const i=n[r];if(t.getAttribute("listType")!=i){e.setAttribute("listType",i,t);o=true}}else{n[r]=t.getAttribute("listType")}}i=t;t=t.nextSibling}}}const eZ=function(t,[e,n]){const i=this;let o=e.is("documentFragment")?e.getChild(0):e;let r;if(!n){r=i.document.selection}else{r=i.createSelection(n)}if(o&&o.is("element","listItem")){const t=r.getFirstPosition();let e=null;if(t.parent.is("element","listItem")){e=t.parent}else if(t.nodeBefore&&t.nodeBefore.is("element","listItem")){e=t.nodeBefore}if(e){const t=e.getAttribute("listIndent");if(t>0){while(o&&o.is("element","listItem")){o._setAttribute("listIndent",o.getAttribute("listIndent")+t);o=o.nextSibling}}}}};function nZ(t,e,n){const{writer:i,schema:o}=n;let r=i.createPositionAfter(t);for(const s of e){if(s.name=="ul"||s.name=="ol"){r=n.convertItem(s,r).modelCursor}else{const e=n.convertItem(s,i.createPositionAt(t,"end"));const a=e.modelRange.start.nodeAfter;const c=a&&a.is("element")&&!o.checkChild(t,a.name);if(c){if(e.modelCursor.parent.is("element","listItem")){t=e.modelCursor.parent}else{t=iZ(e.modelCursor)}r=i.createPositionAfter(t)}}}return r}function iZ(t){const e=new Rk({startPosition:t});let n;do{n=e.next()}while(!n.value.item.is("element","listItem"));return n.value.item}function oZ(t,e,n,i,o,r){const s=V$(e.nodeBefore,{sameIndent:true,smallerIndent:true,listIndent:t});const a=o.mapper;const c=o.writer;const l=s?s.getAttribute("listIndent"):null;let d;if(!s){d=n}else if(l==t){const t=a.toViewElement(s).parent;d=c.createPositionAfter(t)}else{const t=r.createPositionAt(s,"end");d=a.toViewPosition(t)}d=R$(d);for(const t of[...i.getChildren()]){if(rZ(t)){d=c.move(c.createRangeOn(t),d).end;P$(c,t,t.nextSibling);P$(c,t.previousSibling,t)}}}function rZ(t){return t.is("element","ol")||t.is("element","ul")}function sZ(t){let e=0;let n=t.parent;while(n){if(n.is("element","li")){e++}else{const t=n.previousSibling;if(t&&t.is("element","li")){e++}}n=n.parent}return e}class aZ extends rh{static get pluginName(){return"ListEditing"}static get requires(){return[aI,MT,jW]}init(){const t=this.editor;t.model.schema.register("listItem",{inheritAllFrom:"$block",allowAttributes:["listType","listIndent"]});const e=t.data;const n=t.editing;t.model.document.registerPostFixer((e=>tZ(t.model,e)));n.mapper.registerViewToModelLength("li",cZ);e.mapper.registerViewToModelLength("li",cZ);n.mapper.on("modelToViewPosition",JW(n.view));n.mapper.on("viewToModelPosition",XW(t.model));e.mapper.on("modelToViewPosition",JW(n.view));t.conversion.for("editingDowncast").add((e=>{e.on("insert",WW,{priority:"high"});e.on("insert:listItem",HW(t.model));e.on("attribute:listType:listItem",qW,{priority:"high"});e.on("attribute:listType:listItem",GW,{priority:"low"});e.on("attribute:listIndent:listItem",$W(t.model));e.on("remove:listItem",UW(t.model));e.on("remove",ZW,{priority:"low"})}));t.conversion.for("dataDowncast").add((e=>{e.on("insert",WW,{priority:"high"});e.on("insert:listItem",HW(t.model))}));t.conversion.for("upcast").add((t=>{t.on("element:ul",YW,{priority:"high"});t.on("element:ol",YW,{priority:"high"});t.on("element:li",QW,{priority:"high"});t.on("element:li",KW)}));t.model.on("insertContent",eZ,{priority:"high"});t.commands.add("numberedList",new VW(t,"numbered"));t.commands.add("bulletedList",new VW(t,"bulleted"));t.commands.add("indentList",new RW(t,"forward"));t.commands.add("outdentList",new RW(t,"backward"));const i=n.view.document;this.listenTo(i,"enter",((t,e)=>{const n=this.editor.model.document;const i=n.selection.getLastPosition().parent;if(n.selection.isCollapsed&&i.name=="listItem"&&i.isEmpty){this.editor.execute("outdentList");e.preventDefault();t.stop()}}),{context:"li"});this.listenTo(i,"delete",((t,e)=>{if(e.direction!=="backward"){return}const n=this.editor.model.document.selection;if(!n.isCollapsed){return}const i=n.getFirstPosition();if(!i.isAtStart){return}const o=i.parent;if(o.name!=="listItem"){return}const r=o.previousSibling&&o.previousSibling.name==="listItem";if(r){return}this.editor.execute("outdentList");e.preventDefault();t.stop()}),{context:"li"});this.listenTo(t.editing.view.document,"tab",((e,n)=>{const i=n.shiftKey?"outdentList":"indentList";const o=this.editor.commands.get(i);if(o.isEnabled){t.execute(i);n.stopPropagation();n.preventDefault();e.stop()}}),{context:"li"})}afterInit(){const t=this.editor.commands;const e=t.get("indent");const n=t.get("outdent");if(e){e.registerChildCommand(t.get("indentList"))}if(n){n.registerChildCommand(t.get("outdentList"))}}}function cZ(t){let e=1;for(const n of t.getChildren()){if(n.name=="ul"||n.name=="ol"){for(const t of n.getChildren()){e+=cZ(t)}}}return e}class lZ extends rh{static get requires(){return[aZ,K$]}static get pluginName(){return"List"}}class dZ extends ah{constructor(t,e){super(t);this.defaultType=e}refresh(){this.value=this._getValue();this.isEnabled=this._checkEnabled()}execute(t={}){this._tryToConvertItemsToList(t);const e=this.editor.model;const n=H$(e);if(!n.length){return}e.change((e=>{for(const i of n){e.setAttribute("listStyle",t.type||this.defaultType,i)}}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;if(t&&t.is("element","listItem")){return t.getAttribute("listStyle")}return null}_checkEnabled(){const t=this.editor;const e=t.commands.get("numberedList");const n=t.commands.get("bulletedList");return e.isEnabled||n.isEnabled}_tryToConvertItemsToList(t){if(!t.type){return}const e=G$(t.type);if(!e){return}const n=this.editor;const i=`${e}List`;const o=n.commands.get(i);if(!o.value){n.execute(i)}}}class uZ extends ah{refresh(){const t=this._getValue();this.value=t;this.isEnabled=t!=null}execute(t={}){const e=this.editor.model;const n=H$(e).filter((t=>t.getAttribute("listType")=="numbered"));e.change((e=>{for(const i of n){e.setAttribute("listReversed",!!t.reversed,i)}}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;if(t&&t.is("element","listItem")&&t.getAttribute("listType")=="numbered"){return t.getAttribute("listReversed")}return null}}class hZ extends ah{refresh(){const t=this._getValue();this.value=t;this.isEnabled=t!=null}execute({startIndex:t=1}={}){const e=this.editor.model;const n=H$(e).filter((t=>t.getAttribute("listType")=="numbered"));e.change((e=>{for(const i of n){e.setAttribute("listStart",t>=0?t:1,i)}}))}_getValue(){const t=this.editor.model.document.selection.getFirstPosition().parent;if(t&&t.is("element","listItem")&&t.getAttribute("listType")=="numbered"){return t.getAttribute("listStart")}return null}}const gZ="default";class mZ extends rh{static get requires(){return[aZ]}static get pluginName(){return"ListPropertiesEditing"}constructor(t){super(t);t.config.define("list",{properties:{styles:true,startIndex:false,reversed:false}})}init(){const t=this.editor;const e=t.model;const n=t.config.get("list.properties");const i=fZ(n);e.schema.extend("listItem",{allowAttributes:i.map((t=>t.attributeName))});for(const e of i){e.addCommand(t)}this.listenTo(t.commands.get("indentList"),"_executeCleanup",bZ(t,i));this.listenTo(t.commands.get("outdentList"),"_executeCleanup",wZ(t,i));this.listenTo(t.commands.get("bulletedList"),"_executeCleanup",yZ(t));this.listenTo(t.commands.get("numberedList"),"_executeCleanup",yZ(t));e.document.registerPostFixer(AZ(t,i));t.conversion.for("upcast").add(pZ(i));t.conversion.for("downcast").add(kZ(i));this._mergeListAttributesWhileMergingLists(i)}afterInit(){const t=this.editor;if(t.commands.get("todoList")){t.model.document.registerPostFixer(vZ(t))}}_mergeListAttributesWhileMergingLists(t){const e=this.editor;const n=e.model;let i;this.listenTo(n,"deleteContent",((t,[e])=>{const n=e.getFirstPosition();const o=e.getLastPosition();if(n.parent===o.parent){return}if(!n.parent.is("element","listItem")){return}const r=o.parent.nextSibling;if(!r||!r.is("element","listItem")){return}const s=V$(n.parent,{sameIndent:true,listIndent:r.getAttribute("listIndent")});if(!s){return}if(s.getAttribute("listType")===r.getAttribute("listType")){i=s}}),{priority:"high"});this.listenTo(n,"deleteContent",(()=>{if(!i){return}n.change((e=>{const n=V$(i.nextSibling,{sameIndent:true,listIndent:i.getAttribute("listIndent"),direction:"forward"});if(!n){i=null;return}const o=[n,...j$(e.createPositionAt(n,0),"forward")];for(const n of o){for(const o of t){if(o.appliesToListItem(n)){const t=o.attributeName;const r=i.getAttribute(t);e.setAttribute(t,r,n)}}}}));i=null}),{priority:"low"})}}function fZ(t){const e=[];if(t.styles){e.push({attributeName:"listStyle",defaultValue:gZ,addCommand(t){t.commands.add("listStyle",new dZ(t,gZ))},appliesToListItem(){return true},setAttributeOnDowncast(t,e,n){if(e&&e!==gZ){t.setStyle("list-style-type",e,n)}else{t.removeStyle("list-style-type",n)}},getAttributeOnUpcast(t){return t.getStyle("list-style-type")||gZ}})}if(t.reversed){e.push({attributeName:"listReversed",defaultValue:false,addCommand(t){t.commands.add("listReversed",new uZ(t))},appliesToListItem(t){return t.getAttribute("listType")=="numbered"},setAttributeOnDowncast(t,e,n){if(e){t.setAttribute("reversed","reversed",n)}else{t.removeAttribute("reversed",n)}},getAttributeOnUpcast(t){return t.hasAttribute("reversed")}})}if(t.startIndex){e.push({attributeName:"listStart",defaultValue:1,addCommand(t){t.commands.add("listStart",new hZ(t))},appliesToListItem(t){return t.getAttribute("listType")=="numbered"},setAttributeOnDowncast(t,e,n){if(e==0||e>1){t.setAttribute("start",e,n)}else{t.removeAttribute("start",n)}},getAttributeOnUpcast(t){const e=t.getAttribute("start");return e>=0?e:1}})}return e}function pZ(t){return e=>{e.on("element:li",((e,n,i)=>{if(!n.modelRange){return}const o=n.viewItem.parent;const r=n.modelRange.start.nodeAfter||n.modelRange.end.nodeBefore;for(const e of t){if(e.appliesToListItem(r)){const t=e.getAttributeOnUpcast(o);i.writer.setAttribute(e.attributeName,t,r)}}}),{priority:"low"})}}function kZ(t){return n=>{for(const i of t){n.on(`attribute:${i.attributeName}:listItem`,((t,n,o)=>{const r=o.writer;const s=n.item;const a=V$(s.previousSibling,{sameIndent:true,listIndent:s.getAttribute("listIndent"),direction:"backward"});const c=o.mapper.toViewElement(s);if(!e(s,a)){r.breakContainer(r.createPositionBefore(c))}i.setAttributeOnDowncast(r,n.attributeNewValue,c.parent)}),{priority:"low"})}};function e(t,e){return e&&t.getAttribute("listType")===e.getAttribute("listType")&&t.getAttribute("listIndent")===e.getAttribute("listIndent")&&t.getAttribute("listStyle")===e.getAttribute("listStyle")&&t.getAttribute("listReversed")===e.getAttribute("listReversed")&&t.getAttribute("listStart")===e.getAttribute("listStart")}}function bZ(t,e){return(n,i)=>{const o=i[0];const r=o.getAttribute("listIndent");const s=i.filter((t=>t.getAttribute("listIndent")===r));let a=null;if(o.previousSibling.getAttribute("listIndent")+1!==r){a=V$(o.previousSibling,{sameIndent:true,direction:"backward",listIndent:r})}t.model.change((t=>{for(const n of s){for(const i of e){if(i.appliesToListItem(n)){const e=a==null?i.defaultValue:a.getAttribute(i.attributeName);t.setAttribute(i.attributeName,e,n)}}}}))}}function wZ(t,e){return(n,i)=>{i=i.reverse().filter((t=>t.is("element","listItem")));if(!i.length){return}const o=i[0].getAttribute("listIndent");const r=i[0].getAttribute("listType");let s=i[0].previousSibling;if(s.is("element","listItem")){while(s.getAttribute("listIndent")!==o){s=s.previousSibling}}else{s=null}if(!s){s=i[i.length-1].nextSibling}if(!s||!s.is("element","listItem")){return}if(s.getAttribute("listType")!==r){return}t.model.change((t=>{const n=i.filter((t=>t.getAttribute("listIndent")===o));for(const i of n){for(const n of e){if(n.appliesToListItem(i)){const e=n.attributeName;const o=s.getAttribute(e);t.setAttribute(e,o,i)}}}}))}}function AZ(t,e){return n=>{let i=false;const o=xZ(t.model.document.differ.getChanges()).filter((t=>t.getAttribute("listType")!=="todo"));if(!o.length){return i}let r=o[o.length-1].nextSibling;if(!r||!r.is("element","listItem")){r=o[0].previousSibling;if(r){const t=o[0].getAttribute("listIndent");while(r.is("element","listItem")&&r.getAttribute("listIndent")!==t){r=r.previousSibling;if(!r){break}}}}for(const t of e){const e=t.attributeName;for(const s of o){if(!t.appliesToListItem(s)){n.removeAttribute(e,s);continue}if(!s.hasAttribute(e)){if(CZ(r,s,t)){n.setAttribute(e,r.getAttribute(e),s)}else{n.setAttribute(e,t.defaultValue,s)}i=true}else{const o=s.previousSibling;if(_Z(o,s,t.attributeName)){n.setAttribute(e,o.getAttribute(e),s);i=true}}}}return i}}function CZ(t,e,n){if(!t){return false}const i=t.getAttribute(n.attributeName);if(!i){return false}if(i==n.defaultValue){return false}if(t.getAttribute("listType")!==e.getAttribute("listType")){return false}return true}function _Z(t,e,n){if(!t||!t.is("element","listItem")){return false}if(e.getAttribute("listType")!==t.getAttribute("listType")){return false}const i=t.getAttribute("listIndent");if(i<1||i!==e.getAttribute("listIndent")){return false}const o=t.getAttribute(n);if(!o||o===e.getAttribute(n)){return false}return true}function vZ(t){return e=>{const n=xZ(t.model.document.differ.getChanges()).filter((t=>t.getAttribute("listType")==="todo"&&(t.hasAttribute("listStyle")||t.hasAttribute("listReversed")||t.hasAttribute("listStart"))));if(!n.length){return false}for(const t of n){e.removeAttribute("listStyle",t);e.removeAttribute("listReversed",t);e.removeAttribute("listStart",t)}return true}}function yZ(t){return(e,n)=>{n=n.filter((t=>t.is("element","listItem")));t.model.change((t=>{for(const e of n){t.removeAttribute("listStyle",e)}}))}}function xZ(t){const e=[];for(const n of t){const t=EZ(n);if(t&&t.is("element","listItem")){e.push(t)}}return e}function EZ(t){if(t.type==="attribute"){return t.range.start.nodeAfter}if(t.type==="insert"){return t.position.nodeAfter}return null}class DZ extends rh{static get requires(){return[mZ,MW]}static get pluginName(){return"ListProperties"}}const SZ="todoListChecked";class TZ extends ah{constructor(t){super(t);this._selectedElements=[];this.on("execute",(()=>{this.refresh()}),{priority:"highest"})}refresh(){this._selectedElements=this._getSelectedItems();this.value=this._selectedElements.every((t=>!!t.getAttribute(SZ)));this.isEnabled=!!this._selectedElements.length}_getSelectedItems(){const t=this.editor.model;const e=t.schema;const n=t.document.selection.getFirstRange();const i=n.start.parent;const o=[];if(e.checkAttribute(i,SZ)){o.push(i)}for(const t of n.getItems()){if(e.checkAttribute(t,SZ)&&!o.includes(t)){o.push(t)}}return o}execute(t={}){this.editor.model.change((e=>{for(const n of this._selectedElements){const i=t.forceValue===undefined?!this.value:t.forceValue;if(i){e.setAttribute(SZ,true,n)}else{e.removeAttribute(SZ,n)}}}))}}function BZ(t,e){return(n,i,o)=>{const r=o.consumable;if(!r.test(i.item,"insert")||!r.test(i.item,"attribute:listType")||!r.test(i.item,"attribute:listIndent")){return}if(i.item.getAttribute("listType")!="todo"){return}const s=i.item;r.consume(s,"insert");r.consume(s,"attribute:listType");r.consume(s,"attribute:listIndent");r.consume(s,"attribute:todoListChecked");const a=o.writer;const c=N$(s,o);const l=!!s.getAttribute("todoListChecked");const d=PZ(s,a,l,e);const u=a.createContainerElement("span",{class:"todo-list__label__description"});a.addClass("todo-list",c.parent);a.insert(a.createPositionAt(c,0),d);a.insert(a.createPositionAfter(d),u);z$(s,c,o,t)}}function IZ(t){return(e,n,i)=>{const o=i.consumable;if(!o.test(n.item,"insert")||!o.test(n.item,"attribute:listType")||!o.test(n.item,"attribute:listIndent")){return}if(n.item.getAttribute("listType")!="todo"){return}const r=n.item;o.consume(r,"insert");o.consume(r,"attribute:listType");o.consume(r,"attribute:listIndent");o.consume(r,"attribute:todoListChecked");const s=i.writer;const a=N$(r,i);s.addClass("todo-list",a.parent);const c=s.createContainerElement("label",{class:"todo-list__label"});const l=s.createEmptyElement("input",{type:"checkbox",disabled:"disabled"});const d=s.createContainerElement("span",{class:"todo-list__label__description"});if(r.getAttribute("todoListChecked")){s.setAttribute("checked","checked",l)}s.insert(s.createPositionAt(a,0),c);s.insert(s.createPositionAt(c,0),l);s.insert(s.createPositionAfter(l),d);z$(r,a,i,t)}}const MZ=(t,e,n)=>{const i=e.modelCursor;const o=i.parent;const r=e.viewItem;if(r.getAttribute("type")!="checkbox"||o.name!="listItem"||!i.isAtStart){return}if(!n.consumable.consume(r,{name:true})){return}const s=n.writer;s.setAttribute("listType","todo",o);if(e.viewItem.hasAttribute("checked")){s.setAttribute("todoListChecked",true,o)}e.modelRange=s.createRange(i)};function LZ(t,e){return(n,i,o)=>{if(!o.consumable.consume(i.item,n.name)){return}const r=o.mapper.toViewElement(i.item);const s=o.writer;const a=RZ(r,e);if(i.attributeNewValue=="todo"){const e=!!i.item.getAttribute("todoListChecked");const n=PZ(i.item,s,e,t);const o=s.createContainerElement("span",{class:"todo-list__label__description"});const a=s.createRangeIn(r);const c=F$(r);const l=R$(a.start);const d=c?s.createPositionBefore(c):a.end;const u=s.createRange(l,d);s.addClass("todo-list",r.parent);s.move(u,s.createPositionAt(o,0));s.insert(s.createPositionAt(r,0),n);s.insert(s.createPositionAfter(n),o)}else if(i.attributeOldValue=="todo"){const t=VZ(r,e);s.removeClass("todo-list",r.parent);s.remove(a);s.move(s.createRangeIn(t),s.createPositionBefore(t));s.remove(t)}}}function NZ(t){return(e,n,i)=>{if(n.item.getAttribute("listType")!="todo"){return}if(!i.consumable.consume(n.item,"attribute:todoListChecked")){return}const{mapper:o,writer:r}=i;const s=!!n.item.getAttribute("todoListChecked");const a=o.toViewElement(n.item);const c=a.getChild(0);const l=PZ(n.item,r,s,t);r.insert(r.createPositionAfter(c),l);r.remove(c)}}function zZ(t){return(e,n)=>{const i=n.modelPosition;const o=i.parent;if(!o.is("element","listItem")||o.getAttribute("listType")!="todo"){return}const r=n.mapper.toViewElement(o);const s=VZ(r,t);if(s){n.viewPosition=n.mapper.findPositionIn(s,i.offset)}}}function PZ(t,e,n,i){const o=e.createUIElement("label",{class:"todo-list__label",contenteditable:false},(function(e){const o=ie(document,"input",{type:"checkbox",tabindex:"-1"});if(n){o.setAttribute("checked","checked")}o.addEventListener("change",(()=>i(t)));const r=this.toDomElement(e);r.appendChild(o);return r}));return o}function RZ(t,e){const n=e.createRangeIn(t);for(const t of n){if(t.item.is("uiElement","label")){return t.item}}}function VZ(t,e){const n=e.createRangeIn(t);for(const t of n){if(t.item.is("containerElement","span")&&t.item.hasClass("todo-list__label__description")){return t.item}}}const OZ=Kc("Ctrl+Enter");class FZ extends rh{static get pluginName(){return"TodoListEditing"}static get requires(){return[aZ]}init(){const t=this.editor;const{editing:e,data:n,model:i}=t;i.schema.extend("listItem",{allowAttributes:["todoListChecked"]});i.schema.addAttributeCheck(((t,e)=>{const n=t.last;if(e=="todoListChecked"&&n.name=="listItem"&&n.getAttribute("listType")!="todo"){return false}}));t.commands.add("todoList",new VW(t,"todo"));const o=new TZ(t);t.commands.add("checkTodoList",o);t.commands.add("todoListCheck",o);n.downcastDispatcher.on("insert:listItem",IZ(i),{priority:"high"});n.upcastDispatcher.on("element:input",MZ,{priority:"high"});e.downcastDispatcher.on("insert:listItem",BZ(i,(t=>this._handleCheckmarkChange(t))),{priority:"high"});e.downcastDispatcher.on("attribute:listType:listItem",LZ((t=>this._handleCheckmarkChange(t)),e.view));e.downcastDispatcher.on("attribute:todoListChecked:listItem",NZ((t=>this._handleCheckmarkChange(t))));e.mapper.on("modelToViewPosition",zZ(e.view));n.mapper.on("modelToViewPosition",zZ(e.view));this.listenTo(e.view.document,"arrowKey",jZ(i,t.locale),{context:"li"});this.listenTo(e.view.document,"keydown",((e,n)=>{if(Zc(n)===OZ){t.execute("checkTodoList");e.stop()}}),{priority:"high"});const r=new Set;this.listenTo(i,"applyOperation",((t,e)=>{const n=e[0];if(n.type=="rename"&&n.oldName=="listItem"){const t=n.position.nodeAfter;if(t.hasAttribute("todoListChecked")){r.add(t)}}else if(n.type=="changeAttribute"&&n.key=="listType"&&n.oldValue==="todo"){for(const t of n.range.getItems()){if(t.hasAttribute("todoListChecked")&&t.getAttribute("listType")!=="todo"){r.add(t)}}}}));i.document.registerPostFixer((t=>{let e=false;for(const n of r){t.removeAttribute("todoListChecked",n);e=true}r.clear();return e}))}_handleCheckmarkChange(t){const e=this.editor;const n=e.model;const i=Array.from(n.document.selection.getRanges());n.change((n=>{n.setSelection(t,"end");e.execute("checkTodoList");n.setSelection(i)}))}}function jZ(t,e){return(n,i)=>{const o=Jc(i.keyCode,e.contentLanguageDirection);if(o!="left"){return}const r=t.schema;const s=t.document.selection;if(!s.isCollapsed){return}const a=s.getFirstPosition();const c=a.parent;if(c.name==="listItem"&&c.getAttribute("listType")=="todo"&&a.isAtStart){const e=r.getNearestSelectionRange(t.createPositionBefore(c),"backward");if(e){t.change((t=>t.setSelection(e)))}i.preventDefault();i.stopPropagation();n.stop()}}}const HZ=' ';class UZ extends rh{static get pluginName(){return"TodoListUI"}init(){const t=this.editor.t;O$(this.editor,"todoList",t("To-do List"),HZ)}}var qZ=n(9292);var GZ={injectType:"singletonStyleTag",attributes:{"data-cke":true}};GZ.insert="head";GZ.singleton=true;var $Z=Nl()(qZ.Z,GZ);const WZ=qZ.Z.locals||{};class ZZ extends rh{static get requires(){return[FZ,UZ]}static get pluginName(){return"TodoList"}}class KZ extends(null&&Command){constructor(t){super(t);this.on("execute",(()=>{this.refresh()}),{priority:"highest"})}refresh(){const t=this._getSelectedItems();this.value=this._getValue(t);this.isEnabled=!!t.length}execute(t={}){this.editor.model.change((e=>{const n=this._getSelectedItems();const i=t.forceValue===undefined?!this._getValue(n):t.forceValue;for(const t of n){if(i){e.setAttribute("todoListChecked",true,t)}else{e.removeAttribute("todoListChecked",t)}}}))}_getValue(t){return t.every((t=>t.getAttribute("todoListChecked")))}_getSelectedItems(){const t=this.editor.model;const e=t.schema;const n=t.document.selection.getFirstRange();const i=n.start.parent;const o=[];if(e.checkAttribute(i,"todoListChecked")){o.push(...getAllListItemBlocks(i))}for(const t of n.getItems({shallow:true})){if(e.checkAttribute(t,"todoListChecked")&&!o.includes(t)){o.push(...getAllListItemBlocks(t))}}return o}}class YZ extends(null&&DomEventObserver){constructor(){super(...arguments);this.domEventType=["change"]}onDomEvent(t){if(t.target){const e=this.view.domConverter.mapDomToView(t.target);if(e&&e.is("element","input")&&e.getAttribute("type")=="checkbox"&&e.findAncestor({classes:"todo-list__label"})){this.fire("todoCheckboxChange",t)}}}}const QZ=Kc("Ctrl+Enter");class JZ extends(null&&Plugin){static get pluginName(){return"TodoDocumentListEditing"}static get requires(){return[DocumentListEditing]}init(){const t=this.editor;const e=t.model;const n=t.editing;const i=t.plugins.get(DocumentListEditing);const o=t.config.get("list.multiBlock");const r=o?"paragraph":"listItem";t.commands.add("todoList",new DocumentListCommand(t,"todo"));t.commands.add("checkTodoList",new CheckTodoDocumentListCommand(t));n.view.addObserver(TodoCheckboxChangeObserver);e.schema.extend("$listItem",{allowAttributes:"todoListChecked"});e.schema.addAttributeCheck(((t,e)=>{const n=t.last;if(e!="todoListChecked"){return}if(!n.getAttribute("listItemId")||n.getAttribute("listType")!="todo"){return false}}));t.conversion.for("upcast").add((t=>{t.on("element:input",XZ());t.on("element:label",tK({name:"label",classes:"todo-list__label"}));t.on("element:label",tK({name:"label",classes:["todo-list__label","todo-list__label_without-description"]}));t.on("element:span",tK({name:"span",classes:"todo-list__label__description"}));t.on("element:ul",eK({name:"ul",classes:"todo-list"}))}));t.conversion.for("downcast").elementToElement({model:r,view:(t,{writer:e})=>{if(nK(t,i.getListAttributeNames())){return e.createContainerElement("span",{class:"todo-list__label__description"})}},converterPriority:"highest"});i.registerDowncastStrategy({scope:"list",attributeName:"listType",setAttributeOnDowncast(t,e,n){if(e=="todo"){t.addClass("todo-list",n)}else{t.removeClass("todo-list",n)}}});i.registerDowncastStrategy({scope:"itemMarker",attributeName:"todoListChecked",createElement(t,e,{dataPipeline:n}){if(e.getAttribute("listType")!="todo"){return null}const i=t.createEmptyElement("input",{type:"checkbox",...e.getAttribute("todoListChecked")?{checked:"checked"}:null,...n?{disabled:"disabled"}:{tabindex:"-1"}});if(n){return i}return t.createContainerElement("span",{contenteditable:"false"},i)},canWrapElement(t){return nK(t,i.getListAttributeNames())},createWrapperElement(t,e,{dataPipeline:n}){const o=["todo-list__label"];if(!nK(e,i.getListAttributeNames())){o.push("todo-list__label_without-description")}return t.createAttributeElement(n?"label":"span",{class:o.join(" ")})}});n.mapper.registerViewToModelLength("input",(t=>{if(t.getAttribute("type")=="checkbox"&&t.findAncestor({classes:"todo-list__label"})){return 0}return n.mapper.toModelElement(t)?1:0}));i.on("checkElement",((t,{modelElement:e,viewElement:n})=>{const o=nK(e,i.getListAttributeNames());const r=n.hasClass("todo-list__label__description");if(r!=o){t.return=true;t.stop()}}));i.on("checkElement",((e,{modelElement:n,viewElement:i})=>{const o=n.getAttribute("listType")=="todo"&&isFirstBlockOfListItem(n);let r=false;const s=t.editing.view.createPositionBefore(i).getWalker({direction:"backward"});for(const{item:e}of s){if(e.is("element")&&t.editing.mapper.toModelElement(e)){break}if(e.is("element","input")&&e.getAttribute("type")=="checkbox"){r=true}}if(r!=o){e.return=true;e.stop()}}));i.on("postFixer",((t,{listNodes:e,writer:n})=>{for(const{node:i,previousNodeInList:o}of e){if(!o){continue}if(o.getAttribute("listItemId")!=i.getAttribute("listItemId")){continue}const e=o.hasAttribute("todoListChecked");const r=i.hasAttribute("todoListChecked");if(r&&!e){n.removeAttribute("todoListChecked",i);t.return=true}else if(!r&&e){n.setAttribute("todoListChecked",true,i);t.return=true}}}));e.document.registerPostFixer((t=>{const n=e.document.differ.getChanges();let i=false;for(const e of n){if(e.type=="attribute"&&e.attributeKey=="listType"){const n=e.range.start.nodeAfter;if(e.attributeOldValue=="todo"&&n.hasAttribute("todoListChecked")){t.removeAttribute("todoListChecked",n);i=true}}else if(e.type=="insert"&&e.name!="$text"){for(const{item:n}of t.createRangeOn(e.position.nodeAfter)){if(n.is("element")&&n.getAttribute("listType")!="todo"&&n.hasAttribute("todoListChecked")){t.removeAttribute("todoListChecked",n);i=true}}}}return i}));this.listenTo(n.view.document,"keydown",((e,n)=>{if(getCode(n)===QZ){t.execute("checkTodoList");e.stop()}}),{priority:"high"});this.listenTo(n.view.document,"todoCheckboxChange",((t,e)=>{const i=e.target;if(!i||!i.is("element","input")){return}const o=n.view.createPositionAfter(i);const r=n.mapper.toModelPosition(o);const s=r.parent;if(s&&isListItemBlock(s)&&s.getAttribute("listType")=="todo"){this._handleCheckmarkChange(s)}}));this.listenTo(n.view.document,"arrowKey",oK(e,t.locale),{context:"$text"});this.listenTo(n.mapper,"viewToModelPosition",((t,n)=>{const i=n.viewPosition.parent;const o=i.is("attributeElement","li")&&n.viewPosition.offset==0;const r=rK(i)&&n.viewPosition.offset<=1;const s=i.is("element","span")&&i.getAttribute("contenteditable")=="false"&&rK(i.parent);if(!o&&!r&&!s){return}const a=n.modelPosition.nodeAfter;if(a&&a.getAttribute("listType")=="todo"){n.modelPosition=e.createPositionAt(a,0)}}),{priority:"low"})}_handleCheckmarkChange(t){const e=this.editor;const n=e.model;const i=Array.from(n.document.selection.getRanges());n.change((n=>{n.setSelection(t,"end");e.execute("checkTodoList");n.setSelection(i)}))}}function XZ(){return(t,e,n)=>{const i=e.modelCursor;const o=i.parent;const r=e.viewItem;if(!n.consumable.test(r,{name:true})){return}if(r.getAttribute("type")!="checkbox"||!i.isAtStart||!o.hasAttribute("listType")){return}n.consumable.consume(r,{name:true});const s=n.writer;s.setAttribute("listType","todo",o);if(e.viewItem.hasAttribute("checked")){s.setAttribute("todoListChecked",true,o)}e.modelRange=s.createRange(i)}}function tK(t){const e=new Matcher(t);return(t,n,i)=>{const o=e.match(n.viewItem);if(!o){return}if(!i.consumable.consume(n.viewItem,o.match)){return}Object.assign(n,i.convertChildren(n.viewItem,n.modelCursor))}}function eK(t){const e=new Matcher(t);return(t,n,i)=>{const o=e.match(n.viewItem);if(!o){return}const r=o.match;r.name=false;i.consumable.consume(n.viewItem,r)}}function nK(t,e){return(t.is("element","paragraph")||t.is("element","listItem"))&&t.getAttribute("listType")=="todo"&&isFirstBlockOfListItem(t)&&iK(t,e)}function iK(t,e){for(const n of t.getAttributeKeys()){if(n.startsWith("selection:")){continue}if(!e.includes(n)){return false}}return true}function oK(t,e){return(n,i)=>{const o=getLocalizedArrowKeyCodeDirection(i.keyCode,e.contentLanguageDirection);const r=t.schema;const s=t.document.selection;if(!s.isCollapsed){return}const a=s.getFirstPosition();const c=a.parent;if(o=="right"&&a.isAtEnd){const e=r.getNearestSelectionRange(t.createPositionAfter(c),"forward");if(!e){return}const o=e.start.parent;if(o&&isListItemBlock(o)&&o.getAttribute("listType")=="todo"){t.change((t=>t.setSelection(e)));i.preventDefault();i.stopPropagation();n.stop()}}else if(o=="left"&&a.isAtStart&&isListItemBlock(c)&&c.getAttribute("listType")=="todo"){const e=r.getNearestSelectionRange(t.createPositionBefore(c),"backward");if(!e){return}t.change((t=>t.setSelection(e)));i.preventDefault();i.stopPropagation();n.stop()}}}function rK(t){return!!t&&t.is("attributeElement")&&t.hasClass("todo-list__label")}class sK extends(null&&Plugin){static get requires(){return[TodoDocumentListEditing,TodoListUI]}static get pluginName(){return"TodoDocumentList"}}function aK(){return{baseUrl:null,breaks:false,extensions:null,gfm:true,headerIds:true,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:true,pedantic:false,renderer:null,sanitize:false,sanitizer:null,silent:false,smartLists:false,smartypants:false,tokenizer:null,walkTokens:null,xhtml:false}}let cK=aK();function lK(t){cK=t}const dK=/[&<>"']/;const uK=/[&<>"']/g;const hK=/[<>"']|&(?!#?\w+;)/;const gK=/[<>"']|&(?!#?\w+;)/g;const mK={"&":"&","<":"<",">":">",'"':""","'":"'"};const fK=t=>mK[t];function pK(t,e){if(e){if(dK.test(t)){return t.replace(uK,fK)}}else{if(hK.test(t)){return t.replace(gK,fK)}}return t}const kK=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi;function bK(t){return t.replace(kK,((t,e)=>{e=e.toLowerCase();if(e==="colon")return":";if(e.charAt(0)==="#"){return e.charAt(1)==="x"?String.fromCharCode(parseInt(e.substring(2),16)):String.fromCharCode(+e.substring(1))}return""}))}const wK=/(^|[^\[])\^/g;function AK(t,e){t=t.source||t;e=e||"";const n={replace:(e,i)=>{i=i.source||i;i=i.replace(wK,"$1");t=t.replace(e,i);return n},getRegex:()=>new RegExp(t,e)};return n}const CK=/[^\w:]/g;const _K=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function vK(t,e,n){if(t){let t;try{t=decodeURIComponent(bK(n)).replace(CK,"").toLowerCase()}catch(t){return null}if(t.indexOf("javascript:")===0||t.indexOf("vbscript:")===0||t.indexOf("data:")===0){return null}}if(e&&!_K.test(n)){n=SK(e,n)}try{n=encodeURI(n).replace(/%25/g,"%")}catch(t){return null}return n}const yK={};const xK=/^[^:]+:\/*[^/]*$/;const EK=/^([^:]+:)[\s\S]*$/;const DK=/^([^:]+:\/*[^/]*)[\s\S]*$/;function SK(t,e){if(!yK[" "+t]){if(xK.test(t)){yK[" "+t]=t+"/"}else{yK[" "+t]=MK(t,"/",true)}}t=yK[" "+t];const n=t.indexOf(":")===-1;if(e.substring(0,2)==="//"){if(n){return e}return t.replace(EK,"$1")+e}else if(e.charAt(0)==="/"){if(n){return e}return t.replace(DK,"$1")+e}else{return t+e}}const TK={exec:function t(){}};function BK(t){let e=1,n,i;for(;e{let i=false,o=e;while(--o>=0&&n[o]==="\\")i=!i;if(i){return"|"}else{return" |"}})),i=n.split(/ \|/);let o=0;if(!i[0].trim()){i.shift()}if(i.length>0&&!i[i.length-1].trim()){i.pop()}if(i.length>e){i.splice(e)}else{while(i.length1){if(e&1){n+=t}e>>=1;t+=t}return n+t}function PK(t,e,n,i){const o=e.href;const r=e.title?pK(e.title):null;const s=t[1].replace(/\\([\[\]])/g,"$1");if(t[0].charAt(0)!=="!"){i.state.inLink=true;const t={type:"link",raw:n,href:o,title:r,text:s,tokens:i.inlineTokens(s,[])};i.state.inLink=false;return t}else{return{type:"image",raw:n,href:o,title:r,text:pK(s)}}}function RK(t,e){const n=t.match(/^(\s+)(?:```)/);if(n===null){return e}const i=n[1];return e.split("\n").map((t=>{const e=t.match(/^\s+/);if(e===null){return t}const[n]=e;if(n.length>=i.length){return t.slice(i.length)}return t})).join("\n")}class VK{constructor(t){this.options=t||cK}space(t){const e=this.rules.block.newline.exec(t);if(e&&e[0].length>0){return{type:"space",raw:e[0]}}}code(t){const e=this.rules.block.code.exec(t);if(e){const t=e[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:!this.options.pedantic?MK(t,"\n"):t}}}fences(t){const e=this.rules.block.fences.exec(t);if(e){const t=e[0];const n=RK(t,e[3]||"");return{type:"code",raw:t,lang:e[2]?e[2].trim():e[2],text:n}}}heading(t){const e=this.rules.block.heading.exec(t);if(e){let t=e[2].trim();if(/#$/.test(t)){const e=MK(t,"#");if(this.options.pedantic){t=e.trim()}else if(!e||/ $/.test(e)){t=e.trim()}}const n={type:"heading",raw:e[0],depth:e[1].length,text:t,tokens:[]};this.lexer.inline(n.text,n.tokens);return n}}hr(t){const e=this.rules.block.hr.exec(t);if(e){return{type:"hr",raw:e[0]}}}blockquote(t){const e=this.rules.block.blockquote.exec(t);if(e){const t=e[0].replace(/^ *> ?/gm,"");return{type:"blockquote",raw:e[0],tokens:this.lexer.blockTokens(t,[]),text:t}}}list(t){let e=this.rules.block.list.exec(t);if(e){let n,i,o,r,s,a,c,l,d,u,h,g;let m=e[1].trim();const f=m.length>1;const p={type:"list",raw:"",ordered:f,start:f?+m.slice(0,-1):"",loose:false,items:[]};m=f?`\\d{1,9}\\${m.slice(-1)}`:`\\${m}`;if(this.options.pedantic){m=f?m:"[*+-]"}const k=new RegExp(`^( {0,3}${m})((?: [^\\n]*)?(?:\\n|$))`);while(t){g=false;if(!(e=k.exec(t))){break}if(this.rules.block.hr.test(t)){break}n=e[0];t=t.substring(n.length);l=e[2].split("\n",1)[0];d=t.split("\n",1)[0];if(this.options.pedantic){r=2;h=l.trimLeft()}else{r=e[2].search(/[^ ]/);r=r>4?1:r;h=l.slice(r);r+=e[1].length}a=false;if(!l&&/^ *$/.test(d)){n+=d+"\n";t=t.substring(d.length+1);g=true}if(!g){const e=new RegExp(`^ {0,${Math.min(3,r-1)}}(?:[*+-]|\\d{1,9}[.)])`);while(t){u=t.split("\n",1)[0];l=u;if(this.options.pedantic){l=l.replace(/^ {1,4}(?=( {4})*[^ ])/g," ")}if(e.test(l)){break}if(l.search(/[^ ]/)>=r||!l.trim()){h+="\n"+l.slice(r)}else if(!a){h+="\n"+l}else{break}if(!a&&!l.trim()){a=true}n+=u+"\n";t=t.substring(u.length+1)}}if(!p.loose){if(c){p.loose=true}else if(/\n *\n *$/.test(n)){c=true}}if(this.options.gfm){i=/^\[[ xX]\] /.exec(h);if(i){o=i[0]!=="[ ] ";h=h.replace(/^\[[ xX]\] +/,"")}}p.items.push({type:"list_item",raw:n,task:!!i,checked:o,loose:false,text:h});p.raw+=n}p.items[p.items.length-1].raw=n.trimRight();p.items[p.items.length-1].text=h.trimRight();p.raw=p.raw.trimRight();const b=p.items.length;for(s=0;st.type==="space"));const e=t.every((t=>{const e=t.raw.split("");let n=0;for(const t of e){if(t==="\n"){n+=1}if(n>1){return true}}return false}));if(!p.loose&&t.length&&e){p.loose=true;p.items[s].loose=true}}return p}}html(t){const e=this.rules.block.html.exec(t);if(e){const t={type:"html",raw:e[0],pre:!this.options.sanitizer&&(e[1]==="pre"||e[1]==="script"||e[1]==="style"),text:e[0]};if(this.options.sanitize){t.type="paragraph";t.text=this.options.sanitizer?this.options.sanitizer(e[0]):pK(e[0]);t.tokens=[];this.lexer.inline(t.text,t.tokens)}return t}}def(t){const e=this.rules.block.def.exec(t);if(e){if(e[3])e[3]=e[3].substring(1,e[3].length-1);const t=e[1].toLowerCase().replace(/\s+/g," ");return{type:"def",tag:t,raw:e[0],href:e[2],title:e[3]}}}table(t){const e=this.rules.block.table.exec(t);if(e){const t={type:"table",header:IK(e[1]).map((t=>({text:t}))),align:e[2].replace(/^ *|\| *$/g,"").split(/ *\| */),rows:e[3]&&e[3].trim()?e[3].replace(/\n[ \t]*$/,"").split("\n"):[]};if(t.header.length===t.align.length){t.raw=e[0];let n=t.align.length;let i,o,r,s;for(i=0;i({text:t})))}n=t.header.length;for(o=0;o/i.test(e[0])){this.lexer.state.inLink=false}if(!this.lexer.state.inRawBlock&&/^<(pre|code|kbd|script)(\s|>)/i.test(e[0])){this.lexer.state.inRawBlock=true}else if(this.lexer.state.inRawBlock&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(e[0])){this.lexer.state.inRawBlock=false}return{type:this.options.sanitize?"text":"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(e[0]):pK(e[0]):e[0]}}}link(t){const e=this.rules.inline.link.exec(t);if(e){const t=e[2].trim();if(!this.options.pedantic&&/^$/.test(t)){return}const e=MK(t.slice(0,-1),"\\");if((t.length-e.length)%2===0){return}}else{const t=LK(e[2],"()");if(t>-1){const n=e[0].indexOf("!")===0?5:4;const i=n+e[1].length+t;e[2]=e[2].substring(0,t);e[0]=e[0].substring(0,i).trim();e[3]=""}}let n=e[2];let i="";if(this.options.pedantic){const t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);if(t){n=t[1];i=t[3]}}else{i=e[3]?e[3].slice(1,-1):""}n=n.trim();if(/^$/.test(t)){n=n.slice(1)}else{n=n.slice(1,-1)}}return PK(e,{href:n?n.replace(this.rules.inline._escapes,"$1"):n,title:i?i.replace(this.rules.inline._escapes,"$1"):i},e[0],this.lexer)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let t=(n[2]||n[1]).replace(/\s+/g," ");t=e[t.toLowerCase()];if(!t||!t.href){const t=n[0].charAt(0);return{type:"text",raw:t,text:t}}return PK(n,t,n[0],this.lexer)}}emStrong(t,e,n=""){let i=this.rules.inline.emStrong.lDelim.exec(t);if(!i)return;if(i[3]&&n.match(/[\p{L}\p{N}]/u))return;const o=i[1]||i[2]||"";if(!o||o&&(n===""||this.rules.inline.punctuation.exec(n))){const n=i[0].length-1;let o,r,s=n,a=0;const c=i[0][0]==="*"?this.rules.inline.emStrong.rDelimAst:this.rules.inline.emStrong.rDelimUnd;c.lastIndex=0;e=e.slice(-1*t.length+n);while((i=c.exec(e))!=null){o=i[1]||i[2]||i[3]||i[4]||i[5]||i[6];if(!o)continue;r=o.length;if(i[3]||i[4]){s+=r;continue}else if(i[5]||i[6]){if(n%3&&!((n+r)%3)){a+=r;continue}}s-=r;if(s>0)continue;r=Math.min(r,r+s+a);if(Math.min(n,r)%2){const e=t.slice(1,n+i.index+r);return{type:"em",raw:t.slice(0,n+i.index+r+1),text:e,tokens:this.lexer.inlineTokens(e,[])}}const e=t.slice(2,n+i.index+r-1);return{type:"strong",raw:t.slice(0,n+i.index+r+1),text:e,tokens:this.lexer.inlineTokens(e,[])}}}}codespan(t){const e=this.rules.inline.code.exec(t);if(e){let t=e[2].replace(/\n/g," ");const n=/[^ ]/.test(t);const i=/^ /.test(t)&&/ $/.test(t);if(n&&i){t=t.substring(1,t.length-1)}t=pK(t,true);return{type:"codespan",raw:e[0],text:t}}}br(t){const e=this.rules.inline.br.exec(t);if(e){return{type:"br",raw:e[0]}}}del(t){const e=this.rules.inline.del.exec(t);if(e){return{type:"del",raw:e[0],text:e[2],tokens:this.lexer.inlineTokens(e[2],[])}}}autolink(t,e){const n=this.rules.inline.autolink.exec(t);if(n){let t,i;if(n[2]==="@"){t=pK(this.options.mangle?e(n[1]):n[1]);i="mailto:"+t}else{t=pK(n[1]);i=t}return{type:"link",raw:n[0],text:t,href:i,tokens:[{type:"text",raw:t,text:t}]}}}url(t,e){let n;if(n=this.rules.inline.url.exec(t)){let t,i;if(n[2]==="@"){t=pK(this.options.mangle?e(n[0]):n[0]);i="mailto:"+t}else{let e;do{e=n[0];n[0]=this.rules.inline._backpedal.exec(n[0])[0]}while(e!==n[0]);t=pK(n[0]);if(n[1]==="www."){i="http://"+t}else{i=t}}return{type:"link",raw:n[0],text:t,href:i,tokens:[{type:"text",raw:t,text:t}]}}}inlineText(t,e){const n=this.rules.inline.text.exec(t);if(n){let t;if(this.lexer.state.inRawBlock){t=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):pK(n[0]):n[0]}else{t=pK(this.options.smartypants?e(n[0]):n[0])}return{type:"text",raw:n[0],text:t}}}}const OK={newline:/^(?: *(?:\n|$))+/,code:/^( {4}[^\n]+(?:\n(?: *(?:\n|$))*)?)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?=\n|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3}bull)( [^\n]+?)?(?:\n|$)/,html:"^ {0,3}(?:"+"<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:\\1>[^\\n]*\\n+|$)"+"|comment[^\\n]*(\\n+|$)"+"|<\\?[\\s\\S]*?(?:\\?>\\n*|$)"+"|\\n*|$)"+"|\\n*|$)"+"|?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+"|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+"|(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n *)+\\n|$)"+")",def:/^ {0,3}\[(label)\]: *(?:\n *)?([^\s>]+)>?(?:(?: +(?:\n *)?| *\n *)(title))? *(?:\n+|$)/,table:TK,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,text:/^[^\n]+/};OK._label=/(?!\s*\])(?:\\.|[^\[\]\\])+/;OK._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;OK.def=AK(OK.def).replace("label",OK._label).replace("title",OK._title).getRegex();OK.bullet=/(?:[*+-]|\d{1,9}[.)])/;OK.listItemStart=AK(/^( *)(bull) */).replace("bull",OK.bullet).getRegex();OK.list=AK(OK.list).replace(/bull/g,OK.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+OK.def.source+")").getRegex();OK._tag="address|article|aside|base|basefont|blockquote|body|caption"+"|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption"+"|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe"+"|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option"+"|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr"+"|track|ul";OK._comment=/|$)/;OK.html=AK(OK.html,"i").replace("comment",OK._comment).replace("tag",OK._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();OK.paragraph=AK(OK._paragraph).replace("hr",OK.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",OK._tag).getRegex();OK.blockquote=AK(OK.blockquote).replace("paragraph",OK.paragraph).getRegex();OK.normal=BK({},OK);OK.gfm=BK({},OK.normal,{table:"^ *([^\\n ].*\\|.*)\\n"+" {0,3}(?:\\| *)?(:?-+:? *(?:\\| *:?-+:? *)*)(?:\\| *)?"+"(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});OK.gfm.table=AK(OK.gfm.table).replace("hr",OK.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",OK._tag).getRegex();OK.gfm.paragraph=AK(OK._paragraph).replace("hr",OK.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("table",OK.gfm.table).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html","?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",OK._tag).getRegex();OK.pedantic=BK({},OK.normal,{html:AK("^ *(?:comment *(?:\\n|\\s*$)"+"|<(tag)[\\s\\S]+?\\1> *(?:\\n{2,}|\\s*$)"+"| \\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",OK._comment).replace(/tag/g,"(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub"+"|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)"+"\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:TK,paragraph:AK(OK.normal._paragraph).replace("hr",OK.hr).replace("heading"," *#{1,6} *[^\n]").replace("lheading",OK.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});const FK={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:TK,tag:"^comment"+"|^[a-zA-Z][\\w:-]*\\s*>"+"|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>"+"|^<\\?[\\s\\S]*?\\?>"+"|^"+"|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(ref)\]/,nolink:/^!?\[(ref)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",emStrong:{lDelim:/^(?:\*+(?:([punct_])|[^\s*]))|^_+(?:([punct*])|([^\s_]))/,rDelimAst:/^[^_*]*?\_\_[^_*]*?\*[^_*]*?(?=\_\_)|[punct_](\*+)(?=[\s]|$)|[^punct*_\s](\*+)(?=[punct_\s]|$)|[punct_\s](\*+)(?=[^punct*_\s])|[\s](\*+)(?=[punct_])|[punct_](\*+)(?=[punct_])|[^punct*_\s](\*+)(?=[^punct*_\s])/,rDelimUnd:/^[^_*]*?\*\*[^_*]*?\_[^_*]*?(?=\*\*)|[punct*](\_+)(?=[\s]|$)|[^punct*_\s](\_+)(?=[punct*\s]|$)|[punct*\s](\_+)(?=[^punct*_\s])|[\s](\_+)(?=[punct*])|[punct*](\_+)(?=[punct*])/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:TK,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";FK.punctuation=AK(FK.punctuation).replace(/punctuation/g,FK._punctuation).getRegex();FK.blockSkip=/\[[^\]]*?\]\([^\)]*?\)|`[^`]*?`|<[^>]*?>/g;FK.escapedEmSt=/\\\*|\\_/g;FK._comment=AK(OK._comment).replace("(?:--\x3e|$)","--\x3e").getRegex();FK.emStrong.lDelim=AK(FK.emStrong.lDelim).replace(/punct/g,FK._punctuation).getRegex();FK.emStrong.rDelimAst=AK(FK.emStrong.rDelimAst,"g").replace(/punct/g,FK._punctuation).getRegex();FK.emStrong.rDelimUnd=AK(FK.emStrong.rDelimUnd,"g").replace(/punct/g,FK._punctuation).getRegex();FK._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;FK._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;FK._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;FK.autolink=AK(FK.autolink).replace("scheme",FK._scheme).replace("email",FK._email).getRegex();FK._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;FK.tag=AK(FK.tag).replace("comment",FK._comment).replace("attribute",FK._attribute).getRegex();FK._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;FK._href=/<(?:\\.|[^\n<>\\])+>|[^\s\x00-\x1f]*/;FK._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;FK.link=AK(FK.link).replace("label",FK._label).replace("href",FK._href).replace("title",FK._title).getRegex();FK.reflink=AK(FK.reflink).replace("label",FK._label).replace("ref",OK._label).getRegex();FK.nolink=AK(FK.nolink).replace("ref",OK._label).getRegex();FK.reflinkSearch=AK(FK.reflinkSearch,"g").replace("reflink",FK.reflink).replace("nolink",FK.nolink).getRegex();FK.normal=BK({},FK);FK.pedantic=BK({},FK.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:AK(/^!?\[(label)\]\((.*?)\)/).replace("label",FK._label).getRegex(),reflink:AK(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",FK._label).getRegex()});FK.gfm=BK({},FK.normal,{escape:AK(FK.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\.5){i="x"+i.toString(16)}e+=""+i+";"}return e}class UK{constructor(t){this.tokens=[];this.tokens.links=Object.create(null);this.options=t||cK;this.options.tokenizer=this.options.tokenizer||new VK;this.tokenizer=this.options.tokenizer;this.tokenizer.options=this.options;this.tokenizer.lexer=this;this.inlineQueue=[];this.state={inLink:false,inRawBlock:false,top:true};const e={block:OK.normal,inline:FK.normal};if(this.options.pedantic){e.block=OK.pedantic;e.inline=FK.pedantic}else if(this.options.gfm){e.block=OK.gfm;if(this.options.breaks){e.inline=FK.breaks}else{e.inline=FK.gfm}}this.tokenizer.rules=e}static get rules(){return{block:OK,inline:FK}}static lex(t,e){const n=new UK(e);return n.lex(t)}static lexInline(t,e){const n=new UK(e);return n.inlineTokens(t)}lex(t){t=t.replace(/\r\n|\r/g,"\n").replace(/\t/g," ");this.blockTokens(t,this.tokens);let e;while(e=this.inlineQueue.shift()){this.inlineTokens(e.src,e.tokens)}return this.tokens}blockTokens(t,e=[]){if(this.options.pedantic){t=t.replace(/^ +$/gm,"")}let n,i,o,r;while(t){if(this.options.extensions&&this.options.extensions.block&&this.options.extensions.block.some((i=>{if(n=i.call({lexer:this},t,e)){t=t.substring(n.raw.length);e.push(n);return true}return false}))){continue}if(n=this.tokenizer.space(t)){t=t.substring(n.raw.length);if(n.raw.length===1&&e.length>0){e[e.length-1].raw+="\n"}else{e.push(n)}continue}if(n=this.tokenizer.code(t)){t=t.substring(n.raw.length);i=e[e.length-1];if(i&&(i.type==="paragraph"||i.type==="text")){i.raw+="\n"+n.raw;i.text+="\n"+n.text;this.inlineQueue[this.inlineQueue.length-1].src=i.text}else{e.push(n)}continue}if(n=this.tokenizer.fences(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.heading(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.hr(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.blockquote(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.list(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.html(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.def(t)){t=t.substring(n.raw.length);i=e[e.length-1];if(i&&(i.type==="paragraph"||i.type==="text")){i.raw+="\n"+n.raw;i.text+="\n"+n.raw;this.inlineQueue[this.inlineQueue.length-1].src=i.text}else if(!this.tokens.links[n.tag]){this.tokens.links[n.tag]={href:n.href,title:n.title}}continue}if(n=this.tokenizer.table(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.lheading(t)){t=t.substring(n.raw.length);e.push(n);continue}o=t;if(this.options.extensions&&this.options.extensions.startBlock){let e=Infinity;const n=t.slice(1);let i;this.options.extensions.startBlock.forEach((function(t){i=t.call({lexer:this},n);if(typeof i==="number"&&i>=0){e=Math.min(e,i)}}));if(e=0){o=t.substring(0,e+1)}}if(this.state.top&&(n=this.tokenizer.paragraph(o))){i=e[e.length-1];if(r&&i.type==="paragraph"){i.raw+="\n"+n.raw;i.text+="\n"+n.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=i.text}else{e.push(n)}r=o.length!==t.length;t=t.substring(n.raw.length);continue}if(n=this.tokenizer.text(t)){t=t.substring(n.raw.length);i=e[e.length-1];if(i&&i.type==="text"){i.raw+="\n"+n.raw;i.text+="\n"+n.text;this.inlineQueue.pop();this.inlineQueue[this.inlineQueue.length-1].src=i.text}else{e.push(n)}continue}if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}else{throw new Error(e)}}}this.state.top=true;return e}inline(t,e){this.inlineQueue.push({src:t,tokens:e})}inlineTokens(t,e=[]){let n,i,o;let r=t;let s;let a,c;if(this.tokens.links){const t=Object.keys(this.tokens.links);if(t.length>0){while((s=this.tokenizer.rules.inline.reflinkSearch.exec(r))!=null){if(t.includes(s[0].slice(s[0].lastIndexOf("[")+1,-1))){r=r.slice(0,s.index)+"["+zK("a",s[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)}}}}while((s=this.tokenizer.rules.inline.blockSkip.exec(r))!=null){r=r.slice(0,s.index)+"["+zK("a",s[0].length-2)+"]"+r.slice(this.tokenizer.rules.inline.blockSkip.lastIndex)}while((s=this.tokenizer.rules.inline.escapedEmSt.exec(r))!=null){r=r.slice(0,s.index)+"++"+r.slice(this.tokenizer.rules.inline.escapedEmSt.lastIndex)}while(t){if(!a){c=""}a=false;if(this.options.extensions&&this.options.extensions.inline&&this.options.extensions.inline.some((i=>{if(n=i.call({lexer:this},t,e)){t=t.substring(n.raw.length);e.push(n);return true}return false}))){continue}if(n=this.tokenizer.escape(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.tag(t)){t=t.substring(n.raw.length);i=e[e.length-1];if(i&&n.type==="text"&&i.type==="text"){i.raw+=n.raw;i.text+=n.text}else{e.push(n)}continue}if(n=this.tokenizer.link(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.reflink(t,this.tokens.links)){t=t.substring(n.raw.length);i=e[e.length-1];if(i&&n.type==="text"&&i.type==="text"){i.raw+=n.raw;i.text+=n.text}else{e.push(n)}continue}if(n=this.tokenizer.emStrong(t,r,c)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.codespan(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.br(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.del(t)){t=t.substring(n.raw.length);e.push(n);continue}if(n=this.tokenizer.autolink(t,HK)){t=t.substring(n.raw.length);e.push(n);continue}if(!this.state.inLink&&(n=this.tokenizer.url(t,HK))){t=t.substring(n.raw.length);e.push(n);continue}o=t;if(this.options.extensions&&this.options.extensions.startInline){let e=Infinity;const n=t.slice(1);let i;this.options.extensions.startInline.forEach((function(t){i=t.call({lexer:this},n);if(typeof i==="number"&&i>=0){e=Math.min(e,i)}}));if(e=0){o=t.substring(0,e+1)}}if(n=this.tokenizer.inlineText(o,jK)){t=t.substring(n.raw.length);if(n.raw.slice(-1)!=="_"){c=n.raw.slice(-1)}a=true;i=e[e.length-1];if(i&&i.type==="text"){i.raw+=n.raw;i.text+=n.text}else{e.push(n)}continue}if(t){const e="Infinite loop on byte: "+t.charCodeAt(0);if(this.options.silent){console.error(e);break}else{throw new Error(e)}}}return e}}class qK{constructor(t){this.options=t||cK}code(t,e,n){const i=(e||"").match(/\S*/)[0];if(this.options.highlight){const e=this.options.highlight(t,i);if(e!=null&&e!==t){n=true;t=e}}t=t.replace(/\n$/,"")+"\n";if(!i){return""+(n?t:pK(t,true))+" \n"}return''+(n?t:pK(t,true))+" \n"}blockquote(t){return"\n"+t+" \n"}html(t){return t}heading(t,e,n,i){if(this.options.headerIds){return"\n"}return""+t+" \n"}hr(){return this.options.xhtml?" \n":" \n"}list(t,e,n){const i=e?"ol":"ul",o=e&&n!==1?' start="'+n+'"':"";return"<"+i+o+">\n"+t+""+i+">\n"}listitem(t){return""+t+" \n"}checkbox(t){return" "}paragraph(t){return""+t+"
\n"}table(t,e){if(e)e=""+e+" ";return"\n"}tablerow(t){return"\n"+t+" \n"}tablecell(t,e){const n=e.header?"th":"td";const i=e.align?"<"+n+' align="'+e.align+'">':"<"+n+">";return i+t+""+n+">\n"}strong(t){return""+t+" "}em(t){return""+t+" "}codespan(t){return""+t+""}br(){return this.options.xhtml?" ":" "}del(t){return""+t+""}link(t,e,n){t=vK(this.options.sanitize,this.options.baseUrl,t);if(t===null){return n}let i='"+n+" ";return i}image(t,e,n){t=vK(this.options.sanitize,this.options.baseUrl,t);if(t===null){return n}let i=' ":">";return i}text(t){return t}}class GK{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,e,n){return""+n}image(t,e,n){return""+n}br(){return""}}class $K{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(/<[!\/a-z].*?>/gi,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(t,e){let n=t;let i=0;if(this.seen.hasOwnProperty(n)){i=this.seen[t];do{i++;n=t+"-"+i}while(this.seen.hasOwnProperty(n))}if(!e){this.seen[t]=i;this.seen[n]=0}return n}slug(t,e={}){const n=this.serialize(t);return this.getNextSafeSlug(n,e.dryrun)}}class WK{constructor(t){this.options=t||cK;this.options.renderer=this.options.renderer||new qK;this.renderer=this.options.renderer;this.renderer.options=this.options;this.textRenderer=new GK;this.slugger=new $K}static parse(t,e){const n=new WK(e);return n.parse(t)}static parseInline(t,e){const n=new WK(e);return n.parseInline(t)}parse(t,e=true){let n="",i,o,r,s,a,c,l,d,u,h,g,m,f,p,k,b,w,A,C;const _=t.length;for(i=0;i<_;i++){h=t[i];if(this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[h.type]){C=this.options.extensions.renderers[h.type].call({parser:this},h);if(C!==false||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(h.type)){n+=C||"";continue}}switch(h.type){case"space":{continue}case"hr":{n+=this.renderer.hr();continue}case"heading":{n+=this.renderer.heading(this.parseInline(h.tokens),h.depth,bK(this.parseInline(h.tokens,this.textRenderer)),this.slugger);continue}case"code":{n+=this.renderer.code(h.text,h.lang,h.escaped);continue}case"table":{d="";l="";s=h.header.length;for(o=0;o0&&k.tokens[0].type==="paragraph"){k.tokens[0].text=A+" "+k.tokens[0].text;if(k.tokens[0].tokens&&k.tokens[0].tokens.length>0&&k.tokens[0].tokens[0].type==="text"){k.tokens[0].tokens[0].text=A+" "+k.tokens[0].tokens[0].text}}else{k.tokens.unshift({type:"text",text:A})}}else{p+=A}}p+=this.parse(k.tokens,f);u+=this.renderer.listitem(p,w,b)}n+=this.renderer.list(u,g,m);continue}case"html":{n+=this.renderer.html(h.text);continue}case"paragraph":{n+=this.renderer.paragraph(this.parseInline(h.tokens));continue}case"text":{u=h.tokens?this.parseInline(h.tokens):h.text;while(i+1<_&&t[i+1].type==="text"){h=t[++i];u+="\n"+(h.tokens?this.parseInline(h.tokens):h.text)}n+=e?this.renderer.paragraph(u):u;continue}default:{const t='Token with "'+h.type+'" type was not found.';if(this.options.silent){console.error(t);return}else{throw new Error(t)}}}}return n}parseInline(t,e){e=e||this.renderer;let n="",i,o,r;const s=t.length;for(i=0;i{i(t.text,t.lang,(function(e,n){if(e){return r(e)}if(n!=null&&n!==t.text){t.text=n;t.escaped=true}s--;if(s===0){r()}}))}),0)}}));if(s===0){r()}return}try{const n=UK.lex(t,e);if(e.walkTokens){ZK.walkTokens(n,e.walkTokens)}return WK.parse(n,e)}catch(t){t.message+="\nPlease report this to https://github.com/markedjs/marked.";if(e.silent){return" An error occurred:
"+pK(t.message+"",true)+" "}throw t}}ZK.options=ZK.setOptions=function(t){BK(ZK.defaults,t);lK(ZK.defaults);return ZK};ZK.getDefaults=aK;ZK.defaults=cK;ZK.use=function(...t){const e=BK({},...t);const n=ZK.defaults.extensions||{renderers:{},childTokens:{}};let i;t.forEach((t=>{if(t.extensions){i=true;t.extensions.forEach((t=>{if(!t.name){throw new Error("extension name required")}if(t.renderer){const e=n.renderers?n.renderers[t.name]:null;if(e){n.renderers[t.name]=function(...n){let i=t.renderer.apply(this,n);if(i===false){i=e.apply(this,n)}return i}}else{n.renderers[t.name]=t.renderer}}if(t.tokenizer){if(!t.level||t.level!=="block"&&t.level!=="inline"){throw new Error("extension level must be 'block' or 'inline'")}if(n[t.level]){n[t.level].unshift(t.tokenizer)}else{n[t.level]=[t.tokenizer]}if(t.start){if(t.level==="block"){if(n.startBlock){n.startBlock.push(t.start)}else{n.startBlock=[t.start]}}else if(t.level==="inline"){if(n.startInline){n.startInline.push(t.start)}else{n.startInline=[t.start]}}}}if(t.childTokens){n.childTokens[t.name]=t.childTokens}}))}if(t.renderer){const n=ZK.defaults.renderer||new qK;for(const e in t.renderer){const i=n[e];n[e]=(...o)=>{let r=t.renderer[e].apply(n,o);if(r===false){r=i.apply(n,o)}return r}}e.renderer=n}if(t.tokenizer){const n=ZK.defaults.tokenizer||new VK;for(const e in t.tokenizer){const i=n[e];n[e]=(...o)=>{let r=t.tokenizer[e].apply(n,o);if(r===false){r=i.apply(n,o)}return r}}e.tokenizer=n}if(t.walkTokens){const n=ZK.defaults.walkTokens;e.walkTokens=function(e){t.walkTokens.call(this,e);if(n){n.call(this,e)}}}if(i){e.extensions=n}ZK.setOptions(e)}))};ZK.walkTokens=function(t,e){for(const n of t){e.call(ZK,n);switch(n.type){case"table":{for(const t of n.header){ZK.walkTokens(t.tokens,e)}for(const t of n.rows){for(const n of t){ZK.walkTokens(n.tokens,e)}}break}case"list":{ZK.walkTokens(n.items,e);break}default:{if(ZK.defaults.extensions&&ZK.defaults.extensions.childTokens&&ZK.defaults.extensions.childTokens[n.type]){ZK.defaults.extensions.childTokens[n.type].forEach((function(t){ZK.walkTokens(n[t],e)}))}else if(n.tokens){ZK.walkTokens(n.tokens,e)}}}}};ZK.parseInline=function(t,e){if(typeof t==="undefined"||t===null){throw new Error("marked.parseInline(): input parameter is undefined or null")}if(typeof t!=="string"){throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected")}e=BK({},ZK.defaults,e||{});NK(e);try{const n=UK.lexInline(t,e);if(e.walkTokens){ZK.walkTokens(n,e.walkTokens)}return WK.parseInline(n,e)}catch(t){t.message+="\nPlease report this to https://github.com/markedjs/marked.";if(e.silent){return"An error occurred:
"+pK(t.message+"",true)+" "}throw t}};ZK.Parser=WK;ZK.parser=WK.parse;ZK.Renderer=qK;ZK.TextRenderer=GK;ZK.Lexer=UK;ZK.lexer=UK.lex;ZK.Tokenizer=VK;ZK.Slugger=$K;ZK.parse=ZK;const KK=ZK.options;const YK=ZK.setOptions;const QK=ZK.use;const JK=ZK.walkTokens;const XK=ZK.parseInline;const tY=null&&ZK;const eY=WK.parse;const nY=UK.lex;ZK.use({tokenizer:{autolink:()=>null,url:()=>null},renderer:{checkbox(...t){return Object.getPrototypeOf(this).checkbox.call(this,...t).trimRight()},code(...t){return Object.getPrototypeOf(this).code.call(this,...t).replace("\n","")}}});function iY(t){const e={gfm:true,breaks:true,tables:true,xhtml:true,headerIds:false};return ZK.parse(t,e)}function oY(t){for(var e=1;e ");return"\n\n"+t+"\n\n"}};hY.list={filter:["ul","ol"],replacement:function(t,e){var n=e.parentNode;if(n.nodeName==="LI"&&n.lastElementChild===e){return"\n"+t}else{return"\n\n"+t+"\n\n"}}};hY.listItem={filter:"li",replacement:function(t,e,n){t=t.replace(/^\n+/,"").replace(/\n+$/,"\n").replace(/\n/gm,"\n ");var i=n.bulletListMarker+" ";var o=e.parentNode;if(o.nodeName==="OL"){var r=o.getAttribute("start");var s=Array.prototype.indexOf.call(o.children,e);i=(r?Number(r)+s:s+1)+". "}return i+t+(e.nextSibling&&!/\n$/.test(t)?"\n":"")}};hY.indentedCodeBlock={filter:function(t,e){return e.codeBlockStyle==="indented"&&t.nodeName==="PRE"&&t.firstChild&&t.firstChild.nodeName==="CODE"},replacement:function(t,e,n){return"\n\n "+e.firstChild.textContent.replace(/\n/g,"\n ")+"\n\n"}};hY.fencedCodeBlock={filter:function(t,e){return e.codeBlockStyle==="fenced"&&t.nodeName==="PRE"&&t.firstChild&&t.firstChild.nodeName==="CODE"},replacement:function(t,e,n){var i=e.firstChild.className||"";var o=(i.match(/language-(\S+)/)||[null,""])[1];var r=e.firstChild.textContent;var s=n.fence.charAt(0);var a=3;var c=new RegExp("^"+s+"{3,}","gm");var l;while(l=c.exec(r)){if(l[0].length>=a){a=l[0].length+1}}var d=rY(s,a);return"\n\n"+d+o+"\n"+r.replace(/\n$/,"")+"\n"+d+"\n\n"}};hY.horizontalRule={filter:"hr",replacement:function(t,e,n){return"\n\n"+n.hr+"\n\n"}};hY.inlineLink={filter:function(t,e){return e.linkStyle==="inlined"&&t.nodeName==="A"&&t.getAttribute("href")},replacement:function(t,e){var n=e.getAttribute("href");var i=e.title?' "'+e.title+'"':"";return"["+t+"]("+n+i+")"}};hY.referenceLink={filter:function(t,e){return e.linkStyle==="referenced"&&t.nodeName==="A"&&t.getAttribute("href")},replacement:function(t,e,n){var i=e.getAttribute("href");var o=e.title?' "'+e.title+'"':"";var r;var s;switch(n.linkReferenceStyle){case"collapsed":r="["+t+"][]";s="["+t+"]: "+i+o;break;case"shortcut":r="["+t+"]";s="["+t+"]: "+i+o;break;default:var a=this.references.length+1;r="["+t+"]["+a+"]";s="["+a+"]: "+i+o}this.references.push(s);return r},references:[],append:function(t){var e="";if(this.references.length){e="\n\n"+this.references.join("\n")+"\n\n";this.references=[]}return e}};hY.emphasis={filter:["em","i"],replacement:function(t,e,n){if(!t.trim())return"";return n.emDelimiter+t+n.emDelimiter}};hY.strong={filter:["strong","b"],replacement:function(t,e,n){if(!t.trim())return"";return n.strongDelimiter+t+n.strongDelimiter}};hY.code={filter:function(t){var e=t.previousSibling||t.nextSibling;var n=t.parentNode.nodeName==="PRE"&&!e;return t.nodeName==="CODE"&&!n},replacement:function(t){if(!t.trim())return"";var e="`";var n="";var i="";var o=t.match(/`+/gm);if(o){if(/^`/.test(t))n=" ";if(/`$/.test(t))i=" ";while(o.indexOf(e)!==-1)e=e+"`"}return e+n+t+i+e}};hY.image={filter:"img",replacement:function(t,e){var n=e.alt||"";var i=e.getAttribute("src")||"";var o=e.title||"";var r=o?' "'+o+'"':"";return i?"!["+n+"]"+"("+i+r+")":""}};function gY(t){this.options=t;this._keep=[];this._remove=[];this.blankRule={replacement:t.blankReplacement};this.keepReplacement=t.keepReplacement;this.defaultRule={replacement:t.defaultReplacement};this.array=[];for(var e in t.rules)this.array.push(t.rules[e])}gY.prototype={add:function(t,e){this.array.unshift(e)},keep:function(t){this._keep.unshift({filter:t,replacement:this.keepReplacement})},remove:function(t){this._remove.unshift({filter:t,replacement:function(){return""}})},forNode:function(t){if(t.isBlank)return this.blankRule;var e;if(e=mY(this.array,t,this.options))return e;if(e=mY(this._keep,t,this.options))return e;if(e=mY(this._remove,t,this.options))return e;return this.defaultRule},forEach:function(t){for(var e=0;e-1)return true}else if(typeof i==="function"){if(i.call(t,e,n))return true}else{throw new TypeError("`filter` needs to be a string, array, or function")}}function pY(t){var e=t.element;var n=t.isBlock;var i=t.isVoid;var o=t.isPre||function(t){return t.nodeName==="PRE"};if(!e.firstChild||o(e))return;var r=null;var s=false;var a=null;var c=bY(a,e,o);while(c!==e){if(c.nodeType===3||c.nodeType===4){var l=c.data.replace(/[ \r\n\t]+/g," ");if((!r||/ $/.test(r.data))&&!s&&l[0]===" "){l=l.substr(1)}if(!l){c=kY(c);continue}c.data=l;r=c}else if(c.nodeType===1){if(n(c)||c.nodeName==="BR"){if(r){r.data=r.data.replace(/ $/,"")}r=null;s=false}else if(i(c)){r=null;s=true}}else{c=kY(c);continue}var d=bY(a,c,o);a=c;c=d}if(r){r.data=r.data.replace(/ $/,"");if(!r.data){kY(r)}}}function kY(t){var e=t.nextSibling||t.parentNode;t.parentNode.removeChild(t);return e}function bY(t,e,n){if(t&&t.parentNode===e||n(e)){return e.nextSibling||e.parentNode}return e.firstChild||e.nextSibling||e.parentNode}var wY=typeof window!=="undefined"?window:{};function AY(){var t=wY.DOMParser;var e=false;try{if((new t).parseFromString("","text/html")){e=true}}catch(t){}return e}function CY(){var t=function(){};{var e=n(1576).JSDOM;t.prototype.parseFromString=function(t){return new e(t).window.document}}return t}var _Y=AY()?wY.DOMParser:CY();function vY(t){var e;if(typeof t==="string"){var n=xY().parseFromString(''+t+" ","text/html");e=n.getElementById("turndown-root")}else{e=t.cloneNode(true)}pY({element:e,isBlock:aY,isVoid:lY});return e}var yY;function xY(){yY=yY||new _Y;return yY}function EY(t){t.isBlock=aY(t);t.isCode=t.nodeName.toLowerCase()==="code"||t.parentNode.isCode;t.isBlank=DY(t);t.flankingWhitespace=SY(t);return t}function DY(t){return["A","TH","TD","IFRAME","SCRIPT","AUDIO","VIDEO"].indexOf(t.nodeName)===-1&&/^\s*$/i.test(t.textContent)&&!lY(t)&&!uY(t)}function SY(t){var e="";var n="";if(!t.isBlock){var i=/^\s/.test(t.textContent);var o=/\s$/.test(t.textContent);var r=t.isBlank&&i&&o;if(i&&!TY("left",t)){e=" "}if(!r&&o&&!TY("right",t)){n=" "}}return{leading:e,trailing:n}}function TY(t,e){var n;var i;var o;if(t==="left"){n=e.previousSibling;i=/ $/}else{n=e.nextSibling;i=/^ /}if(n){if(n.nodeType===3){o=i.test(n.nodeValue)}else if(n.nodeType===1&&!aY(n)){o=i.test(n.textContent)}}return o}var BY=Array.prototype.reduce;var IY=/^\n*/;var MY=/\n*$/;var LY=[[/\\/g,"\\\\"],[/\*/g,"\\*"],[/^-/g,"\\-"],[/^\+ /g,"\\+ "],[/^(=+)/g,"\\$1"],[/^(#{1,6}) /g,"\\$1 "],[/`/g,"\\`"],[/^~~~/g,"\\~~~"],[/\[/g,"\\["],[/\]/g,"\\]"],[/^>/g,"\\>"],[/_/g,"\\_"],[/^(\d+)\. /g,"$1\\. "]];function NY(t){if(!(this instanceof NY))return new NY(t);var e={rules:hY,headingStyle:"setext",hr:"* * *",bulletListMarker:"*",codeBlockStyle:"indented",fence:"```",emDelimiter:"_",strongDelimiter:"**",linkStyle:"inlined",linkReferenceStyle:"full",br:" ",blankReplacement:function(t,e){return e.isBlock?"\n\n":""},keepReplacement:function(t,e){return e.isBlock?"\n\n"+e.outerHTML+"\n\n":e.outerHTML},defaultReplacement:function(t,e){return e.isBlock?"\n\n"+t+"\n\n":t}};this.options=oY({},e,t);this.rules=new gY(this.options)}NY.prototype={turndown:function(t){if(!FY(t)){throw new TypeError(t+" is not a string, or an element/document/fragment node.")}if(t==="")return"";var e=zY.call(this,new vY(t));return PY.call(this,e)},use:function(t){if(Array.isArray(t)){for(var e=0;en){e+=eQ(t.substring(n,o))}const r=i[0];e+=r;n=o+r.length}if(n]*)/.source,"gi");function*sQ(t){for(const e of t.matchAll(rQ)){const t=e[0];const n=aQ(t);yield Object.assign([t.substring(0,n)],{index:e.index})}}function aQ(t){let e=t.length;while(e>0){const n=t[e-1];if("?!.,:*_~'\"".includes(n)){e--}else if(n==")"){let n=0;for(let i=0;i{o=e.shiftKey}));this.listenTo(i,"inputTransformation",((t,e)=>{if(o){return}const n=e.dataTransfer.getData("text/html");if(!n){const t=e.dataTransfer.getData("text/plain");e.content=this._gfmDataProcessor.toView(t);return}const i=this._parseMarkdownFromHtml(n);if(i){e.content=this._gfmDataProcessor.toView(i)}}))}_parseMarkdownFromHtml(t){const e=this._removeOsSpecificTags(t);if(!this._containsOnlyAllowedFirstLevelTags(e)){return null}const n=this._removeFirstLevelWrapperTagsAndBrs(e);if(this._containsAnyRemainingHtmlTags(n)){return null}return this._replaceHtmlReservedEntitiesWithCharacters(n)}_removeOsSpecificTags(t){const e=t.replace(/^ ]*>/,"").trim();const n=e.replace(/^/,"").replace(/<\/html>$/,"").trim();const i=n.replace(/^/,"").replace(/<\/body>$/,"").trim();return i.replace(/^/,"").replace(/$/,"").trim()}_containsOnlyAllowedFirstLevelTags(t){const e=new DOMParser;const{body:n}=e.parseFromString(t,"text/html");const i=Array.from(n.children).map((t=>t.tagName));return i.every((t=>dQ.includes(t)))}_removeFirstLevelWrapperTagsAndBrs(t){const e=new DOMParser;const{body:n}=e.parseFromString(t,"text/html");const i=n.querySelectorAll("br");for(const t of i){t.replaceWith("\n")}const o=n.querySelectorAll(":scope > *");for(const t of o){const e=t.cloneNode(true);t.replaceWith(...e.childNodes)}return n.innerHTML}_containsAnyRemainingHtmlTags(t){return t.includes("<")}_replaceHtmlReservedEntitiesWithCharacters(t){return t.replace(/>/g,">").replace(/</g,"<").replace(/ /g," ")}}function hQ(t,e){const n=(n,i,o)=>{if(!o.consumable.consume(i.item,n.name)){return}const r=i.attributeNewValue;const s=o.writer;const a=o.mapper.toViewElement(i.item);const c=[...a.getChildren()].find((t=>t.getCustomProperty("media-content")));s.remove(c);const l=t.getMediaViewElement(s,r,e);s.insert(s.createPositionAt(a,0),l)};return t=>{t.on("attribute:url:media",n)}}function gQ(t,e,n){e.setCustomProperty("media",true,t);return IM(t,e,{label:n})}function mQ(t){const e=t.getSelectedElement();if(e&&fQ(e)){return e}return null}function fQ(t){return!!t.getCustomProperty("media")&&BM(t)}function pQ(t,e,n,i){return t.createContainerElement("figure",{class:"media"},[e.getMediaViewElement(t,n,i),t.createSlot()])}function kQ(t){const e=t.getSelectedElement();if(e&&e.is("element","media")){return e}return null}function bQ(t,e,n,i){t.change((o=>{const r=o.createElement("media",{url:e});t.insertObject(r,n,null,{setSelection:"on",findOptimalPosition:i?"auto":undefined})}))}class wQ extends ah{refresh(){const t=this.editor.model;const e=t.document.selection;const n=kQ(e);this.value=n?n.getAttribute("url"):undefined;this.isEnabled=CQ(e)||AQ(e,t)}execute(t){const e=this.editor.model;const n=e.document.selection;const i=kQ(n);if(i){e.change((e=>{e.setAttribute("url",t,i)}))}else{bQ(e,t,n,true)}}}function AQ(t,e){const n=VM(t,e);let i=n.start.parent;if(i.isEmpty&&!e.schema.isLimit(i)){i=i.parent}return e.schema.checkChild(i,"media")}function CQ(t){const e=t.getSelectedElement();return!!e&&e.name==="media"}const _Q=' ';const vQ="0 0 64 42";class yQ{constructor(t,e){const n=e.providers;const i=e.extraProviders||[];const o=new Set(e.removeProviders);const r=n.concat(i).filter((t=>{const e=t.name;if(!e){z("media-embed-no-provider-name",{provider:t});return false}return!o.has(e)}));this.locale=t;this.providerDefinitions=r}hasMedia(t){return!!this._getMedia(t)}getMediaViewElement(t,e,n){return this._getMedia(e).getViewElement(t,n)}_getMedia(t){if(!t){return new xQ(this.locale)}t=t.trim();for(const e of this.providerDefinitions){const n=e.html;const i=rl(e.url);for(const e of i){const i=this._getUrlMatches(t,e);if(i){return new xQ(this.locale,t,i,n)}}}return null}_getUrlMatches(t,e){let n=t.match(e);if(n){return n}let i=t.replace(/^https?:\/\//,"");n=i.match(e);if(n){return n}i=i.replace(/^www\./,"");n=i.match(e);if(n){return n}return null}}class xQ{constructor(t,e,n,i){this.url=this._getValidUrl(e);this._locale=t;this._match=n;this._previewRenderer=i}getViewElement(t,e){const n={};let i;if(e.renderForEditingView||e.renderMediaPreview&&this.url&&this._previewRenderer){if(this.url){n["data-oembed-url"]=this.url}if(e.renderForEditingView){n.class="ck-media__wrapper"}const o=this._getPreviewHtml(e);i=t.createRawElement("div",n,((t,e)=>{e.setContentOf(t,o)}))}else{if(this.url){n.url=this.url}i=t.createEmptyElement(e.elementName,n)}t.setCustomProperty("media-content",true,i);return i}_getPreviewHtml(t){if(this._previewRenderer){return this._previewRenderer(this._match)}else{if(this.url&&t.renderForEditingView){return this._getPlaceholderHtml()}return""}}_getPlaceholderHtml(){const t=new wd;const e=this._locale.t;t.content=_Q;t.viewBox=vQ;const n=new jl({tag:"div",attributes:{class:"ck ck-reset_all ck-media__placeholder"},children:[{tag:"div",attributes:{class:"ck-media__placeholder__icon"},children:[t]},{tag:"a",attributes:{class:"ck-media__placeholder__url",target:"_blank",rel:"noopener noreferrer",href:this.url,"data-cke-tooltip-text":e("Open media in new tab")},children:[{tag:"span",attributes:{class:"ck-media__placeholder__url__text"},children:[this.url]}]}]}).render();return n.outerHTML}_getValidUrl(t){if(!t){return null}if(t.match(/^https?/)){return t}return"https://"+t}}var EQ=n(1922);var DQ={injectType:"singletonStyleTag",attributes:{"data-cke":true}};DQ.insert="head";DQ.singleton=true;var SQ=Nl()(EQ.Z,DQ);const TQ=EQ.Z.locals||{};class BQ extends rh{static get pluginName(){return"MediaEmbedEditing"}constructor(t){super(t);t.config.define("mediaEmbed",{elementName:"oembed",providers:[{name:"dailymotion",url:[/^dailymotion\.com\/video\/(\w+)/,/^dai.ly\/(\w+)/],html:t=>{const e=t[1];return''+`"+"
"}},{name:"spotify",url:[/^open\.spotify\.com\/(artist\/\w+)/,/^open\.spotify\.com\/(album\/\w+)/,/^open\.spotify\.com\/(track\/\w+)/],html:t=>{const e=t[1];return''+`"+"
"}},{name:"youtube",url:[/^(?:m\.)?youtube\.com\/watch\?v=([\w-]+)(?:&t=(\d+))?/,/^(?:m\.)?youtube\.com\/v\/([\w-]+)(?:\?t=(\d+))?/,/^youtube\.com\/embed\/([\w-]+)(?:\?start=(\d+))?/,/^youtu\.be\/([\w-]+)(?:\?t=(\d+))?/],html:t=>{const e=t[1];const n=t[2];return''+`VIDEO "+"
"}},{name:"vimeo",url:[/^vimeo\.com\/(\d+)/,/^vimeo\.com\/[^/]+\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/album\/[^/]+\/video\/(\d+)/,/^vimeo\.com\/channels\/[^/]+\/(\d+)/,/^vimeo\.com\/groups\/[^/]+\/videos\/(\d+)/,/^vimeo\.com\/ondemand\/[^/]+\/(\d+)/,/^player\.vimeo\.com\/video\/(\d+)/],html:t=>{const e=t[1];return''+`"+"
"}},{name:"instagram",url:/^instagram\.com\/p\/(\w+)/},{name:"twitter",url:/^twitter\.com/},{name:"googleMaps",url:[/^google\.com\/maps/,/^goo\.gl\/maps/,/^maps\.google\.com/,/^maps\.app\.goo\.gl/]},{name:"flickr",url:/^flickr\.com/},{name:"facebook",url:/^facebook\.com/}]});this.registry=new yQ(t.locale,t.config.get("mediaEmbed"))}init(){const t=this.editor;const e=t.model.schema;const n=t.t;const i=t.conversion;const o=t.config.get("mediaEmbed.previewsInData");const r=t.config.get("mediaEmbed.elementName");const s=this.registry;t.commands.add("mediaEmbed",new wQ(t));e.register("media",{inheritAllFrom:"$blockObject",allowAttributes:["url"]});i.for("dataDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const n=t.getAttribute("url");return pQ(e,s,n,{elementName:r,renderMediaPreview:!!n&&o})}});i.for("dataDowncast").add(hQ(s,{elementName:r,renderMediaPreview:o}));i.for("editingDowncast").elementToStructure({model:"media",view:(t,{writer:e})=>{const i=t.getAttribute("url");const o=pQ(e,s,i,{elementName:r,renderForEditingView:true});return gQ(o,e,n("media widget"))}});i.for("editingDowncast").add(hQ(s,{elementName:r,renderForEditingView:true}));i.for("upcast").elementToElement({view:t=>["oembed",r].includes(t.name)&&t.getAttribute("url")?{name:true}:null,model:(t,{writer:e})=>{const n=t.getAttribute("url");if(s.hasMedia(n)){return e.createElement("media",{url:n})}return null}}).elementToElement({view:{name:"div",attributes:{"data-oembed-url":true}},model:(t,{writer:e})=>{const n=t.getAttribute("data-oembed-url");if(s.hasMedia(n)){return e.createElement("media",{url:n})}return null}}).add((t=>{const e=(t,e,n)=>{if(!n.consumable.consume(e.viewItem,{name:true,classes:"media"})){return}const{modelRange:i,modelCursor:o}=n.convertChildren(e.viewItem,e.modelCursor);e.modelRange=i;e.modelCursor=o;const r=ml(i.getItems());if(!r){n.consumable.revert(e.viewItem,{name:true,classes:"media"})}};t.on("element:figure",e)}))}}const IQ=/^(?:http(s)?:\/\/)?[\w-]+\.[\w-.~:/?#[\]@!$&'()*+,;=%]+$/;class MQ extends rh{static get requires(){return[cN,MT,xN]}static get pluginName(){return"AutoMediaEmbed"}constructor(t){super(t);this._timeoutId=null;this._positionToInsert=null}init(){const t=this.editor;const e=t.model.document;const n=t.plugins.get("ClipboardPipeline");this.listenTo(n,"inputTransformation",(()=>{const t=e.selection.getFirstRange();const n=iC.fromPosition(t.start);n.stickiness="toPrevious";const i=iC.fromPosition(t.end);i.stickiness="toNext";e.once("change:data",(()=>{this._embedMediaBetweenPositions(n,i);n.detach();i.detach()}),{priority:"high"})}));const i=t.commands.get("undo");i.on("execute",(()=>{if(this._timeoutId){nc.window.clearTimeout(this._timeoutId);this._positionToInsert.detach();this._timeoutId=null;this._positionToInsert=null}}),{priority:"high"})}_embedMediaBetweenPositions(t,e){const n=this.editor;const i=n.plugins.get(BQ).registry;const o=new cb(t,e);const r=o.getWalker({ignoreElementEnd:true});let s="";for(const t of r){if(t.item.is("$textProxy")){s+=t.item.data}}s=s.trim();if(!s.match(IQ)){o.detach();return}if(!i.hasMedia(s)){o.detach();return}const a=n.commands.get("mediaEmbed");if(!a.isEnabled){o.detach();return}this._positionToInsert=iC.fromPosition(t);this._timeoutId=nc.window.setTimeout((()=>{n.model.change((t=>{this._timeoutId=null;t.remove(o);o.detach();let e=null;if(this._positionToInsert.root.rootName!=="$graveyard"){e=this._positionToInsert}bQ(n.model,s,e,false);this._positionToInsert.detach();this._positionToInsert=null}));n.plugins.get(MT).requestUndoOnBackspace()}),100)}}var LQ=n(7138);var NQ={injectType:"singletonStyleTag",attributes:{"data-cke":true}};NQ.insert="head";NQ.singleton=true;var zQ=Nl()(LQ.Z,NQ);const PQ=LQ.Z.locals||{};class RQ extends Ol{constructor(t,e){super(e);const n=e.t;this.focusTracker=new fl;this.keystrokes=new pl;this.set("mediaURLInputValue","");this.urlInputView=this._createUrlInput();this.saveButtonView=this._createButton(n("Save"),Kv.check,"ck-button-save");this.saveButtonView.type="submit";this.saveButtonView.bind("isEnabled").to(this,"mediaURLInputValue",(t=>!!t));this.cancelButtonView=this._createButton(n("Cancel"),Kv.cancel,"ck-button-cancel","cancel");this._focusables=new Il;this._focusCycler=new Xu({focusables:this._focusables,focusTracker:this.focusTracker,keystrokeHandler:this.keystrokes,actions:{focusPrevious:"shift + tab",focusNext:"tab"}});this._validators=t;this.setTemplate({tag:"form",attributes:{class:["ck","ck-media-form","ck-responsive-form"],tabindex:"-1"},children:[this.urlInputView,this.saveButtonView,this.cancelButtonView]})}render(){super.render();o({view:this});const t=[this.urlInputView,this.saveButtonView,this.cancelButtonView];t.forEach((t=>{this._focusables.add(t);this.focusTracker.add(t.element)}));this.keystrokes.listenTo(this.element);const e=t=>t.stopPropagation();this.keystrokes.set("arrowright",e);this.keystrokes.set("arrowleft",e);this.keystrokes.set("arrowup",e);this.keystrokes.set("arrowdown",e)}destroy(){super.destroy();this.focusTracker.destroy();this.keystrokes.destroy()}focus(){this._focusCycler.focusFirst()}get url(){return this.urlInputView.fieldView.element.value.trim()}set url(t){this.urlInputView.fieldView.element.value=t.trim()}isValid(){this.resetFormStatus();for(const t of this._validators){const e=t(this);if(e){this.urlInputView.errorText=e;return false}}return true}resetFormStatus(){this.urlInputView.errorText=null;this.urlInputView.infoText=this._urlInputViewInfoDefault}_createUrlInput(){const t=this.locale.t;const e=new Tu(this.locale,jy);const n=e.fieldView;this._urlInputViewInfoDefault=t("Paste the media URL in the input.");this._urlInputViewInfoTip=t("Tip: Paste the URL into the content to embed faster.");e.label=t("Media URL");e.infoText=this._urlInputViewInfoDefault;n.on("input",(()=>{e.infoText=n.element.value?this._urlInputViewInfoTip:this._urlInputViewInfoDefault;this.mediaURLInputValue=n.element.value.trim()}));return e}_createButton(t,e,n,i){const o=new xd(this.locale);o.set({label:t,icon:e,tooltip:true});o.extendTemplate({attributes:{class:n}});if(i){o.delegate("execute").to(this,i)}return o}}const VQ=' ';class OQ extends rh{static get requires(){return[BQ]}static get pluginName(){return"MediaEmbedUI"}init(){const t=this.editor;const e=t.commands.get("mediaEmbed");t.ui.componentFactory.add("mediaEmbed",(t=>{const n=Dy(t);this._setUpDropdown(n,e);return n}))}_setUpDropdown(t,n){const i=this.editor;const o=i.t;const r=t.buttonView;const s=i.plugins.get(BQ).registry;t.once("change:isOpen",(()=>{const o=new(e(RQ))(FQ(i.t,s),i.locale);t.panelView.children.add(o);r.on("open",(()=>{o.disableCssTransitions();o.url=n.value||"";o.urlInputView.fieldView.select();o.enableCssTransitions()}),{priority:"low"});t.on("submit",(()=>{if(o.isValid()){i.execute("mediaEmbed",o.url);i.editing.view.focus()}}));t.on("change:isOpen",(()=>o.resetFormStatus()));t.on("cancel",(()=>{i.editing.view.focus()}));o.delegate("submit","cancel").to(t);o.urlInputView.fieldView.bind("value").to(n,"value");o.urlInputView.bind("isEnabled").to(n,"isEnabled")}));t.bind("isEnabled").to(n);r.set({label:o("Insert media"),icon:VQ,tooltip:true})}}function FQ(t,e){return[e=>{if(!e.url.length){return t("The URL must not be empty.")}},n=>{if(!e.hasMedia(n.url)){return t("This media URL is not supported.")}}]}var jQ=n(8705);var HQ={injectType:"singletonStyleTag",attributes:{"data-cke":true}};HQ.insert="head";HQ.singleton=true;var UQ=Nl()(jQ.Z,HQ);const qQ=jQ.Z.locals||{};class GQ extends rh{static get requires(){return[BQ,OQ,MQ,kL]}static get pluginName(){return"MediaEmbed"}}class $Q extends rh{static get requires(){return[_L]}static get pluginName(){return"MediaEmbedToolbar"}afterInit(){const t=this.editor;const e=t.t;const n=t.plugins.get(_L);n.register("mediaEmbed",{ariaLabel:e("Media toolbar"),items:t.config.get("mediaEmbed.toolbar")||[],getRelatedElement:mQ})}}class WQ extends ah{constructor(t){super(t);this._isEnabledBasedOnSelection=false}refresh(){const t=this.editor.model;const e=t.document;this.isEnabled=t.schema.checkAttributeInSelection(e.selection,"mention")}execute(t){const e=this.editor.model;const n=e.document;const i=n.selection;const o=typeof t.mention=="string"?{id:t.mention}:t.mention;const r=o.id;const s=t.range||i.getFirstRange();if(!e.canEditAt(s)){return}const a=t.text||r;const c=KQ({_text:a,id:r},o);if(t.marker.length!=1){throw new N("mentioncommand-incorrect-marker",this)}if(r.charAt(0)!=t.marker){throw new N("mentioncommand-incorrect-id",this)}e.change((t=>{const n=bl(i.getAttributes());const o=new Map(n.entries());o.set("mention",c);e.insertContent(t.createText(a,o),s);e.insertContent(t.createText(" ",n),s.start.getShiftedBy(a.length))}))}}class ZQ extends rh{static get pluginName(){return"MentionEditing"}init(){const t=this.editor;const e=t.model;const n=e.document;e.schema.extend("$text",{allowAttributes:"mention"});t.conversion.for("upcast").elementToAttribute({view:{name:"span",key:"data-mention",classes:"mention"},model:{key:"mention",value:t=>YQ(t)}});t.conversion.for("downcast").attributeToElement({model:"mention",view:JQ});t.conversion.for("downcast").add(QQ);n.registerPostFixer((t=>eJ(t,n,e.schema)));n.registerPostFixer((t=>nJ(t,n)));n.registerPostFixer((t=>XQ(t,n)));t.commands.add("mention",new WQ(t))}}function KQ(t,e){return Object.assign({uid:T()},t,e||{})}function YQ(t,e){const n=t.getAttribute("data-mention");const i=t.getChild(0);if(!i){return}const o={id:n,_text:i.data};return KQ(o,e)}function QQ(t){t.on("attribute:mention",((t,e,n)=>{const i=e.attributeNewValue;if(!e.item.is("$textProxy")||!i){return}const o=e.range.start;const r=o.textNode||o.nodeAfter;if(r.data!=i._text){n.consumable.consume(e.item,t.name)}}),{priority:"highest"})}function JQ(t,{writer:e}){if(!t){return}const n={class:"mention","data-mention":t.id};const i={id:t.uid,priority:20};return e.createAttributeElement("span",n,i)}function XQ(t,e){const n=e.selection;const i=n.focus;if(n.isCollapsed&&n.hasAttribute("mention")&&tJ(i)){t.removeSelectionAttribute("mention");return true}return false}function tJ(t){const e=t.isAtStart;const n=t.nodeBefore&&t.nodeBefore.is("$text");return n||e}function eJ(t,e,n){const i=e.differ.getChanges();let o=false;for(const e of i){if(e.type=="attribute"){continue}const i=e.position;if(e.name=="$text"){const e=i.textNode&&i.textNode.nextSibling;o=oJ(i.textNode,t)||o;o=oJ(e,t)||o;o=oJ(i.nodeBefore,t)||o;o=oJ(i.nodeAfter,t)||o}if(e.name!="$text"&&e.type=="insert"){const e=i.nodeAfter;for(const n of t.createRangeIn(e).getItems()){o=oJ(n,t)||o}}if(e.type=="insert"&&n.isInline(e.name)){const e=i.nodeAfter&&i.nodeAfter.nextSibling;o=oJ(i.nodeBefore,t)||o;o=oJ(e,t)||o}}return o}function nJ(t,e){const n=e.differ.getChanges();let i=false;for(const e of n){if(e.type==="attribute"&&e.attributeKey!="mention"){const n=e.range.start.nodeBefore;const o=e.range.end.nodeAfter;for(const r of[n,o]){if(iJ(r)&&r.getAttribute(e.attributeKey)!=e.attributeNewValue){t.setAttribute(e.attributeKey,e.attributeNewValue,r);i=true}}}}return i}function iJ(t){if(!t||!(t.is("$text")||t.is("$textProxy"))||!t.hasAttribute("mention")){return false}const e=t.data;const n=t.getAttribute("mention");const i=n._text;return e!=i}function oJ(t,e){if(iJ(t)){e.removeAttribute("mention",t);return true}return false}var rJ=n(9139);var sJ={injectType:"singletonStyleTag",attributes:{"data-cke":true}};sJ.insert="head";sJ.singleton=true;var aJ=Nl()(rJ.Z,sJ);const cJ=rJ.Z.locals||{};class lJ extends gy{constructor(t){super(t);this.extendTemplate({attributes:{class:["ck-mentions"],tabindex:"-1"}})}selectFirst(){this.select(0)}selectNext(){const t=this.selected;const e=this.items.getIndex(t);this.select(e+1)}selectPrevious(){const t=this.selected;const e=this.items.getIndex(t);this.select(e-1)}select(t){let e=0;if(t>0&&t{if(n){this.domElement.classList.add("ck-on");this.domElement.classList.remove("ck-off")}else{this.domElement.classList.add("ck-off");this.domElement.classList.remove("ck-on")}}));this.listenTo(this.domElement,"click",(()=>{this.fire("execute")}))}render(){super.render();this.element=this.domElement}focus(){this.domElement.focus()}}class uJ extends sy{highlight(){const t=this.children.first;t.isOn=true}removeHighlight(){const t=this.children.first;t.isOn=false}}const hJ=3;const gJ=[$c.arrowup,$c.arrowdown,$c.esc];const mJ=[$c.enter,$c.tab];class fJ extends rh{static get pluginName(){return"MentionUI"}static get requires(){return[MD]}constructor(t){super(t);this._items=new gl;this._mentionsView=this._createMentionView();this._mentionsConfigurations=new Map;this._requestFeedDebounced=wu(this._requestFeed,100);t.config.define("mention",{feeds:[]})}init(){const e=this.editor;const n=e.config.get("mention.commitKeys")||mJ;const i=gJ.concat(n);this._balloon=e.plugins.get(MD);e.editing.view.document.on("keydown",((t,e)=>{if(r(e.keyCode)&&this._isUIVisible){e.preventDefault();t.stop();if(e.keyCode==$c.arrowdown){this._mentionsView.selectNext()}if(e.keyCode==$c.arrowup){this._mentionsView.selectPrevious()}if(n.includes(e.keyCode)){this._mentionsView.executeSelected()}if(e.keyCode==$c.esc){this._hideUIAndRemoveMarker()}}}),{priority:"highest"});t({emitter:this._mentionsView,activator:()=>this._isUIVisible,contextElements:()=>[this._balloon.view.element],callback:()=>this._hideUIAndRemoveMarker()});const o=e.config.get("mention.feeds");for(const t of o){const{feed:e,marker:n,dropdownLimit:i}=t;if(!yJ(n)){throw new N("mentionconfig-incorrect-marker",null,{marker:n})}const o=typeof e=="function"?e.bind(this.editor):CJ(e);const r=t.itemRenderer;const s={marker:n,feedCallback:o,itemRenderer:r,dropdownLimit:i};this._mentionsConfigurations.set(n,s)}this._setupTextWatcher(o);this.listenTo(e,"change:isReadOnly",(()=>{this._hideUIAndRemoveMarker()}));this.on("requestFeed:response",((t,e)=>this._handleFeedResponse(e)));this.on("requestFeed:error",(()=>this._hideUIAndRemoveMarker()));function r(t){return i.includes(t)}}destroy(){super.destroy();this._mentionsView.destroy()}get _isUIVisible(){return this._balloon.visibleView===this._mentionsView}_createMentionView(){const t=this.editor.locale;const e=new lJ(t);e.items.bindTo(this._items).using((n=>{const{item:i,marker:o}=n;const{dropdownLimit:r}=this._mentionsConfigurations.get(o);const s=r||this.editor.config.get("mention.dropdownLimit")||10;if(e.items.length>=s){return null}const a=new uJ(t);const c=this._renderItem(i,o);c.delegate("execute").to(a);a.children.add(c);a.item=i;a.marker=o;a.on("execute",(()=>{e.fire("execute",{item:i,marker:o})}));return a}));e.on("execute",((t,e)=>{const n=this.editor;const i=n.model;const o=e.item;const r=e.marker;const s=n.model.markers.get("mention");const a=i.createPositionAt(i.document.selection.focus);const c=i.createPositionAt(s.getStart());const l=i.createRange(c,a);this._hideUIAndRemoveMarker();n.execute("mention",{mention:o,text:o.text,marker:r,range:l});n.editing.view.focus()}));return e}_getItemRenderer(t){const{itemRenderer:e}=this._mentionsConfigurations.get(t);return e}_requestFeed(t,e){this._lastRequested=e;const{feedCallback:n}=this._mentionsConfigurations.get(t);const i=n(e);const o=i instanceof Promise;if(!o){this.fire("requestFeed:response",{feed:i,marker:t,feedText:e});return}i.then((n=>{if(this._lastRequested==e){this.fire("requestFeed:response",{feed:n,marker:t,feedText:e})}else{this.fire("requestFeed:discarded",{feed:n,marker:t,feedText:e})}})).catch((e=>{this.fire("requestFeed:error",{error:e});z("mention-feed-callback-error",{marker:t})}))}_setupTextWatcher(t){const e=this.editor;const n=t.map((t=>({...t,pattern:bJ(t.marker,t.minimumCharacters||0)})));const i=new zT(e.model,wJ(n));i.on("matched",((t,i)=>{const o=kJ(n,i.text);const r=e.model.document.selection;const s=r.focus;const a=e.model.createPositionAt(s.parent,o.position);if(_J(s)||vJ(a)){this._hideUIAndRemoveMarker();return}const c=AJ(o,i.text);const l=o.marker.length+c.length;const d=s.getShiftedBy(-l);const u=s.getShiftedBy(-c.length);const h=e.model.createRange(d,u);if(xJ(e)){const t=e.model.markers.get("mention");e.model.change((e=>{e.updateMarker(t,{range:h})}))}else{e.model.change((t=>{t.addMarker("mention",{range:h,usingOperation:false,affectsData:false})}))}this._requestFeedDebounced(o.marker,c)}));i.on("unmatched",(()=>{this._hideUIAndRemoveMarker()}));const o=e.commands.get("mention");i.bind("isEnabled").to(o);return i}_handleFeedResponse(t){const{feed:e,marker:n}=t;if(!xJ(this.editor)){return}this._items.clear();for(const t of e){const e=typeof t!="object"?{id:t,text:t}:t;this._items.add({item:e,marker:n})}const i=this.editor.model.markers.get("mention");if(this._items.length){this._showOrUpdateUI(i)}else{this._hideUIAndRemoveMarker()}}_showOrUpdateUI(t){if(this._isUIVisible){this._balloon.updatePosition(this._getBalloonPanelPositionData(t,this._mentionsView.position))}else{this._balloon.add({view:this._mentionsView,position:this._getBalloonPanelPositionData(t,this._mentionsView.position),singleViewMode:true})}this._mentionsView.position=this._balloon.view.position;this._mentionsView.selectFirst()}_hideUIAndRemoveMarker(){if(this._balloon.hasView(this._mentionsView)){this._balloon.remove(this._mentionsView)}if(xJ(this.editor)){this.editor.model.change((t=>t.removeMarker("mention")))}this._mentionsView.position=undefined}_renderItem(t,e){const n=this.editor;let i;let o=t.id;const r=this._getItemRenderer(e);if(r){const e=r(t);if(typeof e!="string"){i=new dJ(n.locale,e)}else{o=e}}if(!i){const t=new xd(n.locale);t.label=o;t.withText=true;i=t}return i}_getBalloonPanelPositionData(t,e){const n=this.editor;const i=n.editing;const o=i.view.domConverter;const r=i.mapper;const s=n.locale.uiLanguageDirection;return{target:()=>{let e=t.getRange();if(e.start.root.rootName=="$graveyard"){e=n.model.document.selection.getFirstRange()}const i=r.toViewRange(e);const s=uc.getDomRangeRects(o.viewRangeToDom(i));return s.pop()},limiter:()=>{const t=this.editor.editing.view;const e=t.document;const n=e.selection.editableElement;if(n){return t.domConverter.mapViewToDom(n.root)}return null},positions:pJ(e,s)}}}function pJ(t,e){const n={caret_se:t=>({top:t.bottom+hJ,left:t.right,name:"caret_se",config:{withArrow:false}}),caret_ne:(t,e)=>({top:t.top-e.height-hJ,left:t.right,name:"caret_ne",config:{withArrow:false}}),caret_sw:(t,e)=>({top:t.bottom+hJ,left:t.right-e.width,name:"caret_sw",config:{withArrow:false}}),caret_nw:(t,e)=>({top:t.top-e.height-hJ,left:t.right-e.width,name:"caret_nw",config:{withArrow:false}})};if(Object.prototype.hasOwnProperty.call(n,t)){return[n[t]]}return e!=="rtl"?[n.caret_se,n.caret_sw,n.caret_ne,n.caret_nw]:[n.caret_sw,n.caret_se,n.caret_nw,n.caret_ne]}function kJ(t,e){let n;for(const i of t){const t=e.lastIndexOf(i.marker);if(t>0&&!e.substring(t-1).match(i.pattern)){continue}if(!n||t>=n.position){n={marker:i.marker,position:t,minimumCharacters:i.minimumCharacters,pattern:i.pattern}}}return n}function bJ(t,e){const n=e==0?"*":`{${e},}`;const i=l.features.isRegExpUnicodePropertySupported?"\\p{Ps}\\p{Pi}\"'":"\\(\\[{\"'";const o=".";const r=`(?:^|[ ${i}])([${t}])(${o}${n})$`;return new RegExp(r,"u")}function wJ(t){const e=e=>{const n=kJ(t,e);if(!n){return false}let i=0;if(n.position!==0){i=n.position-1}const o=e.substring(i);return n.pattern.test(o)};return e}function AJ(t,e){let n=0;if(t.position!==0){n=t.position-1}const i=bJ(t.marker,0);const o=e.substring(n);const r=o.match(i);return r[2]}function CJ(t){return e=>{const n=t.filter((t=>{const n=typeof t=="string"?t:String(t.id);return n.toLowerCase().includes(e.toLowerCase())}));return n}}function _J(t){const e=t.textNode&&t.textNode.hasAttribute("mention");const n=t.nodeBefore;return e||n&&n.is("$text")&&n.hasAttribute("mention")}function vJ(t){const e=t.nodeAfter;return e&&e.is("$text")&&e.hasAttribute("mention")}function yJ(t){return t&&t.length==1}function xJ(t){return t.model.markers.has("mention")}var EJ=n(8544);var DJ={injectType:"singletonStyleTag",attributes:{"data-cke":true}};DJ.insert="head";DJ.singleton=true;var SJ=Nl()(EJ.Z,DJ);const TJ=EJ.Z.locals||{};class BJ extends rh{toMentionAttribute(t,e){return YQ(t,e)}static get pluginName(){return"Mention"}static get requires(){return[ZQ,fJ]}}class IJ extends ah{refresh(){const t=this.editor.model;const e=t.schema;const n=t.document.selection;this.isEnabled=MJ(n,e,t)}execute(){const t=this.editor.model;t.change((e=>{const n=e.createElement("pageBreak");t.insertObject(n,null,null,{setSelection:"after"})}))}}function MJ(t,e,n){const i=LJ(t,n);return e.checkChild(i,"pageBreak")}function LJ(t,e){const n=VM(t,e);const i=n.start.parent;if(i.isEmpty&&!i.is("element","$root")){return i.parent}return i}var NJ=n(4617);var zJ={injectType:"singletonStyleTag",attributes:{"data-cke":true}};zJ.insert="head";zJ.singleton=true;var PJ=Nl()(NJ.Z,zJ);const RJ=NJ.Z.locals||{};class VJ extends rh{static get pluginName(){return"PageBreakEditing"}init(){const t=this.editor;const e=t.model.schema;const n=t.t;const i=t.conversion;e.register("pageBreak",{inheritAllFrom:"$blockObject"});i.for("dataDowncast").elementToStructure({model:"pageBreak",view:(t,{writer:e})=>{const n=e.createContainerElement("div",{class:"page-break",style:"page-break-after: always"},e.createContainerElement("span",{style:"display: none"}));return n}});i.for("editingDowncast").elementToStructure({model:"pageBreak",view:(t,{writer:e})=>{const i=n("Page break");const o=e.createContainerElement("div");const r=e.createRawElement("span",{class:"page-break__label"},(function(t){t.innerText=n("Page break")}));e.addClass("page-break",o);e.insert(e.createPositionAt(o,0),r);return OJ(o,e,i)}});i.for("upcast").elementToElement({view:t=>{const e=t.getStyle("page-break-before")=="always";const n=t.getStyle("page-break-after")=="always";if(!e&&!n){return null}if(t.childCount==1){const e=t.getChild(0);if(!e.is("element","span")||e.getStyle("display")!="none"){return null}}else if(t.childCount>1){return null}return{name:true}},model:"pageBreak",converterPriority:"high"});t.commands.add("pageBreak",new IJ(t))}}function OJ(t,e,n){e.setCustomProperty("pageBreak",true,t);return IM(t,e,{label:n})}const FJ=' ';class jJ extends rh{static get pluginName(){return"PageBreakUI"}init(){const t=this.editor;const e=t.t;t.ui.componentFactory.add("pageBreak",(n=>{const i=t.commands.get("pageBreak");const o=new xd(n);o.set({label:e("Page break"),icon:FJ,tooltip:true});o.bind("isEnabled").to(i,"isEnabled");this.listenTo(o,"execute",(()=>{t.execute("pageBreak");t.editing.view.focus()}));return o}))}}class HJ extends rh{static get requires(){return[VJ,jJ,kL]}static get pluginName(){return"PageBreak"}}function UJ(t,e){if(!t.childCount){return}const n=new a_(t.document);const i=GJ(t,n);if(!i.length){return}let o=null;let r=1;i.forEach(((t,s)=>{const a=tX(i[s-1],t);const c=a?null:i[s-1];const l=nX(c,t);if(a){o=null;r=1}if(!o||l!==0){const i=$J(t,e);if(!o){o=YJ(i,t.element,n)}else if(t.indent>r){const t=o.getChild(o.childCount-1);const e=t.getChild(t.childCount-1);o=YJ(i,e,n);r+=1}else if(t.indent1){n.setAttribute("start",t.startIndex,o)}return o}function QJ(t,e){XJ(t,e);e.removeStyle("text-indent",t);return e.rename("li",t)}function JJ(t){const e={};const n=t.getStyle("mso-list");if(n){const t=n.match(/(^|\s{1,100})l(\d+)/i);const i=n.match(/\s{0,100}lfo(\d+)/i);const o=n.match(/\s{0,100}level(\d+)/i);if(t&&i&&o){e.id=t[2];e.order=i[1];e.indent=parseInt(o[1])}}return e}function XJ(t,e){const n=new zh({name:"span",styles:{"mso-list":"Ignore"}});const i=e.createRangeIn(t);for(const t of i){if(t.type==="elementStart"&&n.match(t.item)){e.remove(t.item)}}}function tX(t,e){if(!t){return true}if(t.id!==e.id){if(e.indent-t.indent===1){return false}return true}const n=e.element.previousSibling;if(!n){return true}return!eX(n)}function eX(t){return t.is("element","ol")||t.is("element","ul")}function nX(t,e){return t?e.indent-t.indent:e.indent-1}function iX(t,e){const n=t.getAncestors({parentFirst:true});let i=null;let o=0;for(const t of n){if(t.is("element","ul")||t.is("element","ol")){o++}if(o===e){i=t;break}}return i}function oX(t,e){if(!t.childCount){return}const n=new a_(t.document);const i=sX(t,n);aX(i,t,n);lX(i,t,n);cX(t,n);const o=dX(t,n);if(o.length){hX(o,uX(e),n)}}function rX(t){return btoa(t.match(/\w{2}/g).map((t=>String.fromCharCode(parseInt(t,16)))).join(""))}function sX(t,e){const n=e.createRangeIn(t);const i=new zh({name:/v:(.+)/});const o=[];for(const t of n){if(t.type!="elementStart"){continue}const e=t.item;const n=e.previousSibling;const r=n&&n.is("element")?n.name:null;if(i.match(e)&&e.getAttribute("o:gfxdata")&&r!=="v:shapetype"){o.push(t.item.getAttribute("id"))}}return o}function aX(t,e,n){const i=n.createRangeIn(e);const o=new zh({name:"img"});const r=[];for(const e of i){if(e.item.is("element")&&o.match(e.item)){const n=e.item;const i=n.getAttribute("v:shapes")?n.getAttribute("v:shapes").split(" "):[];if(i.length&&i.every((e=>t.indexOf(e)>-1))){r.push(n)}else if(!n.getAttribute("src")){r.push(n)}}}for(const t of r){n.remove(t)}}function cX(t,e){const n=e.createRangeIn(t);const i=new zh({name:/v:(.+)/});const o=[];for(const t of n){if(t.type=="elementStart"&&i.match(t.item)){o.push(t.item)}}for(const t of o){e.remove(t)}}function lX(t,e,n){const i=n.createRangeIn(e);const o=[];for(const e of i){if(e.type=="elementStart"&&e.item.is("element","v:shape")){const n=e.item.getAttribute("id");if(t.includes(n)){continue}if(!r(e.item.parent.getChildren(),n)){o.push(e.item)}}}for(const t of o){const e={src:s(t)};if(t.hasAttribute("alt")){e.alt=t.getAttribute("alt")}const i=n.createElement("img",e);n.insertChild(t.index+1,i,t.parent)}function r(t,e){for(const n of t){if(n.is("element")){if(n.name=="img"&&n.getAttribute("v:shapes")==e){return true}if(r(n.getChildren(),e)){return true}}}return false}function s(t){for(const e of t.getChildren()){if(e.is("element")&&e.getAttribute("src")){return e.getAttribute("src")}}}}function dX(t,e){const n=e.createRangeIn(t);const i=new zh({name:"img"});const o=[];for(const t of n){if(t.item.is("element")&&i.match(t.item)){if(t.item.getAttribute("src").startsWith("file://")){o.push(t.item)}}}return o}function uX(t){if(!t){return[]}const e=/{\\pict[\s\S]+?\\bliptag-?\d+(\\blipupi-?\d+)?({\\\*\\blipuid\s?[\da-fA-F]+)?[\s}]*?/;const n=new RegExp("(?:("+e.source+"))([\\da-fA-F\\s]+)\\}","g");const i=t.match(n);const o=[];if(i){for(const t of i){let n=false;if(t.includes("\\pngblip")){n="image/png"}else if(t.includes("\\jpegblip")){n="image/jpeg"}if(n){o.push({hex:t.replace(e,"").replace(/[^\da-fA-F]/g,""),type:n})}}}return o}function hX(t,e,n){if(t.length===e.length){for(let i=0;i/i;const fX=/xmlns:o="urn:schemas-microsoft-com/i;class pX{constructor(t){this.document=t}isActive(t){return mX.test(t)||fX.test(t)}execute(t){const{body:e,stylesString:n}=t._parsedData;UJ(e,n);oX(e,t.dataTransfer.getData("text/rtf"));gX(e);t.content=e}}function kX(t,e){for(const n of t.getChildren()){if(n.is("element","b")&&n.getStyle("font-weight")==="normal"){const i=t.getChildIndex(n);e.remove(n);e.insertChild(i,n.getChildren(),t)}}}function bX(t,e){const n=new Xm(e.document.stylesProcessor);const i=new np(n,{renderingMode:"data"});const o=i.blockElements;const r=i.inlineObjectElements;const s=[];for(const n of e.createRangeIn(t)){const t=n.item;if(t.is("element","br")){const n=wX(t,"forward",e,{blockElements:o,inlineObjectElements:r});const i=wX(t,"backward",e,{blockElements:o,inlineObjectElements:r});const a=AX(n,o);const c=AX(i,o);if(c||a){s.push(t)}}}for(const t of s){if(t.hasClass("Apple-interchange-newline")){e.remove(t)}else{e.replace(t,e.createElement("p"))}}}function wX(t,e,n,{blockElements:i,inlineObjectElements:o}){let r=n.createPositionAt(t,e=="forward"?"after":"before");r=r.getLastMatchingPosition((({item:t})=>t.is("element")&&!i.includes(t.name)&&!o.includes(t.name)),{direction:e});return e=="forward"?r.nodeAfter:r.nodeBefore}function AX(t,e){return!!t&&t.is("element")&&e.includes(t.name)}const CX=/id=("|')docs-internal-guid-[-0-9a-f]+("|')/i;class _X{constructor(t){this.document=t}isActive(t){return CX.test(t)}execute(t){const e=new a_(this.document);const{body:n}=t._parsedData;kX(n,e);qJ(n,e);bX(n,e);t.content=n}}function vX(t,e){for(const n of t.getChildren()){if(n.is("element","table")&&n.hasAttribute("xmlns")){e.removeAttribute("xmlns",n)}}}function yX(t,e){for(const n of t.getChildren()){if(n.is("element","google-sheets-html-origin")){const i=t.getChildIndex(n);e.remove(n);e.insertChild(i,n.getChildren(),t)}}}function xX(t,e){for(const n of t.getChildren()){if(n.is("element","table")&&n.getStyle("width")==="0px"){e.removeStyle("width",n)}}}function EX(t,e){for(const n of Array.from(t.getChildren())){if(n.is("element","style")){e.remove(n)}}}const DX=/[^\S\r\n]*?)[\r\n]+([^\S\r\n]*<\/span>)/g,"$1$2").replace(/<\/span>/g,"").replace(/()[\r\n]+(<\/span>)/g,"$1 $2").replace(/ <\//g," ").replace(/ <\/o:p>/g," ").replace(/( |\u00A0)<\/o:p>/g,"").replace(/>([^\S\r\n]*[\r\n]\s*)<")}function BX(t){t.querySelectorAll("span[style*=spacerun]").forEach((t=>{const e=t;const n=e.innerText.length||0;e.innerText=Array(n+1).join(" ").substr(0,n)}))}function IX(t){return t.replace(/(\s+)<\/span>/g,((t,e)=>e.length===1?" ":Array(e.length+1).join(" ").substr(0,e.length)))}function MX(t,e){const n=new DOMParser;t=t.replace(/