From 9b7f40750a1d993c6771961bc622c9f497da2fed Mon Sep 17 00:00:00 2001 From: Peter Mathis Date: Mon, 4 Apr 2016 13:16:59 +0200 Subject: [PATCH] update mockup resources and fix `get_tinymce_options` to return plugins as list (like Plone 5 does). see https://github.com/plone/mockup/commit/efd02e50904f55299eb7f00eddc6c9fcf 762ffb1#diff-ff3812f0a02826b2ef1ffcd5ccc5d579R415 --- CHANGES.rst | 5 + ...bootstrap-glyphicons-halflings-regular.eot | Bin 20335 -> 20127 bytes ...bootstrap-glyphicons-halflings-regular.svg | 485 +- ...bootstrap-glyphicons-halflings-regular.ttf | Bin 41280 -> 45404 bytes ...ootstrap-glyphicons-halflings-regular.woff | Bin 23320 -> 23424 bytes .../static/widgets-tinymce-content.min.css | 2 +- .../widgets-tinymce-font-tinymce-small.eot | Bin 10316 -> 9492 bytes .../widgets-tinymce-font-tinymce-small.json | 348 +- .../widgets-tinymce-font-tinymce-small.svg | 113 +- .../widgets-tinymce-font-tinymce-small.ttf | Bin 10128 -> 9304 bytes .../widgets-tinymce-font-tinymce-small.woff | Bin 7848 -> 9380 bytes .../static/widgets-tinymce-font-tinymce.eot | Bin 10024 -> 14308 bytes .../static/widgets-tinymce-font-tinymce.json | 3111 +- .../static/widgets-tinymce-font-tinymce.svg | 149 +- .../static/widgets-tinymce-font-tinymce.ttf | Bin 9860 -> 14144 bytes .../static/widgets-tinymce-font-tinymce.woff | Bin 7664 -> 14220 bytes plone/app/widgets/static/widgets.js | 99366 +++++++++------- plone/app/widgets/static/widgets.min.css | 245 +- plone/app/widgets/static/widgets.min.css.map | 2 +- plone/app/widgets/static/widgets.min.js | 87 +- plone/app/widgets/static/widgets.min.js.map | 2 +- plone/app/widgets/utils.py | 28 +- 22 files changed, 57349 insertions(+), 46594 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 14c51a2e..1da2f1b1 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,11 @@ Changelog 1.8.1 (unreleased) ------------------ +- update mockup widgets bundle and fix ``get_tinymce_options`` + to return plugins as list (like Plone 5 does ... + see https://github.com/plone/mockup/commit/efd02e50904f55299eb7f00eddc6c9fcf762ffb1) + [petschki] + - fix vocabulary lookup for related items widget. [petschki] diff --git a/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.eot b/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.eot index 4a4ca865d67e86f961bc6e2ef00bffa4e34bb9ed..b93a4953fff68df523aa7656497ee339d6026d64 100644 GIT binary patch delta 19999 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%0Ai7v0G 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 diff --git a/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.svg b/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.svg index e3e2dc73..94fb5490 100644 --- a/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.svg +++ b/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.svg @@ -6,224 +6,283 @@ - - - + + - - + + - - - - - - - - - + + + + + + + + + + - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.ttf b/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.ttf index 67fa00bf83801d2fa568546b982c80d27f6ef74e..1413fc609ab6f21774de0cb7e01360095584f65b 100644 GIT binary patch literal 45404 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

PBK;&Wcg|NX{>QR@W3{K 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 diff --git a/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.woff b/plone/app/widgets/static/widgets-bootstrap-glyphicons-halflings-regular.woff index 8c54182aa5d4d1ab3c9171976b615c1dcb1dc187..9e612858f802245ddcbf59788a0db942224bab35 100644 GIT binary patch literal 23424 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 G`u_lkUM?>H literal 23320 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 Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plone/app/widgets/static/widgets-tinymce-font-tinymce-small.ttf b/plone/app/widgets/static/widgets-tinymce-font-tinymce-small.ttf index afc6ec458b5c032f104c12318ff721d31d9dab8e..a983e2dc4cb30880fffe00e1f0879be4d95eb4cc 100644 GIT binary patch literal 9304 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 Kf?+iKUjGk9se#1+ diff --git a/plone/app/widgets/static/widgets-tinymce-font-tinymce-small.woff b/plone/app/widgets/static/widgets-tinymce-font-tinymce-small.woff index fa72c74b45ba3725a6ff7d8d0901c538467c64e2..d8962df76e50488c6520c0dadf3220080aaae9fb 100644 GIT binary patch literal 9380 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 literal 7848 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 U(RlV0x|+w9A&8D)G}nFp2i)urJpcdz diff --git a/plone/app/widgets/static/widgets-tinymce-font-tinymce.eot b/plone/app/widgets/static/widgets-tinymce-font-tinymce.eot index c1085bfd295abcf940871c863165656df8b094c2..8838c8dc9762b9d3d6658d10601cf241062c0aa2 100644 GIT binary patch literal 14308 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 diff --git a/plone/app/widgets/static/widgets-tinymce-font-tinymce.json b/plone/app/widgets/static/widgets-tinymce-font-tinymce.json index c0b99161..2301beb7 100644 --- a/plone/app/widgets/static/widgets-tinymce-font-tinymce.json +++ b/plone/app/widgets/static/widgets-tinymce-font-tinymce.json @@ -1,1175 +1,1945 @@ { - "IcoMoonType": "selection", - "icons": [ + "selection": [ { - "icon": { - "paths": [ - "M928 128h-416l-32-64h-352l-64 128h896zM904.34 704h74.86l44.8-448h-1024l64 640h484.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM1002.996 913.75l-198.496-174.692c17.454-28.92 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l174.692 198.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM640 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z" - ], - "defaultCode": 57396, - "grid": 0 - }, - "properties": { - "id": 0, - "order": 1, - "prevSize": 32, - "code": 57396, - "name": "browse", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 0 - }, - { - "icon": { - "paths": [ - "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z" - ], - "tags": [ - "resize", - "dots" - ], - "defaultCode": 57394, - "grid": 0 - }, - "properties": { - "id": 1, - "order": 2, - "prevSize": 32, - "code": 57394, - "name": "resize", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 1 - }, - { - "icon": { - "paths": [ - "M832 256h-192v-64l-192-192h-448v768h384v256h640v-576l-192-192zM832 346.51l101.49 101.49h-101.49v-101.49zM448 90.51l101.49 101.49h-101.49v-101.49zM64 64h320v192h192v448h-512v-640zM960 960h-512v-192h192v-448h128v192h192v448z" - ], - "tags": [ - "copy" - ], - "defaultCode": 57393, - "grid": 0 - }, - "properties": { - "id": 2, - "order": 3, - "prevSize": 32, - "code": 57393, - "name": "copy", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 2 - }, - { - "icon": { - "paths": [ - "M256 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM960 896l-256-224 256-224z" - ], - "tags": [ - "rtl" - ], - "defaultCode": 57392, - "grid": 0 - }, - "properties": { - "id": 3, - "order": 4, - "prevSize": 32, - "code": 57392, - "name": "rtl", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 3 - }, - { - "icon": { - "paths": [ - "M448 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM64 448l256 224-256 224z" - ], - "tags": [ - "ltr" - ], - "defaultCode": 57391, - "grid": 0 - }, - "properties": { - "id": 4, - "order": 5, - "prevSize": 32, - "code": 57391, - "name": "ltr", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 4 - }, - { - "icon": { - "paths": [ - "M384 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224z" - ], - "tags": [ - "visualchars" - ], - "defaultCode": 57390, - "grid": 0 - }, - "properties": { - "id": 5, - "order": 6, - "prevSize": 32, - "code": 57390, - "name": "visualchars", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 5 - }, - { - "icon": { - "paths": [ - "M731.42 517.036c63.92 47.938 100.58 116.086 100.58 186.964s-36.66 139.026-100.58 186.964c-59.358 44.518-137.284 69.036-219.42 69.036-82.138 0-160.062-24.518-219.42-69.036-63.92-47.938-100.58-116.086-100.58-186.964h128c0 69.382 87.926 128 192 128 104.074 0 192-58.618 192-128 0-69.382-87.926-128-192-128-82.138 0-160.062-24.518-219.42-69.036-63.92-47.94-100.58-116.086-100.58-186.964 0-70.878 36.66-139.024 100.58-186.964 59.358-44.518 137.282-69.036 219.42-69.036 82.136 0 160.062 24.518 219.42 69.036 63.92 47.94 100.58 116.086 100.58 186.964h-128c0-69.382-87.926-128-192-128-104.074 0-192 58.618-192 128 0 69.382 87.926 128 192 128 82.136 0 160.062 24.518 219.42 69.036zM0 512h1024v64h-1024z" - ], - "tags": [ - "strikethrough" - ], - "defaultCode": 57389, - "grid": 0 - }, - "properties": { - "id": 6, - "order": 7, - "prevSize": 32, - "code": 57389, - "name": "strikethrough", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 6 - }, - { - "icon": { - "paths": [ - "M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494 53.8 0 103.75-18.29 140.646-51.494 33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z" - ], - "tags": [ - "underline" - ], - "defaultCode": 57388, - "grid": 0 - }, - "properties": { - "id": 7, - "order": 8, - "prevSize": 32, - "code": 57388, - "name": "underline", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 7 - }, - { - "icon": { - "paths": [ - "M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z" - ], - "tags": [ - "italic" - ], - "defaultCode": 57387, - "grid": 0 - }, - "properties": { - "id": 8, - "order": 9, - "prevSize": 32, - "code": 57387, - "name": "italic", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 8 - }, - { - "icon": { - "paths": [ - "M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z" - ], - "tags": [ - "bold0" - ], - "defaultCode": 57386, - "grid": 0 - }, - "properties": { - "id": 9, - "order": 10, - "prevSize": 32, - "code": 57386, - "name": "bold", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 9 - }, - { - "icon": { - "paths": [ - "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z" - ], - "tags": [ - "restoredraft" - ], - "defaultCode": 57384, - "grid": 0 - }, - "properties": { - "id": 11, - "order": 11, - "prevSize": 32, - "code": 57384, - "name": "restoredraft", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 11 - }, - { - "icon": { - "paths": [ - "M0 512h128v64h-128zM192 512h192v64h-192zM448 512h128v64h-128zM640 512h192v64h-192zM896 512h128v64h-128zM880 0l16 448h-768l16-448h32l16 384h640l16-384zM144 1024l-16-384h768l-16 384h-32l-16-320h-640l-16 320z" - ], - "tags": [ - "pagebreak" - ], - "defaultCode": 57383, - "grid": 0 - }, - "properties": { - "id": 12, - "order": 12, - "prevSize": 32, - "code": 57383, - "name": "pagebreak", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 12 - }, - { - "icon": { - "paths": [ - "M384 192h128v64h-128zM576 192h128v64h-128zM896 192v256h-192v-64h128v-128h-64v-64zM320 384h128v64h-128zM512 384h128v64h-128zM192 256v128h64v64h-128v-256h192v64zM384 576h128v64h-128zM576 576h128v64h-128zM896 576v256h-192v-64h128v-128h-64v-64zM320 768h128v64h-128zM512 768h128v64h-128zM192 640v128h64v64h-128v-256h192v64zM960 64h-896v896h896v-896zM1024 0v0 1024h-1024v-1024h1024z" - ], - "tags": [ - "template" - ], - "defaultCode": 57382, - "grid": 0 - }, - "properties": { - "id": 13, - "order": 13, - "prevSize": 32, - "code": 57382, - "name": "template", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 13 - }, - { - "icon": { - "paths": [ - "M448 576h-192v-128h192v-192h128v192h192v128h-192v192h-128zM1024 640v384h-1024v-384h128v256h768v-256z" - ], - "tags": [ - "nonbreaking" - ], - "defaultCode": 57381, - "grid": 0 - }, - "properties": { - "id": 14, - "order": 14, - "prevSize": 32, - "code": 57381, - "name": "nonbreaking", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 14 - }, - { - "icon": { - "paths": [ - "M128 256h128v192h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192zM128 64h128v128h-128v-128zM960 64v-64h-192c-35.202 0-64 28.8-64 64v320c0 35.2 28.798 64 64 64h192v-64h-192v-320h192zM640 160v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64zM576 384h-128v-128h128v128zM576 192h-128v-128h128v128zM832 576l-416 448-224-288 82-70 142 148 352-302z" - ], - "tags": [ - "spellchecker" - ], - "defaultCode": 57380, - "grid": 0 - }, - "properties": { - "id": 15, - "order": 15, - "prevSize": 32, - "code": 57380, - "name": "spellchecker", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 15 - }, - { - "icon": { - "paths": [ - "M704 896h256l64-128v256h-384v-214.214c131.112-56.484 224-197.162 224-361.786 0-214.432-157.598-382.266-352-382.266-194.406 0-352 167.832-352 382.266 0 164.624 92.886 305.302 224 361.786v214.214h-384v-256l64 128h256v-32.59c-187.63-66.46-320-227.402-320-415.41 0-247.424 229.23-448 512-448 282.77 0 512 200.576 512 448 0 188.008-132.37 348.95-320 415.41v32.59z" - ], - "tags": [ - "charmap" - ], - "defaultCode": 57376, - "grid": 0 - }, - "properties": { - "id": 19, - "order": 16, - "prevSize": 32, - "code": 57376, - "name": "charmap", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 19 - }, - { - "icon": { - "paths": [ - "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" - ], - "tags": [ - "sup" - ], - "defaultCode": 57375, - "grid": 0 - }, - "properties": { - "id": 20, - "order": 17, - "prevSize": 32, - "code": 57375, - "name": "sup", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 20 - }, - { - "icon": { - "paths": [ - "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" - ], - "tags": [ - "sub" - ], - "defaultCode": 57374, - "grid": 0 - }, - "properties": { - "id": 21, - "order": 18, - "prevSize": 32, - "code": 57374, - "name": "sub", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 21 - }, - { - "icon": { - "paths": [ - "M0 896h576v128h-576zM192 0h704v128h-704zM277.388 832l204.688-784.164 123.85 32.328-196.25 751.836zM929.774 1024l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774z" - ], - "tags": [ - "removeformat" - ], - "defaultCode": 57373, - "grid": 0 - }, - "properties": { - "id": 22, - "order": 19, - "prevSize": 32, - "code": 57373, - "name": "removeformat", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 22 - }, - { - "icon": { - "paths": [ - "M0 448h1024v128h-1024z" - ], - "tags": [ - "hr" - ], - "defaultCode": 57372, - "grid": 0 - }, - "properties": { - "id": 23, - "order": 20, - "prevSize": 32, - "code": 57372, - "name": "hr", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 23 - }, - { - "icon": { - "paths": [ - "M0 64v896h1024v-896h-1024zM384 640v-192h256v192h-256zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" - ], - "tags": [ - "table" - ], - "defaultCode": 57371, - "grid": 0 - }, - "properties": { - "id": 24, - "order": 21, - "prevSize": 32, - "code": 57371, - "name": "table", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 24 - }, - { - "icon": { - "paths": [ - "M322.018 832l57.6-192h264.764l57.6 192h113.632l-191.996-640h-223.236l-192 640h113.636zM475.618 320h72.764l57.6 192h-187.964l57.6-192z" - ], - "tags": [ - "forecolor" - ], - "defaultCode": 57370, - "grid": 0 - }, - "properties": { - "id": 25, - "order": 22, - "prevSize": 32, - "code": 57370, - "name": "forecolor", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 25 - }, - { - "icon": { - "paths": [ - "M512 320c-209.368 0-395.244 100.556-512 256 116.756 155.446 302.632 256 512 256 209.368 0 395.244-100.554 512-256-116.756-155.444-302.632-256-512-256zM448 448c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zM773.616 705.296c-39.648 20.258-81.652 35.862-124.846 46.376-44.488 10.836-90.502 16.328-136.77 16.328-46.266 0-92.282-5.492-136.768-16.324-43.194-10.518-85.198-26.122-124.846-46.376-63.020-32.202-120.222-76.41-167.64-129.298 47.418-52.888 104.62-97.1 167.64-129.298 32.336-16.522 66.242-29.946 101.082-40.040-19.888 30.242-31.468 66.434-31.468 105.336 0 106.040 85.962 192 192 192 106.038 0 192-85.96 192-192 0-38.902-11.582-75.094-31.466-105.34 34.838 10.096 68.744 23.52 101.082 40.042 63.022 32.198 120.218 76.408 167.638 129.298-47.42 52.886-104.618 97.1-167.638 129.296zM860.918 243.722c-108.72-55.554-226.112-83.722-348.918-83.722-122.806 0-240.198 28.168-348.918 83.722-58.772 30.032-113.732 67.904-163.082 112.076v109.206c55.338-58.566 120.694-107.754 192.194-144.29 99.62-50.904 207.218-76.714 319.806-76.714s220.186 25.81 319.804 76.716c71.502 36.536 136.858 85.724 192.196 144.29v-109.206c-49.35-44.174-104.308-82.046-163.082-112.078z" - ], - "tags": [ - "preview" - ], - "defaultCode": 57369, - "grid": 0 - }, - "properties": { - "id": 26, - "order": 23, - "prevSize": 32, - "code": 57369, - "name": "preview", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 26 - }, - { - "icon": { - "paths": [ - "M512 192c-212.076 0-384 171.922-384 384s171.922 384 384 384c212.074 0 384-171.922 384-384s-171.926-384-384-384zM715.644 779.646c-54.392 54.396-126.716 84.354-203.644 84.354s-149.25-29.958-203.646-84.354c-54.396-54.394-84.354-126.718-84.354-203.646s29.958-149.25 84.354-203.646c54.396-54.396 126.718-84.354 203.646-84.354s149.252 29.958 203.642 84.354c54.402 54.396 84.358 126.718 84.358 203.646s-29.958 149.252-84.356 203.646zM325.93 203.862l-42.94-85.878c-98.874 49.536-179.47 130.132-229.006 229.008l85.876 42.94c40.248-80.336 105.732-145.822 186.070-186.070zM884.134 389.93l85.878-42.938c-49.532-98.876-130.126-179.472-229.004-229.008l-42.944 85.878c80.338 40.248 145.824 105.732 186.070 186.068zM512 384h-64v192c0 10.11 4.7 19.11 12.022 24.972l-0.012 0.016 160 128 39.976-49.976-147.986-118.39v-176.622z" - ], - "tags": [ - "inserttime" - ], - "defaultCode": 57368, - "grid": 0 - }, - "properties": { - "id": 27, - "order": 24, - "prevSize": 32, - "code": 57368, - "name": "inserttime", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 27 - }, - { - "icon": { - "paths": [ - "M320 256l-256 256 256 256h128l-256-256 256-256zM704 256h-128l256 256-256 256h128l256-256z" - ], - "tags": [ - "code" - ], - "defaultCode": 57367, - "grid": 0 - }, - "properties": { - "id": 28, - "order": 25, - "prevSize": 32, - "code": 57367, - "name": "code", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 28 - }, - { - "icon": { - "paths": [ - "M448 704h128v128h-128zM704 256c35.346 0 64 28.654 64 64v192l-192 128h-128v-64l192-128v-64h-320v-128h384zM512 96c-111.118 0-215.584 43.272-294.156 121.844s-121.844 183.038-121.844 294.156c0 111.118 43.272 215.584 121.844 294.156 78.572 78.572 183.038 121.844 294.156 121.844 111.118 0 215.584-43.272 294.156-121.844 78.572-78.572 121.844-183.038 121.844-294.156 0-111.118-43.272-215.584-121.844-294.156-78.572-78.572-183.038-121.844-294.156-121.844zM512 0v0c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512 0-282.77 229.23-512 512-512z" - ], - "tags": [ - "help" - ], - "defaultCode": 57366, - "grid": 0 - }, - "properties": { - "id": 29, - "order": 26, - "prevSize": 32, - "code": 57366, - "name": "help", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 29 - }, - { - "icon": { - "paths": [ - "M0 128v768h1024v-768h-1024zM192 832h-128v-128h128v128zM192 576h-128v-128h128v128zM192 320h-128v-128h128v128zM768 832h-512v-640h512v640zM960 832h-128v-128h128v128zM960 576h-128v-128h128v128zM960 320h-128v-128h128v128zM384 320v384l256-192z" - ], - "tags": [ - "media" - ], - "defaultCode": 57365, - "grid": 0 - }, - "properties": { - "id": 30, - "order": 27, - "prevSize": 32, - "code": 57365, - "name": "media", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 30 - }, - { - "icon": { - "paths": [ - "M0 128v832h1024v-832h-1024zM960 896h-896v-704h896v704zM704 352c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96zM896 832h-768l192-512 256 320 128-96z" - ], - "tags": [ - "image" - ], - "defaultCode": 57364, - "grid": 0 - }, - "properties": { - "id": 31, - "order": 28, - "prevSize": 32, - "code": 57364, - "name": "image", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 31 - }, - { - "icon": { - "paths": [ - "M192 0v1024l320-320 320 320v-1024h-640zM768 869.49l-256-256-256 256v-805.49h512v805.49z" - ], - "tags": [ - "anchor" - ], - "defaultCode": 57363, - "grid": 0 - }, - "properties": { - "id": 32, - "order": 29, - "prevSize": 32, - "code": 57363, - "name": "anchor", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 32 - }, - { - "icon": { - "paths": [ - "M476.888 675.114c4.56 9.048 6.99 19.158 6.99 29.696 0 17.616-6.744 34.058-18.992 46.308l-163.38 163.38c-12.248 12.248-28.696 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.38-99.38c-12.248-12.25-18.992-28.696-18.992-46.308s6.744-34.060 18.992-46.308l163.38-163.382c12.248-12.246 28.696-18.992 46.308-18.992 10.538 0 20.644 2.43 29.696 6.988l65.338-65.336c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.38 163.382c-60.67 60.67-60.67 159.95 0 220.618l99.38 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.38-163.38c55.82-55.82 60.238-144.298 13.344-205.346l-65.34 65.338zM978.496 144.884l-99.38-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.97 15.166-110.306 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.246-12.248 28.694-18.994 46.306-18.994 17.616 0 34.060 6.746 46.308 18.994l99.38 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.38 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.504l163.38-163.38c60.672-60.666 60.672-159.944 0-220.614zM233.368 278.624l-191.994-191.994 45.256-45.256 191.994 191.994zM384 0h64v192h-64zM0 384h192v64h-192zM790.632 745.376l191.996 191.996-45.256 45.256-191.996-191.996zM576 832h64v192h-64zM832 576h192v64h-192z" - ], - "tags": [ - "unlink" - ], - "defaultCode": 57362, - "grid": 0 - }, - "properties": { - "id": 33, - "order": 30, - "prevSize": 32, - "code": 57362, - "name": "unlink", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 33 - }, - { - "icon": { - "paths": [ - "M320 704c17.6 17.6 47.274 16.726 65.942-1.942l316.118-316.116c18.668-18.668 19.54-48.342 1.94-65.942s-47.274-16.726-65.942 1.942l-316.116 316.116c-18.668 18.668-19.542 48.342-1.942 65.942zM476.888 675.112c4.56 9.050 6.99 19.16 6.99 29.696 0 17.616-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.382-99.382c-12.248-12.248-18.992-28.694-18.992-46.308s6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994 10.536 0 20.644 2.43 29.696 6.99l65.338-65.338c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-60.67 60.67-60.67 159.948 0 220.618l99.382 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c55.82-55.82 60.238-144.298 13.344-205.344l-65.34 65.34zM978.498 144.884l-99.382-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994s34.060 6.746 46.308 18.994l99.382 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c60.67-60.666 60.67-159.944 0-220.614z" - ], - "tags": [ - "link" - ], - "defaultCode": 57361, - "grid": 0 - }, - "properties": { - "id": 34, - "order": 31, - "prevSize": 32, - "code": 57361, - "name": "link", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 34 - }, - { - "icon": { - "paths": [ - "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM256 320v384l-256-192z" - ], - "tags": [ - "outdent" - ], - "defaultCode": 57357, - "grid": 0 - }, - "properties": { - "id": 38, - "order": 32, - "prevSize": 32, - "code": 57357, - "name": "outdent", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 38 - }, - { - "icon": { - "paths": [ - "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM0 704v-384l256 192z" - ], - "tags": [ - "indent" - ], - "defaultCode": 57356, - "grid": 0 - }, - "properties": { - "id": 39, - "order": 33, - "prevSize": 32, - "code": 57356, - "name": "indent", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 39 - }, - { - "icon": { - "paths": [ - "M384 832h640v128h-640zM384 448h640v128h-640zM384 64h640v128h-640zM192 0v256h-64v-192h-64v-64zM128 526v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM256 704v320h-192v-64h128v-64h-128v-64h128v-64h-128v-64z" - ], - "tags": [ - "numlist" - ], - "defaultCode": 57355, - "grid": 0 - }, - "properties": { - "id": 40, - "order": 34, - "prevSize": 32, - "code": 57355, - "name": "numlist", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 40 - }, - { - "icon": { - "paths": [ - "M384 64h640v128h-640v-128zM384 448h640v128h-640v-128zM384 832h640v128h-640v-128zM0 128c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 512c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 896c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128z" - ], - "tags": [ - "bullist" - ], - "defaultCode": 57354, - "grid": 0 - }, - "properties": { - "id": 41, - "order": 35, - "prevSize": 32, - "code": 57354, - "name": "bullist", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 41 - }, - { - "icon": { - "paths": [ - "M64 0h384v64h-384zM576 0h384v64h-384zM952 320h-56v-256h-256v256h-256v-256h-256v256h-56c-39.6 0-72 32.4-72 72v560c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-376h128v376c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-560c0-39.6-32.4-72-72-72zM348 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM924 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32z" - ], - "tags": [ - "searchreplace" - ], - "defaultCode": 57353, - "grid": 0 - }, - "properties": { - "id": 42, - "order": 36, - "prevSize": 32, - "code": 57353, - "name": "searchreplace", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 42 - }, - { - "icon": { - "paths": [ - "M832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h448l192-192v-512h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM832 933.49v-101.49h101.49l-101.49 101.49zM960 768h-192v192h-320v-576h512v384z" - ], - "tags": [ - "paste" - ], - "defaultCode": 57352, - "grid": 0 - }, - "properties": { - "id": 43, - "order": 37, - "prevSize": 32, - "code": 57352, - "name": "paste", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 43 - }, - { - "icon": { - "paths": [ - "M890.774 709.154c-45.654-45.556-103.728-69.072-157.946-69.072h-29.112l-63.904-64.008 255.62-256.038c63.904-64.010 63.904-192.028 0-256.038l-383.43 384.056-383.432-384.054c-63.904 64.008-63.904 192.028 0 256.038l255.622 256.034-63.906 64.008h-29.114c-54.22 0-112.292 23.518-157.948 69.076-81.622 81.442-92.65 202.484-24.63 270.35 29.97 29.902 70.288 44.494 112.996 44.494 54.216 0 112.29-23.514 157.946-69.072 53.584-53.464 76.742-124 67.084-185.348l65.384-65.488 65.376 65.488c-9.656 61.348 13.506 131.882 67.084 185.348 45.662 45.558 103.732 69.072 157.948 69.072 42.708 0 83.024-14.592 112.994-44.496 68.020-67.866 56.988-188.908-24.632-270.35zM353.024 845.538c-7.698 17.882-19.010 34.346-33.626 48.926-14.636 14.604-31.172 25.918-49.148 33.624-16.132 6.916-32.96 10.568-48.662 10.568-15.146 0-36.612-3.402-52.862-19.612-16.136-16.104-19.52-37.318-19.52-52.288 0-15.542 3.642-32.21 10.526-48.212 7.7-17.884 19.014-34.346 33.626-48.926 14.634-14.606 31.172-25.914 49.15-33.624 16.134-6.914 32.96-10.568 48.664-10.568 15.146 0 36.612 3.4 52.858 19.614 16.134 16.098 19.522 37.316 19.522 52.284 0.002 15.542-3.638 32.216-10.528 48.214zM512.004 666.596c-49.914 0-90.376-40.532-90.376-90.526 0-49.992 40.462-90.52 90.376-90.52s90.372 40.528 90.372 90.52c0 49.998-40.46 90.526-90.372 90.526zM855.272 919.042c-16.248 16.208-37.712 19.612-52.86 19.612-15.704 0-32.53-3.652-48.666-10.568-17.972-7.706-34.508-19.020-49.142-33.624-14.614-14.58-25.926-31.042-33.626-48.926-6.886-15.998-10.526-32.672-10.526-48.212 0-14.966 3.384-36.188 19.52-52.286 16.246-16.208 37.712-19.614 52.86-19.614 15.7 0 32.53 3.654 48.66 10.568 17.978 7.708 34.516 19.018 49.15 33.624 14.61 14.58 25.924 31.042 33.626 48.926 6.884 15.998 10.526 32.67 10.526 48.212-0.002 14.97-3.39 36.186-19.522 52.288z" - ], - "tags": [ - "cut" - ], - "defaultCode": 57351, - "grid": 0 - }, - "properties": { - "id": 44, - "order": 38, - "prevSize": 32, - "code": 57351, - "name": "cut", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 44 - }, - { - "icon": { - "paths": [ - "M0 64h1024v128h-1024zM0 256h1024v128h-1024zM0 448h1024v128h-1024zM0 640h1024v128h-1024zM0 832h1024v128h-1024z" - ], - "tags": [ - "alignjustify" - ], - "defaultCode": 57350, - "grid": 0 - }, - "properties": { - "id": 45, - "order": 39, - "prevSize": 32, - "code": 57350, - "name": "alignjustify", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 45 - }, - { - "icon": { - "paths": [ - "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" - ], - "tags": [ - "alignright" - ], - "defaultCode": 57349, - "grid": 0 - }, - "properties": { - "id": 46, - "order": 40, - "prevSize": 32, - "code": 57349, - "name": "alignright", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 46 - }, - { - "icon": { - "paths": [ - "M0 64h1024v128h-1024zM192 256h640v128h-640zM192 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" - ], - "tags": [ - "aligncenter" - ], - "defaultCode": 57348, - "grid": 0 - }, - "properties": { - "id": 47, - "order": 41, - "prevSize": 32, - "code": 57348, - "name": "aligncenter", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 47 - }, - { - "icon": { - "paths": [ - "M0 64h1024v128h-1024zM0 256h640v128h-640zM0 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" - ], - "tags": [ - "alignleft" - ], - "defaultCode": 57347, - "grid": 0 - }, - "properties": { - "id": 48, - "order": 42, - "prevSize": 32, - "code": 57347, - "name": "alignleft", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 48 - }, - { - "icon": { - "paths": [ - "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z" - ], - "tags": [ - "fullpage" - ], - "defaultCode": 57346, - "grid": 0 - }, - "properties": { - "id": 49, - "order": 43, - "prevSize": 32, - "code": 57346, - "name": "fullpage", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 49 - }, - { - "icon": { - "paths": [ - "M903.432 199.43l-142.864-142.862c-31.112-31.112-92.568-56.568-136.568-56.568h-480c-44 0-80 36-80 80v864c0 44 36 80 80 80h736c44 0 80-36 80-80v-608c0-44-25.456-105.458-56.568-136.57zM858.178 244.686c3.13 3.13 6.25 6.974 9.28 11.314h-163.458v-163.456c4.34 3.030 8.184 6.15 11.314 9.28l142.864 142.862zM896 944c0 8.672-7.328 16-16 16h-736c-8.672 0-16-7.328-16-16v-864c0-8.672 7.328-16 16-16h480c4.832 0 10.254 0.61 16 1.704v254.296h254.296c1.094 5.746 1.704 11.166 1.704 16v608z" - ], - "tags": [ - "newdocument" - ], - "defaultCode": 57345, - "grid": 0 - }, - "properties": { - "id": 50, - "order": 44, - "prevSize": 32, - "code": 57345, - "name": "newdocument", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 50 - }, - { - "icon": { - "paths": [ - "M896 0h-896v1024h1024v-896l-128-128zM512 128h128v256h-128v-256zM896 896h-768v-768h64v320h576v-320h74.978l53.022 53.018v714.982z" - ], - "tags": [ - "save" - ], - "defaultCode": 57344, - "grid": 0 - }, - "properties": { - "id": 51, - "order": 45, - "prevSize": 32, - "code": 57344, - "name": "save", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 51 + "order": 0, + "id": 0, + "prevSize": 32, + "code": 58882, + "name": "invert", + "tempChar": "" }, { - "icon": { - "paths": [ - "M128 544l288 288 480-480-128-128-352 352-160-160z" - ], - "defaultCode": 57395, - "grid": 0 - }, - "properties": { - "id": 52, - "order": 46, - "prevSize": 32, - "code": 57395, - "name": "checkbox", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 52 - }, - { - "icon": { - "paths": [ - "M512 512v128h32l32-64h64v256h-48v64h224v-64h-48v-256h64l32 64h32v-128zM832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h640v-704h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM960 960h-512v-576h512v576z" - ], - "tags": [ - "pastetext" - ], - "defaultCode": 57397, - "grid": 0 - }, - "properties": { - "id": 53, - "order": 47, - "prevSize": 32, - "code": 57397, - "name": "pastetext", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 53 - }, - { - "icon": { - "paths": [ - "M1024 0v384l-138.26-138.26-212 212-107.48-107.48 212-212-138.26-138.26zM245.74 138.26l212 212-107.48 107.48-212-212-138.26 138.26v-384h384zM885.74 778.26l138.26-138.26v384h-384l138.26-138.26-212-212 107.48-107.48zM457.74 673.74l-212 212 138.26 138.26h-384v-384l138.26 138.26 212-212z" - ], - "tags": [ - "fullscreen" - ], - "defaultCode": 57379, - "grid": 0 - }, - "properties": { - "id": 16, - "order": 48, - "prevSize": 32, - "code": 57379, - "name": "fullscreen", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 16 - }, - { - "icon": { - "paths": [ - "M256 64h512v128h-512zM960 256h-896c-35.2 0-64 28.8-64 64v320c0 35.2 28.796 64 64 64h192v256h512v-256h192c35.2 0 64-28.8 64-64v-320c0-35.2-28.8-64-64-64zM704 896h-384v-320h384v320zM974.4 352c0 25.626-20.774 46.4-46.398 46.4-25.626 0-46.402-20.774-46.402-46.4s20.776-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z" - ], - "tags": [ - "print" - ], - "defaultCode": 57378, - "grid": 0 - }, - "properties": { - "id": 17, - "order": 49, - "prevSize": 32, - "code": 57378, - "name": "print", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 17 - }, - { - "icon": { - "paths": [ - "M512 0c-282.77 0-512 229.228-512 512 0 282.77 229.228 512 512 512 282.77 0 512-229.23 512-512 0-282.772-229.23-512-512-512zM512 944c-238.586 0-432-193.412-432-432 0-238.586 193.414-432 432-432 238.59 0 432 193.414 432 432 0 238.588-193.41 432-432 432zM384 320c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zM768 320c0 35.346-28.652 64-64 64s-64-28.654-64-64 28.652-64 64-64 64 28.654 64 64zM512 652c141.074 0 262.688-57.532 318.462-123.192-20.872 171.22-156.288 303.192-318.462 303.192-162.118 0-297.498-132.026-318.444-303.168 55.786 65.646 177.386 123.168 318.444 123.168z" - ], - "tags": [ - "emoticons" - ], - "defaultCode": 57377, - "grid": 0 - }, - "properties": { - "id": 18, - "order": 50, - "prevSize": 32, - "code": 57377, - "name": "emoticons", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 18 - }, - { - "icon": { - "paths": [ - "M225 448c123.712 0 224 100.29 224 224 0 123.712-100.288 224-224 224-123.712 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.634 11.636-22.252 24.016-31.83 37.020 11.438-1.8 23.16-2.746 35.104-2.746zM801 448c123.71 0 224 100.29 224 224 0 123.712-100.29 224-224 224-123.71 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.636 11.636-22.254 24.016-31.832 37.020 11.44-1.8 23.16-2.746 35.106-2.746z" - ], - "tags": [ - "blockquote" - ], - "defaultCode": 57358, - "grid": 0 - }, - "properties": { - "id": 37, - "order": 51, - "prevSize": 32, - "code": 57358, - "name": "blockquote", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 37 - }, - { - "icon": { - "paths": [ - "M761.862 1024c113.726-206.032 132.888-520.306-313.862-509.824v253.824l-384-384 384-384v248.372c534.962-13.942 594.57 472.214 313.862 775.628z" - ], - "tags": [ - "undo" - ], - "defaultCode": 57359, - "grid": 0 - }, - "properties": { - "id": 36, - "order": 52, - "prevSize": 32, - "code": 57359, - "name": "undo", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 36 - }, - { - "icon": { - "paths": [ - "M576 248.372v-248.372l384 384-384 384v-253.824c-446.75-10.482-427.588 303.792-313.86 509.824-280.712-303.414-221.1-789.57 313.86-775.628z" - ], - "tags": [ - "redo" - ], - "defaultCode": 57360, - "grid": 0 - }, - "properties": { - "id": 35, - "order": 53, - "prevSize": 32, - "code": 57360, - "name": "redo", - "ligatures": "" - }, - "setIdx": 0, - "iconIdx": 35 + "id": 0, + "order": 0, + "prevSize": 32, + "code": 57396, + "name": "browse", + "ligatures": "", + "tempChar": "" + }, + { + "id": 1, + "order": 0, + "prevSize": 32, + "code": 57394, + "name": "resize", + "ligatures": "", + "tempChar": "" + }, + { + "id": 2, + "order": 0, + "prevSize": 32, + "code": 57393, + "name": "copy", + "ligatures": "", + "tempChar": "" + }, + { + "id": 3, + "order": 0, + "prevSize": 32, + "code": 57392, + "name": "rtl", + "ligatures": "", + "tempChar": "" + }, + { + "id": 4, + "order": 0, + "prevSize": 32, + "code": 57391, + "name": "ltr", + "ligatures": "", + "tempChar": "" + }, + { + "id": 5, + "order": 0, + "prevSize": 32, + "code": 57390, + "name": "visualchars", + "ligatures": "", + "tempChar": "" + }, + { + "id": 6, + "order": 0, + "prevSize": 32, + "code": 57389, + "name": "strikethrough", + "ligatures": "", + "tempChar": "" + }, + { + "id": 7, + "order": 0, + "prevSize": 32, + "code": 57388, + "name": "underline", + "ligatures": "", + "tempChar": "" + }, + { + "id": 8, + "order": 0, + "prevSize": 32, + "code": 57387, + "name": "italic", + "ligatures": "", + "tempChar": "" + }, + { + "id": 9, + "order": 0, + "prevSize": 32, + "code": 57386, + "name": "bold", + "ligatures": "", + "tempChar": "" + }, + { + "id": 11, + "order": 0, + "prevSize": 32, + "code": 57384, + "name": "restoredraft", + "ligatures": "", + "tempChar": "" + }, + { + "id": 12, + "order": 0, + "prevSize": 32, + "code": 57383, + "name": "pagebreak", + "ligatures": "", + "tempChar": "" + }, + { + "id": 13, + "order": 0, + "prevSize": 32, + "code": 57382, + "name": "template", + "ligatures": "", + "tempChar": "" + }, + { + "id": 14, + "order": 0, + "prevSize": 32, + "code": 57381, + "name": "nonbreaking", + "ligatures": "", + "tempChar": "" + }, + { + "id": 15, + "order": 0, + "prevSize": 32, + "code": 57380, + "name": "spellchecker", + "ligatures": "", + "tempChar": "" + }, + { + "id": 19, + "order": 0, + "prevSize": 32, + "code": 57376, + "name": "charmap", + "ligatures": "", + "tempChar": "" + }, + { + "id": 20, + "order": 0, + "prevSize": 32, + "code": 57375, + "name": "sup", + "ligatures": "", + "tempChar": "" + }, + { + "id": 21, + "order": 0, + "prevSize": 32, + "code": 57374, + "name": "sub", + "ligatures": "", + "tempChar": "" + }, + { + "id": 22, + "order": 0, + "prevSize": 32, + "code": 57373, + "name": "removeformat", + "ligatures": "", + "tempChar": "" + }, + { + "id": 23, + "order": 0, + "prevSize": 32, + "code": 57372, + "name": "hr", + "ligatures": "", + "tempChar": "" + }, + { + "id": 24, + "order": 0, + "prevSize": 32, + "code": 57371, + "name": "table", + "ligatures": "", + "tempChar": "" + }, + { + "id": 25, + "order": 0, + "prevSize": 32, + "code": 57370, + "name": "forecolor", + "ligatures": "", + "tempChar": "" + }, + { + "id": 26, + "order": 0, + "prevSize": 32, + "code": 57369, + "name": "preview", + "ligatures": "", + "tempChar": "" + }, + { + "id": 27, + "order": 0, + "prevSize": 32, + "code": 57368, + "name": "inserttime", + "ligatures": "", + "tempChar": "" + }, + { + "id": 28, + "order": 0, + "prevSize": 32, + "code": 57367, + "name": "code", + "ligatures": "", + "tempChar": "" + }, + { + "id": 29, + "order": 0, + "prevSize": 32, + "code": 57366, + "name": "help", + "ligatures": "", + "tempChar": "" + }, + { + "id": 30, + "order": 0, + "prevSize": 32, + "code": 57365, + "name": "media", + "ligatures": "", + "tempChar": "" + }, + { + "id": 31, + "order": 0, + "prevSize": 32, + "code": 57364, + "name": "image", + "ligatures": "", + "tempChar": "" + }, + { + "id": 32, + "order": 0, + "prevSize": 32, + "code": 57363, + "name": "anchor", + "ligatures": "", + "tempChar": "" + }, + { + "id": 33, + "order": 0, + "prevSize": 32, + "code": 57362, + "name": "unlink", + "ligatures": "", + "tempChar": "" + }, + { + "id": 34, + "order": 0, + "prevSize": 32, + "code": 57361, + "name": "link", + "ligatures": "", + "tempChar": "" + }, + { + "id": 38, + "order": 0, + "prevSize": 32, + "code": 57357, + "name": "outdent", + "ligatures": "", + "tempChar": "" + }, + { + "id": 39, + "order": 0, + "prevSize": 32, + "code": 57356, + "name": "indent", + "ligatures": "", + "tempChar": "" + }, + { + "id": 40, + "order": 0, + "prevSize": 32, + "code": 57355, + "name": "numlist", + "ligatures": "", + "tempChar": "" + }, + { + "id": 41, + "order": 0, + "prevSize": 32, + "code": 57354, + "name": "bullist", + "ligatures": "", + "tempChar": "" + }, + { + "id": 42, + "order": 0, + "prevSize": 32, + "code": 57353, + "name": "searchreplace", + "ligatures": "", + "tempChar": "" + }, + { + "id": 43, + "order": 0, + "prevSize": 32, + "code": 57352, + "name": "paste", + "ligatures": "", + "tempChar": "" + }, + { + "id": 44, + "order": 0, + "prevSize": 32, + "code": 57351, + "name": "cut", + "ligatures": "", + "tempChar": "" + }, + { + "id": 45, + "order": 0, + "prevSize": 32, + "code": 57350, + "name": "alignjustify", + "ligatures": "", + "tempChar": "" + }, + { + "id": 46, + "order": 0, + "prevSize": 32, + "code": 57349, + "name": "alignright", + "ligatures": "", + "tempChar": "" + }, + { + "id": 47, + "order": 0, + "prevSize": 32, + "code": 57348, + "name": "aligncenter", + "ligatures": "", + "tempChar": "" + }, + { + "id": 48, + "order": 0, + "prevSize": 32, + "code": 57347, + "name": "alignleft", + "ligatures": "", + "tempChar": "" + }, + { + "id": 49, + "order": 0, + "prevSize": 32, + "code": 57346, + "name": "fullpage", + "ligatures": "", + "tempChar": "" + }, + { + "id": 50, + "order": 0, + "prevSize": 32, + "code": 57345, + "name": "newdocument", + "ligatures": "", + "tempChar": "" + }, + { + "id": 51, + "order": 0, + "prevSize": 32, + "code": 57344, + "name": "save", + "ligatures": "", + "tempChar": "" + }, + { + "id": 52, + "order": 0, + "prevSize": 32, + "code": 57395, + "name": "checkbox", + "ligatures": "", + "tempChar": "" + }, + { + "id": 53, + "order": 0, + "prevSize": 32, + "code": 57397, + "name": "pastetext", + "ligatures": "", + "tempChar": "" + }, + { + "id": 16, + "order": 0, + "prevSize": 32, + "code": 57379, + "name": "fullscreen", + "ligatures": "", + "tempChar": "" + }, + { + "id": 17, + "order": 0, + "prevSize": 32, + "code": 57378, + "name": "print", + "ligatures": "", + "tempChar": "" + }, + { + "id": 18, + "order": 0, + "prevSize": 32, + "code": 57377, + "name": "emoticons", + "ligatures": "", + "tempChar": "" + }, + { + "id": 37, + "order": 0, + "prevSize": 32, + "code": 57358, + "name": "blockquote", + "ligatures": "", + "tempChar": "" + }, + { + "id": 36, + "order": 0, + "prevSize": 32, + "code": 57359, + "name": "undo", + "ligatures": "", + "tempChar": "" + }, + { + "id": 35, + "order": 0, + "prevSize": 32, + "code": 57360, + "name": "redo", + "ligatures": "", + "tempChar": "" + }, + { + "order": 0, + "id": 1, + "prevSize": 32, + "code": 58883, + "name": "codesample", + "tempChar": "" + }, + { + "id": 87, + "order": 0, + "prevSize": 32, + "code": 59700, + "ligatures": "droplet, color9", + "name": "drop", + "tempChar": "" + }, + { + "id": 635, + "order": 0, + "prevSize": 32, + "code": 60327, + "ligatures": "diamond2, gem2", + "name": "sharpen", + "tempChar": "" + }, + { + "id": 854, + "order": 0, + "prevSize": 32, + "code": 60628, + "ligatures": "contrast", + "name": "contrast", + "tempChar": "" + }, + { + "id": 24, + "order": 0, + "prevSize": 32, + "code": 60778, + "ligatures": "cross2, cancel3", + "name": "cross2", + "tempChar": "" + }, + { + "id": 1097, + "order": 0, + "prevSize": 32, + "code": 60921, + "ligatures": "arrow-resize2, diagonal2", + "name": "arrow-resize2", + "tempChar": "" + }, + { + "order": 0, + "id": 1, + "prevSize": 32, + "code": 58880, + "name": "gamma", + "tempChar": "" + }, + { + "order": 0, + "id": 0, + "prevSize": 32, + "code": 58881, + "name": "orientation", + "tempChar": "" + }, + { + "id": 68, + "order": 0, + "prevSize": 32, + "code": 59668, + "ligatures": "pencil7, write7", + "name": "editimage", + "tempChar": "" + }, + { + "id": 22, + "order": 0, + "prevSize": 32, + "code": 60072, + "ligatures": "rotate-ccw3, ccw4", + "name": "rotateleft", + "tempChar": "" + }, + { + "order": 0, + "id": 1679, + "prevSize": 32, + "code": 60073, + "ligatures": "rotate-cw3, cw4", + "name": "rotateright", + "tempChar": "" + }, + { + "id": 403, + "order": 0, + "prevSize": 32, + "code": 60074, + "ligatures": "flip-vertical, mirror", + "name": "flipv", + "tempChar": "" + }, + { + "id": 405, + "order": 0, + "prevSize": 32, + "code": 60076, + "ligatures": "flip-horizontal, mirror3", + "name": "fliph", + "tempChar": "" + }, + { + "id": 534, + "order": 0, + "prevSize": 32, + "code": 60213, + "ligatures": "zoom-in3, magnifier9", + "name": "zoomin", + "tempChar": "" + }, + { + "id": 535, + "order": 0, + "prevSize": 32, + "code": 60214, + "ligatures": "zoom-out3, magnifier10", + "name": "zoomout", + "tempChar": "" + }, + { + "order": 0, + "id": 1448, + "prevSize": 32, + "code": 60522, + "ligatures": "menu3, list4", + "name": "options", + "tempChar": "" + }, + { + "id": 844, + "order": 0, + "prevSize": 32, + "code": 60620, + "ligatures": "sun2, weather21", + "name": "sun", + "tempChar": "" + }, + { + "id": 855, + "order": 0, + "prevSize": 32, + "code": 60621, + "ligatures": "moon, night", + "name": "moon", + "tempChar": "" + }, + { + "id": 1056, + "order": 0, + "prevSize": 32, + "code": 60864, + "ligatures": "arrow-left, left4", + "name": "arrowleft", + "tempChar": "" + }, + { + "id": 1201, + "order": 0, + "prevSize": 32, + "code": 61048, + "ligatures": "crop, resize", + "name": "crop", + "tempChar": "" + }, + { + "id": 1680, + "order": 0, + "prevSize": 32, + "code": 58884, + "name": "tablerowprops", + "tempChar": "" + }, + { + "id": 1681, + "order": 0, + "prevSize": 32, + "code": 58885, + "name": "tablecellprops", + "tempChar": "" + }, + { + "id": 1682, + "order": 0, + "prevSize": 32, + "code": 58886, + "name": "table2", + "tempChar": "" + }, + { + "id": 1683, + "order": 0, + "prevSize": 32, + "code": 58887, + "name": "tablemergecells", + "tempChar": "" + }, + { + "id": 1684, + "order": 0, + "prevSize": 32, + "code": 58888, + "name": "tableinsertcolbefore", + "tempChar": "" + }, + { + "id": 1685, + "order": 0, + "prevSize": 32, + "code": 58889, + "name": "tableinsertcolafter", + "tempChar": "" + }, + { + "id": 1686, + "order": 0, + "prevSize": 32, + "code": 58890, + "name": "tableinsertrowbefore", + "tempChar": "" + }, + { + "id": 1687, + "order": 0, + "prevSize": 32, + "code": 58891, + "name": "tableinsertrowafter", + "tempChar": "" + }, + { + "id": 1688, + "order": 0, + "prevSize": 32, + "code": 58893, + "name": "tablesplitcells", + "tempChar": "" + }, + { + "id": 1689, + "order": 0, + "prevSize": 32, + "code": 58894, + "name": "tabledelete", + "tempChar": "" + }, + { + "id": 1690, + "order": 0, + "prevSize": 32, + "code": 58922, + "name": "tableleftheader", + "tempChar": "" + }, + { + "id": 1691, + "order": 0, + "prevSize": 32, + "code": 58923, + "name": "tabletopheader", + "tempChar": "" + }, + { + "order": 0, + "id": 1693, + "prevSize": 32, + "code": 59392, + "name": "tabledeleterow", + "tempChar": "" + }, + { + "order": 0, + "id": 1692, + "prevSize": 32, + "code": 59393, + "name": "tabledeletecol", + "tempChar": "" } ], - "height": 1024, "metadata": { - "name": "tinymce" + "name": "tinymce", + "iconsHash": 757772004 }, + "height": 1024, + "prevSize": 32, + "icons": [ + { + "paths": [ + "M892.8 982.4l-89.6-89.6c-70.4 80-172.8 131.2-288 131.2-208 0-380.8-166.4-384-377.6 0 0 0 0 0 0 0-3.2 0-3.2 0-6.4s0-3.2 0-6.4v0c0 0 0 0 0-3.2 0 0 0-3.2 0-3.2 3.2-105.6 48-211.2 105.6-304l-192-192 44.8-44.8 182.4 182.4c0 0 0 0 0 0l569.6 569.6c0 0 0 0 0 0l99.2 99.2-48 44.8zM896 633.6c0 0 0 0 0 0 0-3.2 0-6.4 0-6.4-9.6-316.8-384-627.2-384-627.2s-108.8 89.6-208 220.8l70.4 70.4c6.4-9.6 16-22.4 22.4-32 41.6-51.2 83.2-96 115.2-128v0c32 32 73.6 76.8 115.2 128 108.8 137.6 169.6 265.6 172.8 371.2 0 0 0 3.2 0 3.2v0 0c0 3.2 0 3.2 0 6.4s0 3.2 0 3.2v0 0c0 22.4-3.2 41.6-9.6 64l76.8 76.8c16-41.6 28.8-89.6 28.8-137.6 0 0 0 0 0 0 0-3.2 0-3.2 0-6.4s-0-3.2-0-6.4z" + ], + "attrs": [ + {} + ], + "isMulticolor": false, + "tags": [ + "invert" + ], + "grid": 16, + "defaultCode": 58882 + }, + { + "paths": [ + "M928 128h-416l-32-64h-352l-64 128h896zM904.34 704h74.86l44.8-448h-1024l64 640h484.080c-104.882-37.776-180.080-138.266-180.080-256 0-149.982 122.018-272 272-272 149.98 0 272 122.018 272 272 0 21.678-2.622 43.15-7.66 64zM1002.996 913.75l-198.496-174.692c17.454-28.92 27.5-62.814 27.5-99.058 0-106.040-85.96-192-192-192s-192 85.96-192 192 85.96 192 192 192c36.244 0 70.138-10.046 99.058-27.5l174.692 198.496c22.962 26.678 62.118 28.14 87.006 3.252l5.492-5.492c24.888-24.888 23.426-64.044-3.252-87.006zM640 764c-68.484 0-124-55.516-124-124s55.516-124 124-124 124 55.516 124 124-55.516 124-124 124z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57396, + "grid": 16 + }, + { + "paths": [ + "M768 256h64v64h-64zM640 384h64v64h-64zM640 512h64v64h-64zM640 640h64v64h-64zM512 512h64v64h-64zM512 640h64v64h-64zM384 640h64v64h-64zM768 384h64v64h-64zM768 512h64v64h-64zM768 640h64v64h-64zM768 768h64v64h-64zM640 768h64v64h-64zM512 768h64v64h-64zM384 768h64v64h-64zM256 768h64v64h-64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "resize", + "dots" + ], + "defaultCode": 57394, + "grid": 16 + }, + { + "paths": [ + "M832 256h-192v-64l-192-192h-448v768h384v256h640v-576l-192-192zM832 346.51l101.49 101.49h-101.49v-101.49zM448 90.51l101.49 101.49h-101.49v-101.49zM64 64h320v192h192v448h-512v-640zM960 960h-512v-192h192v-448h128v192h192v448z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "copy" + ], + "defaultCode": 57393, + "grid": 16 + }, + { + "paths": [ + "M256 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM960 896l-256-224 256-224z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "rtl" + ], + "defaultCode": 57392, + "grid": 16 + }, + { + "paths": [ + "M448 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224zM64 448l256 224-256 224z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "ltr" + ], + "defaultCode": 57391, + "grid": 16 + }, + { + "paths": [ + "M384 64h512v128h-128v768h-128v-768h-128v768h-128v-448c-123.712 0-224-100.288-224-224s100.288-224 224-224z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "visualchars" + ], + "defaultCode": 57390, + "grid": 16 + }, + { + "paths": [ + "M731.42 517.036c63.92 47.938 100.58 116.086 100.58 186.964s-36.66 139.026-100.58 186.964c-59.358 44.518-137.284 69.036-219.42 69.036-82.138 0-160.062-24.518-219.42-69.036-63.92-47.938-100.58-116.086-100.58-186.964h128c0 69.382 87.926 128 192 128 104.074 0 192-58.618 192-128 0-69.382-87.926-128-192-128-82.138 0-160.062-24.518-219.42-69.036-63.92-47.94-100.58-116.086-100.58-186.964 0-70.878 36.66-139.024 100.58-186.964 59.358-44.518 137.282-69.036 219.42-69.036 82.136 0 160.062 24.518 219.42 69.036 63.92 47.94 100.58 116.086 100.58 186.964h-128c0-69.382-87.926-128-192-128-104.074 0-192 58.618-192 128 0 69.382 87.926 128 192 128 82.136 0 160.062 24.518 219.42 69.036zM0 512h1024v64h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "strikethrough" + ], + "defaultCode": 57389, + "grid": 16 + }, + { + "paths": [ + "M704 64h128v416c0 159.058-143.268 288-320 288-176.73 0-320-128.942-320-288v-416h128v416c0 40.166 18.238 78.704 51.354 108.506 36.896 33.204 86.846 51.494 140.646 51.494 53.8 0 103.75-18.29 140.646-51.494 33.116-29.802 51.354-68.34 51.354-108.506v-416zM192 832h640v128h-640z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "underline" + ], + "defaultCode": 57388, + "grid": 16 + }, + { + "paths": [ + "M896 64v64h-128l-320 768h128v64h-448v-64h128l320-768h-128v-64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "italic" + ], + "defaultCode": 57387, + "grid": 16 + }, + { + "paths": [ + "M707.88 484.652c37.498-44.542 60.12-102.008 60.12-164.652 0-141.16-114.842-256-256-256h-320v896h384c141.158 0 256-114.842 256-256 0-92.956-49.798-174.496-124.12-219.348zM384 192h101.5c55.968 0 101.5 57.42 101.5 128s-45.532 128-101.5 128h-101.5v-256zM543 832h-159v-256h159c58.45 0 106 57.42 106 128s-47.55 128-106 128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "bold0" + ], + "defaultCode": 57386, + "grid": 16 + }, + { + "paths": [ + "M576 64c247.424 0 448 200.576 448 448s-200.576 448-448 448v-96c94.024 0 182.418-36.614 248.902-103.098 66.484-66.484 103.098-154.878 103.098-248.902 0-94.022-36.614-182.418-103.098-248.902-66.484-66.484-154.878-103.098-248.902-103.098-94.022 0-182.418 36.614-248.902 103.098-51.14 51.138-84.582 115.246-97.306 184.902h186.208l-224 256-224-256h164.57c31.060-217.102 217.738-384 443.43-384zM768 448v128h-256v-320h128v192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "restoredraft" + ], + "defaultCode": 57384, + "grid": 16 + }, + { + "paths": [ + "M0 512h128v64h-128zM192 512h192v64h-192zM448 512h128v64h-128zM640 512h192v64h-192zM896 512h128v64h-128zM880 0l16 448h-768l16-448h32l16 384h640l16-384zM144 1024l-16-384h768l-16 384h-32l-16-320h-640l-16 320z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "pagebreak" + ], + "defaultCode": 57383, + "grid": 16 + }, + { + "paths": [ + "M384 192h128v64h-128zM576 192h128v64h-128zM896 192v256h-192v-64h128v-128h-64v-64zM320 384h128v64h-128zM512 384h128v64h-128zM192 256v128h64v64h-128v-256h192v64zM384 576h128v64h-128zM576 576h128v64h-128zM896 576v256h-192v-64h128v-128h-64v-64zM320 768h128v64h-128zM512 768h128v64h-128zM192 640v128h64v64h-128v-256h192v64zM960 64h-896v896h896v-896zM1024 0v0 1024h-1024v-1024h1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "template" + ], + "defaultCode": 57382, + "grid": 16 + }, + { + "paths": [ + "M448 576h-192v-128h192v-192h128v192h192v128h-192v192h-128zM1024 640v384h-1024v-384h128v256h768v-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "nonbreaking" + ], + "defaultCode": 57381, + "grid": 16 + }, + { + "paths": [ + "M128 256h128v192h64v-384c0-35.2-28.8-64-64-64h-128c-35.2 0-64 28.8-64 64v384h64v-192zM128 64h128v128h-128v-128zM960 64v-64h-192c-35.202 0-64 28.8-64 64v320c0 35.2 28.798 64 64 64h192v-64h-192v-320h192zM640 160v-96c0-35.2-28.8-64-64-64h-192v448h192c35.2 0 64-28.8 64-64v-96c0-35.2-8.8-64-44-64 35.2 0 44-28.8 44-64zM576 384h-128v-128h128v128zM576 192h-128v-128h128v128zM832 576l-416 448-224-288 82-70 142 148 352-302z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "spellchecker" + ], + "defaultCode": 57380, + "grid": 16 + }, + { + "paths": [ + "M704 896h256l64-128v256h-384v-214.214c131.112-56.484 224-197.162 224-361.786 0-214.432-157.598-382.266-352-382.266-194.406 0-352 167.832-352 382.266 0 164.624 92.886 305.302 224 361.786v214.214h-384v-256l64 128h256v-32.59c-187.63-66.46-320-227.402-320-415.41 0-247.424 229.23-448 512-448 282.77 0 512 200.576 512 448 0 188.008-132.37 348.95-320 415.41v32.59z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "charmap" + ], + "defaultCode": 57376, + "grid": 16 + }, + { + "paths": [ + "M768 206v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "sup" + ], + "defaultCode": 57375, + "grid": 16 + }, + { + "paths": [ + "M768 910v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM676 256h-136l-188 188-188-188h-136l256 256-256 256h136l188-188 188 188h136l-256-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "sub" + ], + "defaultCode": 57374, + "grid": 16 + }, + { + "paths": [ + "M0 896h576v128h-576zM192 0h704v128h-704zM277.388 832l204.688-784.164 123.85 32.328-196.25 751.836zM929.774 1024l-129.774-129.774-129.774 129.774-62.226-62.226 129.774-129.774-129.774-129.774 62.226-62.226 129.774 129.774 129.774-129.774 62.226 62.226-129.774 129.774 129.774 129.774z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "removeformat" + ], + "defaultCode": 57373, + "grid": 16 + }, + { + "paths": [ + "M0 448h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "hr" + ], + "defaultCode": 57372, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM384 640v-192h256v192h-256zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "table" + ], + "defaultCode": 57371, + "grid": 16 + }, + { + "paths": [ + "M322.018 832l57.6-192h264.764l57.6 192h113.632l-191.996-640h-223.236l-192 640h113.636zM475.618 320h72.764l57.6 192h-187.964l57.6-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "forecolor" + ], + "defaultCode": 57370, + "grid": 16 + }, + { + "paths": [ + "M512 320c-209.368 0-395.244 100.556-512 256 116.756 155.446 302.632 256 512 256 209.368 0 395.244-100.554 512-256-116.756-155.444-302.632-256-512-256zM448 448c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64 28.654-64 64-64zM773.616 705.296c-39.648 20.258-81.652 35.862-124.846 46.376-44.488 10.836-90.502 16.328-136.77 16.328-46.266 0-92.282-5.492-136.768-16.324-43.194-10.518-85.198-26.122-124.846-46.376-63.020-32.202-120.222-76.41-167.64-129.298 47.418-52.888 104.62-97.1 167.64-129.298 32.336-16.522 66.242-29.946 101.082-40.040-19.888 30.242-31.468 66.434-31.468 105.336 0 106.040 85.962 192 192 192 106.038 0 192-85.96 192-192 0-38.902-11.582-75.094-31.466-105.34 34.838 10.096 68.744 23.52 101.082 40.042 63.022 32.198 120.218 76.408 167.638 129.298-47.42 52.886-104.618 97.1-167.638 129.296zM860.918 243.722c-108.72-55.554-226.112-83.722-348.918-83.722-122.806 0-240.198 28.168-348.918 83.722-58.772 30.032-113.732 67.904-163.082 112.076v109.206c55.338-58.566 120.694-107.754 192.194-144.29 99.62-50.904 207.218-76.714 319.806-76.714s220.186 25.81 319.804 76.716c71.502 36.536 136.858 85.724 192.196 144.29v-109.206c-49.35-44.174-104.308-82.046-163.082-112.078z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "preview" + ], + "defaultCode": 57369, + "grid": 16 + }, + { + "paths": [ + "M512 192c-212.076 0-384 171.922-384 384s171.922 384 384 384c212.074 0 384-171.922 384-384s-171.926-384-384-384zM715.644 779.646c-54.392 54.396-126.716 84.354-203.644 84.354s-149.25-29.958-203.646-84.354c-54.396-54.394-84.354-126.718-84.354-203.646s29.958-149.25 84.354-203.646c54.396-54.396 126.718-84.354 203.646-84.354s149.252 29.958 203.642 84.354c54.402 54.396 84.358 126.718 84.358 203.646s-29.958 149.252-84.356 203.646zM325.93 203.862l-42.94-85.878c-98.874 49.536-179.47 130.132-229.006 229.008l85.876 42.94c40.248-80.336 105.732-145.822 186.070-186.070zM884.134 389.93l85.878-42.938c-49.532-98.876-130.126-179.472-229.004-229.008l-42.944 85.878c80.338 40.248 145.824 105.732 186.070 186.068zM512 384h-64v192c0 10.11 4.7 19.11 12.022 24.972l-0.012 0.016 160 128 39.976-49.976-147.986-118.39v-176.622z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "inserttime" + ], + "defaultCode": 57368, + "grid": 16 + }, + { + "paths": [ + "M320 256l-256 256 256 256h128l-256-256 256-256zM704 256h-128l256 256-256 256h128l256-256z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "code" + ], + "defaultCode": 57367, + "grid": 16 + }, + { + "paths": [ + "M448 704h128v128h-128zM704 256c35.346 0 64 28.654 64 64v192l-192 128h-128v-64l192-128v-64h-320v-128h384zM512 96c-111.118 0-215.584 43.272-294.156 121.844s-121.844 183.038-121.844 294.156c0 111.118 43.272 215.584 121.844 294.156 78.572 78.572 183.038 121.844 294.156 121.844 111.118 0 215.584-43.272 294.156-121.844 78.572-78.572 121.844-183.038 121.844-294.156 0-111.118-43.272-215.584-121.844-294.156-78.572-78.572-183.038-121.844-294.156-121.844zM512 0v0c282.77 0 512 229.23 512 512s-229.23 512-512 512c-282.77 0-512-229.23-512-512 0-282.77 229.23-512 512-512z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "help" + ], + "defaultCode": 57366, + "grid": 16 + }, + { + "paths": [ + "M0 128v768h1024v-768h-1024zM192 832h-128v-128h128v128zM192 576h-128v-128h128v128zM192 320h-128v-128h128v128zM768 832h-512v-640h512v640zM960 832h-128v-128h128v128zM960 576h-128v-128h128v128zM960 320h-128v-128h128v128zM384 320v384l256-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "media" + ], + "defaultCode": 57365, + "grid": 16 + }, + { + "paths": [ + "M0 128v832h1024v-832h-1024zM960 896h-896v-704h896v704zM704 352c0-53.019 42.981-96 96-96s96 42.981 96 96c0 53.019-42.981 96-96 96-53.019 0-96-42.981-96-96zM896 832h-768l192-512 256 320 128-96z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "image" + ], + "defaultCode": 57364, + "grid": 16 + }, + { + "paths": [ + "M192 0v1024l320-320 320 320v-1024h-640zM768 869.49l-256-256-256 256v-805.49h512v805.49z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "anchor" + ], + "defaultCode": 57363, + "grid": 16 + }, + { + "paths": [ + "M476.888 675.114c4.56 9.048 6.99 19.158 6.99 29.696 0 17.616-6.744 34.058-18.992 46.308l-163.38 163.38c-12.248 12.248-28.696 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.38-99.38c-12.248-12.25-18.992-28.696-18.992-46.308s6.744-34.060 18.992-46.308l163.38-163.382c12.248-12.246 28.696-18.992 46.308-18.992 10.538 0 20.644 2.43 29.696 6.988l65.338-65.336c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.38 163.382c-60.67 60.67-60.67 159.95 0 220.618l99.38 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.38-163.38c55.82-55.82 60.238-144.298 13.344-205.346l-65.34 65.338zM978.496 144.884l-99.38-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.97 15.166-110.306 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.246-12.248 28.694-18.994 46.306-18.994 17.616 0 34.060 6.746 46.308 18.994l99.38 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.38 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.504l163.38-163.38c60.672-60.666 60.672-159.944 0-220.614zM233.368 278.624l-191.994-191.994 45.256-45.256 191.994 191.994zM384 0h64v192h-64zM0 384h192v64h-192zM790.632 745.376l191.996 191.996-45.256 45.256-191.996-191.996zM576 832h64v192h-64zM832 576h192v64h-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "unlink" + ], + "defaultCode": 57362, + "grid": 16 + }, + { + "paths": [ + "M320 704c17.6 17.6 47.274 16.726 65.942-1.942l316.118-316.116c18.668-18.668 19.54-48.342 1.94-65.942s-47.274-16.726-65.942 1.942l-316.116 316.116c-18.668 18.668-19.542 48.342-1.942 65.942zM476.888 675.112c4.56 9.050 6.99 19.16 6.99 29.696 0 17.616-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992s-34.060-6.744-46.308-18.992l-99.382-99.382c-12.248-12.248-18.992-28.694-18.992-46.308s6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994 10.536 0 20.644 2.43 29.696 6.99l65.338-65.338c-27.87-21.41-61.44-32.16-95.034-32.16-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-60.67 60.67-60.67 159.948 0 220.618l99.382 99.382c30.334 30.332 70.32 45.5 110.306 45.5 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c55.82-55.82 60.238-144.298 13.344-205.344l-65.34 65.34zM978.498 144.884l-99.382-99.382c-30.334-30.336-70.32-45.502-110.308-45.502-39.986 0-79.972 15.166-110.308 45.502l-163.382 163.382c-55.82 55.82-60.238 144.298-13.342 205.342l65.338-65.34c-4.558-9.050-6.988-19.16-6.988-29.694 0-17.616 6.744-34.060 18.992-46.308l163.382-163.382c12.248-12.248 28.694-18.994 46.308-18.994s34.060 6.746 46.308 18.994l99.382 99.382c12.248 12.248 18.992 28.694 18.992 46.308s-6.744 34.060-18.992 46.308l-163.382 163.382c-12.248 12.248-28.694 18.992-46.308 18.992-10.536 0-20.644-2.43-29.696-6.99l-65.338 65.338c27.872 21.41 61.44 32.16 95.034 32.16 39.988 0 79.974-15.168 110.308-45.502l163.382-163.382c60.67-60.666 60.67-159.944 0-220.614z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "link" + ], + "defaultCode": 57361, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM256 320v384l-256-192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "outdent" + ], + "defaultCode": 57357, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 448h640v128h-640zM384 640h640v128h-640zM0 832h1024v128h-1024zM0 704v-384l256 192z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "indent" + ], + "defaultCode": 57356, + "grid": 16 + }, + { + "paths": [ + "M384 832h640v128h-640zM384 448h640v128h-640zM384 64h640v128h-640zM192 0v256h-64v-192h-64v-64zM128 526v50h128v64h-192v-146l128-60v-50h-128v-64h192v146zM256 704v320h-192v-64h128v-64h-128v-64h128v-64h-128v-64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "numlist" + ], + "defaultCode": 57355, + "grid": 16 + }, + { + "paths": [ + "M384 64h640v128h-640v-128zM384 448h640v128h-640v-128zM384 832h640v128h-640v-128zM0 128c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 512c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128zM0 896c0-70.692 57.308-128 128-128 70.692 0 128 57.308 128 128 0 70.692-57.308 128-128 128-70.692 0-128-57.308-128-128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "bullist" + ], + "defaultCode": 57354, + "grid": 16 + }, + { + "paths": [ + "M64 0h384v64h-384zM576 0h384v64h-384zM952 320h-56v-256h-256v256h-256v-256h-256v256h-56c-39.6 0-72 32.4-72 72v560c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-376h128v376c0 39.6 32.4 72 72 72h304c39.6 0 72-32.4 72-72v-560c0-39.6-32.4-72-72-72zM348 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32zM544 512h-64c-17.6 0-32-14.4-32-32s14.4-32 32-32h64c17.6 0 32 14.4 32 32s-14.4 32-32 32zM924 960h-248c-19.8 0-36-14.4-36-32s16.2-32 36-32h248c19.8 0 36 14.4 36 32s-16.2 32-36 32z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "searchreplace" + ], + "defaultCode": 57353, + "grid": 16 + }, + { + "paths": [ + "M832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h448l192-192v-512h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM832 933.49v-101.49h101.49l-101.49 101.49zM960 768h-192v192h-320v-576h512v384z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "paste" + ], + "defaultCode": 57352, + "grid": 16 + }, + { + "paths": [ + "M890.774 709.154c-45.654-45.556-103.728-69.072-157.946-69.072h-29.112l-63.904-64.008 255.62-256.038c63.904-64.010 63.904-192.028 0-256.038l-383.43 384.056-383.432-384.054c-63.904 64.008-63.904 192.028 0 256.038l255.622 256.034-63.906 64.008h-29.114c-54.22 0-112.292 23.518-157.948 69.076-81.622 81.442-92.65 202.484-24.63 270.35 29.97 29.902 70.288 44.494 112.996 44.494 54.216 0 112.29-23.514 157.946-69.072 53.584-53.464 76.742-124 67.084-185.348l65.384-65.488 65.376 65.488c-9.656 61.348 13.506 131.882 67.084 185.348 45.662 45.558 103.732 69.072 157.948 69.072 42.708 0 83.024-14.592 112.994-44.496 68.020-67.866 56.988-188.908-24.632-270.35zM353.024 845.538c-7.698 17.882-19.010 34.346-33.626 48.926-14.636 14.604-31.172 25.918-49.148 33.624-16.132 6.916-32.96 10.568-48.662 10.568-15.146 0-36.612-3.402-52.862-19.612-16.136-16.104-19.52-37.318-19.52-52.288 0-15.542 3.642-32.21 10.526-48.212 7.7-17.884 19.014-34.346 33.626-48.926 14.634-14.606 31.172-25.914 49.15-33.624 16.134-6.914 32.96-10.568 48.664-10.568 15.146 0 36.612 3.4 52.858 19.614 16.134 16.098 19.522 37.316 19.522 52.284 0.002 15.542-3.638 32.216-10.528 48.214zM512.004 666.596c-49.914 0-90.376-40.532-90.376-90.526 0-49.992 40.462-90.52 90.376-90.52s90.372 40.528 90.372 90.52c0 49.998-40.46 90.526-90.372 90.526zM855.272 919.042c-16.248 16.208-37.712 19.612-52.86 19.612-15.704 0-32.53-3.652-48.666-10.568-17.972-7.706-34.508-19.020-49.142-33.624-14.614-14.58-25.926-31.042-33.626-48.926-6.886-15.998-10.526-32.672-10.526-48.212 0-14.966 3.384-36.188 19.52-52.286 16.246-16.208 37.712-19.614 52.86-19.614 15.7 0 32.53 3.654 48.66 10.568 17.978 7.708 34.516 19.018 49.15 33.624 14.61 14.58 25.924 31.042 33.626 48.926 6.884 15.998 10.526 32.67 10.526 48.212-0.002 14.97-3.39 36.186-19.522 52.288z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "cut" + ], + "defaultCode": 57351, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM0 256h1024v128h-1024zM0 448h1024v128h-1024zM0 640h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "alignjustify" + ], + "defaultCode": 57350, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM384 256h640v128h-640zM384 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "alignright" + ], + "defaultCode": 57349, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM192 256h640v128h-640zM192 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "aligncenter" + ], + "defaultCode": 57348, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v128h-1024zM0 256h640v128h-640zM0 640h640v128h-640zM0 448h1024v128h-1024zM0 832h1024v128h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "alignleft" + ], + "defaultCode": 57347, + "grid": 16 + }, + { + "paths": [ + "M1024 592.458v-160.916l-159.144-15.914c-8.186-30.042-20.088-58.548-35.21-84.98l104.596-127.838-113.052-113.050-127.836 104.596c-26.434-15.124-54.942-27.026-84.982-35.208l-15.914-159.148h-160.916l-15.914 159.146c-30.042 8.186-58.548 20.086-84.98 35.208l-127.838-104.594-113.050 113.050 104.596 127.836c-15.124 26.432-27.026 54.94-35.21 84.98l-159.146 15.916v160.916l159.146 15.914c8.186 30.042 20.086 58.548 35.21 84.982l-104.596 127.836 113.048 113.048 127.838-104.596c26.432 15.124 54.94 27.028 84.98 35.21l15.916 159.148h160.916l15.914-159.144c30.042-8.186 58.548-20.088 84.982-35.21l127.836 104.596 113.048-113.048-104.596-127.836c15.124-26.434 27.028-54.942 35.21-84.98l159.148-15.92zM704 576l-128 128h-128l-128-128v-128l128-128h128l128 128v128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "fullpage" + ], + "defaultCode": 57346, + "grid": 16 + }, + { + "paths": [ + "M903.432 199.43l-142.864-142.862c-31.112-31.112-92.568-56.568-136.568-56.568h-480c-44 0-80 36-80 80v864c0 44 36 80 80 80h736c44 0 80-36 80-80v-608c0-44-25.456-105.458-56.568-136.57zM858.178 244.686c3.13 3.13 6.25 6.974 9.28 11.314h-163.458v-163.456c4.34 3.030 8.184 6.15 11.314 9.28l142.864 142.862zM896 944c0 8.672-7.328 16-16 16h-736c-8.672 0-16-7.328-16-16v-864c0-8.672 7.328-16 16-16h480c4.832 0 10.254 0.61 16 1.704v254.296h254.296c1.094 5.746 1.704 11.166 1.704 16v608z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "newdocument" + ], + "defaultCode": 57345, + "grid": 16 + }, + { + "paths": [ + "M896 0h-896v1024h1024v-896l-128-128zM512 128h128v256h-128v-256zM896 896h-768v-768h64v320h576v-320h74.978l53.022 53.018v714.982z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "save" + ], + "defaultCode": 57344, + "grid": 16 + }, + { + "paths": [ + "M128 544l288 288 480-480-128-128-352 352-160-160z" + ], + "attrs": [], + "isMulticolor": false, + "defaultCode": 57395, + "grid": 16 + }, + { + "paths": [ + "M512 512v128h32l32-64h64v256h-48v64h224v-64h-48v-256h64l32 64h32v-128zM832 320v-160c0-17.6-14.4-32-32-32h-224v-64c0-35.2-28.8-64-64-64h-128c-35.204 0-64 28.8-64 64v64h-224c-17.602 0-32 14.4-32 32v640c0 17.6 14.398 32 32 32h288v192h640v-704h-192zM384 64.114c0.034-0.038 0.072-0.078 0.114-0.114h127.768c0.042 0.036 0.082 0.076 0.118 0.114l0 63.886h-128v-63.886zM192 256v-64h512v64h-512zM960 960h-512v-576h512v576z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "pastetext" + ], + "defaultCode": 57397, + "grid": 16 + }, + { + "paths": [ + "M1024 0v384l-138.26-138.26-212 212-107.48-107.48 212-212-138.26-138.26zM245.74 138.26l212 212-107.48 107.48-212-212-138.26 138.26v-384h384zM885.74 778.26l138.26-138.26v384h-384l138.26-138.26-212-212 107.48-107.48zM457.74 673.74l-212 212 138.26 138.26h-384v-384l138.26 138.26 212-212z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "fullscreen" + ], + "defaultCode": 57379, + "grid": 16 + }, + { + "paths": [ + "M256 64h512v128h-512zM960 256h-896c-35.2 0-64 28.8-64 64v320c0 35.2 28.796 64 64 64h192v256h512v-256h192c35.2 0 64-28.8 64-64v-320c0-35.2-28.8-64-64-64zM704 896h-384v-320h384v320zM974.4 352c0 25.626-20.774 46.4-46.398 46.4-25.626 0-46.402-20.774-46.402-46.4s20.776-46.4 46.402-46.4c25.626 0 46.398 20.774 46.398 46.4z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "print" + ], + "defaultCode": 57378, + "grid": 16 + }, + { + "paths": [ + "M512 0c-282.77 0-512 229.228-512 512 0 282.77 229.228 512 512 512 282.77 0 512-229.23 512-512 0-282.772-229.23-512-512-512zM512 944c-238.586 0-432-193.412-432-432 0-238.586 193.414-432 432-432 238.59 0 432 193.414 432 432 0 238.588-193.41 432-432 432zM384 320c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zM768 320c0 35.346-28.652 64-64 64s-64-28.654-64-64 28.652-64 64-64 64 28.654 64 64zM512 652c141.074 0 262.688-57.532 318.462-123.192-20.872 171.22-156.288 303.192-318.462 303.192-162.118 0-297.498-132.026-318.444-303.168 55.786 65.646 177.386 123.168 318.444 123.168z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "emoticons" + ], + "defaultCode": 57377, + "grid": 16 + }, + { + "paths": [ + "M225 448c123.712 0 224 100.29 224 224 0 123.712-100.288 224-224 224-123.712 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.634 11.636-22.252 24.016-31.83 37.020 11.438-1.8 23.16-2.746 35.104-2.746zM801 448c123.71 0 224 100.29 224 224 0 123.712-100.29 224-224 224-123.71 0-224-100.288-224-224l-1-32c0-247.424 200.576-448 448-448v128c-85.474 0-165.834 33.286-226.274 93.726-11.636 11.636-22.254 24.016-31.832 37.020 11.44-1.8 23.16-2.746 35.106-2.746z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "blockquote" + ], + "defaultCode": 57358, + "grid": 16 + }, + { + "paths": [ + "M761.862 1024c113.726-206.032 132.888-520.306-313.862-509.824v253.824l-384-384 384-384v248.372c534.962-13.942 594.57 472.214 313.862 775.628z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "undo" + ], + "defaultCode": 57359, + "grid": 16 + }, + { + "paths": [ + "M576 248.372v-248.372l384 384-384 384v-253.824c-446.75-10.482-427.588 303.792-313.86 509.824-280.712-303.414-221.1-789.57 313.86-775.628z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "redo" + ], + "defaultCode": 57360, + "grid": 16 + }, + { + "paths": [ + "M199.995 381.998v-104.002c0-43.078 34.923-78.001 78.001-78.001h26v-104.002h-26c-100.518 0-182.003 81.485-182.003 182.003v104.002c0 43.078-34.923 78.001-78.001 78.001h-26v104.002h26c43.078 0 78.001 34.923 78.001 78.001v104.002c0 100.515 81.485 182.003 182.003 182.003h26v-104.002h-26c-43.078 0-78.001-34.923-78.001-78.001v-104.002c0-50.931-20.928-96.966-54.646-130.002 33.716-33.036 54.646-79.072 54.646-130.002z", + "M824.005 381.998v-104.002c0-43.078-34.923-78.001-78.001-78.001h-26v-104.002h26c100.515 0 182.003 81.485 182.003 182.003v104.002c0 43.078 34.923 78.001 78.001 78.001h26v104.002h-26c-43.078 0-78.001 34.923-78.001 78.001v104.002c0 100.515-81.488 182.003-182.003 182.003h-26v-104.002h26c43.078 0 78.001-34.923 78.001-78.001v-104.002c0-50.931 20.928-96.966 54.646-130.002-33.716-33.036-54.646-79.072-54.646-130.002z", + "M616.002 356.715c0 57.439-46.562 104.002-104.002 104.002s-104.002-46.562-104.002-104.002c0-57.439 46.562-104.002 104.002-104.002s104.002 46.562 104.002 104.002z", + "M512 511.283c-57.439 0-104.002 46.562-104.002 104.002 0 55.845 26 100.115 105.752 103.88-23.719 33.417-59.441 46.612-105.752 50.944v61.751c0 0 208.003 18.144 208.003-216.577-0.202-57.441-46.56-104.004-104.002-104.004z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "tags": [ + "code", + "semicolon", + "curly-braces" + ], + "grid": 16, + "defaultCode": 58883 + }, + { + "paths": [ + "M864.626 473.162c-65.754-183.44-205.11-348.15-352.626-473.162-147.516 125.012-286.87 289.722-352.626 473.162-40.664 113.436-44.682 236.562 12.584 345.4 65.846 125.14 198.632 205.438 340.042 205.438s274.196-80.298 340.040-205.44c57.27-108.838 53.25-231.962 12.586-345.398zM738.764 758.956c-43.802 83.252-132.812 137.044-226.764 137.044-55.12 0-108.524-18.536-152.112-50.652 13.242 1.724 26.632 2.652 40.112 2.652 117.426 0 228.668-67.214 283.402-171.242 44.878-85.292 40.978-173.848 23.882-244.338 14.558 28.15 26.906 56.198 36.848 83.932 22.606 63.062 40.024 156.34-5.368 242.604z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "drop" + ], + "defaultCode": 57381, + "grid": 16 + }, + { + "paths": [ + "M768 128h-512l-256 256 512 576 512-576-256-256zM512 778.666v-2.666h-2.37l-14.222-16h16.592v-16h-30.814l-14.222-16h45.036v-16h-59.258l-14.222-16h73.48v-16h-87.704l-14.222-16h101.926v-16h-116.148l-14.222-16h130.37v-16h-144.592l-14.222-16h158.814v-16h-173.038l-14.222-16h187.26v-16h-201.482l-14.222-16h215.704v-16h-229.926l-14.222-16h244.148v-16h-258.372l-14.222-16h272.594v-16h-286.816l-14.222-16h301.038v-16h-315.26l-14.222-16h329.482v-16h-343.706l-7.344-8.262 139.072-139.072h211.978v3.334h215.314l16 16h-231.314v16h247.314l16 16h-263.314v16h279.314l16 16h-295.314v16h311.314l16 16h-327.314v16h343.312l7.738 7.738-351.050 394.928z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "diamond", + "gem", + "jewelry", + "dualtone" + ], + "defaultCode": 57889, + "grid": 16 + }, + { + "paths": [ + "M512 0c-282.77 0-512 229.23-512 512s229.23 512 512 512 512-229.23 512-512-229.23-512-512-512zM128 512c0-212.078 171.922-384 384-384v768c-212.078 0-384-171.922-384-384z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "contrast" + ], + "defaultCode": 58104, + "grid": 16 + }, + { + "paths": [ + "M893.254 221.254l-90.508-90.508-290.746 290.744-290.746-290.744-90.508 90.506 290.746 290.748-290.746 290.746 90.508 90.508 290.746-290.746 290.746 290.746 90.508-90.51-290.744-290.744z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "cross", + "cancel", + "close", + "quit", + "remove" + ], + "defaultCode": 60778, + "grid": 16 + }, + { + "paths": [ + "M0 64v384c0 35.346 28.654 64 64 64s64-28.654 64-64v-229.488l677.488 677.488h-229.488c-35.346 0-64 28.652-64 64 0 35.346 28.654 64 64 64h384c35.346 0 64-28.654 64-64v-384c0-35.348-28.654-64-64-64s-64 28.652-64 64v229.488l-677.488-677.488h229.488c35.346 0 64-28.654 64-64s-28.652-64-64-64h-384c-35.346 0-64 28.654-64 64z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "arrow-resize", + "diagonal" + ], + "defaultCode": 58329, + "grid": 16 + }, + { + "paths": [ + "M483.2 640l-147.2-336c-9.6-25.6-19.2-44.8-25.6-54.4s-16-12.8-25.6-12.8c-16 0-25.6 3.2-28.8 3.2v-70.4c9.6-6.4 25.6-6.4 38.4-9.6 32 0 57.6 6.4 73.6 22.4 6.4 6.4 12.8 16 19.2 25.6 6.4 12.8 12.8 25.6 16 41.6l121.6 291.2 150.4-371.2h92.8l-198.4 470.4v224h-86.4v-224z", + "M0 0v1024h1024v-1024h-1024zM960 960h-896v-896h896v896z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "tags": [ + "gamma2" + ], + "grid": 16, + "defaultCode": 58880 + }, + { + "paths": [ + "M627.2 880h-579.2v-396.8h579.2v396.8zM553.6 553.6h-435.2v256h435.2v-256z", + "M259.2 227.2c176-176 457.6-176 633.6 0s176 457.6 0 633.6c-121.6 121.6-297.6 160-454.4 108.8 121.6 28.8 262.4-9.6 361.6-108.8 150.4-150.4 160-384 22.4-521.6-121.6-121.6-320-128-470.4-19.2l86.4 86.4-294.4 22.4 22.4-294.4 92.8 92.8z" + ], + "attrs": [ + {}, + {} + ], + "isMulticolor": false, + "tags": [ + "orientation" + ], + "grid": 16, + "defaultCode": 58881 + }, + { + "paths": [ + "M768 544v352h-640v-640h352l128-128h-512c-52.8 0-96 43.2-96 96v704c0 52.8 43.2 96 96 96h704c52.798 0 96-43.2 96-96v-512l-128 128z", + "M864 0l-608 608v160h160l608-608c0-96-64-160-160-160zM416 640l-48-48 480-480 48 48-480 480z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "pencil", + "write", + "edit" + ], + "defaultCode": 57361, + "grid": 16 + }, + { + "paths": [ + "M607.998 128.014c-212.070 0-383.986 171.916-383.986 383.986h-191.994l246.848 246.848 246.848-246.848h-191.994c0-151.478 122.798-274.276 274.276-274.276 151.48 0 274.276 122.798 274.276 274.276 0 151.48-122.796 274.276-274.276 274.276v109.71c212.070 0 383.986-171.916 383.986-383.986s-171.916-383.986-383.986-383.986z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "tags": [ + "rotate-ccw", + "ccw", + "arrow" + ], + "defaultCode": 60072, + "grid": 16 + }, + { + "paths": [ + "M416.002 128.014c212.070 0 383.986 171.916 383.986 383.986h191.994l-246.848 246.848-246.848-246.848h191.994c0-151.478-122.798-274.276-274.276-274.276-151.48 0-274.276 122.798-274.276 274.276 0 151.48 122.796 274.276 274.276 274.276v109.71c-212.070 0-383.986-171.916-383.986-383.986s171.916-383.986 383.986-383.986z" + ], + "width": 1024, + "attrs": [], + "isMulticolor": false, + "tags": [ + "rotate-cw", + "cw", + "arrow" + ], + "defaultCode": 60073, + "grid": 16 + }, + { + "paths": [ + "M0 384h1024v-384zM1024 960v-384h-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "flip-vertical", + "mirror" + ], + "defaultCode": 57663, + "grid": 16 + }, + { + "paths": [ + "M576 0v1024h384zM0 1024h384v-1024z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "flip-horizontal", + "mirror" + ], + "defaultCode": 57664, + "grid": 16 + }, + { + "paths": [ + "M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384 0 212.078 171.922 384 384 384 95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256zM448 192h-128v128h-128v128h128v128h128v-128h128v-128h-128z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "zoom-in", + "magnifier", + "magnifier-plus", + "enlarge" + ], + "defaultCode": 57788, + "grid": 16 + }, + { + "paths": [ + "M992.262 871.396l-242.552-206.294c-25.074-22.566-51.89-32.926-73.552-31.926 57.256-67.068 91.842-154.078 91.842-249.176 0-212.078-171.922-384-384-384-212.076 0-384 171.922-384 384 0 212.078 171.922 384 384 384 95.098 0 182.108-34.586 249.176-91.844-1 21.662 9.36 48.478 31.926 73.552l206.294 242.552c35.322 39.246 93.022 42.554 128.22 7.356s31.892-92.898-7.354-128.22zM384 640c-141.384 0-256-114.616-256-256s114.616-256 256-256 256 114.616 256 256-114.614 256-256 256zM192 320h384v128h-384z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "zoom-out", + "magnifier", + "magnifier-minus", + "reduce" + ], + "defaultCode": 57789, + "grid": 16 + }, + { + "paths": [ + "M64 192h896v192h-896zM64 448h896v192h-896zM64 704h896v192h-896z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "menu", + "list", + "options", + "lines", + "hamburger" + ], + "defaultCode": 58031, + "grid": 16 + }, + { + "paths": [ + "M512 832c35.346 0 64 28.654 64 64v64c0 35.346-28.654 64-64 64s-64-28.654-64-64v-64c0-35.346 28.654-64 64-64zM512 192c-35.346 0-64-28.654-64-64v-64c0-35.346 28.654-64 64-64s64 28.654 64 64v64c0 35.346-28.654 64-64 64zM960 448c35.346 0 64 28.654 64 64s-28.654 64-64 64h-64c-35.348 0-64-28.654-64-64s28.652-64 64-64h64zM192 512c0 35.346-28.654 64-64 64h-64c-35.346 0-64-28.654-64-64s28.654-64 64-64h64c35.346 0 64 28.654 64 64zM828.784 738.274l45.256 45.258c24.992 24.99 24.992 65.516 0 90.508-24.994 24.992-65.518 24.992-90.51 0l-45.256-45.256c-24.992-24.99-24.992-65.516 0-90.51 24.994-24.992 65.518-24.992 90.51-0zM195.216 285.726l-45.256-45.256c-24.994-24.994-24.994-65.516 0-90.51s65.516-24.994 90.51 0l45.256 45.256c24.994 24.994 24.994 65.516 0 90.51s-65.516 24.994-90.51 0zM828.784 285.726c-24.992 24.992-65.516 24.992-90.51 0-24.992-24.994-24.992-65.516 0-90.51l45.256-45.254c24.992-24.994 65.516-24.994 90.51 0 24.992 24.994 24.992 65.516 0 90.51l-45.256 45.254zM195.216 738.274c24.992-24.992 65.518-24.992 90.508 0 24.994 24.994 24.994 65.52 0 90.51l-45.254 45.256c-24.994 24.992-65.516 24.992-90.51 0s-24.994-65.518 0-90.508l45.256-45.258z", + "M512 256c-141.384 0-256 114.616-256 256 0 141.382 114.616 256 256 256 141.382 0 256-114.618 256-256 0-141.384-114.616-256-256-256zM512 672c-88.366 0-160-71.634-160-160s71.634-160 160-160 160 71.634 160 160-71.634 160-160 160z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "sun", + "weather" + ], + "defaultCode": 58094, + "grid": 16 + }, + { + "paths": [ + "M715.812 64.48c-60.25-34.784-124.618-55.904-189.572-64.48 122.936 160.082 144.768 384.762 37.574 570.42-107.2 185.67-312.688 279.112-512.788 252.68 39.898 51.958 90.376 97.146 150.628 131.934 245.908 141.974 560.37 57.72 702.344-188.198 141.988-245.924 57.732-560.372-188.186-702.356z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "moon", + "night", + "sleep" + ], + "defaultCode": 58105, + "grid": 16 + }, + { + "paths": [ + "M672 1024l192-192-320-320 320-320-192-192-512 512z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "arrow-left", + "left", + "previous" + ], + "defaultCode": 58291, + "grid": 16 + }, + { + "paths": [ + "M832 256l192-192-64-64-192 192h-448v-192h-128v192h-192v128h192v512h512v192h128v-192h192v-128h-192v-448zM320 320h320l-320 320v-320zM384 704l320-320v320h-320z" + ], + "attrs": [], + "isMulticolor": false, + "tags": [ + "crop", + "resize", + "cut" + ], + "defaultCode": 58428, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablerowprops" + ], + "defaultCode": 58880, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM640 704v192h-256v-192h256zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192zM704 896v-192h256v192h-256z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablecellprops" + ], + "defaultCode": 58881, + "grid": 16 + }, + { + "paths": [ + "M0 64v832h1024v-832h-1024zM320 832h-256v-192h256v192zM320 576h-256v-192h256v192zM640 832h-256v-192h256v192zM640 576h-256v-192h256v192zM960 832h-256v-192h256v192zM960 576h-256v-192h256v192zM960 320h-896v-192h896v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "table2" + ], + "defaultCode": 58882, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM384 896v-448h576v448h-576zM640 192v192h-256v-192h256zM320 192v192h-256v-192h256zM64 448h256v192h-256v-192zM704 384v-192h256v192h-256zM64 704h256v192h-256v-192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablemergecells" + ], + "defaultCode": 58884, + "grid": 16 + }, + { + "paths": [ + "M320 771.2v-182.4h-182.4v-89.6h182.4v-182.4h86.4v182.4h185.6v89.6h-185.6v182.4zM0 64v896h1024v-896h-1024zM640 896h-576v-704h576v704zM960 896h-256v-192h256v192zM960 640h-256v-192h256v192zM960 384h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertcolbefore" + ], + "defaultCode": 58885, + "grid": 16 + }, + { + "paths": [ + "M704 316.8v182.4h182.4v89.6h-182.4v182.4h-86.4v-182.4h-185.6v-89.6h185.6v-182.4zM0 64v896h1024v-896h-1024zM320 896h-256v-192h256v192zM320 640h-256v-192h256v192zM320 384h-256v-192h256v192zM960 896h-576v-704h576v704z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertcolafter" + ], + "defaultCode": 58886, + "grid": 16 + }, + { + "paths": [ + "M691.2 451.2h-144v144h-70.4v-144h-144v-67.2h144v-144h70.4v144h144zM0 64v896h1024v-896h-1024zM320 896h-256v-192h256v192zM640 896h-256v-192h256v192zM960 896h-256v-192h256v192zM960 643.2h-896v-451.2h896v451.2z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertrowbefore" + ], + "defaultCode": 58887, + "grid": 16 + }, + { + "paths": [ + "M332.8 636.8h144v-144h70.4v144h144v67.2h-144v144h-70.4v-144h-144zM0 64v896h1024v-896h-1024zM384 192h256v192h-256v-192zM64 192h256v192h-256v-192zM960 896h-896v-451.2h896v451.2zM960 384h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableinsertrowafter" + ], + "defaultCode": 58888, + "grid": 16 + }, + { + "paths": [ + "M0 64v896h1024v-896h-1024zM384 192h256v192h-256v-192zM320 896h-256v-192h256v192zM320 640h-256v-192h256v192zM320 384h-256v-192h256v192zM960 896h-576v-448h576v448zM960 384h-256v-192h256v192zM864 803.2l-60.8 60.8-131.2-131.2-131.2 131.2-60.8-60.8 131.2-131.2-131.2-131.2 60.8-60.8 131.2 131.2 131.2-131.2 60.8 60.8-131.2 131.2z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tablesplitcells" + ], + "defaultCode": 58890, + "grid": 16 + }, + { + "paths": [ + "M0 64h1024v896h-1024v-896zM60.8 192v704h899.2v-704h-899.2zM809.6 748.8l-96 96-204.8-204.8-204.8 204.8-96-96 204.8-204.8-204.8-204.8 96-96 204.8 204.8 204.8-204.8 96 96-204.8 204.8z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tabledelete" + ], + "defaultCode": 58891, + "grid": 16 + }, + { + "paths": [ + "M0 64v832h1024v-832h-1024zM640 832h-256v-192h256v192zM640 576h-256v-192h256v192zM640 320h-256v-192h256v192zM960 832h-256v-192h256v192zM960 576h-256v-192h256v192zM960 320h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tableleftheader" + ], + "defaultCode": 58922, + "grid": 16 + }, + { + "paths": [ + "M0 64v832h1024v-832h-1024zM320 832h-256v-192h256v192zM320 576h-256v-192h256v192zM640 832h-256v-192h256v192zM640 576h-256v-192h256v192zM960 832h-256v-192h256v192zM960 576h-256v-192h256v192z" + ], + "attrs": [ + { + "fill": "rgb(0, 0, 0)" + } + ], + "isMulticolor": false, + "tags": [ + "tabletopheader" + ], + "defaultCode": 58923, + "grid": 16 + }, + { + "paths": [ + "M886.4 387.2l-156.8 156.8 160 160-76.8 76.8-160-160-156.8 156.8-76.8-73.6 160-160-163.2-163.2 76.8-76.8 163.2 163.2 156.8-156.8 73.6 76.8zM0 64v896h1024v-896h-1024zM960 384h-22.4l-64 64h86.4v192h-89.6l64 64h25.6v192h-896v-192h310.4l64-64h-374.4v-192h371.2l-64-64h-307.2v-192h896v192z" + ], + "attrs": [], + "isMulticolor": false, + "grid": 16, + "tags": [ + "tabledeleterow" + ], + "defaultCode": 59392 + }, + { + "paths": [ + "M320 460.8l64 64v12.8l-64 64v-140.8zM640 537.6l64 64v-137.6l-64 64v9.6zM1024 64v896h-1024v-896h1024zM960 192h-256v51.2l-12.8-12.8-51.2 51.2v-89.6h-256v89.6l-51.2-51.2-12.8 12.8v-51.2h-256v704h256v-118.4l35.2 35.2 28.8-28.8v115.2h256v-115.2l48 48 16-16v83.2h256v-707.2zM672 297.6l-156.8 156.8-163.2-163.2-76.8 76.8 163.2 163.2-156.8 156.8 76.8 76.8 156.8-156.8 160 160 76.8-76.8-160-160 156.8-156.8-76.8-76.8z" + ], + "attrs": [], + "isMulticolor": false, + "grid": 16, + "tags": [ + "tabledeletecol" + ], + "defaultCode": 59393 + } + ], "preferences": { "showGlyphs": true, "showQuickUse": true, + "showQuickUse2": true, + "showSVGs": true, "fontPref": { "prefix": "icon-", "metadata": { @@ -1178,14 +1948,25 @@ "minorVersion": 0 }, "metrics": { - "emSize": 512, + "emSize": 1024, "baseline": 6.25, "whitespace": 50 - } + }, + "resetPoint": 58880, + "embed": false + }, + "imagePref": { + "prefix": "icon-", + "png": true, + "useClassSelector": true, + "color": 4473924, + "bgColor": 16777215 }, - "imagePref": {}, "historySize": 100, + "gridSize": 16, + "showGrid": true, "showCodes": true, "showLiga": false - } + }, + "IcoMoonType": "icon-set" } \ No newline at end of file diff --git a/plone/app/widgets/static/widgets-tinymce-font-tinymce.svg b/plone/app/widgets/static/widgets-tinymce-font-tinymce.svg index feb9ba38..d7004a97 100644 --- a/plone/app/widgets/static/widgets-tinymce-font-tinymce.svg +++ b/plone/app/widgets/static/widgets-tinymce-font-tinymce.svg @@ -3,61 +3,96 @@ Generated by IcoMoon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plone/app/widgets/static/widgets-tinymce-font-tinymce.ttf b/plone/app/widgets/static/widgets-tinymce-font-tinymce.ttf index 58103c2b6287fa209bf1e62c7ea107fd65a351f1..ab4487febe5b98a161dcd2daa9b80d03de7c0fd8 100644 GIT binary patch literal 14144 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 J6}@lx{2vuDq_zM6 diff --git a/plone/app/widgets/static/widgets-tinymce-font-tinymce.woff b/plone/app/widgets/static/widgets-tinymce-font-tinymce.woff index ad1ae396a88239278653cf63ac3630b6b8360102..171a2a2df1d3bd598333f03ae817ce6ccf4d92bf 100644 GIT binary patch literal 14220 zcmcJ0dvsjInP=6#-F?-Py49_IO0wi`HQg=i(U#P@YT1_Lvg`=kvWzhJfrEpLE&RX_ z;Rg^VWbfE#Ghj$yGlZG2W~>>*+3Y5h+1+s1v%qBTnK0QT8|JWCPKKFm<|rZKkOcBa zb|#Rl`f7h)-Fu~$kWG?3d)4)Ref8B>Uwz+Kr3Y>q9c7&1D?QF?WGL)3#g~4!+_tut zF0)XRP~ea*w|J z$mOF`2M;q=97K6PIqh%epE!z45l^+jPrYJ5L`}u>aId3wd!XZcE6d`>n>B~_NTZJ-;uYymt zRxuCz2EqdBc~}s6soAz!{aVen;I)po`A?!h>HFz_`01B^*8j7A_s;QmUVG<_caOho zzWb}6KR92WpGQ0NKg(v@ud!=^Ywd3{S^o>Dugm)1URIyazm@W&)W&s<1C7neZHZDM z8GAnVTx?bJOOc;O9*tbA|9SoA>ko$Ca-fp~{DvN991zvXS=mh#;CY=yh4f_Rjq`w+ zdDFvyMK7ynQ6MrMPKWc}VmK2k!@~^AFbr;#nNY--u9|a9MaDeFF9UkZ z2s_vP|h3r}S97QUKCqCS-7klT;a zcp_G8;jys#2cJn!q^(qX?b@_5n_invcBvlas_Ijo$oaK$O7r_QKI^ISSez@r`b-iv z=4NE&$@E0Bp!n3Qibs8-{1K|CPHKM6Ez~a0Fkr-)b2nQD=yZUWFXgoYU&}LEkZXA@ z5#)6|mH>!aqC_wjOT)aBDCLLwMxNC&dA(Fj#60YZufFE!eMY1s5t<1lIwHn>M{DYR zSFV$7nZOr5KK&b1uIM9VH>2gmj$t5M)c}??aF99{VJwo4$-gjs*P+rJQ;f1fj^gC7 zUIGhdaOvN$zl775>V&er>2_#dugB}c=XLtwmHlxE9d&B`E->1&Ui2l5E@W;f=PWR9 zVMx@S1a1By@Yl=svcv3A#69T zBtGl+t>33`UNpDe-Z~U4#y6zeZp*Z_YMVA`t!iqvzEDj~L$Eek>!hz_bv;Xt??p~cLv1iwQxitLDp@008*Hel3CZ;TY0U`El3TWJ zNm|(HGBVFZrgi8_F&@vfwjC;rj1&&FwPxb+;+3IC0}a&+J=I{u%ARX#8*0Cz=V;)Z zJ|_VS*HkwIkX_>dY6G66v`ve`*_W$Wo^`TrR-)b6m+P>-R$nua=x~u(x)jdv0p3%D zi)D082Vrr&sFgCb3Bsy~1ZH!MMq_R^5QzkMikqfs3BxcIW?^GYO&O+zxMIu%BBC*u zYea*x5r~+`ZVfCD~%aA2O%-#|-ydkgPwX*cYky`}uz`*pEco%CK6G)?L8 zPb_Aun1&!0Z9BAiU3T-J^$3Lux+@!z0JRN7xar0$Aj8hX!Yt0+!~8fgn^+qIpQoLy z6T7iJzCh~^E4SylJh8at?QK7%>tic9I$G$wA*Yyb9n1J&4Dh*hWAnr?Yi4V(uK}9N z4fElQp3x(*A}FPVSTPnuPLX18OJO36872q?jy{Fa&zxtbDF32Ye0C7-=N8oxf^hQz zejK;yf;gW0NAU*kl?-a>Xg1@6h(fH{{=>O$m^R*j)4q8)dxO5`D|=UfQj_5fWWvL7 z{I6yk0dH@M5{m|vOlv{W^L@igF(w(HHq3D(U%%`JgyF&O z7r#JU>zi+l-f~Qgzxd1)L<6MX_g;R-diM<4bDtxZpgq_9T+ao0Jdsm|c|sAi*S_$@ zfn3M2TSnjdrt*#VEo4}psb^jsKf@#MT=wF`Euj5(hYA(sH7OZUJ~gjwK(!V-BVh>#(MI0im**mo z5Awkv4sngYC$6^p zGMo6n*s1t)l={%7oCN^fU@#v*h~e^qX05IYBVDDD4q+t3pYvCH)J>sK9D`lxI+Vb7 zwf%fylTyDJzfr5_x-N7{&BfvWy=;mdV<*{t>^%E8dl;Cm#K!+O)OvBum%t*taFG1+ z8inM(|DkBQF@~SB(X{g7loMvbJSGITrKwW<-wPbVrpa%JXhPZHcp`yi{4EjvDGc!w z(-hXPiOqR z$hjbK0!xRZiUC+sDX?BdA(Uf>%u99#^;_z8=z(2qfNf?wfgK=&FhOV_9AqM{WNb^( zi}Ewi2URTrx!PMQs8U_bW?~S|d!UBt3Y&QB*x=wXnzkK&d(E-+>yNEz>+Eb>j9CwL zWH+zxj_hff98?N>BHimZXFCQbTdc>0=ACJKN@bN@P*>#_miA!xrHIA0FD-WIGphm~ zqxb&*M0CIm&}0g8O|u>Bv^`VJS#K<~wjd8dPy$PZ0(@t zS_Ew+0pYZxY9Jt@Bc9NqNhs`=&t9DF?3}*%*;^K4qA8ngBF9HtHl|v)WHMV?QyW{> z?#^U(uWjgU42GvCCZ@x|#@+@yZ||Djd-oR#`}gi%)440#eo)ViPu$kte%r)&PCwY5 z-PNfWH*LOa{rbB$-{gjdJwj8~ny*V%$uC)#+|<^#DH(`r@&4wC>FJ5){nK4ZQfe^vTX`O_AnEbv3-EZJj66>mW2K>~-w^Zpb86ECBhflui`Yj9QEo6PXep zSY|H^tWOR0>4Q3Ca_UEl-$4R|D@F7kv<*5mRbQW3n6SJPqgkkG-O z;IHBEhA1kNUaE(F!004xyTUUE1G2?v%25`|$}(oB$x@;kWfT0B6bXcALcW0ZK_S3} zZH9wZAcA44q`S+pAY;lYfS;(d;KQ~on}9_JHKaup>jf}U@Jxq?YB9xxlxP_}y9U#xNn_hKW3rSU+|^?lg0s>4cdvE1 z+}hpukCGAOyRofzO%G2zeq_UjBacrEPv5mQ_Fb^Fbi-{YjGIX=C7JeSmZDC?nK>iZlbay>QI?>*@PQfFGO3rlH&BO zYuDa-S|qz#qm1|(JZW#DQx+#I?GdkI&D#JeAxs<#7QKvp)-RbL=ncoFIR`a7*GT(; z!g)qwIuABQB2DB-^~p6_D5Kq#YvfSJv8M#o^ORkq2}Z8Uv(^Xx5G5IdhvkOwlCTD0 z17w2TQO6UYjgp65dgH_!m#q8A$9TWIWEseL6IlpVQ>NayBr9=a&MB64FTFwIX$y8t z;wP=JWUgbwYzy{mF;>KcJ2)95iaNxMjGopV)qexmGvT6Fnk@)5L$E7lfFVc&#h6q* z{ah_2xSTZbA`C+n5-;ElmI*W=QQz2Dj{*_|tjXD3pW%}V1VYpXo(xh<9fS!kCMO$n z7Lo{Zjk5;rTj(uQnXCdaN%MMSi51lB%e}` zlo~N}%!3OEFw$m&Ihn%1Z^dlIAf^lOL8y$>a@ed4VIqR|#1AOCJQLG(8_Bhk>pr4jq@oDW(ky;U>j}_3YA$X6;g~)S%e@Mrb1;S1VP*VAZ-c` z0tDFs-v|LBc=P)enreZ5gm$nQ9*#TyxKr zD_1&)hdcTAT5n%VC36PV8$FliSu*|L{=ndjVi<}U7#pyX7Q&_amDYy5dEUlPE@80txBj@+_8coSn+uGW; ztx7i8g1u^3lY_^0c6IGMHppkJ$(DgcvZ*PV7--=$WrB+KlCwSo47X^uPP!n*=|xv| zv&Fh4;%o*y0L+4F#1mwgQoh%%>)oCA4G-Vf*{vIAcJ4fLW~Yp=lv~b9Y2@Xb?$-6Y zZ%W^U-`#rOjvak{J7n~OnO;G-oN;g&MIwz&X#cqf6bw-yS;KJcG(fS`c^EfcD-7n0 zj&PS_fZsx1SgDr)=jPImK+sIuoR)WI8MCv5$JB@Q*~OtxECG(R3uz@=-shZ2eJ-BO z)!oF{qiHcv12YX% zF@;&iTohr#7R=eyR1>NbzcIl!Ey3!*APrT3zb@X#Bycj>{ISE~kQ)FC_y^e&B=1F- zcj6RMnVU}`pS9od01c?uEM*W%+JxES$9l&JN& z;aQPU~%NuPHIDK!CSxc7xCUEYBw<*417JRpkXomwB4$>jc7wS=T{x; zz+5&EO+!j8;gT~3`!8-di+Wxj*wR~e&#=NZ1CbP{I3>Dgy9I(}R}CO0d1{gHqrxcw z+YmUE1ZTo9mtQz2CbH?cg1rMGJ(@5F-WHrdZGcskmqx&EMu!S0Z<~^#rxrIz@~7let>2-|O`&4?TV0>wB%{MWYLBIunsqT9sEF^{PsBtv9Gu zM{BL`^Rrg_>@4V;p)OWx&S2Q8tb6{K>ci@KWcul3%F9B>$x4uFE|uAq|3$H}yT z5Vx;d!W&5_XUl)7Y~E(=;4fHzKl1#So*$vFaPt1&+fbOiYhQL?(AVA9b?%e@YG9A` z5Ag#N{L|K1K1v&%-z=+Aldi#4-bl5&s+e7O=`;VjudCaeTeBy@^9KMLP}>E4=Fe3V za2>}|!)74GX=#Y?$+Kb2e^vy{N1|)UA3ReByj|!&r9I8}P0k zOeP0cui4m{cW!V^XkbAL{<;@a_ zpv_o|4iGmPprUaSMq6_vg3=aE+cdsV7F(#V+k$F8*`V{461*l)EwV$zy2)UZ%Y37d zYHS?4m;6-W-ZAo<8ylOI>6P zrS(NsUonX6$k|H1t@^K^+C#>J&|!bBMsM3BR~n!0F;|2^4u4(4!*XbB*lZI6L3ty% zK45R4S36<_+~i%zfSec<>~xH;5R(O%8YETWqG+WUNz-5$CK*mi7`6=`l_AAxnLcE# zBsZf4qXn`pGFh_7NQ~Kl7{n(lSE~{~Hg0S~%$x}^TPSk12rmMMHWKnq)1j9d*llC1 z5hwOd;B2Iz>9&Hj$X3^I7eO|b#EUQPdFdtVI3Wc_C{q!O2q8%R^2Plx;-`F#a586- ziN?l=jR7BUfO+6-T{5<`n}D4Y1f-i`!b^uGhO3xz?DEq~7lcN&AyF>cgO}~G7sn+% zyew$w>x~bc(4D?BcZ@IRE-_Q#wZ#2BH$ZPy7Bi8GDiL7h`hl#a*^iZ0YE< z+i6rcT!PbD7G^ofRT|lioCUQ>Udrf+B5|G)T%IUFz5nve_{_88Ggrs2KD%x15-q%H z#>JlfqH)gP{ldD$&kE}`h}A>SQqAqM<~ZL>8vw=!Vms0!S+sIpgV3&F-{gsyrh5~* z7L!0|=~$kgvyca}OOyZ&d0{W0r3Y!a04d=f7~&*3gM>A#L!da%iUC@cOfzTQA)I8h z&jRGjJ0wu!{C|sp`1H8AB&zv85M)L%(6@hoU!YhP_h*{Vp6w3ZrhM)AWt!!)p98!#rzGc(HMzO9z%=Cj>a z3VOzjVi*H$Wg+V@LrKXhTlbX>y9!g-707i5A=kCgEfU8K5N?Bl(76|`&>&~3_8kf- z`6PLA`_@EL4>pY5dAw9Qe&<+2T}X+>8@AptrR!67Y;A}~l~CO$)1Me!vol>Ct?s;i z`%tu14b()maBVC9@kcH^aANJ+6AxVYNXNc?d)5?o^fx#6?OdN`JyW|D^a~ zz?wA`!j5P+uR>Bjrz3rj&<}RgWSaRl3Tbs!Z`Ace}XZ z$j3f5LJpTq_AuzYB0i5nZJ=Z+MStk@Ec@lJR;DC04lLGSWs3iB`M$Fz?SV%=MkLH} zyWmwH0sm-30w$0am=%Jm&E%!ZPB-A+?waf=^w*@@+RpsJ=f+yb3U_|%ub$KOWbvUp zRiiQG8~pU={^%p4M>i#_^P3xG_MQLzudd=up?%`eLsXt@3oOZbnZSvK%j>)k-ppBs z%Z5I9)n>`J31#`Tz@EoNwi))5A!*ab8)LjhPxyI>!<=A!-}?T3-fI2hevTKS`>lUe z-h#(lmlQ}`%z)oc0vBEg5hXI*DKjRdUjZ3QAdnHlnL8)gjUx2^ly0Et?HL)LowxT= z?I*)H>GO1y%LP@Q|0h~XZrE#E{-{h^NJ5B_ng3M&s6&EwQhDA^0zTrCCge&JcLrqt zWE>CbaVJLX8;>w00}p%CxG%s_q0)wgg^V<5co2gHq$Kj7sXN z;e-s~44i;V!6D7zWI2Vx&STvOyMT%JoivsGF7682r5v|Xd*Sq3bi#`WXPh`j#7F;c z(t>x?f6RV~^M902^QV==%74ZS5JUZ{`i`g3bI$XW=LPR!U#oA#_n_~qTBo){`|GO1 zRTrw>th(lp`-T6w|Ap#8^||UV)dXw0YyPa}N40IW_tbu}_Ju%gpb*#>xDfbiFdl3V zJ{f$wuDkA&b?=8Rg#J1l3hxU)6MnNkS-+?L>H42W;*r}UPer~PEkut;&FDYJ+G6Wt zJ7QmsSH&NSKb1IoVXA9V@|vpJn#~B8Ta^+6GVv}R}eqq#8t$HoH+ew(>PTYt5T~53jy2o?pj-C4W$wO0k&U%cU!eh&m>=2vUGj-eSSkgXg9W zr|$lEYTKdH<57@+KF#`x8}ikUk8}tz0ZB*)RLsFoKnEOk8;=~ek7wPC4(je%+1AzZBv$Wvy@&nP>uv}t zjywLjue<8qx^?UK>f_#9x85szASdSmhvNapuKkLQW4NyEVCP#89(-W&E!m9yvIYDVGAY-66IoTTvKYLtPxvOOUUlWnDE09h0U(IIA_6oa-O=OeU&)5_^ z>hIY!b_=tyS?nL#Ja#v`pFPBK*&}QvTf>~Jn7P@L>?!7BTUitHvt6u{^{`$xz@BGE z*sJVy_9pu$_8tqf57di=o$JP2)}JCe`#y)2|c#Pu$$My0hHbx4M6K z>#atXC8=zg&5)T*W;11Wo6K&P*+0l^mdx&y*AgG@v5MIAP*lS5LUwef7|!S(AQ0sn3#SdDPNw39GZz zu=<}r+w${UVwySr*EMt05p}6C2T@FmYD7_oJ;Zf~T@4ZG7CVu!aN&qq)R+a8mLRw` zF$lKpIoe-L`hRnCbZInQo%heYGLXN^O^WU#?xyl`aw`;@&&l0c-c3q0m3TLGc2c)O z;v}c;&Ha@D#pPDFZEf7TZL2bi=tI73>$V2aXXf)g`qwJe;UXo5mUUFuOw9^Kf!B*j+f>Pd3keXD}S1_svi+JYTV?BCGi>U(NGbyHVcAaL+t&D)Q^py*F8Q0qK3UZ2nF_11doymj6N zFL`N8qu1}%8n%<4+8VWHf3w!&_qVmR`CGMS#owfD1D|#@_&t8_wra@xwtDKl%D?`* zT0&)Aw2$_6bs?j!GAf~xva%8=;#_@_>h*3h;JuCBW>2%X#q0OA)%feQdjD1pfc|aU z{eHi;qY)%&TmAKlR_Cv2^Z9)(hJ2%keB^DY_Iea^)F#4ET~3;>%>!#nB?@xttZFYO z#ZJ7Os;a15Atx$0n)%2Bl@D|BwD~mjW-5_YxF`}Kp;?LRE@4s0xRel7E>4ltE>W#k zm4X7Q>C~Z`BCP+1O2>}T(xp7~k!l5yZiAr@N(tS;%|SQ{;gHe}NNd4Sg+)-lfwS|SqsIZR?Vd##(u@c<~UFZeJqF$z8ji{J- zCs70`$b))^N+pqn{4l65(b6eN*42W6S7%x_{}ig}5y{O7AEQ9hj2zFTaE$DDbr_ zXw{Pi1vNFb__a2+QY%(_kp8xY=IBJHdh%;cWa*`~SinirNy#7S>0ETR9nkCa4E-j> z3)G7nX{gjZ$_MRgQ(a>%)e@YK&!^0u&1-7l!=UEgW?!qa{54+FRtHZ)@L#R1 z%Afwk;lY|TYN3{f=6bkBUbW-N7T6q>`6?=8`}}-b-k-0$ww!lVc6qx9KYt(~TlV%g zy;OQYS-+l(X0b;Fc157fkCs&Ct*n%7i;C(W-CH10>zfnQ{xfW{r?(rOu1XN zM!LHrR{pxULJh*%!f)vgs~RzEmPdcB|3-~i-EM1y-?lL+0HbgvCCm}{V?=GxEBxT9 zqneB=#9(ZJs$+vS+;H>;>Ahn&NOQD7+9pjkYLlTz)Fq=j2R!v~6uCak(Q2Pc`=5S# zKepPZH&QVbZ`_ECHa<=Jm5AQy1f(2I>qM+QqLNHiv z9a0xlt~(ExJC_#I;_lqTd580kyHC&wI^KO4SNCy{C)~%uKAhXV81Cd%?3-L_zPtN z>$_Gd`obn`mSp8ryREhvkuwe1yY}As7JVxF2k(0w-Ms9<-@f_V&z23-FnxCP%?}>@ z;O3*(k>a!`rkl#Es>%s5Njr5?XM1}m9PaJ9s+Lu6^tx-^wXS*>;n(DDakp&rmu=7Q zDC{YHX74k7J^dXW{@rbzE!CAZn`o0l4HT*d@msLy&5F;W--lvNL(B>pehTb>1XI`v_zk>NVU9EMUm zq*BAL52{dmiwuY?Qrn!WK^Z(_OCD8(&W)~>3ZW*OQUpO3jV@AfG_oGnZKG>N*gCq} zEO&p|FXJR(Mq7Chv%@NQB#O9TSQdtfAAuGAC3?*}6~Bp1;9{3mz4z3;_vZJXI(6@< z{(fYq`t$Dv3#TLt%>Da=1U*F@RTt3o>C?|GxS+i6(YbTyroU(Cwrm}}^773cf2Fk; zM)xf;^uQE3h`!U6$JBgPA5YUhCovxX z&p$VA^!YS|O88HkhMQs+r_}GNd&29$$y~k?1Dvg%p||>a2dZZ-xMw!arUma-f84wN zt->?Xaad%WsmaBY+BWQzPWeKduiH44w^zZiA|xjsa`1n|@nF~-qG!~{4+nTmST$zK zCZlvT6jP)>-&|e2nKo1PcG^X|wr@v9+pB3aP8yorKy*jW>CDU}Z;XuOoaXwn9Cajf z$&$>GoE#a)p(CO>Hd#G=8gjrseL8dGjW@W?mZ+JTr*n*_IZo${jBs-Z@oxww5<~|b z$v(k3Cl4&T12qv&k%ZSqL>-m3610wz89i83V00L&Zu`ATuO=bE)m@_|KvvY@aMVf7 zazbz}8nu-~F4FM84pq<7U3#jRI(X>JonpQ~lqy`pA|_U`Wmn zoB)P|I^7br$mvHb2i!L}PDn+9NlMs)khh>U)Eb9d+;IT2CaW(B>b8iA!>-ZZSWa>x zVz+%)@FyW+cO8ts*>T7XKI*`cTb>1Dnj8^UAL<65;u`hXNIdv}t^FX=3t+#F_<{Vw z)j@vj$zhNVt`EmF)hlO*yt<=;ya-IfAZ?hkL8<2H^rc~{dio7Fz+$n>@>l4^&Vhpm z2RdJ*SLl`U7uOA}KloVZBlHM8R=$4ShLR_pHEWg6NKb`=rwYr5#5;uPvyTLaNyuZB z-8gO9LRd3A*qkcN`(8>8YIodE{LzBnq~_tfL`IOXju=yCRxes$lc$|*Yi#Tc0p~w1iFOi@_ zori)w2YL?g9Hc=y{L}%L5{FcvyK(VcddwK4gh`0RQksmd#tBt1)IH&%Fv^%5sxe-J z5-uJ;jL|zskG>=QnM*D-G)%@}e??e26>J0XwZ(HRKfb9Lj@e|K3zZP5m@6Cnj}>cR zjmSlbSqvYDGb9#r5HU18svcX4^*x3l8>4LYp6^;C}N|F;$-`e8OiB z>GSpZbB562JVgC^9#sVO`OsUq0bYdI`+4dXF05=&4~tsjxqDV0r9aa9Z@>LMy-#m1 zq`9=EVM~3r^4fLkjh}EW(6Sru_4O4;9;SzB#R_CbwAM+xTLPN$$&GwRRae8#T}o3E z-?g)$t7?a$-}An@j*5EeARX-OMMk|vw2syl6|IvRqQU8qy@NV}m^j^1iWwF1Jr@YL z9_ny*zyrK!?*ciO6Z($tYSne~e z!8eu#iTenfjL#*PUZ(U*%Z$xs?Cea_+4K0B&Kh5QOru0H3_1llz5+1|a#?G^$AP)H zPrxUf6woG?arVZuGtd9e`Saj1l-Sv6M#*&k(~Q)NF^P6YrIDGK39?riXh3{viEq+=B_THlR??~Rye|7$BiV1y_-@)S5@`DtUeZ~h1hWhgU&!AxFeb|^6iCeX$VAx{ClAi*C4dTN4B1-&Feb9{g^ zC+M;G=#!nG$FUpPD!Fp0SAZii<8&M|PRB9hbR08I$1&sdShSs$XdB0Lv30DFm9qli zuVxP;m9SFqionfaS?p$ZE4xG{`PuOjCcY1@W>4U|U_QPPmR#BZgI*0V3A_?Dt63g^ ZAIBpz*gbe?5xy=K8ILnYh3xXz{{ll7??M0o diff --git a/plone/app/widgets/static/widgets.js b/plone/app/widgets/static/widgets.js index 1b70e052..a0744e66 100644 --- a/plone/app/widgets/static/widgets.js +++ b/plone/app/widgets/static/widgets.js @@ -2131,7 +2131,7 @@ var requirejs, require, define; define("node_modules/requirejs/require.js", function(){}); /*! - * jQuery JavaScript Library v1.11.1 + * jQuery JavaScript Library v1.11.3 * http://jquery.com/ * * Includes Sizzle.js @@ -2141,7 +2141,7 @@ define("node_modules/requirejs/require.js", function(){}); * Released under the MIT license * http://jquery.org/license * - * Date: 2014-05-01T17:42Z + * Date: 2015-04-28T16:19Z */ (function( global, factory ) { @@ -2196,7 +2196,7 @@ var support = {}; var - version = "1.11.1", + version = "1.11.3", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -2401,7 +2401,8 @@ jQuery.extend({ // parseFloat NaNs numeric-cast false positives (null|true|false|"") // ...but misinterprets leading-number strings, particularly hex literals ("0x...") // subtraction forces infinities to NaN - return !jQuery.isArray( obj ) && obj - parseFloat( obj ) >= 0; + // adding 1 corrects loss of precision from parseFloat (#15100) + return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0; }, isEmptyObject: function( obj ) { @@ -2700,7 +2701,12 @@ jQuery.each("Boolean Number String Function Array Date RegExp Object Error".spli }); function isArraylike( obj ) { - var length = obj.length, + + // Support: iOS 8.2 (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = "length" in obj && obj.length, type = jQuery.type( obj ); if ( type === "function" || jQuery.isWindow( obj ) ) { @@ -2716,14 +2722,14 @@ function isArraylike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v1.10.19 + * Sizzle CSS Selector Engine v2.2.0-pre * http://sizzlejs.com/ * - * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors * Released under the MIT license * http://jquery.org/license * - * Date: 2014-04-18 + * Date: 2014-12-16 */ (function( window ) { @@ -2750,7 +2756,7 @@ var i, contains, // Instance-specific data - expando = "sizzle" + -(new Date()), + expando = "sizzle" + 1 * new Date(), preferredDoc = window.document, dirruns = 0, done = 0, @@ -2765,7 +2771,6 @@ var i, }, // General-purpose constants - strundefined = typeof undefined, MAX_NEGATIVE = 1 << 31, // Instance methods @@ -2775,12 +2780,13 @@ var i, push_native = arr.push, push = arr.push, slice = arr.slice, - // Use a stripped-down indexOf if we can't use a native one - indexOf = arr.indexOf || function( elem ) { + // Use a stripped-down indexOf as it's faster than native + // http://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { var i = 0, - len = this.length; + len = list.length; for ( ; i < len; i++ ) { - if ( this[i] === elem ) { + if ( list[i] === elem ) { return i; } } @@ -2820,6 +2826,7 @@ var i, ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), @@ -2871,6 +2878,14 @@ var i, String.fromCharCode( high + 0x10000 ) : // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); }; // Optimize for push.apply( _, NodeList ) @@ -2913,19 +2928,18 @@ function Sizzle( selector, context, results, seed ) { context = context || document; results = results || []; + nodeType = context.nodeType; - if ( !selector || typeof selector !== "string" ) { - return results; - } + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { - return []; + return results; } - if ( documentIsHTML && !seed ) { + if ( !seed && documentIsHTML ) { - // Shortcuts - if ( (match = rquickExpr.exec( selector )) ) { + // Try to shortcut find operations when possible (e.g., not under DocumentFragment) + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { // Speed-up: Sizzle("#ID") if ( (m = match[1]) ) { if ( nodeType === 9 ) { @@ -2957,7 +2971,7 @@ function Sizzle( selector, context, results, seed ) { return results; // Speed-up: Sizzle(".CLASS") - } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + } else if ( (m = match[3]) && support.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); return results; } @@ -2967,7 +2981,7 @@ function Sizzle( selector, context, results, seed ) { if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { nid = old = expando; newContext = context; - newSelector = nodeType === 9 && selector; + newSelector = nodeType !== 1 && selector; // qSA works strangely on Element-rooted queries // We can work around this by specifying an extra ID on the root @@ -3154,7 +3168,7 @@ function createPositionalPseudo( fn ) { * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value */ function testContext( context ) { - return context && typeof context.getElementsByTagName !== strundefined && context; + return context && typeof context.getElementsByTagName !== "undefined" && context; } // Expose support vars for convenience @@ -3178,9 +3192,8 @@ isXML = Sizzle.isXML = function( elem ) { * @returns {Object} Returns the current document */ setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, - doc = node ? node.ownerDocument || node : preferredDoc, - parent = doc.defaultView; + var hasCompare, parent, + doc = node ? node.ownerDocument || node : preferredDoc; // If no document and documentElement is available, return if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { @@ -3190,9 +3203,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Set our document document = doc; docElem = doc.documentElement; - - // Support tests - documentIsHTML = !isXML( doc ); + parent = doc.defaultView; // Support: IE>8 // If iframe document is assigned to "document" variable and if iframe has been reloaded, @@ -3201,21 +3212,22 @@ setDocument = Sizzle.setDocument = function( node ) { if ( parent && parent !== parent.top ) { // IE11 does not have attachEvent, so all must suffer if ( parent.addEventListener ) { - parent.addEventListener( "unload", function() { - setDocument(); - }, false ); + parent.addEventListener( "unload", unloadHandler, false ); } else if ( parent.attachEvent ) { - parent.attachEvent( "onunload", function() { - setDocument(); - }); + parent.attachEvent( "onunload", unloadHandler ); } } + /* Support tests + ---------------------------------------------------------------------- */ + documentIsHTML = !isXML( doc ); + /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) support.attributes = assert(function( div ) { div.className = "i"; return !div.getAttribute("className"); @@ -3230,17 +3242,8 @@ setDocument = Sizzle.setDocument = function( node ) { return !div.getElementsByTagName("*").length; }); - // Check if getElementsByClassName can be trusted - support.getElementsByClassName = rnative.test( doc.getElementsByClassName ) && assert(function( div ) { - div.innerHTML = "

"; - - // Support: Safari<4 - // Catch class over-caching - div.firstChild.className = "i"; - // Support: Opera<10 - // Catch gEBCN failure to find non-leading classes - return div.getElementsByClassName("i").length === 2; - }); + // Support: IE<9 + support.getElementsByClassName = rnative.test( doc.getElementsByClassName ); // Support: IE<10 // Check if getElementById returns elements by name @@ -3254,7 +3257,7 @@ setDocument = Sizzle.setDocument = function( node ) { // ID find and filter if ( support.getById ) { Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var m = context.getElementById( id ); // Check parentNode to catch when Blackberry 4.6 returns // nodes that are no longer in the document #6963 @@ -3275,7 +3278,7 @@ setDocument = Sizzle.setDocument = function( node ) { Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); return node && node.value === attrId; }; }; @@ -3284,14 +3287,20 @@ setDocument = Sizzle.setDocument = function( node ) { // Tag Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { - if ( typeof context.getElementsByTagName !== strundefined ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); } } : + function( tag, context ) { var elem, tmp = [], i = 0, + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments @@ -3309,7 +3318,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Class Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + if ( documentIsHTML ) { return context.getElementsByClassName( className ); } }; @@ -3338,13 +3347,15 @@ setDocument = Sizzle.setDocument = function( node ) { // setting a boolean content attribute, // since its presence should be enough // http://bugs.jquery.com/ticket/12359 - div.innerHTML = ""; + docElem.appendChild( div ).innerHTML = "" + + ""; // Support: IE8, Opera 11-12.16 // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( div.querySelectorAll("[msallowclip^='']").length ) { + if ( div.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } @@ -3354,12 +3365,24 @@ setDocument = Sizzle.setDocument = function( node ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } + // Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+ + if ( !div.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push("~="); + } + // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests if ( !div.querySelectorAll(":checked").length ) { rbuggyQSA.push(":checked"); } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibing-combinator selector` fails + if ( !div.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push(".#.+[+~]"); + } }); assert(function( div ) { @@ -3476,7 +3499,7 @@ setDocument = Sizzle.setDocument = function( node ) { // Maintain original order return sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; } @@ -3503,7 +3526,7 @@ setDocument = Sizzle.setDocument = function( node ) { aup ? -1 : bup ? 1 : sortInput ? - ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 0; // If the nodes are siblings, we can do a quick check @@ -3566,7 +3589,7 @@ Sizzle.matchesSelector = function( elem, expr ) { elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch(e) {} + } catch (e) {} } return Sizzle( expr, document, null, [ elem ] ).length > 0; @@ -3785,7 +3808,7 @@ Expr = Sizzle.selectors = { return pattern || (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); }); }, @@ -3807,7 +3830,7 @@ Expr = Sizzle.selectors = { operator === "^=" ? check && result.indexOf( check ) === 0 : operator === "*=" ? check && result.indexOf( check ) > -1 : operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; }; @@ -3927,7 +3950,7 @@ Expr = Sizzle.selectors = { matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf.call( seed, matched[i] ); + idx = indexOf( seed, matched[i] ); seed[ idx ] = !( matches[ idx ] = matched[i] ); } }) : @@ -3966,6 +3989,8 @@ Expr = Sizzle.selectors = { function( elem, context, xml ) { input[0] = elem; matcher( input, null, xml, results ); + // Don't keep the element (issue #299) + input[0] = null; return !results.pop(); }; }), @@ -3977,6 +4002,7 @@ Expr = Sizzle.selectors = { }), "contains": markFunction(function( text ) { + text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; @@ -4398,7 +4424,7 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS i = matcherOut.length; while ( i-- ) { if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { seed[temp] = !(results[temp] = elem); } @@ -4433,13 +4459,16 @@ function matcherFromTokens( tokens ) { return elem === checkContext; }, implicitRelative, true ), matchAnyContext = addCombinator( function( elem ) { - return indexOf.call( checkContext, elem ) > -1; + return indexOf( checkContext, elem ) > -1; }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { - return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); + // Avoid hanging onto element (issue #299) + checkContext = null; + return ret; } ]; for ( ; i < len; i++ ) { @@ -4689,7 +4718,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // Sort stability support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; -// Support: Chrome<14 +// Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function support.detectDuplicates = !!hasDuplicate; @@ -8247,7 +8276,14 @@ var getStyles, curCSS, if ( window.getComputedStyle ) { getStyles = function( elem ) { - return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + // Support: IE<=11+, Firefox<=30+ (#15098, #14150) + // IE throws on elements created in popups + // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" + if ( elem.ownerDocument.defaultView.opener ) { + return elem.ownerDocument.defaultView.getComputedStyle( elem, null ); + } + + return window.getComputedStyle( elem, null ); }; curCSS = function( elem, name, computed ) { @@ -8495,6 +8531,8 @@ function addGetHookIf( conditionFn, hookFn ) { reliableMarginRightVal = !parseFloat( ( window.getComputedStyle( contents, null ) || {} ).marginRight ); + + div.removeChild( contents ); } // Support: IE8 @@ -11202,7 +11240,8 @@ jQuery.extend({ } // We can fire global events as of now if asked to - fireGlobals = s.global; + // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) + fireGlobals = jQuery.event && s.global; // Watch for a new set of requests if ( fireGlobals && jQuery.active++ === 0 ) { @@ -11461,13 +11500,6 @@ jQuery.each( [ "get", "post" ], function( i, method ) { }; }); -// Attach a bunch of functions for handling common AJAX events -jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); - }; -}); - jQuery._evalUrl = function( url ) { return jQuery.ajax({ @@ -11693,8 +11725,9 @@ var xhrId = 0, // Support: IE<10 // Open requests must be manually aborted on unload (#5280) -if ( window.ActiveXObject ) { - jQuery( window ).on( "unload", function() { +// See https://support.microsoft.com/kb/2856746 for more info +if ( window.attachEvent ) { + window.attachEvent( "onunload", function() { for ( var key in xhrCallbacks ) { xhrCallbacks[ key ]( undefined, true ); } @@ -12128,6 +12161,16 @@ jQuery.fn.load = function( url, params, callback ) { +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +}); + + + + jQuery.expr.filters.animated = function( elem ) { return jQuery.grep(jQuery.timers, function( fn ) { return elem === fn.elem; @@ -12439,3981 +12482,7036 @@ return jQuery; })); -define('mockup-registry',[ - 'jquery' -], function($, undefined) { - 'use strict'; - - var Registry = { +// Underscore.js 1.8.3 +// http://underscorejs.org +// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. - patterns: {}, +(function() { - warn: function(msg) { - /* istanbul ignore next */ - if (window.DEBUG) { - Registry.error(msg); - } - }, + // Baseline setup + // -------------- - error: function(msg){ - if (window.console) { - console.warn(msg); - } - }, + // Establish the root object, `window` in the browser, or `exports` on the server. + var root = this; + + // Save the previous value of the `_` variable. + var previousUnderscore = root._; + + // Save bytes in the minified (but not gzipped) version: + var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; + + // Create quick reference variables for speed access to core prototypes. + var + push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + + // All **ECMAScript 5** native function implementations that we hope to use + // are declared here. + var + nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeBind = FuncProto.bind, + nativeCreate = Object.create; + + // Naked function reference for surrogate-prototype-swapping. + var Ctor = function(){}; + + // Create a safe reference to the Underscore object for use below. + var _ = function(obj) { + if (obj instanceof _) return obj; + if (!(this instanceof _)) return new _(obj); + this._wrapped = obj; + }; - getOptions: function($el, patternName, options) { - options = options || {}; + // Export the Underscore object for **Node.js**, with + // backwards-compatibility for the old `require()` API. If we're in + // the browser, add `_` as a global object. + if (typeof exports !== 'undefined') { + if (typeof module !== 'undefined' && module.exports) { + exports = module.exports = _; + } + exports._ = _; + } else { + root._ = _; + } - // get options from parent element first, stop if element tag name is 'body' - if ($el.length !== 0 && !$.nodeName($el[0], 'body')) { - options = Registry.getOptions($el.parent(), patternName, options); - } + // Current version. + _.VERSION = '1.8.3'; - // collect all options from element - var elOptions = {}; - if ($el.length !== 0) { - elOptions = $el.data('pat-' + patternName); - if (elOptions) { - // parse options if string - if (typeof(elOptions) === 'string') { - var tmpOptions = {}; - $.each(elOptions.split(';'), function(i, item) { - item = item.split(':'); - item.reverse(); - var key = item.pop(); - key = key.replace(/^\s+|\s+$/g, ''); // trim - item.reverse(); - var value = item.join(':'); - value = value.replace(/^\s+|\s+$/g, ''); // trim - tmpOptions[key] = value; - }); - elOptions = tmpOptions; - } - } - } + // Internal function that returns an efficient (for current engines) version + // of the passed-in callback, to be repeatedly applied in other Underscore + // functions. + var optimizeCb = function(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + case 2: return function(value, other) { + return func.call(context, value, other); + }; + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; + }; - return $.extend(true, {}, options, elOptions); - }, + // A mostly-internal function to generate callbacks that can be applied + // to each element in a collection, returning the desired result — either + // identity, an arbitrary callback, a property matcher, or a property accessor. + var cb = function(value, context, argCount) { + if (value == null) return _.identity; + if (_.isFunction(value)) return optimizeCb(value, context, argCount); + if (_.isObject(value)) return _.matcher(value); + return _.property(value); + }; + _.iteratee = function(value, context) { + return cb(value, context, Infinity); + }; - init: function($el, patternName, options) { - var pattern = $el.data('pattern-' + patternName); - if (pattern === undefined && Registry.patterns[patternName]) { - if (window.DEBUG) { - pattern = new Registry.patterns[patternName]($el, - Registry.getOptions($el, patternName, options)); - } else { - try { - pattern = new Registry.patterns[patternName]($el, - Registry.getOptions($el, patternName, options)); - } catch (e) { - Registry.error('Failed while initializing "' + patternName + '" pattern.'); - if(window.DEBUG) { - throw(e); - } - } + // An internal function for creating assigner functions. + var createAssigner = function(keysFunc, undefinedOnly) { + return function(obj) { + var length = arguments.length; + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key]; } - $el.data('pattern-' + patternName, pattern); } - return pattern; - }, + return obj; + }; + }; - scan: function(content) { - var $content = $(content), - patterns = []; + // An internal function for creating a new object that inherits from another. + var baseCreate = function(prototype) { + if (!_.isObject(prototype)) return {}; + if (nativeCreate) return nativeCreate(prototype); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; + }; - patterns = $.merge(patterns, $content.filter('[class*="pat-"]')); - patterns = $.merge(patterns, $('[class*="pat-"]', $content)); + var property = function(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; + }; - $.each(patterns, function(i, $el) { - $el = $($el); - $.each($el.attr('class').split(' '), function(j, className) { - if (className.indexOf('pat-') === 0) { - Registry.init($el, className.substr(4)); - } - }); - }); - // Trigger event after pattern scan has completed and all patterns were - // initialized - $(document).trigger('scan-completed.registry.mockup-core'); - }, + // Helper for collection methods to determine whether a collection + // should be iterated as an array or as an object + // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength + // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 + var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; + var getLength = property('length'); + var isArrayLike = function(collection) { + var length = getLength(collection); + return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX; + }; - register: function(Pattern) { + // Collection Functions + // -------------------- - // require name - if (!Pattern.prototype.name) { - Registry.warn('Pattern didn\'t specified a name.'); - return false; + // The cornerstone, an `each` implementation, aka `forEach`. + // Handles raw objects in addition to array-likes. Treats all + // sparse array-likes as if they were dense. + _.each = _.forEach = function(obj, iteratee, context) { + iteratee = optimizeCb(iteratee, context); + var i, length; + if (isArrayLike(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); } + } else { + var keys = _.keys(obj); + for (i = 0, length = keys.length; i < length; i++) { + iteratee(obj[keys[i]], keys[i], obj); + } + } + return obj; + }; - // automatically create jquery plugin from pattern - if (Pattern.prototype.jqueryPlugin === undefined) { - Pattern.prototype.jqueryPlugin = 'pattern' + - Pattern.prototype.name.charAt(0).toUpperCase() + - Pattern.prototype.name.slice(1); + // Return the results of applying the iteratee to each element. + _.map = _.collect = function(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = keys ? keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + }; + + // Create a reducing function iterating left or right. + function createReduce(dir) { + // Optimized iterator function as using arguments.length + // in the main function will deoptimize the, see #1991. + function iterator(obj, iteratee, memo, keys, index, length) { + for (; index >= 0 && index < length; index += dir) { + var currentKey = keys ? keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); } + return memo; + } - $.fn[Pattern.prototype.jqueryPlugin] = function(method, options) { - $(this).each(function() { - if (typeof method === 'object') { - options = method; - method = undefined; - } - var $el = $(this), - pattern = Registry.init($el, Pattern.prototype.name, options); + return function(obj, iteratee, memo, context) { + iteratee = optimizeCb(iteratee, context, 4); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length, + index = dir > 0 ? 0 : length - 1; + // Determine the initial value if none is provided. + if (arguments.length < 3) { + memo = obj[keys ? keys[index] : index]; + index += dir; + } + return iterator(obj, iteratee, memo, keys, index, length); + }; + } - if (method) { - if (pattern[method] === undefined) { - Registry.error('Method "' + method + '" does not exists.'); - return false; - } - if (method.charAt(0) === '_') { - Registry.warn('Method "' + method + '" is private.'); - return false; - } - pattern[method].apply(pattern, [options]); - } - }); - return this; - }; + // **Reduce** builds up a single result from a list of values, aka `inject`, + // or `foldl`. + _.reduce = _.foldl = _.inject = createReduce(1); + + // The right-associative version of reduce, also known as `foldr`. + _.reduceRight = _.foldr = createReduce(-1); - Registry.patterns[Pattern.prototype.name] = Pattern; + // Return the first value which passes a truth test. Aliased as `detect`. + _.find = _.detect = function(obj, predicate, context) { + var key; + if (isArrayLike(obj)) { + key = _.findIndex(obj, predicate, context); + } else { + key = _.findKey(obj, predicate, context); } + if (key !== void 0 && key !== -1) return obj[key]; + }; + // Return all the elements that pass a truth test. + // Aliased as `select`. + _.filter = _.select = function(obj, predicate, context) { + var results = []; + predicate = cb(predicate, context); + _.each(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; }; - return Registry; -}); + // Return all the elements for which a truth test fails. + _.reject = function(obj, predicate, context) { + return _.filter(obj, _.negate(cb(predicate)), context); + }; -/* Base Pattern - */ + // Determine whether all of the elements match a truth test. + // Aliased as `all`. + _.every = _.all = function(obj, predicate, context) { + predicate = cb(predicate, context); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = keys ? keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; + } + return true; + }; + // Determine if at least one element in the object matches a truth test. + // Aliased as `any`. + _.some = _.any = function(obj, predicate, context) { + predicate = cb(predicate, context); + var keys = !isArrayLike(obj) && _.keys(obj), + length = (keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = keys ? keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; + }; -define('mockup-patterns-base',[ - 'jquery', - 'mockup-registry' -], function($, Registry) { - 'use strict'; + // Determine if the array or object contains a given item (using `===`). + // Aliased as `includes` and `include`. + _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) { + if (!isArrayLike(obj)) obj = _.values(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return _.indexOf(obj, item, fromIndex) >= 0; + }; - // Base Pattern - var Base = function($el, options) { - this.$el = $el; - this.options = $.extend(true, {}, this.defaults || {}, options || {}); - this.init(); - this.trigger('init'); + // Invoke a method (with arguments) on every item in a collection. + _.invoke = function(obj, method) { + var args = slice.call(arguments, 2); + var isFunc = _.isFunction(method); + return _.map(obj, function(value) { + var func = isFunc ? method : value[method]; + return func == null ? func : func.apply(value, args); + }); }; - Base.prototype = { - constructor: Base, - on: function(eventName, eventCallback) { - this.$el.on(eventName + '.' + this.name + '.patterns', eventCallback); - }, - trigger: function(eventName, args) { - // args should be a list - if (args === undefined) { - args = []; + + // Convenience version of a common use case of `map`: fetching a property. + _.pluck = function(obj, key) { + return _.map(obj, _.property(key)); + }; + + // Convenience version of a common use case of `filter`: selecting only objects + // containing specific `key:value` pairs. + _.where = function(obj, attrs) { + return _.filter(obj, _.matcher(attrs)); + }; + + // Convenience version of a common use case of `find`: getting the first object + // containing specific `key:value` pairs. + _.findWhere = function(obj, attrs) { + return _.find(obj, _.matcher(attrs)); + }; + + // Return the maximum element (or element-based computation). + _.max = function(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null && obj != null) { + obj = isArrayLike(obj) ? obj : _.values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value > result) { + result = value; + } } - this.$el.trigger(eventName + '.' + this.name + '.patterns', args); + } else { + iteratee = cb(iteratee, context); + _.each(obj, function(value, index, list) { + computed = iteratee(value, index, list); + if (computed > lastComputed || computed === -Infinity && result === -Infinity) { + result = value; + lastComputed = computed; + } + }); } + return result; }; - Base.extend = function(NewPattern) { - var Base = this, Constructor; - if (NewPattern && NewPattern.hasOwnProperty('constructor')) { - Constructor = NewPattern.constructor; + // Return the minimum element (or element-based computation). + _.min = function(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null && obj != null) { + obj = isArrayLike(obj) ? obj : _.values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value < result) { + result = value; + } + } } else { - Constructor = function() { Base.apply(this, arguments); }; // TODO: arguments from where + iteratee = cb(iteratee, context); + _.each(obj, function(value, index, list) { + computed = iteratee(value, index, list); + if (computed < lastComputed || computed === Infinity && result === Infinity) { + result = value; + lastComputed = computed; + } + }); } + return result; + }; - var Surrogate = function() { this.constructor = Constructor; }; - Surrogate.prototype = Base.prototype; - Constructor.prototype = new Surrogate(); - Constructor.extend = Base.extend; - - $.extend(true, Constructor.prototype, NewPattern); + // Shuffle a collection, using the modern version of the + // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle). + _.shuffle = function(obj) { + var set = isArrayLike(obj) ? obj : _.values(obj); + var length = set.length; + var shuffled = Array(length); + for (var index = 0, rand; index < length; index++) { + rand = _.random(0, index); + if (rand !== index) shuffled[index] = shuffled[rand]; + shuffled[rand] = set[index]; + } + return shuffled; + }; - Constructor.__super__ = Base.prototype; // TODO: needed? + // Sample **n** random values from a collection. + // If **n** is not specified, returns a single random element. + // The internal `guard` argument allows it to work with `map`. + _.sample = function(obj, n, guard) { + if (n == null || guard) { + if (!isArrayLike(obj)) obj = _.values(obj); + return obj[_.random(obj.length - 1)]; + } + return _.shuffle(obj).slice(0, Math.max(0, n)); + }; - Registry.register(Constructor); + // Sort the object's values by a criterion produced by an iteratee. + _.sortBy = function(obj, iteratee, context) { + iteratee = cb(iteratee, context); + return _.pluck(_.map(obj, function(value, index, list) { + return { + value: value, + index: index, + criteria: iteratee(value, index, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); + }; - return Constructor; + // An internal function used for aggregate "group by" operations. + var group = function(behavior) { + return function(obj, iteratee, context) { + var result = {}; + iteratee = cb(iteratee, context); + _.each(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; }; - return Base; -}); + // Groups the object's values by a criterion. Pass either a string attribute + // to group by, or a function that returns the criterion. + _.groupBy = group(function(result, value, key) { + if (_.has(result, key)) result[key].push(value); else result[key] = [value]; + }); -/* -Copyright 2012 Igor Vaynberg + // Indexes the object's values by a criterion, similar to `groupBy`, but for + // when you know that your index values will be unique. + _.indexBy = group(function(result, value, key) { + result[key] = value; + }); -Version: 3.5.1 Timestamp: Tue Jul 22 18:58:56 EDT 2014 + // Counts instances of an object that group by a certain criterion. Pass + // either a string attribute to count by, or a function that returns the + // criterion. + _.countBy = group(function(result, value, key) { + if (_.has(result, key)) result[key]++; else result[key] = 1; + }); -This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU -General Public License version 2 (the "GPL License"). You may choose either license to govern your -use of this software only upon the condition that you accept all of the terms of either the Apache -License or the GPL License. + // Safely create a real, live array from anything iterable. + _.toArray = function(obj) { + if (!obj) return []; + if (_.isArray(obj)) return slice.call(obj); + if (isArrayLike(obj)) return _.map(obj, _.identity); + return _.values(obj); + }; -You may obtain a copy of the Apache License and the GPL License at: + // Return the number of elements in an object. + _.size = function(obj) { + if (obj == null) return 0; + return isArrayLike(obj) ? obj.length : _.keys(obj).length; + }; - http://www.apache.org/licenses/LICENSE-2.0 - http://www.gnu.org/licenses/gpl-2.0.html + // Split a collection into two arrays: one whose elements all satisfy the given + // predicate, and one whose elements all do not satisfy the predicate. + _.partition = function(obj, predicate, context) { + predicate = cb(predicate, context); + var pass = [], fail = []; + _.each(obj, function(value, key, obj) { + (predicate(value, key, obj) ? pass : fail).push(value); + }); + return [pass, fail]; + }; -Unless required by applicable law or agreed to in writing, software distributed under the -Apache License or the GPL License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR -CONDITIONS OF ANY KIND, either express or implied. See the Apache License and the GPL License for -the specific language governing permissions and limitations under the Apache License and the GPL License. -*/ -(function ($) { - if(typeof $.fn.each2 == "undefined") { - $.extend($.fn, { - /* - * 4-10 times faster .each replacement - * use it carefully, as it overrides jQuery context of element on each iteration - */ - each2 : function (c) { - var j = $([0]), i = -1, l = this.length; - while ( - ++i < l - && (j.context = j[0] = this[i]) - && c.call(j[0], i, j) !== false //"this"=DOM, i=index, j=jQuery object - ); - return this; - } - }); - } -})(jQuery); + // Array Functions + // --------------- -(function ($, undefined) { - "use strict"; - /*global document, window, jQuery, console */ + // Get the first element of an array. Passing **n** will return the first N + // values in the array. Aliased as `head` and `take`. The **guard** check + // allows it to work with `_.map`. + _.first = _.head = _.take = function(array, n, guard) { + if (array == null) return void 0; + if (n == null || guard) return array[0]; + return _.initial(array, array.length - n); + }; - if (window.Select2 !== undefined) { - return; - } + // Returns everything but the last entry of the array. Especially useful on + // the arguments object. Passing **n** will return all the values in + // the array, excluding the last N. + _.initial = function(array, n, guard) { + return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); + }; - var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer, - lastMousePosition={x:0,y:0}, $document, scrollBarDimensions, + // Get the last element of an array. Passing **n** will return the last N + // values in the array. + _.last = function(array, n, guard) { + if (array == null) return void 0; + if (n == null || guard) return array[array.length - 1]; + return _.rest(array, Math.max(0, array.length - n)); + }; - KEY = { - TAB: 9, - ENTER: 13, - ESC: 27, - SPACE: 32, - LEFT: 37, - UP: 38, - RIGHT: 39, - DOWN: 40, - SHIFT: 16, - CTRL: 17, - ALT: 18, - PAGE_UP: 33, - PAGE_DOWN: 34, - HOME: 36, - END: 35, - BACKSPACE: 8, - DELETE: 46, - isArrow: function (k) { - k = k.which ? k.which : k; - switch (k) { - case KEY.LEFT: - case KEY.RIGHT: - case KEY.UP: - case KEY.DOWN: - return true; - } - return false; - }, - isControl: function (e) { - var k = e.which; - switch (k) { - case KEY.SHIFT: - case KEY.CTRL: - case KEY.ALT: - return true; - } + // Returns everything but the first entry of the array. Aliased as `tail` and `drop`. + // Especially useful on the arguments object. Passing an **n** will return + // the rest N values in the array. + _.rest = _.tail = _.drop = function(array, n, guard) { + return slice.call(array, n == null || guard ? 1 : n); + }; - if (e.metaKey) return true; + // Trim out all falsy values from an array. + _.compact = function(array) { + return _.filter(array, _.identity); + }; - return false; - }, - isFunctionKey: function (k) { - k = k.which ? k.which : k; - return k >= 112 && k <= 123; + // Internal implementation of a recursive `flatten` function. + var flatten = function(input, shallow, strict, startIndex) { + var output = [], idx = 0; + for (var i = startIndex || 0, length = getLength(input); i < length; i++) { + var value = input[i]; + if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) { + //flatten current level of array or arguments object + if (!shallow) value = flatten(value, shallow, strict); + var j = 0, len = value.length; + output.length += len; + while (j < len) { + output[idx++] = value[j++]; } - }, - MEASURE_SCROLLBAR_TEMPLATE = "
", - - DIACRITICS = {"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"A","\u01FA":"A","\u01CD":"A","\u0200":"A","\u0202":"A","\u1EA0":"A","\u1EAC":"A","\u1EB6":"A","\u1E00":"A","\u0104":"A","\u023A":"A","\u2C6F":"A","\uA732":"AA","\u00C6":"AE","\u01FC":"AE","\u01E2":"AE","\uA734":"AO","\uA736":"AU","\uA738":"AV","\uA73A":"AV","\uA73C":"AY","\u24B7":"B","\uFF22":"B","\u1E02":"B","\u1E04":"B","\u1E06":"B","\u0243":"B","\u0182":"B","\u0181":"B","\u24B8":"C","\uFF23":"C","\u0106":"C","\u0108":"C","\u010A":"C","\u010C":"C","\u00C7":"C","\u1E08":"C","\u0187":"C","\u023B":"C","\uA73E":"C","\u24B9":"D","\uFF24":"D","\u1E0A":"D","\u010E":"D","\u1E0C":"D","\u1E10":"D","\u1E12":"D","\u1E0E":"D","\u0110":"D","\u018B":"D","\u018A":"D","\u0189":"D","\uA779":"D","\u01F1":"DZ","\u01C4":"DZ","\u01F2":"Dz","\u01C5":"Dz","\u24BA":"E","\uFF25":"E","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"E","\u1EBA":"E","\u011A":"E","\u0204":"E","\u0206":"E","\u1EB8":"E","\u1EC6":"E","\u0228":"E","\u1E1C":"E","\u0118":"E","\u1E18":"E","\u1E1A":"E","\u0190":"E","\u018E":"E","\u24BB":"F","\uFF26":"F","\u1E1E":"F","\u0191":"F","\uA77B":"F","\u24BC":"G","\uFF27":"G","\u01F4":"G","\u011C":"G","\u1E20":"G","\u011E":"G","\u0120":"G","\u01E6":"G","\u0122":"G","\u01E4":"G","\u0193":"G","\uA7A0":"G","\uA77D":"G","\uA77E":"G","\u24BD":"H","\uFF28":"H","\u0124":"H","\u1E22":"H","\u1E26":"H","\u021E":"H","\u1E24":"H","\u1E28":"H","\u1E2A":"H","\u0126":"H","\u2C67":"H","\u2C75":"H","\uA78D":"H","\u24BE":"I","\uFF29":"I","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"I","\u1E2E":"I","\u1EC8":"I","\u01CF":"I","\u0208":"I","\u020A":"I","\u1ECA":"I","\u012E":"I","\u1E2C":"I","\u0197":"I","\u24BF":"J","\uFF2A":"J","\u0134":"J","\u0248":"J","\u24C0":"K","\uFF2B":"K","\u1E30":"K","\u01E8":"K","\u1E32":"K","\u0136":"K","\u1E34":"K","\u0198":"K","\u2C69":"K","\uA740":"K","\uA742":"K","\uA744":"K","\uA7A2":"K","\u24C1":"L","\uFF2C":"L","\u013F":"L","\u0139":"L","\u013D":"L","\u1E36":"L","\u1E38":"L","\u013B":"L","\u1E3C":"L","\u1E3A":"L","\u0141":"L","\u023D":"L","\u2C62":"L","\u2C60":"L","\uA748":"L","\uA746":"L","\uA780":"L","\u01C7":"LJ","\u01C8":"Lj","\u24C2":"M","\uFF2D":"M","\u1E3E":"M","\u1E40":"M","\u1E42":"M","\u2C6E":"M","\u019C":"M","\u24C3":"N","\uFF2E":"N","\u01F8":"N","\u0143":"N","\u00D1":"N","\u1E44":"N","\u0147":"N","\u1E46":"N","\u0145":"N","\u1E4A":"N","\u1E48":"N","\u0220":"N","\u019D":"N","\uA790":"N","\uA7A4":"N","\u01CA":"NJ","\u01CB":"Nj","\u24C4":"O","\uFF2F":"O","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"O","\u022A":"O","\u1ECE":"O","\u0150":"O","\u01D1":"O","\u020C":"O","\u020E":"O","\u01A0":"O","\u1EDC":"O","\u1EDA":"O","\u1EE0":"O","\u1EDE":"O","\u1EE2":"O","\u1ECC":"O","\u1ED8":"O","\u01EA":"O","\u01EC":"O","\u00D8":"O","\u01FE":"O","\u0186":"O","\u019F":"O","\uA74A":"O","\uA74C":"O","\u01A2":"OI","\uA74E":"OO","\u0222":"OU","\u24C5":"P","\uFF30":"P","\u1E54":"P","\u1E56":"P","\u01A4":"P","\u2C63":"P","\uA750":"P","\uA752":"P","\uA754":"P","\u24C6":"Q","\uFF31":"Q","\uA756":"Q","\uA758":"Q","\u024A":"Q","\u24C7":"R","\uFF32":"R","\u0154":"R","\u1E58":"R","\u0158":"R","\u0210":"R","\u0212":"R","\u1E5A":"R","\u1E5C":"R","\u0156":"R","\u1E5E":"R","\u024C":"R","\u2C64":"R","\uA75A":"R","\uA7A6":"R","\uA782":"R","\u24C8":"S","\uFF33":"S","\u1E9E":"S","\u015A":"S","\u1E64":"S","\u015C":"S","\u1E60":"S","\u0160":"S","\u1E66":"S","\u1E62":"S","\u1E68":"S","\u0218":"S","\u015E":"S","\u2C7E":"S","\uA7A8":"S","\uA784":"S","\u24C9":"T","\uFF34":"T","\u1E6A":"T","\u0164":"T","\u1E6C":"T","\u021A":"T","\u0162":"T","\u1E70":"T","\u1E6E":"T","\u0166":"T","\u01AC":"T","\u01AE":"T","\u023E":"T","\uA786":"T","\uA728":"TZ","\u24CA":"U","\uFF35":"U","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"U","\u01DB":"U","\u01D7":"U","\u01D5":"U","\u01D9":"U","\u1EE6":"U","\u016E":"U","\u0170":"U","\u01D3":"U","\u0214":"U","\u0216":"U","\u01AF":"U","\u1EEA":"U","\u1EE8":"U","\u1EEE":"U","\u1EEC":"U","\u1EF0":"U","\u1EE4":"U","\u1E72":"U","\u0172":"U","\u1E76":"U","\u1E74":"U","\u0244":"U","\u24CB":"V","\uFF36":"V","\u1E7C":"V","\u1E7E":"V","\u01B2":"V","\uA75E":"V","\u0245":"V","\uA760":"VY","\u24CC":"W","\uFF37":"W","\u1E80":"W","\u1E82":"W","\u0174":"W","\u1E86":"W","\u1E84":"W","\u1E88":"W","\u2C72":"W","\u24CD":"X","\uFF38":"X","\u1E8A":"X","\u1E8C":"X","\u24CE":"Y","\uFF39":"Y","\u1EF2":"Y","\u00DD":"Y","\u0176":"Y","\u1EF8":"Y","\u0232":"Y","\u1E8E":"Y","\u0178":"Y","\u1EF6":"Y","\u1EF4":"Y","\u01B3":"Y","\u024E":"Y","\u1EFE":"Y","\u24CF":"Z","\uFF3A":"Z","\u0179":"Z","\u1E90":"Z","\u017B":"Z","\u017D":"Z","\u1E92":"Z","\u1E94":"Z","\u01B5":"Z","\u0224":"Z","\u2C7F":"Z","\u2C6B":"Z","\uA762":"Z","\u24D0":"a","\uFF41":"a","\u1E9A":"a","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"a","\u01FB":"a","\u01CE":"a","\u0201":"a","\u0203":"a","\u1EA1":"a","\u1EAD":"a","\u1EB7":"a","\u1E01":"a","\u0105":"a","\u2C65":"a","\u0250":"a","\uA733":"aa","\u00E6":"ae","\u01FD":"ae","\u01E3":"ae","\uA735":"ao","\uA737":"au","\uA739":"av","\uA73B":"av","\uA73D":"ay","\u24D1":"b","\uFF42":"b","\u1E03":"b","\u1E05":"b","\u1E07":"b","\u0180":"b","\u0183":"b","\u0253":"b","\u24D2":"c","\uFF43":"c","\u0107":"c","\u0109":"c","\u010B":"c","\u010D":"c","\u00E7":"c","\u1E09":"c","\u0188":"c","\u023C":"c","\uA73F":"c","\u2184":"c","\u24D3":"d","\uFF44":"d","\u1E0B":"d","\u010F":"d","\u1E0D":"d","\u1E11":"d","\u1E13":"d","\u1E0F":"d","\u0111":"d","\u018C":"d","\u0256":"d","\u0257":"d","\uA77A":"d","\u01F3":"dz","\u01C6":"dz","\u24D4":"e","\uFF45":"e","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"e","\u1EBB":"e","\u011B":"e","\u0205":"e","\u0207":"e","\u1EB9":"e","\u1EC7":"e","\u0229":"e","\u1E1D":"e","\u0119":"e","\u1E19":"e","\u1E1B":"e","\u0247":"e","\u025B":"e","\u01DD":"e","\u24D5":"f","\uFF46":"f","\u1E1F":"f","\u0192":"f","\uA77C":"f","\u24D6":"g","\uFF47":"g","\u01F5":"g","\u011D":"g","\u1E21":"g","\u011F":"g","\u0121":"g","\u01E7":"g","\u0123":"g","\u01E5":"g","\u0260":"g","\uA7A1":"g","\u1D79":"g","\uA77F":"g","\u24D7":"h","\uFF48":"h","\u0125":"h","\u1E23":"h","\u1E27":"h","\u021F":"h","\u1E25":"h","\u1E29":"h","\u1E2B":"h","\u1E96":"h","\u0127":"h","\u2C68":"h","\u2C76":"h","\u0265":"h","\u0195":"hv","\u24D8":"i","\uFF49":"i","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"i","\u1E2F":"i","\u1EC9":"i","\u01D0":"i","\u0209":"i","\u020B":"i","\u1ECB":"i","\u012F":"i","\u1E2D":"i","\u0268":"i","\u0131":"i","\u24D9":"j","\uFF4A":"j","\u0135":"j","\u01F0":"j","\u0249":"j","\u24DA":"k","\uFF4B":"k","\u1E31":"k","\u01E9":"k","\u1E33":"k","\u0137":"k","\u1E35":"k","\u0199":"k","\u2C6A":"k","\uA741":"k","\uA743":"k","\uA745":"k","\uA7A3":"k","\u24DB":"l","\uFF4C":"l","\u0140":"l","\u013A":"l","\u013E":"l","\u1E37":"l","\u1E39":"l","\u013C":"l","\u1E3D":"l","\u1E3B":"l","\u017F":"l","\u0142":"l","\u019A":"l","\u026B":"l","\u2C61":"l","\uA749":"l","\uA781":"l","\uA747":"l","\u01C9":"lj","\u24DC":"m","\uFF4D":"m","\u1E3F":"m","\u1E41":"m","\u1E43":"m","\u0271":"m","\u026F":"m","\u24DD":"n","\uFF4E":"n","\u01F9":"n","\u0144":"n","\u00F1":"n","\u1E45":"n","\u0148":"n","\u1E47":"n","\u0146":"n","\u1E4B":"n","\u1E49":"n","\u019E":"n","\u0272":"n","\u0149":"n","\uA791":"n","\uA7A5":"n","\u01CC":"nj","\u24DE":"o","\uFF4F":"o","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"o","\u022B":"o","\u1ECF":"o","\u0151":"o","\u01D2":"o","\u020D":"o","\u020F":"o","\u01A1":"o","\u1EDD":"o","\u1EDB":"o","\u1EE1":"o","\u1EDF":"o","\u1EE3":"o","\u1ECD":"o","\u1ED9":"o","\u01EB":"o","\u01ED":"o","\u00F8":"o","\u01FF":"o","\u0254":"o","\uA74B":"o","\uA74D":"o","\u0275":"o","\u01A3":"oi","\u0223":"ou","\uA74F":"oo","\u24DF":"p","\uFF50":"p","\u1E55":"p","\u1E57":"p","\u01A5":"p","\u1D7D":"p","\uA751":"p","\uA753":"p","\uA755":"p","\u24E0":"q","\uFF51":"q","\u024B":"q","\uA757":"q","\uA759":"q","\u24E1":"r","\uFF52":"r","\u0155":"r","\u1E59":"r","\u0159":"r","\u0211":"r","\u0213":"r","\u1E5B":"r","\u1E5D":"r","\u0157":"r","\u1E5F":"r","\u024D":"r","\u027D":"r","\uA75B":"r","\uA7A7":"r","\uA783":"r","\u24E2":"s","\uFF53":"s","\u00DF":"s","\u015B":"s","\u1E65":"s","\u015D":"s","\u1E61":"s","\u0161":"s","\u1E67":"s","\u1E63":"s","\u1E69":"s","\u0219":"s","\u015F":"s","\u023F":"s","\uA7A9":"s","\uA785":"s","\u1E9B":"s","\u24E3":"t","\uFF54":"t","\u1E6B":"t","\u1E97":"t","\u0165":"t","\u1E6D":"t","\u021B":"t","\u0163":"t","\u1E71":"t","\u1E6F":"t","\u0167":"t","\u01AD":"t","\u0288":"t","\u2C66":"t","\uA787":"t","\uA729":"tz","\u24E4":"u","\uFF55":"u","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"u","\u01DC":"u","\u01D8":"u","\u01D6":"u","\u01DA":"u","\u1EE7":"u","\u016F":"u","\u0171":"u","\u01D4":"u","\u0215":"u","\u0217":"u","\u01B0":"u","\u1EEB":"u","\u1EE9":"u","\u1EEF":"u","\u1EED":"u","\u1EF1":"u","\u1EE5":"u","\u1E73":"u","\u0173":"u","\u1E77":"u","\u1E75":"u","\u0289":"u","\u24E5":"v","\uFF56":"v","\u1E7D":"v","\u1E7F":"v","\u028B":"v","\uA75F":"v","\u028C":"v","\uA761":"vy","\u24E6":"w","\uFF57":"w","\u1E81":"w","\u1E83":"w","\u0175":"w","\u1E87":"w","\u1E85":"w","\u1E98":"w","\u1E89":"w","\u2C73":"w","\u24E7":"x","\uFF58":"x","\u1E8B":"x","\u1E8D":"x","\u24E8":"y","\uFF59":"y","\u1EF3":"y","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"y","\u1EF7":"y","\u1E99":"y","\u1EF5":"y","\u01B4":"y","\u024F":"y","\u1EFF":"y","\u24E9":"z","\uFF5A":"z","\u017A":"z","\u1E91":"z","\u017C":"z","\u017E":"z","\u1E93":"z","\u1E95":"z","\u01B6":"z","\u0225":"z","\u0240":"z","\u2C6C":"z","\uA763":"z","\u0386":"\u0391","\u0388":"\u0395","\u0389":"\u0397","\u038A":"\u0399","\u03AA":"\u0399","\u038C":"\u039F","\u038E":"\u03A5","\u03AB":"\u03A5","\u038F":"\u03A9","\u03AC":"\u03B1","\u03AD":"\u03B5","\u03AE":"\u03B7","\u03AF":"\u03B9","\u03CA":"\u03B9","\u0390":"\u03B9","\u03CC":"\u03BF","\u03CD":"\u03C5","\u03CB":"\u03C5","\u03B0":"\u03C5","\u03C9":"\u03C9","\u03C2":"\u03C3"}; - - $document = $(document); - - nextUid=(function() { var counter=1; return function() { return counter++; }; }()); + } else if (!strict) { + output[idx++] = value; + } + } + return output; + }; + // Flatten out an array, either recursively (by default), or just one level. + _.flatten = function(array, shallow) { + return flatten(array, shallow, false); + }; - function reinsertElement(element) { - var placeholder = $(document.createTextNode('')); + // Return a version of the array that does not contain the specified value(s). + _.without = function(array) { + return _.difference(array, slice.call(arguments, 1)); + }; - element.before(placeholder); - placeholder.before(element); - placeholder.remove(); + // Produce a duplicate-free version of the array. If the array has already + // been sorted, you have the option of using a faster algorithm. + // Aliased as `unique`. + _.uniq = _.unique = function(array, isSorted, iteratee, context) { + if (!_.isBoolean(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; } - - function stripDiacritics(str) { - // Used 'uni range + named function' from http://jsperf.com/diacritics/18 - function match(a) { - return DIACRITICS[a] || a; + if (iteratee != null) iteratee = cb(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = getLength(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!_.contains(seen, computed)) { + seen.push(computed); + result.push(value); } - - return str.replace(/[^\u0000-\u007E]/g, match); + } else if (!_.contains(result, value)) { + result.push(value); + } } + return result; + }; - function indexOf(value, array) { - var i = 0, l = array.length; - for (; i < l; i = i + 1) { - if (equal(value, array[i])) return i; - } - return -1; + // Produce an array that contains the union: each distinct element from all of + // the passed-in arrays. + _.union = function() { + return _.uniq(flatten(arguments, true, true)); + }; + + // Produce an array that contains every item shared between all the + // passed-in arrays. + _.intersection = function(array) { + var result = []; + var argsLength = arguments.length; + for (var i = 0, length = getLength(array); i < length; i++) { + var item = array[i]; + if (_.contains(result, item)) continue; + for (var j = 1; j < argsLength; j++) { + if (!_.contains(arguments[j], item)) break; + } + if (j === argsLength) result.push(item); } + return result; + }; - function measureScrollbar () { - var $template = $( MEASURE_SCROLLBAR_TEMPLATE ); - $template.appendTo('body'); + // Take the difference between one array and a number of other arrays. + // Only the elements present in just the first array will remain. + _.difference = function(array) { + var rest = flatten(arguments, true, true, 1); + return _.filter(array, function(value){ + return !_.contains(rest, value); + }); + }; - var dim = { - width: $template.width() - $template[0].clientWidth, - height: $template.height() - $template[0].clientHeight - }; - $template.remove(); + // Zip together multiple lists into a single array -- elements that share + // an index go together. + _.zip = function() { + return _.unzip(arguments); + }; - return dim; - } + // Complement of _.zip. Unzip accepts an array of arrays and groups + // each array's elements on shared indices + _.unzip = function(array) { + var length = array && _.max(array, getLength).length || 0; + var result = Array(length); - /** - * Compares equality of a and b - * @param a - * @param b - */ - function equal(a, b) { - if (a === b) return true; - if (a === undefined || b === undefined) return false; - if (a === null || b === null) return false; - // Check whether 'a' or 'b' is a string (primitive or object). - // The concatenation of an empty string (+'') converts its argument to a string's primitive. - if (a.constructor === String) return a+'' === b+''; // a+'' - in case 'a' is a String object - if (b.constructor === String) return b+'' === a+''; // b+'' - in case 'b' is a String object - return false; + for (var index = 0; index < length; index++) { + result[index] = _.pluck(array, index); } + return result; + }; - /** - * Splits the string into an array of values, trimming each value. An empty array is returned for nulls or empty - * strings - * @param string - * @param separator - */ - function splitVal(string, separator) { - var val, i, l; - if (string === null || string.length < 1) return []; - val = string.split(separator); - for (i = 0, l = val.length; i < l; i = i + 1) val[i] = $.trim(val[i]); - return val; + // Converts lists into objects. Pass either a single array of `[key, value]` + // pairs, or two parallel arrays of the same length -- one of keys, and one of + // the corresponding values. + _.object = function(list, values) { + var result = {}; + for (var i = 0, length = getLength(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } } + return result; + }; - function getSideBorderPadding(element) { - return element.outerWidth(false) - element.width(); - } + // Generator function to create the findIndex and findLastIndex functions + function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = cb(predicate, context); + var length = getLength(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; + } - function installKeyUpChangeEvent(element) { - var key="keyup-change-value"; - element.on("keydown", function () { - if ($.data(element, key) === undefined) { - $.data(element, key, element.val()); - } - }); - element.on("keyup", function () { - var val= $.data(element, key); - if (val !== undefined && element.val() !== val) { - $.removeData(element, key); - element.trigger("keyup-change"); - } - }); + // Returns the first index on an array-like that passes a predicate test + _.findIndex = createPredicateIndexFinder(1); + _.findLastIndex = createPredicateIndexFinder(-1); + + // Use a comparator function to figure out the smallest index at which + // an object should be inserted so as to maintain order. Uses binary search. + _.sortedIndex = function(array, obj, iteratee, context) { + iteratee = cb(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = getLength(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; } + return low; + }; + // Generator function to create the indexOf and lastIndexOf functions + function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = getLength(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; + } + if (item !== item) { + idx = predicateFind(slice.call(array, i, length), _.isNaN); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; + } - /** - * filters mouse events so an event is fired only if the mouse moved. - * - * filters out mouse events that occur when mouse is stationary but - * the elements under the pointer are scrolled. - */ - function installFilteredMouseMove(element) { - element.on("mousemove", function (e) { - var lastpos = lastMousePosition; - if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) { - $(e.target).trigger("mousemove-filtered", e); - } - }); + // Return the position of the first occurrence of an item in an array, + // or -1 if the item is not included in the array. + // If the array is large and already in sort order, pass `true` + // for **isSorted** to use binary search. + _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex); + _.lastIndexOf = createIndexFinder(-1, _.findLastIndex); + + // Generate an integer Array containing an arithmetic progression. A port of + // the native Python `range()` function. See + // [the Python documentation](http://docs.python.org/library/functions.html#range). + _.range = function(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; } + step = step || 1; - /** - * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made - * within the last quietMillis milliseconds. - * - * @param quietMillis number of milliseconds to wait before invoking fn - * @param fn function to be debounced - * @param ctx object to be used as this reference within fn - * @return debounced version of fn - */ - function debounce(quietMillis, fn, ctx) { - ctx = ctx || undefined; - var timeout; - return function () { - var args = arguments; - window.clearTimeout(timeout); - timeout = window.setTimeout(function() { - fn.apply(ctx, args); - }, quietMillis); - }; - } + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); - function installDebouncedScroll(threshold, element) { - var notify = debounce(threshold, function (e) { element.trigger("scroll-debounced", e);}); - element.on("scroll", function (e) { - if (indexOf(e.target, element.get()) >= 0) notify(e); - }); + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; } - function focus($el) { - if ($el[0] === document.activeElement) return; + return range; + }; - /* set the focus in a 0 timeout - that way the focus is set after the processing - of the current event has finished - which seems like the only reliable way - to set focus */ - window.setTimeout(function() { - var el=$el[0], pos=$el.val().length, range; + // Function (ahem) Functions + // ------------------ - $el.focus(); + // Determines whether to execute a function as a constructor + // or a normal function with the provided arguments + var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = baseCreate(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if (_.isObject(result)) return result; + return self; + }; - /* make sure el received focus so we do not error out when trying to manipulate the caret. - sometimes modals or others listeners may steal it after its set */ - var isVisible = (el.offsetWidth > 0 || el.offsetHeight > 0); - if (isVisible && el === document.activeElement) { + // Create a function bound to a given object (assigning `this`, and arguments, + // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if + // available. + _.bind = function(func, context) { + if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1)); + if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function'); + var args = slice.call(arguments, 2); + var bound = function() { + return executeBound(func, bound, context, this, args.concat(slice.call(arguments))); + }; + return bound; + }; - /* after the focus is set move the caret to the end, necessary when we val() - just before setting focus */ - if(el.setSelectionRange) - { - el.setSelectionRange(pos, pos); - } - else if (el.createTextRange) { - range = el.createTextRange(); - range.collapse(false); - range.select(); - } - } - }, 0); + // Partially apply a function by creating a version that has had some of its + // arguments pre-filled, without changing its dynamic `this` context. _ acts + // as a placeholder, allowing any combination of arguments to be pre-filled. + _.partial = function(func) { + var boundArgs = slice.call(arguments, 1); + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return executeBound(func, bound, this, this, args); + }; + return bound; + }; + + // Bind a number of an object's methods to that object. Remaining arguments + // are the method names to be bound. Useful for ensuring that all callbacks + // defined on an object belong to it. + _.bindAll = function(obj) { + var i, length = arguments.length, key; + if (length <= 1) throw new Error('bindAll must be passed function names'); + for (i = 1; i < length; i++) { + key = arguments[i]; + obj[key] = _.bind(obj[key], obj); } + return obj; + }; - function getCursorInfo(el) { - el = $(el)[0]; - var offset = 0; - var length = 0; - if ('selectionStart' in el) { - offset = el.selectionStart; - length = el.selectionEnd - offset; - } else if ('selection' in document) { - el.focus(); - var sel = document.selection.createRange(); - length = document.selection.createRange().text.length; - sel.moveStart('character', -el.value.length); - offset = sel.text.length - length; - } - return { offset: offset, length: length }; - } + // Memoize an expensive function by storing its results. + _.memoize = function(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!_.has(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; + }; - function killEvent(event) { - event.preventDefault(); - event.stopPropagation(); - } - function killEventImmediately(event) { - event.preventDefault(); - event.stopImmediatePropagation(); - } + // Delays a function for the given number of milliseconds, and then calls + // it with the arguments supplied. + _.delay = function(func, wait) { + var args = slice.call(arguments, 2); + return setTimeout(function(){ + return func.apply(null, args); + }, wait); + }; - function measureTextWidth(e) { - if (!sizer){ - var style = e[0].currentStyle || window.getComputedStyle(e[0], null); - sizer = $(document.createElement("div")).css({ - position: "absolute", - left: "-10000px", - top: "-10000px", - display: "none", - fontSize: style.fontSize, - fontFamily: style.fontFamily, - fontStyle: style.fontStyle, - fontWeight: style.fontWeight, - letterSpacing: style.letterSpacing, - textTransform: style.textTransform, - whiteSpace: "nowrap" - }); - sizer.attr("class","select2-sizer"); - $("body").append(sizer); + // Defers a function, scheduling it to run after the current call stack has + // cleared. + _.defer = _.partial(_.delay, _, 1); + + // Returns a function, that, when invoked, will only be triggered at most once + // during a given window of time. Normally, the throttled function will run + // as much as it can, without ever going more than once per `wait` duration; + // but if you'd like to disable the execution on the leading edge, pass + // `{leading: false}`. To disable execution on the trailing edge, ditto. + _.throttle = function(func, wait, options) { + var context, args, result; + var timeout = null; + var previous = 0; + if (!options) options = {}; + var later = function() { + previous = options.leading === false ? 0 : _.now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + return function() { + var now = _.now(); + if (!previous && options.leading === false) previous = now; + var remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; } - sizer.text(e.val()); - return sizer.width(); - } - - function syncCssClasses(dest, src, adapter) { - var classes, replacements = [], adapted; + previous = now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + }; - classes = $.trim(dest.attr("class")); + // Returns a function, that, as long as it continues to be invoked, will not + // be triggered. The function will be called after it stops being called for + // N milliseconds. If `immediate` is passed, trigger the function on the + // leading edge, instead of the trailing. + _.debounce = function(func, wait, immediate) { + var timeout, args, context, timestamp, result; - if (classes) { - classes = '' + classes; // for IE which returns object + var later = function() { + var last = _.now() - timestamp; - $(classes.split(/\s+/)).each2(function() { - if (this.indexOf("select2-") === 0) { - replacements.push(this); - } - }); + if (last < wait && last >= 0) { + timeout = setTimeout(later, wait - last); + } else { + timeout = null; + if (!immediate) { + result = func.apply(context, args); + if (!timeout) context = args = null; } + } + }; - classes = $.trim(src.attr("class")); - - if (classes) { - classes = '' + classes; // for IE which returns object - - $(classes.split(/\s+/)).each2(function() { - if (this.indexOf("select2-") !== 0) { - adapted = adapter(this); + return function() { + context = this; + args = arguments; + timestamp = _.now(); + var callNow = immediate && !timeout; + if (!timeout) timeout = setTimeout(later, wait); + if (callNow) { + result = func.apply(context, args); + context = args = null; + } - if (adapted) { - replacements.push(adapted); - } - } - }); - } + return result; + }; + }; - dest.attr("class", replacements.join(" ")); - } + // Returns the first function passed as an argument to the second, + // allowing you to adjust arguments, run code before and after, and + // conditionally execute the original function. + _.wrap = function(func, wrapper) { + return _.partial(wrapper, func); + }; + // Returns a negated version of the passed-in predicate. + _.negate = function(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; + }; - function markMatch(text, term, markup, escapeMarkup) { - var match=stripDiacritics(text.toUpperCase()).indexOf(stripDiacritics(term.toUpperCase())), - tl=term.length; + // Returns a function that is the composition of a list of functions, each + // consuming the return value of the function that follows. + _.compose = function() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; + }; - if (match<0) { - markup.push(escapeMarkup(text)); - return; - } + // Returns a function that will only be executed on and after the Nth call. + _.after = function(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; + }; - markup.push(escapeMarkup(text.substring(0, match))); - markup.push(""); - markup.push(escapeMarkup(text.substring(match, match + tl))); - markup.push(""); - markup.push(escapeMarkup(text.substring(match + tl, text.length))); - } + // Returns a function that will only be executed up to (but not including) the Nth call. + _.before = function(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); + } + if (times <= 1) func = null; + return memo; + }; + }; - function defaultEscapeMarkup(markup) { - var replace_map = { - '\\': '\', - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - "/": '/' - }; + // Returns a function that will be executed at most one time, no matter how + // often you call it. Useful for lazy initialization. + _.once = _.partial(_.before, 2); - return String(markup).replace(/[&<>"'\/\\]/g, function (match) { - return replace_map[match]; - }); - } + // Object Functions + // ---------------- - /** - * Produces an ajax-based query function - * - * @param options object containing configuration parameters - * @param options.params parameter map for the transport ajax call, can contain such options as cache, jsonpCallback, etc. see $.ajax - * @param options.transport function that will be used to execute the ajax request. must be compatible with parameters supported by $.ajax - * @param options.url url for the data - * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url. - * @param options.dataType request data type: ajax, jsonp, other datatypes supported by jQuery's $.ajax function or the transport function if specified - * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often - * @param options.results a function(remoteData, pageNumber, query) that converts data returned form the remote request to the format expected by Select2. - * The expected format is an object containing the following keys: - * results array of objects that will be used as choices - * more (optional) boolean indicating whether there are more results available - * Example: {results:[{id:1, text:'Red'},{id:2, text:'Blue'}], more:true} - */ - function ajax(options) { - var timeout, // current scheduled but not yet executed request - handler = null, - quietMillis = options.quietMillis || 100, - ajaxUrl = options.url, - self = this; + // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. + var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); + var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; - return function (query) { - window.clearTimeout(timeout); - timeout = window.setTimeout(function () { - var data = options.data, // ajax data function - url = ajaxUrl, // ajax url string or function - transport = options.transport || $.fn.select2.ajaxDefaults.transport, - // deprecated - to be removed in 4.0 - use params instead - deprecated = { - type: options.type || 'GET', // set type of request (GET or POST) - cache: options.cache || false, - jsonpCallback: options.jsonpCallback||undefined, - dataType: options.dataType||"json" - }, - params = $.extend({}, $.fn.select2.ajaxDefaults.params, deprecated); + function collectNonEnumProps(obj, keys) { + var nonEnumIdx = nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto; - data = data ? data.call(self, query.term, query.page, query.context) : null; - url = (typeof url === 'function') ? url.call(self, query.term, query.page, query.context) : url; + // Constructor is a special case. + var prop = 'constructor'; + if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop); - if (handler && typeof handler.abort === "function") { handler.abort(); } + while (nonEnumIdx--) { + prop = nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) { + keys.push(prop); + } + } + } - if (options.params) { - if ($.isFunction(options.params)) { - $.extend(params, options.params.call(self)); - } else { - $.extend(params, options.params); - } - } + // Retrieve the names of an object's own properties. + // Delegates to **ECMAScript 5**'s native `Object.keys` + _.keys = function(obj) { + if (!_.isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + for (var key in obj) if (_.has(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + }; - $.extend(params, { - url: url, - dataType: options.dataType, - data: data, - success: function (data) { - // TODO - replace query.page with query so users have access to term, page, etc. - // added query as third paramter to keep backwards compatibility - var results = options.results(data, query.page, query); - query.callback(results); - }, - error: function(jqXHR, textStatus, errorThrown){ - var results = { - hasError: true, - jqXHR: jqXHR, - textStatus: textStatus, - errorThrown: errorThrown, - }; + // Retrieve all the property names of an object. + _.allKeys = function(obj) { + if (!_.isObject(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; + }; - query.callback(results); - } - }); - handler = transport.call(self, params); - }, quietMillis); - }; + // Retrieve the values of an object's properties. + _.values = function(obj) { + var keys = _.keys(obj); + var length = keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[keys[i]]; } + return values; + }; - /** - * Produces a query function that works with a local array - * - * @param options object containing configuration parameters. The options parameter can either be an array or an - * object. - * - * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys. - * - * If the object form is used it is assumed that it contains 'data' and 'text' keys. The 'data' key should contain - * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text' - * key can either be a String in which case it is expected that each element in the 'data' array has a key with the - * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract - * the text. - */ - function local(options) { - var data = options, // data elements - dataText, - tmp, - text = function (item) { return ""+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search - - if ($.isArray(data)) { - tmp = data; - data = { results: tmp }; - } + // Returns the results of applying the iteratee to each element of the object + // In contrast to _.map it returns an object + _.mapObject = function(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var keys = _.keys(obj), + length = keys.length, + results = {}, + currentKey; + for (var index = 0; index < length; index++) { + currentKey = keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; + }; - if ($.isFunction(data) === false) { - tmp = data; - data = function() { return tmp; }; - } + // Convert an object into a list of `[key, value]` pairs. + _.pairs = function(obj) { + var keys = _.keys(obj); + var length = keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [keys[i], obj[keys[i]]]; + } + return pairs; + }; - var dataItem = data(); - if (dataItem.text) { - text = dataItem.text; - // if text is not a function we assume it to be a key name - if (!$.isFunction(text)) { - dataText = dataItem.text; // we need to store this in a separate variable because in the next step data gets reset and data.text is no longer available - text = function (item) { return item[dataText]; }; - } - } + // Invert the keys and values of an object. The values must be serializable. + _.invert = function(obj) { + var result = {}; + var keys = _.keys(obj); + for (var i = 0, length = keys.length; i < length; i++) { + result[obj[keys[i]]] = keys[i]; + } + return result; + }; - return function (query) { - var t = query.term, filtered = { results: [] }, process; - if (t === "") { - query.callback(data()); - return; - } + // Return a sorted list of the function names available on the object. + // Aliased as `methods` + _.functions = _.methods = function(obj) { + var names = []; + for (var key in obj) { + if (_.isFunction(obj[key])) names.push(key); + } + return names.sort(); + }; - process = function(datum, collection) { - var group, attr; - datum = datum[0]; - if (datum.children) { - group = {}; - for (attr in datum) { - if (datum.hasOwnProperty(attr)) group[attr]=datum[attr]; - } - group.children=[]; - $(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); }); - if (group.children.length || query.matcher(t, text(group), datum)) { - collection.push(group); - } - } else { - if (query.matcher(t, text(datum), datum)) { - collection.push(datum); - } - } - }; + // Extend a given object with all the properties in passed-in object(s). + _.extend = createAssigner(_.allKeys); - $(data().results).each2(function(i, datum) { process(datum, filtered.results); }); - query.callback(filtered); - }; - } + // Assigns a given object with all the own properties in the passed-in object(s) + // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) + _.extendOwn = _.assign = createAssigner(_.keys); - // TODO javadoc - function tags(data) { - var isFunc = $.isFunction(data); - return function (query) { - var t = query.term, filtered = {results: []}; - var result = isFunc ? data(query) : data; - if ($.isArray(result)) { - $(result).each(function () { - var isObject = this.text !== undefined, - text = isObject ? this.text : this; - if (t === "" || query.matcher(t, text)) { - filtered.results.push(isObject ? this : {id: this, text: this}); - } - }); - query.callback(filtered); - } - }; + // Returns the first key on an object that passes a predicate test + _.findKey = function(obj, predicate, context) { + predicate = cb(predicate, context); + var keys = _.keys(obj), key; + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; + if (predicate(obj[key], key, obj)) return key; } + }; - /** - * Checks if the formatter function should be used. - * - * Throws an error if it is not a function. Returns true if it should be used, - * false if no formatting should be performed. - * - * @param formatter - */ - function checkFormatter(formatter, formatterName) { - if ($.isFunction(formatter)) return true; - if (!formatter) return false; - if (typeof(formatter) === 'string') return true; - throw new Error(formatterName +" must be a string, function, or falsy value"); + // Return a copy of the object only containing the whitelisted properties. + _.pick = function(object, oiteratee, context) { + var result = {}, obj = object, iteratee, keys; + if (obj == null) return result; + if (_.isFunction(oiteratee)) { + keys = _.allKeys(obj); + iteratee = optimizeCb(oiteratee, context); + } else { + keys = flatten(arguments, false, false, 1); + iteratee = function(value, key, obj) { return key in obj; }; + obj = Object(obj); } - - /** - * Returns a given value - * If given a function, returns its output - * - * @param val string|function - * @param context value of "this" to be passed to function - * @returns {*} - */ - function evaluate(val, context) { - if ($.isFunction(val)) { - var args = Array.prototype.slice.call(arguments, 2); - return val.apply(context, args); - } - return val; + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; } + return result; + }; - function countResults(results) { - var count = 0; - $.each(results, function(i, item) { - if (item.children) { - count += countResults(item.children); - } else { - count++; - } - }); - return count; + // Return a copy of the object without the blacklisted properties. + _.omit = function(obj, iteratee, context) { + if (_.isFunction(iteratee)) { + iteratee = _.negate(iteratee); + } else { + var keys = _.map(flatten(arguments, false, false, 1), String); + iteratee = function(value, key) { + return !_.contains(keys, key); + }; } + return _.pick(obj, iteratee, context); + }; - /** - * Default tokenizer. This function uses breaks the input on substring match of any string from the - * opts.tokenSeparators array and uses opts.createSearchChoice to create the choice object. Both of those - * two options have to be defined in order for the tokenizer to work. - * - * @param input text user has typed so far or pasted into the search field - * @param selection currently selected choices - * @param selectCallback function(choice) callback tho add the choice to selection - * @param opts select2's opts - * @return undefined/null to leave the current input unchanged, or a string to change the input to the returned value - */ - function defaultTokenizer(input, selection, selectCallback, opts) { - var original = input, // store the original so we can compare and know if we need to tell the search to update its text - dupe = false, // check for whether a token we extracted represents a duplicate selected choice - token, // token - index, // position at which the separator was found - i, l, // looping variables - separator; // the matched separator - - if (!opts.createSearchChoice || !opts.tokenSeparators || opts.tokenSeparators.length < 1) return undefined; - - while (true) { - index = -1; + // Fill in a given object with default properties. + _.defaults = createAssigner(_.allKeys, true); - for (i = 0, l = opts.tokenSeparators.length; i < l; i++) { - separator = opts.tokenSeparators[i]; - index = input.indexOf(separator); - if (index >= 0) break; - } + // Creates an object that inherits from the given prototype object. + // If additional properties are provided then they will be added to the + // created object. + _.create = function(prototype, props) { + var result = baseCreate(prototype); + if (props) _.extendOwn(result, props); + return result; + }; - if (index < 0) break; // did not find any token separator in the input string, bail + // Create a (shallow-cloned) duplicate of an object. + _.clone = function(obj) { + if (!_.isObject(obj)) return obj; + return _.isArray(obj) ? obj.slice() : _.extend({}, obj); + }; - token = input.substring(0, index); - input = input.substring(index + separator.length); + // Invokes interceptor with the obj, and then returns obj. + // The primary purpose of this method is to "tap into" a method chain, in + // order to perform operations on intermediate results within the chain. + _.tap = function(obj, interceptor) { + interceptor(obj); + return obj; + }; - if (token.length > 0) { - token = opts.createSearchChoice.call(this, token, selection); - if (token !== undefined && token !== null && opts.id(token) !== undefined && opts.id(token) !== null) { - dupe = false; - for (i = 0, l = selection.length; i < l; i++) { - if (equal(opts.id(token), opts.id(selection[i]))) { - dupe = true; break; - } - } + // Returns whether an object has a given set of `key:value` pairs. + _.isMatch = function(object, attrs) { + var keys = _.keys(attrs), length = keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; + }; - if (!dupe) selectCallback(token); - } - } - } - if (original!==input) return input; + // Internal recursive comparison function for `isEqual`. + var eq = function(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // A strict comparison is necessary because `null == undefined`. + if (a == null || b == null) return a === b; + // Unwrap any wrapped objects. + if (a instanceof _) a = a._wrapped; + if (b instanceof _) b = b._wrapped; + // Compare `[[Class]]` names. + var className = toString.call(a); + if (className !== toString.call(b)) return false; + switch (className) { + // Strings, numbers, regular expressions, dates, and booleans are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; } - function cleanupJQueryElements() { - var self = this; + var areArrays = className === '[object Array]'; + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; - $.each(arguments, function (i, element) { - self[element].remove(); - self[element] = null; - }); + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor && + _.isFunction(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } } - - /** - * Creates a new class - * - * @param superClass - * @param methods - */ - function clazz(SuperClass, methods) { - var constructor = function () {}; - constructor.prototype = new SuperClass; - constructor.prototype.constructor = constructor; - constructor.prototype.parent = SuperClass.prototype; - constructor.prototype = $.extend(constructor.prototype, methods); - return constructor; + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. + + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; } - AbstractSelect2 = clazz(Object, { + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); - // abstract - bind: function (func) { - var self = this; - return function () { - func.apply(self, arguments); - }; - }, + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var keys = _.keys(a), key; + length = keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if (_.keys(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = keys[length]; + if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; + }; - // abstract - init: function (opts) { - var results, search, resultsSelector = ".select2-results"; + // Perform a deep comparison to check if two objects are equal. + _.isEqual = function(a, b) { + return eq(a, b); + }; - // prepare options - this.opts = opts = this.prepareOpts(opts); + // Is a given array, string, or object empty? + // An "empty" object has no enumerable own-properties. + _.isEmpty = function(obj) { + if (obj == null) return true; + if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0; + return _.keys(obj).length === 0; + }; - this.id=opts.id; + // Is a given value a DOM element? + _.isElement = function(obj) { + return !!(obj && obj.nodeType === 1); + }; - // destroy if called on an existing component - if (opts.element.data("select2") !== undefined && - opts.element.data("select2") !== null) { - opts.element.data("select2").destroy(); - } + // Is a given value an array? + // Delegates to ECMA5's native Array.isArray + _.isArray = nativeIsArray || function(obj) { + return toString.call(obj) === '[object Array]'; + }; - this.container = this.createContainer(); + // Is a given variable an object? + _.isObject = function(obj) { + var type = typeof obj; + return type === 'function' || type === 'object' && !!obj; + }; - this.liveRegion = $("", { - role: "status", - "aria-live": "polite" - }) - .addClass("select2-hidden-accessible") - .appendTo(document.body); + // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError. + _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) { + _['is' + name] = function(obj) { + return toString.call(obj) === '[object ' + name + ']'; + }; + }); - this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid()); - this.containerEventName= this.containerId - .replace(/([.])/g, '_') - .replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1'); - this.container.attr("id", this.containerId); + // Define a fallback version of the method in browsers (ahem, IE < 9), where + // there isn't any inspectable "Arguments" type. + if (!_.isArguments(arguments)) { + _.isArguments = function(obj) { + return _.has(obj, 'callee'); + }; + } - this.container.attr("title", opts.element.attr("title")); + // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8, + // IE 11 (#1621), and in Safari 8 (#1929). + if (typeof /./ != 'function' && typeof Int8Array != 'object') { + _.isFunction = function(obj) { + return typeof obj == 'function' || false; + }; + } - this.body = $("body"); + // Is a given object a finite number? + _.isFinite = function(obj) { + return isFinite(obj) && !isNaN(parseFloat(obj)); + }; - syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass); + // Is the given value `NaN`? (NaN is the only number which does not equal itself). + _.isNaN = function(obj) { + return _.isNumber(obj) && obj !== +obj; + }; - this.container.attr("style", opts.element.attr("style")); - this.container.css(evaluate(opts.containerCss, this.opts.element)); - this.container.addClass(evaluate(opts.containerCssClass, this.opts.element)); + // Is a given value a boolean? + _.isBoolean = function(obj) { + return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; + }; - this.elementTabIndex = this.opts.element.attr("tabindex"); + // Is a given value equal to null? + _.isNull = function(obj) { + return obj === null; + }; - // swap container for the element - this.opts.element - .data("select2", this) - .attr("tabindex", "-1") - .before(this.container) - .on("click.select2", killEvent); // do not leak click events + // Is a given variable undefined? + _.isUndefined = function(obj) { + return obj === void 0; + }; - this.container.data("select2", this); + // Shortcut function for checking if an object has a given property directly + // on itself (in other words, not on a prototype). + _.has = function(obj, key) { + return obj != null && hasOwnProperty.call(obj, key); + }; - this.dropdown = this.container.find(".select2-drop"); + // Utility Functions + // ----------------- - syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass); + // Run Underscore.js in *noConflict* mode, returning the `_` variable to its + // previous owner. Returns a reference to the Underscore object. + _.noConflict = function() { + root._ = previousUnderscore; + return this; + }; - this.dropdown.addClass(evaluate(opts.dropdownCssClass, this.opts.element)); - this.dropdown.data("select2", this); - this.dropdown.on("click", killEvent); + // Keep the identity function around for default iteratees. + _.identity = function(value) { + return value; + }; - this.results = results = this.container.find(resultsSelector); - this.search = search = this.container.find("input.select2-input"); + // Predicate-generating functions. Often useful outside of Underscore. + _.constant = function(value) { + return function() { + return value; + }; + }; - this.queryCount = 0; - this.resultsPage = 0; - this.context = null; + _.noop = function(){}; - // initialize the container - this.initContainer(); + _.property = property; - this.container.on("click", killEvent); + // Generates a function for a given object that returns a given property. + _.propertyOf = function(obj) { + return obj == null ? function(){} : function(key) { + return obj[key]; + }; + }; - installFilteredMouseMove(this.results); + // Returns a predicate for checking whether an object has a given set of + // `key:value` pairs. + _.matcher = _.matches = function(attrs) { + attrs = _.extendOwn({}, attrs); + return function(obj) { + return _.isMatch(obj, attrs); + }; + }; - this.dropdown.on("mousemove-filtered", resultsSelector, this.bind(this.highlightUnderEvent)); - this.dropdown.on("touchstart touchmove touchend", resultsSelector, this.bind(function (event) { - this._touchEvent = true; - this.highlightUnderEvent(event); - })); - this.dropdown.on("touchmove", resultsSelector, this.bind(this.touchMoved)); - this.dropdown.on("touchstart touchend", resultsSelector, this.bind(this.clearTouchMoved)); - - // Waiting for a click event on touch devices to select option and hide dropdown - // otherwise click will be triggered on an underlying element - this.dropdown.on('click', this.bind(function (event) { - if (this._touchEvent) { - this._touchEvent = false; - this.selectHighlighted(); - } - })); + // Run a function **n** times. + _.times = function(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = optimizeCb(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; + }; - installDebouncedScroll(80, this.results); - this.dropdown.on("scroll-debounced", resultsSelector, this.bind(this.loadMoreIfNeeded)); + // Return a random integer between min and max (inclusive). + _.random = function(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); + }; - // do not propagate change event from the search field out of the component - $(this.container).on("change", ".select2-input", function(e) {e.stopPropagation();}); - $(this.dropdown).on("change", ".select2-input", function(e) {e.stopPropagation();}); + // A (possibly faster) way to get the current timestamp as an integer. + _.now = Date.now || function() { + return new Date().getTime(); + }; - // if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel - if ($.fn.mousewheel) { - results.mousewheel(function (e, delta, deltaX, deltaY) { - var top = results.scrollTop(); - if (deltaY > 0 && top - deltaY <= 0) { - results.scrollTop(0); - killEvent(e); - } else if (deltaY < 0 && results.get(0).scrollHeight - results.scrollTop() + deltaY <= results.height()) { - results.scrollTop(results.get(0).scrollHeight - results.height()); - killEvent(e); - } - }); - } + // List of HTML entities for escaping. + var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' + }; + var unescapeMap = _.invert(escapeMap); - installKeyUpChangeEvent(search); - search.on("keyup-change input paste", this.bind(this.updateResults)); - search.on("focus", function () { search.addClass("select2-focused"); }); - search.on("blur", function () { search.removeClass("select2-focused");}); + // Functions for escaping and unescaping strings to/from HTML interpolation. + var createEscaper = function(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped + var source = '(?:' + _.keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; + }; + _.escape = createEscaper(escapeMap); + _.unescape = createEscaper(unescapeMap); + + // If the value of the named `property` is a function then invoke it with the + // `object` as context; otherwise, return it. + _.result = function(object, property, fallback) { + var value = object == null ? void 0 : object[property]; + if (value === void 0) { + value = fallback; + } + return _.isFunction(value) ? value.call(object) : value; + }; - this.dropdown.on("mouseup", resultsSelector, this.bind(function (e) { - if ($(e.target).closest(".select2-result-selectable").length > 0) { - this.highlightUnderEvent(e); - this.selectHighlighted(e); - } - })); + // Generate a unique integer id (unique within the entire client session). + // Useful for temporary DOM ids. + var idCounter = 0; + _.uniqueId = function(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; + }; - // trap all mouse events from leaving the dropdown. sometimes there may be a modal that is listening - // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's - // dom it will trigger the popup close, which is not what we want - // focusin can cause focus wars between modals and select2 since the dropdown is outside the modal. - this.dropdown.on("click mouseup mousedown touchstart touchend focusin", function (e) { e.stopPropagation(); }); + // By default, Underscore uses ERB-style template delimiters, change the + // following template settings to use alternative delimiters. + _.templateSettings = { + evaluate : /<%([\s\S]+?)%>/g, + interpolate : /<%=([\s\S]+?)%>/g, + escape : /<%-([\s\S]+?)%>/g + }; - this.nextSearchTerm = undefined; + // When customizing `templateSettings`, if you don't want to define an + // interpolation, evaluation or escaping regex, we need one that is + // guaranteed not to match. + var noMatch = /(.)^/; + + // Certain characters need to be escaped so that they can be put into a + // string literal. + var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' + }; - if ($.isFunction(this.opts.initSelection)) { - // initialize selection based on the current value of the source element - this.initSelection(); + var escaper = /\\|'|\r|\n|\u2028|\u2029/g; - // if the user has provided a function that can set selection based on the value of the source element - // we monitor the change event on the element and trigger it, allowing for two way synchronization - this.monitorSource(); - } + var escapeChar = function(match) { + return '\\' + escapes[match]; + }; - if (opts.maximumInputLength !== null) { - this.search.attr("maxlength", opts.maximumInputLength); - } + // JavaScript micro-templating, similar to John Resig's implementation. + // Underscore templating handles arbitrary delimiters, preserves whitespace, + // and correctly escapes quotes within interpolated code. + // NB: `oldSettings` only exists for backwards compatibility. + _.template = function(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = _.defaults({}, settings, _.templateSettings); + + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); + + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escaper, escapeChar); + index = offset + match.length; - var disabled = opts.element.prop("disabled"); - if (disabled === undefined) disabled = false; - this.enable(!disabled); + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } - var readonly = opts.element.prop("readonly"); - if (readonly === undefined) readonly = false; - this.readonly(readonly); + // Adobe VMs need the match returned to produce the correct offest. + return match; + }); + source += "';\n"; - // Calculate size of scrollbar - scrollBarDimensions = scrollBarDimensions || measureScrollbar(); + // If a variable is not specified, place data values in local scope. + if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; - this.autofocus = opts.element.prop("autofocus"); - opts.element.prop("autofocus", false); - if (this.autofocus) this.focus(); + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; - this.search.attr("placeholder", opts.searchInputPlaceholder); - }, + try { + var render = new Function(settings.variable || 'obj', '_', source); + } catch (e) { + e.source = source; + throw e; + } - // abstract - destroy: function () { - var element=this.opts.element, select2 = element.data("select2"), self = this; + var template = function(data) { + return render.call(this, data, _); + }; - this.close(); + // Provide the compiled source as a convenience for precompilation. + var argument = settings.variable || 'obj'; + template.source = 'function(' + argument + '){\n' + source + '}'; - if (element.length && element[0].detachEvent) { - element.each(function () { - this.detachEvent("onpropertychange", self._sync); - }); - } - if (this.propertyObserver) { - this.propertyObserver.disconnect(); - this.propertyObserver = null; - } - this._sync = null; + return template; + }; - if (select2 !== undefined) { - select2.container.remove(); - select2.liveRegion.remove(); - select2.dropdown.remove(); - element - .removeClass("select2-offscreen") - .removeData("select2") - .off(".select2") - .prop("autofocus", this.autofocus || false); - if (this.elementTabIndex) { - element.attr({tabindex: this.elementTabIndex}); - } else { - element.removeAttr("tabindex"); - } - element.show(); - } + // Add a "chain" function. Start chaining a wrapped Underscore object. + _.chain = function(obj) { + var instance = _(obj); + instance._chain = true; + return instance; + }; - cleanupJQueryElements.call(this, - "container", - "liveRegion", - "dropdown", - "results", - "search" - ); - }, + // OOP + // --------------- + // If Underscore is called as a function, it returns a wrapped object that + // can be used OO-style. This wrapper holds altered versions of all the + // underscore functions. Wrapped objects may be chained. - // abstract - optionToData: function(element) { - if (element.is("option")) { - return { - id:element.prop("value"), - text:element.text(), - element: element.get(), - css: element.attr("class"), - disabled: element.prop("disabled"), - locked: equal(element.attr("locked"), "locked") || equal(element.data("locked"), true) - }; - } else if (element.is("optgroup")) { - return { - text:element.attr("label"), - children:[], - element: element.get(), - css: element.attr("class") - }; - } - }, + // Helper function to continue chaining intermediate results. + var result = function(instance, obj) { + return instance._chain ? _(obj).chain() : obj; + }; - // abstract - prepareOpts: function (opts) { - var element, select, idKey, ajaxUrl, self = this; + // Add your own custom functions to the Underscore object. + _.mixin = function(obj) { + _.each(_.functions(obj), function(name) { + var func = _[name] = obj[name]; + _.prototype[name] = function() { + var args = [this._wrapped]; + push.apply(args, arguments); + return result(this, func.apply(_, args)); + }; + }); + }; - element = opts.element; + // Add all of the Underscore functions to the wrapper object. + _.mixin(_); + + // Add all mutator Array functions to the wrapper. + _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + _.prototype[name] = function() { + var obj = this._wrapped; + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0]; + return result(this, obj); + }; + }); - if (element.get(0).tagName.toLowerCase() === "select") { - this.select = select = opts.element; - } + // Add all accessor Array functions to the wrapper. + _.each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + _.prototype[name] = function() { + return result(this, method.apply(this._wrapped, arguments)); + }; + }); - if (select) { - // these options are not allowed when attached to a select because they are picked up off the element itself - $.each(["id", "multiple", "ajax", "query", "createSearchChoice", "initSelection", "data", "tags"], function () { - if (this in opts) { - throw new Error("Option '" + this + "' is not allowed for Select2 when attached to a ", - "
", - " ", - "
    ", - "
", - "
"].join("")); - return container; }, - // single - enableInterface: function() { - if (this.parent.enableInterface.apply(this, arguments)) { - this.focusser.prop("disabled", !this.isInterfaceEnabled()); + orderPatterns: function (patterns) { + // XXX: Bit of a hack. We need the validation pattern to be + // parsed and initiated before the inject pattern. So we make + // sure here, that it appears first. Not sure what would be + // the best solution. Perhaps some kind of way to register + // patterns "before" or "after" other patterns. + if (_.contains(patterns, "validation") && _.contains(patterns, "inject")) { + patterns.splice(patterns.indexOf("validation"), 1); + patterns.unshift("validation"); } + return patterns; }, - // single - opening: function () { - var el, range, len; + scan: function registryScan(content, patterns, trigger) { + var selectors = [], $match, plog; + patterns = this.orderPatterns(patterns || Object.keys(registry.patterns)); + patterns.forEach(_.partial(this.transformPattern, _, content)); + patterns = _.each(patterns, function (name) { + var pattern = registry.patterns[name]; + if (pattern.trigger) { + selectors.unshift(pattern.trigger); + } + }); + $match = $(content).findInclusive(selectors.join(",")); // Find all DOM elements belonging to a pattern + $match = $match.filter(function() { return $(this).parents("pre").length === 0; }); + $match = $match.filter(":not(.cant-touch-this)"); + + // walk list backwards and initialize patterns inside-out. + $match.toArray().reduceRight(function registryInitPattern(acc, el) { + patterns.forEach(_.partial(this.initPattern, _, el, trigger)); + }.bind(this), null); + $("body").addClass("patterns-loaded"); + }, - if (this.opts.minimumResultsForSearch >= 0) { - this.showSearch(true); + register: function registry_register(pattern, name) { + var plugin_name, jquery_plugin; + name = name || pattern.name; + if (!name) { + log.error("Pattern lacks a name:", pattern); + return false; + } + if (registry.patterns[name]) { + log.error("Already have a pattern called: " + name); + return false; } - this.parent.opening.apply(this, arguments); - - if (this.showSearchInput !== false) { - // IE appends focusser.val() at the end of field :/ so we manually insert it at the beginning using a range - // all other browsers handle this just fine + // register pattern to be used for scanning new content + registry.patterns[name] = pattern; - this.search.val(this.focusser.val()); + // register pattern as jquery plugin + if (pattern.jquery_plugin) { + plugin_name = ("pat-" + name) + .replace(/-([a-zA-Z])/g, function(match, p1) { + return p1.toUpperCase(); + }); + $.fn[plugin_name] = utils.jqueryPlugin(pattern); + // BBB 2012-12-10 and also for Mockup patterns. + $.fn[plugin_name.replace(/^pat/, "pattern")] = $.fn[plugin_name]; } - if (this.opts.shouldFocusInput(this)) { - this.search.focus(); - // move the cursor to the end after focussing, otherwise it will be at the beginning and - // new text will appear *before* focusser.val() - el = this.search.get(0); - if (el.createTextRange) { - range = el.createTextRange(); - range.collapse(false); - range.select(); - } else if (el.setSelectionRange) { - len = this.search.val().length; - el.setSelectionRange(len, len); - } + log.debug("Registered pattern:", name, pattern); + if (registry.initialized) { + registry.scan(document.body, [name]); } + return true; + } + }; - // initializes search's value with nextSearchTerm (if defined by user) - // ignore nextSearchTerm if the dropdown is opened by the user pressing a letter - if(this.search.val() === "") { - if(this.nextSearchTerm != undefined){ - this.search.val(this.nextSearchTerm); - this.search.select(); - } + $(document).on("patterns-injected.patterns", + function registry_onInject(ev, config, trigger_el, injected_el) { + if (injected_el.nodeType !== TEXT_NODE && injected_el !== COMMENT_NODE) { + registry.scan(injected_el, null, {type: "injection", element: trigger_el}); + $(injected_el).trigger("patterns-injected-scanned"); } + } + ); + return registry; +}); +// jshint indent: 4, browser: true, jquery: true, quotmark: double +// vim: sw=4 expandtab +; +define('pat-mockup-parser',[ + 'jquery' +], function($) { + 'use strict'; - this.focusser.prop("disabled", true).val(""); - this.updateResults(true); - this.opts.element.trigger($.Event("select2-open")); - }, - - // single - close: function () { - if (!this.opened()) return; - this.parent.close.apply(this, arguments); - - this.focusser.prop("disabled", false); - - if (this.opts.shouldFocusInput(this)) { - this.focusser.focus(); + var parser = { + getOptions: function getOptions($el, patternName, options) { + /* This is the Mockup parser. An alternative parser for Patternslib + * patterns. + * + * NOTE: Use of the Mockup parser is discouraged and is added here for + * legacy support for the Plone Mockup project. + * + * It parses a DOM element for pattern configuration options. + */ + options = options || {}; + // get options from parent element first, stop if element tag name is 'body' + if ($el.length !== 0 && !$.nodeName($el[0], 'body')) { + options = getOptions($el.parent(), patternName, options); } - }, - - // single - focus: function () { - if (this.opened()) { - this.close(); - } else { - this.focusser.prop("disabled", false); - if (this.opts.shouldFocusInput(this)) { - this.focusser.focus(); + // collect all options from element + var elOptions = {}; + if ($el.length !== 0) { + elOptions = $el.data('pat-' + patternName); + if (elOptions) { + // parse options if string + if (typeof(elOptions) === 'string') { + var tmpOptions = {}; + $.each(elOptions.split(';'), + function(i, item) { + item = item.split(':'); + item.reverse(); + var key = item.pop(); + key = key.replace(/^\s+|\s+$/g, ''); // trim + item.reverse(); + var value = item.join(':'); + value = value.replace(/^\s+|\s+$/g, ''); // trim + tmpOptions[key] = value; + } + ); + elOptions = tmpOptions; + } } } - }, + return $.extend(true, {}, options, elOptions); + } + }; + return parser; +}); - // single - isFocused: function () { - return this.container.hasClass("select2-container-active"); - }, +/** + * A Base pattern for creating scoped patterns. It's similar to Backbone's + * Model class. The advantage of this approach is that each instance of a + * pattern has its own local scope (closure). + * + * A new instance is created for each DOM element on which a pattern applies. + * + * You can assign values, such as $el, to `this` for an instance and they + * will remain unique to that instance. + * + * Older Patternslib patterns on the other hand have a single global scope for + * all DOM elements. + */ - // single - cancel: function () { - this.parent.cancel.apply(this, arguments); - this.focusser.prop("disabled", false); +define('pat-base',[ + "jquery", + "pat-registry", + "pat-mockup-parser", + "pat-logger" +], function($, Registry, mockupParser, logger) { + "use strict"; + var log = logger.getLogger("Patternslib Base"); - if (this.opts.shouldFocusInput(this)) { - this.focusser.focus(); + var initBasePattern = function initBasePattern($el, options, trigger) { + var name = this.prototype.name; + var log = logger.getLogger("pat." + name); + var pattern = $el.data("pattern-" + name); + if (pattern === undefined && Registry.patterns[name]) { + try { + options = this.prototype.parser === "mockup" ? mockupParser.getOptions($el, name, options) : options; + pattern = new Registry.patterns[name]($el, options, trigger); + } catch (e) { + log.error("Failed while initializing '" + name + "' pattern.", e); } - }, + $el.data("pattern-" + name, pattern); + } + return pattern; + }; - // single - destroy: function() { - $("label[for='" + this.focusser.attr('id') + "']") - .attr('for', this.opts.element.attr("id")); - this.parent.destroy.apply(this, arguments); + var Base = function($el, options, trigger) { + this.$el = $el; + this.options = $.extend(true, {}, this.defaults || {}, options || {}); + this.init($el, options, trigger); + this.emit("init"); + }; - cleanupJQueryElements.call(this, - "selection", - "focusser" - ); + Base.prototype = { + constructor: Base, + on: function(eventName, eventCallback) { + this.$el.on(eventName + "." + this.name + ".patterns", eventCallback); }, - - // single - initContainer: function () { - - var selection, - container = this.container, - dropdown = this.dropdown, - idSuffix = nextUid(), - elementLabel; - - if (this.opts.minimumResultsForSearch < 0) { - this.showSearch(false); - } else { - this.showSearch(true); + emit: function(eventName, args) { + // args should be a list + if (args === undefined) { + args = []; } + this.$el.trigger(eventName + "." + this.name + ".patterns", args); + } + }; - this.selection = selection = container.find(".select2-choice"); + Base.extend = function(patternProps) { + /* Helper function to correctly set up the prototype chain for new patterns. + */ + var parent = this; + var child; - this.focusser = container.find(".select2-focusser"); + // Check that the required configuration properties are given. + if (!patternProps) { + throw new Error("Pattern configuration properties required when calling Base.extend"); + } - // add aria associations - selection.find(".select2-chosen").attr("id", "select2-chosen-"+idSuffix); - this.focusser.attr("aria-labelledby", "select2-chosen-"+idSuffix); - this.results.attr("id", "select2-results-"+idSuffix); - this.search.attr("aria-owns", "select2-results-"+idSuffix); + // The constructor function for the new subclass is either defined by you + // (the "constructor" property in your `extend` definition), or defaulted + // by us to simply call the parent's constructor. + if (patternProps.hasOwnProperty("constructor")) { + child = patternProps.constructor; + } else { + child = function() { parent.apply(this, arguments); }; + } - // rewrite labels from original element to focusser - this.focusser.attr("id", "s2id_autogen"+idSuffix); + // Allow patterns to be extended indefinitely + child.extend = Base.extend; + + // Static properties required by the Patternslib registry + child.init = initBasePattern; + child.jquery_plugin = true; + child.trigger = patternProps.trigger; + + // Set the prototype chain to inherit from `parent`, without calling + // `parent`'s constructor function. + var Surrogate = function() { this.constructor = child; }; + Surrogate.prototype = parent.prototype; + child.prototype = new Surrogate(); + + // Add pattern's configuration properties (instance properties) to the subclass, + $.extend(true, child.prototype, patternProps); + + // Set a convenience property in case the parent's prototype is needed + // later. + child.__super__ = parent.prototype; + + // Register the pattern in the Patternslib registry. + if (!patternProps.name) { + log.warn("This pattern without a name attribute will not be registered!"); + } else if (!patternProps.trigger) { + log.warn("The pattern '"+patternProps.name+"' does not " + + "have a trigger attribute, it will not be registered."); + } else { + Registry.register(child, patternProps.name); + } + return child; + }; + return Base; +}); - elementLabel = $("label[for='" + this.opts.element.attr("id") + "']"); +(function(root) { +define("select2", ["jquery"], function() { + return (function() { +/* +Copyright 2012 Igor Vaynberg - this.focusser.prev() - .text(elementLabel.text()) - .attr('for', this.focusser.attr('id')); +Version: 3.5.1 Timestamp: Tue Jul 22 18:58:56 EDT 2014 - // Ensure the original element retains an accessible name - var originalTitle = this.opts.element.attr("title"); - this.opts.element.attr("title", (originalTitle || elementLabel.text())); +This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU +General Public License version 2 (the "GPL License"). You may choose either license to govern your +use of this software only upon the condition that you accept all of the terms of either the Apache +License or the GPL License. - this.focusser.attr("tabindex", this.elementTabIndex); +You may obtain a copy of the Apache License and the GPL License at: - // write label for search field using the label from the focusser element - this.search.attr("id", this.focusser.attr('id') + '_search'); + http://www.apache.org/licenses/LICENSE-2.0 + http://www.gnu.org/licenses/gpl-2.0.html - this.search.prev() - .text($("label[for='" + this.focusser.attr('id') + "']").text()) - .attr('for', this.search.attr('id')); +Unless required by applicable law or agreed to in writing, software distributed under the +Apache License or the GPL License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the Apache License and the GPL License for +the specific language governing permissions and limitations under the Apache License and the GPL License. +*/ +(function ($) { + if(typeof $.fn.each2 == "undefined") { + $.extend($.fn, { + /* + * 4-10 times faster .each replacement + * use it carefully, as it overrides jQuery context of element on each iteration + */ + each2 : function (c) { + var j = $([0]), i = -1, l = this.length; + while ( + ++i < l + && (j.context = j[0] = this[i]) + && c.call(j[0], i, j) !== false //"this"=DOM, i=index, j=jQuery object + ); + return this; + } + }); + } +})(jQuery); - this.search.on("keydown", this.bind(function (e) { - if (!this.isInterfaceEnabled()) return; +(function ($, undefined) { + "use strict"; + /*global document, window, jQuery, console */ - // filter 229 keyCodes (input method editor is processing key input) - if (229 == e.keyCode) return; + if (window.Select2 !== undefined) { + return; + } - if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) { - // prevent the page from scrolling - killEvent(e); - return; - } + var KEY, AbstractSelect2, SingleSelect2, MultiSelect2, nextUid, sizer, + lastMousePosition={x:0,y:0}, $document, scrollBarDimensions, - switch (e.which) { - case KEY.UP: - case KEY.DOWN: - this.moveHighlight((e.which === KEY.UP) ? -1 : 1); - killEvent(e); - return; - case KEY.ENTER: - this.selectHighlighted(); - killEvent(e); - return; - case KEY.TAB: - this.selectHighlighted({noFocus: true}); - return; - case KEY.ESC: - this.cancel(e); - killEvent(e); - return; - } - })); - - this.search.on("blur", this.bind(function(e) { - // a workaround for chrome to keep the search field focussed when the scroll bar is used to scroll the dropdown. - // without this the search field loses focus which is annoying - if (document.activeElement === this.body.get(0)) { - window.setTimeout(this.bind(function() { - if (this.opened()) { - this.search.focus(); - } - }), 0); - } - })); - - this.focusser.on("keydown", this.bind(function (e) { - if (!this.isInterfaceEnabled()) return; - - if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) { - return; - } - - if (this.opts.openOnEnter === false && e.which === KEY.ENTER) { - killEvent(e); - return; - } - - if (e.which == KEY.DOWN || e.which == KEY.UP - || (e.which == KEY.ENTER && this.opts.openOnEnter)) { + KEY = { + TAB: 9, + ENTER: 13, + ESC: 27, + SPACE: 32, + LEFT: 37, + UP: 38, + RIGHT: 39, + DOWN: 40, + SHIFT: 16, + CTRL: 17, + ALT: 18, + PAGE_UP: 33, + PAGE_DOWN: 34, + HOME: 36, + END: 35, + BACKSPACE: 8, + DELETE: 46, + isArrow: function (k) { + k = k.which ? k.which : k; + switch (k) { + case KEY.LEFT: + case KEY.RIGHT: + case KEY.UP: + case KEY.DOWN: + return true; + } + return false; + }, + isControl: function (e) { + var k = e.which; + switch (k) { + case KEY.SHIFT: + case KEY.CTRL: + case KEY.ALT: + return true; + } - if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) return; + if (e.metaKey) return true; - this.open(); - killEvent(e); - return; - } + return false; + }, + isFunctionKey: function (k) { + k = k.which ? k.which : k; + return k >= 112 && k <= 123; + } + }, + MEASURE_SCROLLBAR_TEMPLATE = "
", - if (e.which == KEY.DELETE || e.which == KEY.BACKSPACE) { - if (this.opts.allowClear) { - this.clear(); - } - killEvent(e); - return; - } - })); + DIACRITICS = {"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"A","\u01FA":"A","\u01CD":"A","\u0200":"A","\u0202":"A","\u1EA0":"A","\u1EAC":"A","\u1EB6":"A","\u1E00":"A","\u0104":"A","\u023A":"A","\u2C6F":"A","\uA732":"AA","\u00C6":"AE","\u01FC":"AE","\u01E2":"AE","\uA734":"AO","\uA736":"AU","\uA738":"AV","\uA73A":"AV","\uA73C":"AY","\u24B7":"B","\uFF22":"B","\u1E02":"B","\u1E04":"B","\u1E06":"B","\u0243":"B","\u0182":"B","\u0181":"B","\u24B8":"C","\uFF23":"C","\u0106":"C","\u0108":"C","\u010A":"C","\u010C":"C","\u00C7":"C","\u1E08":"C","\u0187":"C","\u023B":"C","\uA73E":"C","\u24B9":"D","\uFF24":"D","\u1E0A":"D","\u010E":"D","\u1E0C":"D","\u1E10":"D","\u1E12":"D","\u1E0E":"D","\u0110":"D","\u018B":"D","\u018A":"D","\u0189":"D","\uA779":"D","\u01F1":"DZ","\u01C4":"DZ","\u01F2":"Dz","\u01C5":"Dz","\u24BA":"E","\uFF25":"E","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"E","\u1EBA":"E","\u011A":"E","\u0204":"E","\u0206":"E","\u1EB8":"E","\u1EC6":"E","\u0228":"E","\u1E1C":"E","\u0118":"E","\u1E18":"E","\u1E1A":"E","\u0190":"E","\u018E":"E","\u24BB":"F","\uFF26":"F","\u1E1E":"F","\u0191":"F","\uA77B":"F","\u24BC":"G","\uFF27":"G","\u01F4":"G","\u011C":"G","\u1E20":"G","\u011E":"G","\u0120":"G","\u01E6":"G","\u0122":"G","\u01E4":"G","\u0193":"G","\uA7A0":"G","\uA77D":"G","\uA77E":"G","\u24BD":"H","\uFF28":"H","\u0124":"H","\u1E22":"H","\u1E26":"H","\u021E":"H","\u1E24":"H","\u1E28":"H","\u1E2A":"H","\u0126":"H","\u2C67":"H","\u2C75":"H","\uA78D":"H","\u24BE":"I","\uFF29":"I","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"I","\u1E2E":"I","\u1EC8":"I","\u01CF":"I","\u0208":"I","\u020A":"I","\u1ECA":"I","\u012E":"I","\u1E2C":"I","\u0197":"I","\u24BF":"J","\uFF2A":"J","\u0134":"J","\u0248":"J","\u24C0":"K","\uFF2B":"K","\u1E30":"K","\u01E8":"K","\u1E32":"K","\u0136":"K","\u1E34":"K","\u0198":"K","\u2C69":"K","\uA740":"K","\uA742":"K","\uA744":"K","\uA7A2":"K","\u24C1":"L","\uFF2C":"L","\u013F":"L","\u0139":"L","\u013D":"L","\u1E36":"L","\u1E38":"L","\u013B":"L","\u1E3C":"L","\u1E3A":"L","\u0141":"L","\u023D":"L","\u2C62":"L","\u2C60":"L","\uA748":"L","\uA746":"L","\uA780":"L","\u01C7":"LJ","\u01C8":"Lj","\u24C2":"M","\uFF2D":"M","\u1E3E":"M","\u1E40":"M","\u1E42":"M","\u2C6E":"M","\u019C":"M","\u24C3":"N","\uFF2E":"N","\u01F8":"N","\u0143":"N","\u00D1":"N","\u1E44":"N","\u0147":"N","\u1E46":"N","\u0145":"N","\u1E4A":"N","\u1E48":"N","\u0220":"N","\u019D":"N","\uA790":"N","\uA7A4":"N","\u01CA":"NJ","\u01CB":"Nj","\u24C4":"O","\uFF2F":"O","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"O","\u022A":"O","\u1ECE":"O","\u0150":"O","\u01D1":"O","\u020C":"O","\u020E":"O","\u01A0":"O","\u1EDC":"O","\u1EDA":"O","\u1EE0":"O","\u1EDE":"O","\u1EE2":"O","\u1ECC":"O","\u1ED8":"O","\u01EA":"O","\u01EC":"O","\u00D8":"O","\u01FE":"O","\u0186":"O","\u019F":"O","\uA74A":"O","\uA74C":"O","\u01A2":"OI","\uA74E":"OO","\u0222":"OU","\u24C5":"P","\uFF30":"P","\u1E54":"P","\u1E56":"P","\u01A4":"P","\u2C63":"P","\uA750":"P","\uA752":"P","\uA754":"P","\u24C6":"Q","\uFF31":"Q","\uA756":"Q","\uA758":"Q","\u024A":"Q","\u24C7":"R","\uFF32":"R","\u0154":"R","\u1E58":"R","\u0158":"R","\u0210":"R","\u0212":"R","\u1E5A":"R","\u1E5C":"R","\u0156":"R","\u1E5E":"R","\u024C":"R","\u2C64":"R","\uA75A":"R","\uA7A6":"R","\uA782":"R","\u24C8":"S","\uFF33":"S","\u1E9E":"S","\u015A":"S","\u1E64":"S","\u015C":"S","\u1E60":"S","\u0160":"S","\u1E66":"S","\u1E62":"S","\u1E68":"S","\u0218":"S","\u015E":"S","\u2C7E":"S","\uA7A8":"S","\uA784":"S","\u24C9":"T","\uFF34":"T","\u1E6A":"T","\u0164":"T","\u1E6C":"T","\u021A":"T","\u0162":"T","\u1E70":"T","\u1E6E":"T","\u0166":"T","\u01AC":"T","\u01AE":"T","\u023E":"T","\uA786":"T","\uA728":"TZ","\u24CA":"U","\uFF35":"U","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"U","\u01DB":"U","\u01D7":"U","\u01D5":"U","\u01D9":"U","\u1EE6":"U","\u016E":"U","\u0170":"U","\u01D3":"U","\u0214":"U","\u0216":"U","\u01AF":"U","\u1EEA":"U","\u1EE8":"U","\u1EEE":"U","\u1EEC":"U","\u1EF0":"U","\u1EE4":"U","\u1E72":"U","\u0172":"U","\u1E76":"U","\u1E74":"U","\u0244":"U","\u24CB":"V","\uFF36":"V","\u1E7C":"V","\u1E7E":"V","\u01B2":"V","\uA75E":"V","\u0245":"V","\uA760":"VY","\u24CC":"W","\uFF37":"W","\u1E80":"W","\u1E82":"W","\u0174":"W","\u1E86":"W","\u1E84":"W","\u1E88":"W","\u2C72":"W","\u24CD":"X","\uFF38":"X","\u1E8A":"X","\u1E8C":"X","\u24CE":"Y","\uFF39":"Y","\u1EF2":"Y","\u00DD":"Y","\u0176":"Y","\u1EF8":"Y","\u0232":"Y","\u1E8E":"Y","\u0178":"Y","\u1EF6":"Y","\u1EF4":"Y","\u01B3":"Y","\u024E":"Y","\u1EFE":"Y","\u24CF":"Z","\uFF3A":"Z","\u0179":"Z","\u1E90":"Z","\u017B":"Z","\u017D":"Z","\u1E92":"Z","\u1E94":"Z","\u01B5":"Z","\u0224":"Z","\u2C7F":"Z","\u2C6B":"Z","\uA762":"Z","\u24D0":"a","\uFF41":"a","\u1E9A":"a","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"a","\u01FB":"a","\u01CE":"a","\u0201":"a","\u0203":"a","\u1EA1":"a","\u1EAD":"a","\u1EB7":"a","\u1E01":"a","\u0105":"a","\u2C65":"a","\u0250":"a","\uA733":"aa","\u00E6":"ae","\u01FD":"ae","\u01E3":"ae","\uA735":"ao","\uA737":"au","\uA739":"av","\uA73B":"av","\uA73D":"ay","\u24D1":"b","\uFF42":"b","\u1E03":"b","\u1E05":"b","\u1E07":"b","\u0180":"b","\u0183":"b","\u0253":"b","\u24D2":"c","\uFF43":"c","\u0107":"c","\u0109":"c","\u010B":"c","\u010D":"c","\u00E7":"c","\u1E09":"c","\u0188":"c","\u023C":"c","\uA73F":"c","\u2184":"c","\u24D3":"d","\uFF44":"d","\u1E0B":"d","\u010F":"d","\u1E0D":"d","\u1E11":"d","\u1E13":"d","\u1E0F":"d","\u0111":"d","\u018C":"d","\u0256":"d","\u0257":"d","\uA77A":"d","\u01F3":"dz","\u01C6":"dz","\u24D4":"e","\uFF45":"e","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"e","\u1EBB":"e","\u011B":"e","\u0205":"e","\u0207":"e","\u1EB9":"e","\u1EC7":"e","\u0229":"e","\u1E1D":"e","\u0119":"e","\u1E19":"e","\u1E1B":"e","\u0247":"e","\u025B":"e","\u01DD":"e","\u24D5":"f","\uFF46":"f","\u1E1F":"f","\u0192":"f","\uA77C":"f","\u24D6":"g","\uFF47":"g","\u01F5":"g","\u011D":"g","\u1E21":"g","\u011F":"g","\u0121":"g","\u01E7":"g","\u0123":"g","\u01E5":"g","\u0260":"g","\uA7A1":"g","\u1D79":"g","\uA77F":"g","\u24D7":"h","\uFF48":"h","\u0125":"h","\u1E23":"h","\u1E27":"h","\u021F":"h","\u1E25":"h","\u1E29":"h","\u1E2B":"h","\u1E96":"h","\u0127":"h","\u2C68":"h","\u2C76":"h","\u0265":"h","\u0195":"hv","\u24D8":"i","\uFF49":"i","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"i","\u1E2F":"i","\u1EC9":"i","\u01D0":"i","\u0209":"i","\u020B":"i","\u1ECB":"i","\u012F":"i","\u1E2D":"i","\u0268":"i","\u0131":"i","\u24D9":"j","\uFF4A":"j","\u0135":"j","\u01F0":"j","\u0249":"j","\u24DA":"k","\uFF4B":"k","\u1E31":"k","\u01E9":"k","\u1E33":"k","\u0137":"k","\u1E35":"k","\u0199":"k","\u2C6A":"k","\uA741":"k","\uA743":"k","\uA745":"k","\uA7A3":"k","\u24DB":"l","\uFF4C":"l","\u0140":"l","\u013A":"l","\u013E":"l","\u1E37":"l","\u1E39":"l","\u013C":"l","\u1E3D":"l","\u1E3B":"l","\u017F":"l","\u0142":"l","\u019A":"l","\u026B":"l","\u2C61":"l","\uA749":"l","\uA781":"l","\uA747":"l","\u01C9":"lj","\u24DC":"m","\uFF4D":"m","\u1E3F":"m","\u1E41":"m","\u1E43":"m","\u0271":"m","\u026F":"m","\u24DD":"n","\uFF4E":"n","\u01F9":"n","\u0144":"n","\u00F1":"n","\u1E45":"n","\u0148":"n","\u1E47":"n","\u0146":"n","\u1E4B":"n","\u1E49":"n","\u019E":"n","\u0272":"n","\u0149":"n","\uA791":"n","\uA7A5":"n","\u01CC":"nj","\u24DE":"o","\uFF4F":"o","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"o","\u022B":"o","\u1ECF":"o","\u0151":"o","\u01D2":"o","\u020D":"o","\u020F":"o","\u01A1":"o","\u1EDD":"o","\u1EDB":"o","\u1EE1":"o","\u1EDF":"o","\u1EE3":"o","\u1ECD":"o","\u1ED9":"o","\u01EB":"o","\u01ED":"o","\u00F8":"o","\u01FF":"o","\u0254":"o","\uA74B":"o","\uA74D":"o","\u0275":"o","\u01A3":"oi","\u0223":"ou","\uA74F":"oo","\u24DF":"p","\uFF50":"p","\u1E55":"p","\u1E57":"p","\u01A5":"p","\u1D7D":"p","\uA751":"p","\uA753":"p","\uA755":"p","\u24E0":"q","\uFF51":"q","\u024B":"q","\uA757":"q","\uA759":"q","\u24E1":"r","\uFF52":"r","\u0155":"r","\u1E59":"r","\u0159":"r","\u0211":"r","\u0213":"r","\u1E5B":"r","\u1E5D":"r","\u0157":"r","\u1E5F":"r","\u024D":"r","\u027D":"r","\uA75B":"r","\uA7A7":"r","\uA783":"r","\u24E2":"s","\uFF53":"s","\u00DF":"s","\u015B":"s","\u1E65":"s","\u015D":"s","\u1E61":"s","\u0161":"s","\u1E67":"s","\u1E63":"s","\u1E69":"s","\u0219":"s","\u015F":"s","\u023F":"s","\uA7A9":"s","\uA785":"s","\u1E9B":"s","\u24E3":"t","\uFF54":"t","\u1E6B":"t","\u1E97":"t","\u0165":"t","\u1E6D":"t","\u021B":"t","\u0163":"t","\u1E71":"t","\u1E6F":"t","\u0167":"t","\u01AD":"t","\u0288":"t","\u2C66":"t","\uA787":"t","\uA729":"tz","\u24E4":"u","\uFF55":"u","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"u","\u01DC":"u","\u01D8":"u","\u01D6":"u","\u01DA":"u","\u1EE7":"u","\u016F":"u","\u0171":"u","\u01D4":"u","\u0215":"u","\u0217":"u","\u01B0":"u","\u1EEB":"u","\u1EE9":"u","\u1EEF":"u","\u1EED":"u","\u1EF1":"u","\u1EE5":"u","\u1E73":"u","\u0173":"u","\u1E77":"u","\u1E75":"u","\u0289":"u","\u24E5":"v","\uFF56":"v","\u1E7D":"v","\u1E7F":"v","\u028B":"v","\uA75F":"v","\u028C":"v","\uA761":"vy","\u24E6":"w","\uFF57":"w","\u1E81":"w","\u1E83":"w","\u0175":"w","\u1E87":"w","\u1E85":"w","\u1E98":"w","\u1E89":"w","\u2C73":"w","\u24E7":"x","\uFF58":"x","\u1E8B":"x","\u1E8D":"x","\u24E8":"y","\uFF59":"y","\u1EF3":"y","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"y","\u1EF7":"y","\u1E99":"y","\u1EF5":"y","\u01B4":"y","\u024F":"y","\u1EFF":"y","\u24E9":"z","\uFF5A":"z","\u017A":"z","\u1E91":"z","\u017C":"z","\u017E":"z","\u1E93":"z","\u1E95":"z","\u01B6":"z","\u0225":"z","\u0240":"z","\u2C6C":"z","\uA763":"z","\u0386":"\u0391","\u0388":"\u0395","\u0389":"\u0397","\u038A":"\u0399","\u03AA":"\u0399","\u038C":"\u039F","\u038E":"\u03A5","\u03AB":"\u03A5","\u038F":"\u03A9","\u03AC":"\u03B1","\u03AD":"\u03B5","\u03AE":"\u03B7","\u03AF":"\u03B9","\u03CA":"\u03B9","\u0390":"\u03B9","\u03CC":"\u03BF","\u03CD":"\u03C5","\u03CB":"\u03C5","\u03B0":"\u03C5","\u03C9":"\u03C9","\u03C2":"\u03C3"}; + $document = $(document); - installKeyUpChangeEvent(this.focusser); - this.focusser.on("keyup-change input", this.bind(function(e) { - if (this.opts.minimumResultsForSearch >= 0) { - e.stopPropagation(); - if (this.opened()) return; - this.open(); - } - })); + nextUid=(function() { var counter=1; return function() { return counter++; }; }()); - selection.on("mousedown touchstart", "abbr", this.bind(function (e) { - if (!this.isInterfaceEnabled()) return; - this.clear(); - killEventImmediately(e); - this.close(); - this.selection.focus(); - })); - selection.on("mousedown touchstart", this.bind(function (e) { - // Prevent IE from generating a click event on the body - reinsertElement(selection); + function reinsertElement(element) { + var placeholder = $(document.createTextNode('')); - if (!this.container.hasClass("select2-container-active")) { - this.opts.element.trigger($.Event("select2-focus")); - } + element.before(placeholder); + placeholder.before(element); + placeholder.remove(); + } - if (this.opened()) { - this.close(); - } else if (this.isInterfaceEnabled()) { - this.open(); - } + function stripDiacritics(str) { + // Used 'uni range + named function' from http://jsperf.com/diacritics/18 + function match(a) { + return DIACRITICS[a] || a; + } - killEvent(e); - })); + return str.replace(/[^\u0000-\u007E]/g, match); + } - dropdown.on("mousedown touchstart", this.bind(function() { - if (this.opts.shouldFocusInput(this)) { - this.search.focus(); - } - })); + function indexOf(value, array) { + var i = 0, l = array.length; + for (; i < l; i = i + 1) { + if (equal(value, array[i])) return i; + } + return -1; + } - selection.on("focus", this.bind(function(e) { - killEvent(e); - })); + function measureScrollbar () { + var $template = $( MEASURE_SCROLLBAR_TEMPLATE ); + $template.appendTo('body'); - this.focusser.on("focus", this.bind(function(){ - if (!this.container.hasClass("select2-container-active")) { - this.opts.element.trigger($.Event("select2-focus")); - } - this.container.addClass("select2-container-active"); - })).on("blur", this.bind(function() { - if (!this.opened()) { - this.container.removeClass("select2-container-active"); - this.opts.element.trigger($.Event("select2-blur")); - } - })); - this.search.on("focus", this.bind(function(){ - if (!this.container.hasClass("select2-container-active")) { - this.opts.element.trigger($.Event("select2-focus")); - } - this.container.addClass("select2-container-active"); - })); + var dim = { + width: $template.width() - $template[0].clientWidth, + height: $template.height() - $template[0].clientHeight + }; + $template.remove(); - this.initContainerWidth(); - this.opts.element.addClass("select2-offscreen"); - this.setPlaceholder(); + return dim; + } - }, + /** + * Compares equality of a and b + * @param a + * @param b + */ + function equal(a, b) { + if (a === b) return true; + if (a === undefined || b === undefined) return false; + if (a === null || b === null) return false; + // Check whether 'a' or 'b' is a string (primitive or object). + // The concatenation of an empty string (+'') converts its argument to a string's primitive. + if (a.constructor === String) return a+'' === b+''; // a+'' - in case 'a' is a String object + if (b.constructor === String) return b+'' === a+''; // b+'' - in case 'b' is a String object + return false; + } - // single - clear: function(triggerChange) { - var data=this.selection.data("select2-data"); - if (data) { // guard against queued quick consecutive clicks - var evt = $.Event("select2-clearing"); - this.opts.element.trigger(evt); - if (evt.isDefaultPrevented()) { - return; - } - var placeholderOption = this.getPlaceholderOption(); - this.opts.element.val(placeholderOption ? placeholderOption.val() : ""); - this.selection.find(".select2-chosen").empty(); - this.selection.removeData("select2-data"); - this.setPlaceholder(); + /** + * Splits the string into an array of values, trimming each value. An empty array is returned for nulls or empty + * strings + * @param string + * @param separator + */ + function splitVal(string, separator) { + var val, i, l; + if (string === null || string.length < 1) return []; + val = string.split(separator); + for (i = 0, l = val.length; i < l; i = i + 1) val[i] = $.trim(val[i]); + return val; + } - if (triggerChange !== false){ - this.opts.element.trigger({ type: "select2-removed", val: this.id(data), choice: data }); - this.triggerChange({removed:data}); - } - } - }, + function getSideBorderPadding(element) { + return element.outerWidth(false) - element.width(); + } - /** - * Sets selection based on source element's value - */ - // single - initSelection: function () { - var selected; - if (this.isPlaceholderOptionSelected()) { - this.updateSelection(null); - this.close(); - this.setPlaceholder(); - } else { - var self = this; - this.opts.initSelection.call(null, this.opts.element, function(selected){ - if (selected !== undefined && selected !== null) { - self.updateSelection(selected); - self.close(); - self.setPlaceholder(); - self.nextSearchTerm = self.opts.nextSearchTerm(selected, self.search.val()); - } - }); + function installKeyUpChangeEvent(element) { + var key="keyup-change-value"; + element.on("keydown", function () { + if ($.data(element, key) === undefined) { + $.data(element, key, element.val()); } - }, - - isPlaceholderOptionSelected: function() { - var placeholderOption; - if (this.getPlaceholder() === undefined) return false; // no placeholder specified so no option should be considered - return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.prop("selected")) - || (this.opts.element.val() === "") - || (this.opts.element.val() === undefined) - || (this.opts.element.val() === null); - }, - - // single - prepareOpts: function () { - var opts = this.parent.prepareOpts.apply(this, arguments), - self=this; - - if (opts.element.get(0).tagName.toLowerCase() === "select") { - // install the selection initializer - opts.initSelection = function (element, callback) { - var selected = element.find("option").filter(function() { return this.selected && !this.disabled }); - // a single select box always has a value, no need to null check 'selected' - callback(self.optionToData(selected)); - }; - } else if ("data" in opts) { - // install default initSelection when applied to hidden input and data is local - opts.initSelection = opts.initSelection || function (element, callback) { - var id = element.val(); - //search in data by id, storing the actual matching item - var match = null; - opts.query({ - matcher: function(term, text, el){ - var is_match = equal(id, opts.id(el)); - if (is_match) { - match = el; - } - return is_match; - }, - callback: !$.isFunction(callback) ? $.noop : function() { - callback(match); - } - }); - }; + }); + element.on("keyup", function () { + var val= $.data(element, key); + if (val !== undefined && element.val() !== val) { + $.removeData(element, key); + element.trigger("keyup-change"); } + }); + } - return opts; - }, - // single - getPlaceholder: function() { - // if a placeholder is specified on a single select without a valid placeholder option ignore it - if (this.select) { - if (this.getPlaceholderOption() === undefined) { - return undefined; - } + /** + * filters mouse events so an event is fired only if the mouse moved. + * + * filters out mouse events that occur when mouse is stationary but + * the elements under the pointer are scrolled. + */ + function installFilteredMouseMove(element) { + element.on("mousemove", function (e) { + var lastpos = lastMousePosition; + if (lastpos === undefined || lastpos.x !== e.pageX || lastpos.y !== e.pageY) { + $(e.target).trigger("mousemove-filtered", e); } + }); + } - return this.parent.getPlaceholder.apply(this, arguments); - }, + /** + * Debounces a function. Returns a function that calls the original fn function only if no invocations have been made + * within the last quietMillis milliseconds. + * + * @param quietMillis number of milliseconds to wait before invoking fn + * @param fn function to be debounced + * @param ctx object to be used as this reference within fn + * @return debounced version of fn + */ + function debounce(quietMillis, fn, ctx) { + ctx = ctx || undefined; + var timeout; + return function () { + var args = arguments; + window.clearTimeout(timeout); + timeout = window.setTimeout(function() { + fn.apply(ctx, args); + }, quietMillis); + }; + } - // single - setPlaceholder: function () { - var placeholder = this.getPlaceholder(); + function installDebouncedScroll(threshold, element) { + var notify = debounce(threshold, function (e) { element.trigger("scroll-debounced", e);}); + element.on("scroll", function (e) { + if (indexOf(e.target, element.get()) >= 0) notify(e); + }); + } - if (this.isPlaceholderOptionSelected() && placeholder !== undefined) { + function focus($el) { + if ($el[0] === document.activeElement) return; - // check for a placeholder option if attached to a select - if (this.select && this.getPlaceholderOption() === undefined) return; + /* set the focus in a 0 timeout - that way the focus is set after the processing + of the current event has finished - which seems like the only reliable way + to set focus */ + window.setTimeout(function() { + var el=$el[0], pos=$el.val().length, range; - this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(placeholder)); + $el.focus(); - this.selection.addClass("select2-default"); + /* make sure el received focus so we do not error out when trying to manipulate the caret. + sometimes modals or others listeners may steal it after its set */ + var isVisible = (el.offsetWidth > 0 || el.offsetHeight > 0); + if (isVisible && el === document.activeElement) { - this.container.removeClass("select2-allowclear"); + /* after the focus is set move the caret to the end, necessary when we val() + just before setting focus */ + if(el.setSelectionRange) + { + el.setSelectionRange(pos, pos); + } + else if (el.createTextRange) { + range = el.createTextRange(); + range.collapse(false); + range.select(); + } } - }, + }, 0); + } - // single - postprocessResults: function (data, initial, noHighlightUpdate) { - var selected = 0, self = this, showSearchInput = true; + function getCursorInfo(el) { + el = $(el)[0]; + var offset = 0; + var length = 0; + if ('selectionStart' in el) { + offset = el.selectionStart; + length = el.selectionEnd - offset; + } else if ('selection' in document) { + el.focus(); + var sel = document.selection.createRange(); + length = document.selection.createRange().text.length; + sel.moveStart('character', -el.value.length); + offset = sel.text.length - length; + } + return { offset: offset, length: length }; + } - // find the selected element in the result list + function killEvent(event) { + event.preventDefault(); + event.stopPropagation(); + } + function killEventImmediately(event) { + event.preventDefault(); + event.stopImmediatePropagation(); + } - this.findHighlightableChoices().each2(function (i, elm) { - if (equal(self.id(elm.data("select2-data")), self.opts.element.val())) { - selected = i; - return false; - } + function measureTextWidth(e) { + if (!sizer){ + var style = e[0].currentStyle || window.getComputedStyle(e[0], null); + sizer = $(document.createElement("div")).css({ + position: "absolute", + left: "-10000px", + top: "-10000px", + display: "none", + fontSize: style.fontSize, + fontFamily: style.fontFamily, + fontStyle: style.fontStyle, + fontWeight: style.fontWeight, + letterSpacing: style.letterSpacing, + textTransform: style.textTransform, + whiteSpace: "nowrap" }); + sizer.attr("class","select2-sizer"); + $("body").append(sizer); + } + sizer.text(e.val()); + return sizer.width(); + } - // and highlight it - if (noHighlightUpdate !== false) { - if (initial === true && selected >= 0) { - this.highlight(selected); - } else { - this.highlight(0); - } - } + function syncCssClasses(dest, src, adapter) { + var classes, replacements = [], adapted; - // hide the search box if this is the first we got the results and there are enough of them for search + classes = $.trim(dest.attr("class")); - if (initial === true) { - var min = this.opts.minimumResultsForSearch; - if (min >= 0) { - this.showSearch(countResults(data.results) >= min); + if (classes) { + classes = '' + classes; // for IE which returns object + + $(classes.split(/\s+/)).each2(function() { + if (this.indexOf("select2-") === 0) { + replacements.push(this); } - } - }, + }); + } - // single - showSearch: function(showSearchInput) { - if (this.showSearchInput === showSearchInput) return; + classes = $.trim(src.attr("class")); - this.showSearchInput = showSearchInput; + if (classes) { + classes = '' + classes; // for IE which returns object - this.dropdown.find(".select2-search").toggleClass("select2-search-hidden", !showSearchInput); - this.dropdown.find(".select2-search").toggleClass("select2-offscreen", !showSearchInput); - //add "select2-with-searchbox" to the container if search box is shown - $(this.dropdown, this.container).toggleClass("select2-with-searchbox", showSearchInput); - }, + $(classes.split(/\s+/)).each2(function() { + if (this.indexOf("select2-") !== 0) { + adapted = adapter(this); - // single - onSelect: function (data, options) { + if (adapted) { + replacements.push(adapted); + } + } + }); + } - if (!this.triggerSelect(data)) { return; } + dest.attr("class", replacements.join(" ")); + } - var old = this.opts.element.val(), - oldData = this.data(); - this.opts.element.val(this.id(data)); - this.updateSelection(data); + function markMatch(text, term, markup, escapeMarkup) { + var match=stripDiacritics(text.toUpperCase()).indexOf(stripDiacritics(term.toUpperCase())), + tl=term.length; - this.opts.element.trigger({ type: "select2-selected", val: this.id(data), choice: data }); + if (match<0) { + markup.push(escapeMarkup(text)); + return; + } - this.nextSearchTerm = this.opts.nextSearchTerm(data, this.search.val()); - this.close(); + markup.push(escapeMarkup(text.substring(0, match))); + markup.push(""); + markup.push(escapeMarkup(text.substring(match, match + tl))); + markup.push(""); + markup.push(escapeMarkup(text.substring(match + tl, text.length))); + } - if ((!options || !options.noFocus) && this.opts.shouldFocusInput(this)) { - this.focusser.focus(); - } + function defaultEscapeMarkup(markup) { + var replace_map = { + '\\': '\', + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + "/": '/' + }; - if (!equal(old, this.id(data))) { - this.triggerChange({ added: data, removed: oldData }); - } - }, + return String(markup).replace(/[&<>"'\/\\]/g, function (match) { + return replace_map[match]; + }); + } - // single - updateSelection: function (data) { + /** + * Produces an ajax-based query function + * + * @param options object containing configuration parameters + * @param options.params parameter map for the transport ajax call, can contain such options as cache, jsonpCallback, etc. see $.ajax + * @param options.transport function that will be used to execute the ajax request. must be compatible with parameters supported by $.ajax + * @param options.url url for the data + * @param options.data a function(searchTerm, pageNumber, context) that should return an object containing query string parameters for the above url. + * @param options.dataType request data type: ajax, jsonp, other datatypes supported by jQuery's $.ajax function or the transport function if specified + * @param options.quietMillis (optional) milliseconds to wait before making the ajaxRequest, helps debounce the ajax function if invoked too often + * @param options.results a function(remoteData, pageNumber, query) that converts data returned form the remote request to the format expected by Select2. + * The expected format is an object containing the following keys: + * results array of objects that will be used as choices + * more (optional) boolean indicating whether there are more results available + * Example: {results:[{id:1, text:'Red'},{id:2, text:'Blue'}], more:true} + */ + function ajax(options) { + var timeout, // current scheduled but not yet executed request + handler = null, + quietMillis = options.quietMillis || 100, + ajaxUrl = options.url, + self = this; - var container=this.selection.find(".select2-chosen"), formatted, cssClass; + return function (query) { + window.clearTimeout(timeout); + timeout = window.setTimeout(function () { + var data = options.data, // ajax data function + url = ajaxUrl, // ajax url string or function + transport = options.transport || $.fn.select2.ajaxDefaults.transport, + // deprecated - to be removed in 4.0 - use params instead + deprecated = { + type: options.type || 'GET', // set type of request (GET or POST) + cache: options.cache || false, + jsonpCallback: options.jsonpCallback||undefined, + dataType: options.dataType||"json" + }, + params = $.extend({}, $.fn.select2.ajaxDefaults.params, deprecated); - this.selection.data("select2-data", data); + data = data ? data.call(self, query.term, query.page, query.context) : null; + url = (typeof url === 'function') ? url.call(self, query.term, query.page, query.context) : url; - container.empty(); - if (data !== null) { - formatted=this.opts.formatSelection(data, container, this.opts.escapeMarkup); - } - if (formatted !== undefined) { - container.append(formatted); - } - cssClass=this.opts.formatSelectionCssClass(data, container); - if (cssClass !== undefined) { - container.addClass(cssClass); - } + if (handler && typeof handler.abort === "function") { handler.abort(); } - this.selection.removeClass("select2-default"); + if (options.params) { + if ($.isFunction(options.params)) { + $.extend(params, options.params.call(self)); + } else { + $.extend(params, options.params); + } + } - if (this.opts.allowClear && this.getPlaceholder() !== undefined) { - this.container.addClass("select2-allowclear"); - } - }, + $.extend(params, { + url: url, + dataType: options.dataType, + data: data, + success: function (data) { + // TODO - replace query.page with query so users have access to term, page, etc. + // added query as third paramter to keep backwards compatibility + var results = options.results(data, query.page, query); + query.callback(results); + }, + error: function(jqXHR, textStatus, errorThrown){ + var results = { + hasError: true, + jqXHR: jqXHR, + textStatus: textStatus, + errorThrown: errorThrown, + }; - // single - val: function () { - var val, - triggerChange = false, - data = null, - self = this, - oldData = this.data(); + query.callback(results); + } + }); + handler = transport.call(self, params); + }, quietMillis); + }; + } - if (arguments.length === 0) { - return this.opts.element.val(); - } + /** + * Produces a query function that works with a local array + * + * @param options object containing configuration parameters. The options parameter can either be an array or an + * object. + * + * If the array form is used it is assumed that it contains objects with 'id' and 'text' keys. + * + * If the object form is used it is assumed that it contains 'data' and 'text' keys. The 'data' key should contain + * an array of objects that will be used as choices. These objects must contain at least an 'id' key. The 'text' + * key can either be a String in which case it is expected that each element in the 'data' array has a key with the + * value of 'text' which will be used to match choices. Alternatively, text can be a function(item) that can extract + * the text. + */ + function local(options) { + var data = options, // data elements + dataText, + tmp, + text = function (item) { return ""+item.text; }; // function used to retrieve the text portion of a data item that is matched against the search - val = arguments[0]; + if ($.isArray(data)) { + tmp = data; + data = { results: tmp }; + } - if (arguments.length > 1) { - triggerChange = arguments[1]; - } + if ($.isFunction(data) === false) { + tmp = data; + data = function() { return tmp; }; + } - if (this.select) { - this.select - .val(val) - .find("option").filter(function() { return this.selected }).each2(function (i, elm) { - data = self.optionToData(elm); - return false; - }); - this.updateSelection(data); - this.setPlaceholder(); - if (triggerChange) { - this.triggerChange({added: data, removed:oldData}); - } - } else { - // val is an id. !val is true for [undefined,null,'',0] - 0 is legal - if (!val && val !== 0) { - this.clear(triggerChange); - return; - } - if (this.opts.initSelection === undefined) { - throw new Error("cannot call val() if initSelection() is not defined"); - } - this.opts.element.val(val); - this.opts.initSelection(this.opts.element, function(data){ - self.opts.element.val(!data ? "" : self.id(data)); - self.updateSelection(data); - self.setPlaceholder(); - if (triggerChange) { - self.triggerChange({added: data, removed:oldData}); - } - }); + var dataItem = data(); + if (dataItem.text) { + text = dataItem.text; + // if text is not a function we assume it to be a key name + if (!$.isFunction(text)) { + dataText = dataItem.text; // we need to store this in a separate variable because in the next step data gets reset and data.text is no longer available + text = function (item) { return item[dataText]; }; } - }, - - // single - clearSearch: function () { - this.search.val(""); - this.focusser.val(""); - }, + } - // single - data: function(value) { - var data, - triggerChange = false; + return function (query) { + var t = query.term, filtered = { results: [] }, process; + if (t === "") { + query.callback(data()); + return; + } - if (arguments.length === 0) { - data = this.selection.data("select2-data"); - if (data == undefined) data = null; - return data; - } else { - if (arguments.length > 1) { - triggerChange = arguments[1]; - } - if (!value) { - this.clear(triggerChange); + process = function(datum, collection) { + var group, attr; + datum = datum[0]; + if (datum.children) { + group = {}; + for (attr in datum) { + if (datum.hasOwnProperty(attr)) group[attr]=datum[attr]; + } + group.children=[]; + $(datum.children).each2(function(i, childDatum) { process(childDatum, group.children); }); + if (group.children.length || query.matcher(t, text(group), datum)) { + collection.push(group); + } } else { - data = this.data(); - this.opts.element.val(!value ? "" : this.id(value)); - this.updateSelection(value); - if (triggerChange) { - this.triggerChange({added: value, removed:data}); + if (query.matcher(t, text(datum), datum)) { + collection.push(datum); } } + }; + + $(data().results).each2(function(i, datum) { process(datum, filtered.results); }); + query.callback(filtered); + }; + } + + // TODO javadoc + function tags(data) { + var isFunc = $.isFunction(data); + return function (query) { + var t = query.term, filtered = {results: []}; + var result = isFunc ? data(query) : data; + if ($.isArray(result)) { + $(result).each(function () { + var isObject = this.text !== undefined, + text = isObject ? this.text : this; + if (t === "" || query.matcher(t, text)) { + filtered.results.push(isObject ? this : {id: this, text: this}); + } + }); + query.callback(filtered); } - } - }); + }; + } - MultiSelect2 = clazz(AbstractSelect2, { + /** + * Checks if the formatter function should be used. + * + * Throws an error if it is not a function. Returns true if it should be used, + * false if no formatting should be performed. + * + * @param formatter + */ + function checkFormatter(formatter, formatterName) { + if ($.isFunction(formatter)) return true; + if (!formatter) return false; + if (typeof(formatter) === 'string') return true; + throw new Error(formatterName +" must be a string, function, or falsy value"); + } - // multi - createContainer: function () { - var container = $(document.createElement("div")).attr({ - "class": "select2-container select2-container-multi" - }).html([ - "
    ", - "
  • ", - " ", - " ", - "
  • ", - "
", - "
", - "
    ", - "
", - "
"].join("")); - return container; - }, + /** + * Returns a given value + * If given a function, returns its output + * + * @param val string|function + * @param context value of "this" to be passed to function + * @returns {*} + */ + function evaluate(val, context) { + if ($.isFunction(val)) { + var args = Array.prototype.slice.call(arguments, 2); + return val.apply(context, args); + } + return val; + } - // multi - prepareOpts: function () { - var opts = this.parent.prepareOpts.apply(this, arguments), - self=this; + function countResults(results) { + var count = 0; + $.each(results, function(i, item) { + if (item.children) { + count += countResults(item.children); + } else { + count++; + } + }); + return count; + } - // TODO validate placeholder is a string if specified + /** + * Default tokenizer. This function uses breaks the input on substring match of any string from the + * opts.tokenSeparators array and uses opts.createSearchChoice to create the choice object. Both of those + * two options have to be defined in order for the tokenizer to work. + * + * @param input text user has typed so far or pasted into the search field + * @param selection currently selected choices + * @param selectCallback function(choice) callback tho add the choice to selection + * @param opts select2's opts + * @return undefined/null to leave the current input unchanged, or a string to change the input to the returned value + */ + function defaultTokenizer(input, selection, selectCallback, opts) { + var original = input, // store the original so we can compare and know if we need to tell the search to update its text + dupe = false, // check for whether a token we extracted represents a duplicate selected choice + token, // token + index, // position at which the separator was found + i, l, // looping variables + separator; // the matched separator - if (opts.element.get(0).tagName.toLowerCase() === "select") { - // install the selection initializer - opts.initSelection = function (element, callback) { + if (!opts.createSearchChoice || !opts.tokenSeparators || opts.tokenSeparators.length < 1) return undefined; - var data = []; + while (true) { + index = -1; - element.find("option").filter(function() { return this.selected && !this.disabled }).each2(function (i, elm) { - data.push(self.optionToData(elm)); - }); - callback(data); - }; - } else if ("data" in opts) { - // install default initSelection when applied to hidden input and data is local - opts.initSelection = opts.initSelection || function (element, callback) { - var ids = splitVal(element.val(), opts.separator); - //search in data by array of ids, storing matching items in a list - var matches = []; - opts.query({ - matcher: function(term, text, el){ - var is_match = $.grep(ids, function(id) { - return equal(id, opts.id(el)); - }).length; - if (is_match) { - matches.push(el); - } - return is_match; - }, - callback: !$.isFunction(callback) ? $.noop : function() { - // reorder matches based on the order they appear in the ids array because right now - // they are in the order in which they appear in data array - var ordered = []; - for (var i = 0; i < ids.length; i++) { - var id = ids[i]; - for (var j = 0; j < matches.length; j++) { - var match = matches[j]; - if (equal(id, opts.id(match))) { - ordered.push(match); - matches.splice(j, 1); - break; - } - } - } - callback(ordered); - } - }); - }; + for (i = 0, l = opts.tokenSeparators.length; i < l; i++) { + separator = opts.tokenSeparators[i]; + index = input.indexOf(separator); + if (index >= 0) break; } - return opts; - }, + if (index < 0) break; // did not find any token separator in the input string, bail - // multi - selectChoice: function (choice) { + token = input.substring(0, index); + input = input.substring(index + separator.length); - var selected = this.container.find(".select2-search-choice-focus"); - if (selected.length && choice && choice[0] == selected[0]) { + if (token.length > 0) { + token = opts.createSearchChoice.call(this, token, selection); + if (token !== undefined && token !== null && opts.id(token) !== undefined && opts.id(token) !== null) { + dupe = false; + for (i = 0, l = selection.length; i < l; i++) { + if (equal(opts.id(token), opts.id(selection[i]))) { + dupe = true; break; + } + } - } else { - if (selected.length) { - this.opts.element.trigger("choice-deselected", selected); - } - selected.removeClass("select2-search-choice-focus"); - if (choice && choice.length) { - this.close(); - choice.addClass("select2-search-choice-focus"); - this.opts.element.trigger("choice-selected", choice); + if (!dupe) selectCallback(token); } } - }, + } - // multi - destroy: function() { - $("label[for='" + this.search.attr('id') + "']") - .attr('for', this.opts.element.attr("id")); - this.parent.destroy.apply(this, arguments); + if (original!==input) return input; + } - cleanupJQueryElements.call(this, - "searchContainer", - "selection" - ); - }, + function cleanupJQueryElements() { + var self = this; - // multi - initContainer: function () { + $.each(arguments, function (i, element) { + self[element].remove(); + self[element] = null; + }); + } - var selector = ".select2-choices", selection; + /** + * Creates a new class + * + * @param superClass + * @param methods + */ + function clazz(SuperClass, methods) { + var constructor = function () {}; + constructor.prototype = new SuperClass; + constructor.prototype.constructor = constructor; + constructor.prototype.parent = SuperClass.prototype; + constructor.prototype = $.extend(constructor.prototype, methods); + return constructor; + } - this.searchContainer = this.container.find(".select2-search-field"); - this.selection = selection = this.container.find(selector); + AbstractSelect2 = clazz(Object, { - var _this = this; - this.selection.on("click", ".select2-search-choice:not(.select2-locked)", function (e) { - //killEvent(e); - _this.search[0].focus(); - _this.selectChoice($(this)); - }); + // abstract + bind: function (func) { + var self = this; + return function () { + func.apply(self, arguments); + }; + }, - // rewrite labels from original element to focusser - this.search.attr("id", "s2id_autogen"+nextUid()); + // abstract + init: function (opts) { + var results, search, resultsSelector = ".select2-results"; - this.search.prev() - .text($("label[for='" + this.opts.element.attr("id") + "']").text()) - .attr('for', this.search.attr('id')); + // prepare options + this.opts = opts = this.prepareOpts(opts); - this.search.on("input paste", this.bind(function() { - if (this.search.attr('placeholder') && this.search.val().length == 0) return; - if (!this.isInterfaceEnabled()) return; - if (!this.opened()) { - this.open(); - } - })); + this.id=opts.id; - this.search.attr("tabindex", this.elementTabIndex); + // destroy if called on an existing component + if (opts.element.data("select2") !== undefined && + opts.element.data("select2") !== null) { + opts.element.data("select2").destroy(); + } - this.keydowns = 0; - this.search.on("keydown", this.bind(function (e) { - if (!this.isInterfaceEnabled()) return; + this.container = this.createContainer(); - ++this.keydowns; - var selected = selection.find(".select2-search-choice-focus"); - var prev = selected.prev(".select2-search-choice:not(.select2-locked)"); - var next = selected.next(".select2-search-choice:not(.select2-locked)"); - var pos = getCursorInfo(this.search); + this.liveRegion = $("", { + role: "status", + "aria-live": "polite" + }) + .addClass("select2-hidden-accessible") + .appendTo(document.body); - if (selected.length && - (e.which == KEY.LEFT || e.which == KEY.RIGHT || e.which == KEY.BACKSPACE || e.which == KEY.DELETE || e.which == KEY.ENTER)) { - var selectedChoice = selected; - if (e.which == KEY.LEFT && prev.length) { - selectedChoice = prev; - } - else if (e.which == KEY.RIGHT) { - selectedChoice = next.length ? next : null; - } - else if (e.which === KEY.BACKSPACE) { - if (this.unselect(selected.first())) { - this.search.width(10); - selectedChoice = prev.length ? prev : next; - } - } else if (e.which == KEY.DELETE) { - if (this.unselect(selected.first())) { - this.search.width(10); - selectedChoice = next.length ? next : null; - } - } else if (e.which == KEY.ENTER) { - selectedChoice = null; - } + this.containerId="s2id_"+(opts.element.attr("id") || "autogen"+nextUid()); + this.containerEventName= this.containerId + .replace(/([.])/g, '_') + .replace(/([;&,\-\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1'); + this.container.attr("id", this.containerId); - this.selectChoice(selectedChoice); - killEvent(e); - if (!selectedChoice || !selectedChoice.length) { - this.open(); - } - return; - } else if (((e.which === KEY.BACKSPACE && this.keydowns == 1) - || e.which == KEY.LEFT) && (pos.offset == 0 && !pos.length)) { + this.container.attr("title", opts.element.attr("title")); - this.selectChoice(selection.find(".select2-search-choice:not(.select2-locked)").last()); - killEvent(e); - return; - } else { - this.selectChoice(null); - } + this.body = $("body"); - if (this.opened()) { - switch (e.which) { - case KEY.UP: - case KEY.DOWN: - this.moveHighlight((e.which === KEY.UP) ? -1 : 1); - killEvent(e); - return; - case KEY.ENTER: - this.selectHighlighted(); - killEvent(e); - return; - case KEY.TAB: - this.selectHighlighted({noFocus:true}); - this.close(); - return; - case KEY.ESC: - this.cancel(e); - killEvent(e); - return; - } - } + syncCssClasses(this.container, this.opts.element, this.opts.adaptContainerCssClass); - if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) - || e.which === KEY.BACKSPACE || e.which === KEY.ESC) { - return; - } + this.container.attr("style", opts.element.attr("style")); + this.container.css(evaluate(opts.containerCss, this.opts.element)); + this.container.addClass(evaluate(opts.containerCssClass, this.opts.element)); - if (e.which === KEY.ENTER) { - if (this.opts.openOnEnter === false) { - return; - } else if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) { - return; - } - } + this.elementTabIndex = this.opts.element.attr("tabindex"); - this.open(); + // swap container for the element + this.opts.element + .data("select2", this) + .attr("tabindex", "-1") + .before(this.container) + .on("click.select2", killEvent); // do not leak click events - if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) { - // prevent the page from scrolling - killEvent(e); - } + this.container.data("select2", this); - if (e.which === KEY.ENTER) { - // prevent form from being submitted - killEvent(e); - } + this.dropdown = this.container.find(".select2-drop"); - })); + syncCssClasses(this.dropdown, this.opts.element, this.opts.adaptDropdownCssClass); - this.search.on("keyup", this.bind(function (e) { - this.keydowns = 0; - this.resizeSearch(); - }) - ); + this.dropdown.addClass(evaluate(opts.dropdownCssClass, this.opts.element)); + this.dropdown.data("select2", this); + this.dropdown.on("click", killEvent); - this.search.on("blur", this.bind(function(e) { - this.container.removeClass("select2-container-active"); - this.search.removeClass("select2-focused"); - this.selectChoice(null); - if (!this.opened()) this.clearSearch(); - e.stopImmediatePropagation(); - this.opts.element.trigger($.Event("select2-blur")); - })); + this.results = results = this.container.find(resultsSelector); + this.search = search = this.container.find("input.select2-input"); - this.container.on("click", selector, this.bind(function (e) { - if (!this.isInterfaceEnabled()) return; - if ($(e.target).closest(".select2-search-choice").length > 0) { - // clicked inside a select2 search choice, do not open - return; - } - this.selectChoice(null); - this.clearPlaceholder(); - if (!this.container.hasClass("select2-container-active")) { - this.opts.element.trigger($.Event("select2-focus")); - } - this.open(); - this.focusSearch(); - e.preventDefault(); + this.queryCount = 0; + this.resultsPage = 0; + this.context = null; + + // initialize the container + this.initContainer(); + + this.container.on("click", killEvent); + + installFilteredMouseMove(this.results); + + this.dropdown.on("mousemove-filtered", resultsSelector, this.bind(this.highlightUnderEvent)); + this.dropdown.on("touchstart touchmove touchend", resultsSelector, this.bind(function (event) { + this._touchEvent = true; + this.highlightUnderEvent(event); })); + this.dropdown.on("touchmove", resultsSelector, this.bind(this.touchMoved)); + this.dropdown.on("touchstart touchend", resultsSelector, this.bind(this.clearTouchMoved)); - this.container.on("focus", selector, this.bind(function () { - if (!this.isInterfaceEnabled()) return; - if (!this.container.hasClass("select2-container-active")) { - this.opts.element.trigger($.Event("select2-focus")); + // Waiting for a click event on touch devices to select option and hide dropdown + // otherwise click will be triggered on an underlying element + this.dropdown.on('click', this.bind(function (event) { + if (this._touchEvent) { + this._touchEvent = false; + this.selectHighlighted(); } - this.container.addClass("select2-container-active"); - this.dropdown.addClass("select2-drop-active"); - this.clearPlaceholder(); })); - this.initContainerWidth(); - this.opts.element.addClass("select2-offscreen"); - - // set the placeholder if necessary - this.clearSearch(); - }, + installDebouncedScroll(80, this.results); + this.dropdown.on("scroll-debounced", resultsSelector, this.bind(this.loadMoreIfNeeded)); - // multi - enableInterface: function() { - if (this.parent.enableInterface.apply(this, arguments)) { - this.search.prop("disabled", !this.isInterfaceEnabled()); - } - }, + // do not propagate change event from the search field out of the component + $(this.container).on("change", ".select2-input", function(e) {e.stopPropagation();}); + $(this.dropdown).on("change", ".select2-input", function(e) {e.stopPropagation();}); - // multi - initSelection: function () { - var data; - if (this.opts.element.val() === "" && this.opts.element.text() === "") { - this.updateSelection([]); - this.close(); - // set the placeholder if necessary - this.clearSearch(); - } - if (this.select || this.opts.element.val() !== "") { - var self = this; - this.opts.initSelection.call(null, this.opts.element, function(data){ - if (data !== undefined && data !== null) { - self.updateSelection(data); - self.close(); - // set the placeholder if necessary - self.clearSearch(); + // if jquery.mousewheel plugin is installed we can prevent out-of-bounds scrolling of results via mousewheel + if ($.fn.mousewheel) { + results.mousewheel(function (e, delta, deltaX, deltaY) { + var top = results.scrollTop(); + if (deltaY > 0 && top - deltaY <= 0) { + results.scrollTop(0); + killEvent(e); + } else if (deltaY < 0 && results.get(0).scrollHeight - results.scrollTop() + deltaY <= results.height()) { + results.scrollTop(results.get(0).scrollHeight - results.height()); + killEvent(e); } }); } - }, - - // multi - clearSearch: function () { - var placeholder = this.getPlaceholder(), - maxWidth = this.getMaxSearchWidth(); - if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass("select2-focused") === false) { - this.search.val(placeholder).addClass("select2-default"); - // stretch the search box to full width of the container so as much of the placeholder is visible as possible - // we could call this.resizeSearch(), but we do not because that requires a sizer and we do not want to create one so early because of a firefox bug, see #944 - this.search.width(maxWidth > 0 ? maxWidth : this.container.css("width")); - } else { - this.search.val("").width(10); - } - }, + installKeyUpChangeEvent(search); + search.on("keyup-change input paste", this.bind(this.updateResults)); + search.on("focus", function () { search.addClass("select2-focused"); }); + search.on("blur", function () { search.removeClass("select2-focused");}); - // multi - clearPlaceholder: function () { - if (this.search.hasClass("select2-default")) { - this.search.val("").removeClass("select2-default"); - } - }, + this.dropdown.on("mouseup", resultsSelector, this.bind(function (e) { + if ($(e.target).closest(".select2-result-selectable").length > 0) { + this.highlightUnderEvent(e); + this.selectHighlighted(e); + } + })); - // multi - opening: function () { - this.clearPlaceholder(); // should be done before super so placeholder is not used to search - this.resizeSearch(); + // trap all mouse events from leaving the dropdown. sometimes there may be a modal that is listening + // for mouse events outside of itself so it can close itself. since the dropdown is now outside the select2's + // dom it will trigger the popup close, which is not what we want + // focusin can cause focus wars between modals and select2 since the dropdown is outside the modal. + this.dropdown.on("click mouseup mousedown touchstart touchend focusin", function (e) { e.stopPropagation(); }); - this.parent.opening.apply(this, arguments); + this.nextSearchTerm = undefined; - this.focusSearch(); + if ($.isFunction(this.opts.initSelection)) { + // initialize selection based on the current value of the source element + this.initSelection(); - // initializes search's value with nextSearchTerm (if defined by user) - // ignore nextSearchTerm if the dropdown is opened by the user pressing a letter - if(this.search.val() === "") { - if(this.nextSearchTerm != undefined){ - this.search.val(this.nextSearchTerm); - this.search.select(); - } + // if the user has provided a function that can set selection based on the value of the source element + // we monitor the change event on the element and trigger it, allowing for two way synchronization + this.monitorSource(); } - this.updateResults(true); - if (this.opts.shouldFocusInput(this)) { - this.search.focus(); + if (opts.maximumInputLength !== null) { + this.search.attr("maxlength", opts.maximumInputLength); } - this.opts.element.trigger($.Event("select2-open")); - }, - - // multi - close: function () { - if (!this.opened()) return; - this.parent.close.apply(this, arguments); - }, - - // multi - focus: function () { - this.close(); - this.search.focus(); - }, - - // multi - isFocused: function () { - return this.search.hasClass("select2-focused"); - }, - // multi - updateSelection: function (data) { - var ids = [], filtered = [], self = this; + var disabled = opts.element.prop("disabled"); + if (disabled === undefined) disabled = false; + this.enable(!disabled); - // filter out duplicates - $(data).each(function () { - if (indexOf(self.id(this), ids) < 0) { - ids.push(self.id(this)); - filtered.push(this); - } - }); - data = filtered; + var readonly = opts.element.prop("readonly"); + if (readonly === undefined) readonly = false; + this.readonly(readonly); - this.selection.find(".select2-search-choice").remove(); - $(data).each(function () { - self.addSelectedChoice(this); - }); - self.postprocessResults(); - }, + // Calculate size of scrollbar + scrollBarDimensions = scrollBarDimensions || measureScrollbar(); - // multi - tokenize: function() { - var input = this.search.val(); - input = this.opts.tokenizer.call(this, input, this.data(), this.bind(this.onSelect), this.opts); - if (input != null && input != undefined) { - this.search.val(input); - if (input.length > 0) { - this.open(); - } - } + this.autofocus = opts.element.prop("autofocus"); + opts.element.prop("autofocus", false); + if (this.autofocus) this.focus(); + this.search.attr("placeholder", opts.searchInputPlaceholder); }, - // multi - onSelect: function (data, options) { - - if (!this.triggerSelect(data) || data.text === "") { return; } - - this.addSelectedChoice(data); - - this.opts.element.trigger({ type: "selected", val: this.id(data), choice: data }); - - // keep track of the search's value before it gets cleared - this.nextSearchTerm = this.opts.nextSearchTerm(data, this.search.val()); + // abstract + destroy: function () { + var element=this.opts.element, select2 = element.data("select2"), self = this; - this.clearSearch(); - this.updateResults(); + this.close(); - if (this.select || !this.opts.closeOnSelect) this.postprocessResults(data, false, this.opts.closeOnSelect===true); + if (element.length && element[0].detachEvent) { + element.each(function () { + this.detachEvent("onpropertychange", self._sync); + }); + } + if (this.propertyObserver) { + this.propertyObserver.disconnect(); + this.propertyObserver = null; + } + this._sync = null; - if (this.opts.closeOnSelect) { - this.close(); - this.search.width(10); - } else { - if (this.countSelectableResults()>0) { - this.search.width(10); - this.resizeSearch(); - if (this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize()) { - // if we reached max selection size repaint the results so choices - // are replaced with the max selection reached message - this.updateResults(true); - } else { - // initializes search's value with nextSearchTerm and update search result - if(this.nextSearchTerm != undefined){ - this.search.val(this.nextSearchTerm); - this.updateResults(); - this.search.select(); - } - } - this.positionDropdown(); + if (select2 !== undefined) { + select2.container.remove(); + select2.liveRegion.remove(); + select2.dropdown.remove(); + element + .removeClass("select2-offscreen") + .removeData("select2") + .off(".select2") + .prop("autofocus", this.autofocus || false); + if (this.elementTabIndex) { + element.attr({tabindex: this.elementTabIndex}); } else { - // if nothing left to select close - this.close(); - this.search.width(10); + element.removeAttr("tabindex"); } + element.show(); } - // since its not possible to select an element that has already been - // added we do not need to check if this is a new element before firing change - this.triggerChange({ added: data }); - - if (!options || !options.noFocus) - this.focusSearch(); + cleanupJQueryElements.call(this, + "container", + "liveRegion", + "dropdown", + "results", + "search" + ); }, - // multi - cancel: function () { - this.close(); - this.focusSearch(); + // abstract + optionToData: function(element) { + if (element.is("option")) { + return { + id:element.prop("value"), + text:element.text(), + element: element.get(), + css: element.attr("class"), + disabled: element.prop("disabled"), + locked: equal(element.attr("locked"), "locked") || equal(element.data("locked"), true) + }; + } else if (element.is("optgroup")) { + return { + text:element.attr("label"), + children:[], + element: element.get(), + css: element.attr("class") + }; + } }, - addSelectedChoice: function (data) { - var enableChoice = !data.locked, - enabledItem = $( - "
  • " + - "
    " + - " " + - "
  • "), - disabledItem = $( - "
  • " + - "
    " + - "
  • "); - var choice = enableChoice ? enabledItem : disabledItem, - id = this.id(data), - val = this.getVal(), - formatted, - cssClass; + // abstract + prepareOpts: function (opts) { + var element, select, idKey, ajaxUrl, self = this; - formatted=this.opts.formatSelection(data, choice.find("div"), this.opts.escapeMarkup); - if (formatted != undefined) { - choice.find("div").replaceWith("
    "+formatted+"
    "); - } - cssClass=this.opts.formatSelectionCssClass(data, choice.find("div")); - if (cssClass != undefined) { - choice.addClass(cssClass); - } + element = opts.element; - if(enableChoice){ - choice.find(".select2-search-choice-close") - .on("mousedown", killEvent) - .on("click dblclick", this.bind(function (e) { - if (!this.isInterfaceEnabled()) return; + if (element.get(0).tagName.toLowerCase() === "select") { + this.select = select = opts.element; + } - this.unselect($(e.target)); - this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"); - killEvent(e); - this.close(); - this.focusSearch(); - })).on("focus", this.bind(function () { - if (!this.isInterfaceEnabled()) return; - this.container.addClass("select2-container-active"); - this.dropdown.addClass("select2-drop-active"); - })); + if (select) { + // these options are not allowed when attached to a select because they are picked up off the element itself + $.each(["id", "multiple", "ajax", "query", "createSearchChoice", "initSelection", "data", "tags"], function () { + if (this in opts) { + throw new Error("Option '" + this + "' is not allowed for Select2 when attached to a . Attach to instead."); + // safari, chrome, firefox, IE11 + observer = window.MutationObserver || window.WebKitMutationObserver|| window.MozMutationObserver; + if (observer !== undefined) { + if (this.propertyObserver) { delete this.propertyObserver; this.propertyObserver = null; } + this.propertyObserver = new observer(function (mutations) { + $.each(mutations, self._sync); + }); + this.propertyObserver.observe(el.get(0), { attributes:true, subtree:false }); } + }, - // collapse search field into 0 width so its container can be collapsed as well - this.search.width(0); - // hide the container - this.searchContainer.hide(); + // abstract + triggerSelect: function(data) { + var evt = $.Event("select2-selecting", { val: this.id(data), object: data, choice: data }); + this.opts.element.trigger(evt); + return !evt.isDefaultPrevented(); }, - // multi - onSortEnd:function() { + /** + * Triggers the change event on the source element + */ + // abstract + triggerChange: function (details) { - var val=[], self=this; + details = details || {}; + details= $.extend({}, details, { type: "change", val: this.val() }); + // prevents recursive triggering + this.opts.element.data("select2-change-triggered", true); + this.opts.element.trigger(details); + this.opts.element.data("select2-change-triggered", false); - // show search and move it to the end of the list - this.searchContainer.show(); - // make sure the search container is the last item in the list - this.searchContainer.appendTo(this.searchContainer.parent()); - // since we collapsed the width in dragStarted, we resize it here - this.resizeSearch(); + // some validation frameworks ignore the change event and listen instead to keyup, click for selects + // so here we trigger the click event manually + this.opts.element.click(); - // update selection - this.selection.find(".select2-search-choice").each(function() { - val.push(self.opts.id($(this).data("select2-data"))); - }); - this.setVal(val); - this.triggerChange(); + // ValidationEngine ignores the change event and listens instead to blur + // so here we trigger the blur event manually if so desired + if (this.opts.blurOnChange) + this.opts.element.blur(); }, - // multi - data: function(values, triggerChange) { - var self=this, ids, old; - if (arguments.length === 0) { - return this.selection - .children(".select2-search-choice") - .map(function() { return $(this).data("select2-data"); }) - .get(); - } else { - old = this.data(); - if (!values) { values = []; } - ids = $.map(values, function(e) { return self.opts.id(e); }); - this.setVal(ids); - this.updateSelection(values); - this.clearSearch(); - if (triggerChange) { - this.triggerChange(this.buildChangeDetails(old, this.data())); - } - } - } - }); + //abstract + isInterfaceEnabled: function() + { + return this.enabledInterface === true; + }, - $.fn.select2 = function () { + // abstract + enableInterface: function() { + var enabled = this._enabled && !this._readonly, + disabled = !enabled; - var args = Array.prototype.slice.call(arguments, 0), - opts, - select2, - method, value, multiple, - allowedMethods = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "dropdown", "onSortStart", "onSortEnd", "enable", "disable", "readonly", "positionDropdown", "data", "search"], - valueMethods = ["opened", "isFocused", "container", "dropdown"], - propertyMethods = ["val", "data"], - methodsMap = { search: "externalSearch" }; + if (enabled === this.enabledInterface) return false; - this.each(function () { - if (args.length === 0 || typeof(args[0]) === "object") { - opts = args.length === 0 ? {} : $.extend({}, args[0]); - opts.element = $(this); + this.container.toggleClass("select2-container-disabled", disabled); + this.close(); + this.enabledInterface = enabled; - if (opts.element.get(0).tagName.toLowerCase() === "select") { - multiple = opts.element.prop("multiple"); - } else { - multiple = opts.multiple || false; - if ("tags" in opts) {opts.multiple = multiple = true;} - } + return true; + }, - select2 = multiple ? new window.Select2["class"].multi() : new window.Select2["class"].single(); - select2.init(opts); - } else if (typeof(args[0]) === "string") { + // abstract + enable: function(enabled) { + if (enabled === undefined) enabled = true; + if (this._enabled === enabled) return; + this._enabled = enabled; - if (indexOf(args[0], allowedMethods) < 0) { - throw "Unknown method: " + args[0]; - } + this.opts.element.prop("disabled", !enabled); + this.enableInterface(); + }, - value = undefined; - select2 = $(this).data("select2"); - if (select2 === undefined) return; + // abstract + disable: function() { + this.enable(false); + }, - method=args[0]; + // abstract + readonly: function(enabled) { + if (enabled === undefined) enabled = false; + if (this._readonly === enabled) return; + this._readonly = enabled; - if (method === "container") { - value = select2.container; - } else if (method === "dropdown") { - value = select2.dropdown; - } else { - if (methodsMap[method]) method = methodsMap[method]; + this.opts.element.prop("readonly", enabled); + this.enableInterface(); + }, - value = select2[method].apply(select2, args.slice(1)); - } - if (indexOf(args[0], valueMethods) >= 0 - || (indexOf(args[0], propertyMethods) >= 0 && args.length == 1)) { - return false; // abort the iteration, ready to return first matched value + // abstract + opened: function () { + return (this.container) ? this.container.hasClass("select2-dropdown-open") : false; + }, + + // abstract + positionDropdown: function() { + var $dropdown = this.dropdown, + offset = this.container.offset(), + height = this.container.outerHeight(false), + width = this.container.outerWidth(false), + dropHeight = $dropdown.outerHeight(false), + $window = $(window), + windowWidth = $window.width(), + windowHeight = $window.height(), + viewPortRight = $window.scrollLeft() + windowWidth, + viewportBottom = $window.scrollTop() + windowHeight, + dropTop = offset.top + height, + dropLeft = offset.left, + enoughRoomBelow = dropTop + dropHeight <= viewportBottom, + enoughRoomAbove = (offset.top - dropHeight) >= $window.scrollTop(), + dropWidth = $dropdown.outerWidth(false), + enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight, + aboveNow = $dropdown.hasClass("select2-drop-above"), + bodyOffset, + above, + changeDirection, + css, + resultsListNode; + + // always prefer the current above/below alignment, unless there is not enough room + if (aboveNow) { + above = true; + if (!enoughRoomAbove && enoughRoomBelow) { + changeDirection = true; + above = false; } } else { - throw "Invalid arguments to select2 plugin: " + args; + above = false; + if (!enoughRoomBelow && enoughRoomAbove) { + changeDirection = true; + above = true; + } } - }); - return (value === undefined) ? this : value; - }; - // plugin defaults, accessible to users - $.fn.select2.defaults = { - width: "copy", - loadMorePadding: 0, - closeOnSelect: true, - openOnEnter: true, - containerCss: {}, - dropdownCss: {}, - containerCssClass: "", - dropdownCssClass: "", - formatResult: function(result, container, query, escapeMarkup) { - var markup=[]; - markMatch(result.text, query.term, markup, escapeMarkup); - return markup.join(""); - }, - formatSelection: function (data, container, escapeMarkup) { - return data ? escapeMarkup(data.text) : undefined; + //if we are changing direction we need to get positions when dropdown is hidden; + if (changeDirection) { + $dropdown.hide(); + offset = this.container.offset(); + height = this.container.outerHeight(false); + width = this.container.outerWidth(false); + dropHeight = $dropdown.outerHeight(false); + viewPortRight = $window.scrollLeft() + windowWidth; + viewportBottom = $window.scrollTop() + windowHeight; + dropTop = offset.top + height; + dropLeft = offset.left; + dropWidth = $dropdown.outerWidth(false); + enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight; + $dropdown.show(); + + // fix so the cursor does not move to the left within the search-textbox in IE + this.focusSearch(); + } + + if (this.opts.dropdownAutoWidth) { + resultsListNode = $('.select2-results', $dropdown)[0]; + $dropdown.addClass('select2-drop-auto-width'); + $dropdown.css('width', ''); + // Add scrollbar width to dropdown if vertical scrollbar is present + dropWidth = $dropdown.outerWidth(false) + (resultsListNode.scrollHeight === resultsListNode.clientHeight ? 0 : scrollBarDimensions.width); + dropWidth > width ? width = dropWidth : dropWidth = width; + dropHeight = $dropdown.outerHeight(false); + enoughRoomOnRight = dropLeft + dropWidth <= viewPortRight; + } + else { + this.container.removeClass('select2-drop-auto-width'); + } + + //console.log("below/ droptop:", dropTop, "dropHeight", dropHeight, "sum", (dropTop+dropHeight)+" viewport bottom", viewportBottom, "enough?", enoughRoomBelow); + //console.log("above/ offset.top", offset.top, "dropHeight", dropHeight, "top", (offset.top-dropHeight), "scrollTop", this.body.scrollTop(), "enough?", enoughRoomAbove); + + // fix positioning when body has an offset and is not position: static + if (this.body.css('position') !== 'static') { + bodyOffset = this.body.offset(); + dropTop -= bodyOffset.top; + dropLeft -= bodyOffset.left; + } + + if (!enoughRoomOnRight) { + dropLeft = offset.left + this.container.outerWidth(false) - dropWidth; + } + + css = { + left: dropLeft, + width: width + }; + + if (above) { + css.top = offset.top - dropHeight; + css.bottom = 'auto'; + this.container.addClass("select2-drop-above"); + $dropdown.addClass("select2-drop-above"); + } + else { + css.top = dropTop; + css.bottom = 'auto'; + this.container.removeClass("select2-drop-above"); + $dropdown.removeClass("select2-drop-above"); + } + css = $.extend(css, evaluate(this.opts.dropdownCss, this.opts.element)); + + $dropdown.css(css); }, - sortResults: function (results, container, query) { - return results; + + // abstract + shouldOpen: function() { + var event; + + if (this.opened()) return false; + + if (this._enabled === false || this._readonly === true) return false; + + event = $.Event("select2-opening"); + this.opts.element.trigger(event); + return !event.isDefaultPrevented(); }, - formatResultCssClass: function(data) {return data.css;}, - formatSelectionCssClass: function(data, container) {return undefined;}, - minimumResultsForSearch: 0, - minimumInputLength: 0, - maximumInputLength: null, - maximumSelectionSize: 0, - id: function (e) { return e == undefined ? null : e.id; }, - matcher: function(term, text) { - return stripDiacritics(''+text).toUpperCase().indexOf(stripDiacritics(''+term).toUpperCase()) >= 0; + + // abstract + clearDropdownAlignmentPreference: function() { + // clear the classes used to figure out the preference of where the dropdown should be opened + this.container.removeClass("select2-drop-above"); + this.dropdown.removeClass("select2-drop-above"); }, - separator: ",", - tokenSeparators: [], - tokenizer: defaultTokenizer, - escapeMarkup: defaultEscapeMarkup, - blurOnChange: false, - selectOnBlur: false, - adaptContainerCssClass: function(c) { return c; }, - adaptDropdownCssClass: function(c) { return null; }, - nextSearchTerm: function(selectedObject, currentSearchTerm) { return undefined; }, - searchInputPlaceholder: '', - createSearchChoicePosition: 'top', - shouldFocusInput: function (instance) { - // Attempt to detect touch devices - var supportsTouchEvents = (('ontouchstart' in window) || - (navigator.msMaxTouchPoints > 0)); - // Only devices which support touch events should be special cased - if (!supportsTouchEvents) { - return true; + /** + * Opens the dropdown + * + * @return {Boolean} whether or not dropdown was opened. This method will return false if, for example, + * the dropdown is already open, or if the 'open' event listener on the element called preventDefault(). + */ + // abstract + open: function () { + + if (!this.shouldOpen()) return false; + + this.opening(); + + // Only bind the document mousemove when the dropdown is visible + $document.on("mousemove.select2Event", function (e) { + lastMousePosition.x = e.pageX; + lastMousePosition.y = e.pageY; + }); + + return true; + }, + + /** + * Performs the opening of the dropdown + */ + // abstract + opening: function() { + var cid = this.containerEventName, + scroll = "scroll." + cid, + resize = "resize."+cid, + orient = "orientationchange."+cid, + mask; + + this.container.addClass("select2-dropdown-open").addClass("select2-container-active"); + + this.clearDropdownAlignmentPreference(); + + if(this.dropdown[0] !== this.body.children().last()[0]) { + this.dropdown.detach().appendTo(this.body); } - // Never focus the input if search is disabled - if (instance.opts.minimumResultsForSearch < 0) { - return false; + // create the dropdown mask if doesn't already exist + mask = $("#select2-drop-mask"); + if (mask.length == 0) { + mask = $(document.createElement("div")); + mask.attr("id","select2-drop-mask").attr("class","select2-drop-mask"); + mask.hide(); + mask.appendTo(this.body); + mask.on("mousedown touchstart click", function (e) { + // Prevent IE from generating a click event on the body + reinsertElement(mask); + + var dropdown = $("#select2-drop"), self; + if (dropdown.length > 0) { + self=dropdown.data("select2"); + if (self.opts.selectOnBlur) { + self.selectHighlighted({noFocus: true}); + } + self.close(); + e.preventDefault(); + e.stopPropagation(); + } + }); } - return true; - } - }; + // ensure the mask is always right before the dropdown + if (this.dropdown.prev()[0] !== mask[0]) { + this.dropdown.before(mask); + } - $.fn.select2.locales = []; + // move the global id to the correct dropdown + $("#select2-drop").removeAttr("id"); + this.dropdown.attr("id", "select2-drop"); - $.fn.select2.locales['en'] = { - formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; }, - formatNoMatches: function () { return "No matches found"; }, - formatAjaxError: function (jqXHR, textStatus, errorThrown) { return "Loading failed"; }, - formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); }, - formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, - formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, - formatLoadMore: function (pageNumber) { return "Loading more results…"; }, - formatSearching: function () { return "Searching…"; }, - }; + // show the elements + mask.show(); - $.extend($.fn.select2.defaults, $.fn.select2.locales['en']); + this.positionDropdown(); + this.dropdown.show(); + this.positionDropdown(); - $.fn.select2.ajaxDefaults = { - transport: $.ajax, - params: { - type: "GET", - cache: false, - dataType: "json" - } - }; + this.dropdown.addClass("select2-drop-active"); - // exports - window.Select2 = { - query: { - ajax: ajax, - local: local, - tags: tags - }, util: { - debounce: debounce, - markMatch: markMatch, - escapeMarkup: defaultEscapeMarkup, - stripDiacritics: stripDiacritics - }, "class": { - "abstract": AbstractSelect2, - "single": SingleSelect2, - "multi": MultiSelect2 - } - }; + // attach listeners to events that can change the position of the container and thus require + // the position of the dropdown to be updated as well so it does not come unglued from the container + var that = this; + this.container.parents().add(window).each(function () { + $(this).on(resize+" "+scroll+" "+orient, function (e) { + if (that.opened()) that.positionDropdown(); + }); + }); -}(jQuery)); -define("select2", function(){}); + }, -(function(root) { -define("jquery.event.drag", ["jquery"], function() { - return (function() { -/*! - * jquery.event.drag - v 2.2 - * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com - * Open Source MIT License - http://threedubmedia.com/code/license - */ -// Created: 2008-06-04 -// Updated: 2012-05-21 -// REQUIRES: jquery 1.7.x + // abstract + close: function () { + if (!this.opened()) return; -;(function( $ ){ + var cid = this.containerEventName, + scroll = "scroll." + cid, + resize = "resize."+cid, + orient = "orientationchange."+cid; -// add the jquery instance method -$.fn.drag = function( str, arg, opts ){ - // figure out the event type - var type = typeof str == "string" ? str : "", - // figure out the event handler... - fn = $.isFunction( str ) ? str : $.isFunction( arg ) ? arg : null; - // fix the event type - if ( type.indexOf("drag") !== 0 ) - type = "drag"+ type; - // were options passed - opts = ( str == fn ? arg : opts ) || {}; - // trigger or bind event handler - return fn ? this.bind( type, opts, fn ) : this.trigger( type ); -}; + // unbind event listeners + this.container.parents().add(window).each(function () { $(this).off(scroll).off(resize).off(orient); }); -// local refs (increase compression) -var $event = $.event, -$special = $event.special, -// configure the drag special event -drag = $special.drag = { - - // these are the default settings - defaults: { - which: 1, // mouse button pressed to start drag sequence - distance: 0, // distance dragged before dragstart - not: ':input', // selector to suppress dragging on target elements - handle: null, // selector to match handle target elements - relative: false, // true to use "position", false to use "offset" - drop: true, // false to suppress drop events, true or selector to allow - click: false // false to suppress click events after dragend (no proxy) - }, - - // the key name for stored drag data - datakey: "dragdata", - - // prevent bubbling for better performance - noBubble: true, - - // count bound related events - add: function( obj ){ - // read the interaction data - var data = $.data( this, drag.datakey ), - // read any passed options - opts = obj.data || {}; - // count another realted event - data.related += 1; - // extend data options bound with this event - // don't iterate "opts" in case it is a node - $.each( drag.defaults, function( key, def ){ - if ( opts[ key ] !== undefined ) - data[ key ] = opts[ key ]; - }); - }, - - // forget unbound related events - remove: function(){ - $.data( this, drag.datakey ).related -= 1; - }, - - // configure interaction, capture settings - setup: function(){ - // check for related events - if ( $.data( this, drag.datakey ) ) - return; - // initialize the drag data with copied defaults - var data = $.extend({ related:0 }, drag.defaults ); - // store the interaction data - $.data( this, drag.datakey, data ); - // bind the mousedown event, which starts drag interactions - $event.add( this, "touchstart mousedown", drag.init, data ); - // prevent image dragging in IE... - if ( this.attachEvent ) - this.attachEvent("ondragstart", drag.dontstart ); - }, - - // destroy configured interaction - teardown: function(){ - var data = $.data( this, drag.datakey ) || {}; - // check for related events - if ( data.related ) - return; - // remove the stored data - $.removeData( this, drag.datakey ); - // remove the mousedown event - $event.remove( this, "touchstart mousedown", drag.init ); - // enable text selection - drag.textselect( true ); - // un-prevent image dragging in IE... - if ( this.detachEvent ) - this.detachEvent("ondragstart", drag.dontstart ); - }, - - // initialize the interaction - init: function( event ){ - // sorry, only one touch at a time - if ( drag.touched ) - return; - // the drag/drop interaction data - var dd = event.data, results; - // check the which directive - if ( event.which != 0 && dd.which > 0 && event.which != dd.which ) - return; - // check for suppressed selector - if ( $( event.target ).is( dd.not ) ) - return; - // check for handle selector - if ( dd.handle && !$( event.target ).closest( dd.handle, event.currentTarget ).length ) - return; + this.clearDropdownAlignmentPreference(); - drag.touched = event.type == 'touchstart' ? this : null; - dd.propagates = 1; - dd.mousedown = this; - dd.interactions = [ drag.interaction( this, dd ) ]; - dd.target = event.target; - dd.pageX = event.pageX; - dd.pageY = event.pageY; - dd.dragging = null; - // handle draginit event... - results = drag.hijack( event, "draginit", dd ); - // early cancel - if ( !dd.propagates ) - return; - // flatten the result set - results = drag.flatten( results ); - // insert new interaction elements - if ( results && results.length ){ - dd.interactions = []; - $.each( results, function(){ - dd.interactions.push( drag.interaction( this, dd ) ); - }); - } - // remember how many interactions are propagating - dd.propagates = dd.interactions.length; - // locate and init the drop targets - if ( dd.drop !== false && $special.drop ) - $special.drop.handler( event, dd ); - // disable text selection - drag.textselect( false ); - // bind additional events... - if ( drag.touched ) - $event.add( drag.touched, "touchmove touchend", drag.handler, dd ); - else - $event.add( document, "mousemove mouseup", drag.handler, dd ); - // helps prevent text selection or scrolling - if ( !drag.touched || dd.live ) - return false; - }, - - // returns an interaction object - interaction: function( elem, dd ){ - var offset = $( elem )[ dd.relative ? "position" : "offset" ]() || { top:0, left:0 }; - return { - drag: elem, - callback: new drag.callback(), - droppable: [], - offset: offset - }; - }, - - // handle drag-releatd DOM events - handler: function( event ){ - // read the data before hijacking anything - var dd = event.data; - // handle various events - switch ( event.type ){ - // mousemove, check distance, start dragging - case !dd.dragging && 'touchmove': - event.preventDefault(); - case !dd.dragging && 'mousemove': - // drag tolerance, x� + y� = distance� - if ( Math.pow( event.pageX-dd.pageX, 2 ) + Math.pow( event.pageY-dd.pageY, 2 ) < Math.pow( dd.distance, 2 ) ) - break; // distance tolerance not reached - event.target = dd.target; // force target from "mousedown" event (fix distance issue) - drag.hijack( event, "dragstart", dd ); // trigger "dragstart" - if ( dd.propagates ) // "dragstart" not rejected - dd.dragging = true; // activate interaction - // mousemove, dragging - case 'touchmove': - event.preventDefault(); - case 'mousemove': - if ( dd.dragging ){ - // trigger "drag" - drag.hijack( event, "drag", dd ); - if ( dd.propagates ){ - // manage drop events - if ( dd.drop !== false && $special.drop ) - $special.drop.handler( event, dd ); // "dropstart", "dropend" - break; // "drag" not rejected, stop - } - event.type = "mouseup"; // helps "drop" handler behave - } - // mouseup, stop dragging - case 'touchend': - case 'mouseup': - default: - if ( drag.touched ) - $event.remove( drag.touched, "touchmove touchend", drag.handler ); // remove touch events - else - $event.remove( document, "mousemove mouseup", drag.handler ); // remove page events - if ( dd.dragging ){ - if ( dd.drop !== false && $special.drop ) - $special.drop.handler( event, dd ); // "drop" - drag.hijack( event, "dragend", dd ); // trigger "dragend" - } - drag.textselect( true ); // enable text selection - // if suppressing click events... - if ( dd.click === false && dd.dragging ) - $.data( dd.mousedown, "suppress.click", new Date().getTime() + 5 ); - dd.dragging = drag.touched = false; // deactivate element - break; - } - }, - - // re-use event object for custom events - hijack: function( event, type, dd, x, elem ){ - // not configured - if ( !dd ) - return; - // remember the original event and type - var orig = { event:event.originalEvent, type:event.type }, - // is the event drag related or drog related? - mode = type.indexOf("drop") ? "drag" : "drop", - // iteration vars - result, i = x || 0, ia, $elems, callback, - len = !isNaN( x ) ? x : dd.interactions.length; - // modify the event type - event.type = type; - // remove the original event - event.originalEvent = null; - // initialize the results - dd.results = []; - // handle each interacted element - do if ( ia = dd.interactions[ i ] ){ - // validate the interaction - if ( type !== "dragend" && ia.cancelled ) - continue; - // set the dragdrop properties on the event object - callback = drag.properties( event, dd, ia ); - // prepare for more results - ia.results = []; - // handle each element - $( elem || ia[ mode ] || dd.droppable ).each(function( p, subject ){ - // identify drag or drop targets individually - callback.target = subject; - // force propagtion of the custom event - event.isPropagationStopped = function(){ return false; }; - // handle the event - result = subject ? $event.dispatch.call( subject, event, callback ) : null; - // stop the drag interaction for this element + $("#select2-drop-mask").hide(); + this.dropdown.removeAttr("id"); // only the active dropdown has the select2-drop id + this.dropdown.hide(); + this.container.removeClass("select2-dropdown-open").removeClass("select2-container-active"); + this.results.empty(); + + // Now that the dropdown is closed, unbind the global document mousemove event + $document.off("mousemove.select2Event"); + + this.clearSearch(); + this.search.removeClass("select2-active"); + this.opts.element.trigger($.Event("select2-close")); + }, + + /** + * Opens control, sets input value, and updates results. + */ + // abstract + externalSearch: function (term) { + this.open(); + this.search.val(term); + this.updateResults(false); + }, + + // abstract + clearSearch: function () { + + }, + + //abstract + getMaximumSelectionSize: function() { + return evaluate(this.opts.maximumSelectionSize, this.opts.element); + }, + + // abstract + ensureHighlightVisible: function () { + var results = this.results, children, index, child, hb, rb, y, more, topOffset; + + index = this.highlight(); + + if (index < 0) return; + + if (index == 0) { + + // if the first element is highlighted scroll all the way to the top, + // that way any unselectable headers above it will also be scrolled + // into view + + results.scrollTop(0); + return; + } + + children = this.findHighlightableChoices().find('.select2-result-label'); + + child = $(children[index]); + + topOffset = (child.offset() || {}).top || 0; + + hb = topOffset + child.outerHeight(true); + + // if this is the last child lets also make sure select2-more-results is visible + if (index === children.length - 1) { + more = results.find("li.select2-more-results"); + if (more.length > 0) { + hb = more.offset().top + more.outerHeight(true); + } + } + + rb = results.offset().top + results.outerHeight(true); + if (hb > rb) { + results.scrollTop(results.scrollTop() + (hb - rb)); + } + y = topOffset - results.offset().top; + + // make sure the top of the element is visible + if (y < 0 && child.css('display') != 'none' ) { + results.scrollTop(results.scrollTop() + y); // y is negative + } + }, + + // abstract + findHighlightableChoices: function() { + return this.results.find(".select2-result-selectable:not(.select2-disabled):not(.select2-selected)"); + }, + + // abstract + moveHighlight: function (delta) { + var choices = this.findHighlightableChoices(), + index = this.highlight(); + + while (index > -1 && index < choices.length) { + index += delta; + var choice = $(choices[index]); + if (choice.hasClass("select2-result-selectable") && !choice.hasClass("select2-disabled") && !choice.hasClass("select2-selected")) { + this.highlight(index); + break; + } + } + }, + + // abstract + highlight: function (index) { + var choices = this.findHighlightableChoices(), + choice, + data; + + if (arguments.length === 0) { + return indexOf(choices.filter(".select2-highlighted")[0], choices.get()); + } + + if (index >= choices.length) index = choices.length - 1; + if (index < 0) index = 0; + + this.removeHighlight(); + + choice = $(choices[index]); + choice.addClass("select2-highlighted"); + + // ensure assistive technology can determine the active choice + this.search.attr("aria-activedescendant", choice.find(".select2-result-label").attr("id")); + + this.ensureHighlightVisible(); + + this.liveRegion.text(choice.text()); + + data = choice.data("select2-data"); + if (data) { + this.opts.element.trigger({ type: "select2-highlight", val: this.id(data), choice: data }); + } + }, + + removeHighlight: function() { + this.results.find(".select2-highlighted").removeClass("select2-highlighted"); + }, + + touchMoved: function() { + this._touchMoved = true; + }, + + clearTouchMoved: function() { + this._touchMoved = false; + }, + + // abstract + countSelectableResults: function() { + return this.findHighlightableChoices().length; + }, + + // abstract + highlightUnderEvent: function (event) { + var el = $(event.target).closest(".select2-result-selectable"); + if (el.length > 0 && !el.is(".select2-highlighted")) { + var choices = this.findHighlightableChoices(); + this.highlight(choices.index(el)); + } else if (el.length == 0) { + // if we are over an unselectable item remove all highlights + this.removeHighlight(); + } + }, + + // abstract + loadMoreIfNeeded: function () { + var results = this.results, + more = results.find("li.select2-more-results"), + below, // pixels the element is below the scroll fold, below==0 is when the element is starting to be visible + page = this.resultsPage + 1, + self=this, + term=this.search.val(), + context=this.context; + + if (more.length === 0) return; + below = more.offset().top - results.offset().top - results.height(); + + if (below <= this.opts.loadMorePadding) { + more.addClass("select2-active"); + this.opts.query({ + element: this.opts.element, + term: term, + page: page, + context: context, + matcher: this.opts.matcher, + callback: this.bind(function (data) { + + // ignore a response if the select2 has been closed before it was received + if (!self.opened()) return; + + + self.opts.populateResults.call(this, results, data.results, {term: term, page: page, context:context}); + self.postprocessResults(data, false, false); + + if (data.more===true) { + more.detach().appendTo(results).text(evaluate(self.opts.formatLoadMore, self.opts.element, page+1)); + window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10); + } else { + more.remove(); + } + self.positionDropdown(); + self.resultsPage = page; + self.context = data.context; + this.opts.element.trigger({ type: "select2-loaded", items: data }); + })}); + } + }, + + /** + * Default tokenizer function which does nothing + */ + tokenize: function() { + + }, + + /** + * @param initial whether or not this is the call to this method right after the dropdown has been opened + */ + // abstract + updateResults: function (initial) { + var search = this.search, + results = this.results, + opts = this.opts, + data, + self = this, + input, + term = search.val(), + lastTerm = $.data(this.container, "select2-last-term"), + // sequence number used to drop out-of-order responses + queryNumber; + + // prevent duplicate queries against the same term + if (initial !== true && lastTerm && equal(term, lastTerm)) return; + + $.data(this.container, "select2-last-term", term); + + // if the search is currently hidden we do not alter the results + if (initial !== true && (this.showSearchInput === false || !this.opened())) { + return; + } + + function postRender() { + search.removeClass("select2-active"); + self.positionDropdown(); + if (results.find('.select2-no-results,.select2-selection-limit,.select2-searching').length) { + self.liveRegion.text(results.text()); + } + else { + self.liveRegion.text(self.opts.formatMatches(results.find('.select2-result-selectable').length)); + } + } + + function render(html) { + results.html(html); + postRender(); + } + + queryNumber = ++this.queryCount; + + var maxSelSize = this.getMaximumSelectionSize(); + if (maxSelSize >=1) { + data = this.data(); + if ($.isArray(data) && data.length >= maxSelSize && checkFormatter(opts.formatSelectionTooBig, "formatSelectionTooBig")) { + render("
  • " + evaluate(opts.formatSelectionTooBig, opts.element, maxSelSize) + "
  • "); + return; + } + } + + if (search.val().length < opts.minimumInputLength) { + if (checkFormatter(opts.formatInputTooShort, "formatInputTooShort")) { + render("
  • " + evaluate(opts.formatInputTooShort, opts.element, search.val(), opts.minimumInputLength) + "
  • "); + } else { + render(""); + } + if (initial && this.showSearch) this.showSearch(true); + return; + } + + if (opts.maximumInputLength && search.val().length > opts.maximumInputLength) { + if (checkFormatter(opts.formatInputTooLong, "formatInputTooLong")) { + render("
  • " + evaluate(opts.formatInputTooLong, opts.element, search.val(), opts.maximumInputLength) + "
  • "); + } else { + render(""); + } + return; + } + + if (opts.formatSearching && this.findHighlightableChoices().length === 0) { + render("
  • " + evaluate(opts.formatSearching, opts.element) + "
  • "); + } + + search.addClass("select2-active"); + + this.removeHighlight(); + + // give the tokenizer a chance to pre-process the input + input = this.tokenize(); + if (input != undefined && input != null) { + search.val(input); + } + + this.resultsPage = 1; + + opts.query({ + element: opts.element, + term: search.val(), + page: this.resultsPage, + context: null, + matcher: opts.matcher, + callback: this.bind(function (data) { + var def; // default choice + + // ignore old responses + if (queryNumber != this.queryCount) { + return; + } + + // ignore a response if the select2 has been closed before it was received + if (!this.opened()) { + this.search.removeClass("select2-active"); + return; + } + + // handle ajax error + if(data.hasError !== undefined && checkFormatter(opts.formatAjaxError, "formatAjaxError")) { + render("
  • " + evaluate(opts.formatAjaxError, opts.element, data.jqXHR, data.textStatus, data.errorThrown) + "
  • "); + return; + } + + // save context, if any + this.context = (data.context===undefined) ? null : data.context; + // create a default choice and prepend it to the list + if (this.opts.createSearchChoice && search.val() !== "") { + def = this.opts.createSearchChoice.call(self, search.val(), data.results); + if (def !== undefined && def !== null && self.id(def) !== undefined && self.id(def) !== null) { + if ($(data.results).filter( + function () { + return equal(self.id(this), self.id(def)); + }).length === 0) { + this.opts.createSearchChoicePosition(data.results, def); + } + } + } + + if (data.results.length === 0 && checkFormatter(opts.formatNoMatches, "formatNoMatches")) { + render("
  • " + evaluate(opts.formatNoMatches, opts.element, search.val()) + "
  • "); + return; + } + + results.empty(); + self.opts.populateResults.call(this, results, data.results, {term: search.val(), page: this.resultsPage, context:null}); + + if (data.more === true && checkFormatter(opts.formatLoadMore, "formatLoadMore")) { + results.append("
  • " + opts.escapeMarkup(evaluate(opts.formatLoadMore, opts.element, this.resultsPage)) + "
  • "); + window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10); + } + + this.postprocessResults(data, initial); + + postRender(); + + this.opts.element.trigger({ type: "select2-loaded", items: data }); + })}); + }, + + // abstract + cancel: function () { + this.close(); + }, + + // abstract + blur: function () { + // if selectOnBlur == true, select the currently highlighted option + if (this.opts.selectOnBlur) + this.selectHighlighted({noFocus: true}); + + this.close(); + this.container.removeClass("select2-container-active"); + // synonymous to .is(':focus'), which is available in jquery >= 1.6 + if (this.search[0] === document.activeElement) { this.search.blur(); } + this.clearSearch(); + this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"); + }, + + // abstract + focusSearch: function () { + focus(this.search); + }, + + // abstract + selectHighlighted: function (options) { + if (this._touchMoved) { + this.clearTouchMoved(); + return; + } + var index=this.highlight(), + highlighted=this.results.find(".select2-highlighted"), + data = highlighted.closest('.select2-result').data("select2-data"); + + if (data) { + this.highlight(index); + this.onSelect(data, options); + } else if (options && options.noFocus) { + this.close(); + } + }, + + // abstract + getPlaceholder: function () { + var placeholderOption; + return this.opts.element.attr("placeholder") || + this.opts.element.attr("data-placeholder") || // jquery 1.4 compat + this.opts.element.data("placeholder") || + this.opts.placeholder || + ((placeholderOption = this.getPlaceholderOption()) !== undefined ? placeholderOption.text() : undefined); + }, + + // abstract + getPlaceholderOption: function() { + if (this.select) { + var firstOption = this.select.children('option').first(); + if (this.opts.placeholderOption !== undefined ) { + //Determine the placeholder option based on the specified placeholderOption setting + return (this.opts.placeholderOption === "first" && firstOption) || + (typeof this.opts.placeholderOption === "function" && this.opts.placeholderOption(this.select)); + } else if ($.trim(firstOption.text()) === "" && firstOption.val() === "") { + //No explicit placeholder option specified, use the first if it's blank + return firstOption; + } + } + }, + + /** + * Get the desired width for the container element. This is + * derived first from option `width` passed to select2, then + * the inline 'style' on the original element, and finally + * falls back to the jQuery calculated element width. + */ + // abstract + initContainerWidth: function () { + function resolveContainerWidth() { + var style, attrs, matches, i, l, attr; + + if (this.opts.width === "off") { + return null; + } else if (this.opts.width === "element"){ + return this.opts.element.outerWidth(false) === 0 ? 'auto' : this.opts.element.outerWidth(false) + 'px'; + } else if (this.opts.width === "copy" || this.opts.width === "resolve") { + // check if there is inline style on the element that contains width + style = this.opts.element.attr('style'); + if (style !== undefined) { + attrs = style.split(';'); + for (i = 0, l = attrs.length; i < l; i = i + 1) { + attr = attrs[i].replace(/\s/g, ''); + matches = attr.match(/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i); + if (matches !== null && matches.length >= 1) + return matches[1]; + } + } + + if (this.opts.width === "resolve") { + // next check if css('width') can resolve a width that is percent based, this is sometimes possible + // when attached to input type=hidden or elements hidden via css + style = this.opts.element.css('width'); + if (style.indexOf("%") > 0) return style; + + // finally, fallback on the calculated width of the element + return (this.opts.element.outerWidth(false) === 0 ? 'auto' : this.opts.element.outerWidth(false) + 'px'); + } + + return null; + } else if ($.isFunction(this.opts.width)) { + return this.opts.width(); + } else { + return this.opts.width; + } + }; + + var width = resolveContainerWidth.call(this); + if (width !== null) { + this.container.css("width", width); + } + } + }); + + SingleSelect2 = clazz(AbstractSelect2, { + + // single + + createContainer: function () { + var container = $(document.createElement("div")).attr({ + "class": "select2-container" + }).html([ + "", + "  ", + " ", + "", + "", + "", + "
    ", + " ", + "
      ", + "
    ", + "
    "].join("")); + return container; + }, + + // single + enableInterface: function() { + if (this.parent.enableInterface.apply(this, arguments)) { + this.focusser.prop("disabled", !this.isInterfaceEnabled()); + } + }, + + // single + opening: function () { + var el, range, len; + + if (this.opts.minimumResultsForSearch >= 0) { + this.showSearch(true); + } + + this.parent.opening.apply(this, arguments); + + if (this.showSearchInput !== false) { + // IE appends focusser.val() at the end of field :/ so we manually insert it at the beginning using a range + // all other browsers handle this just fine + + this.search.val(this.focusser.val()); + } + if (this.opts.shouldFocusInput(this)) { + this.search.focus(); + // move the cursor to the end after focussing, otherwise it will be at the beginning and + // new text will appear *before* focusser.val() + el = this.search.get(0); + if (el.createTextRange) { + range = el.createTextRange(); + range.collapse(false); + range.select(); + } else if (el.setSelectionRange) { + len = this.search.val().length; + el.setSelectionRange(len, len); + } + } + + // initializes search's value with nextSearchTerm (if defined by user) + // ignore nextSearchTerm if the dropdown is opened by the user pressing a letter + if(this.search.val() === "") { + if(this.nextSearchTerm != undefined){ + this.search.val(this.nextSearchTerm); + this.search.select(); + } + } + + this.focusser.prop("disabled", true).val(""); + this.updateResults(true); + this.opts.element.trigger($.Event("select2-open")); + }, + + // single + close: function () { + if (!this.opened()) return; + this.parent.close.apply(this, arguments); + + this.focusser.prop("disabled", false); + + if (this.opts.shouldFocusInput(this)) { + this.focusser.focus(); + } + }, + + // single + focus: function () { + if (this.opened()) { + this.close(); + } else { + this.focusser.prop("disabled", false); + if (this.opts.shouldFocusInput(this)) { + this.focusser.focus(); + } + } + }, + + // single + isFocused: function () { + return this.container.hasClass("select2-container-active"); + }, + + // single + cancel: function () { + this.parent.cancel.apply(this, arguments); + this.focusser.prop("disabled", false); + + if (this.opts.shouldFocusInput(this)) { + this.focusser.focus(); + } + }, + + // single + destroy: function() { + $("label[for='" + this.focusser.attr('id') + "']") + .attr('for', this.opts.element.attr("id")); + this.parent.destroy.apply(this, arguments); + + cleanupJQueryElements.call(this, + "selection", + "focusser" + ); + }, + + // single + initContainer: function () { + + var selection, + container = this.container, + dropdown = this.dropdown, + idSuffix = nextUid(), + elementLabel; + + if (this.opts.minimumResultsForSearch < 0) { + this.showSearch(false); + } else { + this.showSearch(true); + } + + this.selection = selection = container.find(".select2-choice"); + + this.focusser = container.find(".select2-focusser"); + + // add aria associations + selection.find(".select2-chosen").attr("id", "select2-chosen-"+idSuffix); + this.focusser.attr("aria-labelledby", "select2-chosen-"+idSuffix); + this.results.attr("id", "select2-results-"+idSuffix); + this.search.attr("aria-owns", "select2-results-"+idSuffix); + + // rewrite labels from original element to focusser + this.focusser.attr("id", "s2id_autogen"+idSuffix); + + elementLabel = $("label[for='" + this.opts.element.attr("id") + "']"); + + this.focusser.prev() + .text(elementLabel.text()) + .attr('for', this.focusser.attr('id')); + + // Ensure the original element retains an accessible name + var originalTitle = this.opts.element.attr("title"); + this.opts.element.attr("title", (originalTitle || elementLabel.text())); + + this.focusser.attr("tabindex", this.elementTabIndex); + + // write label for search field using the label from the focusser element + this.search.attr("id", this.focusser.attr('id') + '_search'); + + this.search.prev() + .text($("label[for='" + this.focusser.attr('id') + "']").text()) + .attr('for', this.search.attr('id')); + + this.search.on("keydown", this.bind(function (e) { + if (!this.isInterfaceEnabled()) return; + + // filter 229 keyCodes (input method editor is processing key input) + if (229 == e.keyCode) return; + + if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) { + // prevent the page from scrolling + killEvent(e); + return; + } + + switch (e.which) { + case KEY.UP: + case KEY.DOWN: + this.moveHighlight((e.which === KEY.UP) ? -1 : 1); + killEvent(e); + return; + case KEY.ENTER: + this.selectHighlighted(); + killEvent(e); + return; + case KEY.TAB: + this.selectHighlighted({noFocus: true}); + return; + case KEY.ESC: + this.cancel(e); + killEvent(e); + return; + } + })); + + this.search.on("blur", this.bind(function(e) { + // a workaround for chrome to keep the search field focussed when the scroll bar is used to scroll the dropdown. + // without this the search field loses focus which is annoying + if (document.activeElement === this.body.get(0)) { + window.setTimeout(this.bind(function() { + if (this.opened()) { + this.search.focus(); + } + }), 0); + } + })); + + this.focusser.on("keydown", this.bind(function (e) { + if (!this.isInterfaceEnabled()) return; + + if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) || e.which === KEY.ESC) { + return; + } + + if (this.opts.openOnEnter === false && e.which === KEY.ENTER) { + killEvent(e); + return; + } + + if (e.which == KEY.DOWN || e.which == KEY.UP + || (e.which == KEY.ENTER && this.opts.openOnEnter)) { + + if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) return; + + this.open(); + killEvent(e); + return; + } + + if (e.which == KEY.DELETE || e.which == KEY.BACKSPACE) { + if (this.opts.allowClear) { + this.clear(); + } + killEvent(e); + return; + } + })); + + + installKeyUpChangeEvent(this.focusser); + this.focusser.on("keyup-change input", this.bind(function(e) { + if (this.opts.minimumResultsForSearch >= 0) { + e.stopPropagation(); + if (this.opened()) return; + this.open(); + } + })); + + selection.on("mousedown touchstart", "abbr", this.bind(function (e) { + if (!this.isInterfaceEnabled()) return; + this.clear(); + killEventImmediately(e); + this.close(); + this.selection.focus(); + })); + + selection.on("mousedown touchstart", this.bind(function (e) { + // Prevent IE from generating a click event on the body + reinsertElement(selection); + + if (!this.container.hasClass("select2-container-active")) { + this.opts.element.trigger($.Event("select2-focus")); + } + + if (this.opened()) { + this.close(); + } else if (this.isInterfaceEnabled()) { + this.open(); + } + + killEvent(e); + })); + + dropdown.on("mousedown touchstart", this.bind(function() { + if (this.opts.shouldFocusInput(this)) { + this.search.focus(); + } + })); + + selection.on("focus", this.bind(function(e) { + killEvent(e); + })); + + this.focusser.on("focus", this.bind(function(){ + if (!this.container.hasClass("select2-container-active")) { + this.opts.element.trigger($.Event("select2-focus")); + } + this.container.addClass("select2-container-active"); + })).on("blur", this.bind(function() { + if (!this.opened()) { + this.container.removeClass("select2-container-active"); + this.opts.element.trigger($.Event("select2-blur")); + } + })); + this.search.on("focus", this.bind(function(){ + if (!this.container.hasClass("select2-container-active")) { + this.opts.element.trigger($.Event("select2-focus")); + } + this.container.addClass("select2-container-active"); + })); + + this.initContainerWidth(); + this.opts.element.addClass("select2-offscreen"); + this.setPlaceholder(); + + }, + + // single + clear: function(triggerChange) { + var data=this.selection.data("select2-data"); + if (data) { // guard against queued quick consecutive clicks + var evt = $.Event("select2-clearing"); + this.opts.element.trigger(evt); + if (evt.isDefaultPrevented()) { + return; + } + var placeholderOption = this.getPlaceholderOption(); + this.opts.element.val(placeholderOption ? placeholderOption.val() : ""); + this.selection.find(".select2-chosen").empty(); + this.selection.removeData("select2-data"); + this.setPlaceholder(); + + if (triggerChange !== false){ + this.opts.element.trigger({ type: "select2-removed", val: this.id(data), choice: data }); + this.triggerChange({removed:data}); + } + } + }, + + /** + * Sets selection based on source element's value + */ + // single + initSelection: function () { + var selected; + if (this.isPlaceholderOptionSelected()) { + this.updateSelection(null); + this.close(); + this.setPlaceholder(); + } else { + var self = this; + this.opts.initSelection.call(null, this.opts.element, function(selected){ + if (selected !== undefined && selected !== null) { + self.updateSelection(selected); + self.close(); + self.setPlaceholder(); + self.nextSearchTerm = self.opts.nextSearchTerm(selected, self.search.val()); + } + }); + } + }, + + isPlaceholderOptionSelected: function() { + var placeholderOption; + if (this.getPlaceholder() === undefined) return false; // no placeholder specified so no option should be considered + return ((placeholderOption = this.getPlaceholderOption()) !== undefined && placeholderOption.prop("selected")) + || (this.opts.element.val() === "") + || (this.opts.element.val() === undefined) + || (this.opts.element.val() === null); + }, + + // single + prepareOpts: function () { + var opts = this.parent.prepareOpts.apply(this, arguments), + self=this; + + if (opts.element.get(0).tagName.toLowerCase() === "select") { + // install the selection initializer + opts.initSelection = function (element, callback) { + var selected = element.find("option").filter(function() { return this.selected && !this.disabled }); + // a single select box always has a value, no need to null check 'selected' + callback(self.optionToData(selected)); + }; + } else if ("data" in opts) { + // install default initSelection when applied to hidden input and data is local + opts.initSelection = opts.initSelection || function (element, callback) { + var id = element.val(); + //search in data by id, storing the actual matching item + var match = null; + opts.query({ + matcher: function(term, text, el){ + var is_match = equal(id, opts.id(el)); + if (is_match) { + match = el; + } + return is_match; + }, + callback: !$.isFunction(callback) ? $.noop : function() { + callback(match); + } + }); + }; + } + + return opts; + }, + + // single + getPlaceholder: function() { + // if a placeholder is specified on a single select without a valid placeholder option ignore it + if (this.select) { + if (this.getPlaceholderOption() === undefined) { + return undefined; + } + } + + return this.parent.getPlaceholder.apply(this, arguments); + }, + + // single + setPlaceholder: function () { + var placeholder = this.getPlaceholder(); + + if (this.isPlaceholderOptionSelected() && placeholder !== undefined) { + + // check for a placeholder option if attached to a select + if (this.select && this.getPlaceholderOption() === undefined) return; + + this.selection.find(".select2-chosen").html(this.opts.escapeMarkup(placeholder)); + + this.selection.addClass("select2-default"); + + this.container.removeClass("select2-allowclear"); + } + }, + + // single + postprocessResults: function (data, initial, noHighlightUpdate) { + var selected = 0, self = this, showSearchInput = true; + + // find the selected element in the result list + + this.findHighlightableChoices().each2(function (i, elm) { + if (equal(self.id(elm.data("select2-data")), self.opts.element.val())) { + selected = i; + return false; + } + }); + + // and highlight it + if (noHighlightUpdate !== false) { + if (initial === true && selected >= 0) { + this.highlight(selected); + } else { + this.highlight(0); + } + } + + // hide the search box if this is the first we got the results and there are enough of them for search + + if (initial === true) { + var min = this.opts.minimumResultsForSearch; + if (min >= 0) { + this.showSearch(countResults(data.results) >= min); + } + } + }, + + // single + showSearch: function(showSearchInput) { + if (this.showSearchInput === showSearchInput) return; + + this.showSearchInput = showSearchInput; + + this.dropdown.find(".select2-search").toggleClass("select2-search-hidden", !showSearchInput); + this.dropdown.find(".select2-search").toggleClass("select2-offscreen", !showSearchInput); + //add "select2-with-searchbox" to the container if search box is shown + $(this.dropdown, this.container).toggleClass("select2-with-searchbox", showSearchInput); + }, + + // single + onSelect: function (data, options) { + + if (!this.triggerSelect(data)) { return; } + + var old = this.opts.element.val(), + oldData = this.data(); + + this.opts.element.val(this.id(data)); + this.updateSelection(data); + + this.opts.element.trigger({ type: "select2-selected", val: this.id(data), choice: data }); + + this.nextSearchTerm = this.opts.nextSearchTerm(data, this.search.val()); + this.close(); + + if ((!options || !options.noFocus) && this.opts.shouldFocusInput(this)) { + this.focusser.focus(); + } + + if (!equal(old, this.id(data))) { + this.triggerChange({ added: data, removed: oldData }); + } + }, + + // single + updateSelection: function (data) { + + var container=this.selection.find(".select2-chosen"), formatted, cssClass; + + this.selection.data("select2-data", data); + + container.empty(); + if (data !== null) { + formatted=this.opts.formatSelection(data, container, this.opts.escapeMarkup); + } + if (formatted !== undefined) { + container.append(formatted); + } + cssClass=this.opts.formatSelectionCssClass(data, container); + if (cssClass !== undefined) { + container.addClass(cssClass); + } + + this.selection.removeClass("select2-default"); + + if (this.opts.allowClear && this.getPlaceholder() !== undefined) { + this.container.addClass("select2-allowclear"); + } + }, + + // single + val: function () { + var val, + triggerChange = false, + data = null, + self = this, + oldData = this.data(); + + if (arguments.length === 0) { + return this.opts.element.val(); + } + + val = arguments[0]; + + if (arguments.length > 1) { + triggerChange = arguments[1]; + } + + if (this.select) { + this.select + .val(val) + .find("option").filter(function() { return this.selected }).each2(function (i, elm) { + data = self.optionToData(elm); + return false; + }); + this.updateSelection(data); + this.setPlaceholder(); + if (triggerChange) { + this.triggerChange({added: data, removed:oldData}); + } + } else { + // val is an id. !val is true for [undefined,null,'',0] - 0 is legal + if (!val && val !== 0) { + this.clear(triggerChange); + return; + } + if (this.opts.initSelection === undefined) { + throw new Error("cannot call val() if initSelection() is not defined"); + } + this.opts.element.val(val); + this.opts.initSelection(this.opts.element, function(data){ + self.opts.element.val(!data ? "" : self.id(data)); + self.updateSelection(data); + self.setPlaceholder(); + if (triggerChange) { + self.triggerChange({added: data, removed:oldData}); + } + }); + } + }, + + // single + clearSearch: function () { + this.search.val(""); + this.focusser.val(""); + }, + + // single + data: function(value) { + var data, + triggerChange = false; + + if (arguments.length === 0) { + data = this.selection.data("select2-data"); + if (data == undefined) data = null; + return data; + } else { + if (arguments.length > 1) { + triggerChange = arguments[1]; + } + if (!value) { + this.clear(triggerChange); + } else { + data = this.data(); + this.opts.element.val(!value ? "" : this.id(value)); + this.updateSelection(value); + if (triggerChange) { + this.triggerChange({added: value, removed:data}); + } + } + } + } + }); + + MultiSelect2 = clazz(AbstractSelect2, { + + // multi + createContainer: function () { + var container = $(document.createElement("div")).attr({ + "class": "select2-container select2-container-multi" + }).html([ + "
      ", + "
    • ", + " ", + " ", + "
    • ", + "
    ", + "
    ", + "
      ", + "
    ", + "
    "].join("")); + return container; + }, + + // multi + prepareOpts: function () { + var opts = this.parent.prepareOpts.apply(this, arguments), + self=this; + + // TODO validate placeholder is a string if specified + + if (opts.element.get(0).tagName.toLowerCase() === "select") { + // install the selection initializer + opts.initSelection = function (element, callback) { + + var data = []; + + element.find("option").filter(function() { return this.selected && !this.disabled }).each2(function (i, elm) { + data.push(self.optionToData(elm)); + }); + callback(data); + }; + } else if ("data" in opts) { + // install default initSelection when applied to hidden input and data is local + opts.initSelection = opts.initSelection || function (element, callback) { + var ids = splitVal(element.val(), opts.separator); + //search in data by array of ids, storing matching items in a list + var matches = []; + opts.query({ + matcher: function(term, text, el){ + var is_match = $.grep(ids, function(id) { + return equal(id, opts.id(el)); + }).length; + if (is_match) { + matches.push(el); + } + return is_match; + }, + callback: !$.isFunction(callback) ? $.noop : function() { + // reorder matches based on the order they appear in the ids array because right now + // they are in the order in which they appear in data array + var ordered = []; + for (var i = 0; i < ids.length; i++) { + var id = ids[i]; + for (var j = 0; j < matches.length; j++) { + var match = matches[j]; + if (equal(id, opts.id(match))) { + ordered.push(match); + matches.splice(j, 1); + break; + } + } + } + callback(ordered); + } + }); + }; + } + + return opts; + }, + + // multi + selectChoice: function (choice) { + + var selected = this.container.find(".select2-search-choice-focus"); + if (selected.length && choice && choice[0] == selected[0]) { + + } else { + if (selected.length) { + this.opts.element.trigger("choice-deselected", selected); + } + selected.removeClass("select2-search-choice-focus"); + if (choice && choice.length) { + this.close(); + choice.addClass("select2-search-choice-focus"); + this.opts.element.trigger("choice-selected", choice); + } + } + }, + + // multi + destroy: function() { + $("label[for='" + this.search.attr('id') + "']") + .attr('for', this.opts.element.attr("id")); + this.parent.destroy.apply(this, arguments); + + cleanupJQueryElements.call(this, + "searchContainer", + "selection" + ); + }, + + // multi + initContainer: function () { + + var selector = ".select2-choices", selection; + + this.searchContainer = this.container.find(".select2-search-field"); + this.selection = selection = this.container.find(selector); + + var _this = this; + this.selection.on("click", ".select2-search-choice:not(.select2-locked)", function (e) { + //killEvent(e); + _this.search[0].focus(); + _this.selectChoice($(this)); + }); + + // rewrite labels from original element to focusser + this.search.attr("id", "s2id_autogen"+nextUid()); + + this.search.prev() + .text($("label[for='" + this.opts.element.attr("id") + "']").text()) + .attr('for', this.search.attr('id')); + + this.search.on("input paste", this.bind(function() { + if (this.search.attr('placeholder') && this.search.val().length == 0) return; + if (!this.isInterfaceEnabled()) return; + if (!this.opened()) { + this.open(); + } + })); + + this.search.attr("tabindex", this.elementTabIndex); + + this.keydowns = 0; + this.search.on("keydown", this.bind(function (e) { + if (!this.isInterfaceEnabled()) return; + + ++this.keydowns; + var selected = selection.find(".select2-search-choice-focus"); + var prev = selected.prev(".select2-search-choice:not(.select2-locked)"); + var next = selected.next(".select2-search-choice:not(.select2-locked)"); + var pos = getCursorInfo(this.search); + + if (selected.length && + (e.which == KEY.LEFT || e.which == KEY.RIGHT || e.which == KEY.BACKSPACE || e.which == KEY.DELETE || e.which == KEY.ENTER)) { + var selectedChoice = selected; + if (e.which == KEY.LEFT && prev.length) { + selectedChoice = prev; + } + else if (e.which == KEY.RIGHT) { + selectedChoice = next.length ? next : null; + } + else if (e.which === KEY.BACKSPACE) { + if (this.unselect(selected.first())) { + this.search.width(10); + selectedChoice = prev.length ? prev : next; + } + } else if (e.which == KEY.DELETE) { + if (this.unselect(selected.first())) { + this.search.width(10); + selectedChoice = next.length ? next : null; + } + } else if (e.which == KEY.ENTER) { + selectedChoice = null; + } + + this.selectChoice(selectedChoice); + killEvent(e); + if (!selectedChoice || !selectedChoice.length) { + this.open(); + } + return; + } else if (((e.which === KEY.BACKSPACE && this.keydowns == 1) + || e.which == KEY.LEFT) && (pos.offset == 0 && !pos.length)) { + + this.selectChoice(selection.find(".select2-search-choice:not(.select2-locked)").last()); + killEvent(e); + return; + } else { + this.selectChoice(null); + } + + if (this.opened()) { + switch (e.which) { + case KEY.UP: + case KEY.DOWN: + this.moveHighlight((e.which === KEY.UP) ? -1 : 1); + killEvent(e); + return; + case KEY.ENTER: + this.selectHighlighted(); + killEvent(e); + return; + case KEY.TAB: + this.selectHighlighted({noFocus:true}); + this.close(); + return; + case KEY.ESC: + this.cancel(e); + killEvent(e); + return; + } + } + + if (e.which === KEY.TAB || KEY.isControl(e) || KEY.isFunctionKey(e) + || e.which === KEY.BACKSPACE || e.which === KEY.ESC) { + return; + } + + if (e.which === KEY.ENTER) { + if (this.opts.openOnEnter === false) { + return; + } else if (e.altKey || e.ctrlKey || e.shiftKey || e.metaKey) { + return; + } + } + + this.open(); + + if (e.which === KEY.PAGE_UP || e.which === KEY.PAGE_DOWN) { + // prevent the page from scrolling + killEvent(e); + } + + if (e.which === KEY.ENTER) { + // prevent form from being submitted + killEvent(e); + } + + })); + + this.search.on("keyup", this.bind(function (e) { + this.keydowns = 0; + this.resizeSearch(); + }) + ); + + this.search.on("blur", this.bind(function(e) { + this.container.removeClass("select2-container-active"); + this.search.removeClass("select2-focused"); + this.selectChoice(null); + if (!this.opened()) this.clearSearch(); + e.stopImmediatePropagation(); + this.opts.element.trigger($.Event("select2-blur")); + })); + + this.container.on("click", selector, this.bind(function (e) { + if (!this.isInterfaceEnabled()) return; + if ($(e.target).closest(".select2-search-choice").length > 0) { + // clicked inside a select2 search choice, do not open + return; + } + this.selectChoice(null); + this.clearPlaceholder(); + if (!this.container.hasClass("select2-container-active")) { + this.opts.element.trigger($.Event("select2-focus")); + } + this.open(); + this.focusSearch(); + e.preventDefault(); + })); + + this.container.on("focus", selector, this.bind(function () { + if (!this.isInterfaceEnabled()) return; + if (!this.container.hasClass("select2-container-active")) { + this.opts.element.trigger($.Event("select2-focus")); + } + this.container.addClass("select2-container-active"); + this.dropdown.addClass("select2-drop-active"); + this.clearPlaceholder(); + })); + + this.initContainerWidth(); + this.opts.element.addClass("select2-offscreen"); + + // set the placeholder if necessary + this.clearSearch(); + }, + + // multi + enableInterface: function() { + if (this.parent.enableInterface.apply(this, arguments)) { + this.search.prop("disabled", !this.isInterfaceEnabled()); + } + }, + + // multi + initSelection: function () { + var data; + if (this.opts.element.val() === "" && this.opts.element.text() === "") { + this.updateSelection([]); + this.close(); + // set the placeholder if necessary + this.clearSearch(); + } + if (this.select || this.opts.element.val() !== "") { + var self = this; + this.opts.initSelection.call(null, this.opts.element, function(data){ + if (data !== undefined && data !== null) { + self.updateSelection(data); + self.close(); + // set the placeholder if necessary + self.clearSearch(); + } + }); + } + }, + + // multi + clearSearch: function () { + var placeholder = this.getPlaceholder(), + maxWidth = this.getMaxSearchWidth(); + + if (placeholder !== undefined && this.getVal().length === 0 && this.search.hasClass("select2-focused") === false) { + this.search.val(placeholder).addClass("select2-default"); + // stretch the search box to full width of the container so as much of the placeholder is visible as possible + // we could call this.resizeSearch(), but we do not because that requires a sizer and we do not want to create one so early because of a firefox bug, see #944 + this.search.width(maxWidth > 0 ? maxWidth : this.container.css("width")); + } else { + this.search.val("").width(10); + } + }, + + // multi + clearPlaceholder: function () { + if (this.search.hasClass("select2-default")) { + this.search.val("").removeClass("select2-default"); + } + }, + + // multi + opening: function () { + this.clearPlaceholder(); // should be done before super so placeholder is not used to search + this.resizeSearch(); + + this.parent.opening.apply(this, arguments); + + this.focusSearch(); + + // initializes search's value with nextSearchTerm (if defined by user) + // ignore nextSearchTerm if the dropdown is opened by the user pressing a letter + if(this.search.val() === "") { + if(this.nextSearchTerm != undefined){ + this.search.val(this.nextSearchTerm); + this.search.select(); + } + } + + this.updateResults(true); + if (this.opts.shouldFocusInput(this)) { + this.search.focus(); + } + this.opts.element.trigger($.Event("select2-open")); + }, + + // multi + close: function () { + if (!this.opened()) return; + this.parent.close.apply(this, arguments); + }, + + // multi + focus: function () { + this.close(); + this.search.focus(); + }, + + // multi + isFocused: function () { + return this.search.hasClass("select2-focused"); + }, + + // multi + updateSelection: function (data) { + var ids = [], filtered = [], self = this; + + // filter out duplicates + $(data).each(function () { + if (indexOf(self.id(this), ids) < 0) { + ids.push(self.id(this)); + filtered.push(this); + } + }); + data = filtered; + + this.selection.find(".select2-search-choice").remove(); + $(data).each(function () { + self.addSelectedChoice(this); + }); + self.postprocessResults(); + }, + + // multi + tokenize: function() { + var input = this.search.val(); + input = this.opts.tokenizer.call(this, input, this.data(), this.bind(this.onSelect), this.opts); + if (input != null && input != undefined) { + this.search.val(input); + if (input.length > 0) { + this.open(); + } + } + + }, + + // multi + onSelect: function (data, options) { + + if (!this.triggerSelect(data) || data.text === "") { return; } + + this.addSelectedChoice(data); + + this.opts.element.trigger({ type: "selected", val: this.id(data), choice: data }); + + // keep track of the search's value before it gets cleared + this.nextSearchTerm = this.opts.nextSearchTerm(data, this.search.val()); + + this.clearSearch(); + this.updateResults(); + + if (this.select || !this.opts.closeOnSelect) this.postprocessResults(data, false, this.opts.closeOnSelect===true); + + if (this.opts.closeOnSelect) { + this.close(); + this.search.width(10); + } else { + if (this.countSelectableResults()>0) { + this.search.width(10); + this.resizeSearch(); + if (this.getMaximumSelectionSize() > 0 && this.val().length >= this.getMaximumSelectionSize()) { + // if we reached max selection size repaint the results so choices + // are replaced with the max selection reached message + this.updateResults(true); + } else { + // initializes search's value with nextSearchTerm and update search result + if(this.nextSearchTerm != undefined){ + this.search.val(this.nextSearchTerm); + this.updateResults(); + this.search.select(); + } + } + this.positionDropdown(); + } else { + // if nothing left to select close + this.close(); + this.search.width(10); + } + } + + // since its not possible to select an element that has already been + // added we do not need to check if this is a new element before firing change + this.triggerChange({ added: data }); + + if (!options || !options.noFocus) + this.focusSearch(); + }, + + // multi + cancel: function () { + this.close(); + this.focusSearch(); + }, + + addSelectedChoice: function (data) { + var enableChoice = !data.locked, + enabledItem = $( + "
  • " + + "
    " + + " " + + "
  • "), + disabledItem = $( + "
  • " + + "
    " + + "
  • "); + var choice = enableChoice ? enabledItem : disabledItem, + id = this.id(data), + val = this.getVal(), + formatted, + cssClass; + + formatted=this.opts.formatSelection(data, choice.find("div"), this.opts.escapeMarkup); + if (formatted != undefined) { + choice.find("div").replaceWith("
    "+formatted+"
    "); + } + cssClass=this.opts.formatSelectionCssClass(data, choice.find("div")); + if (cssClass != undefined) { + choice.addClass(cssClass); + } + + if(enableChoice){ + choice.find(".select2-search-choice-close") + .on("mousedown", killEvent) + .on("click dblclick", this.bind(function (e) { + if (!this.isInterfaceEnabled()) return; + + this.unselect($(e.target)); + this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"); + killEvent(e); + this.close(); + this.focusSearch(); + })).on("focus", this.bind(function () { + if (!this.isInterfaceEnabled()) return; + this.container.addClass("select2-container-active"); + this.dropdown.addClass("select2-drop-active"); + })); + } + + choice.data("select2-data", data); + choice.insertBefore(this.searchContainer); + + val.push(id); + this.setVal(val); + }, + + // multi + unselect: function (selected) { + var val = this.getVal(), + data, + index; + selected = selected.closest(".select2-search-choice"); + + if (selected.length === 0) { + throw "Invalid argument: " + selected + ". Must be .select2-search-choice"; + } + + data = selected.data("select2-data"); + + if (!data) { + // prevent a race condition when the 'x' is clicked really fast repeatedly the event can be queued + // and invoked on an element already removed + return; + } + + var evt = $.Event("select2-removing"); + evt.val = this.id(data); + evt.choice = data; + this.opts.element.trigger(evt); + + if (evt.isDefaultPrevented()) { + return false; + } + + while((index = indexOf(this.id(data), val)) >= 0) { + val.splice(index, 1); + this.setVal(val); + if (this.select) this.postprocessResults(); + } + + selected.remove(); + + this.opts.element.trigger({ type: "select2-removed", val: this.id(data), choice: data }); + this.triggerChange({ removed: data }); + + return true; + }, + + // multi + postprocessResults: function (data, initial, noHighlightUpdate) { + var val = this.getVal(), + choices = this.results.find(".select2-result"), + compound = this.results.find(".select2-result-with-children"), + self = this; + + choices.each2(function (i, choice) { + var id = self.id(choice.data("select2-data")); + if (indexOf(id, val) >= 0) { + choice.addClass("select2-selected"); + // mark all children of the selected parent as selected + choice.find(".select2-result-selectable").addClass("select2-selected"); + } + }); + + compound.each2(function(i, choice) { + // hide an optgroup if it doesn't have any selectable children + if (!choice.is('.select2-result-selectable') + && choice.find(".select2-result-selectable:not(.select2-selected)").length === 0) { + choice.addClass("select2-selected"); + } + }); + + if (this.highlight() == -1 && noHighlightUpdate !== false){ + self.highlight(0); + } + + //If all results are chosen render formatNoMatches + if(!this.opts.createSearchChoice && !choices.filter('.select2-result:not(.select2-selected)').length > 0){ + if(!data || data && !data.more && this.results.find(".select2-no-results").length === 0) { + if (checkFormatter(self.opts.formatNoMatches, "formatNoMatches")) { + this.results.append("
  • " + evaluate(self.opts.formatNoMatches, self.opts.element, self.search.val()) + "
  • "); + } + } + } + + }, + + // multi + getMaxSearchWidth: function() { + return this.selection.width() - getSideBorderPadding(this.search); + }, + + // multi + resizeSearch: function () { + var minimumWidth, left, maxWidth, containerLeft, searchWidth, + sideBorderPadding = getSideBorderPadding(this.search); + + minimumWidth = measureTextWidth(this.search) + 10; + + left = this.search.offset().left; + + maxWidth = this.selection.width(); + containerLeft = this.selection.offset().left; + + searchWidth = maxWidth - (left - containerLeft) - sideBorderPadding; + + if (searchWidth < minimumWidth) { + searchWidth = maxWidth - sideBorderPadding; + } + + if (searchWidth < 40) { + searchWidth = maxWidth - sideBorderPadding; + } + + if (searchWidth <= 0) { + searchWidth = minimumWidth; + } + + this.search.width(Math.floor(searchWidth)); + }, + + // multi + getVal: function () { + var val; + if (this.select) { + val = this.select.val(); + return val === null ? [] : val; + } else { + val = this.opts.element.val(); + return splitVal(val, this.opts.separator); + } + }, + + // multi + setVal: function (val) { + var unique; + if (this.select) { + this.select.val(val); + } else { + unique = []; + // filter out duplicates + $(val).each(function () { + if (indexOf(this, unique) < 0) unique.push(this); + }); + this.opts.element.val(unique.length === 0 ? "" : unique.join(this.opts.separator)); + } + }, + + // multi + buildChangeDetails: function (old, current) { + var current = current.slice(0), + old = old.slice(0); + + // remove intersection from each array + for (var i = 0; i < current.length; i++) { + for (var j = 0; j < old.length; j++) { + if (equal(this.opts.id(current[i]), this.opts.id(old[j]))) { + current.splice(i, 1); + if(i>0){ + i--; + } + old.splice(j, 1); + j--; + } + } + } + + return {added: current, removed: old}; + }, + + + // multi + val: function (val, triggerChange) { + var oldData, self=this; + + if (arguments.length === 0) { + return this.getVal(); + } + + oldData=this.data(); + if (!oldData.length) oldData=[]; + + // val is an id. !val is true for [undefined,null,'',0] - 0 is legal + if (!val && val !== 0) { + this.opts.element.val(""); + this.updateSelection([]); + this.clearSearch(); + if (triggerChange) { + this.triggerChange({added: this.data(), removed: oldData}); + } + return; + } + + // val is a list of ids + this.setVal(val); + + if (this.select) { + this.opts.initSelection(this.select, this.bind(this.updateSelection)); + if (triggerChange) { + this.triggerChange(this.buildChangeDetails(oldData, this.data())); + } + } else { + if (this.opts.initSelection === undefined) { + throw new Error("val() cannot be called if initSelection() is not defined"); + } + + this.opts.initSelection(this.opts.element, function(data){ + var ids=$.map(data, self.id); + self.setVal(ids); + self.updateSelection(data); + self.clearSearch(); + if (triggerChange) { + self.triggerChange(self.buildChangeDetails(oldData, self.data())); + } + }); + } + this.clearSearch(); + }, + + // multi + onSortStart: function() { + if (this.select) { + throw new Error("Sorting of elements is not supported when attached to instead."); + } + + // collapse search field into 0 width so its container can be collapsed as well + this.search.width(0); + // hide the container + this.searchContainer.hide(); + }, + + // multi + onSortEnd:function() { + + var val=[], self=this; + + // show search and move it to the end of the list + this.searchContainer.show(); + // make sure the search container is the last item in the list + this.searchContainer.appendTo(this.searchContainer.parent()); + // since we collapsed the width in dragStarted, we resize it here + this.resizeSearch(); + + // update selection + this.selection.find(".select2-search-choice").each(function() { + val.push(self.opts.id($(this).data("select2-data"))); + }); + this.setVal(val); + this.triggerChange(); + }, + + // multi + data: function(values, triggerChange) { + var self=this, ids, old; + if (arguments.length === 0) { + return this.selection + .children(".select2-search-choice") + .map(function() { return $(this).data("select2-data"); }) + .get(); + } else { + old = this.data(); + if (!values) { values = []; } + ids = $.map(values, function(e) { return self.opts.id(e); }); + this.setVal(ids); + this.updateSelection(values); + this.clearSearch(); + if (triggerChange) { + this.triggerChange(this.buildChangeDetails(old, this.data())); + } + } + } + }); + + $.fn.select2 = function () { + + var args = Array.prototype.slice.call(arguments, 0), + opts, + select2, + method, value, multiple, + allowedMethods = ["val", "destroy", "opened", "open", "close", "focus", "isFocused", "container", "dropdown", "onSortStart", "onSortEnd", "enable", "disable", "readonly", "positionDropdown", "data", "search"], + valueMethods = ["opened", "isFocused", "container", "dropdown"], + propertyMethods = ["val", "data"], + methodsMap = { search: "externalSearch" }; + + this.each(function () { + if (args.length === 0 || typeof(args[0]) === "object") { + opts = args.length === 0 ? {} : $.extend({}, args[0]); + opts.element = $(this); + + if (opts.element.get(0).tagName.toLowerCase() === "select") { + multiple = opts.element.prop("multiple"); + } else { + multiple = opts.multiple || false; + if ("tags" in opts) {opts.multiple = multiple = true;} + } + + select2 = multiple ? new window.Select2["class"].multi() : new window.Select2["class"].single(); + select2.init(opts); + } else if (typeof(args[0]) === "string") { + + if (indexOf(args[0], allowedMethods) < 0) { + throw "Unknown method: " + args[0]; + } + + value = undefined; + select2 = $(this).data("select2"); + if (select2 === undefined) return; + + method=args[0]; + + if (method === "container") { + value = select2.container; + } else if (method === "dropdown") { + value = select2.dropdown; + } else { + if (methodsMap[method]) method = methodsMap[method]; + + value = select2[method].apply(select2, args.slice(1)); + } + if (indexOf(args[0], valueMethods) >= 0 + || (indexOf(args[0], propertyMethods) >= 0 && args.length == 1)) { + return false; // abort the iteration, ready to return first matched value + } + } else { + throw "Invalid arguments to select2 plugin: " + args; + } + }); + return (value === undefined) ? this : value; + }; + + // plugin defaults, accessible to users + $.fn.select2.defaults = { + width: "copy", + loadMorePadding: 0, + closeOnSelect: true, + openOnEnter: true, + containerCss: {}, + dropdownCss: {}, + containerCssClass: "", + dropdownCssClass: "", + formatResult: function(result, container, query, escapeMarkup) { + var markup=[]; + markMatch(result.text, query.term, markup, escapeMarkup); + return markup.join(""); + }, + formatSelection: function (data, container, escapeMarkup) { + return data ? escapeMarkup(data.text) : undefined; + }, + sortResults: function (results, container, query) { + return results; + }, + formatResultCssClass: function(data) {return data.css;}, + formatSelectionCssClass: function(data, container) {return undefined;}, + minimumResultsForSearch: 0, + minimumInputLength: 0, + maximumInputLength: null, + maximumSelectionSize: 0, + id: function (e) { return e == undefined ? null : e.id; }, + matcher: function(term, text) { + return stripDiacritics(''+text).toUpperCase().indexOf(stripDiacritics(''+term).toUpperCase()) >= 0; + }, + separator: ",", + tokenSeparators: [], + tokenizer: defaultTokenizer, + escapeMarkup: defaultEscapeMarkup, + blurOnChange: false, + selectOnBlur: false, + adaptContainerCssClass: function(c) { return c; }, + adaptDropdownCssClass: function(c) { return null; }, + nextSearchTerm: function(selectedObject, currentSearchTerm) { return undefined; }, + searchInputPlaceholder: '', + createSearchChoicePosition: 'top', + shouldFocusInput: function (instance) { + // Attempt to detect touch devices + var supportsTouchEvents = (('ontouchstart' in window) || + (navigator.msMaxTouchPoints > 0)); + + // Only devices which support touch events should be special cased + if (!supportsTouchEvents) { + return true; + } + + // Never focus the input if search is disabled + if (instance.opts.minimumResultsForSearch < 0) { + return false; + } + + return true; + } + }; + + $.fn.select2.locales = []; + + $.fn.select2.locales['en'] = { + formatMatches: function (matches) { if (matches === 1) { return "One result is available, press enter to select it."; } return matches + " results are available, use up and down arrow keys to navigate."; }, + formatNoMatches: function () { return "No matches found"; }, + formatAjaxError: function (jqXHR, textStatus, errorThrown) { return "Loading failed"; }, + formatInputTooShort: function (input, min) { var n = min - input.length; return "Please enter " + n + " or more character" + (n == 1 ? "" : "s"); }, + formatInputTooLong: function (input, max) { var n = input.length - max; return "Please delete " + n + " character" + (n == 1 ? "" : "s"); }, + formatSelectionTooBig: function (limit) { return "You can only select " + limit + " item" + (limit == 1 ? "" : "s"); }, + formatLoadMore: function (pageNumber) { return "Loading more results…"; }, + formatSearching: function () { return "Searching…"; }, + }; + + $.extend($.fn.select2.defaults, $.fn.select2.locales['en']); + + $.fn.select2.ajaxDefaults = { + transport: $.ajax, + params: { + type: "GET", + cache: false, + dataType: "json" + } + }; + + // exports + window.Select2 = { + query: { + ajax: ajax, + local: local, + tags: tags + }, util: { + debounce: debounce, + markMatch: markMatch, + escapeMarkup: defaultEscapeMarkup, + stripDiacritics: stripDiacritics + }, "class": { + "abstract": AbstractSelect2, + "single": SingleSelect2, + "multi": MultiSelect2 + } + }; + +}(jQuery)); + + + }).apply(root, arguments); +}); +}(this)); + +(function(root) { +define("jquery.event.drag", ["jquery"], function() { + return (function() { +/*! + * jquery.event.drag - v 2.2 + * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com + * Open Source MIT License - http://threedubmedia.com/code/license + */ +// Created: 2008-06-04 +// Updated: 2012-05-21 +// REQUIRES: jquery 1.7.x + +;(function( $ ){ + +// add the jquery instance method +$.fn.drag = function( str, arg, opts ){ + // figure out the event type + var type = typeof str == "string" ? str : "", + // figure out the event handler... + fn = $.isFunction( str ) ? str : $.isFunction( arg ) ? arg : null; + // fix the event type + if ( type.indexOf("drag") !== 0 ) + type = "drag"+ type; + // were options passed + opts = ( str == fn ? arg : opts ) || {}; + // trigger or bind event handler + return fn ? this.bind( type, opts, fn ) : this.trigger( type ); +}; + +// local refs (increase compression) +var $event = $.event, +$special = $event.special, +// configure the drag special event +drag = $special.drag = { + + // these are the default settings + defaults: { + which: 1, // mouse button pressed to start drag sequence + distance: 0, // distance dragged before dragstart + not: ':input', // selector to suppress dragging on target elements + handle: null, // selector to match handle target elements + relative: false, // true to use "position", false to use "offset" + drop: true, // false to suppress drop events, true or selector to allow + click: false // false to suppress click events after dragend (no proxy) + }, + + // the key name for stored drag data + datakey: "dragdata", + + // prevent bubbling for better performance + noBubble: true, + + // count bound related events + add: function( obj ){ + // read the interaction data + var data = $.data( this, drag.datakey ), + // read any passed options + opts = obj.data || {}; + // count another realted event + data.related += 1; + // extend data options bound with this event + // don't iterate "opts" in case it is a node + $.each( drag.defaults, function( key, def ){ + if ( opts[ key ] !== undefined ) + data[ key ] = opts[ key ]; + }); + }, + + // forget unbound related events + remove: function(){ + $.data( this, drag.datakey ).related -= 1; + }, + + // configure interaction, capture settings + setup: function(){ + // check for related events + if ( $.data( this, drag.datakey ) ) + return; + // initialize the drag data with copied defaults + var data = $.extend({ related:0 }, drag.defaults ); + // store the interaction data + $.data( this, drag.datakey, data ); + // bind the mousedown event, which starts drag interactions + $event.add( this, "touchstart mousedown", drag.init, data ); + // prevent image dragging in IE... + if ( this.attachEvent ) + this.attachEvent("ondragstart", drag.dontstart ); + }, + + // destroy configured interaction + teardown: function(){ + var data = $.data( this, drag.datakey ) || {}; + // check for related events + if ( data.related ) + return; + // remove the stored data + $.removeData( this, drag.datakey ); + // remove the mousedown event + $event.remove( this, "touchstart mousedown", drag.init ); + // enable text selection + drag.textselect( true ); + // un-prevent image dragging in IE... + if ( this.detachEvent ) + this.detachEvent("ondragstart", drag.dontstart ); + }, + + // initialize the interaction + init: function( event ){ + // sorry, only one touch at a time + if ( drag.touched ) + return; + // the drag/drop interaction data + var dd = event.data, results; + // check the which directive + if ( event.which != 0 && dd.which > 0 && event.which != dd.which ) + return; + // check for suppressed selector + if ( $( event.target ).is( dd.not ) ) + return; + // check for handle selector + if ( dd.handle && !$( event.target ).closest( dd.handle, event.currentTarget ).length ) + return; + + drag.touched = event.type == 'touchstart' ? this : null; + dd.propagates = 1; + dd.mousedown = this; + dd.interactions = [ drag.interaction( this, dd ) ]; + dd.target = event.target; + dd.pageX = event.pageX; + dd.pageY = event.pageY; + dd.dragging = null; + // handle draginit event... + results = drag.hijack( event, "draginit", dd ); + // early cancel + if ( !dd.propagates ) + return; + // flatten the result set + results = drag.flatten( results ); + // insert new interaction elements + if ( results && results.length ){ + dd.interactions = []; + $.each( results, function(){ + dd.interactions.push( drag.interaction( this, dd ) ); + }); + } + // remember how many interactions are propagating + dd.propagates = dd.interactions.length; + // locate and init the drop targets + if ( dd.drop !== false && $special.drop ) + $special.drop.handler( event, dd ); + // disable text selection + drag.textselect( false ); + // bind additional events... + if ( drag.touched ) + $event.add( drag.touched, "touchmove touchend", drag.handler, dd ); + else + $event.add( document, "mousemove mouseup", drag.handler, dd ); + // helps prevent text selection or scrolling + if ( !drag.touched || dd.live ) + return false; + }, + + // returns an interaction object + interaction: function( elem, dd ){ + var offset = $( elem )[ dd.relative ? "position" : "offset" ]() || { top:0, left:0 }; + return { + drag: elem, + callback: new drag.callback(), + droppable: [], + offset: offset + }; + }, + + // handle drag-releatd DOM events + handler: function( event ){ + // read the data before hijacking anything + var dd = event.data; + // handle various events + switch ( event.type ){ + // mousemove, check distance, start dragging + case !dd.dragging && 'touchmove': + event.preventDefault(); + case !dd.dragging && 'mousemove': + // drag tolerance, x� + y� = distance� + if ( Math.pow( event.pageX-dd.pageX, 2 ) + Math.pow( event.pageY-dd.pageY, 2 ) < Math.pow( dd.distance, 2 ) ) + break; // distance tolerance not reached + event.target = dd.target; // force target from "mousedown" event (fix distance issue) + drag.hijack( event, "dragstart", dd ); // trigger "dragstart" + if ( dd.propagates ) // "dragstart" not rejected + dd.dragging = true; // activate interaction + // mousemove, dragging + case 'touchmove': + event.preventDefault(); + case 'mousemove': + if ( dd.dragging ){ + // trigger "drag" + drag.hijack( event, "drag", dd ); + if ( dd.propagates ){ + // manage drop events + if ( dd.drop !== false && $special.drop ) + $special.drop.handler( event, dd ); // "dropstart", "dropend" + break; // "drag" not rejected, stop + } + event.type = "mouseup"; // helps "drop" handler behave + } + // mouseup, stop dragging + case 'touchend': + case 'mouseup': + default: + if ( drag.touched ) + $event.remove( drag.touched, "touchmove touchend", drag.handler ); // remove touch events + else + $event.remove( document, "mousemove mouseup", drag.handler ); // remove page events + if ( dd.dragging ){ + if ( dd.drop !== false && $special.drop ) + $special.drop.handler( event, dd ); // "drop" + drag.hijack( event, "dragend", dd ); // trigger "dragend" + } + drag.textselect( true ); // enable text selection + // if suppressing click events... + if ( dd.click === false && dd.dragging ) + $.data( dd.mousedown, "suppress.click", new Date().getTime() + 5 ); + dd.dragging = drag.touched = false; // deactivate element + break; + } + }, + + // re-use event object for custom events + hijack: function( event, type, dd, x, elem ){ + // not configured + if ( !dd ) + return; + // remember the original event and type + var orig = { event:event.originalEvent, type:event.type }, + // is the event drag related or drog related? + mode = type.indexOf("drop") ? "drag" : "drop", + // iteration vars + result, i = x || 0, ia, $elems, callback, + len = !isNaN( x ) ? x : dd.interactions.length; + // modify the event type + event.type = type; + // remove the original event + event.originalEvent = null; + // initialize the results + dd.results = []; + // handle each interacted element + do if ( ia = dd.interactions[ i ] ){ + // validate the interaction + if ( type !== "dragend" && ia.cancelled ) + continue; + // set the dragdrop properties on the event object + callback = drag.properties( event, dd, ia ); + // prepare for more results + ia.results = []; + // handle each element + $( elem || ia[ mode ] || dd.droppable ).each(function( p, subject ){ + // identify drag or drop targets individually + callback.target = subject; + // force propagtion of the custom event + event.isPropagationStopped = function(){ return false; }; + // handle the event + result = subject ? $event.dispatch.call( subject, event, callback ) : null; + // stop the drag interaction for this element if ( result === false ){ if ( mode == "drag" ){ ia.cancelled = true; @@ -16510,40237 +19608,43075 @@ drag = $special.drag = { }; -// callback methods -drag.callback.prototype = { - update: function(){ - if ( $special.drop && this.available.length ) - $.each( this.available, function( i ){ - $special.drop.locate( this, i ); - }); - } -}; +// callback methods +drag.callback.prototype = { + update: function(){ + if ( $special.drop && this.available.length ) + $.each( this.available, function( i ){ + $special.drop.locate( this, i ); + }); + } +}; + +// patch $.event.$dispatch to allow suppressing clicks +var $dispatch = $event.dispatch; +$event.dispatch = function( event ){ + if ( $.data( this, "suppress."+ event.type ) - new Date().getTime() > 0 ){ + $.removeData( this, "suppress."+ event.type ); + return; + } + return $dispatch.apply( this, arguments ); +}; + +// event fix hooks for touch events... +var touchHooks = +$event.fixHooks.touchstart = +$event.fixHooks.touchmove = +$event.fixHooks.touchend = +$event.fixHooks.touchcancel = { + props: "clientX clientY pageX pageY screenX screenY".split( " " ), + filter: function( event, orig ) { + if ( orig ){ + var touched = ( orig.touches && orig.touches[0] ) + || ( orig.changedTouches && orig.changedTouches[0] ) + || null; + // iOS webkit: touchstart, touchmove, touchend + if ( touched ) + $.each( touchHooks.props, function( i, prop ){ + event[ prop ] = touched[ prop ]; + }); + } + return event; + } +}; + +// share the same special event configuration with related events... +$special.draginit = $special.dragstart = $special.dragend = drag; + +})( jQuery ); + + }).apply(root, arguments); +}); +}(this)); + +(function(root) { +define("jquery.event.drop", ["jquery"], function() { + return (function() { +/*! + * jquery.event.drop - v 2.2 + * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com + * Open Source MIT License - http://threedubmedia.com/code/license + */ +// Created: 2008-06-04 +// Updated: 2012-05-21 +// REQUIRES: jquery 1.7.x, event.drag 2.2 + +;(function($){ // secure $ jQuery alias + +// Events: drop, dropstart, dropend + +// add the jquery instance method +$.fn.drop = function( str, arg, opts ){ + // figure out the event type + var type = typeof str == "string" ? str : "", + // figure out the event handler... + fn = $.isFunction( str ) ? str : $.isFunction( arg ) ? arg : null; + // fix the event type + if ( type.indexOf("drop") !== 0 ) + type = "drop"+ type; + // were options passed + opts = ( str == fn ? arg : opts ) || {}; + // trigger or bind event handler + return fn ? this.bind( type, opts, fn ) : this.trigger( type ); +}; + +// DROP MANAGEMENT UTILITY +// returns filtered drop target elements, caches their positions +$.drop = function( opts ){ + opts = opts || {}; + // safely set new options... + drop.multi = opts.multi === true ? Infinity : + opts.multi === false ? 1 : !isNaN( opts.multi ) ? opts.multi : drop.multi; + drop.delay = opts.delay || drop.delay; + drop.tolerance = $.isFunction( opts.tolerance ) ? opts.tolerance : + opts.tolerance === null ? null : drop.tolerance; + drop.mode = opts.mode || drop.mode || 'intersect'; +}; + +// local refs (increase compression) +var $event = $.event, +$special = $event.special, +// configure the drop special event +drop = $.event.special.drop = { + + // these are the default settings + multi: 1, // allow multiple drop winners per dragged element + delay: 20, // async timeout delay + mode: 'overlap', // drop tolerance mode + + // internal cache + targets: [], + + // the key name for stored drop data + datakey: "dropdata", + + // prevent bubbling for better performance + noBubble: true, + + // count bound related events + add: function( obj ){ + // read the interaction data + var data = $.data( this, drop.datakey ); + // count another realted event + data.related += 1; + }, + + // forget unbound related events + remove: function(){ + $.data( this, drop.datakey ).related -= 1; + }, + + // configure the interactions + setup: function(){ + // check for related events + if ( $.data( this, drop.datakey ) ) + return; + // initialize the drop element data + var data = { + related: 0, + active: [], + anyactive: 0, + winner: 0, + location: {} + }; + // store the drop data on the element + $.data( this, drop.datakey, data ); + // store the drop target in internal cache + drop.targets.push( this ); + }, + + // destroy the configure interaction + teardown: function(){ + var data = $.data( this, drop.datakey ) || {}; + // check for related events + if ( data.related ) + return; + // remove the stored data + $.removeData( this, drop.datakey ); + // reference the targeted element + var element = this; + // remove from the internal cache + drop.targets = $.grep( drop.targets, function( target ){ + return ( target !== element ); + }); + }, + + // shared event handler + handler: function( event, dd ){ + // local vars + var results, $targets; + // make sure the right data is available + if ( !dd ) + return; + // handle various events + switch ( event.type ){ + // draginit, from $.event.special.drag + case 'mousedown': // DROPINIT >> + case 'touchstart': // DROPINIT >> + // collect and assign the drop targets + $targets = $( drop.targets ); + if ( typeof dd.drop == "string" ) + $targets = $targets.filter( dd.drop ); + // reset drop data winner properties + $targets.each(function(){ + var data = $.data( this, drop.datakey ); + data.active = []; + data.anyactive = 0; + data.winner = 0; + }); + // set available target elements + dd.droppable = $targets; + // activate drop targets for the initial element being dragged + $special.drag.hijack( event, "dropinit", dd ); + break; + // drag, from $.event.special.drag + case 'mousemove': // TOLERATE >> + case 'touchmove': // TOLERATE >> + drop.event = event; // store the mousemove event + if ( !drop.timer ) + // monitor drop targets + drop.tolerate( dd ); + break; + // dragend, from $.event.special.drag + case 'mouseup': // DROP >> DROPEND >> + case 'touchend': // DROP >> DROPEND >> + drop.timer = clearTimeout( drop.timer ); // delete timer + if ( dd.propagates ){ + $special.drag.hijack( event, "drop", dd ); + $special.drag.hijack( event, "dropend", dd ); + } + break; + + } + }, + + // returns the location positions of an element + locate: function( elem, index ){ + var data = $.data( elem, drop.datakey ), + $elem = $( elem ), + posi = $elem.offset() || {}, + height = $elem.outerHeight(), + width = $elem.outerWidth(), + location = { + elem: elem, + width: width, + height: height, + top: posi.top, + left: posi.left, + right: posi.left + width, + bottom: posi.top + height + }; + // drag elements might not have dropdata + if ( data ){ + data.location = location; + data.index = index; + data.elem = elem; + } + return location; + }, + + // test the location positions of an element against another OR an X,Y coord + contains: function( target, test ){ // target { location } contains test [x,y] or { location } + return ( ( test[0] || test.left ) >= target.left && ( test[0] || test.right ) <= target.right + && ( test[1] || test.top ) >= target.top && ( test[1] || test.bottom ) <= target.bottom ); + }, + + // stored tolerance modes + modes: { // fn scope: "$.event.special.drop" object + // target with mouse wins, else target with most overlap wins + 'intersect': function( event, proxy, target ){ + return this.contains( target, [ event.pageX, event.pageY ] ) ? // check cursor + 1e9 : this.modes.overlap.apply( this, arguments ); // check overlap + }, + // target with most overlap wins + 'overlap': function( event, proxy, target ){ + // calculate the area of overlap... + return Math.max( 0, Math.min( target.bottom, proxy.bottom ) - Math.max( target.top, proxy.top ) ) + * Math.max( 0, Math.min( target.right, proxy.right ) - Math.max( target.left, proxy.left ) ); + }, + // proxy is completely contained within target bounds + 'fit': function( event, proxy, target ){ + return this.contains( target, proxy ) ? 1 : 0; + }, + // center of the proxy is contained within target bounds + 'middle': function( event, proxy, target ){ + return this.contains( target, [ proxy.left + proxy.width * .5, proxy.top + proxy.height * .5 ] ) ? 1 : 0; + } + }, + + // sort drop target cache by by winner (dsc), then index (asc) + sort: function( a, b ){ + return ( b.winner - a.winner ) || ( a.index - b.index ); + }, + + // async, recursive tolerance execution + tolerate: function( dd ){ + // declare local refs + var i, drp, drg, data, arr, len, elem, + // interaction iteration variables + x = 0, ia, end = dd.interactions.length, + // determine the mouse coords + xy = [ drop.event.pageX, drop.event.pageY ], + // custom or stored tolerance fn + tolerance = drop.tolerance || drop.modes[ drop.mode ]; + // go through each passed interaction... + do if ( ia = dd.interactions[x] ){ + // check valid interaction + if ( !ia ) + return; + // initialize or clear the drop data + ia.drop = []; + // holds the drop elements + arr = []; + len = ia.droppable.length; + // determine the proxy location, if needed + if ( tolerance ) + drg = drop.locate( ia.proxy ); + // reset the loop + i = 0; + // loop each stored drop target + do if ( elem = ia.droppable[i] ){ + data = $.data( elem, drop.datakey ); + drp = data.location; + if ( !drp ) continue; + // find a winner: tolerance function is defined, call it + data.winner = tolerance ? tolerance.call( drop, drop.event, drg, drp ) + // mouse position is always the fallback + : drop.contains( drp, xy ) ? 1 : 0; + arr.push( data ); + } while ( ++i < len ); // loop + // sort the drop targets + arr.sort( drop.sort ); + // reset the loop + i = 0; + // loop through all of the targets again + do if ( data = arr[ i ] ){ + // winners... + if ( data.winner && ia.drop.length < drop.multi ){ + // new winner... dropstart + if ( !data.active[x] && !data.anyactive ){ + // check to make sure that this is not prevented + if ( $special.drag.hijack( drop.event, "dropstart", dd, x, data.elem )[0] !== false ){ + data.active[x] = 1; + data.anyactive += 1; + } + // if false, it is not a winner + else + data.winner = 0; + } + // if it is still a winner + if ( data.winner ) + ia.drop.push( data.elem ); + } + // losers... + else if ( data.active[x] && data.anyactive == 1 ){ + // former winner... dropend + $special.drag.hijack( drop.event, "dropend", dd, x, data.elem ); + data.active[x] = 0; + data.anyactive -= 1; + } + } while ( ++i < len ); // loop + } while ( ++x < end ) // loop + // check if the mouse is still moving or is idle + if ( drop.last && xy[0] == drop.last.pageX && xy[1] == drop.last.pageY ) + delete drop.timer; // idle, don't recurse + else // recurse + drop.timer = setTimeout(function(){ + drop.tolerate( dd ); + }, drop.delay ); + // remember event, to compare idleness + drop.last = drop.event; + } + +}; + +// share the same special event configuration with related events... +$special.dropinit = $special.dropstart = $special.dropend = drop; + +})(jQuery); // confine scope +; +return $.drop; + }).apply(root, arguments); +}); +}(this)); + +/* Select2 pattern. + * + * Options: + * separator(string): Analagous to the separator constructor parameter from Select2. Defines a custom separator used to distinguish the tag values. Ex: a value of ";" will allow tags and initialValues to have values separated by ";" instead of the default ",". (',') + * initialValues(string): This can be a json encoded string, or a list of id:text values. Ex: Red:The Color Red,Orange:The Color Orange This is used inside the initSelection method, if AJAX options are NOT set. (null) + * vocabularyUrl(string): This is a URL to a JSON-formatted file used to populate the list (null) + * allowNewItems(string): All new items to be entered into the widget(true) + * OTHER OPTIONS(): For more options on select2 go to http://ivaynberg.github.io/select2/#documentation () + * + * Documentation: + * # Autocomplete with search (single select) + * + * {{ example-1 }} + * + * # Tagging + * + * {{ example-2 }} + * + * # Orderable tags + * + * {{ example-3 }} + * + * # AJAX tags + * + * {{ example-4 }} + * + * Example: example-1 + * + * + * Example: example-2 + * + * + * Example: example-3 + * + * Example: example-4 + * + * + */ + + +define('mockup-patterns-select2',[ + 'jquery', + 'pat-base', + 'select2', + 'jquery.event.drag', + 'jquery.event.drop' +], function($, Base) { + 'use strict'; + + var Select2 = Base.extend({ + name: 'select2', + trigger: '.pat-select2', + parser: 'mockup', + defaults: { + separator: ',' + }, + initializeValues: function() { + var self = this; + // Init Selection --------------------------------------------- + if (self.options.initialValues) { + self.options.id = function(term) { + return term.id; + }; + self.options.initSelection = function ($el, callback) { + var data = [], + value = $el.val(), + seldefaults = self.options.initialValues; + + // Create the initSelection value that contains the default selection, + // but in a javascript object + if (typeof(self.options.initialValues) === 'string' && self.options.initialValues !== '') { + // if default selection value starts with a '{', then treat the value as + // a JSON object that needs to be parsed + if (self.options.initialValues[0] === '{') { + seldefaults = JSON.parse(self.options.initialValues); + } + // otherwise, treat the value as a list, separated by the defaults.separator value of + // strings in the format "id:text", and convert it to an object + else { + seldefaults = {}; + $(self.options.initialValues.split(self.options.separator)).each(function() { + var selection = this.split(':'); + var id = $.trim(selection[0]); + var text = $.trim(selection[1]); + seldefaults[id] = text; + }); + } + } + + $(value.split(self.options.separator)).each(function() { + var text = this; + if (seldefaults[this]) { + text = seldefaults[this]; + } + data.push({id: this, text: text}); + }); + callback(data); + }; + } + }, + initializeTags: function() { + var self = this; + if (self.options.tags && typeof(self.options.tags) === 'string') { + if (self.options.tags.substr(0, 1) === '[') { + self.options.tags = JSON.parse(self.options.tags); + } else { + self.options.tags = self.options.tags.split(self.options.separator); + } + } + + if (self.options.tags && !self.options.allowNewItems) { + self.options.data = $.map (self.options.tags, function (value, i) { + return { id: value, text: value }; + }); + self.options.multiple = true; + delete self.options.tags; + } + }, + initializeOrdering: function() { + var self = this; + if (self.options.orderable) { + var formatSelection = function(data, $container) { + return data ? data.text : undefined; + }; + if (self.options.formatSelection) { + formatSelection = self.options.formatSelection; + } + + self.options.formatSelection = function(data, $container) { + $container.parents('li') + .drag('start', function(e, dd) { + $(this).addClass('select2-choice-dragging'); + self.$el.select2('onSortStart'); + $.drop({ + tolerance: function(event, proxy, target) { + var test = event.pageY > (target.top + target.height / 2); + $.data(target.elem, 'drop+reorder', test ? 'insertAfter' : 'insertBefore' ); + return this.contains(target, [event.pageX, event.pageY]); + } + }); + return $( this ).clone(). + addClass('dragging'). + css({opacity: 0.75, position: 'absolute'}). + appendTo(document.body); + }) + .drag(function(e, dd) { + /*jshint eqeqeq:false */ + $( dd.proxy ).css({ + top: dd.offsetY, + left: dd.offsetX + }); + var drop = dd.drop[0], + method = $.data(drop || {}, 'drop+reorder'); + + /* XXX Cannot use triple equals here */ + if (drop && (drop != dd.current || method != dd.method)) { + $(this)[method](drop); + dd.current = drop; + dd.method = method; + dd.update(); + } + }) + .drag('end', function(e, dd) { + $(this).removeClass('select2-choice-dragging'); + self.$el.select2('onSortEnd'); + $( dd.proxy ).remove(); + }) + .drop('init', function(e, dd ) { + /*jshint eqeqeq:false */ + /* XXX Cannot use triple equals here */ + return (this == dd.drag) ? false: true; + }); + return formatSelection(data, $container); + }; + } + }, + initializeSelect2: function() { + var self = this; + self.$el.select2(self.options); + self.$select2 = self.$el.parent().find('.select2-container'); + self.$el.parent().off('close.plone-modal.patterns'); + if (self.options.orderable) { + self.$select2.addClass('select2-orderable'); + } + }, + init: function() { + var self = this; + + self.options.allowNewItems = self.options.hasOwnProperty ('allowNewItems') ? + JSON.parse(self.options.allowNewItems) : true; + + if (self.options.ajax || self.options.vocabularyUrl) { + if (self.options.vocabularyUrl) { + self.options.multiple = self.options.multiple === undefined ? true : self.options.multiple; + self.options.ajax = self.options.ajax || {}; + self.options.ajax.url = self.options.vocabularyUrl; + // XXX removing the following function does'nt break tests. dead code? + self.options.initSelection = function ($el, callback) { + var data = [], value = $el.val(); + $(value.split(self.options.separator)).each(function () { + data.push({id: this, text: this}); + }); + callback(data); + }; + } + + var queryTerm = ''; + self.options.ajax = $.extend({ + quietMillis: 300, + data: function (term, page) { + queryTerm = term; + return { + query: term, + 'page_limit': 10, + page: page + }; + }, + results: function (data, page) { + var results = data.results; + if (self.options.vocabularyUrl) { + var dataIds = []; + $.each(data.results, function(i, item) { + dataIds.push(item.id); + }); + results = []; + + var haveResult = queryTerm === '' || $.inArray(queryTerm, dataIds) >= 0; + if (self.options.allowNewItems && !haveResult) { + results.push({id: queryTerm, text: queryTerm}); + } + + $.each(data.results, function(i, item) { + results.push(item); + }); + } + return { results: results }; + } + }, self.options.ajax); + } else if (self.options.multiple && self.$el.is('select')) { + // Multiselects need to be converted to input[type=hidden] + // for Select2 + var vals = self.$el.val() || []; + var options = $.map(self.$el.find('option'), function (o) { return {text: $(o).html(), id: o.value}; }); + var $hidden = $(''); + $hidden.val(vals.join(self.options.separator)); + $hidden.attr('class', self.$el.attr('class')); + $hidden.attr('name', self.$el.attr('name')); + $hidden.attr('id', self.$el.attr('id')); + self.$orig = self.$el; + self.$el.replaceWith($hidden); + self.$el = $hidden; + self.options.data = options; + } + + self.initializeValues(); + self.initializeTags(); + self.initializeOrdering(); + self.initializeSelect2(); + } + }); + + return Select2; + +}); + +/* Password strength pattern + * + * Options: + * zxcvbn(url): Location to load zxcvbn from. Defaults to cdnjs + * + * Documentation: + * + * # Simple + * + * {{ example-1 }} + * + * # Custom zxcvbn location + * + * {{ example-2 }} + * + * Example: example-1 + * + * + * Example: example-2 + * + * + */ + +define('mockup-patterns-passwordstrength',[ + 'jquery', + 'pat-base' +], function($, Base) { + 'use strict'; + function loadScript(src) { + var s, i, + scripts = document.getElementsByTagName('script'); + + // Check script element doesn't already exist + for (i = 0; i < scripts.length; i++) { + if (scripts[i].src.indexOf(src) !== -1) { + return; + } + } + + // If not, add it to page + s = document.createElement('script'); + s.type = 'text/javascript'; + s.async = true; + s.src = src; + scripts[0].parentNode.insertBefore(s, scripts[0]); + } + + function jsDiv() { + return $(document.createElement('div')); + } + + var PasswordStrength = Base.extend({ + name: 'passwordstrength', + trigger: '.pat-passwordstrength', + parser: 'mockup', + defaults: { + zxcvbn: '//cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.js' + }, + init: function () { + var self = this, + $pwfield = this.$el, + $pwmeter = jsDiv().append([jsDiv(), jsDiv(), jsDiv(), jsDiv()]); + + function setLevel() { + var score = 0; + + if (typeof window.zxcvbn !== 'function') { + // No zxcvbn yet, try and load it + loadScript(self.options.zxcvbn); + } else if ($pwfield[0].value.length > 0) { + // Run zxcvbn, supplying the value of any other widgets in the form + score = Math.max(1, window.zxcvbn( + $pwfield[0].value, + [].map.call( + ($pwfield[0].form || { elements: [] }).elements, + function (inp) { + if (inp === $pwfield[0]) { + return null; + } + return inp.value || null; + } + ).filter(function (x) { return x; }) + ).score); + } + $pwmeter.attr('class', 'pat-passwordstrength-meter level-' + score); + } + + $pwfield.after($pwmeter); + $pwfield.on('keyup', function(e) { + var timeoutId = 0; + + clearTimeout(timeoutId); + timeoutId = setTimeout(setLevel, 500); + }); + setLevel(); + } + }); + + return PasswordStrength; +}); + +/* i18n integration. This is forked from jarn.jsi18n + * + * This is a singleton. + * Configuration is done on the body tag data-i18ncatalogurl attribute + * + * + * Or, it'll default to "/plonejsi18n" + */ +define('mockup-i18n',[ + 'jquery' +], function($) { + 'use strict'; + + var I18N = function() { + var self = this; + self.baseUrl = $('body').attr('data-i18ncatalogurl'); + + if (!self.baseUrl) { + self.baseUrl = '/plonejsi18n'; + } + self.currentLanguage = $('html').attr('lang') || 'en-us'; + self.storage = null; + self.catalogs = {}; + self.ttl = 24 * 3600 * 1000; + + // Internet Explorer 8 does not know Date.now() which is used in e.g. loadCatalog, so we "define" it + if (!Date.now) { + Date.now = function() { + return new Date().valueOf(); + }; + } + + try { + if ('localStorage' in window && window.localStorage !== null && 'JSON' in window && window.JSON !== null) { + self.storage = window.localStorage; + } + } catch (e) {} + + self.configure = function(config) { + for (var key in config){ + self[key] = config[key]; + } + }; + + self._setCatalog = function (domain, language, catalog) { + if (domain in self.catalogs) { + self.catalogs[domain][language] = catalog; + } else { + self.catalogs[domain] = {}; + self.catalogs[domain][language] = catalog; + } + }; + + self._storeCatalog = function (domain, language, catalog) { + var key = domain + '-' + language; + if (self.storage !== null && catalog !== null) { + self.storage.setItem(key, JSON.stringify(catalog)); + self.storage.setItem(key + '-updated', Date.now()); + } + }; + + self.getUrl = function(domain, language) { + return self.baseUrl + '?domain=' + domain + '&language=' + language; + }; + + self.loadCatalog = function (domain, language) { + if (language === undefined) { + language = self.currentLanguage; + } + if (self.storage !== null) { + var key = domain + '-' + language; + if (key in self.storage) { + if ((Date.now() - parseInt(self.storage.getItem(key + '-updated'), 10)) < self.ttl) { + var catalog = JSON.parse(self.storage.getItem(key)); + self._setCatalog(domain, language, catalog); + return; + } + } + } + $.getJSON(self.getUrl(domain, language), function (catalog) { + if (catalog === null) { + return; + } + self._setCatalog(domain, language, catalog); + self._storeCatalog(domain, language, catalog); + }); + }; + + self.MessageFactory = function (domain, language) { + language = language || self.currentLanguage; + return function translate (msgid, keywords) { + var msgstr; + if ((domain in self.catalogs) && (language in self.catalogs[domain]) && (msgid in self.catalogs[domain][language])) { + msgstr = self.catalogs[domain][language][msgid]; + } else { + msgstr = msgid; + } + if (keywords) { + var regexp, keyword; + for (keyword in keywords) { + if (keywords.hasOwnProperty(keyword)) { + regexp = new RegExp('\\$\\{' + keyword + '\\}', 'g'); + msgstr = msgstr.replace(regexp, keywords[keyword]); + } + } + } + return msgstr; + }; + }; + }; + + return I18N; +}); + +/* i18n integration. + * + * This is a singleton. + * Configuration is done on the body tag data-i18ncatalogurl attribute + * + * + * Or, it'll default to "/plonejsi18n" + */ + +define('translate',[ + 'mockup-i18n' +], function(I18N) { + 'use strict'; + + // we're creating a singleton here so we can potentially + // delay the initialization of the translate catalog + // until after the dom is available + var _t = null; + return function(msgid, keywords) { + if (_t === null) { + var i18n = new I18N(); + i18n.loadCatalog('widgets'); + _t = i18n.MessageFactory('widgets'); + } + return _t(msgid, keywords); + }; +}); + +/*! + * pickadate.js v3.5.6, 2015/04/20 + * By Amsul, http://amsul.ca + * Hosted on http://amsul.github.io/pickadate.js + * Licensed under MIT + */ + +(function ( factory ) { + + // AMD. + if ( typeof define == 'function' && define.amd ) + define( 'picker', ['jquery'], factory ) + + // Node.js/browserify. + else if ( typeof exports == 'object' ) + module.exports = factory( require('jquery') ) + + // Browser globals. + else this.Picker = factory( jQuery ) + +}(function( $ ) { + +var $window = $( window ) +var $document = $( document ) +var $html = $( document.documentElement ) +var supportsTransitions = document.documentElement.style.transition != null + + +/** + * The picker constructor that creates a blank picker. + */ +function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) { + + // If there’s no element, return the picker constructor. + if ( !ELEMENT ) return PickerConstructor + + + var + IS_DEFAULT_THEME = false, + + + // The state of the picker. + STATE = { + id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) ) + }, + + + // Merge the defaults and options passed. + SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {}, + + + // Merge the default classes with the settings classes. + CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ), + + + // The element node wrapper into a jQuery object. + $ELEMENT = $( ELEMENT ), + + + // Pseudo picker constructor. + PickerInstance = function() { + return this.start() + }, + + + // The picker prototype. + P = PickerInstance.prototype = { + + constructor: PickerInstance, + + $node: $ELEMENT, + + + /** + * Initialize everything + */ + start: function() { + + // If it’s already started, do nothing. + if ( STATE && STATE.start ) return P + + + // Update the picker states. + STATE.methods = {} + STATE.start = true + STATE.open = false + STATE.type = ELEMENT.type + + + // Confirm focus state, convert into text input to remove UA stylings, + // and set as readonly to prevent keyboard popup. + ELEMENT.autofocus = ELEMENT == getActiveElement() + ELEMENT.readOnly = !SETTINGS.editable + ELEMENT.id = ELEMENT.id || STATE.id + if ( ELEMENT.type != 'text' ) { + ELEMENT.type = 'text' + } + + + // Create a new picker component with the settings. + P.component = new COMPONENT(P, SETTINGS) + + + // Create the picker root and then prepare it. + P.$root = $( '
    ' ) + prepareElementRoot() + + + // Create the picker holder and then prepare it. + P.$holder = $( createWrappedComponent() ).appendTo( P.$root ) + prepareElementHolder() + + + // If there’s a format for the hidden input element, create the element. + if ( SETTINGS.formatSubmit ) { + prepareElementHidden() + } + + + // Prepare the input element. + prepareElement() + + + // Insert the hidden input as specified in the settings. + if ( SETTINGS.containerHidden ) $( SETTINGS.containerHidden ).append( P._hidden ) + else $ELEMENT.after( P._hidden ) + + + // Insert the root as specified in the settings. + if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root ) + else $ELEMENT.after( P.$root ) + + + // Bind the default component and settings events. + P.on({ + start: P.component.onStart, + render: P.component.onRender, + stop: P.component.onStop, + open: P.component.onOpen, + close: P.component.onClose, + set: P.component.onSet + }).on({ + start: SETTINGS.onStart, + render: SETTINGS.onRender, + stop: SETTINGS.onStop, + open: SETTINGS.onOpen, + close: SETTINGS.onClose, + set: SETTINGS.onSet + }) + + + // Once we’re all set, check the theme in use. + IS_DEFAULT_THEME = isUsingDefaultTheme( P.$holder[0] ) + + + // If the element has autofocus, open the picker. + if ( ELEMENT.autofocus ) { + P.open() + } + + + // Trigger queued the “start” and “render” events. + return P.trigger( 'start' ).trigger( 'render' ) + }, //start + + + /** + * Render a new picker + */ + render: function( entireComponent ) { + + // Insert a new component holder in the root or box. + if ( entireComponent ) { + P.$holder = $( createWrappedComponent() ) + prepareElementHolder() + P.$root.html( P.$holder ) + } + else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) ) + + // Trigger the queued “render” events. + return P.trigger( 'render' ) + }, //render + + + /** + * Destroy everything + */ + stop: function() { + + // If it’s already stopped, do nothing. + if ( !STATE.start ) return P + + // Then close the picker. + P.close() + + // Remove the hidden field. + if ( P._hidden ) { + P._hidden.parentNode.removeChild( P._hidden ) + } + + // Remove the root. + P.$root.remove() + + // Remove the input class, remove the stored data, and unbind + // the events (after a tick for IE - see `P.close`). + $ELEMENT.removeClass( CLASSES.input ).removeData( NAME ) + setTimeout( function() { + $ELEMENT.off( '.' + STATE.id ) + }, 0) + + // Restore the element state + ELEMENT.type = STATE.type + ELEMENT.readOnly = false + + // Trigger the queued “stop” events. + P.trigger( 'stop' ) + + // Reset the picker states. + STATE.methods = {} + STATE.start = false + + return P + }, //stop + + + /** + * Open up the picker + */ + open: function( dontGiveFocus ) { + + // If it’s already open, do nothing. + if ( STATE.open ) return P + + // Add the “active” class. + $ELEMENT.addClass( CLASSES.active ) + aria( ELEMENT, 'expanded', true ) + + // * A Firefox bug, when `html` has `overflow:hidden`, results in + // killing transitions :(. So add the “opened” state on the next tick. + // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 + setTimeout( function() { + + // Add the “opened” class to the picker root. + P.$root.addClass( CLASSES.opened ) + aria( P.$root[0], 'hidden', false ) + + }, 0 ) + + // If we have to give focus, bind the element and doc events. + if ( dontGiveFocus !== false ) { + + // Set it as open. + STATE.open = true + + // Prevent the page from scrolling. + if ( IS_DEFAULT_THEME ) { + $html. + css( 'overflow', 'hidden' ). + css( 'padding-right', '+=' + getScrollbarWidth() ) + } + + // Pass focus to the root element’s jQuery object. + focusPickerOnceOpened() + + // Bind the document events. + $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) { + + var target = event.target + + // If the target of the event is not the element, close the picker picker. + // * Don’t worry about clicks or focusins on the root because those don’t bubble up. + // Also, for Firefox, a click on an `option` element bubbles up directly + // to the doc. So make sure the target wasn't the doc. + // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling, + // which causes the picker to unexpectedly close when right-clicking it. So make + // sure the event wasn’t a right-click. + if ( target != ELEMENT && target != document && event.which != 3 ) { + + // If the target was the holder that covers the screen, + // keep the element focused to maintain tabindex. + P.close( target === P.$holder[0] ) + } + + }).on( 'keydown.' + STATE.id, function( event ) { + + var + // Get the keycode. + keycode = event.keyCode, + + // Translate that to a selection change. + keycodeToMove = P.component.key[ keycode ], + + // Grab the target. + target = event.target + + + // On escape, close the picker and give focus. + if ( keycode == 27 ) { + P.close( true ) + } + + + // Check if there is a key movement or “enter” keypress on the element. + else if ( target == P.$holder[0] && ( keycodeToMove || keycode == 13 ) ) { + + // Prevent the default action to stop page movement. + event.preventDefault() + + // Trigger the key movement action. + if ( keycodeToMove ) { + PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] ) + } + + // On “enter”, if the highlighted item isn’t disabled, set the value and close. + else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) { + P.set( 'select', P.component.item.highlight ) + if ( SETTINGS.closeOnSelect ) { + P.close( true ) + } + } + } + + + // If the target is within the root and “enter” is pressed, + // prevent the default action and trigger a click on the target instead. + else if ( $.contains( P.$root[0], target ) && keycode == 13 ) { + event.preventDefault() + target.click() + } + }) + } + + // Trigger the queued “open” events. + return P.trigger( 'open' ) + }, //open + + + /** + * Close the picker + */ + close: function( giveFocus ) { + + // If we need to give focus, do it before changing states. + if ( giveFocus ) { + if ( SETTINGS.editable ) { + ELEMENT.focus() + } + else { + // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :| + // The focus is triggered *after* the close has completed - causing it + // to open again. So unbind and rebind the event at the next tick. + P.$holder.off( 'focus.toOpen' ).focus() + setTimeout( function() { + P.$holder.on( 'focus.toOpen', handleFocusToOpenEvent ) + }, 0 ) + } + } + + // Remove the “active” class. + $ELEMENT.removeClass( CLASSES.active ) + aria( ELEMENT, 'expanded', false ) + + // * A Firefox bug, when `html` has `overflow:hidden`, results in + // killing transitions :(. So remove the “opened” state on the next tick. + // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=625289 + setTimeout( function() { + + // Remove the “opened” and “focused” class from the picker root. + P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused ) + aria( P.$root[0], 'hidden', true ) + + }, 0 ) + + // If it’s already closed, do nothing more. + if ( !STATE.open ) return P + + // Set it as closed. + STATE.open = false + + // Allow the page to scroll. + if ( IS_DEFAULT_THEME ) { + $html. + css( 'overflow', '' ). + css( 'padding-right', '-=' + getScrollbarWidth() ) + } + + // Unbind the document events. + $document.off( '.' + STATE.id ) + + // Trigger the queued “close” events. + return P.trigger( 'close' ) + }, //close + + + /** + * Clear the values + */ + clear: function( options ) { + return P.set( 'clear', null, options ) + }, //clear + + + /** + * Set something + */ + set: function( thing, value, options ) { + + var thingItem, thingValue, + thingIsObject = $.isPlainObject( thing ), + thingObject = thingIsObject ? thing : {} + + // Make sure we have usable options. + options = thingIsObject && $.isPlainObject( value ) ? value : options || {} + + if ( thing ) { + + // If the thing isn’t an object, make it one. + if ( !thingIsObject ) { + thingObject[ thing ] = value + } + + // Go through the things of items to set. + for ( thingItem in thingObject ) { + + // Grab the value of the thing. + thingValue = thingObject[ thingItem ] + + // First, if the item exists and there’s a value, set it. + if ( thingItem in P.component.item ) { + if ( thingValue === undefined ) thingValue = null + P.component.set( thingItem, thingValue, options ) + } + + // Then, check to update the element value and broadcast a change. + if ( thingItem == 'select' || thingItem == 'clear' ) { + $ELEMENT. + val( thingItem == 'clear' ? '' : P.get( thingItem, SETTINGS.format ) ). + trigger( 'change' ) + } + } + + // Render a new picker. + P.render() + } + + // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`. + return options.muted ? P : P.trigger( 'set', thingObject ) + }, //set + + + /** + * Get something + */ + get: function( thing, format ) { + + // Make sure there’s something to get. + thing = thing || 'value' + + // If a picker state exists, return that. + if ( STATE[ thing ] != null ) { + return STATE[ thing ] + } + + // Return the submission value, if that. + if ( thing == 'valueSubmit' ) { + if ( P._hidden ) { + return P._hidden.value + } + thing = 'value' + } + + // Return the value, if that. + if ( thing == 'value' ) { + return ELEMENT.value + } + + // Check if a component item exists, return that. + if ( thing in P.component.item ) { + if ( typeof format == 'string' ) { + var thingValue = P.component.get( thing ) + return thingValue ? + PickerConstructor._.trigger( + P.component.formats.toString, + P.component, + [ format, thingValue ] + ) : '' + } + return P.component.get( thing ) + } + }, //get + + + + /** + * Bind events on the things. + */ + on: function( thing, method, internal ) { + + var thingName, thingMethod, + thingIsObject = $.isPlainObject( thing ), + thingObject = thingIsObject ? thing : {} + + if ( thing ) { + + // If the thing isn’t an object, make it one. + if ( !thingIsObject ) { + thingObject[ thing ] = method + } + + // Go through the things to bind to. + for ( thingName in thingObject ) { + + // Grab the method of the thing. + thingMethod = thingObject[ thingName ] + + // If it was an internal binding, prefix it. + if ( internal ) { + thingName = '_' + thingName + } + + // Make sure the thing methods collection exists. + STATE.methods[ thingName ] = STATE.methods[ thingName ] || [] + + // Add the method to the relative method collection. + STATE.methods[ thingName ].push( thingMethod ) + } + } + + return P + }, //on + + + + /** + * Unbind events on the things. + */ + off: function() { + var i, thingName, + names = arguments; + for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) { + thingName = names[i] + if ( thingName in STATE.methods ) { + delete STATE.methods[thingName] + } + } + return P + }, + + + /** + * Fire off method events. + */ + trigger: function( name, data ) { + var _trigger = function( name ) { + var methodList = STATE.methods[ name ] + if ( methodList ) { + methodList.map( function( method ) { + PickerConstructor._.trigger( method, P, [ data ] ) + }) + } + } + _trigger( '_' + name ) + _trigger( name ) + return P + } //trigger + } //PickerInstance.prototype + + + /** + * Wrap the picker holder components together. + */ + function createWrappedComponent() { + + // Create a picker wrapper holder + return PickerConstructor._.node( 'div', + + // Create a picker wrapper node + PickerConstructor._.node( 'div', + + // Create a picker frame + PickerConstructor._.node( 'div', + + // Create a picker box node + PickerConstructor._.node( 'div', + + // Create the components nodes. + P.component.nodes( STATE.open ), + + // The picker box class + CLASSES.box + ), + + // Picker wrap class + CLASSES.wrap + ), + + // Picker frame class + CLASSES.frame + ), + + // Picker holder class + CLASSES.holder, + + 'tabindex="-1"' + ) //endreturn + } //createWrappedComponent + + + + /** + * Prepare the input element with all bindings. + */ + function prepareElement() { + + $ELEMENT. + + // Store the picker data by component name. + data(NAME, P). + + // Add the “input” class name. + addClass(CLASSES.input). + + // If there’s a `data-value`, update the value of the element. + val( $ELEMENT.data('value') ? + P.get('select', SETTINGS.format) : + ELEMENT.value + ) + + + // Only bind keydown events if the element isn’t editable. + if ( !SETTINGS.editable ) { + + $ELEMENT. + + // On focus/click, open the picker. + on( 'focus.' + STATE.id + ' click.' + STATE.id, function(event) { + event.preventDefault() + P.open() + }). + + // Handle keyboard event based on the picker being opened or not. + on( 'keydown.' + STATE.id, handleKeydownEvent ) + } + + + // Update the aria attributes. + aria(ELEMENT, { + haspopup: true, + expanded: false, + readonly: false, + owns: ELEMENT.id + '_root' + }) + } + + + /** + * Prepare the root picker element with all bindings. + */ + function prepareElementRoot() { + aria( P.$root[0], 'hidden', true ) + } + + + /** + * Prepare the holder picker element with all bindings. + */ + function prepareElementHolder() { + + P.$holder. + + on({ + + // For iOS8. + keydown: handleKeydownEvent, + + 'focus.toOpen': handleFocusToOpenEvent, + + blur: function() { + // Remove the “target” class. + $ELEMENT.removeClass( CLASSES.target ) + }, + + // When something within the holder is focused, stop from bubbling + // to the doc and remove the “focused” state from the root. + focusin: function( event ) { + P.$root.removeClass( CLASSES.focused ) + event.stopPropagation() + }, + + // When something within the holder is clicked, stop it + // from bubbling to the doc. + 'mousedown click': function( event ) { + + var target = event.target + + // Make sure the target isn’t the root holder so it can bubble up. + if ( target != P.$holder[0] ) { + + event.stopPropagation() + + // * For mousedown events, cancel the default action in order to + // prevent cases where focus is shifted onto external elements + // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120). + // Also, for Firefox, don’t prevent action on the `option` element. + if ( event.type == 'mousedown' && !$( target ).is( 'input, select, textarea, button, option' )) { + + event.preventDefault() + + // Re-focus onto the holder so that users can click away + // from elements focused within the picker. + P.$holder[0].focus() + } + } + } + + }). + + // If there’s a click on an actionable element, carry out the actions. + on( 'click', '[data-pick], [data-nav], [data-clear], [data-close]', function() { + + var $target = $( this ), + targetData = $target.data(), + targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ), + + // * For IE, non-focusable elements can be active elements as well + // (http://stackoverflow.com/a/2684561). + activeElement = getActiveElement() + activeElement = activeElement && ( activeElement.type || activeElement.href ) + + // If it’s disabled or nothing inside is actively focused, re-focus the element. + if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) { + P.$holder[0].focus() + } + + // If something is superficially changed, update the `highlight` based on the `nav`. + if ( !targetDisabled && targetData.nav ) { + P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } ) + } + + // If something is picked, set `select` then close with focus. + else if ( !targetDisabled && 'pick' in targetData ) { + P.set( 'select', targetData.pick ) + if ( SETTINGS.closeOnSelect ) { + P.close( true ) + } + } + + // If a “clear” button is pressed, empty the values and close with focus. + else if ( targetData.clear ) { + P.clear() + if ( SETTINGS.closeOnClear ) { + P.close( true ) + } + } + + else if ( targetData.close ) { + P.close( true ) + } + + }) //P.$holder + + } + + + /** + * Prepare the hidden input element along with all bindings. + */ + function prepareElementHidden() { + + var name + + if ( SETTINGS.hiddenName === true ) { + name = ELEMENT.name + ELEMENT.name = '' + } + else { + name = [ + typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '', + typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit' + ] + name = name[0] + ELEMENT.name + name[1] + } + + P._hidden = $( + '' + )[0] + + $ELEMENT. + + // If the value changes, update the hidden input with the correct format. + on('change.' + STATE.id, function() { + P._hidden.value = ELEMENT.value ? + P.get('select', SETTINGS.formatSubmit) : + '' + }) + } + + + // Wait for transitions to end before focusing the holder. Otherwise, while + // using the `container` option, the view jumps to the container. + function focusPickerOnceOpened() { + + if (IS_DEFAULT_THEME && supportsTransitions) { + P.$holder.find('.' + CLASSES.frame).one('transitionend', function() { + P.$holder[0].focus() + }) + } + else { + P.$holder[0].focus() + } + } + + + function handleFocusToOpenEvent(event) { + + // Stop the event from propagating to the doc. + event.stopPropagation() + + // Add the “target” class. + $ELEMENT.addClass( CLASSES.target ) + + // Add the “focused” class to the root. + P.$root.addClass( CLASSES.focused ) + + // And then finally open the picker. + P.open() + } + + + // For iOS8. + function handleKeydownEvent( event ) { + + var keycode = event.keyCode, + + // Check if one of the delete keys was pressed. + isKeycodeDelete = /^(8|46)$/.test(keycode) + + // For some reason IE clears the input value on “escape”. + if ( keycode == 27 ) { + P.close( true ) + return false + } + + // Check if `space` or `delete` was pressed or the picker is closed with a key movement. + if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) { + + // Prevent it from moving the page and bubbling to doc. + event.preventDefault() + event.stopPropagation() + + // If `delete` was pressed, clear the values and close the picker. + // Otherwise open the picker. + if ( isKeycodeDelete ) { P.clear().close() } + else { P.open() } + } + } + + + // Return a new picker instance. + return new PickerInstance() +} //PickerConstructor + + + +/** + * The default classes and prefix to use for the HTML classes. + */ +PickerConstructor.klasses = function( prefix ) { + prefix = prefix || 'picker' + return { + + picker: prefix, + opened: prefix + '--opened', + focused: prefix + '--focused', + + input: prefix + '__input', + active: prefix + '__input--active', + target: prefix + '__input--target', + + holder: prefix + '__holder', + + frame: prefix + '__frame', + wrap: prefix + '__wrap', + + box: prefix + '__box' + } +} //PickerConstructor.klasses + + + +/** + * Check if the default theme is being used. + */ +function isUsingDefaultTheme( element ) { + + var theme, + prop = 'position' + + // For IE. + if ( element.currentStyle ) { + theme = element.currentStyle[prop] + } + + // For normal browsers. + else if ( window.getComputedStyle ) { + theme = getComputedStyle( element )[prop] + } + + return theme == 'fixed' +} + + + +/** + * Get the width of the browser’s scrollbar. + * Taken from: https://github.com/VodkaBears/Remodal/blob/master/src/jquery.remodal.js + */ +function getScrollbarWidth() { + + if ( $html.height() <= $window.height() ) { + return 0 + } + + var $outer = $( '
    ' ). + appendTo( 'body' ) + + // Get the width without scrollbars. + var widthWithoutScroll = $outer[0].offsetWidth + + // Force adding scrollbars. + $outer.css( 'overflow', 'scroll' ) + + // Add the inner div. + var $inner = $( '
    ' ).appendTo( $outer ) + + // Get the width with scrollbars. + var widthWithScroll = $inner[0].offsetWidth + + // Remove the divs. + $outer.remove() + + // Return the difference between the widths. + return widthWithoutScroll - widthWithScroll +} + + + +/** + * PickerConstructor helper methods. + */ +PickerConstructor._ = { + + /** + * Create a group of nodes. Expects: + * ` + { + min: {Integer}, + max: {Integer}, + i: {Integer}, + node: {String}, + item: {Function} + } + * ` + */ + group: function( groupObject ) { + + var + // Scope for the looped object + loopObjectScope, + + // Create the nodes list + nodesList = '', + + // The counter starts from the `min` + counter = PickerConstructor._.trigger( groupObject.min, groupObject ) + + + // Loop from the `min` to `max`, incrementing by `i` + for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) { + + // Trigger the `item` function within scope of the object + loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] ) + + // Splice the subgroup and create nodes out of the sub nodes + nodesList += PickerConstructor._.node( + groupObject.node, + loopObjectScope[ 0 ], // the node + loopObjectScope[ 1 ], // the classes + loopObjectScope[ 2 ] // the attributes + ) + } + + // Return the list of nodes + return nodesList + }, //group + + + /** + * Create a dom node string + */ + node: function( wrapper, item, klass, attribute ) { + + // If the item is false-y, just return an empty string + if ( !item ) return '' + + // If the item is an array, do a join + item = $.isArray( item ) ? item.join( '' ) : item + + // Check for the class + klass = klass ? ' class="' + klass + '"' : '' + + // Check for any attributes + attribute = attribute ? ' ' + attribute : '' + + // Return the wrapped item + return '<' + wrapper + klass + attribute + '>' + item + '' + }, //node + + + /** + * Lead numbers below 10 with a zero. + */ + lead: function( number ) { + return ( number < 10 ? '0': '' ) + number + }, + + + /** + * Trigger a function otherwise return the value. + */ + trigger: function( callback, scope, args ) { + return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback + }, + + + /** + * If the second character is a digit, length is 2 otherwise 1. + */ + digits: function( string ) { + return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1 + }, + + + /** + * Tell if something is a date object. + */ + isDate: function( value ) { + return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() ) + }, + + + /** + * Tell if something is an integer. + */ + isInteger: function( value ) { + return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0 + }, + + + /** + * Create ARIA attribute strings. + */ + ariaAttr: ariaAttr +} //PickerConstructor._ + + + +/** + * Extend the picker with a component and defaults. + */ +PickerConstructor.extend = function( name, Component ) { + + // Extend jQuery. + $.fn[ name ] = function( options, action ) { + + // Grab the component data. + var componentData = this.data( name ) + + // If the picker is requested, return the data object. + if ( options == 'picker' ) { + return componentData + } + + // If the component data exists and `options` is a string, carry out the action. + if ( componentData && typeof options == 'string' ) { + return PickerConstructor._.trigger( componentData[ options ], componentData, [ action ] ) + } + + // Otherwise go through each matched element and if the component + // doesn’t exist, create a new picker using `this` element + // and merging the defaults and options with a deep copy. + return this.each( function() { + var $this = $( this ) + if ( !$this.data( name ) ) { + new PickerConstructor( this, name, Component, options ) + } + }) + } + + // Set the defaults. + $.fn[ name ].defaults = Component.defaults +} //PickerConstructor.extend + + + +function aria(element, attribute, value) { + if ( $.isPlainObject(attribute) ) { + for ( var key in attribute ) { + ariaSet(element, key, attribute[key]) + } + } + else { + ariaSet(element, attribute, value) + } +} +function ariaSet(element, attribute, value) { + element.setAttribute( + (attribute == 'role' ? '' : 'aria-') + attribute, + value + ) +} +function ariaAttr(attribute, data) { + if ( !$.isPlainObject(attribute) ) { + attribute = { attribute: data } + } + data = '' + for ( var key in attribute ) { + var attr = (key == 'role' ? '' : 'aria-') + key, + attrVal = attribute[key] + data += attrVal == null ? '' : attr + '="' + attribute[key] + '"' + } + return data +} + +// IE8 bug throws an error for activeElements within iframes. +function getActiveElement() { + try { + return document.activeElement + } catch ( err ) { } +} + + + +// Expose the picker constructor. +return PickerConstructor + + +})); + + + + +/*! + * Date picker for pickadate.js v3.5.6 + * http://amsul.github.io/pickadate.js/date.htm + */ + +(function ( factory ) { + + // AMD. + if ( typeof define == 'function' && define.amd ) + define( 'picker.date',['picker', 'jquery'], factory ) + + // Node.js/browserify. + else if ( typeof exports == 'object' ) + module.exports = factory( require('./picker.js'), require('jquery') ) + + // Browser globals. + else factory( Picker, jQuery ) + +}(function( Picker, $ ) { + + +/** + * Globals and constants + */ +var DAYS_IN_WEEK = 7, + WEEKS_IN_CALENDAR = 6, + _ = Picker._ + + + +/** + * The date picker constructor + */ +function DatePicker( picker, settings ) { + + var calendar = this, + element = picker.$node[ 0 ], + elementValue = element.value, + elementDataValue = picker.$node.data( 'value' ), + valueString = elementDataValue || elementValue, + formatString = elementDataValue ? settings.formatSubmit : settings.format, + isRTL = function() { + + return element.currentStyle ? + + // For IE. + element.currentStyle.direction == 'rtl' : + + // For normal browsers. + getComputedStyle( picker.$root[0] ).direction == 'rtl' + } + + calendar.settings = settings + calendar.$node = picker.$node + + // The queue of methods that will be used to build item objects. + calendar.queue = { + min: 'measure create', + max: 'measure create', + now: 'now create', + select: 'parse create validate', + highlight: 'parse navigate create validate', + view: 'parse create validate viewset', + disable: 'deactivate', + enable: 'activate' + } + + // The component's item object. + calendar.item = {} + + calendar.item.clear = null + calendar.item.disable = ( settings.disable || [] ).slice( 0 ) + calendar.item.enable = -(function( collectionDisabled ) { + return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1 + })( calendar.item.disable ) + + calendar. + set( 'min', settings.min ). + set( 'max', settings.max ). + set( 'now' ) + + // When there’s a value, set the `select`, which in turn + // also sets the `highlight` and `view`. + if ( valueString ) { + calendar.set( 'select', valueString, { + format: formatString, + defaultValue: true + }) + } + + // If there’s no value, default to highlighting “today”. + else { + calendar. + set( 'select', null ). + set( 'highlight', calendar.item.now ) + } + + + // The keycode to movement mapping. + calendar.key = { + 40: 7, // Down + 38: -7, // Up + 39: function() { return isRTL() ? -1 : 1 }, // Right + 37: function() { return isRTL() ? 1 : -1 }, // Left + go: function( timeChange ) { + var highlightedObject = calendar.item.highlight, + targetDate = new Date( highlightedObject.year, highlightedObject.month, highlightedObject.date + timeChange ) + calendar.set( + 'highlight', + targetDate, + { interval: timeChange } + ) + this.render() + } + } + + + // Bind some picker events. + picker. + on( 'render', function() { + picker.$root.find( '.' + settings.klass.selectMonth ).on( 'change', function() { + var value = this.value + if ( value ) { + picker.set( 'highlight', [ picker.get( 'view' ).year, value, picker.get( 'highlight' ).date ] ) + picker.$root.find( '.' + settings.klass.selectMonth ).trigger( 'focus' ) + } + }) + picker.$root.find( '.' + settings.klass.selectYear ).on( 'change', function() { + var value = this.value + if ( value ) { + picker.set( 'highlight', [ value, picker.get( 'view' ).month, picker.get( 'highlight' ).date ] ) + picker.$root.find( '.' + settings.klass.selectYear ).trigger( 'focus' ) + } + }) + }, 1 ). + on( 'open', function() { + var includeToday = '' + if ( calendar.disabled( calendar.get('now') ) ) { + includeToday = ':not(.' + settings.klass.buttonToday + ')' + } + picker.$root.find( 'button' + includeToday + ', select' ).attr( 'disabled', false ) + }, 1 ). + on( 'close', function() { + picker.$root.find( 'button, select' ).attr( 'disabled', true ) + }, 1 ) + +} //DatePicker + + +/** + * Set a datepicker item object. + */ +DatePicker.prototype.set = function( type, value, options ) { + + var calendar = this, + calendarItem = calendar.item + + // If the value is `null` just set it immediately. + if ( value === null ) { + if ( type == 'clear' ) type = 'select' + calendarItem[ type ] = value + return calendar + } + + // Otherwise go through the queue of methods, and invoke the functions. + // Update this as the time unit, and set the final value as this item. + // * In the case of `enable`, keep the queue but set `disable` instead. + // And in the case of `flip`, keep the queue but set `enable` instead. + calendarItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = calendar.queue[ type ].split( ' ' ).map( function( method ) { + value = calendar[ method ]( type, value, options ) + return value + }).pop() + + // Check if we need to cascade through more updates. + if ( type == 'select' ) { + calendar.set( 'highlight', calendarItem.select, options ) + } + else if ( type == 'highlight' ) { + calendar.set( 'view', calendarItem.highlight, options ) + } + else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) { + if ( calendarItem.select && calendar.disabled( calendarItem.select ) ) { + calendar.set( 'select', calendarItem.select, options ) + } + if ( calendarItem.highlight && calendar.disabled( calendarItem.highlight ) ) { + calendar.set( 'highlight', calendarItem.highlight, options ) + } + } + + return calendar +} //DatePicker.prototype.set + + +/** + * Get a datepicker item object. + */ +DatePicker.prototype.get = function( type ) { + return this.item[ type ] +} //DatePicker.prototype.get + + +/** + * Create a picker date object. + */ +DatePicker.prototype.create = function( type, value, options ) { + + var isInfiniteValue, + calendar = this + + // If there’s no value, use the type as the value. + value = value === undefined ? type : value + + + // If it’s infinity, update the value. + if ( value == -Infinity || value == Infinity ) { + isInfiniteValue = value + } + + // If it’s an object, use the native date object. + else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { + value = value.obj + } + + // If it’s an array, convert it into a date and make sure + // that it’s a valid date – otherwise default to today. + else if ( $.isArray( value ) ) { + value = new Date( value[ 0 ], value[ 1 ], value[ 2 ] ) + value = _.isDate( value ) ? value : calendar.create().obj + } + + // If it’s a number or date object, make a normalized date. + else if ( _.isInteger( value ) || _.isDate( value ) ) { + value = calendar.normalize( new Date( value ), options ) + } + + // If it’s a literal true or any other case, set it to now. + else /*if ( value === true )*/ { + value = calendar.now( type, value, options ) + } + + // Return the compiled object. + return { + year: isInfiniteValue || value.getFullYear(), + month: isInfiniteValue || value.getMonth(), + date: isInfiniteValue || value.getDate(), + day: isInfiniteValue || value.getDay(), + obj: isInfiniteValue || value, + pick: isInfiniteValue || value.getTime() + } +} //DatePicker.prototype.create + + +/** + * Create a range limit object using an array, date object, + * literal “true”, or integer relative to another time. + */ +DatePicker.prototype.createRange = function( from, to ) { + + var calendar = this, + createDate = function( date ) { + if ( date === true || $.isArray( date ) || _.isDate( date ) ) { + return calendar.create( date ) + } + return date + } + + // Create objects if possible. + if ( !_.isInteger( from ) ) { + from = createDate( from ) + } + if ( !_.isInteger( to ) ) { + to = createDate( to ) + } + + // Create relative dates. + if ( _.isInteger( from ) && $.isPlainObject( to ) ) { + from = [ to.year, to.month, to.date + from ]; + } + else if ( _.isInteger( to ) && $.isPlainObject( from ) ) { + to = [ from.year, from.month, from.date + to ]; + } + + return { + from: createDate( from ), + to: createDate( to ) + } +} //DatePicker.prototype.createRange + + +/** + * Check if a date unit falls within a date range object. + */ +DatePicker.prototype.withinRange = function( range, dateUnit ) { + range = this.createRange(range.from, range.to) + return dateUnit.pick >= range.from.pick && dateUnit.pick <= range.to.pick +} + + +/** + * Check if two date range objects overlap. + */ +DatePicker.prototype.overlapRanges = function( one, two ) { + + var calendar = this + + // Convert the ranges into comparable dates. + one = calendar.createRange( one.from, one.to ) + two = calendar.createRange( two.from, two.to ) + + return calendar.withinRange( one, two.from ) || calendar.withinRange( one, two.to ) || + calendar.withinRange( two, one.from ) || calendar.withinRange( two, one.to ) +} + + +/** + * Get the date today. + */ +DatePicker.prototype.now = function( type, value, options ) { + value = new Date() + if ( options && options.rel ) { + value.setDate( value.getDate() + options.rel ) + } + return this.normalize( value, options ) +} + + +/** + * Navigate to next/prev month. + */ +DatePicker.prototype.navigate = function( type, value, options ) { + + var targetDateObject, + targetYear, + targetMonth, + targetDate, + isTargetArray = $.isArray( value ), + isTargetObject = $.isPlainObject( value ), + viewsetObject = this.item.view/*, + safety = 100*/ + + + if ( isTargetArray || isTargetObject ) { + + if ( isTargetObject ) { + targetYear = value.year + targetMonth = value.month + targetDate = value.date + } + else { + targetYear = +value[0] + targetMonth = +value[1] + targetDate = +value[2] + } + + // If we’re navigating months but the view is in a different + // month, navigate to the view’s year and month. + if ( options && options.nav && viewsetObject && viewsetObject.month !== targetMonth ) { + targetYear = viewsetObject.year + targetMonth = viewsetObject.month + } + + // Figure out the expected target year and month. + targetDateObject = new Date( targetYear, targetMonth + ( options && options.nav ? options.nav : 0 ), 1 ) + targetYear = targetDateObject.getFullYear() + targetMonth = targetDateObject.getMonth() + + // If the month we’re going to doesn’t have enough days, + // keep decreasing the date until we reach the month’s last date. + while ( /*safety &&*/ new Date( targetYear, targetMonth, targetDate ).getMonth() !== targetMonth ) { + targetDate -= 1 + /*safety -= 1 + if ( !safety ) { + throw 'Fell into an infinite loop while navigating to ' + new Date( targetYear, targetMonth, targetDate ) + '.' + }*/ + } + + value = [ targetYear, targetMonth, targetDate ] + } + + return value +} //DatePicker.prototype.navigate + + +/** + * Normalize a date by setting the hours to midnight. + */ +DatePicker.prototype.normalize = function( value/*, options*/ ) { + value.setHours( 0, 0, 0, 0 ) + return value +} + + +/** + * Measure the range of dates. + */ +DatePicker.prototype.measure = function( type, value/*, options*/ ) { + + var calendar = this + + // If it’s anything false-y, remove the limits. + if ( !value ) { + value = type == 'min' ? -Infinity : Infinity + } + + // If it’s a string, parse it. + else if ( typeof value == 'string' ) { + value = calendar.parse( type, value ) + } + + // If it's an integer, get a date relative to today. + else if ( _.isInteger( value ) ) { + value = calendar.now( type, value, { rel: value } ) + } + + return value +} ///DatePicker.prototype.measure + + +/** + * Create a viewset object based on navigation. + */ +DatePicker.prototype.viewset = function( type, dateObject/*, options*/ ) { + return this.create([ dateObject.year, dateObject.month, 1 ]) +} + + +/** + * Validate a date as enabled and shift if needed. + */ +DatePicker.prototype.validate = function( type, dateObject, options ) { + + var calendar = this, + + // Keep a reference to the original date. + originalDateObject = dateObject, + + // Make sure we have an interval. + interval = options && options.interval ? options.interval : 1, + + // Check if the calendar enabled dates are inverted. + isFlippedBase = calendar.item.enable === -1, + + // Check if we have any enabled dates after/before now. + hasEnabledBeforeTarget, hasEnabledAfterTarget, + + // The min & max limits. + minLimitObject = calendar.item.min, + maxLimitObject = calendar.item.max, + + // Check if we’ve reached the limit during shifting. + reachedMin, reachedMax, + + // Check if the calendar is inverted and at least one weekday is enabled. + hasEnabledWeekdays = isFlippedBase && calendar.item.disable.filter( function( value ) { + + // If there’s a date, check where it is relative to the target. + if ( $.isArray( value ) ) { + var dateTime = calendar.create( value ).pick + if ( dateTime < dateObject.pick ) hasEnabledBeforeTarget = true + else if ( dateTime > dateObject.pick ) hasEnabledAfterTarget = true + } + + // Return only integers for enabled weekdays. + return _.isInteger( value ) + }).length/*, + + safety = 100*/ + + + + // Cases to validate for: + // [1] Not inverted and date disabled. + // [2] Inverted and some dates enabled. + // [3] Not inverted and out of range. + // + // Cases to **not** validate for: + // • Navigating months. + // • Not inverted and date enabled. + // • Inverted and all dates disabled. + // • ..and anything else. + if ( !options || (!options.nav && !options.defaultValue) ) if ( + /* 1 */ ( !isFlippedBase && calendar.disabled( dateObject ) ) || + /* 2 */ ( isFlippedBase && calendar.disabled( dateObject ) && ( hasEnabledWeekdays || hasEnabledBeforeTarget || hasEnabledAfterTarget ) ) || + /* 3 */ ( !isFlippedBase && (dateObject.pick <= minLimitObject.pick || dateObject.pick >= maxLimitObject.pick) ) + ) { + + + // When inverted, flip the direction if there aren’t any enabled weekdays + // and there are no enabled dates in the direction of the interval. + if ( isFlippedBase && !hasEnabledWeekdays && ( ( !hasEnabledAfterTarget && interval > 0 ) || ( !hasEnabledBeforeTarget && interval < 0 ) ) ) { + interval *= -1 + } + + + // Keep looping until we reach an enabled date. + while ( /*safety &&*/ calendar.disabled( dateObject ) ) { + + /*safety -= 1 + if ( !safety ) { + throw 'Fell into an infinite loop while validating ' + dateObject.obj + '.' + }*/ + + + // If we’ve looped into the next/prev month with a large interval, return to the original date and flatten the interval. + if ( Math.abs( interval ) > 1 && ( dateObject.month < originalDateObject.month || dateObject.month > originalDateObject.month ) ) { + dateObject = originalDateObject + interval = interval > 0 ? 1 : -1 + } + + + // If we’ve reached the min/max limit, reverse the direction, flatten the interval and set it to the limit. + if ( dateObject.pick <= minLimitObject.pick ) { + reachedMin = true + interval = 1 + dateObject = calendar.create([ + minLimitObject.year, + minLimitObject.month, + minLimitObject.date + (dateObject.pick === minLimitObject.pick ? 0 : -1) + ]) + } + else if ( dateObject.pick >= maxLimitObject.pick ) { + reachedMax = true + interval = -1 + dateObject = calendar.create([ + maxLimitObject.year, + maxLimitObject.month, + maxLimitObject.date + (dateObject.pick === maxLimitObject.pick ? 0 : 1) + ]) + } + + + // If we’ve reached both limits, just break out of the loop. + if ( reachedMin && reachedMax ) { + break + } + + + // Finally, create the shifted date using the interval and keep looping. + dateObject = calendar.create([ dateObject.year, dateObject.month, dateObject.date + interval ]) + } + + } //endif + + + // Return the date object settled on. + return dateObject +} //DatePicker.prototype.validate + + +/** + * Check if a date is disabled. + */ +DatePicker.prototype.disabled = function( dateToVerify ) { + + var + calendar = this, + + // Filter through the disabled dates to check if this is one. + isDisabledMatch = calendar.item.disable.filter( function( dateToDisable ) { + + // If the date is a number, match the weekday with 0index and `firstDay` check. + if ( _.isInteger( dateToDisable ) ) { + return dateToVerify.day === ( calendar.settings.firstDay ? dateToDisable : dateToDisable - 1 ) % 7 + } + + // If it’s an array or a native JS date, create and match the exact date. + if ( $.isArray( dateToDisable ) || _.isDate( dateToDisable ) ) { + return dateToVerify.pick === calendar.create( dateToDisable ).pick + } + + // If it’s an object, match a date within the “from” and “to” range. + if ( $.isPlainObject( dateToDisable ) ) { + return calendar.withinRange( dateToDisable, dateToVerify ) + } + }) + + // If this date matches a disabled date, confirm it’s not inverted. + isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( dateToDisable ) { + return $.isArray( dateToDisable ) && dateToDisable[3] == 'inverted' || + $.isPlainObject( dateToDisable ) && dateToDisable.inverted + }).length + + // Check the calendar “enabled” flag and respectively flip the + // disabled state. Then also check if it’s beyond the min/max limits. + return calendar.item.enable === -1 ? !isDisabledMatch : isDisabledMatch || + dateToVerify.pick < calendar.item.min.pick || + dateToVerify.pick > calendar.item.max.pick + +} //DatePicker.prototype.disabled + + +/** + * Parse a string into a usable type. + */ +DatePicker.prototype.parse = function( type, value, options ) { + + var calendar = this, + parsingObject = {} + + // If it’s already parsed, we’re good. + if ( !value || typeof value != 'string' ) { + return value + } + + // We need a `.format` to parse the value with. + if ( !( options && options.format ) ) { + options = options || {} + options.format = calendar.settings.format + } + + // Convert the format into an array and then map through it. + calendar.formats.toArray( options.format ).map( function( label ) { + + var + // Grab the formatting label. + formattingLabel = calendar.formats[ label ], + + // The format length is from the formatting label function or the + // label length without the escaping exclamation (!) mark. + formatLength = formattingLabel ? _.trigger( formattingLabel, calendar, [ value, parsingObject ] ) : label.replace( /^!/, '' ).length + + // If there's a format label, split the value up to the format length. + // Then add it to the parsing object with appropriate label. + if ( formattingLabel ) { + parsingObject[ label ] = value.substr( 0, formatLength ) + } + + // Update the value as the substring from format length to end. + value = value.substr( formatLength ) + }) + + // Compensate for month 0index. + return [ + parsingObject.yyyy || parsingObject.yy, + +( parsingObject.mm || parsingObject.m ) - 1, + parsingObject.dd || parsingObject.d + ] +} //DatePicker.prototype.parse + + +/** + * Various formats to display the object in. + */ +DatePicker.prototype.formats = (function() { + + // Return the length of the first word in a collection. + function getWordLengthFromCollection( string, collection, dateObject ) { + + // Grab the first word from the string. + // Regex pattern from http://stackoverflow.com/q/150033 + var word = string.match( /[^\x00-\x7F]+|\w+/ )[ 0 ] + + // If there's no month index, add it to the date object + if ( !dateObject.mm && !dateObject.m ) { + dateObject.m = collection.indexOf( word ) + 1 + } + + // Return the length of the word. + return word.length + } + + // Get the length of the first word in a string. + function getFirstWordLength( string ) { + return string.match( /\w+/ )[ 0 ].length + } + + return { + + d: function( string, dateObject ) { + + // If there's string, then get the digits length. + // Otherwise return the selected date. + return string ? _.digits( string ) : dateObject.date + }, + dd: function( string, dateObject ) { + + // If there's a string, then the length is always 2. + // Otherwise return the selected date with a leading zero. + return string ? 2 : _.lead( dateObject.date ) + }, + ddd: function( string, dateObject ) { + + // If there's a string, then get the length of the first word. + // Otherwise return the short selected weekday. + return string ? getFirstWordLength( string ) : this.settings.weekdaysShort[ dateObject.day ] + }, + dddd: function( string, dateObject ) { + + // If there's a string, then get the length of the first word. + // Otherwise return the full selected weekday. + return string ? getFirstWordLength( string ) : this.settings.weekdaysFull[ dateObject.day ] + }, + m: function( string, dateObject ) { + + // If there's a string, then get the length of the digits + // Otherwise return the selected month with 0index compensation. + return string ? _.digits( string ) : dateObject.month + 1 + }, + mm: function( string, dateObject ) { + + // If there's a string, then the length is always 2. + // Otherwise return the selected month with 0index and leading zero. + return string ? 2 : _.lead( dateObject.month + 1 ) + }, + mmm: function( string, dateObject ) { + + var collection = this.settings.monthsShort + + // If there's a string, get length of the relevant month from the short + // months collection. Otherwise return the selected month from that collection. + return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] + }, + mmmm: function( string, dateObject ) { + + var collection = this.settings.monthsFull + + // If there's a string, get length of the relevant month from the full + // months collection. Otherwise return the selected month from that collection. + return string ? getWordLengthFromCollection( string, collection, dateObject ) : collection[ dateObject.month ] + }, + yy: function( string, dateObject ) { + + // If there's a string, then the length is always 2. + // Otherwise return the selected year by slicing out the first 2 digits. + return string ? 2 : ( '' + dateObject.year ).slice( 2 ) + }, + yyyy: function( string, dateObject ) { + + // If there's a string, then the length is always 4. + // Otherwise return the selected year. + return string ? 4 : dateObject.year + }, + + // Create an array by splitting the formatting string passed. + toArray: function( formatString ) { return formatString.split( /(d{1,4}|m{1,4}|y{4}|yy|!.)/g ) }, + + // Format an object into a string using the formatting options. + toString: function ( formatString, itemObject ) { + var calendar = this + return calendar.formats.toArray( formatString ).map( function( label ) { + return _.trigger( calendar.formats[ label ], calendar, [ 0, itemObject ] ) || label.replace( /^!/, '' ) + }).join( '' ) + } + } +})() //DatePicker.prototype.formats + + + + +/** + * Check if two date units are the exact. + */ +DatePicker.prototype.isDateExact = function( one, two ) { + + var calendar = this + + // When we’re working with weekdays, do a direct comparison. + if ( + ( _.isInteger( one ) && _.isInteger( two ) ) || + ( typeof one == 'boolean' && typeof two == 'boolean' ) + ) { + return one === two + } + + // When we’re working with date representations, compare the “pick” value. + if ( + ( _.isDate( one ) || $.isArray( one ) ) && + ( _.isDate( two ) || $.isArray( two ) ) + ) { + return calendar.create( one ).pick === calendar.create( two ).pick + } + + // When we’re working with range objects, compare the “from” and “to”. + if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { + return calendar.isDateExact( one.from, two.from ) && calendar.isDateExact( one.to, two.to ) + } + + return false +} + + +/** + * Check if two date units overlap. + */ +DatePicker.prototype.isDateOverlap = function( one, two ) { + + var calendar = this, + firstDay = calendar.settings.firstDay ? 1 : 0 + + // When we’re working with a weekday index, compare the days. + if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) { + one = one % 7 + firstDay + return one === calendar.create( two ).day + 1 + } + if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) { + two = two % 7 + firstDay + return two === calendar.create( one ).day + 1 + } + + // When we’re working with range objects, check if the ranges overlap. + if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { + return calendar.overlapRanges( one, two ) + } + + return false +} + + +/** + * Flip the “enabled” state. + */ +DatePicker.prototype.flipEnable = function(val) { + var itemObject = this.item + itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1) +} + + +/** + * Mark a collection of dates as “disabled”. + */ +DatePicker.prototype.deactivate = function( type, datesToDisable ) { + + var calendar = this, + disabledItems = calendar.item.disable.slice(0) + + + // If we’re flipping, that’s all we need to do. + if ( datesToDisable == 'flip' ) { + calendar.flipEnable() + } + + else if ( datesToDisable === false ) { + calendar.flipEnable(1) + disabledItems = [] + } + + else if ( datesToDisable === true ) { + calendar.flipEnable(-1) + disabledItems = [] + } + + // Otherwise go through the dates to disable. + else { + + datesToDisable.map(function( unitToDisable ) { + + var matchFound + + // When we have disabled items, check for matches. + // If something is matched, immediately break out. + for ( var index = 0; index < disabledItems.length; index += 1 ) { + if ( calendar.isDateExact( unitToDisable, disabledItems[index] ) ) { + matchFound = true + break + } + } + + // If nothing was found, add the validated unit to the collection. + if ( !matchFound ) { + if ( + _.isInteger( unitToDisable ) || + _.isDate( unitToDisable ) || + $.isArray( unitToDisable ) || + ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to ) + ) { + disabledItems.push( unitToDisable ) + } + } + }) + } + + // Return the updated collection. + return disabledItems +} //DatePicker.prototype.deactivate + + +/** + * Mark a collection of dates as “enabled”. + */ +DatePicker.prototype.activate = function( type, datesToEnable ) { + + var calendar = this, + disabledItems = calendar.item.disable, + disabledItemsCount = disabledItems.length + + // If we’re flipping, that’s all we need to do. + if ( datesToEnable == 'flip' ) { + calendar.flipEnable() + } + + else if ( datesToEnable === true ) { + calendar.flipEnable(1) + disabledItems = [] + } + + else if ( datesToEnable === false ) { + calendar.flipEnable(-1) + disabledItems = [] + } + + // Otherwise go through the disabled dates. + else { + + datesToEnable.map(function( unitToEnable ) { + + var matchFound, + disabledUnit, + index, + isExactRange + + // Go through the disabled items and try to find a match. + for ( index = 0; index < disabledItemsCount; index += 1 ) { + + disabledUnit = disabledItems[index] + + // When an exact match is found, remove it from the collection. + if ( calendar.isDateExact( disabledUnit, unitToEnable ) ) { + matchFound = disabledItems[index] = null + isExactRange = true + break + } + + // When an overlapped match is found, add the “inverted” state to it. + else if ( calendar.isDateOverlap( disabledUnit, unitToEnable ) ) { + if ( $.isPlainObject( unitToEnable ) ) { + unitToEnable.inverted = true + matchFound = unitToEnable + } + else if ( $.isArray( unitToEnable ) ) { + matchFound = unitToEnable + if ( !matchFound[3] ) matchFound.push( 'inverted' ) + } + else if ( _.isDate( unitToEnable ) ) { + matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ] + } + break + } + } + + // If a match was found, remove a previous duplicate entry. + if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) { + if ( calendar.isDateExact( disabledItems[index], unitToEnable ) ) { + disabledItems[index] = null + break + } + } + + // In the event that we’re dealing with an exact range of dates, + // make sure there are no “inverted” dates because of it. + if ( isExactRange ) for ( index = 0; index < disabledItemsCount; index += 1 ) { + if ( calendar.isDateOverlap( disabledItems[index], unitToEnable ) ) { + disabledItems[index] = null + break + } + } + + // If something is still matched, add it into the collection. + if ( matchFound ) { + disabledItems.push( matchFound ) + } + }) + } + + // Return the updated collection. + return disabledItems.filter(function( val ) { return val != null }) +} //DatePicker.prototype.activate + + +/** + * Create a string for the nodes in the picker. + */ +DatePicker.prototype.nodes = function( isOpen ) { + + var + calendar = this, + settings = calendar.settings, + calendarItem = calendar.item, + nowObject = calendarItem.now, + selectedObject = calendarItem.select, + highlightedObject = calendarItem.highlight, + viewsetObject = calendarItem.view, + disabledCollection = calendarItem.disable, + minLimitObject = calendarItem.min, + maxLimitObject = calendarItem.max, + + + // Create the calendar table head using a copy of weekday labels collection. + // * We do a copy so we don't mutate the original array. + tableHead = (function( collection, fullCollection ) { + + // If the first day should be Monday, move Sunday to the end. + if ( settings.firstDay ) { + collection.push( collection.shift() ) + fullCollection.push( fullCollection.shift() ) + } + + // Create and return the table head group. + return _.node( + 'thead', + _.node( + 'tr', + _.group({ + min: 0, + max: DAYS_IN_WEEK - 1, + i: 1, + node: 'th', + item: function( counter ) { + return [ + collection[ counter ], + settings.klass.weekdays, + 'scope=col title="' + fullCollection[ counter ] + '"' + ] + } + }) + ) + ) //endreturn + })( ( settings.showWeekdaysFull ? settings.weekdaysFull : settings.weekdaysShort ).slice( 0 ), settings.weekdaysFull.slice( 0 ) ), //tableHead + + + // Create the nav for next/prev month. + createMonthNav = function( next ) { + + // Otherwise, return the created month tag. + return _.node( + 'div', + ' ', + settings.klass[ 'nav' + ( next ? 'Next' : 'Prev' ) ] + ( + + // If the focused month is outside the range, disabled the button. + ( next && viewsetObject.year >= maxLimitObject.year && viewsetObject.month >= maxLimitObject.month ) || + ( !next && viewsetObject.year <= minLimitObject.year && viewsetObject.month <= minLimitObject.month ) ? + ' ' + settings.klass.navDisabled : '' + ), + 'data-nav=' + ( next || -1 ) + ' ' + + _.ariaAttr({ + role: 'button', + controls: calendar.$node[0].id + '_table' + }) + ' ' + + 'title="' + (next ? settings.labelMonthNext : settings.labelMonthPrev ) + '"' + ) //endreturn + }, //createMonthNav + + + // Create the month label. + createMonthLabel = function() { + + var monthsCollection = settings.showMonthsShort ? settings.monthsShort : settings.monthsFull + + // If there are months to select, add a dropdown menu. + if ( settings.selectMonths ) { + + return _.node( 'select', + _.group({ + min: 0, + max: 11, + i: 1, + node: 'option', + item: function( loopedMonth ) { + + return [ + + // The looped month and no classes. + monthsCollection[ loopedMonth ], 0, + + // Set the value and selected index. + 'value=' + loopedMonth + + ( viewsetObject.month == loopedMonth ? ' selected' : '' ) + + ( + ( + ( viewsetObject.year == minLimitObject.year && loopedMonth < minLimitObject.month ) || + ( viewsetObject.year == maxLimitObject.year && loopedMonth > maxLimitObject.month ) + ) ? + ' disabled' : '' + ) + ] + } + }), + settings.klass.selectMonth, + ( isOpen ? '' : 'disabled' ) + ' ' + + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + + 'title="' + settings.labelMonthSelect + '"' + ) + } + + // If there's a need for a month selector + return _.node( 'div', monthsCollection[ viewsetObject.month ], settings.klass.month ) + }, //createMonthLabel + + + // Create the year label. + createYearLabel = function() { + + var focusedYear = viewsetObject.year, + + // If years selector is set to a literal "true", set it to 5. Otherwise + // divide in half to get half before and half after focused year. + numberYears = settings.selectYears === true ? 5 : ~~( settings.selectYears / 2 ) + + // If there are years to select, add a dropdown menu. + if ( numberYears ) { + + var + minYear = minLimitObject.year, + maxYear = maxLimitObject.year, + lowestYear = focusedYear - numberYears, + highestYear = focusedYear + numberYears + + // If the min year is greater than the lowest year, increase the highest year + // by the difference and set the lowest year to the min year. + if ( minYear > lowestYear ) { + highestYear += minYear - lowestYear + lowestYear = minYear + } + + // If the max year is less than the highest year, decrease the lowest year + // by the lower of the two: available and needed years. Then set the + // highest year to the max year. + if ( maxYear < highestYear ) { + + var availableYears = lowestYear - minYear, + neededYears = highestYear - maxYear + + lowestYear -= availableYears > neededYears ? neededYears : availableYears + highestYear = maxYear + } + + return _.node( 'select', + _.group({ + min: lowestYear, + max: highestYear, + i: 1, + node: 'option', + item: function( loopedYear ) { + return [ + + // The looped year and no classes. + loopedYear, 0, + + // Set the value and selected index. + 'value=' + loopedYear + ( focusedYear == loopedYear ? ' selected' : '' ) + ] + } + }), + settings.klass.selectYear, + ( isOpen ? '' : 'disabled' ) + ' ' + _.ariaAttr({ controls: calendar.$node[0].id + '_table' }) + ' ' + + 'title="' + settings.labelYearSelect + '"' + ) + } + + // Otherwise just return the year focused + return _.node( 'div', focusedYear, settings.klass.year ) + } //createYearLabel + + + // Create and return the entire calendar. + return _.node( + 'div', + ( settings.selectYears ? createYearLabel() + createMonthLabel() : createMonthLabel() + createYearLabel() ) + + createMonthNav() + createMonthNav( 1 ), + settings.klass.header + ) + _.node( + 'table', + tableHead + + _.node( + 'tbody', + _.group({ + min: 0, + max: WEEKS_IN_CALENDAR - 1, + i: 1, + node: 'tr', + item: function( rowCounter ) { + + // If Monday is the first day and the month starts on Sunday, shift the date back a week. + var shiftDateBy = settings.firstDay && calendar.create([ viewsetObject.year, viewsetObject.month, 1 ]).day === 0 ? -7 : 0 + + return [ + _.group({ + min: DAYS_IN_WEEK * rowCounter - viewsetObject.day + shiftDateBy + 1, // Add 1 for weekday 0index + max: function() { + return this.min + DAYS_IN_WEEK - 1 + }, + i: 1, + node: 'td', + item: function( targetDate ) { + + // Convert the time date from a relative date to a target date. + targetDate = calendar.create([ viewsetObject.year, viewsetObject.month, targetDate + ( settings.firstDay ? 1 : 0 ) ]) + + var isSelected = selectedObject && selectedObject.pick == targetDate.pick, + isHighlighted = highlightedObject && highlightedObject.pick == targetDate.pick, + isDisabled = disabledCollection && calendar.disabled( targetDate ) || targetDate.pick < minLimitObject.pick || targetDate.pick > maxLimitObject.pick, + formattedDate = _.trigger( calendar.formats.toString, calendar, [ settings.format, targetDate ] ) + + return [ + _.node( + 'div', + targetDate.date, + (function( klasses ) { + + // Add the `infocus` or `outfocus` classes based on month in view. + klasses.push( viewsetObject.month == targetDate.month ? settings.klass.infocus : settings.klass.outfocus ) + + // Add the `today` class if needed. + if ( nowObject.pick == targetDate.pick ) { + klasses.push( settings.klass.now ) + } + + // Add the `selected` class if something's selected and the time matches. + if ( isSelected ) { + klasses.push( settings.klass.selected ) + } + + // Add the `highlighted` class if something's highlighted and the time matches. + if ( isHighlighted ) { + klasses.push( settings.klass.highlighted ) + } -// patch $.event.$dispatch to allow suppressing clicks -var $dispatch = $event.dispatch; -$event.dispatch = function( event ){ - if ( $.data( this, "suppress."+ event.type ) - new Date().getTime() > 0 ){ - $.removeData( this, "suppress."+ event.type ); - return; - } - return $dispatch.apply( this, arguments ); -}; + // Add the `disabled` class if something's disabled and the object matches. + if ( isDisabled ) { + klasses.push( settings.klass.disabled ) + } -// event fix hooks for touch events... -var touchHooks = -$event.fixHooks.touchstart = -$event.fixHooks.touchmove = -$event.fixHooks.touchend = -$event.fixHooks.touchcancel = { - props: "clientX clientY pageX pageY screenX screenY".split( " " ), - filter: function( event, orig ) { - if ( orig ){ - var touched = ( orig.touches && orig.touches[0] ) - || ( orig.changedTouches && orig.changedTouches[0] ) - || null; - // iOS webkit: touchstart, touchmove, touchend - if ( touched ) - $.each( touchHooks.props, function( i, prop ){ - event[ prop ] = touched[ prop ]; - }); - } - return event; - } -}; + return klasses.join( ' ' ) + })([ settings.klass.day ]), + 'data-pick=' + targetDate.pick + ' ' + _.ariaAttr({ + role: 'gridcell', + label: formattedDate, + selected: isSelected && calendar.$node.val() === formattedDate ? true : null, + activedescendant: isHighlighted ? true : null, + disabled: isDisabled ? true : null + }) + ), + '', + _.ariaAttr({ role: 'presentation' }) + ] //endreturn + } + }) + ] //endreturn + } + }) + ), + settings.klass.table, + 'id="' + calendar.$node[0].id + '_table' + '" ' + _.ariaAttr({ + role: 'grid', + controls: calendar.$node[0].id, + readonly: true + }) + ) + -// share the same special event configuration with related events... -$special.draginit = $special.dragstart = $special.dragend = drag; + // * For Firefox forms to submit, make sure to set the buttons’ `type` attributes as “button”. + _.node( + 'div', + _.node( 'button', settings.today, settings.klass.buttonToday, + 'type=button data-pick=' + nowObject.pick + + ( isOpen && !calendar.disabled(nowObject) ? '' : ' disabled' ) + ' ' + + _.ariaAttr({ controls: calendar.$node[0].id }) ) + + _.node( 'button', settings.clear, settings.klass.buttonClear, + 'type=button data-clear=1' + + ( isOpen ? '' : ' disabled' ) + ' ' + + _.ariaAttr({ controls: calendar.$node[0].id }) ) + + _.node('button', settings.close, settings.klass.buttonClose, + 'type=button data-close=true ' + + ( isOpen ? '' : ' disabled' ) + ' ' + + _.ariaAttr({ controls: calendar.$node[0].id }) ), + settings.klass.footer + ) //endreturn +} //DatePicker.prototype.nodes -})( jQuery ); - }).apply(root, arguments); -}); -}(this)); -(function(root) { -define("jquery.event.drop", ["jquery"], function() { - return (function() { -/*! - * jquery.event.drop - v 2.2 - * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com - * Open Source MIT License - http://threedubmedia.com/code/license + +/** + * The date picker defaults. */ -// Created: 2008-06-04 -// Updated: 2012-05-21 -// REQUIRES: jquery 1.7.x, event.drag 2.2 +DatePicker.defaults = (function( prefix ) { -;(function($){ // secure $ jQuery alias + return { -// Events: drop, dropstart, dropend + // The title label to use for the month nav buttons + labelMonthNext: 'Next month', + labelMonthPrev: 'Previous month', -// add the jquery instance method -$.fn.drop = function( str, arg, opts ){ - // figure out the event type - var type = typeof str == "string" ? str : "", - // figure out the event handler... - fn = $.isFunction( str ) ? str : $.isFunction( arg ) ? arg : null; - // fix the event type - if ( type.indexOf("drop") !== 0 ) - type = "drop"+ type; - // were options passed - opts = ( str == fn ? arg : opts ) || {}; - // trigger or bind event handler - return fn ? this.bind( type, opts, fn ) : this.trigger( type ); -}; + // The title label to use for the dropdown selectors + labelMonthSelect: 'Select a month', + labelYearSelect: 'Select a year', -// DROP MANAGEMENT UTILITY -// returns filtered drop target elements, caches their positions -$.drop = function( opts ){ - opts = opts || {}; - // safely set new options... - drop.multi = opts.multi === true ? Infinity : - opts.multi === false ? 1 : !isNaN( opts.multi ) ? opts.multi : drop.multi; - drop.delay = opts.delay || drop.delay; - drop.tolerance = $.isFunction( opts.tolerance ) ? opts.tolerance : - opts.tolerance === null ? null : drop.tolerance; - drop.mode = opts.mode || drop.mode || 'intersect'; -}; + // Months and weekdays + monthsFull: [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ], + monthsShort: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ], + weekdaysFull: [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ], + weekdaysShort: [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ], -// local refs (increase compression) -var $event = $.event, -$special = $event.special, -// configure the drop special event -drop = $.event.special.drop = { + // Today and clear + today: 'Today', + clear: 'Clear', + close: 'Close', - // these are the default settings - multi: 1, // allow multiple drop winners per dragged element - delay: 20, // async timeout delay - mode: 'overlap', // drop tolerance mode - - // internal cache - targets: [], - - // the key name for stored drop data - datakey: "dropdata", - - // prevent bubbling for better performance - noBubble: true, - - // count bound related events - add: function( obj ){ - // read the interaction data - var data = $.data( this, drop.datakey ); - // count another realted event - data.related += 1; - }, - - // forget unbound related events - remove: function(){ - $.data( this, drop.datakey ).related -= 1; - }, - - // configure the interactions - setup: function(){ - // check for related events - if ( $.data( this, drop.datakey ) ) - return; - // initialize the drop element data - var data = { - related: 0, - active: [], - anyactive: 0, - winner: 0, - location: {} - }; - // store the drop data on the element - $.data( this, drop.datakey, data ); - // store the drop target in internal cache - drop.targets.push( this ); - }, - - // destroy the configure interaction - teardown: function(){ - var data = $.data( this, drop.datakey ) || {}; - // check for related events - if ( data.related ) - return; - // remove the stored data - $.removeData( this, drop.datakey ); - // reference the targeted element - var element = this; - // remove from the internal cache - drop.targets = $.grep( drop.targets, function( target ){ - return ( target !== element ); - }); - }, - - // shared event handler - handler: function( event, dd ){ - // local vars - var results, $targets; - // make sure the right data is available - if ( !dd ) - return; - // handle various events - switch ( event.type ){ - // draginit, from $.event.special.drag - case 'mousedown': // DROPINIT >> - case 'touchstart': // DROPINIT >> - // collect and assign the drop targets - $targets = $( drop.targets ); - if ( typeof dd.drop == "string" ) - $targets = $targets.filter( dd.drop ); - // reset drop data winner properties - $targets.each(function(){ - var data = $.data( this, drop.datakey ); - data.active = []; - data.anyactive = 0; - data.winner = 0; - }); - // set available target elements - dd.droppable = $targets; - // activate drop targets for the initial element being dragged - $special.drag.hijack( event, "dropinit", dd ); - break; - // drag, from $.event.special.drag - case 'mousemove': // TOLERATE >> - case 'touchmove': // TOLERATE >> - drop.event = event; // store the mousemove event - if ( !drop.timer ) - // monitor drop targets - drop.tolerate( dd ); - break; - // dragend, from $.event.special.drag - case 'mouseup': // DROP >> DROPEND >> - case 'touchend': // DROP >> DROPEND >> - drop.timer = clearTimeout( drop.timer ); // delete timer - if ( dd.propagates ){ - $special.drag.hijack( event, "drop", dd ); - $special.drag.hijack( event, "dropend", dd ); - } - break; - - } - }, - - // returns the location positions of an element - locate: function( elem, index ){ - var data = $.data( elem, drop.datakey ), - $elem = $( elem ), - posi = $elem.offset() || {}, - height = $elem.outerHeight(), - width = $elem.outerWidth(), - location = { - elem: elem, - width: width, - height: height, - top: posi.top, - left: posi.left, - right: posi.left + width, - bottom: posi.top + height - }; - // drag elements might not have dropdata - if ( data ){ - data.location = location; - data.index = index; - data.elem = elem; - } - return location; - }, - - // test the location positions of an element against another OR an X,Y coord - contains: function( target, test ){ // target { location } contains test [x,y] or { location } - return ( ( test[0] || test.left ) >= target.left && ( test[0] || test.right ) <= target.right - && ( test[1] || test.top ) >= target.top && ( test[1] || test.bottom ) <= target.bottom ); - }, - - // stored tolerance modes - modes: { // fn scope: "$.event.special.drop" object - // target with mouse wins, else target with most overlap wins - 'intersect': function( event, proxy, target ){ - return this.contains( target, [ event.pageX, event.pageY ] ) ? // check cursor - 1e9 : this.modes.overlap.apply( this, arguments ); // check overlap - }, - // target with most overlap wins - 'overlap': function( event, proxy, target ){ - // calculate the area of overlap... - return Math.max( 0, Math.min( target.bottom, proxy.bottom ) - Math.max( target.top, proxy.top ) ) - * Math.max( 0, Math.min( target.right, proxy.right ) - Math.max( target.left, proxy.left ) ); - }, - // proxy is completely contained within target bounds - 'fit': function( event, proxy, target ){ - return this.contains( target, proxy ) ? 1 : 0; - }, - // center of the proxy is contained within target bounds - 'middle': function( event, proxy, target ){ - return this.contains( target, [ proxy.left + proxy.width * .5, proxy.top + proxy.height * .5 ] ) ? 1 : 0; - } - }, - - // sort drop target cache by by winner (dsc), then index (asc) - sort: function( a, b ){ - return ( b.winner - a.winner ) || ( a.index - b.index ); - }, - - // async, recursive tolerance execution - tolerate: function( dd ){ - // declare local refs - var i, drp, drg, data, arr, len, elem, - // interaction iteration variables - x = 0, ia, end = dd.interactions.length, - // determine the mouse coords - xy = [ drop.event.pageX, drop.event.pageY ], - // custom or stored tolerance fn - tolerance = drop.tolerance || drop.modes[ drop.mode ]; - // go through each passed interaction... - do if ( ia = dd.interactions[x] ){ - // check valid interaction - if ( !ia ) - return; - // initialize or clear the drop data - ia.drop = []; - // holds the drop elements - arr = []; - len = ia.droppable.length; - // determine the proxy location, if needed - if ( tolerance ) - drg = drop.locate( ia.proxy ); - // reset the loop - i = 0; - // loop each stored drop target - do if ( elem = ia.droppable[i] ){ - data = $.data( elem, drop.datakey ); - drp = data.location; - if ( !drp ) continue; - // find a winner: tolerance function is defined, call it - data.winner = tolerance ? tolerance.call( drop, drop.event, drg, drp ) - // mouse position is always the fallback - : drop.contains( drp, xy ) ? 1 : 0; - arr.push( data ); - } while ( ++i < len ); // loop - // sort the drop targets - arr.sort( drop.sort ); - // reset the loop - i = 0; - // loop through all of the targets again - do if ( data = arr[ i ] ){ - // winners... - if ( data.winner && ia.drop.length < drop.multi ){ - // new winner... dropstart - if ( !data.active[x] && !data.anyactive ){ - // check to make sure that this is not prevented - if ( $special.drag.hijack( drop.event, "dropstart", dd, x, data.elem )[0] !== false ){ - data.active[x] = 1; - data.anyactive += 1; - } - // if false, it is not a winner - else - data.winner = 0; - } - // if it is still a winner - if ( data.winner ) - ia.drop.push( data.elem ); - } - // losers... - else if ( data.active[x] && data.anyactive == 1 ){ - // former winner... dropend - $special.drag.hijack( drop.event, "dropend", dd, x, data.elem ); - data.active[x] = 0; - data.anyactive -= 1; - } - } while ( ++i < len ); // loop - } while ( ++x < end ) // loop - // check if the mouse is still moving or is idle - if ( drop.last && xy[0] == drop.last.pageX && xy[1] == drop.last.pageY ) - delete drop.timer; // idle, don't recurse - else // recurse - drop.timer = setTimeout(function(){ - drop.tolerate( dd ); - }, drop.delay ); - // remember event, to compare idleness - drop.last = drop.event; - } - -}; + // Picker close behavior + closeOnSelect: true, + closeOnClear: true, -// share the same special event configuration with related events... -$special.dropinit = $special.dropstart = $special.dropend = drop; + // The format to show on the `input` element + format: 'd mmmm, yyyy', -})(jQuery); // confine scope -; -return $.drop; - }).apply(root, arguments); -}); -}(this)); + // Classes + klass: { -/* Select2 pattern. - * - * Options: - * separator(string): Analagous to the separator constructor parameter from Select2. Defines a custom separator used to distinguish the tag values. Ex: a value of ";" will allow tags and initialValues to have values separated by ";" instead of the default ",". (',') - * initialValues(string): This can be a json encoded string, or a list of id:text values. Ex: Red:The Color Red,Orange:The Color Orange This is used inside the initSelection method, if AJAX options are NOT set. (null) - * vocabularyUrl(string): This is a URL to a JSON-formatted file used to populate the list (null) - * OTHER OPTIONS(): For more options on select2 go to http://ivaynberg.github.io/select2/#documentation () - * - * Documentation: - * # Autocomplete with search (single select) - * - * {{ example-1 }} - * - * # Tagging - * - * {{ example-2 }} - * - * # Orderable tags - * - * {{ example-3 }} - * - * # AJAX tags - * - * {{ example-4 }} - * - * Example: example-1 - * - * - * Example: example-2 - * - * - * Example: example-3 - * - * Example: example-4 - * - * + table: prefix + 'table', + + header: prefix + 'header', + + navPrev: prefix + 'nav--prev', + navNext: prefix + 'nav--next', + navDisabled: prefix + 'nav--disabled', + + month: prefix + 'month', + year: prefix + 'year', + + selectMonth: prefix + 'select--month', + selectYear: prefix + 'select--year', + + weekdays: prefix + 'weekday', + + day: prefix + 'day', + disabled: prefix + 'day--disabled', + selected: prefix + 'day--selected', + highlighted: prefix + 'day--highlighted', + now: prefix + 'day--today', + infocus: prefix + 'day--infocus', + outfocus: prefix + 'day--outfocus', + + footer: prefix + 'footer', + + buttonClear: prefix + 'button--clear', + buttonToday: prefix + 'button--today', + buttonClose: prefix + 'button--close' + } + } +})( Picker.klasses().picker + '__' ) + + + + + +/** + * Extend the picker to add the date picker. + */ +Picker.extend( 'pickadate', DatePicker ) + + +})); + + + + +/*! + * Time picker for pickadate.js v3.5.6 + * http://amsul.github.io/pickadate.js/time.htm + */ + +(function ( factory ) { + + // AMD. + if ( typeof define == 'function' && define.amd ) + define( 'picker.time',['picker', 'jquery'], factory ) + + // Node.js/browserify. + else if ( typeof exports == 'object' ) + module.exports = factory( require('./picker.js'), require('jquery') ) + + // Browser globals. + else factory( Picker, jQuery ) + +}(function( Picker, $ ) { + + +/** + * Globals and constants */ +var HOURS_IN_DAY = 24, + MINUTES_IN_HOUR = 60, + HOURS_TO_NOON = 12, + MINUTES_IN_DAY = HOURS_IN_DAY * MINUTES_IN_HOUR, + _ = Picker._ -define('mockup-patterns-select2',[ - 'jquery', - 'mockup-patterns-base', - 'select2', - 'jquery.event.drag', - 'jquery.event.drop' -], function($, Base) { - 'use strict'; - var Select2 = Base.extend({ - name: 'select2', - defaults: { - separator: ',' - }, - initializeValues: function() { - var self = this; - // Init Selection --------------------------------------------- - if (self.options.initialValues) { - self.options.id = function(term) { - return term.id; - }; - self.options.initSelection = function ($el, callback) { - var data = [], - value = $el.val(), - seldefaults = self.options.initialValues; +/** + * The time picker constructor + */ +function TimePicker( picker, settings ) { - // Create the initSelection value that contains the default selection, - // but in a javascript object - if (typeof(self.options.initialValues) === 'string' && self.options.initialValues !== '') { - // if default selection value starts with a '{', then treat the value as - // a JSON object that needs to be parsed - if (self.options.initialValues[0] === '{') { - seldefaults = JSON.parse(self.options.initialValues); - } - // otherwise, treat the value as a list, separated by the defaults.separator value of - // strings in the format "id:text", and convert it to an object - else { - seldefaults = {}; - $(self.options.initialValues.split(self.options.separator)).each(function() { - var selection = this.split(':'); - var id = $.trim(selection[0]); - var text = $.trim(selection[1]); - seldefaults[id] = text; - }); - } - } + var clock = this, + elementValue = picker.$node[ 0 ].value, + elementDataValue = picker.$node.data( 'value' ), + valueString = elementDataValue || elementValue, + formatString = elementDataValue ? settings.formatSubmit : settings.format - $(value.split(self.options.separator)).each(function() { - var text = this; - if (seldefaults[this]) { - text = seldefaults[this]; - } - data.push({id: this, text: text}); - }); - callback(data); - }; - } - }, - initializeTags: function() { - var self = this; - if (self.options.tags && typeof(self.options.tags) === 'string') { - if (self.options.tags.substr(0, 1) === '[') { - self.options.tags = JSON.parse(self.options.tags); - } else { - self.options.tags = self.options.tags.split(self.options.separator); - } - } + clock.settings = settings + clock.$node = picker.$node - if (self.options.tags && !self.options.allowNewItems) { - self.options.data = $.map (self.options.tags, function (value, i) { - return { id: value, text: value }; - }); - self.options.multiple = true; - delete self.options.tags; - } - }, - initializeOrdering: function() { - var self = this; - if (self.options.orderable) { - var formatSelection = function(data, $container) { - return data ? data.text : undefined; - }; - if (self.options.formatSelection) { - formatSelection = self.options.formatSelection; + // The queue of methods that will be used to build item objects. + clock.queue = { + interval: 'i', + min: 'measure create', + max: 'measure create', + now: 'now create', + select: 'parse create validate', + highlight: 'parse create validate', + view: 'parse create validate', + disable: 'deactivate', + enable: 'activate' + } + + // The component's item object. + clock.item = {} + + clock.item.clear = null + clock.item.interval = settings.interval || 30 + clock.item.disable = ( settings.disable || [] ).slice( 0 ) + clock.item.enable = -(function( collectionDisabled ) { + return collectionDisabled[ 0 ] === true ? collectionDisabled.shift() : -1 + })( clock.item.disable ) + + clock. + set( 'min', settings.min ). + set( 'max', settings.max ). + set( 'now' ) + + // When there’s a value, set the `select`, which in turn + // also sets the `highlight` and `view`. + if ( valueString ) { + clock.set( 'select', valueString, { + format: formatString + }) + } + + // If there’s no value, default to highlighting “today”. + else { + clock. + set( 'select', null ). + set( 'highlight', clock.item.now ) + } + + // The keycode to movement mapping. + clock.key = { + 40: 1, // Down + 38: -1, // Up + 39: 1, // Right + 37: -1, // Left + go: function( timeChange ) { + clock.set( + 'highlight', + clock.item.highlight.pick + timeChange * clock.item.interval, + { interval: timeChange * clock.item.interval } + ) + this.render() } + } - self.options.formatSelection = function(data, $container) { - $container.parents('li') - .drag('start', function(e, dd) { - $(this).addClass('select2-choice-dragging'); - self.$el.select2('onSortStart'); - $.drop({ - tolerance: function(event, proxy, target) { - var test = event.pageY > (target.top + target.height / 2); - $.data(target.elem, 'drop+reorder', test ? 'insertAfter' : 'insertBefore' ); - return this.contains(target, [event.pageX, event.pageY]); + + // Bind some picker events. + picker. + on( 'render', function() { + var $pickerHolder = picker.$root.children(), + $viewset = $pickerHolder.find( '.' + settings.klass.viewset ), + vendors = function( prop ) { + return ['webkit', 'moz', 'ms', 'o', ''].map(function( vendor ) { + return ( vendor ? '-' + vendor + '-' : '' ) + prop + }) + }, + animations = function( $el, state ) { + vendors( 'transform' ).map(function( prop ) { + $el.css( prop, state ) + }) + vendors( 'transition' ).map(function( prop ) { + $el.css( prop, state ) + }) } - }); - return $( this ).clone(). - addClass('dragging'). - css({opacity: 0.75, position: 'absolute'}). - appendTo(document.body); - }) - .drag(function(e, dd) { - /*jshint eqeqeq:false */ - $( dd.proxy ).css({ - top: dd.offsetY, - left: dd.offsetX - }); - var drop = dd.drop[0], - method = $.data(drop || {}, 'drop+reorder'); + if ( $viewset.length ) { + animations( $pickerHolder, 'none' ) + $pickerHolder[ 0 ].scrollTop = ~~$viewset.position().top - ( $viewset[ 0 ].clientHeight * 2 ) + animations( $pickerHolder, '' ) + } + }, 1 ). + on( 'open', function() { + picker.$root.find( 'button' ).attr( 'disabled', false ) + }, 1 ). + on( 'close', function() { + picker.$root.find( 'button' ).attr( 'disabled', true ) + }, 1 ) - /* XXX Cannot use triple equals here */ - if (drop && (drop != dd.current || method != dd.method)) { - $(this)[method](drop); - dd.current = drop; - dd.method = method; - dd.update(); - } - }) - .drag('end', function(e, dd) { - $(this).removeClass('select2-choice-dragging'); - self.$el.select2('onSortEnd'); - $( dd.proxy ).remove(); - }) - .drop('init', function(e, dd ) { - /*jshint eqeqeq:false */ - /* XXX Cannot use triple equals here */ - return (this == dd.drag) ? false: true; - }); - return formatSelection(data, $container); - }; - } - }, - initializeSelect2: function() { - var self = this; - self.$el.select2(self.options); - self.$select2 = self.$el.parent().find('.select2-container'); - self.$el.parent().off('close.modal.patterns'); - if (self.options.orderable) { - self.$select2.addClass('select2-orderable'); - } - }, - init: function() { - var self = this; +} //TimePicker - self.options.allowNewItems = self.options.hasOwnProperty ('allowNewItems') ? - JSON.parse(self.options.allowNewItems) : true; - if (self.options.ajax || self.options.vocabularyUrl) { - if (self.options.vocabularyUrl) { - self.options.multiple = self.options.multiple === undefined ? true : self.options.multiple; - self.options.ajax = self.options.ajax || {}; - self.options.ajax.url = self.options.vocabularyUrl; - // XXX removing the following function does'nt break tests. dead code? - self.options.initSelection = function ($el, callback) { - var data = [], value = $el.val(); - $(value.split(self.options.separator)).each(function () { - data.push({id: this, text: this}); - }); - callback(data); - }; - } +/** + * Set a timepicker item object. + */ +TimePicker.prototype.set = function( type, value, options ) { - var queryTerm = ''; - self.options.ajax = $.extend({ - quietMillis: 300, - data: function (term, page) { - queryTerm = term; - return { - query: term, - 'page_limit': 10, - page: page - }; - }, - results: function (data, page) { - var results = data.results; - if (self.options.vocabularyUrl) { - var dataIds = []; - $.each(data.results, function(i, item) { - dataIds.push(item.id); - }); - results = []; + var clock = this, + clockItem = clock.item - var haveResult = queryTerm === '' || $.inArray(queryTerm, dataIds) >= 0; - if (self.options.allowNewItems && !haveResult) { - results.push({id: queryTerm, text: queryTerm}); - } + // If the value is `null` just set it immediately. + if ( value === null ) { + if ( type == 'clear' ) type = 'select' + clockItem[ type ] = value + return clock + } - if (haveResult || self.options.allowNewItems) { - $.each(data.results, function(i, item) { - results.push(item); - }); - } - } - return { results: results }; - } - }, self.options.ajax); - } else if (self.options.multiple && self.$el.is('select')) { - // Multiselects need to be converted to input[type=hidden] - // for Select2 - var vals = self.$el.val() || []; - var options = $.map(self.$el.find('option'), function (o) { return {text: $(o).html(), id: o.value}; }); - var $hidden = $(''); - $hidden.val(vals.join(self.options.separator)); - $hidden.attr('class', self.$el.attr('class')); - $hidden.attr('name', self.$el.attr('name')); - $hidden.attr('id', self.$el.attr('id')); - self.$orig = self.$el; - self.$el.replaceWith($hidden); - self.$el = $hidden; - self.options.data = options; - } + // Otherwise go through the queue of methods, and invoke the functions. + // Update this as the time unit, and set the final value as this item. + // * In the case of `enable`, keep the queue but set `disable` instead. + // And in the case of `flip`, keep the queue but set `enable` instead. + clockItem[ ( type == 'enable' ? 'disable' : type == 'flip' ? 'enable' : type ) ] = clock.queue[ type ].split( ' ' ).map( function( method ) { + value = clock[ method ]( type, value, options ) + return value + }).pop() - self.initializeValues(); - self.initializeTags(); - self.initializeOrdering(); - self.initializeSelect2(); + // Check if we need to cascade through more updates. + if ( type == 'select' ) { + clock.set( 'highlight', clockItem.select, options ) + } + else if ( type == 'highlight' ) { + clock.set( 'view', clockItem.highlight, options ) + } + else if ( type == 'interval' ) { + clock. + set( 'min', clockItem.min, options ). + set( 'max', clockItem.max, options ) + } + else if ( type.match( /^(flip|min|max|disable|enable)$/ ) ) { + if ( clockItem.select && clock.disabled( clockItem.select ) ) { + clock.set( 'select', value, options ) + } + if ( clockItem.highlight && clock.disabled( clockItem.highlight ) ) { + clock.set( 'highlight', value, options ) + } + if ( type == 'min' ) { + clock.set( 'max', clockItem.max, options ) + } } - }); - return Select2; + return clock +} //TimePicker.prototype.set -}); -/* Password strength pattern - * - * Options: - * zxcvbn(url): Location to load zxcvbn from. Defaults to cdnjs - * - * Documentation: - * - * # Simple - * - * {{ example-1 }} - * - * # Custom zxcvbn location - * - * {{ example-2 }} - * - * Example: example-1 - * - * - * Example: example-2 - * - * +/** + * Get a timepicker item object. */ +TimePicker.prototype.get = function( type ) { + return this.item[ type ] +} //TimePicker.prototype.get -/* global alert:true */ -define('mockup-patterns-passwordstrength',[ - 'jquery', - 'mockup-patterns-base' -], function($, Base) { - 'use strict'; - function loadScript(src) { - var s, i, - scripts = document.getElementsByTagName('script'); +/** + * Create a picker time object. + */ +TimePicker.prototype.create = function( type, value, options ) { - // Check script element doesn't already exist - for (i = 0; i < scripts.length; i++) { - if (scripts[i].src.indexOf(src) !== -1) { - return; - } - } + var clock = this - // If not, add it to page - s = document.createElement('script'); - s.type = 'text/javascript'; - s.async = true; - s.src = src; - scripts[0].parentNode.insertBefore(s, scripts[0]); - } + // If there’s no value, use the type as the value. + value = value === undefined ? type : value - function jsDiv() { - return $(document.createElement('div')); - } + // If it’s a date object, convert it into an array. + if ( _.isDate( value ) ) { + value = [ value.getHours(), value.getMinutes() ] + } - var PasswordStrength = Base.extend({ - name: 'passwordstrength', - defaults: { - zxcvbn: '//cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.js' - }, - init: function () { - var self = this, - $pwfield = this.$el, - $pwmeter = jsDiv().append([jsDiv(), jsDiv(), jsDiv(), jsDiv()]); + // If it’s an object, use the “pick” value. + if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { + value = value.pick + } - function setLevel() { - var score = 0; + // If it’s an array, convert it into minutes. + else if ( $.isArray( value ) ) { + value = +value[ 0 ] * MINUTES_IN_HOUR + (+value[ 1 ]) + } - if (typeof window.zxcvbn !== 'function') { - // No zxcvbn yet, try and load it - loadScript(self.options.zxcvbn); - } else if ($pwfield[0].value.length > 0) { - // Run zxcvbn, supplying the value of any other widgets in the form - score = Math.max(1, window.zxcvbn( - $pwfield[0].value, - [].map.call( - ($pwfield[0].form || { elements: [] }).elements, - function (inp) { - if (inp === $pwfield[0]) { - return null; - } - return inp.value || null; - } - ).filter(function (x) { return x; }) - ).score); - } - $pwmeter.attr('class', 'pat-passwordstrength-meter level-' + score); - } + // If no valid value is passed, set it to “now”. + else if ( !_.isInteger( value ) ) { + value = clock.now( type, value, options ) + } - $pwfield.after($pwmeter); - $pwfield.on('keyup', function(e) { - var timeoutId = 0; + // If we’re setting the max, make sure it’s greater than the min. + if ( type == 'max' && value < clock.item.min.pick ) { + value += MINUTES_IN_DAY + } - clearTimeout(timeoutId); - timeoutId = setTimeout(setLevel, 500); - }); - setLevel(); + // If the value doesn’t fall directly on the interval, + // add one interval to indicate it as “passed”. + if ( type != 'min' && type != 'max' && (value - clock.item.min.pick) % clock.item.interval !== 0 ) { + value += clock.item.interval } - }); - return PasswordStrength; -}); + // Normalize it into a “reachable” interval. + value = clock.normalize( type, value, options ) + // Return the compiled object. + return { -/*! - * pickadate.js v3.4.0, 2014/02/15 - * By Amsul, http://amsul.ca - * Hosted on http://amsul.github.io/pickadate.js - * Licensed under MIT - */ + // Divide to get hours from minutes. + hour: ~~( HOURS_IN_DAY + value / MINUTES_IN_HOUR ) % HOURS_IN_DAY, -(function ( factory ) { + // The remainder is the minutes. + mins: ( MINUTES_IN_HOUR + value % MINUTES_IN_HOUR ) % MINUTES_IN_HOUR, - // Register as an anonymous module. - if ( typeof define === 'function' && define.amd ) - define( 'picker', ['jquery'], factory ) + // The time in total minutes. + time: ( MINUTES_IN_DAY + value ) % MINUTES_IN_DAY, - // Or using browser globals. - else this.Picker = factory( jQuery ) + // Reference to the “relative” value to pick. + pick: value % MINUTES_IN_DAY + } +} //TimePicker.prototype.create -}(function( $ ) { -var $document = $( document ) +/** + * Create a range limit object using an array, date object, + * literal “true”, or integer relative to another time. + */ +TimePicker.prototype.createRange = function( from, to ) { + + var clock = this, + createTime = function( time ) { + if ( time === true || $.isArray( time ) || _.isDate( time ) ) { + return clock.create( time ) + } + return time + } + + // Create objects if possible. + if ( !_.isInteger( from ) ) { + from = createTime( from ) + } + if ( !_.isInteger( to ) ) { + to = createTime( to ) + } + + // Create relative times. + if ( _.isInteger( from ) && $.isPlainObject( to ) ) { + from = [ to.hour, to.mins + ( from * clock.settings.interval ) ]; + } + else if ( _.isInteger( to ) && $.isPlainObject( from ) ) { + to = [ from.hour, from.mins + ( to * clock.settings.interval ) ]; + } + + return { + from: createTime( from ), + to: createTime( to ) + } +} //TimePicker.prototype.createRange /** - * The picker constructor that creates a blank picker. + * Check if a time unit falls within a time range object. */ -function PickerConstructor( ELEMENT, NAME, COMPONENT, OPTIONS ) { +TimePicker.prototype.withinRange = function( range, timeUnit ) { + range = this.createRange(range.from, range.to) + return timeUnit.pick >= range.from.pick && timeUnit.pick <= range.to.pick +} - // If there’s no element, return the picker constructor. - if ( !ELEMENT ) return PickerConstructor +/** + * Check if two time range objects overlap. + */ +TimePicker.prototype.overlapRanges = function( one, two ) { - var - // The state of the picker. - STATE = { - id: ELEMENT.id || 'P' + Math.abs( ~~(Math.random() * new Date()) ) - }, + var clock = this + // Convert the ranges into comparable times. + one = clock.createRange( one.from, one.to ) + two = clock.createRange( two.from, two.to ) - // Merge the defaults and options passed. - SETTINGS = COMPONENT ? $.extend( true, {}, COMPONENT.defaults, OPTIONS ) : OPTIONS || {}, + return clock.withinRange( one, two.from ) || clock.withinRange( one, two.to ) || + clock.withinRange( two, one.from ) || clock.withinRange( two, one.to ) +} - // Merge the default classes with the settings classes. - CLASSES = $.extend( {}, PickerConstructor.klasses(), SETTINGS.klass ), +/** + * Get the time relative to now. + */ +TimePicker.prototype.now = function( type, value/*, options*/ ) { + var interval = this.item.interval, + date = new Date(), + nowMinutes = date.getHours() * MINUTES_IN_HOUR + date.getMinutes(), + isValueInteger = _.isInteger( value ), + isBelowInterval - // The element node wrapper into a jQuery object. - $ELEMENT = $( ELEMENT ), + // Make sure “now” falls within the interval range. + nowMinutes -= nowMinutes % interval + // Check if the difference is less than the interval itself. + isBelowInterval = value < 0 && interval * value + nowMinutes <= -interval - // Pseudo picker constructor. - PickerInstance = function() { - return this.start() - }, + // Add an interval because the time has “passed”. + nowMinutes += type == 'min' && isBelowInterval ? 0 : interval + // If the value is a number, adjust by that many intervals. + if ( isValueInteger ) { + nowMinutes += interval * ( + isBelowInterval && type != 'max' ? + value + 1 : + value + ) + } - // The picker prototype. - P = PickerInstance.prototype = { + // Return the final calculation. + return nowMinutes +} //TimePicker.prototype.now - constructor: PickerInstance, - $node: $ELEMENT, +/** + * Normalize minutes to be “reachable” based on the min and interval. + */ +TimePicker.prototype.normalize = function( type, value/*, options*/ ) { + var interval = this.item.interval, + minTime = this.item.min && this.item.min.pick || 0 - /** - * Initialize everything - */ - start: function() { + // If setting min time, don’t shift anything. + // Otherwise get the value and min difference and then + // normalize the difference with the interval. + value -= type == 'min' ? 0 : ( value - minTime ) % interval - // If it’s already started, do nothing. - if ( STATE && STATE.start ) return P + // Return the adjusted value. + return value +} //TimePicker.prototype.normalize - // Update the picker states. - STATE.methods = {} - STATE.start = true - STATE.open = false - STATE.type = ELEMENT.type +/** + * Measure the range of minutes. + */ +TimePicker.prototype.measure = function( type, value, options ) { + var clock = this - // Confirm focus state, convert into text input to remove UA stylings, - // and set as readonly to prevent keyboard popup. - ELEMENT.autofocus = ELEMENT == document.activeElement - ELEMENT.type = 'text' - ELEMENT.readOnly = !SETTINGS.editable - ELEMENT.id = ELEMENT.id || STATE.id + // If it’s anything false-y, set it to the default. + if ( !value ) { + value = type == 'min' ? [ 0, 0 ] : [ HOURS_IN_DAY - 1, MINUTES_IN_HOUR - 1 ] + } + // If it’s a string, parse it. + if ( typeof value == 'string' ) { + value = clock.parse( type, value ) + } - // Create a new picker component with the settings. - P.component = new COMPONENT(P, SETTINGS) + // If it’s a literal true, or an integer, make it relative to now. + else if ( value === true || _.isInteger( value ) ) { + value = clock.now( type, value, options ) + } + // If it’s an object already, just normalize it. + else if ( $.isPlainObject( value ) && _.isInteger( value.pick ) ) { + value = clock.normalize( type, value.pick, options ) + } - // Create the picker root with a holder and then prepare it. - P.$root = $( PickerConstructor._.node('div', createWrappedComponent(), CLASSES.picker, 'id="' + ELEMENT.id + '_root"') ) - prepareElementRoot() + return value +} ///TimePicker.prototype.measure - // If there’s a format for the hidden input element, create the element. - if ( SETTINGS.formatSubmit ) { - prepareElementHidden() - } +/** + * Validate an object as enabled. + */ +TimePicker.prototype.validate = function( type, timeObject, options ) { + var clock = this, + interval = options && options.interval ? options.interval : clock.item.interval - // Prepare the input element. - prepareElement() + // Check if the object is disabled. + if ( clock.disabled( timeObject ) ) { + // Shift with the interval until we reach an enabled time. + timeObject = clock.shift( timeObject, interval ) + } - // Insert the root as specified in the settings. - if ( SETTINGS.container ) $( SETTINGS.container ).append( P.$root ) - else $ELEMENT.after( P.$root ) + // Scope the object into range. + timeObject = clock.scope( timeObject ) + // Do a second check to see if we landed on a disabled min/max. + // In that case, shift using the opposite interval as before. + if ( clock.disabled( timeObject ) ) { + timeObject = clock.shift( timeObject, interval * -1 ) + } - // Bind the default component and settings events. - P.on({ - start: P.component.onStart, - render: P.component.onRender, - stop: P.component.onStop, - open: P.component.onOpen, - close: P.component.onClose, - set: P.component.onSet - }).on({ - start: SETTINGS.onStart, - render: SETTINGS.onRender, - stop: SETTINGS.onStop, - open: SETTINGS.onOpen, - close: SETTINGS.onClose, - set: SETTINGS.onSet - }) + // Return the final object. + return timeObject +} //TimePicker.prototype.validate - // If the element has autofocus, open the picker. - if ( ELEMENT.autofocus ) { - P.open() - } +/** + * Check if an object is disabled. + */ +TimePicker.prototype.disabled = function( timeToVerify ) { + var clock = this, - // Trigger queued the “start” and “render” events. - return P.trigger( 'start' ).trigger( 'render' ) - }, //start + // Filter through the disabled times to check if this is one. + isDisabledMatch = clock.item.disable.filter( function( timeToDisable ) { + // If the time is a number, match the hours. + if ( _.isInteger( timeToDisable ) ) { + return timeToVerify.hour == timeToDisable + } - /** - * Render a new picker - */ - render: function( entireComponent ) { + // If it’s an array, create the object and match the times. + if ( $.isArray( timeToDisable ) || _.isDate( timeToDisable ) ) { + return timeToVerify.pick == clock.create( timeToDisable ).pick + } - // Insert a new component holder in the root or box. - if ( entireComponent ) P.$root.html( createWrappedComponent() ) - else P.$root.find( '.' + CLASSES.box ).html( P.component.nodes( STATE.open ) ) + // If it’s an object, match a time within the “from” and “to” range. + if ( $.isPlainObject( timeToDisable ) ) { + return clock.withinRange( timeToDisable, timeToVerify ) + } + }) - // Trigger the queued “render” events. - return P.trigger( 'render' ) - }, //render + // If this time matches a disabled time, confirm it’s not inverted. + isDisabledMatch = isDisabledMatch.length && !isDisabledMatch.filter(function( timeToDisable ) { + return $.isArray( timeToDisable ) && timeToDisable[2] == 'inverted' || + $.isPlainObject( timeToDisable ) && timeToDisable.inverted + }).length + // If the clock is "enabled" flag is flipped, flip the condition. + return clock.item.enable === -1 ? !isDisabledMatch : isDisabledMatch || + timeToVerify.pick < clock.item.min.pick || + timeToVerify.pick > clock.item.max.pick +} //TimePicker.prototype.disabled - /** - * Destroy everything - */ - stop: function() { - // If it’s already stopped, do nothing. - if ( !STATE.start ) return P +/** + * Shift an object by an interval until we reach an enabled object. + */ +TimePicker.prototype.shift = function( timeObject, interval ) { - // Then close the picker. - P.close() + var clock = this, + minLimit = clock.item.min.pick, + maxLimit = clock.item.max.pick/*, + safety = 1000*/ - // Remove the hidden field. - if ( P._hidden ) { - P._hidden.parentNode.removeChild( P._hidden ) - } + interval = interval || clock.item.interval - // Remove the root. - P.$root.remove() + // Keep looping as long as the time is disabled. + while ( /*safety &&*/ clock.disabled( timeObject ) ) { - // Remove the input class, remove the stored data, and unbind - // the events (after a tick for IE - see `P.close`). - $ELEMENT.removeClass( CLASSES.input ).removeData( NAME ) - setTimeout( function() { - $ELEMENT.off( '.' + STATE.id ) - }, 0) + /*safety -= 1 + if ( !safety ) { + throw 'Fell into an infinite loop while shifting to ' + timeObject.hour + ':' + timeObject.mins + '.' + }*/ - // Restore the element state - ELEMENT.type = STATE.type - ELEMENT.readOnly = false + // Increase/decrease the time by the interval and keep looping. + timeObject = clock.create( timeObject.pick += interval ) - // Trigger the queued “stop” events. - P.trigger( 'stop' ) + // If we've looped beyond the limits, break out of the loop. + if ( timeObject.pick <= minLimit || timeObject.pick >= maxLimit ) { + break + } + } - // Reset the picker states. - STATE.methods = {} - STATE.start = false + // Return the final object. + return timeObject +} //TimePicker.prototype.shift - return P - }, //stop +/** + * Scope an object to be within range of min and max. + */ +TimePicker.prototype.scope = function( timeObject ) { + var minLimit = this.item.min.pick, + maxLimit = this.item.max.pick + return this.create( timeObject.pick > maxLimit ? maxLimit : timeObject.pick < minLimit ? minLimit : timeObject ) +} //TimePicker.prototype.scope - /* - * Open up the picker - */ - open: function( dontGiveFocus ) { - // If it’s already open, do nothing. - if ( STATE.open ) return P +/** + * Parse a string into a usable type. + */ +TimePicker.prototype.parse = function( type, value, options ) { - // Add the “active” class. - $ELEMENT.addClass( CLASSES.active ) - aria( ELEMENT, 'expanded', true ) + var hour, minutes, isPM, item, parseValue, + clock = this, + parsingObject = {} - // Add the “opened” class to the picker root. - P.$root.addClass( CLASSES.opened ) - aria( P.$root[0], 'hidden', false ) + // If it’s already parsed, we’re good. + if ( !value || typeof value != 'string' ) { + return value + } - // If we have to give focus, bind the element and doc events. - if ( dontGiveFocus !== false ) { + // We need a `.format` to parse the value with. + if ( !( options && options.format ) ) { + options = options || {} + options.format = clock.settings.format + } - // Set it as open. - STATE.open = true + // Convert the format into an array and then map through it. + clock.formats.toArray( options.format ).map( function( label ) { - // Pass focus to the element’s jQuery object. - $ELEMENT.trigger( 'focus' ) + var + substring, - // Bind the document events. - $document.on( 'click.' + STATE.id + ' focusin.' + STATE.id, function( event ) { + // Grab the formatting label. + formattingLabel = clock.formats[ label ], - var target = event.target + // The format length is from the formatting label function or the + // label length without the escaping exclamation (!) mark. + formatLength = formattingLabel ? + _.trigger( formattingLabel, clock, [ value, parsingObject ] ) : + label.replace( /^!/, '' ).length - // If the target of the event is not the element, close the picker picker. - // * Don’t worry about clicks or focusins on the root because those don’t bubble up. - // Also, for Firefox, a click on an `option` element bubbles up directly - // to the doc. So make sure the target wasn't the doc. - // * In Firefox stopPropagation() doesn’t prevent right-click events from bubbling, - // which causes the picker to unexpectedly close when right-clicking it. So make - // sure the event wasn’t a right-click. - if ( target != ELEMENT && target != document && event.which != 3 ) { + // If there's a format label, split the value up to the format length. + // Then add it to the parsing object with appropriate label. + if ( formattingLabel ) { + substring = value.substr( 0, formatLength ) + parsingObject[ label ] = substring.match(/^\d+$/) ? +substring : substring + } - // If the target was the holder that covers the screen, - // keep the element focused to maintain tabindex. - P.close( target === P.$root.children()[0] ) - } + // Update the time value as the substring from format length to end. + value = value.substr( formatLength ) + }) - }).on( 'keydown.' + STATE.id, function( event ) { + // Grab the hour and minutes from the parsing object. + for ( item in parsingObject ) { + parseValue = parsingObject[item] + if ( _.isInteger(parseValue) ) { + if ( item.match(/^(h|hh)$/i) ) { + hour = parseValue + if ( item == 'h' || item == 'hh' ) { + hour %= 12 + } + } + else if ( item == 'i' ) { + minutes = parseValue + } + } + else if ( item.match(/^a$/i) && parseValue.match(/^p/i) && ('h' in parsingObject || 'hh' in parsingObject) ) { + isPM = true + } + } - var - // Get the keycode. - keycode = event.keyCode, + // Calculate it in minutes and return. + return (isPM ? hour + 12 : hour) * MINUTES_IN_HOUR + minutes +} //TimePicker.prototype.parse - // Translate that to a selection change. - keycodeToMove = P.component.key[ keycode ], - // Grab the target. - target = event.target +/** + * Various formats to display the object in. + */ +TimePicker.prototype.formats = { + h: function( string, timeObject ) { - // On escape, close the picker and give focus. - if ( keycode == 27 ) { - P.close( true ) - } + // If there's string, then get the digits length. + // Otherwise return the selected hour in "standard" format. + return string ? _.digits( string ) : timeObject.hour % HOURS_TO_NOON || HOURS_TO_NOON + }, + hh: function( string, timeObject ) { + // If there's a string, then the length is always 2. + // Otherwise return the selected hour in "standard" format with a leading zero. + return string ? 2 : _.lead( timeObject.hour % HOURS_TO_NOON || HOURS_TO_NOON ) + }, + H: function( string, timeObject ) { - // Check if there is a key movement or “enter” keypress on the element. - else if ( target == ELEMENT && ( keycodeToMove || keycode == 13 ) ) { + // If there's string, then get the digits length. + // Otherwise return the selected hour in "military" format as a string. + return string ? _.digits( string ) : '' + ( timeObject.hour % 24 ) + }, + HH: function( string, timeObject ) { - // Prevent the default action to stop page movement. - event.preventDefault() + // If there's string, then get the digits length. + // Otherwise return the selected hour in "military" format with a leading zero. + return string ? _.digits( string ) : _.lead( timeObject.hour % 24 ) + }, + i: function( string, timeObject ) { - // Trigger the key movement action. - if ( keycodeToMove ) { - PickerConstructor._.trigger( P.component.key.go, P, [ PickerConstructor._.trigger( keycodeToMove ) ] ) - } + // If there's a string, then the length is always 2. + // Otherwise return the selected minutes. + return string ? 2 : _.lead( timeObject.mins ) + }, + a: function( string, timeObject ) { - // On “enter”, if the highlighted item isn’t disabled, set the value and close. - else if ( !P.$root.find( '.' + CLASSES.highlighted ).hasClass( CLASSES.disabled ) ) { - P.set( 'select', P.component.item.highlight ).close() - } - } + // If there's a string, then the length is always 4. + // Otherwise check if it's more than "noon" and return either am/pm. + return string ? 4 : MINUTES_IN_DAY / 2 > timeObject.time % MINUTES_IN_DAY ? 'a.m.' : 'p.m.' + }, + A: function( string, timeObject ) { + // If there's a string, then the length is always 2. + // Otherwise check if it's more than "noon" and return either am/pm. + return string ? 2 : MINUTES_IN_DAY / 2 > timeObject.time % MINUTES_IN_DAY ? 'AM' : 'PM' + }, - // If the target is within the root and “enter” is pressed, - // prevent the default action and trigger a click on the target instead. - else if ( $.contains( P.$root[0], target ) && keycode == 13 ) { - event.preventDefault() - target.click() - } - }) - } + // Create an array by splitting the formatting string passed. + toArray: function( formatString ) { return formatString.split( /(h{1,2}|H{1,2}|i|a|A|!.)/g ) }, - // Trigger the queued “open” events. - return P.trigger( 'open' ) - }, //open + // Format an object into a string using the formatting options. + toString: function ( formatString, itemObject ) { + var clock = this + return clock.formats.toArray( formatString ).map( function( label ) { + return _.trigger( clock.formats[ label ], clock, [ 0, itemObject ] ) || label.replace( /^!/, '' ) + }).join( '' ) + } +} //TimePicker.prototype.formats - /** - * Close the picker - */ - close: function( giveFocus ) { - // If we need to give focus, do it before changing states. - if ( giveFocus ) { - // ....ah yes! It would’ve been incomplete without a crazy workaround for IE :| - // The focus is triggered *after* the close has completed - causing it - // to open again. So unbind and rebind the event at the next tick. - $ELEMENT.off( 'focus.' + STATE.id ).trigger( 'focus' ) - setTimeout( function() { - $ELEMENT.on( 'focus.' + STATE.id, focusToOpen ) - }, 0 ) - } - // Remove the “active” class. - $ELEMENT.removeClass( CLASSES.active ) - aria( ELEMENT, 'expanded', false ) +/** + * Check if two time units are the exact. + */ +TimePicker.prototype.isTimeExact = function( one, two ) { - // Remove the “opened” and “focused” class from the picker root. - P.$root.removeClass( CLASSES.opened + ' ' + CLASSES.focused ) - aria( P.$root[0], 'hidden', true ) - aria( P.$root[0], 'selected', false ) + var clock = this - // If it’s already closed, do nothing more. - if ( !STATE.open ) return P + // When we’re working with minutes, do a direct comparison. + if ( + ( _.isInteger( one ) && _.isInteger( two ) ) || + ( typeof one == 'boolean' && typeof two == 'boolean' ) + ) { + return one === two + } - // Set it as closed. - STATE.open = false + // When we’re working with time representations, compare the “pick” value. + if ( + ( _.isDate( one ) || $.isArray( one ) ) && + ( _.isDate( two ) || $.isArray( two ) ) + ) { + return clock.create( one ).pick === clock.create( two ).pick + } - // Unbind the document events. - $document.off( '.' + STATE.id ) + // When we’re working with range objects, compare the “from” and “to”. + if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { + return clock.isTimeExact( one.from, two.from ) && clock.isTimeExact( one.to, two.to ) + } - // Trigger the queued “close” events. - return P.trigger( 'close' ) - }, //close + return false +} - /** - * Clear the values - */ - clear: function() { - return P.set( 'clear' ) - }, //clear +/** + * Check if two time units overlap. + */ +TimePicker.prototype.isTimeOverlap = function( one, two ) { + var clock = this - /** - * Set something - */ - set: function( thing, value, options ) { + // When we’re working with an integer, compare the hours. + if ( _.isInteger( one ) && ( _.isDate( two ) || $.isArray( two ) ) ) { + return one === clock.create( two ).hour + } + if ( _.isInteger( two ) && ( _.isDate( one ) || $.isArray( one ) ) ) { + return two === clock.create( one ).hour + } - var thingItem, thingValue, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} + // When we’re working with range objects, check if the ranges overlap. + if ( $.isPlainObject( one ) && $.isPlainObject( two ) ) { + return clock.overlapRanges( one, two ) + } - // Make sure we have usable options. - options = thingIsObject && $.isPlainObject( value ) ? value : options || {} + return false +} - if ( thing ) { - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = value - } +/** + * Flip the “enabled” state. + */ +TimePicker.prototype.flipEnable = function(val) { + var itemObject = this.item + itemObject.enable = val || (itemObject.enable == -1 ? 1 : -1) +} - // Go through the things of items to set. - for ( thingItem in thingObject ) { - // Grab the value of the thing. - thingValue = thingObject[ thingItem ] +/** + * Mark a collection of times as “disabled”. + */ +TimePicker.prototype.deactivate = function( type, timesToDisable ) { - // First, if the item exists and there’s a value, set it. - if ( thingItem in P.component.item ) { - P.component.set( thingItem, thingValue, options ) - } + var clock = this, + disabledItems = clock.item.disable.slice(0) - // Then, check to update the element value and broadcast a change. - if ( thingItem == 'select' || thingItem == 'clear' ) { - $ELEMENT.val( thingItem == 'clear' ? - '' : P.get( thingItem, SETTINGS.format ) - ).trigger( 'change' ) - } - } - // Render a new picker. - P.render() - } + // If we’re flipping, that’s all we need to do. + if ( timesToDisable == 'flip' ) { + clock.flipEnable() + } - // When the method isn’t muted, trigger queued “set” events and pass the `thingObject`. - return options.muted ? P : P.trigger( 'set', thingObject ) - }, //set + else if ( timesToDisable === false ) { + clock.flipEnable(1) + disabledItems = [] + } + else if ( timesToDisable === true ) { + clock.flipEnable(-1) + disabledItems = [] + } - /** - * Get something - */ - get: function( thing, format ) { + // Otherwise go through the times to disable. + else { - // Make sure there’s something to get. - thing = thing || 'value' + timesToDisable.map(function( unitToDisable ) { - // If a picker state exists, return that. - if ( STATE[ thing ] != null ) { - return STATE[ thing ] - } + var matchFound - // Return the value, if that. - if ( thing == 'value' ) { - return ELEMENT.value + // When we have disabled items, check for matches. + // If something is matched, immediately break out. + for ( var index = 0; index < disabledItems.length; index += 1 ) { + if ( clock.isTimeExact( unitToDisable, disabledItems[index] ) ) { + matchFound = true + break } + } - // Check if a component item exists, return that. - if ( thing in P.component.item ) { - if ( typeof format == 'string' ) { - return PickerConstructor._.trigger( - P.component.formats.toString, - P.component, - [ format, P.component.get( thing ) ] - ) - } - return P.component.get( thing ) + // If nothing was found, add the validated unit to the collection. + if ( !matchFound ) { + if ( + _.isInteger( unitToDisable ) || + _.isDate( unitToDisable ) || + $.isArray( unitToDisable ) || + ( $.isPlainObject( unitToDisable ) && unitToDisable.from && unitToDisable.to ) + ) { + disabledItems.push( unitToDisable ) } - }, //get + } + }) + } + // Return the updated collection. + return disabledItems +} //TimePicker.prototype.deactivate - /** - * Bind events on the things. - */ - on: function( thing, method ) { +/** + * Mark a collection of times as “enabled”. + */ +TimePicker.prototype.activate = function( type, timesToEnable ) { - var thingName, thingMethod, - thingIsObject = $.isPlainObject( thing ), - thingObject = thingIsObject ? thing : {} + var clock = this, + disabledItems = clock.item.disable, + disabledItemsCount = disabledItems.length - if ( thing ) { + // If we’re flipping, that’s all we need to do. + if ( timesToEnable == 'flip' ) { + clock.flipEnable() + } - // If the thing isn’t an object, make it one. - if ( !thingIsObject ) { - thingObject[ thing ] = method - } + else if ( timesToEnable === true ) { + clock.flipEnable(1) + disabledItems = [] + } - // Go through the things to bind to. - for ( thingName in thingObject ) { + else if ( timesToEnable === false ) { + clock.flipEnable(-1) + disabledItems = [] + } - // Grab the method of the thing. - thingMethod = thingObject[ thingName ] + // Otherwise go through the disabled times. + else { - // Make sure the thing methods collection exists. - STATE.methods[ thingName ] = STATE.methods[ thingName ] || [] + timesToEnable.map(function( unitToEnable ) { - // Add the method to the relative method collection. - STATE.methods[ thingName ].push( thingMethod ) - } - } + var matchFound, + disabledUnit, + index, + isRangeMatched - return P - }, //on + // Go through the disabled items and try to find a match. + for ( index = 0; index < disabledItemsCount; index += 1 ) { + disabledUnit = disabledItems[index] + // When an exact match is found, remove it from the collection. + if ( clock.isTimeExact( disabledUnit, unitToEnable ) ) { + matchFound = disabledItems[index] = null + isRangeMatched = true + break + } - /** - * Unbind events on the things. - */ - off: function() { - var i, thingName, - names = arguments; - for ( i = 0, namesCount = names.length; i < namesCount; i += 1 ) { - thingName = names[i] - if ( thingName in STATE.methods ) { - delete STATE.methods[thingName] + // When an overlapped match is found, add the “inverted” state to it. + else if ( clock.isTimeOverlap( disabledUnit, unitToEnable ) ) { + if ( $.isPlainObject( unitToEnable ) ) { + unitToEnable.inverted = true + matchFound = unitToEnable } + else if ( $.isArray( unitToEnable ) ) { + matchFound = unitToEnable + if ( !matchFound[2] ) matchFound.push( 'inverted' ) + } + else if ( _.isDate( unitToEnable ) ) { + matchFound = [ unitToEnable.getFullYear(), unitToEnable.getMonth(), unitToEnable.getDate(), 'inverted' ] + } + break } - return P - }, - + } - /** - * Fire off method events. - */ - trigger: function( name, data ) { - var methodList = STATE.methods[ name ] - if ( methodList ) { - methodList.map( function( method ) { - PickerConstructor._.trigger( method, P, [ data ] ) - }) + // If a match was found, remove a previous duplicate entry. + if ( matchFound ) for ( index = 0; index < disabledItemsCount; index += 1 ) { + if ( clock.isTimeExact( disabledItems[index], unitToEnable ) ) { + disabledItems[index] = null + break } - return P - } //trigger - } //PickerInstance.prototype - - - /** - * Wrap the picker holder components together. - */ - function createWrappedComponent() { + } - // Create a picker wrapper holder - return PickerConstructor._.node( 'div', + // In the event that we’re dealing with an overlap of range times, + // make sure there are no “inverted” times because of it. + if ( isRangeMatched ) for ( index = 0; index < disabledItemsCount; index += 1 ) { + if ( clock.isTimeOverlap( disabledItems[index], unitToEnable ) ) { + disabledItems[index] = null + break + } + } - // Create a picker wrapper node - PickerConstructor._.node( 'div', + // If something is still matched, add it into the collection. + if ( matchFound ) { + disabledItems.push( matchFound ) + } + }) + } - // Create a picker frame - PickerConstructor._.node( 'div', + // Return the updated collection. + return disabledItems.filter(function( val ) { return val != null }) +} //TimePicker.prototype.activate - // Create a picker box node - PickerConstructor._.node( 'div', - // Create the components nodes. - P.component.nodes( STATE.open ), +/** + * The division to use for the range intervals. + */ +TimePicker.prototype.i = function( type, value/*, options*/ ) { + return _.isInteger( value ) && value > 0 ? value : this.item.interval +} - // The picker box class - CLASSES.box - ), - // Picker wrap class - CLASSES.wrap - ), +/** + * Create a string for the nodes in the picker. + */ +TimePicker.prototype.nodes = function( isOpen ) { - // Picker frame class - CLASSES.frame - ), + var + clock = this, + settings = clock.settings, + selectedObject = clock.item.select, + highlightedObject = clock.item.highlight, + viewsetObject = clock.item.view, + disabledCollection = clock.item.disable - // Picker holder class - CLASSES.holder - ) //endreturn - } //createWrappedComponent + return _.node( + 'ul', + _.group({ + min: clock.item.min.pick, + max: clock.item.max.pick, + i: clock.item.interval, + node: 'li', + item: function( loopedTime ) { + loopedTime = clock.create( loopedTime ) + var timeMinutes = loopedTime.pick, + isSelected = selectedObject && selectedObject.pick == timeMinutes, + isHighlighted = highlightedObject && highlightedObject.pick == timeMinutes, + isDisabled = disabledCollection && clock.disabled( loopedTime ), + formattedTime = _.trigger( clock.formats.toString, clock, [ settings.format, loopedTime ] ) + return [ + _.trigger( clock.formats.toString, clock, [ _.trigger( settings.formatLabel, clock, [ loopedTime ] ) || settings.format, loopedTime ] ), + (function( klasses ) { + if ( isSelected ) { + klasses.push( settings.klass.selected ) + } + if ( isHighlighted ) { + klasses.push( settings.klass.highlighted ) + } - /** - * Prepare the input element with all bindings. - */ - function prepareElement() { + if ( viewsetObject && viewsetObject.pick == timeMinutes ) { + klasses.push( settings.klass.viewset ) + } - $ELEMENT. + if ( isDisabled ) { + klasses.push( settings.klass.disabled ) + } - // Store the picker data by component name. - data(NAME, P). + return klasses.join( ' ' ) + })( [ settings.klass.listItem ] ), + 'data-pick=' + loopedTime.pick + ' ' + _.ariaAttr({ + role: 'option', + label: formattedTime, + selected: isSelected && clock.$node.val() === formattedTime ? true : null, + activedescendant: isHighlighted ? true : null, + disabled: isDisabled ? true : null + }) + ] + } + }) + - // Add the “input” class name. - addClass(CLASSES.input). + // * For Firefox forms to submit, make sure to set the button’s `type` attribute as “button”. + _.node( + 'li', + _.node( + 'button', + settings.clear, + settings.klass.buttonClear, + 'type=button data-clear=1' + ( isOpen ? '' : ' disabled' ) + ' ' + + _.ariaAttr({ controls: clock.$node[0].id }) + ), + '', _.ariaAttr({ role: 'presentation' }) + ), + settings.klass.list, + _.ariaAttr({ role: 'listbox', controls: clock.$node[0].id }) + ) +} //TimePicker.prototype.nodes - // If there’s a `data-value`, update the value of the element. - val( $ELEMENT.data('value') ? - P.get('select', SETTINGS.format) : - ELEMENT.value - ). - // On focus/click, open the picker and adjust the root “focused” state. - on('focus.' + STATE.id + ' click.' + STATE.id, focusToOpen) - // Only bind keydown events if the element isn’t editable. - if ( !SETTINGS.editable ) { - // Handle keyboard event based on the picker being opened or not. - $ELEMENT.on('keydown.' + STATE.id, function(event) { - var keycode = event.keyCode, - // Check if one of the delete keys was pressed. - isKeycodeDelete = /^(8|46)$/.test(keycode) +/** + * Extend the picker to add the component with the defaults. + */ +TimePicker.defaults = (function( prefix ) { - // For some reason IE clears the input value on “escape”. - if ( keycode == 27 ) { - P.close() - return false - } + return { - // Check if `space` or `delete` was pressed or the picker is closed with a key movement. - if ( keycode == 32 || isKeycodeDelete || !STATE.open && P.component.key[keycode] ) { + // Clear + clear: 'Clear', - // Prevent it from moving the page and bubbling to doc. - event.preventDefault() - event.stopPropagation() + // The format to show on the `input` element + format: 'h:i A', - // If `delete` was pressed, clear the values and close the picker. - // Otherwise open the picker. - if ( isKeycodeDelete ) { P.clear().close() } - else { P.open() } - } - }) - } + // The interval between each time + interval: 30, + // Picker close behavior + closeOnSelect: true, + closeOnClear: true, - // Update the aria attributes. - aria(ELEMENT, { - haspopup: true, - expanded: false, - readonly: false, - owns: ELEMENT.id + '_root' + (P._hidden ? ' ' + P._hidden.id : '') - }) - } + // Classes + klass: { + picker: prefix + ' ' + prefix + '--time', + holder: prefix + '__holder', - /** - * Prepare the root picker element with all bindings. - */ - function prepareElementRoot() { + list: prefix + '__list', + listItem: prefix + '__list-item', - P.$root. + disabled: prefix + '__list-item--disabled', + selected: prefix + '__list-item--selected', + highlighted: prefix + '__list-item--highlighted', + viewset: prefix + '__list-item--viewset', + now: prefix + '__list-item--now', - on({ + buttonClear: prefix + '__button--clear' + } + } +})( Picker.klasses().picker ) - // When something within the root is focused, stop from bubbling - // to the doc and remove the “focused” state from the root. - focusin: function( event ) { - P.$root.removeClass( CLASSES.focused ) - aria( P.$root[0], 'selected', false ) - event.stopPropagation() - }, - // When something within the root holder is clicked, stop it - // from bubbling to the doc. - 'mousedown click': function( event ) { - var target = event.target - // Make sure the target isn’t the root holder so it can bubble up. - if ( target != P.$root.children()[ 0 ] ) { - event.stopPropagation() +/** + * Extend the picker to add the time picker. + */ +Picker.extend( 'pickatime', TimePicker ) - // * For mousedown events, cancel the default action in order to - // prevent cases where focus is shifted onto external elements - // when using things like jQuery mobile or MagnificPopup (ref: #249 & #120). - // Also, for Firefox, don’t prevent action on the `option` element. - if ( event.type == 'mousedown' && !$( target ).is( ':input' ) && target.nodeName != 'OPTION' ) { - event.preventDefault() +})); - // Re-focus onto the element so that users can click away - // from elements focused within the picker. - ELEMENT.focus() - } - } - } - }). - // If there’s a click on an actionable element, carry out the actions. - on( 'click', '[data-pick], [data-nav], [data-clear]', function() { - var $target = $( this ), - targetData = $target.data(), - targetDisabled = $target.hasClass( CLASSES.navDisabled ) || $target.hasClass( CLASSES.disabled ), - // * For IE, non-focusable elements can be active elements as well - // (http://stackoverflow.com/a/2684561). - activeElement = document.activeElement - activeElement = activeElement && ( activeElement.type || activeElement.href ) && activeElement +/* PickADate pattern. + * + * Options: + * date(object): Date widget options described here. If false is selected date picker wont be shown. ({{selectYears: true, selectMonths: true }) + * time(object): Time widget options described here. If false is selected time picker wont be shown. ({}) + * separator(string): Separator between date and time if both are enabled. + * (' ') + * classClearName(string): Class name of element that is generated by pattern. ('pattern-pickadate-clear') + * classDateName(string): Class applied to date input. ('pattern-pickadate-date') + * classDateWrapperName(string): Class applied to extra wrapper div around date input. ('pattern-pickadate-date-wrapper') + * classSeparatorName(string): Class applied to separator. ('pattern-pickadate-separator') + * classTimeName(string): Class applied to time input. ('pattern-pickadate-time') + * classTimeWrapperName(string): Class applied to wrapper div around time input. ('pattern-pickadate-time-wrapper') + * classTimezoneName(string): Class applied to timezone input. ('pattern-pickadate-timezone') + * classTimezoneWrapperName(string): Class applied to wrapper div around timezone input. ('pattern-pickadate-timezone-wrapper') + * classWrapperName(string): Class name of element that is generated by pattern. ('pattern-pickadate-wrapper') + * + * Documentation: + * # Date and Time + * + * {{ example-1 }} + * + * # Date and Time with initial data + * + * {{ example-2 }} + * + * # Date + * + * {{ example-3 }} + * + * # Date with initial date + * + * {{ example-4 }} + * + * # Time + * + * {{ example-5 }} + * + * # Time with initial time + * + * {{ example-6 }} + * + * # Date and time with timezone + * + * {{ example-7 }} + * + * # Date and time with timezone and default value + * + * {{ example-8 }} + * + * # Date and time with one timezone + * + * {{ example-9 }} + * + * Example: example-1 + * + * + * Example: example-2 + * + * + * Example: example-3 + * + * + * Example: example-4 + * + * + * Example: example-5 + * + * + * Example: example-6 + * + * + * Example: example-7 + * + * + * Example: example-8 + * + * + * Example: example-9 + * + * + */ - // If it’s disabled or nothing inside is actively focused, re-focus the element. - if ( targetDisabled || activeElement && !$.contains( P.$root[0], activeElement ) ) { - ELEMENT.focus() - } - // If something is superficially changed, update the `highlight` based on the `nav`. - if ( targetData.nav && !targetDisabled ) { - P.set( 'highlight', P.component.item.highlight, { nav: targetData.nav } ) - } +define('mockup-patterns-pickadate',[ + 'jquery', + 'pat-base', + 'translate', + 'picker', + 'picker.date', + 'picker.time', + 'mockup-patterns-select2' +], function($, Base, _t) { + 'use strict'; - // If something is picked, set `select` then close with focus. - else if ( PickerConstructor._.isInteger( targetData.pick ) && !targetDisabled ) { - P.set( 'select', targetData.pick ).close( true ) - } + var PickADate = Base.extend({ + name: 'pickadate', + trigger: '.pat-pickadate', + parser: 'mockup', + defaults: { + separator: ' ', + date: { + selectYears: true, + selectMonths: true, + formatSubmit: 'yyyy-mm-dd', + format: 'yyyy-mm-dd', + clear: _t('Clear'), + close: _t('Close'), + today: _t('Today'), + labelMonthNext: _t('Next month'), + labelMonthPrev: _t('Previous month'), + labelMonthSelect: _t('Select a month'), + labelYearSelect: _t('Select a year') + }, + time: {}, + timezone: null, + classWrapperName: 'pattern-pickadate-wrapper', + classSeparatorName: 'pattern-pickadate-separator', + classDateName: 'pattern-pickadate-date', + classDateWrapperName: 'pattern-pickadate-date-wrapper', + classTimeName: 'pattern-pickadate-time', + classTimeWrapperName: 'pattern-pickadate-time-wrapper', + classTimezoneName: 'pattern-pickadate-timezone', + classTimezoneWrapperName: 'pattern-pickadate-timezone-wrapper', + classClearName: 'pattern-pickadate-clear', + placeholderDate: _t('Enter date...'), + placeholderTime: _t('Enter time...'), + placeholderTimezone: _t('Enter timezone...') + }, + isFalse: function(value) { + if (typeof(value) === 'string' && value === 'false') { + return false; + } + return value; + }, + init: function() { + var self = this, + value = self.$el.val().split(' '), + dateValue = value[0] || '', + timeValue = value[1] || ''; - // If a “clear” button is pressed, empty the values and close with focus. - else if ( targetData.clear ) { - P.clear().close( true ) - } - }) //P.$root + self.options.date = self.isFalse(self.options.date); + self.options.time = self.isFalse(self.options.time); - aria( P.$root[0], 'hidden', true ) - } + if (self.options.date === false) { + timeValue = value[0]; + } + self.$el.hide(); - /** - * Prepare the hidden input element along with all bindings. - */ - function prepareElementHidden() { + self.$wrapper = $('
    ') + .addClass(self.options.classWrapperName) + .insertAfter(self.$el); - var id = [ - typeof SETTINGS.hiddenPrefix == 'string' ? SETTINGS.hiddenPrefix : '', - typeof SETTINGS.hiddenSuffix == 'string' ? SETTINGS.hiddenSuffix : '_submit' - ] + if (self.options.date !== false) { + self.$date = $('') + .attr('placeholder', self.options.placeholderDate) + .attr('data-value', dateValue) + .addClass(self.options.classDateName) + .appendTo($('
    ') + .addClass(self.options.classDateWrapperName) + .appendTo(self.$wrapper)) + .pickadate($.extend(true, {}, self.options.date, { + onSet: function(e) { + if (e.select !== undefined) { + self.$date.attr('data-value', e.select); + if (self.options.time === false || + self.$time.attr('data-value') !== '') { + self.updateValue.call(self); + } + } + if (e.hasOwnProperty('clear')) { + self.$el.val(''); + self.$date.attr('data-value', ''); + } + } + })); + } - P._hidden = $( - '') + .addClass(self.options.classSeparatorName) + .html(self.options.separator === ' ' ? ' ' + : self.options.separator) + .appendTo(self.$wrapper); + } - // Create the name and ID by using the original - // input’s with a prefix and suffix. - 'name="' + id[0] + ELEMENT.name + id[1] + '"' + - 'id="' + id[0] + ELEMENT.id + id[1] + '"' + + if (self.options.time !== false) { + self.options.time.formatSubmit = 'HH:i'; + self.$time = $('') + .attr('placeholder', self.options.placeholderTime) + .attr('data-value', timeValue) + .addClass(self.options.classTimeName) + .appendTo($('
    ') + .addClass(self.options.classTimeWrapperName) + .appendTo(self.$wrapper)) + .pickatime($.extend(true, {}, self.options.time, { + onSet: function(e) { + if (e.select !== undefined) { + self.$time.attr('data-value', e.select); + if (self.options.date === false || + self.$date.attr('data-value') !== '') { + self.updateValue.call(self); + } + } + if (e.hasOwnProperty('clear')) { + self.$el.val(''); + self.$time.attr('data-value', ''); + } + } + })); - // If the element has a value, set the hidden value as well. - ( - $ELEMENT.data('value') || ELEMENT.value ? - ' value="' + P.get('select', SETTINGS.formatSubmit) + '"' : - '' - ) + - '>' - )[0] + // XXX: bug in pickatime + // work around pickadate bug loading 00:xx as value + if (typeof(timeValue) === 'string' && timeValue.substring(0,2) === '00') { + self.$time.pickatime('picker').set('select', timeValue.split(':')); + self.$time.attr('data-value', timeValue); + } + } - $ELEMENT. + if (self.options.date !== false && self.options.time !== false && self.options.timezone) { + self.$separator = $('') + .addClass(self.options.classSeparatorName) + .html(self.options.separator === ' ' ? ' ' + : self.options.separator) + .appendTo(self.$wrapper); + } - // If the value changes, update the hidden input with the correct format. - on('change.' + STATE.id, function() { - P._hidden.value = ELEMENT.value ? - P.get('select', SETTINGS.formatSubmit) : - '' - }). + if (self.options.timezone !== null) { + self.$timezone = $('') + .addClass(self.options.classTimezoneName) + .appendTo($('
    ') + .addClass(self.options.classTimezoneWrapperName) + .appendTo(self.$wrapper)) + .patternSelect2($.extend(true, + { + 'placeholder': self.options.placeholderTimezone, + 'width': '10em', + }, + self.options.timezone, + { 'multiple': false })) + .on('change', function(e) { + if (e.val !== undefined){ + self.$timezone.attr('data-value', e.val); + if ((self.options.date === false || self.$date.attr('data-value') !== '') && + (self.options.time === false || self.$time.attr('data-value') !== '')) { + self.updateValue.call(self); + } + } + }); + var defaultTimezone = self.options.timezone.default; + // if timezone has a default value included + if (defaultTimezone) { + var isInList; + // the timezone list contains the default value + self.options.timezone.data.some(function(obj) { + isInList = (obj.text === self.options.timezone.default) ? true : false; + return isInList; + }); + if (isInList) { + self.$timezone.attr('data-value', defaultTimezone); + self.$timezone.parent().find('.select2-chosen').text(defaultTimezone); + } + } + // if data contains only one timezone this value will be chosen + // and the timezone dropdown list will be disabled and + if (self.options.timezone.data.length === 1) { + self.$timezone.attr('data-value', self.options.timezone.data[0].text); + self.$timezone.parent().find('.select2-chosen').text(self.options.timezone.data[0].text); + self.$timezone.select2('enable', false); + } + } - // Insert the hidden input after the element. - after(P._hidden) - } + self.$clear = $('
    ') + .addClass(self.options.classClearName) + .appendTo(self.$wrapper); + }, + updateValue: function() { + var self = this, + value = ''; - // Separated for IE - function focusToOpen( event ) { + if (self.options.date !== false) { + var date = self.$date.data('pickadate').component, + dateValue = self.$date.data('pickadate').get('select'), + formatDate = date.formats.toString; + if (dateValue) { + value += formatDate.apply(date, [self.options.date.formatSubmit, dateValue]); + } + } - // Stop the event from propagating to the doc. - event.stopPropagation() + if (self.options.date !== false && self.options.time !== false) { + value += ' '; + } - // If it’s a focus event, add the “focused” class to the root. - if ( event.type == 'focus' ) { - P.$root.addClass( CLASSES.focused ) - aria( P.$root[0], 'selected', true ) + if (self.options.time !== false) { + var time = self.$time.data('pickatime').component, + timeValue = self.$time.data('pickatime').get('select'), + formatTime = time.formats.toString; + if (timeValue) { + value += formatTime.apply(time, ['HH:i', timeValue]); } + } - // And then finally open the picker. - P.open() - } + if (self.options.timezone !== null) { + var timezone = ' ' + self.$timezone.attr('data-value'); + if (timezone) { + value += timezone; + } + } + self.$el.val(value); - // Return a new picker instance. - return new PickerInstance() -} //PickerConstructor + self.emit('updated'); + } + }); + return PickADate; +}); +(function(root) { +define("jquery.tools.overlay", ["jquery"], function() { + return (function() { /** - * The default classes and prefix to use for the HTML classes. + * @license + * jQuery Tools @VERSION Overlay - Overlay base. Extend it. + * + * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE. + * + * http://flowplayer.org/tools/overlay/ + * + * Since: March 2008 + * Date: @DATE */ -PickerConstructor.klasses = function( prefix ) { - prefix = prefix || 'picker' - return { - - picker: prefix, - opened: prefix + '--opened', - focused: prefix + '--focused', +(function($) { - input: prefix + '__input', - active: prefix + '__input--active', - - holder: prefix + '__holder', + // static constructs + $.tools = $.tools || {version: '@VERSION'}; + + $.tools.overlay = { + + addEffect: function(name, loadFn, closeFn) { + effects[name] = [loadFn, closeFn]; + }, + + conf: { + close: null, + closeOnClick: true, + closeOnEsc: true, + closeSpeed: 'fast', + effect: 'default', + + // since 1.2. fixed positioning not supported by IE6 + fixed: !/msie/.test(navigator.userAgent.toLowerCase()) || navigator.appVersion > 6, + + left: 'center', + load: false, // 1.2 + mask: null, + oneInstance: true, + speed: 'normal', + target: null, // target element to be overlayed. by default taken from [rel] + top: '10%' + } + }; - frame: prefix + '__frame', - wrap: prefix + '__wrap', + + var instances = [], effects = {}; + + // the default effect. nice and easy! + $.tools.overlay.addEffect('default', + + /* + onLoad/onClose functions must be called otherwise none of the + user supplied callback methods won't be called + */ + function(pos, onLoad) { + + var conf = this.getConf(), + w = $(window); + + if (!conf.fixed) { + pos.top += w.scrollTop(); + pos.left += w.scrollLeft(); + } + + pos.position = conf.fixed ? 'fixed' : 'absolute'; + this.getOverlay().css(pos).fadeIn(conf.speed, onLoad); + + }, function(onClose) { + this.getOverlay().fadeOut(this.getConf().closeSpeed, onClose); + } + ); - box: prefix + '__box' - } -} //PickerConstructor.klasses + + function Overlay(trigger, conf) { + + // private variables + var self = this, + fire = trigger.add(self), + w = $(window), + closers, + overlay, + opened, + maskConf = $.tools.expose && (conf.mask || conf.expose), + uid = Math.random().toString().slice(10); + + + // mask configuration + if (maskConf) { + if (typeof maskConf == 'string') { maskConf = {color: maskConf}; } + maskConf.closeOnClick = maskConf.closeOnEsc = false; + } + + // get overlay and trigger + var jq = conf.target || trigger.attr("rel"); + overlay = jq ? $(jq) : null || trigger; + + // overlay not found. cannot continue + if (!overlay.length) { throw "Could not find Overlay: " + jq; } + + // trigger's click event + if (trigger && trigger.index(overlay) == -1) { + trigger.click(function(e) { + self.load(e); + return e.preventDefault(); + }); + } + + // API methods + $.extend(self, { + load: function(e) { + + // can be opened only once + if (self.isOpened()) { return self; } + + // find the effect + var eff = effects[conf.effect]; + if (!eff) { throw "Overlay: cannot find effect : \"" + conf.effect + "\""; } + + // close other instances? + if (conf.oneInstance) { + $.each(instances, function() { + this.close(e); + }); + } + + // onBeforeLoad + e = e || $.Event(); + e.type = "onBeforeLoad"; + fire.trigger(e); + if (e.isDefaultPrevented()) { return self; } + + // opened + opened = true; + + // possible mask effect + if (maskConf) { $(overlay).expose(maskConf); } + + // position & dimensions + var top = conf.top, + left = conf.left, + oWidth = overlay.outerWidth(true), + oHeight = overlay.outerHeight(true); + + if (typeof top == 'string') { + top = top == 'center' ? Math.max((w.height() - oHeight) / 2, 0) : + parseInt(top, 10) / 100 * w.height(); + } + + if (left == 'center') { left = Math.max((w.width() - oWidth) / 2, 0); } + + // load effect + eff[0].call(self, {top: top, left: left}, function() { + if (opened) { + e.type = "onLoad"; + fire.trigger(e); + } + }); -/** - * PickerConstructor helper methods. - */ -PickerConstructor._ = { + // mask.click closes overlay + if (maskConf && conf.closeOnClick) { + $.mask.getMask().one("click", self.close); + } + + // when window is clicked outside overlay, we close + if (conf.closeOnClick) { + $(document).on("click." + uid, function(e) { + if (!$(e.target).parents(overlay).length) { + self.close(e); + } + }); + } + + // keyboard::escape + if (conf.closeOnEsc) { + + // one callback is enough if multiple instances are loaded simultaneously + $(document).on("keydown." + uid, function(e) { + if (e.keyCode == 27) { + self.close(e); + } + }); + } - /** - * Create a group of nodes. Expects: - * ` - { - min: {Integer}, - max: {Integer}, - i: {Integer}, - node: {String}, - item: {Function} - } - * ` - */ - group: function( groupObject ) { + + return self; + }, + + close: function(e) { - var - // Scope for the looped object - loopObjectScope, + if (!self.isOpened()) { return self; } + + e = e || $.Event(); + e.type = "onBeforeClose"; + fire.trigger(e); + if (e.isDefaultPrevented()) { return; } + + opened = false; + + // close effect + effects[conf.effect][1].call(self, function() { + e.type = "onClose"; + fire.trigger(e); + }); + + // unbind the keyboard / clicking actions + $(document).off("click." + uid + " keydown." + uid); + + if (maskConf) { + $.mask.close(); + } + + return self; + }, + + getOverlay: function() { + return overlay; + }, + + getTrigger: function() { + return trigger; + }, + + getClosers: function() { + return closers; + }, - // Create the nodes list - nodesList = '', + isOpened: function() { + return opened; + }, + + // manipulate start, finish and speeds + getConf: function() { + return conf; + } + + }); + + // callbacks + $.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","), function(i, name) { + + // configuration + if ($.isFunction(conf[name])) { + $(self).on(name, conf[name]); + } - // The counter starts from the `min` - counter = PickerConstructor._.trigger( groupObject.min, groupObject ) + // API + self[name] = function(fn) { + if (fn) { $(self).on(name, fn); } + return self; + }; + }); + + // close button + closers = overlay.find(conf.close || ".close"); + + if (!closers.length && !conf.close) { + closers = $(''); + overlay.prepend(closers); + } + + closers.click(function(e) { + self.close(e); + }); + + // autoload + if (conf.load) { self.load(); } + + } + + // jQuery plugin initialization + $.fn.overlay = function(conf) { + + // already constructed --> return API + var el = this.data("overlay"); + if (el) { return el; } + + if ($.isFunction(conf)) { + conf = {onBeforeLoad: conf}; + } + conf = $.extend(true, {}, $.tools.overlay.conf, conf); + + this.each(function() { + el = new Overlay($(this), conf); + instances.push(el); + $(this).data("overlay", el); + }); + + return conf.api ? el: this; + }; + +})(jQuery); - // Loop from the `min` to `max`, incrementing by `i` - for ( ; counter <= PickerConstructor._.trigger( groupObject.max, groupObject, [ counter ] ); counter += groupObject.i ) { - // Trigger the `item` function within scope of the object - loopObjectScope = PickerConstructor._.trigger( groupObject.item, groupObject, [ counter ] ) - // Splice the subgroup and create nodes out of the sub nodes - nodesList += PickerConstructor._.node( - groupObject.node, - loopObjectScope[ 0 ], // the node - loopObjectScope[ 1 ], // the classes - loopObjectScope[ 2 ] // the attributes - ) - } +/** + * @license + * jQuery Tools @VERSION Scrollable - New wave UI design + * + * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE. + * + * http://flowplayer.org/tools/scrollable.html + * + * Since: March 2008 + * Date: @DATE + */ +(function($) { - // Return the list of nodes - return nodesList - }, //group + // static constructs + $.tools = $.tools || {version: '@VERSION'}; + + $.tools.scrollable = { + + conf: { + activeClass: 'active', + circular: false, + clonedClass: 'cloned', + disabledClass: 'disabled', + easing: 'swing', + initialIndex: 0, + item: '> *', + items: '.items', + keyboard: true, + mousewheel: false, + next: '.next', + prev: '.prev', + size: 1, + speed: 400, + vertical: false, + touch: true, + wheelSpeed: 0 + } + }; + + // get hidden element's width or height even though it's hidden + function dim(el, key) { + var v = parseInt(el.css(key), 10); + if (v) { return v; } + var s = el[0].currentStyle; + return s && s.width && parseInt(s.width, 10); + } + function find(root, query) { + var el = $(query); + return el.length < 2 ? el : root.parent().find(query); + } + + var current; + + // constructor + function Scrollable(root, conf) { + + // current instance + var self = this, + fire = root.add(self), + itemWrap = root.children(), + index = 0, + vertical = conf.vertical; + + if (!current) { current = self; } + if (itemWrap.length > 1) { itemWrap = $(conf.items, root); } + + + // in this version circular not supported when size > 1 + if (conf.size > 1) { conf.circular = false; } + + // methods + $.extend(self, { + + getConf: function() { + return conf; + }, + + getIndex: function() { + return index; + }, + + getSize: function() { + return self.getItems().size(); + }, - /** - * Create a dom node string - */ - node: function( wrapper, item, klass, attribute ) { + getNaviButtons: function() { + return prev.add(next); + }, + + getRoot: function() { + return root; + }, + + getItemWrap: function() { + return itemWrap; + }, + + getItems: function() { + return itemWrap.find(conf.item).not("." + conf.clonedClass); + }, + + move: function(offset, time) { + return self.seekTo(index + offset, time); + }, + + next: function(time) { + return self.move(conf.size, time); + }, + + prev: function(time) { + return self.move(-conf.size, time); + }, + + begin: function(time) { + return self.seekTo(0, time); + }, + + end: function(time) { + return self.seekTo(self.getSize() -1, time); + }, + + focus: function() { + current = self; + return self; + }, + + addItem: function(item) { + item = $(item); + + if (!conf.circular) { + itemWrap.append(item); + next.removeClass("disabled"); + + } else { + itemWrap.children().last().before(item); + itemWrap.children().first().replaceWith(item.clone().addClass(conf.clonedClass)); + } + + fire.trigger("onAddItem", [item]); + return self; + }, + + + /* all seeking functions depend on this */ + seekTo: function(i, time, fn) { + + // ensure numeric index + if (!i.jquery) { i *= 1; } + + // avoid seeking from end clone to the beginning + if (conf.circular && i === 0 && index == -1 && time !== 0) { return self; } + + // check that index is sane + if (!conf.circular && i < 0 || i > self.getSize() || i < -1) { return self; } + + var item = i; + + if (i.jquery) { + i = self.getItems().index(i); + + } else { + item = self.getItems().eq(i); + } + + // onBeforeSeek + var e = $.Event("onBeforeSeek"); + if (!fn) { + fire.trigger(e, [i, time]); + if (e.isDefaultPrevented() || !item.length) { return self; } + } + + var props = vertical ? {top: -item.position().top} : {left: -item.position().left}; + + index = i; + current = self; + if (time === undefined) { time = conf.speed; } + + itemWrap.animate(props, time, conf.easing, fn || function() { + fire.trigger("onSeek", [i]); + }); + + return self; + } + + }); + + // callbacks + $.each(['onBeforeSeek', 'onSeek', 'onAddItem'], function(i, name) { + + // configuration + if ($.isFunction(conf[name])) { + $(self).on(name, conf[name]); + } + + self[name] = function(fn) { + if (fn) { $(self).on(name, fn); } + return self; + }; + }); + + // circular loop + if (conf.circular) { + + var cloned1 = self.getItems().slice(-1).clone().prependTo(itemWrap), + cloned2 = self.getItems().eq(1).clone().appendTo(itemWrap); + + cloned1.add(cloned2).addClass(conf.clonedClass); + + self.onBeforeSeek(function(e, i, time) { + + if (e.isDefaultPrevented()) { return; } + + /* + 1. animate to the clone without event triggering + 2. seek to correct position with 0 speed + */ + if (i == -1) { + self.seekTo(cloned1, time, function() { + self.end(0); + }); + return e.preventDefault(); + + } else if (i == self.getSize()) { + self.seekTo(cloned2, time, function() { + self.begin(0); + }); + } + + }); - // If the item is false-y, just return an empty string - if ( !item ) return '' + // seek over the cloned item - // If the item is an array, do a join - item = $.isArray( item ) ? item.join( '' ) : item + // if the scrollable is hidden the calculations for seekTo position + // will be incorrect (eg, if the scrollable is inside an overlay). + // ensure the elements are shown, calculate the correct position, + // then re-hide the elements. This must be done synchronously to + // prevent the hidden elements being shown to the user. - // Check for the class - klass = klass ? ' class="' + klass + '"' : '' + // See: https://github.com/jquerytools/jquerytools/issues#issue/87 - // Check for any attributes - attribute = attribute ? ' ' + attribute : '' + var hidden_parents = root.parents().add(root).filter(function () { + if ($(this).css('display') === 'none') { + return true; + } + }); + if (hidden_parents.length) { + hidden_parents.show(); + self.seekTo(0, 0, function() {}); + hidden_parents.hide(); + } + else { + self.seekTo(0, 0, function() {}); + } - // Return the wrapped item - return '<' + wrapper + klass + attribute + '>' + item + '' - }, //node + } + + // next/prev buttons + var prev = find(root, conf.prev).click(function(e) { e.stopPropagation(); self.prev(); }), + next = find(root, conf.next).click(function(e) { e.stopPropagation(); self.next(); }); + + if (!conf.circular) { + self.onBeforeSeek(function(e, i) { + setTimeout(function() { + if (!e.isDefaultPrevented()) { + prev.toggleClass(conf.disabledClass, i <= 0); + next.toggleClass(conf.disabledClass, i >= self.getSize() -1); + } + }, 1); + }); + + if (!conf.initialIndex) { + prev.addClass(conf.disabledClass); + } + } + + if (self.getSize() < 2) { + prev.add(next).addClass(conf.disabledClass); + } + + // mousewheel support + if (conf.mousewheel && $.fn.mousewheel) { + root.mousewheel(function(e, delta) { + if (conf.mousewheel) { + self.move(delta < 0 ? 1 : -1, conf.wheelSpeed || 50); + return false; + } + }); + } + + // touch event + if (conf.touch) { + var touch = {}; + + itemWrap[0].ontouchstart = function(e) { + var t = e.touches[0]; + touch.x = t.clientX; + touch.y = t.clientY; + }; + + itemWrap[0].ontouchmove = function(e) { + + // only deal with one finger + if (e.touches.length == 1 && !itemWrap.is(":animated")) { + var t = e.touches[0], + deltaX = touch.x - t.clientX, + deltaY = touch.y - t.clientY; + + self[vertical && deltaY > 0 || !vertical && deltaX > 0 ? 'next' : 'prev'](); + e.preventDefault(); + } + }; + } + + if (conf.keyboard) { + + $(document).on("keydown.scrollable", function(evt) { + // skip certain conditions + if (!conf.keyboard || evt.altKey || evt.ctrlKey || evt.metaKey || $(evt.target).is(":input")) { + return; + } + + // does this instance have focus? + if (conf.keyboard != 'static' && current != self) { return; } + + var key = evt.keyCode; + + if (vertical && (key == 38 || key == 40)) { + self.move(key == 38 ? -1 : 1); + return evt.preventDefault(); + } + + if (!vertical && (key == 37 || key == 39)) { + self.move(key == 37 ? -1 : 1); + return evt.preventDefault(); + } + + }); + } + + // initial index + if (conf.initialIndex) { + self.seekTo(conf.initialIndex, 0, function() {}); + } + } - /** - * Lead numbers below 10 with a zero. - */ - lead: function( number ) { - return ( number < 10 ? '0': '' ) + number - }, + + // jQuery plugin implementation + $.fn.scrollable = function(conf) { + + // already constructed --> return API + var el = this.data("scrollable"); + if (el) { return el; } + + conf = $.extend({}, $.tools.scrollable.conf, conf); + + this.each(function() { + el = new Scrollable($(this), conf); + $(this).data("scrollable", el); + }); + + return conf.api ? el: this; + + }; + + +})(jQuery); - /** - * Trigger a function otherwise return the value. - */ - trigger: function( callback, scope, args ) { - return typeof callback == 'function' ? callback.apply( scope, args || [] ) : callback - }, +/** + * @license + * jQuery Tools @VERSION Tabs- The basics of UI design. + * + * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE. + * + * http://flowplayer.org/tools/tabs/ + * + * Since: November 2008 + * Date: @DATE + */ +(function($) { + + // static constructs + $.tools = $.tools || {version: '@VERSION'}; + + $.tools.tabs = { + + conf: { + tabs: 'a', + current: 'current', + onBeforeClick: null, + onClick: null, + effect: 'default', + initialEffect: false, // whether or not to show effect in first init of tabs + initialIndex: 0, + event: 'click', + rotate: false, + + // slide effect + slideUpSpeed: 400, + slideDownSpeed: 400, + + // 1.2 + history: false + }, + + addEffect: function(name, fn) { + effects[name] = fn; + } + + }; + + var effects = { + + // simple "toggle" effect + 'default': function(i, done) { + this.getPanes().hide().eq(i).show(); + done.call(); + }, + + /* + configuration: + - fadeOutSpeed (positive value does "crossfading") + - fadeInSpeed + */ + fade: function(i, done) { + + var conf = this.getConf(), + speed = conf.fadeOutSpeed, + panes = this.getPanes(); + + if (speed) { + panes.fadeOut(speed); + } else { + panes.hide(); + } + panes.eq(i).fadeIn(conf.fadeInSpeed, done); + }, + + // for basic accordions + slide: function(i, done) { + var conf = this.getConf(); + + this.getPanes().slideUp(conf.slideUpSpeed); + this.getPanes().eq(i).slideDown(conf.slideDownSpeed, done); + }, - /** - * If the second character is a digit, length is 2 otherwise 1. - */ - digits: function( string ) { - return ( /\d/ ).test( string[ 1 ] ) ? 2 : 1 - }, + /** + * AJAX effect + */ + ajax: function(i, done) { + this.getPanes().eq(0).load(this.getTabs().eq(i).attr("href"), done); + } + }; + + /** + * Horizontal accordion + * + * @deprecated will be replaced with a more robust implementation + */ + + var + /** + * @type {Boolean} + * + * Mutex to control horizontal animation + * Disables clicking of tabs while animating + * They mess up otherwise as currentPane gets set *after* animation is done + */ + animating, + /** + * @type {Number} + * + * Initial width of tab panes + */ + w; + + $.tools.tabs.addEffect("horizontal", function(i, done) { + if (animating) return; // don't allow other animations + + var nextPane = this.getPanes().eq(i), + currentPane = this.getCurrentPane(); + + // store original width of a pane into memory + w || ( w = this.getPanes().eq(0).width() ); + animating = true; + + nextPane.show(); // hidden by default + + // animate current pane's width to zero + // animate next pane's width at the same time for smooth animation + currentPane.animate({width: 0}, { + step: function(now){ + nextPane.css("width", w-now); + }, + complete: function(){ + $(this).hide(); + done.call(); + animating = false; + } + }); + // Dirty hack... onLoad, currentPant will be empty and nextPane will be the first pane + // If this is the case, manually run callback since the animation never occured, and reset animating + if (!currentPane.length){ + done.call(); + animating = false; + } + }); + + function Tabs(root, paneSelector, conf) { + + var self = this, + trigger = root.add(this), + tabs = root.find(conf.tabs), + panes = paneSelector.jquery ? paneSelector : root.children(paneSelector), + current; + + + // make sure tabs and panes are found + if (!tabs.length) { tabs = root.children(); } + if (!panes.length) { panes = root.parent().find(paneSelector); } + if (!panes.length) { panes = $(paneSelector); } + + + // public methods + $.extend(this, { + click: function(i, e) { + + var tab = tabs.eq(i), + firstRender = !root.data('tabs'); + + if (typeof i == 'string' && i.replace("#", "")) { + tab = tabs.filter("[href*=\"" + i.replace("#", "") + "\"]"); + i = Math.max(tabs.index(tab), 0); + } + + if (conf.rotate) { + var last = tabs.length -1; + if (i < 0) { return self.click(last, e); } + if (i > last) { return self.click(0, e); } + } + + if (!tab.length) { + if (current >= 0) { return self; } + i = conf.initialIndex; + tab = tabs.eq(i); + } + + // current tab is being clicked + if (i === current) { return self; } + + // possibility to cancel click action + e = e || $.Event(); + e.type = "onBeforeClick"; + trigger.trigger(e, [i]); + if (e.isDefaultPrevented()) { return; } + + // if firstRender, only run effect if initialEffect is set, otherwise default + var effect = firstRender ? conf.initialEffect && conf.effect || 'default' : conf.effect; + + // call the effect + effects[effect].call(self, i, function() { + current = i; + // onClick callback + e.type = "onClick"; + trigger.trigger(e, [i]); + }); + + // default behaviour + tabs.removeClass(conf.current); + tab.addClass(conf.current); + + return self; + }, + + getConf: function() { + return conf; + }, - /** - * Tell if something is a date object. - */ - isDate: function( value ) { - return {}.toString.call( value ).indexOf( 'Date' ) > -1 && this.isInteger( value.getDate() ) - }, + getTabs: function() { + return tabs; + }, + + getPanes: function() { + return panes; + }, + + getCurrentPane: function() { + return panes.eq(current); + }, + + getCurrentTab: function() { + return tabs.eq(current); + }, + + getIndex: function() { + return current; + }, + + next: function() { + return self.click(current + 1); + }, + + prev: function() { + return self.click(current - 1); + }, + + destroy: function() { + tabs.off(conf.event).removeClass(conf.current); + panes.find("a[href^=\"#\"]").off("click.T"); + return self; + } + + }); + // callbacks + $.each("onBeforeClick,onClick".split(","), function(i, name) { + + // configuration + if ($.isFunction(conf[name])) { + $(self).on(name, conf[name]); + } - /** - * Tell if something is an integer. - */ - isInteger: function( value ) { - return {}.toString.call( value ).indexOf( 'Number' ) > -1 && value % 1 === 0 - }, + // API + self[name] = function(fn) { + if (fn) { $(self).on(name, fn); } + return self; + }; + }); + + + if (conf.history && $.fn.history) { + $.tools.history.init(tabs); + conf.event = 'history'; + } + + // setup click actions for each tab + tabs.each(function(i) { + $(this).on(conf.event, function(e) { + self.click(i, e); + return e.preventDefault(); + }); + }); + + // cross tab anchor link + panes.find("a[href^=\"#\"]").on("click.T", function(e) { + self.click($(this).attr("href"), e); + }); + + // open initial tab + if (location.hash && conf.tabs == "a" && root.find("[href=\"" +location.hash+ "\"]").length) { + self.click(location.hash); + } else { + if (conf.initialIndex === 0 || conf.initialIndex > 0) { + self.click(conf.initialIndex); + } + } + + } + + + // jQuery plugin implementation + $.fn.tabs = function(paneSelector, conf) { + + // return existing instance + var el = this.data("tabs"); + if (el) { + el.destroy(); + this.removeData("tabs"); + } + + if ($.isFunction(conf)) { + conf = {onBeforeClick: conf}; + } + + // setup conf + conf = $.extend({}, $.tools.tabs.conf, conf); + + + this.each(function() { + el = new Tabs($(this), paneSelector, conf); + $(this).data("tabs", el); + }); + + return conf.api ? el: this; + }; + +}) (jQuery); - /** - * Create ARIA attribute strings. - */ - ariaAttr: ariaAttr -} //PickerConstructor._ /** - * Extend the picker with a component and defaults. + * @license + * jQuery Tools @VERSION History "Back button for AJAX apps" + * + * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE. + * + * http://flowplayer.org/tools/toolbox/history.html + * + * Since: Mar 2010 + * Date: @DATE */ -PickerConstructor.extend = function( name, Component ) { +(function($) { + + var hash, iframe, links, inited; + + $.tools = $.tools || {version: '@VERSION'}; + + $.tools.history = { + + init: function(els) { + + if (inited) { return; } + + // IE + if ($.browser.msie && $.browser.version < '8') { + + // create iframe that is constantly checked for hash changes + if (!iframe) { + iframe = $("'; + } - // Set x position - if (newRect.x !== undef) { - curRect.x = newRect.x; - } + if (typeof html == "undefined") { + html = layout.renderHtml(self); + } - // Set y position - if (newRect.y !== undef) { - curRect.y = newRect.y; - } + if (self.statusbar) { + footerHtml = self.statusbar.renderHtml(); + } - // Set minW - if (newRect.minW !== undef) { - curRect.minW = newRect.minW; - } + return ( + '
    ' + + '
    ' + + headerHtml + + '
    ' + + html + + '
    ' + + footerHtml + + '
    ' + + '
    ' + ); + }, - // Set minH - if (newRect.minH !== undef) { - curRect.minH = newRect.minH; - } + /** + * Switches the window fullscreen mode. + * + * @method fullscreen + * @param {Boolean} state True/false state. + * @return {tinymce.ui.Window} Current window instance. + */ + fullscreen: function(state) { + var self = this, documentElement = document.documentElement, slowRendering, prefix = self.classPrefix, layoutRect; - // Set new width and calculate inner width - size = newRect.w; - if (size !== undef) { - size = size < curRect.minW ? curRect.minW : size; - size = size > curRect.maxW ? curRect.maxW : size; - curRect.w = size; - curRect.innerW = size - deltaWidth; - } + if (state != self._fullscreen) { + $(window).on('resize', function() { + var time; - // Set new height and calculate inner height - size = newRect.h; - if (size !== undef) { - size = size < curRect.minH ? curRect.minH : size; - size = size > curRect.maxH ? curRect.maxH : size; - curRect.h = size; - curRect.innerH = size - deltaHeight; - } + if (self._fullscreen) { + // Time the layout time if it's to slow use a timeout to not hog the CPU + if (!slowRendering) { + time = new Date().getTime(); - // Set new inner width and calculate width - size = newRect.innerW; - if (size !== undef) { - size = size < curRect.minW - deltaWidth ? curRect.minW - deltaWidth : size; - size = size > curRect.maxW - deltaWidth ? curRect.maxW - deltaWidth : size; - curRect.innerW = size; - curRect.w = size + deltaWidth; - } + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); - // Set new height and calculate inner height - size = newRect.innerH; - if (size !== undef) { - size = size < curRect.minH - deltaHeight ? curRect.minH - deltaHeight : size; - size = size > curRect.maxH - deltaHeight ? curRect.maxH - deltaHeight : size; - curRect.innerH = size; - curRect.h = size + deltaHeight; - } + if ((new Date().getTime()) - time > 50) { + slowRendering = true; + } + } else { + if (!self._timer) { + self._timer = Delay.setTimeout(function() { + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); - // Set new contentW - if (newRect.contentW !== undef) { - curRect.contentW = newRect.contentW; - } + self._timer = 0; + }, 50); + } + } + } + }); - // Set new contentH - if (newRect.contentH !== undef) { - curRect.contentH = newRect.contentH; - } + layoutRect = self.layoutRect(); + self._fullscreen = state; - // Compare last layout rect with the current one to see if we need to repaint or not - lastLayoutRect = self._lastLayoutRect; - if (lastLayoutRect.x !== curRect.x || lastLayoutRect.y !== curRect.y || - lastLayoutRect.w !== curRect.w || lastLayoutRect.h !== curRect.h) { - repaintControls = Control.repaintControls; + if (!state) { + self.borderBox = BoxUtils.parseBox(self.settings.border); + self.getEl('head').style.display = ''; + layoutRect.deltaH += layoutRect.headerH; + $([documentElement, document.body]).removeClass(prefix + 'fullscreen'); + self.classes.remove('fullscreen'); + self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h); + } else { + self._initial = {x: layoutRect.x, y: layoutRect.y, w: layoutRect.w, h: layoutRect.h}; - if (repaintControls) { - if (repaintControls.map && !repaintControls.map[self._id]) { - repaintControls.push(self); - repaintControls.map[self._id] = true; - } - } + self.borderBox = BoxUtils.parseBox('0'); + self.getEl('head').style.display = 'none'; + layoutRect.deltaH -= layoutRect.headerH + 2; + $([documentElement, document.body]).addClass(prefix + 'fullscreen'); + self.classes.add('fullscreen'); - lastLayoutRect.x = curRect.x; - lastLayoutRect.y = curRect.y; - lastLayoutRect.w = curRect.w; - lastLayoutRect.h = curRect.h; + var rect = DomUtils.getWindowSize(); + self.moveTo(0, 0).resizeTo(rect.w, rect.h); } - - return self; } - return curRect; + return self.reflow(); }, /** - * Repaints the control after a layout operation. + * Called after the control has been rendered. * - * @method repaint + * @method postRender */ - repaint: function() { - var self = this, style, bodyStyle, rect, borderBox, borderW = 0, borderH = 0, lastRepaintRect, round; - - // Use Math.round on all values on IE < 9 - round = !document.createRange ? Math.round : function(value) { - return value; - }; - - style = self.getEl().style; - rect = self._layoutRect; - lastRepaintRect = self._lastRepaintRect || {}; + postRender: function() { + var self = this, startPos; - borderBox = self._borderBox; - borderW = borderBox.left + borderBox.right; - borderH = borderBox.top + borderBox.bottom; + setTimeout(function() { + self.classes.add('in'); + }, 0); - if (rect.x !== lastRepaintRect.x) { - style.left = round(rect.x) + 'px'; - lastRepaintRect.x = rect.x; - } + self._super(); - if (rect.y !== lastRepaintRect.y) { - style.top = round(rect.y) + 'px'; - lastRepaintRect.y = rect.y; + if (self.statusbar) { + self.statusbar.postRender(); } - if (rect.w !== lastRepaintRect.w) { - style.width = round(rect.w - borderW) + 'px'; - lastRepaintRect.w = rect.w; - } + self.focus(); - if (rect.h !== lastRepaintRect.h) { - style.height = round(rect.h - borderH) + 'px'; - lastRepaintRect.h = rect.h; - } + this.dragHelper = new DragHelper(self._id + '-dragh', { + start: function() { + startPos = { + x: self.layoutRect().x, + y: self.layoutRect().y + }; + }, - // Update body if needed - if (self._hasBody && rect.innerW !== lastRepaintRect.innerW) { - bodyStyle = self.getEl('body').style; - bodyStyle.width = round(rect.innerW) + 'px'; - lastRepaintRect.innerW = rect.innerW; - } + drag: function(e) { + self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY); + } + }); - if (self._hasBody && rect.innerH !== lastRepaintRect.innerH) { - bodyStyle = bodyStyle || self.getEl('body').style; - bodyStyle.height = round(rect.innerH) + 'px'; - lastRepaintRect.innerH = rect.innerH; - } + self.on('submit', function(e) { + if (!e.isDefaultPrevented()) { + self.close(); + } + }); - self._lastRepaintRect = lastRepaintRect; - self.fire('repaint', {}, false); + windows.push(self); + toggleFullScreenState(true); }, /** - * Binds a callback to the specified event. This event can both be - * native browser events like "click" or custom ones like PostRender. - * - * The callback function will be passed a DOM event like object that enables yout do stop propagation. + * Fires a submit event with the serialized form. * - * @method on - * @param {String} name Name of the event to bind. For example "click". - * @param {String/function} callback Callback function to execute ones the event occurs. - * @return {tinymce.ui.Control} Current control object. + * @method submit + * @return {Object} Event arguments object. */ - on: function(name, callback) { - var self = this; - - function resolveCallbackName(name) { - var callback, scope; - - if (typeof(name) != 'string') { - return name; - } + submit: function() { + return this.fire('submit', {data: this.toJSON()}); + }, - return function(e) { - if (!callback) { - self.parentsAndSelf().each(function(ctrl) { - var callbacks = ctrl.settings.callbacks; + /** + * Removes the current control from DOM and from UI collections. + * + * @method remove + * @return {tinymce.ui.Control} Current control instance. + */ + remove: function() { + var self = this, i; - if (callbacks && (callback = callbacks[name])) { - scope = ctrl; - return false; - } - }); - } + self.dragHelper.destroy(); + self._super(); - return callback.call(scope, e); - }; + if (self.statusbar) { + this.statusbar.remove(); } - getEventDispatcher(self).on(name, resolveCallbackName(callback)); + i = windows.length; + while (i--) { + if (windows[i] === self) { + windows.splice(i, 1); + } + } - return self; + toggleFullScreenState(windows.length > 0); + toggleBodyFullScreenClasses(self.classPrefix); }, /** - * Unbinds the specified event and optionally a specific callback. If you omit the name - * parameter all event handlers will be removed. If you omit the callback all event handles - * by the specified name will be removed. + * Returns the contentWindow object of the iframe if it exists. * - * @method off - * @param {String} [name] Name for the event to unbind. - * @param {function} [callback] Callback function to unbind. - * @return {mxex.ui.Control} Current control object. + * @method getContentWindow + * @return {Window} window object or null. */ - off: function(name, callback) { - getEventDispatcher(this).off(name, callback); - return this; - }, + getContentWindow: function() { + var ifr = this.getEl().getElementsByTagName('iframe')[0]; + return ifr ? ifr.contentWindow : null; + } + }); + + if (!Env.desktop) { + handleWindowResize(); + } + + return Window; +}); + +// Included from: js/tinymce/classes/ui/MessageBox.js + +/** + * MessageBox.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class is used to create MessageBoxes like alerts/confirms etc. + * + * @class tinymce.ui.MessageBox + * @extends tinymce.ui.FloatPanel + */ +define("tinymce/ui/MessageBox", [ + "tinymce/ui/Window" +], function(Window) { + "use strict"; + var MessageBox = Window.extend({ /** - * Fires the specified event by name and arguments on the control. This will execute all - * bound event handlers. + * Constructs a instance with the specified settings. * - * @method fire - * @param {String} name Name of the event to fire. - * @param {Object} [args] Arguments to pass to the event. - * @param {Boolean} [bubble] Value to control bubbeling. Defaults to true. - * @return {Object} Current arguments object. + * @constructor + * @param {Object} settings Name/value object with settings. */ - fire: function(name, args, bubble) { - var self = this; + init: function(settings) { + settings = { + border: 1, + padding: 20, + layout: 'flex', + pack: "center", + align: "center", + containerCls: 'panel', + autoScroll: true, + buttons: {type: "button", text: "Ok", action: "ok"}, + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200 + } + }; - args = args || {}; + this._super(settings); + }, + + Statics: { + /** + * Ok buttons constant. + * + * @static + * @final + * @field {Number} OK + */ + OK: 1, + + /** + * Ok/cancel buttons constant. + * + * @static + * @final + * @field {Number} OK_CANCEL + */ + OK_CANCEL: 2, + + /** + * yes/no buttons constant. + * + * @static + * @final + * @field {Number} YES_NO + */ + YES_NO: 3, - if (!args.control) { - args.control = self; - } + /** + * yes/no/cancel buttons constant. + * + * @static + * @final + * @field {Number} YES_NO_CANCEL + */ + YES_NO_CANCEL: 4, - args = getEventDispatcher(self).fire(name, args); + /** + * Constructs a new message box and renders it to the body element. + * + * @static + * @method msgBox + * @param {Object} settings Name/value object with settings. + */ + msgBox: function(settings) { + var buttons, callback = settings.callback || function() {}; - // Bubble event up to parents - if (bubble !== false && self.parent) { - var parent = self.parent(); - while (parent && !args.isPropagationStopped()) { - parent.fire(name, args, false); - parent = parent.parent(); + function createButton(text, status, primary) { + return { + type: "button", + text: text, + subtype: primary ? 'primary' : '', + onClick: function(e) { + e.control.parents()[1].close(); + callback(status); + } + }; } - } - - return args; - }, - /** - * Returns true/false if the specified event has any listeners. - * - * @method hasEventListeners - * @param {String} name Name of the event to check for. - * @return {Boolean} True/false state if the event has listeners. - */ - hasEventListeners: function(name) { - return getEventDispatcher(this).has(name); - }, + switch (settings.buttons) { + case MessageBox.OK_CANCEL: + buttons = [ + createButton('Ok', true, true), + createButton('Cancel', false) + ]; + break; - /** - * Returns a control collection with all parent controls. - * - * @method parents - * @param {String} selector Optional selector expression to find parents. - * @return {tinymce.ui.Collection} Collection with all parent controls. - */ - parents: function(selector) { - var self = this, ctrl, parents = new Collection(); + case MessageBox.YES_NO: + case MessageBox.YES_NO_CANCEL: + buttons = [ + createButton('Yes', 1, true), + createButton('No', 0) + ]; - // Add each parent to collection - for (ctrl = self.parent(); ctrl; ctrl = ctrl.parent()) { - parents.add(ctrl); - } + if (settings.buttons == MessageBox.YES_NO_CANCEL) { + buttons.push(createButton('Cancel', -1)); + } + break; - // Filter away everything that doesn't match the selector - if (selector) { - parents = parents.filter(selector); - } + default: + buttons = [ + createButton('Ok', true, true) + ]; + break; + } - return parents; - }, + return new Window({ + padding: 20, + x: settings.x, + y: settings.y, + minWidth: 300, + minHeight: 100, + layout: "flex", + pack: "center", + align: "center", + buttons: buttons, + title: settings.title, + role: 'alertdialog', + items: { + type: "label", + multiline: true, + maxWidth: 500, + maxHeight: 200, + text: settings.text + }, + onPostRender: function() { + this.aria('describedby', this.items()[0]._id); + }, + onClose: settings.onClose, + onCancel: function() { + callback(false); + } + }).renderTo(document.body).reflow(); + }, - /** - * Returns the current control and it's parents. - * - * @method parentsAndSelf - * @param {String} selector Optional selector expression to find parents. - * @return {tinymce.ui.Collection} Collection with all parent controls. - */ - parentsAndSelf: function(selector) { - return new Collection(this).add(this.parents(selector)); - }, + /** + * Creates a new alert dialog. + * + * @method alert + * @param {Object} settings Settings for the alert dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + alert: function(settings, callback) { + if (typeof settings == "string") { + settings = {text: settings}; + } - /** - * Returns the control next to the current control. - * - * @method next - * @return {tinymce.ui.Control} Next control instance. - */ - next: function() { - var parentControls = this.parent().items(); + settings.callback = callback; + return MessageBox.msgBox(settings); + }, - return parentControls[parentControls.indexOf(this) + 1]; - }, + /** + * Creates a new confirm dialog. + * + * @method confirm + * @param {Object} settings Settings for the confirm dialog. + * @param {function} [callback] Callback to execute when the user makes a choice. + */ + confirm: function(settings, callback) { + if (typeof settings == "string") { + settings = {text: settings}; + } - /** - * Returns the control previous to the current control. - * - * @method prev - * @return {tinymce.ui.Control} Previous control instance. - */ - prev: function() { - var parentControls = this.parent().items(); + settings.callback = callback; + settings.buttons = MessageBox.OK_CANCEL; - return parentControls[parentControls.indexOf(this) - 1]; - }, + return MessageBox.msgBox(settings); + } + } + }); - /** - * Find the common ancestor for two control instances. - * - * @method findCommonAncestor - * @param {tinymce.ui.Control} ctrl1 First control. - * @param {tinymce.ui.Control} ctrl2 Second control. - * @return {tinymce.ui.Control} Ancestor control instance. - */ - findCommonAncestor: function(ctrl1, ctrl2) { - var parentCtrl; + return MessageBox; +}); - while (ctrl1) { - parentCtrl = ctrl2; +// Included from: js/tinymce/classes/WindowManager.js - while (parentCtrl && ctrl1 != parentCtrl) { - parentCtrl = parentCtrl.parent(); - } +/** + * WindowManager.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - if (ctrl1 == parentCtrl) { - break; - } +/** + * This class handles the creation of native windows and dialogs. This class can be extended to provide for example inline dialogs. + * + * @class tinymce.WindowManager + * @example + * // Opens a new dialog with the file.htm file and the size 320x240 + * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. + * tinymce.activeEditor.windowManager.open({ + * url: 'file.htm', + * width: 320, + * height: 240 + * }, { + * custom_param: 1 + * }); + * + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); + * + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); + */ +define("tinymce/WindowManager", [ + "tinymce/ui/Window", + "tinymce/ui/MessageBox" +], function(Window, MessageBox) { + return function(editor) { + var self = this, windows = []; - ctrl1 = ctrl1.parent(); + function getTopMostWindow() { + if (windows.length) { + return windows[windows.length - 1]; } + } - return ctrl1; - }, + function fireOpenEvent(win) { + editor.fire('OpenWindow', { + win: win + }); + } - /** - * Returns true/false if the specific control has the specific class. - * - * @method hasClass - * @param {String} cls Class to check for. - * @param {String} [group] Sub element group name. - * @return {Boolean} True/false if the control has the specified class. - */ - hasClass: function(cls, group) { - var classes = this._classes[group || 'control']; + function fireCloseEvent(win) { + editor.fire('CloseWindow', { + win: win + }); + } - cls = this.classPrefix + cls; + self.windows = windows; - return classes && !!classes.map[cls]; - }, + editor.on('remove', function() { + var i = windows.length; + + while (i--) { + windows[i].close(); + } + }); /** - * Adds the specified class to the control + * Opens a new window. * - * @method addClass - * @param {String} cls Class to check for. - * @param {String} [group] Sub element group name. - * @return {tinymce.ui.Control} Current control object. + * @method open + * @param {Object} args Optional name/value settings collection contains things like width/height/url etc. + * @param {Object} params Options like title, file, width, height etc. + * @option {String} title Window title. + * @option {String} file URL of the file to open in the window. + * @option {Number} width Width in pixels. + * @option {Number} height Height in pixels. + * @option {Boolean} autoScroll Specifies whether the popup window can have scrollbars if required (i.e. content + * larger than the popup size specified). */ - addClass: function(cls, group) { - var self = this, classes, elm; + self.open = function(args, params) { + var win; + + editor.editorManager.setActive(editor); - cls = this.classPrefix + cls; - classes = self._classes[group || 'control']; + args.title = args.title || ' '; - if (!classes) { - classes = []; - classes.map = {}; - self._classes[group || 'control'] = classes; + // Handle URL + args.url = args.url || args.file; // Legacy + if (args.url) { + args.width = parseInt(args.width || 320, 10); + args.height = parseInt(args.height || 240, 10); } - if (!classes.map[cls]) { - classes.map[cls] = cls; - classes.push(cls); + // Handle body + if (args.body) { + args.items = { + defaults: args.defaults, + type: args.bodyType || 'form', + items: args.body + }; + } - if (self._rendered) { - elm = self.getEl(group); + if (!args.url && !args.buttons) { + args.buttons = [ + {text: 'Ok', subtype: 'primary', onclick: function() { + win.find('form')[0].submit(); + }}, - if (elm) { - elm.className = classes.join(' '); - } - } + {text: 'Cancel', onclick: function() { + win.close(); + }} + ]; } - return self; - }, - - /** - * Removes the specified class from the control. - * - * @method removeClass - * @param {String} cls Class to remove. - * @param {String} [group] Sub element group name. - * @return {tinymce.ui.Control} Current control object. - */ - removeClass: function(cls, group) { - var self = this, classes, i, elm; + win = new Window(args); + windows.push(win); - cls = this.classPrefix + cls; - classes = self._classes[group || 'control']; - if (classes && classes.map[cls]) { - delete classes.map[cls]; + win.on('close', function() { + var i = windows.length; - i = classes.length; while (i--) { - if (classes[i] === cls) { - classes.splice(i, 1); + if (windows[i] === win) { + windows.splice(i, 1); } } - } - - if (self._rendered) { - elm = self.getEl(group); - if (elm) { - elm.className = classes.join(' '); + if (!windows.length) { + editor.focus(); } - } - return self; - }, + fireCloseEvent(win); + }); - /** - * Toggles the specified class on the control. - * - * @method toggleClass - * @param {String} cls Class to remove. - * @param {Boolean} state True/false state to add/remove class. - * @param {String} [group] Sub element group name. - * @return {tinymce.ui.Control} Current control object. - */ - toggleClass: function(cls, state, group) { - var self = this; + // Handle data + if (args.data) { + win.on('postRender', function() { + this.find('*').each(function(ctrl) { + var name = ctrl.name(); - if (state) { - self.addClass(cls, group); - } else { - self.removeClass(cls, group); + if (name in args.data) { + ctrl.value(args.data[name]); + } + }); + }); } - return self; - }, + // store args and parameters + win.features = args || {}; + win.params = params || {}; - /** - * Returns the class string for the specified group name. - * - * @method classes - * @param {String} [group] Group to get clases by. - * @return {String} Classes for the specified group. - */ - classes: function(group) { - var classes = this._classes[group || 'control']; + // Takes a snapshot in the FocusManager of the selection before focus is lost to dialog + if (windows.length === 1) { + editor.nodeChanged(); + } - return classes ? classes.join(' ') : ''; - }, + win = win.renderTo().reflow(); - /** - * Sets the inner HTML of the control element. - * - * @method innerHtml - * @param {String} html Html string to set as inner html. - * @return {tinymce.ui.Control} Current control object. - */ - innerHtml: function(html) { - DomUtils.innerHtml(this.getEl(), html); - return this; - }, + fireOpenEvent(win); + + return win; + }; /** - * Returns the control DOM element or sub element. + * Creates a alert dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. * - * @method getEl - * @param {String} [suffix] Suffix to get element by. - * @return {Element} HTML DOM element for the current control or it's children. + * @method alert + * @param {String} message Text to display in the new alert dialog. + * @param {function} callback Callback function to be executed after the user has selected ok. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an alert box using the active editors window manager instance + * tinymce.activeEditor.windowManager.alert('Hello world!'); */ - getEl: function(suffix) { - var id = suffix ? this._id + '-' + suffix : this._id; + self.alert = function(message, callback, scope) { + var win; - if (!this._elmCache[id]) { - this._elmCache[id] = DomUtils.get(id); - } + win = MessageBox.alert(message, function() { + if (callback) { + callback.call(scope || this); + } else { + editor.focus(); + } + }); - return this._elmCache[id]; - }, + win.on('close', function() { + fireCloseEvent(win); + }); + + fireOpenEvent(win); + }; /** - * Sets/gets the visible for the control. + * Creates a confirm dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. * - * @method visible - * @param {Boolean} state Value to set to control. - * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. + * @method confirm + * @param {String} message Text to display in the new confirm dialog. + * @param {function} callback Callback function to be executed after the user has selected ok or cancel. + * @param {Object} scope Optional scope to execute the callback in. + * @example + * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm + * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { + * if (s) + * tinymce.activeEditor.windowManager.alert("Ok"); + * else + * tinymce.activeEditor.windowManager.alert("Cancel"); + * }); */ - visible: function(state) { - var self = this, parentCtrl; - - if (typeof(state) !== "undefined") { - if (self._visible !== state) { - if (self._rendered) { - self.getEl().style.display = state ? '' : 'none'; - } - - self._visible = state; - - // Parent container needs to reflow - parentCtrl = self.parent(); - if (parentCtrl) { - parentCtrl._lastRect = null; - } + self.confirm = function(message, callback, scope) { + var win; - self.fire(state ? 'show' : 'hide'); - } + win = MessageBox.confirm(message, function(state) { + callback.call(scope || this, state); + }); - return self; - } + win.on('close', function() { + fireCloseEvent(win); + }); - return self._visible; - }, + fireOpenEvent(win); + }; /** - * Sets the visible state to true. + * Closes the top most window. * - * @method show - * @return {tinymce.ui.Control} Current control instance. + * @method close */ - show: function() { - return this.visible(true); - }, + self.close = function() { + if (getTopMostWindow()) { + getTopMostWindow().close(); + } + }; /** - * Sets the visible state to false. + * Returns the params of the last window open call. This can be used in iframe based + * dialog to get params passed from the tinymce plugin. * - * @method hide - * @return {tinymce.ui.Control} Current control instance. + * @example + * var dialogArguments = top.tinymce.activeEditor.windowManager.getParams(); + * + * @method getParams + * @return {Object} Name/value object with parameters passed from windowManager.open call. */ - hide: function() { - return this.visible(false); - }, + self.getParams = function() { + return getTopMostWindow() ? getTopMostWindow().params : null; + }; /** - * Focuses the current control. + * Sets the params of the last opened window. * - * @method focus - * @return {tinymce.ui.Control} Current control instance. + * @method setParams + * @param {Object} params Params object to set for the last opened window. */ - focus: function() { - try { - this.getEl().focus(); - } catch (ex) { - // Ignore IE error + self.setParams = function(params) { + if (getTopMostWindow()) { + getTopMostWindow().params = params; } - - return this; - }, + }; /** - * Blurs the current control. + * Returns the currently opened window objects. * - * @method blur - * @return {tinymce.ui.Control} Current control instance. + * @method getWindows + * @return {Array} Array of the currently opened windows. */ - blur: function() { - this.getEl().blur(); + self.getWindows = function() { + return windows; + }; + }; +}); + +// Included from: js/tinymce/classes/ui/Tooltip.js + +/** + * Tooltip.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a tooltip instance. + * + * @-x-less ToolTip.less + * @class tinymce.ui.ToolTip + * @extends tinymce.ui.Control + * @mixes tinymce.ui.Movable + */ +define("tinymce/ui/Tooltip", [ + "tinymce/ui/Control", + "tinymce/ui/Movable" +], function(Control, Movable) { + return Control.extend({ + Mixins: [Movable], - return this; + Defaults: { + classes: 'widget tooltip tooltip-n' }, /** - * Sets the specified aria property. + * Renders the control as a HTML string. * - * @method aria - * @param {String} name Name of the aria property to set. - * @param {String} value Value of the aria property. - * @return {tinymce.ui.Control} Current control instance. + * @method renderHtml + * @return {String} HTML representing the control. */ - aria: function(name, value) { - var self = this, elm = self.getEl(self.ariaTarget); - - if (typeof(value) === "undefined") { - return self._aria[name]; - } else { - self._aria[name] = value; - } - - if (self._rendered) { - elm.setAttribute(name == 'role' ? name : 'aria-' + name, value); - } + renderHtml: function() { + var self = this, prefix = self.classPrefix; - return self; + return ( + '' + ); }, - /** - * Encodes the specified string with HTML entities. It will also - * translate the string to different languages. - * - * @method encode - * @param {String/Object/Array} text Text to entity encode. - * @param {Boolean} [translate=true] False if the contents shouldn't be translated. - * @return {String} Encoded and possible traslated string. - */ - encode: function(text, translate) { - if (translate !== false) { - text = this.translate(text); - } + bindStates: function() { + var self = this; - return (text || '').replace(/[&<>"]/g, function(match) { - return '&#' + match.charCodeAt(0) + ';'; + self.state.on('change:text', function(e) { + self.getEl().lastChild.innerHTML = self.encode(e.value); }); - }, - /** - * Returns the translated string. - * - * @method translate - * @param {String} text Text to translate. - * @return {String} Translated string or the same as the input. - */ - translate: function(text) { - return Control.translate ? Control.translate(text) : text; + return self._super(); }, /** - * Adds items before the current control. + * Repaints the control after a layout operation. * - * @method before - * @param {Array/tinymce.ui.Collection} items Array of items to prepend before this control. - * @return {tinymce.ui.Control} Current control instance. + * @method repaint */ - before: function(items) { - var self = this, parent = self.parent(); + repaint: function() { + var self = this, style, rect; - if (parent) { - parent.insert(items, parent.items().indexOf(self), true); - } + style = self.getEl().style; + rect = self._layoutRect; - return self; - }, + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 0xFFFF + 0xFFFF; + } + }); +}); - /** - * Adds items after the current control. - * - * @method after - * @param {Array/tinymce.ui.Collection} items Array of items to append after this control. - * @return {tinymce.ui.Control} Current control instance. - */ - after: function(items) { - var self = this, parent = self.parent(); +// Included from: js/tinymce/classes/ui/Widget.js - if (parent) { - parent.insert(items, parent.items().indexOf(self)); - } +/** + * Widget.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - return self; - }, +/** + * Widget base class a widget is a control that has a tooltip and some basic states. + * + * @class tinymce.ui.Widget + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Widget", [ + "tinymce/ui/Control", + "tinymce/ui/Tooltip" +], function(Control, Tooltip) { + "use strict"; + + var tooltip; + var Widget = Control.extend({ /** - * Removes the current control from DOM and from UI collections. + * Constructs a instance with the specified settings. * - * @method remove - * @return {tinymce.ui.Control} Current control instance. + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {String} tooltip Tooltip text to display when hovering. + * @setting {Boolean} autofocus True if the control should be focused when rendered. + * @setting {String} text Text to display inside widget. */ - remove: function() { - var self = this, elm = self.getEl(), parent = self.parent(), newItems, i; - - if (self.items) { - var controls = self.items().toArray(); - i = controls.length; - while (i--) { - controls[i].remove(); - } - } + init: function(settings) { + var self = this; - if (parent && parent.items) { - newItems = []; + self._super(settings); + settings = self.settings; + self.canFocus = true; - parent.items().each(function(item) { - if (item !== self) { - newItems.push(item); - } - }); + if (settings.tooltip && Widget.tooltips !== false) { + self.on('mouseenter', function(e) { + var tooltip = self.tooltip().moveTo(-0xFFFF); - parent.items().set(newItems); - parent._lastRect = null; - } + if (e.control == self) { + var rel = tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(), ['bc-tc', 'bc-tl', 'bc-tr']); - if (self._eventsRoot && self._eventsRoot == self) { - DomUtils.off(elm); - } + tooltip.classes.toggle('tooltip-n', rel == 'bc-tc'); + tooltip.classes.toggle('tooltip-nw', rel == 'bc-tl'); + tooltip.classes.toggle('tooltip-ne', rel == 'bc-tr'); - var lookup = self.getRoot().controlIdLookup; - if (lookup) { - delete lookup[self._id]; - } + tooltip.moveRel(self.getEl(), rel); + } else { + tooltip.hide(); + } + }); - if (elm && elm.parentNode) { - elm.parentNode.removeChild(elm); + self.on('mouseleave mousedown click', function() { + self.tooltip().hide(); + }); } - self._rendered = false; - - return self; - }, - - /** - * Renders the control before the specified element. - * - * @method renderBefore - * @param {Element} elm Element to render before. - * @return {tinymce.ui.Control} Current control instance. - */ - renderBefore: function(elm) { - var self = this; - - elm.parentNode.insertBefore(DomUtils.createFragment(self.renderHtml()), elm); - self.postRender(); - - return self; + self.aria('label', settings.ariaLabel || settings.tooltip); }, /** - * Renders the control to the specified element. + * Returns the current tooltip instance. * - * @method renderBefore - * @param {Element} elm Element to render to. - * @return {tinymce.ui.Control} Current control instance. + * @method tooltip + * @return {tinymce.ui.Tooltip} Tooltip instance. */ - renderTo: function(elm) { - var self = this; - - elm = elm || self.getContainerElm(); - elm.appendChild(DomUtils.createFragment(self.renderHtml())); - self.postRender(); + tooltip: function() { + if (!tooltip) { + tooltip = new Tooltip({type: 'tooltip'}); + tooltip.renderTo(); + } - return self; + return tooltip; }, /** - * Post render method. Called after the control has been rendered to the target. + * Called after the control has been rendered. * * @method postRender - * @return {tinymce.ui.Control} Current control instance. */ postRender: function() { - var self = this, settings = self.settings, elm, box, parent, name, parentEventsRoot; + var self = this, settings = self.settings; - // Bind on settings - for (name in settings) { - if (name.indexOf("on") === 0) { - self.on(name.substr(2), settings[name]); - } - } + self._super(); - if (self._eventsRoot) { - for (parent = self.parent(); !parentEventsRoot && parent; parent = parent.parent()) { - parentEventsRoot = parent._eventsRoot; - } + if (!self.parent() && (settings.width || settings.height)) { + self.initLayoutRect(); + self.repaint(); + } - if (parentEventsRoot) { - for (name in parentEventsRoot._nativeEvents) { - self._nativeEvents[name] = true; - } - } + if (settings.autofocus) { + self.focus(); } + }, - self.bindPendingEvents(); + bindStates: function() { + var self = this; - if (settings.style) { - elm = self.getEl(); - if (elm) { - elm.setAttribute('style', settings.style); - elm.style.cssText = settings.style; - } + function disable(state) { + self.aria('disabled', state); + self.classes.toggle('disabled', state); } - if (!self._visible) { - DomUtils.css(self.getEl(), 'display', 'none'); + function active(state) { + self.aria('pressed', state); + self.classes.toggle('active', state); } - if (self.settings.border) { - box = self.borderBox(); - DomUtils.css(self.getEl(), { - 'border-top-width': box.top, - 'border-right-width': box.right, - 'border-bottom-width': box.bottom, - 'border-left-width': box.left - }); - } + self.state.on('change:disabled', function(e) { + disable(e.value); + }); - // Add instance to lookup - var root = self.getRoot(); - if (!root.controlIdLookup) { - root.controlIdLookup = {}; - } + self.state.on('change:active', function(e) { + active(e.value); + }); - root.controlIdLookup[self._id] = self; + if (self.state.get('disabled')) { + disable(true); + } - for (var key in self._aria) { - self.aria(key, self._aria[key]); + if (self.state.get('active')) { + active(true); } - self.fire('postrender', {}, false); + return self._super(); }, /** - * Scrolls the current control into view. + * Removes the current control from DOM and from UI collections. * - * @method scrollIntoView - * @param {String} align Alignment in view top|center|bottom. + * @method remove * @return {tinymce.ui.Control} Current control instance. */ - scrollIntoView: function(align) { - function getOffset(elm, rootElm) { - var x, y, parent = elm; - - x = y = 0; - while (parent && parent != rootElm && parent.nodeType) { - x += parent.offsetLeft || 0; - y += parent.offsetTop || 0; - parent = parent.offsetParent; - } + remove: function() { + this._super(); - return {x: x, y: y}; + if (tooltip) { + tooltip.remove(); + tooltip = null; } + } + }); - var elm = this.getEl(), parentElm = elm.parentNode; - var x, y, width, height, parentWidth, parentHeight; - var pos = getOffset(elm, parentElm); + return Widget; +}); - x = pos.x; - y = pos.y; - width = elm.offsetWidth; - height = elm.offsetHeight; - parentWidth = parentElm.clientWidth; - parentHeight = parentElm.clientHeight; +// Included from: js/tinymce/classes/ui/Progress.js - if (align == "end") { - x -= parentWidth - width; - y -= parentHeight - height; - } else if (align == "center") { - x -= (parentWidth / 2) - (width / 2); - y -= (parentHeight / 2) - (height / 2); - } +/** + * Progress.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - parentElm.scrollLeft = x; - parentElm.scrollTop = y; +/** + * Progress control. + * + * @-x-less Progress.less + * @class tinymce.ui.Progress + * @extends tinymce.ui.Control + */ +define("tinymce/ui/Progress", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; - return this; + return Widget.extend({ + Defaults: { + value: 0 }, - /** - * Binds pending DOM events. - * - * @private - */ - bindPendingEvents: function() { - var self = this, i, l, parents, eventRootCtrl, nativeEvents, name; - - function delegate(e) { - var control = self.getParentCtrl(e.target); - - if (control) { - control.fire(e.type, e); - } - } - - function mouseLeaveHandler() { - var ctrl = eventRootCtrl._lastHoverCtrl; - - if (ctrl) { - ctrl.fire("mouseleave", {target: ctrl.getEl()}); + init: function(settings) { + var self = this; - ctrl.parents().each(function(ctrl) { - ctrl.fire("mouseleave", {target: ctrl.getEl()}); - }); + self._super(settings); + self.classes.add('progress'); - eventRootCtrl._lastHoverCtrl = null; - } + if (!self.settings.filter) { + self.settings.filter = function(value) { + return Math.round(value); + }; } + }, - function mouseEnterHandler(e) { - var ctrl = self.getParentCtrl(e.target), lastCtrl = eventRootCtrl._lastHoverCtrl, idx = 0, i, parents, lastParents; - - // Over on a new control - if (ctrl !== lastCtrl) { - eventRootCtrl._lastHoverCtrl = ctrl; - - parents = ctrl.parents().toArray().reverse(); - parents.push(ctrl); - - if (lastCtrl) { - lastParents = lastCtrl.parents().toArray().reverse(); - lastParents.push(lastCtrl); - - for (idx = 0; idx < lastParents.length; idx++) { - if (parents[idx] !== lastParents[idx]) { - break; - } - } + renderHtml: function() { + var self = this, id = self._id, prefix = this.classPrefix; - for (i = lastParents.length - 1; i >= idx; i--) { - lastCtrl = lastParents[i]; - lastCtrl.fire("mouseleave", { - target : lastCtrl.getEl() - }); - } - } + return ( + '
    ' + + '
    ' + + '
    ' + + '
    ' + + '
    0%
    ' + + '
    ' + ); + }, - for (i = idx; i < parents.length; i++) { - ctrl = parents[i]; - ctrl.fire("mouseenter", { - target : ctrl.getEl() - }); - } - } - } + postRender: function() { + var self = this; - function fixWheelEvent(e) { - e.preventDefault(); + self._super(); + self.value(self.settings.value); - if (e.type == "mousewheel") { - e.deltaY = -1 / 40 * e.wheelDelta; + return self; + }, - if (e.wheelDeltaX) { - e.deltaX = -1 / 40 * e.wheelDeltaX; - } - } else { - e.deltaX = 0; - e.deltaY = e.detail; - } + bindStates: function() { + var self = this; - e = self.fire("wheel", e); + function setValue(value) { + value = self.settings.filter(value); + self.getEl().lastChild.innerHTML = value + '%'; + self.getEl().firstChild.firstChild.style.width = value + '%'; } - self._rendered = true; + self.state.on('change:value', function(e) { + setValue(e.value); + }); - nativeEvents = self._nativeEvents; - if (nativeEvents) { - // Find event root element if it exists - parents = self.parents().toArray(); - parents.unshift(self); - for (i = 0, l = parents.length; !eventRootCtrl && i < l; i++) { - eventRootCtrl = parents[i]._eventsRoot; - } + setValue(self.state.get('value')); - // Event root wasn't found the use the root control - if (!eventRootCtrl) { - eventRootCtrl = parents[parents.length - 1] || self; - } + return self._super(); + } + }); +}); - // Set the eventsRoot property on children that didn't have it - self._eventsRoot = eventRootCtrl; - for (l = i, i = 0; i < l; i++) { - parents[i]._eventsRoot = eventRootCtrl; - } +// Included from: js/tinymce/classes/ui/Notification.js - var eventRootDelegates = eventRootCtrl._delegates; - if (!eventRootDelegates) { - eventRootDelegates = eventRootCtrl._delegates = {}; - } +/** + * Notification.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - // Bind native event delegates - for (name in nativeEvents) { - if (!nativeEvents) { - return false; - } +/** + * Creates a notification instance. + * + * @-x-less Notification.less + * @class tinymce.ui.Notification + * @extends tinymce.ui.Container + * @mixes tinymce.ui.Movable + */ +define("tinymce/ui/Notification", [ + "tinymce/ui/Control", + "tinymce/ui/Movable", + "tinymce/ui/Progress" +], function(Control, Movable, Progress) { + return Control.extend({ + Mixins: [Movable], - if (name === "wheel" && !hasWheelEventSupport) { - if (hasMouseWheelEventSupport) { - DomUtils.on(self.getEl(), "mousewheel", fixWheelEvent); - } else { - DomUtils.on(self.getEl(), "DOMMouseScroll", fixWheelEvent); - } + Defaults: { + classes: 'widget notification' + }, - continue; - } + init: function(settings) { + var self = this; - // Special treatment for mousenter/mouseleave since these doesn't bubble - if (name === "mouseenter" || name === "mouseleave") { - // Fake mousenter/mouseleave - if (!eventRootCtrl._hasMouseEnter) { - DomUtils.on(eventRootCtrl.getEl(), "mouseleave", mouseLeaveHandler); - DomUtils.on(eventRootCtrl.getEl(), "mouseover", mouseEnterHandler); - eventRootCtrl._hasMouseEnter = 1; - } - } else if (!eventRootDelegates[name]) { - DomUtils.on(eventRootCtrl.getEl(), name, delegate); - eventRootDelegates[name] = true; - } + self._super(settings); - // Remove the event once it's bound - nativeEvents[name] = false; - } + if (settings.text) { + self.text(settings.text); } - }, - getRoot: function() { - var ctrl = this, rootControl, parents = []; + if (settings.icon) { + self.icon = settings.icon; + } - while (ctrl) { - if (ctrl.rootControl) { - rootControl = ctrl.rootControl; - break; - } + if (settings.color) { + self.color = settings.color; + } - parents.push(ctrl); - rootControl = ctrl; - ctrl = ctrl.parent(); + if (settings.type) { + self.classes.add('notification-' + settings.type); } - if (!rootControl) { - rootControl = this; + if (settings.timeout && (settings.timeout < 0 || settings.timeout > 0) && !settings.closeButton) { + self.closeButton = false; + } else { + self.classes.add('has-close'); + self.closeButton = true; } - var i = parents.length; - while (i--) { - parents[i].rootControl = rootControl; + if (settings.progressBar) { + self.progressBar = new Progress(); } - return rootControl; + self.on('click', function(e) { + if (e.target.className.indexOf(self.classPrefix + 'close') != -1) { + self.close(); + } + }); }, /** - * Reflows the current control and it's parents. - * This should be used after you for example append children to the current control so - * that the layout managers know that they need to reposition everything. - * - * @example - * container.append({type: 'button', text: 'My button'}).reflow(); + * Renders the control as a HTML string. * - * @method reflow - * @return {tinymce.ui.Control} Current control instance. + * @method renderHtml + * @return {String} HTML representing the control. */ - reflow: function() { - this.repaint(); + renderHtml: function() { + var self = this, prefix = self.classPrefix, icon = '', closeButton = '', progressBar = '', notificationStyle = ''; - return this; - } + if (self.icon) { + icon = ''; + } - /** - * Sets/gets the parent container for the control. - * - * @method parent - * @param {tinymce.ui.Container} parent Optional parent to set. - * @return {tinymce.ui.Control} Parent control or the current control on a set action. - */ - // parent: function(parent) {} -- Generated + if (self.color) { + notificationStyle = ' style="background-color: ' + self.color + '"'; + } - /** - * Sets/gets the text for the control. - * - * @method text - * @param {String} value Value to set to control. - * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. - */ - // text: function(value) {} -- Generated + if (self.closeButton) { + closeButton = ''; + } - /** - * Sets/gets the width for the control. - * - * @method width - * @param {Number} value Value to set to control. - * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. - */ - // width: function(value) {} -- Generated + if (self.progressBar) { + progressBar = self.progressBar.renderHtml(); + } - /** - * Sets/gets the height for the control. - * - * @method height - * @param {Number} value Value to set to control. - * @return {Number/tinymce.ui.Control} Current control on a set operation or current value on a get. - */ - // height: function(value) {} -- Generated + return ( + '' + ); + }, - /** - * Sets/gets the disabled state on the control. - * - * @method disabled - * @param {Boolean} state Value to set to control. - * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. - */ - // disabled: function(state) {} -- Generated + bindStates: function() { + var self = this; - /** - * Sets/gets the active for the control. - * - * @method active - * @param {Boolean} state Value to set to control. - * @return {Boolean/tinymce.ui.Control} Current control on a set operation or current state on a get. - */ - // active: function(state) {} -- Generated + self.state.on('change:text', function(e) { + self.getEl().childNodes[1].innerHTML = e.value; + }); + if (self.progressBar) { + self.progressBar.bindStates(); + } + return self._super(); + }, - /** - * Sets/gets the name for the control. - * - * @method name - * @param {String} value Value to set to control. - * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. - */ - // name: function(value) {} -- Generated + close: function() { + var self = this; + + if (!self.fire('close').isDefaultPrevented()) { + self.remove(); + } + + return self; + }, /** - * Sets/gets the title for the control. + * Repaints the control after a layout operation. * - * @method title - * @param {String} value Value to set to control. - * @return {String/tinymce.ui.Control} Current control on a set operation or current value on a get. + * @method repaint */ - // title: function(value) {} -- Generated - }); + repaint: function() { + var self = this, style, rect; - return Control; + style = self.getEl().style; + rect = self._layoutRect; + + style.left = rect.x + 'px'; + style.top = rect.y + 'px'; + style.zIndex = 0xFFFF + 0xFFFF; + } + }); }); -// Included from: js/tinymce/classes/ui/Factory.js +// Included from: js/tinymce/classes/NotificationManager.js /** - * Factory.js + * NotificationManager.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ -/*global tinymce:true */ - /** - * This class is a factory for control instances. This enables you - * to create instances of controls without having to require the UI controls directly. - * - * It also allow you to override or add new control types. + * This class handles the creation of TinyMCE's notifications. * - * @class tinymce.ui.Factory + * @class tinymce.notificationManager + * @example + * // Opens a new notification of type "error" with text "An error occurred." + * tinymce.activeEditor.notificationManager.open({ + * text: 'An error occurred.', + * type: 'error' + * }); */ -define("tinymce/ui/Factory", [], function() { - "use strict"; +define("tinymce/NotificationManager", [ + "tinymce/ui/Notification", + "tinymce/util/Delay" +], function(Notification, Delay) { + return function(editor) { + var self = this, notifications = []; - var types = {}, namespaceInit; + function getLastNotification() { + if (notifications.length) { + return notifications[notifications.length - 1]; + } + } - return { - /** - * Adds a new control instance type to the factory. - * - * @method add - * @param {String} type Type name for example "button". - * @param {function} typeClass Class type function. - */ - add: function(type, typeClass) { - types[type.toLowerCase()] = typeClass; - }, + self.notifications = notifications; - /** - * Returns true/false if the specified type exists or not. - * - * @method has - * @param {String} type Type to look for. - * @return {Boolean} true/false if the control by name exists. - */ - has: function(type) { - return !!types[type.toLowerCase()]; - }, + function resizeWindowEvent() { + Delay.requestAnimationFrame(function() { + prePositionNotifications(); + positionNotifications(); + }); + } + + // Since the viewport will change based on the present notifications, we need to move them all to the + // top left of the viewport to give an accurate size measurement so we can position them later. + function prePositionNotifications() { + for (var i = 0; i < notifications.length; i++) { + notifications[i].moveTo(0, 0); + } + } + + function positionNotifications() { + if (notifications.length > 0) { + var firstItem = notifications.slice(0, 1)[0]; + var container = editor.inline ? editor.getElement() : editor.getContentAreaContainer(); + firstItem.moveRel(container, 'tc-tc'); + if (notifications.length > 1) { + for (var i = 1; i < notifications.length; i++) { + notifications[i].moveRel(notifications[i - 1].getEl(), 'bc-tc'); + } + } + } + } + + editor.on('remove', function() { + var i = notifications.length; + + while (i--) { + notifications[i].close(); + } + }); + + editor.on('ResizeEditor', positionNotifications); + editor.on('ResizeWindow', resizeWindowEvent); /** - * Creates a new control instance based on the settings provided. The instance created will be - * based on the specified type property it can also create whole structures of components out of - * the specified JSON object. - * - * @example - * tinymce.ui.Factory.create({ - * type: 'button', - * text: 'Hello world!' - * }); + * Opens a new notification. * - * @method create - * @param {Object/String} settings Name/Value object with items used to create the type. - * @return {tinymce.ui.Control} Control instance based on the specified type. + * @method open + * @param {Object} args Optional name/value settings collection contains things like timeout/color/message etc. */ - create: function(type, settings) { - var ControlType, name, namespace; + self.open = function(args) { + var notif; - // Build type lookup - if (!namespaceInit) { - namespace = tinymce.ui; + editor.editorManager.setActive(editor); - for (name in namespace) { - types[name.toLowerCase()] = namespace[name]; - } + notif = new Notification(args); + notifications.push(notif); - namespaceInit = true; + //If we have a timeout value + if (args.timeout > 0) { + notif.timer = setTimeout(function() { + notif.close(); + }, args.timeout); } - // If string is specified then use it as the type - if (typeof(type) == 'string') { - settings = settings || {}; - settings.type = type; - } else { - settings = type; - type = settings.type; - } + notif.on('close', function() { + var i = notifications.length; - // Find control type - type = type.toLowerCase(); - ControlType = types[type]; + if (notif.timer) { + editor.getWin().clearTimeout(notif.timer); + } - // #if debug + while (i--) { + if (notifications[i] === notif) { + notifications.splice(i, 1); + } + } - if (!ControlType) { - throw new Error("Could not find control by type: " + type); + positionNotifications(); + }); + + notif.renderTo(); + + positionNotifications(); + + return notif; + }; + + /** + * Closes the top most notification. + * + * @method close + */ + self.close = function() { + if (getLastNotification()) { + getLastNotification().close(); } + }; - // #endif + /** + * Returns the currently opened notification objects. + * + * @method getNotifications + * @return {Array} Array of the currently opened notifications. + */ + self.getNotifications = function() { + return notifications; + }; - ControlType = new ControlType(settings); - ControlType.type = type; // Set the type on the instance, this will be used by the Selector engine + editor.on('SkinLoaded', function() { + var serviceMessage = editor.settings.service_message; - return ControlType; - } + if (serviceMessage) { + editor.notificationManager.open({ + text: serviceMessage, + type: 'warning', + timeout: 0, + icon: '' + }); + } + }); + + //self.positionNotifications = positionNotifications; }; }); -// Included from: js/tinymce/classes/ui/KeyboardNavigation.js +// Included from: js/tinymce/classes/dom/NodePath.js /** - * KeyboardNavigation.js + * NodePath.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /** - * This class handles keyboard navigation of controls and elements. + * Handles paths of nodes within an element. * - * @class tinymce.ui.KeyboardNavigation + * @private + * @class tinymce.dom.NodePath */ -define("tinymce/ui/KeyboardNavigation", [ -], function() { - "use strict"; - - /** - * This class handles all keyboard navigation for WAI-ARIA support. Each root container - * gets an instance of this class. - * - * @constructor - */ - return function(settings) { - var root = settings.root, focusedElement, focusedControl; +define("tinymce/dom/NodePath", [ + "tinymce/dom/DOMUtils" +], function(DOMUtils) { + function create(rootNode, targetNode, normalized) { + var path = []; - try { - focusedElement = document.activeElement; - } catch (ex) { - // IE sometimes fails to return a proper element - focusedElement = document.body; + for (; targetNode && targetNode != rootNode; targetNode = targetNode.parentNode) { + path.push(DOMUtils.nodeIndex(targetNode, normalized)); } - focusedControl = root.getParentCtrl(focusedElement); - - /** - * Returns the currently focused elements wai aria role of the currently - * focused element or specified element. - * - * @private - * @param {Element} elm Optional element to get role from. - * @return {String} Role of specified element. - */ - function getRole(elm) { - elm = elm || focusedElement; + return path; + } - return elm && elm.getAttribute('role'); - } + function resolve(rootNode, path) { + var i, node, children; - /** - * Returns the wai role of the parent element of the currently - * focused element or specified element. - * - * @private - * @param {Element} elm Optional element to get parent role from. - * @return {String} Role of the first parent that has a role. - */ - function getParentRole(elm) { - var role, parent = elm || focusedElement; + for (node = rootNode, i = path.length - 1; i >= 0; i--) { + children = node.childNodes; - while ((parent = parent.parentNode)) { - if ((role = getRole(parent))) { - return role; - } + if (path[i] > children.length - 1) { + return null; } + + node = children[path[i]]; } + return node; + } + + return { + create: create, + resolve: resolve + }; +}); + +// Included from: js/tinymce/classes/util/Quirks.js + +/** + * Quirks.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + * + * @ignore-file + */ + +/** + * This file includes fixes for various browser quirks it's made to make it easy to add/remove browser specific fixes. + * + * @private + * @class tinymce.util.Quirks + */ +define("tinymce/util/Quirks", [ + "tinymce/util/VK", + "tinymce/dom/RangeUtils", + "tinymce/dom/TreeWalker", + "tinymce/dom/NodePath", + "tinymce/html/Node", + "tinymce/html/Entities", + "tinymce/Env", + "tinymce/util/Tools", + "tinymce/util/Delay", + "tinymce/caret/CaretContainer" +], function(VK, RangeUtils, TreeWalker, NodePath, Node, Entities, Env, Tools, Delay, CaretContainer) { + return function(editor) { + var each = Tools.each, $ = editor.$; + var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, + settings = editor.settings, parser = editor.parser, serializer = editor.serializer; + var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit; + var mceInternalUrlPrefix = 'data:text/mce-internal,'; + var mceInternalDataType = isIE ? 'Text' : 'URL'; + /** - * Returns a wai aria property by name for example aria-selected. - * - * @private - * @param {String} name Name of the aria property to get for example "disabled". - * @return {String} Aria property value. + * Executes a command with a specific state this can be to enable/disable browser editing features. */ - function getAriaProp(name) { - var elm = focusedElement; - - if (elm) { - return elm.getAttribute('aria-' + name); + function setEditorCommandState(cmd, state) { + try { + editor.getDoc().execCommand(cmd, false, state); + } catch (ex) { + // Ignore } } /** - * Is the element a text input element or not. - * - * @private - * @param {Element} elm Element to check if it's an text input element or not. - * @return {Boolean} True/false if the element is a text element or not. + * Returns current IE document mode. */ - function isTextInputElement(elm) { - var tagName = elm.tagName.toUpperCase(); + function getDocumentMode() { + var documentMode = editor.getDoc().documentMode; - // Notice: since type can be "email" etc we don't check the type - // So all input elements gets treated as text input elements - return tagName == "INPUT" || tagName == "TEXTAREA"; + return documentMode ? documentMode : 6; } /** - * Returns true/false if the specified element can be focused or not. + * Returns true/false if the event is prevented or not. * * @private - * @param {Element} elm DOM element to check if it can be focused or not. - * @return {Boolean} True/false if the element can have focus. + * @param {Event} e Event object. + * @return {Boolean} true/false if the event is prevented or not. */ - function canFocus(elm) { - if (isTextInputElement(elm) && !elm.hidden) { - return true; - } - - if (/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell)$/.test(getRole(elm))) { - return true; - } - - return false; + function isDefaultPrevented(e) { + return e.isDefaultPrevented(); } /** - * Returns an array of focusable visible elements within the specified container element. + * Sets Text/URL data on the event's dataTransfer object to a special data:text/mce-internal url. + * This is to workaround the inability to set custom contentType on IE and Safari. + * The editor's selected content is encoded into this url so drag and drop between editors will work. * * @private - * @param {Element} elm DOM element to find focusable elements within. - * @return {Array} Array of focusable elements. + * @param {DragEvent} e Event object */ - function getFocusElements(elm) { - var elements = []; + function setMceInteralContent(e) { + var selectionHtml, internalContent; - function collect(elm) { - if (elm.nodeType != 1 || elm.style.display == 'none') { - return; + if (e.dataTransfer) { + if (editor.selection.isCollapsed() && e.target.tagName == 'IMG') { + selection.select(e.target); } - if (canFocus(elm)) { - elements.push(elm); - } + selectionHtml = editor.selection.getContent(); - for (var i = 0; i < elm.childNodes.length; i++) { - collect(elm.childNodes[i]); + // Safari/IE doesn't support custom dataTransfer items so we can only use URL and Text + if (selectionHtml.length > 0) { + internalContent = mceInternalUrlPrefix + escape(editor.id) + ',' + escape(selectionHtml); + e.dataTransfer.setData(mceInternalDataType, internalContent); } } - - collect(elm || root.getEl()); - - return elements; } /** - * Returns the navigation root control for the specified control. The navigation root - * is the control that the keyboard navigation gets scoped to for example a menubar or toolbar group. - * It will look for parents of the specified target control or the currently focused control if this option is omitted. + * Gets content of special data:text/mce-internal url on the event's dataTransfer object. + * This is to workaround the inability to set custom contentType on IE and Safari. + * The editor's selected content is encoded into this url so drag and drop between editors will work. * * @private - * @param {tinymce.ui.Control} targetControl Optional target control to find root of. - * @return {tinymce.ui.Control} Navigation root control. + * @param {DragEvent} e Event object + * @returns {String} mce-internal content */ - function getNavigationRoot(targetControl) { - var navigationRoot, controls; + function getMceInternalContent(e) { + var internalContent; - targetControl = targetControl || focusedControl; - controls = targetControl.parents().toArray(); - controls.unshift(targetControl); + if (e.dataTransfer) { + internalContent = e.dataTransfer.getData(mceInternalDataType); - for (var i = 0; i < controls.length; i++) { - navigationRoot = controls[i]; + if (internalContent && internalContent.indexOf(mceInternalUrlPrefix) >= 0) { + internalContent = internalContent.substr(mceInternalUrlPrefix.length).split(','); - if (navigationRoot.settings.ariaRoot) { - break; + return { + id: unescape(internalContent[0]), + html: unescape(internalContent[1]) + }; } } - return navigationRoot; + return null; } /** - * Focuses the first item in the specified targetControl element or the last aria index if the - * navigation root has the ariaRemember option enabled. + * Inserts contents using the paste clipboard command if it's available if it isn't it will fallback + * to the core command. * * @private - * @param {tinymce.ui.Control} targetControl Target control to focus the first item in. + * @param {String} content Content to insert at selection. */ - function focusFirst(targetControl) { - var navigationRoot = getNavigationRoot(targetControl); - var focusElements = getFocusElements(navigationRoot.getEl()); - - if (navigationRoot.settings.ariaRemember && "lastAriaIndex" in navigationRoot) { - moveFocusToIndex(navigationRoot.lastAriaIndex, focusElements); + function insertClipboardContents(content) { + if (editor.queryCommandSupported('mceInsertClipboardContent')) { + editor.execCommand('mceInsertClipboardContent', false, {content: content}); } else { - moveFocusToIndex(0, focusElements); + editor.execCommand('mceInsertContent', false, content); } } /** - * Moves the focus to the specified index within the elements list. - * This will scope the index to the size of the element list if it changed. + * Fixes a WebKit bug when deleting contents using backspace or delete key. + * WebKit will produce a span element if you delete across two block elements. * - * @private - * @param {Number} idx Specified index to move to. - * @param {Array} elements Array with dom elements to move focus within. - * @return {Number} Input index or a changed index if it was out of range. + * Example: + *

    a

    |b

    + * + * Will produce this on backspace: + *

    ab

    + * + * This fixes the backspace to produce: + *

    a|b

    + * + * See bug: https://bugs.webkit.org/show_bug.cgi?id=45784 + * + * This fixes the following delete scenarios: + * 1. Delete by pressing backspace key. + * 2. Delete by pressing delete key. + * 3. Delete by pressing backspace key with ctrl/cmd (Word delete). + * 4. Delete by pressing delete key with ctrl/cmd (Word delete). + * 5. Delete by drag/dropping contents inside the editor. + * 6. Delete by using Cut Ctrl+X/Cmd+X. + * 7. Delete by selecting contents and writing a character. + * + * This code is a ugly hack since writing full custom delete logic for just this bug + * fix seemed like a huge task. I hope we can remove this before the year 2030. */ - function moveFocusToIndex(idx, elements) { - if (idx < 0) { - idx = elements.length - 1; - } else if (idx >= elements.length) { - idx = 0; - } - - if (elements[idx]) { - elements[idx].focus(); - } + function cleanupStylesWhenDeleting() { + var doc = editor.getDoc(), dom = editor.dom, selection = editor.selection; + var MutationObserver = window.MutationObserver, olderWebKit, dragStartRng; - return idx; - } + // Add mini polyfill for older WebKits + // TODO: Remove this when old Safari versions gets updated + if (!MutationObserver) { + olderWebKit = true; - /** - * Moves the focus forwards or backwards. - * - * @private - * @param {Number} dir Direction to move in positive means forward, negative means backwards. - * @param {Array} elements Optional array of elements to move within defaults to the current navigation roots elements. - */ - function moveFocus(dir, elements) { - var idx = -1, navigationRoot = getNavigationRoot(); + MutationObserver = function() { + var records = [], target; - elements = elements || getFocusElements(navigationRoot.getEl()); + function nodeInsert(e) { + var target = e.relatedNode || e.target; + records.push({target: target, addedNodes: [target]}); + } - for (var i = 0; i < elements.length; i++) { - if (elements[i] === focusedElement) { - idx = i; - } - } + function attrModified(e) { + var target = e.relatedNode || e.target; + records.push({target: target, attributeName: e.attrName}); + } - idx += dir; - navigationRoot.lastAriaIndex = moveFocusToIndex(idx, elements); - } + this.observe = function(node) { + target = node; + target.addEventListener('DOMSubtreeModified', nodeInsert, false); + target.addEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false); + target.addEventListener('DOMNodeInserted', nodeInsert, false); + target.addEventListener('DOMAttrModified', attrModified, false); + }; - /** - * Moves the focus to the left this is called by the left key. - * - * @private - */ - function left() { - var parentRole = getParentRole(); + this.disconnect = function() { + target.removeEventListener('DOMSubtreeModified', nodeInsert, false); + target.removeEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false); + target.removeEventListener('DOMNodeInserted', nodeInsert, false); + target.removeEventListener('DOMAttrModified', attrModified, false); + }; - if (parentRole == "tablist") { - moveFocus(-1, getFocusElements(focusedElement.parentNode)); - } else if (focusedControl.parent().submenu) { - cancel(); - } else { - moveFocus(-1); + this.takeRecords = function() { + return records; + }; + }; } - } - /** - * Moves the focus to the right this is called by the right key. - * - * @private - */ - function right() { - var role = getRole(), parentRole = getParentRole(); + function isTrailingBr(node) { + var blockElements = dom.schema.getBlockElements(), rootNode = editor.getBody(); - if (parentRole == "tablist") { - moveFocus(1, getFocusElements(focusedElement.parentNode)); - } else if (role == "menuitem" && parentRole == "menu" && getAriaProp('haspopup')) { - enter(); - } else { - moveFocus(1); + if (node.nodeName != 'BR') { + return false; + } + + for (node = node; node != rootNode && !blockElements[node.nodeName]; node = node.parentNode) { + if (node.nextSibling) { + return false; + } + } + + return true; } - } - /** - * Moves the focus to the up this is called by the up key. - * - * @private - */ - function up() { - moveFocus(-1); - } + function isSiblingsIgnoreWhiteSpace(node1, node2) { + var node; - /** - * Moves the focus to the up this is called by the down key. - * - * @private - */ - function down() { - var role = getRole(), parentRole = getParentRole(); + for (node = node1.nextSibling; node && node != node2; node = node.nextSibling) { + if (node.nodeType == 3 && $.trim(node.data).length === 0) { + continue; + } - if (role == "menuitem" && parentRole == "menubar") { - enter(); - } else if (role == "button" && getAriaProp('haspopup')) { - enter({key: 'down'}); - } else { - moveFocus(1); + if (node !== node2) { + return false; + } + } + + return node === node2; } - } - /** - * Moves the focus to the next item or previous item depending on shift key. - * - * @private - * @param {DOMEvent} e DOM event object. - */ - function tab(e) { - var parentRole = getParentRole(); + function findCaretNode(node, forward, startNode) { + var walker, current, nonEmptyElements; - if (parentRole == "tablist") { - var elm = getFocusElements(focusedControl.getEl('body'))[0]; + nonEmptyElements = dom.schema.getNonEmptyElements(); - if (elm) { - elm.focus(); + walker = new TreeWalker(startNode || node, node); + + while ((current = walker[forward ? 'next' : 'prev']())) { + if (nonEmptyElements[current.nodeName] && !isTrailingBr(current)) { + return current; + } + + if (current.nodeType == 3 && current.data.length > 0) { + return current; + } } - } else { - moveFocus(e.shiftKey ? -1 : 1); } - } - /** - * Calls the cancel event on the currently focused control. This is normally done using the Esc key. - * - * @private - */ - function cancel() { - focusedControl.fire('cancel'); - } + function deleteRangeBetweenTextBlocks(rng) { + var startBlock, endBlock, caretNodeBefore, caretNodeAfter, textBlockElements; - /** - * Calls the click event on the currently focused control. This is normally done using the Enter/Space keys. - * - * @private - * @param {Object} aria Optional aria data to pass along with the enter event. - */ - function enter(aria) { - aria = aria || {}; - focusedControl.fire('click', {target: focusedElement, aria: aria}); - } + if (rng.collapsed) { + return; + } - root.on('keydown', function(e) { - function handleNonTabOrEscEvent(e, handler) { - // Ignore non tab keys for text elements - if (isTextInputElement(focusedElement)) { + startBlock = dom.getParent(RangeUtils.getNode(rng.startContainer, rng.startOffset), dom.isBlock); + endBlock = dom.getParent(RangeUtils.getNode(rng.endContainer, rng.endOffset), dom.isBlock); + textBlockElements = editor.schema.getTextBlockElements(); + + if (startBlock == endBlock) { return; } - if (handler(e) !== false) { - e.preventDefault(); + if (!textBlockElements[startBlock.nodeName] || !textBlockElements[endBlock.nodeName]) { + return; } - } - if (e.isDefaultPrevented()) { - return; - } + if (dom.getContentEditable(startBlock) === "false" || dom.getContentEditable(endBlock) === "false") { + return; + } - switch (e.keyCode) { - case 37: // DOM_VK_LEFT - handleNonTabOrEscEvent(e, left); - break; + rng.deleteContents(); - case 39: // DOM_VK_RIGHT - handleNonTabOrEscEvent(e, right); - break; + caretNodeBefore = findCaretNode(startBlock, false); + caretNodeAfter = findCaretNode(endBlock, true); - case 38: // DOM_VK_UP - handleNonTabOrEscEvent(e, up); - break; + if (!dom.isEmpty(endBlock)) { + $(startBlock).append(endBlock.childNodes); + } - case 40: // DOM_VK_DOWN - handleNonTabOrEscEvent(e, down); - break; + $(endBlock).remove(); - case 27: // DOM_VK_ESCAPE - cancel(); - break; + if (caretNodeBefore) { + if (caretNodeBefore.nodeType == 1) { + if (caretNodeBefore.nodeName == "BR") { + rng.setStartBefore(caretNodeBefore); + rng.setEndBefore(caretNodeBefore); + } else { + rng.setStartAfter(caretNodeBefore); + rng.setEndAfter(caretNodeBefore); + } + } else { + rng.setStart(caretNodeBefore, caretNodeBefore.data.length); + rng.setEnd(caretNodeBefore, caretNodeBefore.data.length); + } + } else if (caretNodeAfter) { + if (caretNodeAfter.nodeType == 1) { + rng.setStartBefore(caretNodeAfter); + rng.setEndBefore(caretNodeAfter); + } else { + rng.setStart(caretNodeAfter, 0); + rng.setEnd(caretNodeAfter, 0); + } + } - case 14: // DOM_VK_ENTER - case 13: // DOM_VK_RETURN - case 32: // DOM_VK_SPACE - handleNonTabOrEscEvent(e, enter); - break; + selection.setRng(rng); - case 9: // DOM_VK_TAB - if (tab(e) !== false) { - e.preventDefault(); - } - break; + return true; } - }); - root.on('focusin', function(e) { - focusedElement = e.target; - focusedControl = e.control; - }); + function expandBetweenBlocks(rng, isForward) { + var caretNode, targetCaretNode, textBlock, targetTextBlock, container, offset; - return { - focusFirst: focusFirst - }; - }; -}); + if (!rng.collapsed) { + return rng; + } -// Included from: js/tinymce/classes/ui/Container.js + container = rng.startContainer; + offset = rng.startOffset; -/** - * Container.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + if (container.nodeType == 3) { + if (isForward) { + if (offset < container.data.length) { + return rng; + } + } else { + if (offset > 0) { + return rng; + } + } + } -/** - * Container control. This is extended by all controls that can have - * children such as panels etc. You can also use this class directly as an - * generic container instance. The container doesn't have any specific role or style. - * - * @-x-less Container.less - * @class tinymce.ui.Container - * @extends tinymce.ui.Control - */ -define("tinymce/ui/Container", [ - "tinymce/ui/Control", - "tinymce/ui/Collection", - "tinymce/ui/Selector", - "tinymce/ui/Factory", - "tinymce/ui/KeyboardNavigation", - "tinymce/util/Tools", - "tinymce/ui/DomUtils" -], function(Control, Collection, Selector, Factory, KeyboardNavigation, Tools, DomUtils) { - "use strict"; + caretNode = RangeUtils.getNode(rng.startContainer, rng.startOffset); + textBlock = dom.getParent(caretNode, dom.isBlock); + targetCaretNode = findCaretNode(editor.getBody(), isForward, caretNode); + targetTextBlock = dom.getParent(targetCaretNode, dom.isBlock); - var selectorCache = {}; + if (!caretNode || !targetCaretNode) { + return rng; + } - return Control.extend({ - layout: '', - innerClass: 'container-inner', + if (targetTextBlock && textBlock != targetTextBlock) { + if (!isForward) { + if (!isSiblingsIgnoreWhiteSpace(targetTextBlock, textBlock)) { + return rng; + } - /** - * Constructs a new control instance with the specified settings. - * - * @constructor - * @param {Object} settings Name/value object with settings. - * @setting {Array} items Items to add to container in JSON format or control instances. - * @setting {String} layout Layout manager by name to use. - * @setting {Object} defaults Default settings to apply to all items. - */ - init: function(settings) { - var self = this; + if (targetCaretNode.nodeType == 1) { + if (targetCaretNode.nodeName == "BR") { + rng.setStartBefore(targetCaretNode); + } else { + rng.setStartAfter(targetCaretNode); + } + } else { + rng.setStart(targetCaretNode, targetCaretNode.data.length); + } - self._super(settings); - settings = self.settings; - self._fixed = settings.fixed; - self._items = new Collection(); + if (caretNode.nodeType == 1) { + rng.setEnd(caretNode, 0); + } else { + rng.setEndBefore(caretNode); + } + } else { + if (!isSiblingsIgnoreWhiteSpace(textBlock, targetTextBlock)) { + return rng; + } - if (self.isRtl()) { - self.addClass('rtl'); - } + if (caretNode.nodeType == 1) { + if (caretNode.nodeName == "BR") { + rng.setStartBefore(caretNode); + } else { + rng.setStartAfter(caretNode); + } + } else { + rng.setStart(caretNode, caretNode.data.length); + } - self.addClass('container'); - self.addClass('container-body', 'body'); + if (targetCaretNode.nodeType == 1) { + rng.setEnd(targetCaretNode, 0); + } else { + rng.setEndBefore(targetCaretNode); + } + } + } - if (settings.containerCls) { - self.addClass(settings.containerCls); + return rng; } - self._layout = Factory.create((settings.layout || self.layout) + 'layout'); + function handleTextBlockMergeDelete(isForward) { + var rng = selection.getRng(); - if (self.settings.items) { - self.add(self.settings.items); + rng = expandBetweenBlocks(rng, isForward); + + if (deleteRangeBetweenTextBlocks(rng)) { + return true; + } } - // TODO: Fix this! - self._hasBody = true; - }, + /** + * This retains the formatting if the last character is to be deleted. + * + * Backspace on this:

    a|

    would become

    |

    in WebKit. + * With this patch:

    |

    + */ + function handleLastBlockCharacterDelete(isForward, rng) { + var path, blockElm, newBlockElm, clonedBlockElm, sibling, + container, offset, br, currentFormatNodes; - /** - * Returns a collection of child items that the container currently have. - * - * @method items - * @return {tinymce.ui.Collection} Control collection direct child controls. - */ - items: function() { - return this._items; - }, + function cloneTextBlockWithFormats(blockElm, node) { + currentFormatNodes = $(node).parents().filter(function(idx, node) { + return !!editor.schema.getTextInlineElements()[node.nodeName]; + }); - /** - * Find child controls by selector. - * - * @method find - * @param {String} selector Selector CSS pattern to find children by. - * @return {tinymce.ui.Collection} Control collection with child controls. - */ - find: function(selector) { - selector = selectorCache[selector] = selectorCache[selector] || new Selector(selector); + newBlockElm = blockElm.cloneNode(false); - return selector.find(this); - }, + currentFormatNodes = Tools.map(currentFormatNodes, function(formatNode) { + formatNode = formatNode.cloneNode(false); - /** - * Adds one or many items to the current container. This will create instances of - * the object representations if needed. - * - * @method add - * @param {Array/Object/tinymce.ui.Control} items Array or item that will be added to the container. - * @return {tinymce.ui.Collection} Current collection control. - */ - add: function(items) { - var self = this; + if (newBlockElm.hasChildNodes()) { + formatNode.appendChild(newBlockElm.firstChild); + newBlockElm.appendChild(formatNode); + } else { + newBlockElm.appendChild(formatNode); + } - self.items().add(self.create(items)).parent(self); + newBlockElm.appendChild(formatNode); - return self; - }, + return formatNode; + }); - /** - * Focuses the current container instance. This will look - * for the first control in the container and focus that. - * - * @method focus - * @param {Boolean} keyboard Optional true/false if the focus was a keyboard focus or not. - * @return {tinymce.ui.Collection} Current instance. - */ - focus: function(keyboard) { - var self = this, focusCtrl, keyboardNav, items; + if (currentFormatNodes.length) { + br = dom.create('br'); + currentFormatNodes[0].appendChild(br); + dom.replace(newBlockElm, blockElm); - if (keyboard) { - keyboardNav = self.keyboardNav || self.parents().eq(-1)[0].keyboardNav; + rng.setStartBefore(br); + rng.setEndBefore(br); + editor.selection.setRng(rng); - if (keyboardNav) { - keyboardNav.focusFirst(self); - return; - } - } + return br; + } - items = self.find('*'); + return null; + } - // TODO: Figure out a better way to auto focus alert dialog buttons - if (self.statusbar) { - items.add(self.statusbar.items()); - } + function isTextBlock(node) { + return node && editor.schema.getTextBlockElements()[node.tagName]; + } - items.each(function(ctrl) { - if (ctrl.settings.autofocus) { - focusCtrl = null; - return false; + if (!rng.collapsed) { + return; } - if (ctrl.canFocus) { - focusCtrl = focusCtrl || ctrl; + container = rng.startContainer; + offset = rng.startOffset; + blockElm = dom.getParent(container, dom.isBlock); + if (!isTextBlock(blockElm)) { + return; } - }); - if (focusCtrl) { - focusCtrl.focus(); - } + if (container.nodeType == 1) { + container = container.childNodes[offset]; + if (container && container.tagName != 'BR') { + return; + } - return self; - }, + if (isForward) { + sibling = blockElm.nextSibling; + } else { + sibling = blockElm.previousSibling; + } - /** - * Replaces the specified child control with a new control. - * - * @method replace - * @param {tinymce.ui.Control} oldItem Old item to be replaced. - * @param {tinymce.ui.Control} newItem New item to be inserted. - */ - replace: function(oldItem, newItem) { - var ctrlElm, items = this.items(), i = items.length; + if (dom.isEmpty(blockElm) && isTextBlock(sibling) && dom.isEmpty(sibling)) { + if (cloneTextBlockWithFormats(blockElm, container)) { + dom.remove(sibling); + return true; + } + } + } else if (container.nodeType == 3) { + path = NodePath.create(blockElm, container); + clonedBlockElm = blockElm.cloneNode(true); + container = NodePath.resolve(clonedBlockElm, path); - // Replace the item in collection - while (i--) { - if (items[i] === oldItem) { - items[i] = newItem; - break; + if (isForward) { + if (offset >= container.data.length) { + return; + } + + container.deleteData(offset, 1); + } else { + if (offset <= 0) { + return; + } + + container.deleteData(offset - 1, 1); + } + + if (dom.isEmpty(clonedBlockElm)) { + return cloneTextBlockWithFormats(blockElm, container); + } } } - if (i >= 0) { - // Remove new item from DOM - ctrlElm = newItem.getEl(); - if (ctrlElm) { - ctrlElm.parentNode.removeChild(ctrlElm); - } + function customDelete(isForward) { + var mutationObserver, rng, caretElement; - // Remove old item from DOM - ctrlElm = oldItem.getEl(); - if (ctrlElm) { - ctrlElm.parentNode.removeChild(ctrlElm); + if (handleTextBlockMergeDelete(isForward)) { + return; } - } - // Adopt the item - newItem.parent(this); - }, + Tools.each(editor.getBody().getElementsByTagName('*'), function(elm) { + // Mark existing spans + if (elm.tagName == 'SPAN') { + elm.setAttribute('mce-data-marked', 1); + } - /** - * Creates the specified items. If any of the items is plain JSON style objects - * it will convert these into real tinymce.ui.Control instances. - * - * @method create - * @param {Array} items Array of items to convert into control instances. - * @return {Array} Array with control instances. - */ - create: function(items) { - var self = this, settings, ctrlItems = []; + // Make sure all elements has a data-mce-style attribute + if (!elm.hasAttribute('data-mce-style') && elm.hasAttribute('style')) { + editor.dom.setAttrib(elm, 'style', editor.dom.getAttrib(elm, 'style')); + } + }); - // Non array structure, then force it into an array - if (!Tools.isArray(items)) { - items = [items]; - } + // Observe added nodes and style attribute changes + mutationObserver = new MutationObserver(function() {}); + mutationObserver.observe(editor.getDoc(), { + childList: true, + attributes: true, + subtree: true, + attributeFilter: ['style'] + }); - // Add default type to each child control - Tools.each(items, function(item) { - if (item) { - // Construct item if needed - if (!(item instanceof Control)) { - // Name only then convert it to an object - if (typeof(item) == "string") { - item = {type: item}; - } + editor.getDoc().execCommand(isForward ? 'ForwardDelete' : 'Delete', false, null); - // Create control instance based on input settings and default settings - settings = Tools.extend({}, self.settings.defaults, item); - item.type = settings.type = settings.type || item.type || self.settings.defaultType || - (settings.defaults ? settings.defaults.type : null); - item = Factory.create(settings); + rng = editor.selection.getRng(); + caretElement = rng.startContainer.parentNode; + + Tools.each(mutationObserver.takeRecords(), function(record) { + if (!dom.isChildOf(record.target, editor.getBody())) { + return; } - ctrlItems.push(item); - } - }); + // Restore style attribute to previous value + if (record.attributeName == "style") { + var oldValue = record.target.getAttribute('data-mce-style'); - return ctrlItems; - }, + if (oldValue) { + record.target.setAttribute("style", oldValue); + } else { + record.target.removeAttribute("style"); + } + } - /** - * Renders new control instances. - * - * @private - */ - renderNew: function() { - var self = this; + // Remove all spans that aren't marked and retain selection + Tools.each(record.addedNodes, function(node) { + if (node.nodeName == "SPAN" && !node.getAttribute('mce-data-marked')) { + var offset, container; - // Render any new items - self.items().each(function(ctrl, index) { - var containerElm, fragment; + if (node == caretElement) { + offset = rng.startOffset; + container = node.firstChild; + } - ctrl.parent(self); + dom.remove(node, true); - if (!ctrl._rendered) { - containerElm = self.getEl('body'); - fragment = DomUtils.createFragment(ctrl.renderHtml()); + if (container) { + rng.setStart(container, offset); + rng.setEnd(container, offset); + editor.selection.setRng(rng); + } + } + }); + }); - // Insert or append the item - if (containerElm.hasChildNodes() && index <= containerElm.childNodes.length - 1) { - containerElm.insertBefore(fragment, containerElm.childNodes[index]); - } else { - containerElm.appendChild(fragment); + mutationObserver.disconnect(); + + // Remove any left over marks + Tools.each(editor.dom.select('span[mce-data-marked]'), function(span) { + span.removeAttribute('mce-data-marked'); + }); + } + + editor.on('keydown', function(e) { + var isForward = e.keyCode == DELETE, isMetaOrCtrl = e.ctrlKey || e.metaKey; + + if (!isDefaultPrevented(e) && (isForward || e.keyCode == BACKSPACE)) { + var rng = editor.selection.getRng(), container = rng.startContainer, offset = rng.startOffset; + + // Shift+Delete is cut + if (isForward && e.shiftKey) { + return; } - ctrl.postRender(); + if (handleLastBlockCharacterDelete(isForward, rng)) { + e.preventDefault(); + return; + } + + // Ignore non meta delete in the where there is text before/after the caret + if (!isMetaOrCtrl && rng.collapsed && container.nodeType == 3) { + if (isForward ? offset < container.data.length : offset > 0) { + return; + } + } + + e.preventDefault(); + + if (isMetaOrCtrl) { + editor.selection.getSel().modify("extend", isForward ? "forward" : "backward", e.metaKey ? "lineboundary" : "word"); + } + + customDelete(isForward); } }); - self._layout.applyClasses(self); - self._lastRect = null; + // Handle case where text is deleted by typing over + editor.on('keypress', function(e) { + if (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode > 31 && !VK.metaKeyPressed(e)) { + var rng, currentFormatNodes, fragmentNode, blockParent, caretNode, charText; - return self; - }, + rng = editor.selection.getRng(); + charText = String.fromCharCode(e.charCode); + e.preventDefault(); - /** - * Appends new instances to the current container. - * - * @method append - * @param {Array/tinymce.ui.Collection} items Array if controls to append. - * @return {tinymce.ui.Container} Current container instance. - */ - append: function(items) { - return this.add(items).renderNew(); - }, + // Keep track of current format nodes + currentFormatNodes = $(rng.startContainer).parents().filter(function(idx, node) { + return !!editor.schema.getTextInlineElements()[node.nodeName]; + }); - /** - * Prepends new instances to the current container. - * - * @method prepend - * @param {Array/tinymce.ui.Collection} items Array if controls to prepend. - * @return {tinymce.ui.Container} Current container instance. - */ - prepend: function(items) { - var self = this; + customDelete(true); - self.items().set(self.create(items).concat(self.items().toArray())); + // Check if the browser removed them + currentFormatNodes = currentFormatNodes.filter(function(idx, node) { + return !$.contains(editor.getBody(), node); + }); - return self.renderNew(); - }, + // Then re-add them + if (currentFormatNodes.length) { + fragmentNode = dom.createFragment(); - /** - * Inserts an control at a specific index. - * - * @method insert - * @param {Array/tinymce.ui.Collection} items Array if controls to insert. - * @param {Number} index Index to insert controls at. - * @param {Boolean} [before=false] Inserts controls before the index. - */ - insert: function(items, index, before) { - var self = this, curItems, beforeItems, afterItems; + currentFormatNodes.each(function(idx, formatNode) { + formatNode = formatNode.cloneNode(false); - items = self.create(items); - curItems = self.items(); + if (fragmentNode.hasChildNodes()) { + formatNode.appendChild(fragmentNode.firstChild); + fragmentNode.appendChild(formatNode); + } else { + caretNode = formatNode; + fragmentNode.appendChild(formatNode); + } - if (!before && index < curItems.length - 1) { - index += 1; - } + fragmentNode.appendChild(formatNode); + }); - if (index >= 0 && index < curItems.length) { - beforeItems = curItems.slice(0, index).toArray(); - afterItems = curItems.slice(index).toArray(); - curItems.set(beforeItems.concat(items, afterItems)); - } + caretNode.appendChild(editor.getDoc().createTextNode(charText)); - return self.renderNew(); - }, + // Prevent edge case where older WebKit would add an extra BR element + blockParent = dom.getParent(rng.startContainer, dom.isBlock); + if (dom.isEmpty(blockParent)) { + $(blockParent).empty().append(fragmentNode); + } else { + rng.insertNode(fragmentNode); + } - /** - * Populates the form fields from the specified JSON data object. - * - * Control items in the form that matches the data will have it's value set. - * - * @method fromJSON - * @param {Object} data JSON data object to set control values by. - * @return {tinymce.ui.Container} Current form instance. - */ - fromJSON: function(data) { - var self = this; + rng.setStart(caretNode.firstChild, 1); + rng.setEnd(caretNode.firstChild, 1); + editor.selection.setRng(rng); + } else { + editor.selection.setContent(charText); + } + } + }); + + editor.addCommand('Delete', function() { + customDelete(); + }); + + editor.addCommand('ForwardDelete', function() { + customDelete(true); + }); + + // Older WebKits doesn't properly handle the clipboard so we can't add the rest + if (olderWebKit) { + return; + } + + editor.on('dragstart', function(e) { + dragStartRng = selection.getRng(); + setMceInteralContent(e); + }); - for (var name in data) { - self.find('#' + name).value(data[name]); - } + editor.on('drop', function(e) { + if (!isDefaultPrevented(e)) { + var internalContent = getMceInternalContent(e); - return self; - }, + if (internalContent) { + e.preventDefault(); - /** - * Serializes the form into a JSON object by getting all items - * that has a name and a value. - * - * @method toJSON - * @return {Object} JSON object with form data. - */ - toJSON: function() { - var self = this, data = {}; + // Safari has a weird issue where drag/dropping images sometimes + // produces a green plus icon. When this happens the caretRangeFromPoint + // will return "null" even though the x, y coordinate is correct. + // But if we detach the insert from the drop event we will get a proper range + Delay.setEditorTimeout(editor, function() { + var pointRng = RangeUtils.getCaretRangeFromPoint(e.x, e.y, doc); - self.find('*').each(function(ctrl) { - var name = ctrl.name(), value = ctrl.value(); + if (dragStartRng) { + selection.setRng(dragStartRng); + dragStartRng = null; + } - if (name && typeof(value) != "undefined") { - data[name] = value; + customDelete(); + selection.setRng(pointRng); + insertClipboardContents(internalContent.html); + }); + } } }); - return data; - }, + editor.on('cut', function(e) { + if (!isDefaultPrevented(e) && e.clipboardData && !editor.selection.isCollapsed()) { + e.preventDefault(); + e.clipboardData.clearData(); + e.clipboardData.setData('text/html', editor.selection.getContent()); + e.clipboardData.setData('text/plain', editor.selection.getContent({format: 'text'})); - preRender: function() { - }, + // Needed delay for https://code.google.com/p/chromium/issues/detail?id=363288#c3 + // Nested delete/forwardDelete not allowed on execCommand("cut") + // This is ugly but not sure how to work around it otherwise + Delay.setEditorTimeout(editor, function() { + customDelete(true); + }); + } + }); + } /** - * Renders the control as a HTML string. + * Makes sure that the editor body becomes empty when backspace or delete is pressed in empty editors. * - * @method renderHtml - * @return {String} HTML representing the control. + * For example: + *

    |

    + * + * Or: + *

    |

    + * + * Or: + * [

    ] */ - renderHtml: function() { - var self = this, layout = self._layout, role = this.settings.role; - - self.preRender(); - layout.preRender(self); + function emptyEditorWhenDeleting() { + function serializeRng(rng) { + var body = dom.create("body"); + var contents = rng.cloneContents(); + body.appendChild(contents); + return selection.serializer.serialize(body, {format: 'html'}); + } - return ( - '
    ' + - '
    ' + - (self.settings.html || '') + layout.renderHtml(self) + - '
    ' + - '
    ' - ); - }, + function allContentsSelected(rng) { + if (!rng.setStart) { + if (rng.item) { + return false; + } - /** - * Post render method. Called after the control has been rendered to the target. - * - * @method postRender - * @return {tinymce.ui.Container} Current combobox instance. - */ - postRender: function() { - var self = this, box; + var bodyRng = rng.duplicate(); + bodyRng.moveToElementText(editor.getBody()); + return RangeUtils.compareRanges(rng, bodyRng); + } - self.items().exec('postRender'); - self._super(); + var selection = serializeRng(rng); - self._layout.postRender(self); - self._rendered = true; + var allRng = dom.createRng(); + allRng.selectNode(editor.getBody()); - if (self.settings.style) { - DomUtils.css(self.getEl(), self.settings.style); + var allSelection = serializeRng(allRng); + return selection === allSelection; } - if (self.settings.border) { - box = self.borderBox(); - DomUtils.css(self.getEl(), { - 'border-top-width': box.top, - 'border-right-width': box.right, - 'border-bottom-width': box.bottom, - 'border-left-width': box.left - }); - } + editor.on('keydown', function(e) { + var keyCode = e.keyCode, isCollapsed, body; - if (!self.parent()) { - self.keyboardNav = new KeyboardNavigation({ - root: self - }); - } + // Empty the editor if it's needed for example backspace at

    |

    + if (!isDefaultPrevented(e) && (keyCode == DELETE || keyCode == BACKSPACE)) { + isCollapsed = editor.selection.isCollapsed(); + body = editor.getBody(); - return self; - }, + // Selection is collapsed but the editor isn't empty + if (isCollapsed && !dom.isEmpty(body)) { + return; + } - /** - * Initializes the current controls layout rect. - * This will be executed by the layout managers to determine the - * default minWidth/minHeight etc. - * - * @method initLayoutRect - * @return {Object} Layout rect instance. - */ - initLayoutRect: function() { - var self = this, layoutRect = self._super(); + // Selection isn't collapsed but not all the contents is selected + if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) { + return; + } - // Recalc container size by asking layout manager - self._layout.recalc(self); + // Manually empty the editor + e.preventDefault(); + editor.setContent(''); - return layoutRect; - }, + if (body.firstChild && dom.isBlock(body.firstChild)) { + editor.selection.setCursorLocation(body.firstChild, 0); + } else { + editor.selection.setCursorLocation(body, 0); + } + + editor.nodeChanged(); + } + }); + } /** - * Recalculates the positions of the controls in the current container. - * This is invoked by the reflow method and shouldn't be called directly. - * - * @method recalc + * WebKit doesn't select all the nodes in the body when you press Ctrl+A. + * IE selects more than the contents [

    a

    ] instead of

    [a] see bug #6438 + * This selects the whole body so that backspace/delete logic will delete everything */ - recalc: function() { - var self = this, rect = self._layoutRect, lastRect = self._lastRect; - - if (!lastRect || lastRect.w != rect.w || lastRect.h != rect.h) { - self._layout.recalc(self); - rect = self.layoutRect(); - self._lastRect = {x: rect.x, y: rect.y, w: rect.w, h: rect.h}; - return true; - } - }, + function selectAll() { + editor.shortcuts.add('meta+a', null, 'SelectAll'); + } /** - * Reflows the current container and it's children and possible parents. - * This should be used after you for example append children to the current control so - * that the layout managers know that they need to reposition everything. + * WebKit has a weird issue where it some times fails to properly convert keypresses to input method keystrokes. + * The IME on Mac doesn't initialize when it doesn't fire a proper focus event. * - * @example - * container.append({type: 'button', text: 'My button'}).reflow(); + * This seems to happen when the user manages to click the documentElement element then the window doesn't get proper focus until + * you enter a character into the editor. * - * @method reflow - * @return {tinymce.ui.Container} Current container instance. + * It also happens when the first focus in made to the body. + * + * See: https://bugs.webkit.org/show_bug.cgi?id=83566 */ - reflow: function() { - var i; - - if (this.visible()) { - Control.repaintControls = []; - Control.repaintControls.map = {}; + function inputMethodFocus() { + if (!editor.settings.content_editable) { + // Case 1 IME doesn't initialize if you focus the document + // Disabled since it was interferring with the cE=false logic + // Also coultn't reproduce the issue on Safari 9 + /*dom.bind(editor.getDoc(), 'focusin', function() { + selection.setRng(selection.getRng()); + });*/ - this.recalc(); - i = Control.repaintControls.length; + // Case 2 IME doesn't initialize if you click the documentElement it also doesn't properly fire the focusin event + // Needs to be both down/up due to weird rendering bug on Chrome Windows + dom.bind(editor.getDoc(), 'mousedown mouseup', function(e) { + var rng; - while (i--) { - Control.repaintControls[i].repaint(); - } + if (e.target == editor.getDoc().documentElement) { + rng = selection.getRng(); + editor.getBody().focus(); - // TODO: Fix me! - if (this.settings.layout !== "flow" && this.settings.layout !== "stack") { - this.repaint(); - } + if (e.type == 'mousedown') { + if (CaretContainer.isCaretContainer(rng.startContainer)) { + return; + } - Control.repaintControls = []; + // Edge case for mousedown, drag select and mousedown again within selection on Chrome Windows to render caret + selection.placeCaretAt(e.clientX, e.clientY); + } else { + selection.setRng(rng); + } + } + }); } - - return this; } - }); -}); - -// Included from: js/tinymce/classes/ui/DragHelper.js - -/** - * DragHelper.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * Drag/drop helper class. - * - * @example - * var dragHelper = new tinymce.ui.DragHelper('mydiv', { - * start: function(evt) { - * }, - * - * drag: function(evt) { - * }, - * - * end: function(evt) { - * } - * }); - * - * @class tinymce.ui.DragHelper - */ -define("tinymce/ui/DragHelper", [ - "tinymce/ui/DomUtils" -], function(DomUtils) { - "use strict"; - function getDocumentSize() { - var doc = document, documentElement, body, scrollWidth, clientWidth; - var offsetWidth, scrollHeight, clientHeight, offsetHeight, max = Math.max; - - documentElement = doc.documentElement; - body = doc.body; + /** + * Backspacing in FireFox/IE from a paragraph into a horizontal rule results in a floating text node because the + * browser just deletes the paragraph - the browser fails to merge the text node with a horizontal rule so it is + * left there. TinyMCE sees a floating text node and wraps it in a paragraph on the key up event (ForceBlocks.js + * addRootBlocks), meaning the action does nothing. With this code, FireFox/IE matche the behaviour of other + * browsers. + * + * It also fixes a bug on Firefox where it's impossible to delete HR elements. + */ + function removeHrOnBackspace() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + // Check if there is any HR elements this is faster since getRng on IE 7 & 8 is slow + if (!editor.getBody().getElementsByTagName('hr').length) { + return; + } - scrollWidth = max(documentElement.scrollWidth, body.scrollWidth); - clientWidth = max(documentElement.clientWidth, body.clientWidth); - offsetWidth = max(documentElement.offsetWidth, body.offsetWidth); + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var node = selection.getNode(); + var previousSibling = node.previousSibling; - scrollHeight = max(documentElement.scrollHeight, body.scrollHeight); - clientHeight = max(documentElement.clientHeight, body.clientHeight); - offsetHeight = max(documentElement.offsetHeight, body.offsetHeight); + if (node.nodeName == 'HR') { + dom.remove(node); + e.preventDefault(); + return; + } - return { - width: scrollWidth < offsetWidth ? clientWidth : scrollWidth, - height: scrollHeight < offsetHeight ? clientHeight : scrollHeight - }; - } + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "hr") { + dom.remove(previousSibling); + e.preventDefault(); + } + } + } + }); + } - return function(id, settings) { - var eventOverlayElm, doc = document, downButton, start, stop, drag, startX, startY; + /** + * Firefox 3.x has an issue where the body element won't get proper focus if you click out + * side it's rectangle. + */ + function focusBody() { + // Fix for a focus bug in FF 3.x where the body element + // wouldn't get proper focus if the user clicked on the HTML element + if (!window.Range.prototype.getClientRects) { // Detect getClientRects got introduced in FF 4 + editor.on('mousedown', function(e) { + if (!isDefaultPrevented(e) && e.target.nodeName === "HTML") { + var body = editor.getBody(); - settings = settings || {}; + // Blur the body it's focused but not correctly focused + body.blur(); - function getHandleElm() { - return doc.getElementById(settings.handle || id); + // Refocus the body after a little while + Delay.setEditorTimeout(editor, function() { + body.focus(); + }); + } + }); + } } - start = function(e) { - var docSize = getDocumentSize(), handleElm, cursor; - - e.preventDefault(); - downButton = e.button; - handleElm = getHandleElm(); - startX = e.screenX; - startY = e.screenY; + /** + * WebKit has a bug where it isn't possible to select image, hr or anchor elements + * by clicking on them so we need to fake that. + */ + function selectControlElements() { + editor.on('click', function(e) { + var target = e.target; - // Grab cursor from handle - if (window.getComputedStyle) { - cursor = window.getComputedStyle(handleElm, null).getPropertyValue("cursor"); - } else { - cursor = handleElm.runtimeStyle.cursor; - } + // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250 + // WebKit can't even do simple things like selecting an image + // Needs to be the setBaseAndExtend or it will fail to select floated images + if (/^(IMG|HR)$/.test(target.nodeName) && dom.getContentEditableParent(target) !== "false") { + e.preventDefault(); + selection.getSel().setBaseAndExtent(target, 0, target, 1); + editor.nodeChanged(); + } - // Create event overlay and add it to document - eventOverlayElm = doc.createElement('div'); - DomUtils.css(eventOverlayElm, { - position: "absolute", - top: 0, left: 0, - width: docSize.width, - height: docSize.height, - zIndex: 0x7FFFFFFF, - opacity: 0.0001, - cursor: cursor + if (target.nodeName == 'A' && dom.hasClass(target, 'mce-item-anchor')) { + e.preventDefault(); + selection.select(target); + } }); + } + + /** + * Fixes a Gecko bug where the style attribute gets added to the wrong element when deleting between two block elements. + * + * Fixes do backspace/delete on this: + *

    bla[ck

    r]ed

    + * + * Would become: + *

    bla|ed

    + * + * Instead of: + *

    bla|ed

    + */ + function removeStylesWhenDeletingAcrossBlockElements() { + function getAttributeApplyFunction() { + var template = dom.getAttribs(selection.getStart().cloneNode(false)); - doc.body.appendChild(eventOverlayElm); + return function() { + var target = selection.getStart(); - // Bind mouse events - DomUtils.on(doc, 'mousemove', drag); - DomUtils.on(doc, 'mouseup', stop); + if (target !== editor.getBody()) { + dom.setAttrib(target, "style", null); - // Begin drag - settings.start(e); - }; + each(template, function(attr) { + target.setAttributeNode(attr.cloneNode(true)); + }); + } + }; + } - drag = function(e) { - if (e.button !== downButton) { - return stop(e); + function isSelectionAcrossElements() { + return !selection.isCollapsed() && + dom.getParent(selection.getStart(), dom.isBlock) != dom.getParent(selection.getEnd(), dom.isBlock); } - e.deltaX = e.screenX - startX; - e.deltaY = e.screenY - startY; + editor.on('keypress', function(e) { + var applyAttributes; - e.preventDefault(); - settings.drag(e); - }; + if (!isDefaultPrevented(e) && (e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); + editor.getDoc().execCommand('delete', false, null); + applyAttributes(); + e.preventDefault(); + return false; + } + }); - stop = function(e) { - DomUtils.off(doc, 'mousemove', drag); - DomUtils.off(doc, 'mouseup', stop); + dom.bind(editor.getDoc(), 'cut', function(e) { + var applyAttributes; - eventOverlayElm.parentNode.removeChild(eventOverlayElm); + if (!isDefaultPrevented(e) && isSelectionAcrossElements()) { + applyAttributes = getAttributeApplyFunction(); - if (settings.stop) { - settings.stop(e); - } - }; + Delay.setEditorTimeout(editor, function() { + applyAttributes(); + }); + } + }); + } /** - * Destroys the drag/drop helper instance. - * - * @method destroy + * Screen readers on IE needs to have the role application set on the body. */ - this.destroy = function() { - DomUtils.off(getHandleElm()); - }; - - DomUtils.on(getHandleElm(), 'mousedown', start); - }; -}); - -// Included from: js/tinymce/classes/ui/Scrollable.js - -/** - * Scrollable.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * This mixin makes controls scrollable using custom scrollbars. - * - * @-x-less Scrollable.less - * @mixin tinymce.ui.Scrollable - */ -define("tinymce/ui/Scrollable", [ - "tinymce/ui/DomUtils", - "tinymce/ui/DragHelper" -], function(DomUtils, DragHelper) { - "use strict"; + function ensureBodyHasRoleApplication() { + document.body.setAttribute("role", "application"); + } - return { - init: function() { - var self = this; - self.on('repaint', self.renderScroll); - }, + /** + * Backspacing into a table behaves differently depending upon browser type. + * Therefore, disable Backspace when cursor immediately follows a table. + */ + function disableBackspaceIntoATable() { + editor.on('keydown', function(e) { + if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { + if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { + var previousSibling = selection.getNode().previousSibling; + if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "table") { + e.preventDefault(); + return false; + } + } + } + }); + } - renderScroll: function() { - var self = this, margin = 2; + /** + * Old IE versions can't properly render BR elements in PRE tags white in contentEditable mode. So this + * logic adds a \n before the BR so that it will get rendered. + */ + function addNewLinesBeforeBrInPre() { + // IE8+ rendering mode does the right thing with BR in PRE + if (getDocumentMode() > 7) { + return; + } - function repaintScroll() { - var hasScrollH, hasScrollV, bodyElm; + // Enable display: none in area and add a specific class that hides all BR elements in PRE to + // avoid the caret from getting stuck at the BR elements while pressing the right arrow key + setEditorCommandState('RespectVisibilityInDesign', true); + editor.contentStyles.push('.mceHideBrInPre pre br {display: none}'); + dom.addClass(editor.getBody(), 'mceHideBrInPre'); - function repaintAxis(axisName, posName, sizeName, contentSizeName, hasScroll, ax) { - var containerElm, scrollBarElm, scrollThumbElm; - var containerSize, scrollSize, ratio, rect; - var posNameLower, sizeNameLower; + // Adds a \n before all BR elements in PRE to get them visual + parser.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; - scrollBarElm = self.getEl('scroll' + axisName); - if (scrollBarElm) { - posNameLower = posName.toLowerCase(); - sizeNameLower = sizeName.toLowerCase(); + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; - if (self.getEl('absend')) { - DomUtils.css(self.getEl('absend'), posNameLower, self.layoutRect()[contentSizeName] - 1); + // Add \n before BR in PRE elements on older IE:s so the new lines get rendered + sibling = brElm.prev; + if (sibling && sibling.type === 3 && sibling.value.charAt(sibling.value - 1) != '\n') { + sibling.value += '\n'; + } else { + brElm.parent.insert(new Node('#text', 3), brElm, true).value = '\n'; } + } + } + }); - if (!hasScroll) { - DomUtils.css(scrollBarElm, 'display', 'none'); - return; + // Removes any \n before BR elements in PRE since other browsers and in contentEditable=false mode they will be visible + serializer.addNodeFilter('pre', function(nodes) { + var i = nodes.length, brNodes, j, brElm, sibling; + + while (i--) { + brNodes = nodes[i].getAll('br'); + j = brNodes.length; + while (j--) { + brElm = brNodes[j]; + sibling = brElm.prev; + if (sibling && sibling.type == 3) { + sibling.value = sibling.value.replace(/\r?\n$/, ''); } + } + } + }); + } - DomUtils.css(scrollBarElm, 'display', 'block'); - containerElm = self.getEl('body'); - scrollThumbElm = self.getEl('scroll' + axisName + "t"); - containerSize = containerElm["client" + sizeName] - (margin * 2); - containerSize -= hasScrollH && hasScrollV ? scrollBarElm["client" + ax] : 0; - scrollSize = containerElm["scroll" + sizeName]; - ratio = containerSize / scrollSize; + /** + * Moves style width/height to attribute width/height when the user resizes an image on IE. + */ + function removePreSerializedStylesWhenSelectingControls() { + dom.bind(editor.getBody(), 'mouseup', function() { + var value, node = selection.getNode(); - rect = {}; - rect[posNameLower] = containerElm["offset" + posName] + margin; - rect[sizeNameLower] = containerSize; - DomUtils.css(scrollBarElm, rect); + // Moved styles to attributes on IMG eements + if (node.nodeName == 'IMG') { + // Convert style width to width attribute + if ((value = dom.getStyle(node, 'width'))) { + dom.setAttrib(node, 'width', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'width', ''); + } - rect = {}; - rect[posNameLower] = containerElm["scroll" + posName] * ratio; - rect[sizeNameLower] = containerSize * ratio; - DomUtils.css(scrollThumbElm, rect); + // Convert style height to height attribute + if ((value = dom.getStyle(node, 'height'))) { + dom.setAttrib(node, 'height', value.replace(/[^0-9%]+/g, '')); + dom.setStyle(node, 'height', ''); } } + }); + } - bodyElm = self.getEl('body'); - hasScrollH = bodyElm.scrollWidth > bodyElm.clientWidth; - hasScrollV = bodyElm.scrollHeight > bodyElm.clientHeight; + /** + * Removes a blockquote when backspace is pressed at the beginning of it. + * + * For example: + *

    |x

    + * + * Becomes: + *

    |x

    + */ + function removeBlockQuoteOnBackSpace() { + // Add block quote deletion handler + editor.on('keydown', function(e) { + var rng, container, offset, root, parent; - repaintAxis("h", "Left", "Width", "contentW", hasScrollH, "Height"); - repaintAxis("v", "Top", "Height", "contentH", hasScrollV, "Width"); - } + if (isDefaultPrevented(e) || e.keyCode != VK.BACKSPACE) { + return; + } - function addScroll() { - function addScrollAxis(axisName, posName, sizeName, deltaPosName, ax) { - var scrollStart, axisId = self._id + '-scroll' + axisName, prefix = self.classPrefix; + rng = selection.getRng(); + container = rng.startContainer; + offset = rng.startOffset; + root = dom.getRoot(); + parent = container; - self.getEl().appendChild(DomUtils.createFragment( - '
    ' + - '
    ' + - '
    ' - )); + if (!rng.collapsed || offset !== 0) { + return; + } - self.draghelper = new DragHelper(axisId + 't', { - start: function() { - scrollStart = self.getEl('body')["scroll" + posName]; - DomUtils.addClass(DomUtils.get(axisId), prefix + 'active'); - }, + while (parent && parent.parentNode && parent.parentNode.firstChild == parent && parent.parentNode != root) { + parent = parent.parentNode; + } - drag: function(e) { - var ratio, hasScrollH, hasScrollV, containerSize, layoutRect = self.layoutRect(); + // Is the cursor at the beginning of a blockquote? + if (parent.tagName === 'BLOCKQUOTE') { + // Remove the blockquote + editor.formatter.toggle('blockquote', null, parent); - hasScrollH = layoutRect.contentW > layoutRect.innerW; - hasScrollV = layoutRect.contentH > layoutRect.innerH; - containerSize = self.getEl('body')["client" + sizeName] - (margin * 2); - containerSize -= hasScrollH && hasScrollV ? self.getEl('scroll' + axisName)["client" + ax] : 0; + // Move the caret to the beginning of container + rng = dom.createRng(); + rng.setStart(container, 0); + rng.setEnd(container, 0); + selection.setRng(rng); + } + }); + } - ratio = containerSize / self.getEl('body')["scroll" + sizeName]; - self.getEl('body')["scroll" + posName] = scrollStart + (e["delta" + deltaPosName] / ratio); - }, + /** + * Sets various Gecko editing options on mouse down and before a execCommand to disable inline table editing that is broken etc. + */ + function setGeckoEditingOptions() { + function setOpts() { + editor._refreshContentEditable(); - stop: function() { - DomUtils.removeClass(DomUtils.get(axisId), prefix + 'active'); - } - }); -/* - self.on('click', function(e) { - if (e.target.id == self._id + '-scrollv') { + setEditorCommandState("StyleWithCSS", false); + setEditorCommandState("enableInlineTableEditing", false); - } - });*/ + if (!settings.object_resizing) { + setEditorCommandState("enableObjectResizing", false); } + } - self.addClass('scroll'); - - addScrollAxis("v", "Top", "Height", "Y", "Width"); - addScrollAxis("h", "Left", "Width", "X", "Height"); + if (!settings.readonly) { + editor.on('BeforeExecCommand MouseDown', setOpts); } + } - if (self.settings.autoScroll) { - if (!self._hasScroll) { - self._hasScroll = true; - addScroll(); + /** + * Fixes a gecko link bug, when a link is placed at the end of block elements there is + * no way to move the caret behind the link. This fix adds a bogus br element after the link. + * + * For example this: + *

    x

    + * + * Becomes this: + *

    x

    + */ + function addBrAfterLastLinks() { + function fixLinks() { + each(dom.select('a'), function(node) { + var parentNode = node.parentNode, root = dom.getRoot(); - self.on('wheel', function(e) { - var bodyEl = self.getEl('body'); + if (parentNode.lastChild === node) { + while (parentNode && !dom.isBlock(parentNode)) { + if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) { + return; + } - bodyEl.scrollLeft += (e.deltaX || 0) * 10; - bodyEl.scrollTop += e.deltaY * 10; + parentNode = parentNode.parentNode; + } - repaintScroll(); - }); + dom.add(parentNode, 'br', {'data-mce-bogus': 1}); + } + }); + } - DomUtils.on(self.getEl('body'), "scroll", repaintScroll); + editor.on('SetContent ExecCommand', function(e) { + if (e.type == "setcontent" || e.command === 'mceInsertLink') { + fixLinks(); } + }); + } - repaintScroll(); + /** + * WebKit will produce DIV elements here and there by default. But since TinyMCE uses paragraphs by + * default we want to change that behavior. + */ + function setDefaultBlockType() { + if (settings.forced_root_block) { + editor.on('init', function() { + setEditorCommandState('DefaultParagraphSeparator', settings.forced_root_block); + }); } } - }; -}); -// Included from: js/tinymce/classes/ui/Panel.js + /** + * Deletes the selected image on IE instead of navigating to previous page. + */ + function deleteControlItemOnBackSpace() { + editor.on('keydown', function(e) { + var rng; -/** - * Panel.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + if (!isDefaultPrevented(e) && e.keyCode == BACKSPACE) { + rng = editor.getDoc().selection.createRange(); + if (rng && rng.item) { + e.preventDefault(); + editor.undoManager.beforeChange(); + dom.remove(rng.item(0)); + editor.undoManager.add(); + } + } + }); + } -/** - * Creates a new panel. - * - * @-x-less Panel.less - * @class tinymce.ui.Panel - * @extends tinymce.ui.Container - * @mixes tinymce.ui.Scrollable - */ -define("tinymce/ui/Panel", [ - "tinymce/ui/Container", - "tinymce/ui/Scrollable" -], function(Container, Scrollable) { - "use strict"; + /** + * IE10 doesn't properly render block elements with the right height until you add contents to them. + * This fixes that by adding a padding-right to all empty text block elements. + * See: https://connect.microsoft.com/IE/feedback/details/743881 + */ + function renderEmptyBlocksFix() { + var emptyBlocksCSS; - return Container.extend({ - Defaults: { - layout: 'fit', - containerCls: 'panel' - }, + // IE10+ + if (getDocumentMode() >= 10) { + emptyBlocksCSS = ''; + each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) { + emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty'; + }); - Mixins: [Scrollable], + editor.contentStyles.push(emptyBlocksCSS + '{padding-right: 1px !important}'); + } + } /** - * Renders the control as a HTML string. - * - * @method renderHtml - * @return {String} HTML representing the control. + * Old IE versions can't retain contents within noscript elements so this logic will store the contents + * as a attribute and the insert that value as it's raw text when the DOM is serialized. */ - renderHtml: function() { - var self = this, layout = self._layout, innerHtml = self.settings.html; - - self.preRender(); - layout.preRender(self); + function keepNoScriptContents() { + if (getDocumentMode() < 9) { + parser.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode; - if (typeof(innerHtml) == "undefined") { - innerHtml = ( - '
    ' + - layout.renderHtml(self) + - '
    ' - ); - } else { - if (typeof(innerHtml) == 'function') { - innerHtml = innerHtml.call(self); - } + while (i--) { + node = nodes[i]; + textNode = node.firstChild; - self._hasBody = false; - } + if (textNode) { + node.attr('data-mce-innertext', textNode.value); + } + } + }); - return ( - '
    ' + - (self._preBodyHtml || '') + - innerHtml + - '
    ' - ); - } - }); -}); + serializer.addNodeFilter('noscript', function(nodes) { + var i = nodes.length, node, textNode, value; -// Included from: js/tinymce/classes/ui/Movable.js + while (i--) { + node = nodes[i]; + textNode = nodes[i].firstChild; -/** - * Movable.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + if (textNode) { + textNode.value = Entities.decode(textNode.value); + } else { + // Old IE can't retain noscript value so an attribute is used to store it + value = node.attributes.map['data-mce-innertext']; + if (value) { + node.attr('data-mce-innertext', null); + textNode = new Node('#text', 3); + textNode.value = value; + textNode.raw = true; + node.append(textNode); + } + } + } + }); + } + } -/** - * Movable mixin. Makes controls movable absolute and relative to other elements. - * - * @mixin tinymce.ui.Movable - */ -define("tinymce/ui/Movable", [ - "tinymce/ui/DomUtils" -], function(DomUtils) { - "use strict"; + /** + * IE has an issue where you can't select/move the caret by clicking outside the body if the document is in standards mode. + */ + function fixCaretSelectionOfDocumentElementOnIe() { + var doc = dom.doc, body = doc.body, started, startRng, htmlElm; - function calculateRelativePosition(ctrl, targetElm, rel) { - var ctrlElm, pos, x, y, selfW, selfH, targetW, targetH, viewport, size; + // Return range from point or null if it failed + function rngFromPoint(x, y) { + var rng = body.createTextRange(); - viewport = DomUtils.getViewPort(); + try { + rng.moveToPoint(x, y); + } catch (ex) { + // IE sometimes throws and exception, so lets just ignore it + rng = null; + } - // Get pos of target - pos = DomUtils.getPos(targetElm); - x = pos.x; - y = pos.y; + return rng; + } - if (ctrl._fixed && DomUtils.getRuntimeStyle(document.body, 'position') == 'static') { - x -= viewport.x; - y -= viewport.y; - } + // Fires while the selection is changing + function selectionChange(e) { + var pointRng; - // Get size of self - ctrlElm = ctrl.getEl(); - size = DomUtils.getSize(ctrlElm); - selfW = size.width; - selfH = size.height; + // Check if the button is down or not + if (e.button) { + // Create range from mouse position + pointRng = rngFromPoint(e.x, e.y); - // Get size of target - size = DomUtils.getSize(targetElm); - targetW = size.width; - targetH = size.height; + if (pointRng) { + // Check if pointRange is before/after selection then change the endPoint + if (pointRng.compareEndPoints('StartToStart', startRng) > 0) { + pointRng.setEndPoint('StartToStart', startRng); + } else { + pointRng.setEndPoint('EndToEnd', startRng); + } - // Parse align string - rel = (rel || '').split(''); + pointRng.select(); + } + } else { + endSelection(); + } + } - // Target corners - if (rel[0] === 'b') { - y += targetH; - } + // Removes listeners + function endSelection() { + var rng = doc.selection.createRange(); - if (rel[1] === 'r') { - x += targetW; - } + // If the range is collapsed then use the last start range + if (startRng && !rng.item && rng.compareEndPoints('StartToEnd', rng) === 0) { + startRng.select(); + } - if (rel[0] === 'c') { - y += Math.round(targetH / 2); - } + dom.unbind(doc, 'mouseup', endSelection); + dom.unbind(doc, 'mousemove', selectionChange); + startRng = started = 0; + } - if (rel[1] === 'c') { - x += Math.round(targetW / 2); - } + // Make HTML element unselectable since we are going to handle selection by hand + doc.documentElement.unselectable = true; - // Self corners - if (rel[3] === 'b') { - y -= selfH; - } + // Detect when user selects outside BODY + dom.bind(doc, 'mousedown contextmenu', function(e) { + if (e.target.nodeName === 'HTML') { + if (started) { + endSelection(); + } - if (rel[4] === 'r') { - x -= selfW; - } + // Detect vertical scrollbar, since IE will fire a mousedown on the scrollbar and have target set as HTML + htmlElm = doc.documentElement; + if (htmlElm.scrollHeight > htmlElm.clientHeight) { + return; + } - if (rel[3] === 'c') { - y -= Math.round(selfH / 2); - } + started = 1; + // Setup start position + startRng = rngFromPoint(e.x, e.y); + if (startRng) { + // Listen for selection change events + dom.bind(doc, 'mouseup', endSelection); + dom.bind(doc, 'mousemove', selectionChange); - if (rel[4] === 'c') { - x -= Math.round(selfW / 2); + dom.getRoot().focus(); + startRng.select(); + } + } + }); } - return { - x: x, - y: y, - w: selfW, - h: selfH - }; - } - - return { /** - * Tests various positions to get the most suitable one. - * - * @method testMoveRel - * @param {DOMElement} elm Element to position against. - * @param {Array} rels Array with relative positions. - * @return {String} Best suitable relative position. + * Fixes selection issues where the caret can be placed between two inline elements like a|b + * this fix will lean the caret right into the closest inline element. */ - testMoveRel: function(elm, rels) { - var viewPortRect = DomUtils.getViewPort(); - - for (var i = 0; i < rels.length; i++) { - var pos = calculateRelativePosition(this, elm, rels[i]); - - if (this._fixed) { - if (pos.x > 0 && pos.x + pos.w < viewPortRect.w && pos.y > 0 && pos.y + pos.h < viewPortRect.h) { - return rels[i]; - } - } else { - if (pos.x > viewPortRect.x && pos.x + pos.w < viewPortRect.w + viewPortRect.x && - pos.y > viewPortRect.y && pos.y + pos.h < viewPortRect.h + viewPortRect.y) { - return rels[i]; - } + function normalizeSelection() { + // Normalize selection for example a|a becomes a|a except for Ctrl+A since it selects everything + editor.on('keyup focusin mouseup', function(e) { + if (e.keyCode != 65 || !VK.metaKeyPressed(e)) { + selection.normalize(); } - } + }, true); + } - return rels[0]; - }, + /** + * Forces Gecko to render a broken image icon if it fails to load an image. + */ + function showBrokenImageIcon() { + editor.contentStyles.push( + 'img:-moz-broken {' + + '-moz-force-broken-image-icon:1;' + + 'min-width:24px;' + + 'min-height:24px' + + '}' + ); + } /** - * Move relative to the specified element. + * iOS has a bug where it's impossible to type if the document has a touchstart event + * bound and the user touches the document while having the on screen keyboard visible. * - * @method moveRel - * @param {Element} elm Element to move relative to. - * @param {String} rel Relative mode. For example: br-tl. - * @return {tinymce.ui.Control} Current control instance. + * The touch event moves the focus to the parent document while having the caret inside the iframe + * this fix moves the focus back into the iframe document. */ - moveRel: function(elm, rel) { - if (typeof(rel) != 'string') { - rel = this.testMoveRel(elm, rel); + function restoreFocusOnKeyDown() { + if (!editor.inline) { + editor.on('keydown', function() { + if (document.activeElement == document.body) { + editor.getWin().focus(); + } + }); } - - var pos = calculateRelativePosition(this, elm, rel); - return this.moveTo(pos.x, pos.y); - }, + } /** - * Move by a relative x, y values. - * - * @method moveBy - * @param {Number} dx Relative x position. - * @param {Number} dy Relative y position. - * @return {tinymce.ui.Control} Current control instance. + * IE 11 has an annoying issue where you can't move focus into the editor + * by clicking on the white area HTML element. We used to be able to to fix this with + * the fixCaretSelectionOfDocumentElementOnIe fix. But since M$ removed the selection + * object it's not possible anymore. So we need to hack in a ungly CSS to force the + * body to be at least 150px. If the user clicks the HTML element out side this 150px region + * we simply move the focus into the first paragraph. Not ideal since you loose the + * positioning of the caret but goot enough for most cases. */ - moveBy: function(dx, dy) { - var self = this, rect = self.layoutRect(); + function bodyHeight() { + if (!editor.inline) { + editor.contentStyles.push('body {min-height: 150px}'); + editor.on('click', function(e) { + var rng; - self.moveTo(rect.x + dx, rect.y + dy); + if (e.target.nodeName == 'HTML') { + // Edge seems to only need focus if we set the range + // the caret will become invisible and moved out of the iframe!! + if (Env.ie > 11) { + editor.getBody().focus(); + return; + } - return self; - }, + // Need to store away non collapsed ranges since the focus call will mess that up see #7382 + rng = editor.selection.getRng(); + editor.getBody().focus(); + editor.selection.setRng(rng); + editor.selection.normalize(); + editor.nodeChanged(); + } + }); + } + } /** - * Move to absolute position. - * - * @method moveTo - * @param {Number} x Absolute x position. - * @param {Number} y Absolute y position. - * @return {tinymce.ui.Control} Current control instance. + * Firefox on Mac OS will move the browser back to the previous page if you press CMD+Left arrow. + * You might then loose all your work so we need to block that behavior and replace it with our own. */ - moveTo: function(x, y) { - var self = this; - - // TODO: Move this to some global class - function contrain(value, max, size) { - if (value < 0) { - return 0; - } - - if (value + size > max) { - value = max - size; - return value < 0 ? 0 : value; - } - - return value; - } - - if (self.settings.constrainToViewport) { - var viewPortRect = DomUtils.getViewPort(window); - var layoutRect = self.layoutRect(); - - x = contrain(x, viewPortRect.w + viewPortRect.x, layoutRect.w); - y = contrain(y, viewPortRect.h + viewPortRect.y, layoutRect.h); - } - - if (self._rendered) { - self.layoutRect({x: x, y: y}).repaint(); - } else { - self.settings.x = x; - self.settings.y = y; + function blockCmdArrowNavigation() { + if (Env.mac) { + editor.on('keydown', function(e) { + if (VK.metaKeyPressed(e) && !e.shiftKey && (e.keyCode == 37 || e.keyCode == 39)) { + e.preventDefault(); + editor.selection.getSel().modify('move', e.keyCode == 37 ? 'backward' : 'forward', 'lineboundary'); + } + }); } - - self.fire('move', {x: x, y: y}); - - return self; } - }; -}); - -// Included from: js/tinymce/classes/ui/Resizable.js - -/** - * Resizable.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * Resizable mixin. Enables controls to be resized. - * - * @mixin tinymce.ui.Resizable - */ -define("tinymce/ui/Resizable", [ - "tinymce/ui/DomUtils" -], function(DomUtils) { - "use strict"; - return { /** - * Resizes the control to contents. - * - * @method resizeToContent + * Disables the autolinking in IE 9+ this is then re-enabled by the autolink plugin. */ - resizeToContent: function() { - this._layoutRect.autoResize = true; - this._lastRect = null; - this.reflow(); - }, + function disableAutoUrlDetect() { + setEditorCommandState("AutoUrlDetect", false); + } /** - * Resizes the control to a specific width/height. - * - * @method resizeTo - * @param {Number} w Control width. - * @param {Number} h Control height. - * @return {tinymce.ui.Control} Current control instance. + * iOS 7.1 introduced two new bugs: + * 1) It's possible to open links within a contentEditable area by clicking on them. + * 2) If you hold down the finger it will display the link/image touch callout menu. */ - resizeTo: function(w, h) { - // TODO: Fix hack - if (w <= 1 || h <= 1) { - var rect = DomUtils.getWindowSize(); + function tapLinksAndImages() { + editor.on('click', function(e) { + var elm = e.target; - w = w <= 1 ? w * rect.w : w; - h = h <= 1 ? h * rect.h : h; - } + do { + if (elm.tagName === 'A') { + e.preventDefault(); + return; + } + } while ((elm = elm.parentNode)); + }); - this._layoutRect.autoResize = false; - return this.layoutRect({minW: w, minH: h, w: w, h: h}).reflow(); - }, + editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}'); + } /** - * Resizes the control to a specific relative width/height. - * - * @method resizeBy - * @param {Number} dw Relative control width. - * @param {Number} dh Relative control height. - * @return {tinymce.ui.Control} Current control instance. + * iOS Safari and possible other browsers have a bug where it won't fire + * a click event when a contentEditable is focused. This function fakes click events + * by using touchstart/touchend and measuring the time and distance travelled. */ - resizeBy: function(dw, dh) { - var self = this, rect = self.layoutRect(); + /* + function touchClickEvent() { + editor.on('touchstart', function(e) { + var elm, time, startTouch, changedTouches; - return self.resizeTo(rect.w + dw, rect.h + dh); - } - }; -}); + elm = e.target; + time = new Date().getTime(); + changedTouches = e.changedTouches; -// Included from: js/tinymce/classes/ui/FloatPanel.js + if (!changedTouches || changedTouches.length > 1) { + return; + } -/** - * FloatPanel.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ + startTouch = changedTouches[0]; -/** - * This class creates a floating panel. - * - * @-x-less FloatPanel.less - * @class tinymce.ui.FloatPanel - * @extends tinymce.ui.Panel - * @mixes tinymce.ui.Movable - * @mixes tinymce.ui.Resizable - */ -define("tinymce/ui/FloatPanel", [ - "tinymce/ui/Panel", - "tinymce/ui/Movable", - "tinymce/ui/Resizable", - "tinymce/ui/DomUtils" -], function(Panel, Movable, Resizable, DomUtils) { - "use strict"; + editor.once('touchend', function(e) { + var endTouch = e.changedTouches[0], args; - var documentClickHandler, documentScrollHandler, windowResizeHandler, visiblePanels = []; - var zOrder = [], hasModal; + if (new Date().getTime() - time > 500) { + return; + } - function bindDocumentClickHandler() { - function isChildOf(ctrl, parent) { - while (ctrl) { - if (ctrl == parent) { - return true; - } + if (Math.abs(startTouch.clientX - endTouch.clientX) > 5) { + return; + } - ctrl = ctrl.parent(); - } - } + if (Math.abs(startTouch.clientY - endTouch.clientY) > 5) { + return; + } - if (!documentClickHandler) { - documentClickHandler = function(e) { - // Gecko fires click event and in the wrong order on Mac so lets normalize - if (e.button == 2) { - return; - } + args = { + target: elm + }; - // Hide any float panel when a click is out side that float panel and the - // float panels direct parent for example a click on a menu button - var i = visiblePanels.length; - while (i--) { - var panel = visiblePanels[i], clickCtrl = panel.getParentCtrl(e.target); + each('pageX pageY clientX clientY screenX screenY'.split(' '), function(key) { + args[key] = endTouch[key]; + }); - if (panel.settings.autohide) { - if (clickCtrl) { - if (isChildOf(clickCtrl, panel) || panel.parent() === clickCtrl) { - continue; - } - } + args = editor.fire('click', args); - e = panel.fire('autohide', {target: e.target}); - if (!e.isDefaultPrevented()) { - panel.hide(); - } + if (!args.isDefaultPrevented()) { + // iOS WebKit can't place the caret properly once + // you bind touch events so we need to do this manually + // TODO: Expand to the closest word? Touble tap still works. + editor.selection.placeCaretAt(endTouch.clientX, endTouch.clientY); + editor.nodeChanged(); } - } - }; - - DomUtils.on(document, 'click', documentClickHandler); + }); + }); } - } - - function bindDocumentScrollHandler() { - if (!documentScrollHandler) { - documentScrollHandler = function() { - var i; - - i = visiblePanels.length; - while (i--) { - repositionPanel(visiblePanels[i]); - } - }; + */ - DomUtils.on(window, 'scroll', documentScrollHandler); + /** + * WebKit has a bug where it will allow forms to be submitted if they are inside a contentEditable element. + * For example this:
    ' + - '
    ' + - '
    ' - ); - } + function blobInfoToData(blobInfo) { + return { + id: blobInfo.id, + blob: blobInfo.blob, + base64: blobInfo.base64, + filename: Fun.constant(fileName(blobInfo)) + }; + } - if (settings.url) { - html = ''; - } + function defaultHandler(blobInfo, success, failure, openNotification) { + var xhr, formData, notification; - if (typeof(html) == "undefined") { - html = layout.renderHtml(self); - } + xhr = new XMLHttpRequest(); + xhr.open('POST', settings.url); + xhr.withCredentials = settings.credentials; - if (self.statusbar) { - footerHtml = self.statusbar.renderHtml(); - } + notification = openNotification(); - return ( - '
    ' + - '
    ' + - headerHtml + - '
    ' + - html + - '
    ' + - footerHtml + - '
    ' + - '
    ' - ); - }, + xhr.upload.onprogress = function(e) { + var percentLoaded = Math.round(e.loaded / e.total * 100); + notification.progressBar.value(percentLoaded); + }; + + xhr.onload = function() { + var json; + + notification.close(); + + if (xhr.status != 200) { + failure("HTTP Error: " + xhr.status); + return; + } - /** - * Switches the window fullscreen mode. - * - * @method fullscreen - * @param {Boolean} state True/false state. - * @return {tinymce.ui.Window} Current window instance. - */ - fullscreen: function(state) { - var self = this, documentElement = document.documentElement, slowRendering, prefix = self.classPrefix, layoutRect; + json = JSON.parse(xhr.responseText); - if (state != self._fullscreen) { - DomUtils.on(window, 'resize', function() { - var time; + if (!json || typeof json.location != "string") { + failure("Invalid JSON: " + xhr.responseText); + return; + } - if (self._fullscreen) { - // Time the layout time if it's to slow use a timeout to not hog the CPU - if (!slowRendering) { - time = new Date().getTime(); + success(pathJoin(settings.basePath, json.location)); + }; - var rect = DomUtils.getWindowSize(); - self.moveTo(0, 0).resizeTo(rect.w, rect.h); + formData = new FormData(); + formData.append('file', blobInfo.blob(), fileName(blobInfo)); - if ((new Date().getTime()) - time > 50) { - slowRendering = true; - } - } else { - if (!self._timer) { - self._timer = setTimeout(function() { - var rect = DomUtils.getWindowSize(); - self.moveTo(0, 0).resizeTo(rect.w, rect.h); + xhr.send(formData); + } - self._timer = 0; - }, 50); - } - } - } - }); + function noUpload() { + return new Promise(function(resolve) { + resolve([]); + }); + } - layoutRect = self.layoutRect(); - self._fullscreen = state; + function interpretResult(promise) { + return promise.then(function(result) { + return result; + })['catch'](function(error) { + return error; + }); + } - if (!state) { - self._borderBox = self.parseBox(self.settings.border); - self.getEl('head').style.display = ''; - layoutRect.deltaH += layoutRect.headerH; - DomUtils.removeClass(documentElement, prefix + 'fullscreen'); - DomUtils.removeClass(document.body, prefix + 'fullscreen'); - self.removeClass('fullscreen'); - self.moveTo(self._initial.x, self._initial.y).resizeTo(self._initial.w, self._initial.h); - } else { - self._initial = {x: layoutRect.x, y: layoutRect.y, w: layoutRect.w, h: layoutRect.h}; + function registerPromise(handler, id, blobInfo) { + var response = handler(blobInfo); + var promise = interpretResult(response); + delete cachedPromises[id]; + cachedPromises[id] = promise; + return promise; + } - self._borderBox = self.parseBox('0'); - self.getEl('head').style.display = 'none'; - layoutRect.deltaH -= layoutRect.headerH + 2; - DomUtils.addClass(documentElement, prefix + 'fullscreen'); - DomUtils.addClass(document.body, prefix + 'fullscreen'); - self.addClass('fullscreen'); + function collectUploads(blobInfos, uploadBlobInfo) { + return Tools.map(blobInfos, function(blobInfo) { + var id = blobInfo.id(); + return cachedPromises[id] ? cachedPromises[id] : registerPromise(uploadBlobInfo, id, blobInfo); + }); + } - var rect = DomUtils.getWindowSize(); - self.moveTo(0, 0).resizeTo(rect.w, rect.h); - } + function uploadBlobs(blobInfos, openNotification) { + function uploadBlobInfo(blobInfo) { + return new Promise(function(resolve) { + var handler = settings.handler; + + handler(blobInfoToData(blobInfo), function(url) { + resolve({ + url: url, + blobInfo: blobInfo, + status: true + }); + }, function(failure) { + resolve({ + url: '', + blobInfo: blobInfo, + status: false, + error: failure + }); + }, openNotification); + }); } - return self.reflow(); - }, + var promises = collectUploads(blobInfos, uploadBlobInfo); + return Promise.all(promises); + } - /** - * Called after the control has been rendered. - * - * @method postRender - */ - postRender: function() { - var self = this, startPos; + function upload(blobInfos, openNotification) { + return (!settings.url && settings.handler === defaultHandler) ? noUpload() : uploadBlobs(blobInfos, openNotification); + } - setTimeout(function() { - self.addClass('in'); - }, 0); + settings = Tools.extend({ + credentials: false, + // We are adding a notify argument to this (at the moment, until it doesn't work) + handler: defaultHandler + }, settings); - self._super(); + return { + upload: upload + }; + }; +}); - if (self.statusbar) { - self.statusbar.postRender(); - } +// Included from: js/tinymce/classes/file/Conversions.js - self.focus(); +/** + * Conversions.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - this.dragHelper = new DragHelper(self._id + '-dragh', { - start: function() { - startPos = { - x: self.layoutRect().x, - y: self.layoutRect().y - }; - }, +/** + * Converts blob/uris back and forth. + * + * @private + * @class tinymce.file.Conversions + */ +define("tinymce/file/Conversions", [ + "tinymce/util/Promise" +], function(Promise) { + function blobUriToBlob(url) { + return new Promise(function(resolve) { + var xhr = new XMLHttpRequest(); - drag: function(e) { - self.moveTo(startPos.x + e.deltaX, startPos.y + e.deltaY); - } - }); + xhr.open('GET', url, true); + xhr.responseType = 'blob'; - self.on('submit', function(e) { - if (!e.isDefaultPrevented()) { - self.close(); + xhr.onload = function() { + if (this.status == 200) { + resolve(this.response); } - }); - }, + }; - /** - * Fires a submit event with the serialized form. - * - * @method submit - * @return {Object} Event arguments object. - */ - submit: function() { - return this.fire('submit', {data: this.toJSON()}); - }, + xhr.send(); + }); + } - /** - * Removes the current control from DOM and from UI collections. - * - * @method remove - * @return {tinymce.ui.Control} Current control instance. - */ - remove: function() { - var self = this, prefix = self.classPrefix; + function parseDataUri(uri) { + var type, matches; - self.dragHelper.destroy(); - self._super(); + uri = decodeURIComponent(uri).split(','); - if (self.statusbar) { - this.statusbar.remove(); + matches = /data:([^;]+)/.exec(uri[0]); + if (matches) { + type = matches[1]; + } + + return { + type: type, + data: uri[1] + }; + } + + function dataUriToBlob(uri) { + return new Promise(function(resolve) { + var str, arr, i; + + uri = parseDataUri(uri); + + // Might throw error if data isn't proper base64 + try { + str = atob(uri.data); + } catch (e) { + resolve(new Blob([])); + return; } - if (self._fullscreen) { - DomUtils.removeClass(document.documentElement, prefix + 'fullscreen'); - DomUtils.removeClass(document.body, prefix + 'fullscreen'); + arr = new Uint8Array(str.length); + + for (i = 0; i < arr.length; i++) { + arr[i] = str.charCodeAt(i); } - }, - /** - * Returns the contentWindow object of the iframe if it exists. - * - * @method getContentWindow - * @return {Window} window object or null. - */ - getContentWindow: function() { - var ifr = this.getEl().getElementsByTagName('iframe')[0]; - return ifr ? ifr.contentWindow : null; + resolve(new Blob([arr], {type: uri.type})); + }); + } + + function uriToBlob(url) { + if (url.indexOf('blob:') === 0) { + return blobUriToBlob(url); } - }); - return Window; + if (url.indexOf('data:') === 0) { + return dataUriToBlob(url); + } + + return null; + } + + function blobToDataUri(blob) { + return new Promise(function(resolve) { + var reader = new FileReader(); + + reader.onloadend = function() { + resolve(reader.result); + }; + + reader.readAsDataURL(blob); + }); + } + + return { + uriToBlob: uriToBlob, + blobToDataUri: blobToDataUri, + parseDataUri: parseDataUri + }; }); -// Included from: js/tinymce/classes/ui/MessageBox.js +// Included from: js/tinymce/classes/file/ImageScanner.js /** - * MessageBox.js + * ImageScanner.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /** - * This class is used to create MessageBoxes like alerts/confirms etc. + * Finds images with data uris or blob uris. If data uris are found it will convert them into blob uris. * - * @class tinymce.ui.MessageBox - * @extends tinymce.ui.Window + * @private + * @class tinymce.file.ImageScanner */ -define("tinymce/ui/MessageBox", [ - "tinymce/ui/Window" -], function(Window) { - "use strict"; +define("tinymce/file/ImageScanner", [ + "tinymce/util/Promise", + "tinymce/util/Arr", + "tinymce/util/Fun", + "tinymce/file/Conversions", + "tinymce/Env" +], function(Promise, Arr, Fun, Conversions, Env) { + var count = 0; - var MessageBox = Window.extend({ - /** - * Constructs a instance with the specified settings. - * - * @constructor - * @param {Object} settings Name/value object with settings. - */ - init: function(settings) { - settings = { - border: 1, - padding: 20, - layout: 'flex', - pack: "center", - align: "center", - containerCls: 'panel', - autoScroll: true, - buttons: {type: "button", text: "Ok", action: "ok"}, - items: { - type: "label", - multiline: true, - maxWidth: 500, - maxHeight: 200 - } - }; + return function(blobCache) { + var cachedPromises = {}; - this._super(settings); - }, + function findAll(elm, predicate) { + var images, promises; - Statics: { - /** - * Ok buttons constant. - * - * @static - * @final - * @field {Number} OK - */ - OK: 1, + function imageToBlobInfo(img, resolve) { + var base64, blobInfo; - /** - * Ok/cancel buttons constant. - * - * @static - * @final - * @field {Number} OK_CANCEL - */ - OK_CANCEL: 2, + if (img.src.indexOf('blob:') === 0) { + blobInfo = blobCache.getByUri(img.src); - /** - * yes/no buttons constant. - * - * @static - * @final - * @field {Number} YES_NO - */ - YES_NO: 3, + if (blobInfo) { + resolve({ + image: img, + blobInfo: blobInfo + }); + } - /** - * yes/no/cancel buttons constant. - * - * @static - * @final - * @field {Number} YES_NO_CANCEL - */ - YES_NO_CANCEL: 4, + return; + } - /** - * Constructs a new message box and renders it to the body element. - * - * @static - * @method msgBox - * @param {Object} settings Name/value object with settings. - */ - msgBox: function(settings) { - var buttons, callback = settings.callback || function() {}; + base64 = Conversions.parseDataUri(img.src).data; + blobInfo = blobCache.findFirst(function(cachedBlobInfo) { + return cachedBlobInfo.base64() === base64; + }); - function createButton(text, status, primary) { - return { - type: "button", - text: text, - subtype: primary ? 'primary' : '', - onClick: function(e) { - e.control.parents()[1].close(); - callback(status); - } - }; + if (blobInfo) { + resolve({ + image: img, + blobInfo: blobInfo + }); + } else { + Conversions.uriToBlob(img.src).then(function(blob) { + var blobInfoId = 'blobid' + (count++), + blobInfo = blobCache.create(blobInfoId, blob, base64); + + blobCache.add(blobInfo); + + resolve({ + image: img, + blobInfo: blobInfo + }); + }); } + } - switch (settings.buttons) { - case MessageBox.OK_CANCEL: - buttons = [ - createButton('Ok', true, true), - createButton('Cancel', false) - ]; - break; + if (!predicate) { + predicate = Fun.constant(true); + } - case MessageBox.YES_NO: - case MessageBox.YES_NO_CANCEL: - buttons = [ - createButton('Yes', 1, true), - createButton('No', 0) - ]; + images = Arr.filter(elm.getElementsByTagName('img'), function(img) { + var src = img.src; - if (settings.buttons == MessageBox.YES_NO_CANCEL) { - buttons.push(createButton('Cancel', -1)); - } - break; + if (!Env.fileApi) { + return false; + } - default: - buttons = [ - createButton('Ok', true, true) - ]; - break; + if (img.hasAttribute('data-mce-bogus')) { + return false; } - return new Window({ - padding: 20, - x: settings.x, - y: settings.y, - minWidth: 300, - minHeight: 100, - layout: "flex", - pack: "center", - align: "center", - buttons: buttons, - title: settings.title, - role: 'alertdialog', - items: { - type: "label", - multiline: true, - maxWidth: 500, - maxHeight: 200, - text: settings.text - }, - onPostRender: function() { - this.aria('describedby', this.items()[0]._id); - }, - onClose: settings.onClose, - onCancel: function() { - callback(false); - } - }).renderTo(document.body).reflow(); - }, + if (img.hasAttribute('data-mce-placeholder')) { + return false; + } - /** - * Creates a new alert dialog. - * - * @method alert - * @param {Object} settings Settings for the alert dialog. - * @param {function} [callback] Callback to execute when the user makes a choice. - */ - alert: function(settings, callback) { - if (typeof(settings) == "string") { - settings = {text: settings}; + if (!src || src == Env.transparentSrc) { + return false; } - settings.callback = callback; - return MessageBox.msgBox(settings); - }, + if (src.indexOf('blob:') === 0) { + return true; + } - /** - * Creates a new confirm dialog. - * - * @method confirm - * @param {Object} settings Settings for the confirm dialog. - * @param {function} [callback] Callback to execute when the user makes a choice. - */ - confirm: function(settings, callback) { - if (typeof(settings) == "string") { - settings = {text: settings}; + if (src.indexOf('data:') === 0) { + return predicate(img); } - settings.callback = callback; - settings.buttons = MessageBox.OK_CANCEL; + return false; + }); - return MessageBox.msgBox(settings); - } + promises = Arr.map(images, function(img) { + var newPromise; + + if (cachedPromises[img.src]) { + // Since the cached promise will return the cached image + // We need to wrap it and resolve with the actual image + return new Promise(function(resolve) { + cachedPromises[img.src].then(function(imageInfo) { + resolve({ + image: img, + blobInfo: imageInfo.blobInfo + }); + }); + }); + } + + newPromise = new Promise(function(resolve) { + imageToBlobInfo(img, resolve); + }).then(function(result) { + delete cachedPromises[result.image.src]; + return result; + })['catch'](function(error) { + delete cachedPromises[img.src]; + return error; + }); + + cachedPromises[img.src] = newPromise; + + return newPromise; + }); + + return Promise.all(promises); } - }); - return MessageBox; + return { + findAll: findAll + }; + }; }); -// Included from: js/tinymce/classes/WindowManager.js +// Included from: js/tinymce/classes/file/BlobCache.js /** - * WindowManager.js + * BlobCache.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ /** - * This class handles the creation of native windows and dialogs. This class can be extended to provide for example inline dialogs. - * - * @class tinymce.WindowManager - * @example - * // Opens a new dialog with the file.htm file and the size 320x240 - * // It also adds a custom parameter this can be retrieved by using tinyMCEPopup.getWindowArg inside the dialog. - * tinymce.activeEditor.windowManager.open({ - * url: 'file.htm', - * width: 320, - * height: 240 - * }, { - * custom_param: 1 - * }); - * - * // Displays an alert box using the active editors window manager instance - * tinymce.activeEditor.windowManager.alert('Hello world!'); + * Hold blob info objects where a blob has extra internal information. * - * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm - * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { - * if (s) - * tinymce.activeEditor.windowManager.alert("Ok"); - * else - * tinymce.activeEditor.windowManager.alert("Cancel"); - * }); + * @private + * @class tinymce.file.BlobCache */ -define("tinymce/WindowManager", [ - "tinymce/ui/Window", - "tinymce/ui/MessageBox" -], function(Window, MessageBox) { - return function(editor) { - var self = this, windows = []; +define("tinymce/file/BlobCache", [ + "tinymce/util/Arr", + "tinymce/util/Fun" +], function(Arr, Fun) { + return function() { + var cache = [], constant = Fun.constant; + + function create(id, blob, base64) { + return { + id: constant(id), + blob: constant(blob), + base64: constant(base64), + blobUri: constant(URL.createObjectURL(blob)) + }; + } - function getTopMostWindow() { - if (windows.length) { - return windows[windows.length - 1]; + function add(blobInfo) { + if (!get(blobInfo.id())) { + cache.push(blobInfo); } } - self.windows = windows; + function get(id) { + return findFirst(function(cachedBlobInfo) { + return cachedBlobInfo.id() === id; + }); + } - editor.on('remove', function() { - var i = windows.length; + function findFirst(predicate) { + return Arr.filter(cache, predicate)[0]; + } - while (i--) { - windows[i].close(); - } - }); + function getByUri(blobUri) { + return findFirst(function(blobInfo) { + return blobInfo.blobUri() == blobUri; + }); + } - /** - * Opens a new window. - * - * @method open - * @param {Object} args Optional name/value settings collection contains things like width/height/url etc. - * @option {String} title Window title. - * @option {String} file URL of the file to open in the window. - * @option {Number} width Width in pixels. - * @option {Number} height Height in pixels. - * @option {Boolean} resizable Specifies whether the popup window is resizable or not. - * @option {Boolean} maximizable Specifies whether the popup window has a "maximize" button and can get maximized or not. - * @option {String/Boolean} scrollbars Specifies whether the popup window can have scrollbars if required (i.e. content - * larger than the popup size specified). - */ - self.open = function(args, params) { - var win; + function destroy() { + Arr.each(cache, function(cachedBlobInfo) { + URL.revokeObjectURL(cachedBlobInfo.blobUri()); + }); - editor.editorManager.setActive(editor); + cache = []; + } - args.title = args.title || ' '; + return { + create: create, + add: add, + get: get, + getByUri: getByUri, + findFirst: findFirst, + destroy: destroy + }; + }; +}); - // Handle URL - args.url = args.url || args.file; // Legacy - if (args.url) { - args.width = parseInt(args.width || 320, 10); - args.height = parseInt(args.height || 240, 10); - } +// Included from: js/tinymce/classes/EditorUpload.js - // Handle body - if (args.body) { - args.items = { - defaults: args.defaults, - type: args.bodyType || 'form', - items: args.body - }; - } +/** + * EditorUpload.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - if (!args.url && !args.buttons) { - args.buttons = [ - {text: 'Ok', subtype: 'primary', onclick: function() { - win.find('form')[0].submit(); - }}, +/** + * Handles image uploads, updates undo stack and patches over various internal functions. + * + * @private + * @class tinymce.EditorUpload + */ +define("tinymce/EditorUpload", [ + "tinymce/util/Arr", + "tinymce/file/Uploader", + "tinymce/file/ImageScanner", + "tinymce/file/BlobCache" +], function(Arr, Uploader, ImageScanner, BlobCache) { + return function(editor) { + var blobCache = new BlobCache(), uploader, imageScanner, settings = editor.settings; - {text: 'Cancel', onclick: function() { - win.close(); - }} - ]; + function aliveGuard(callback) { + return function(result) { + if (editor.selection) { + return callback(result); + } + + return []; + }; + } + + // Replaces strings without regexps to avoid FF regexp to big issue + function replaceString(content, search, replace) { + var index = 0; + + do { + index = content.indexOf(search, index); + + if (index !== -1) { + content = content.substring(0, index) + replace + content.substr(index + search.length); + index += replace.length - search.length + 1; + } + } while (index !== -1); + + return content; + } + + function replaceImageUrl(content, targetUrl, replacementUrl) { + content = replaceString(content, 'src="' + targetUrl + '"', 'src="' + replacementUrl + '"'); + content = replaceString(content, 'data-mce-src="' + targetUrl + '"', 'data-mce-src="' + replacementUrl + '"'); + + return content; + } + + function replaceUrlInUndoStack(targetUrl, replacementUrl) { + Arr.each(editor.undoManager.data, function(level) { + level.content = replaceImageUrl(level.content, targetUrl, replacementUrl); + }); + } + + function openNotification() { + return editor.notificationManager.open({ + text: editor.translate('Image uploading...'), + type: 'info', + timeout: -1, + progressBar: true + }); + } + + function uploadImages(callback) { + if (!uploader) { + uploader = new Uploader({ + url: settings.images_upload_url, + basePath: settings.images_upload_base_path, + credentials: settings.images_upload_credentials, + handler: settings.images_upload_handler + }); } - win = new Window(args); - windows.push(win); + return scanForImages().then(aliveGuard(function(imageInfos) { + var blobInfos; - win.on('close', function() { - var i = windows.length; + blobInfos = Arr.map(imageInfos, function(imageInfo) { + return imageInfo.blobInfo; + }); - while (i--) { - if (windows[i] === win) { - windows.splice(i, 1); - } - } + return uploader.upload(blobInfos, openNotification).then(aliveGuard(function(result) { + result = Arr.map(result, function(uploadInfo, index) { + var image = imageInfos[index].image; - if (!windows.length) { - editor.focus(); - } - }); + replaceUrlInUndoStack(image.src, uploadInfo.url); - // Handle data - if (args.data) { - win.on('postRender', function() { - this.find('*').each(function(ctrl) { - var name = ctrl.name(); + editor.$(image).attr({ + src: uploadInfo.url, + 'data-mce-src': editor.convertURL(uploadInfo.url, 'src') + }); - if (name in args.data) { - ctrl.value(args.data[name]); - } + return { + element: image, + status: uploadInfo.status + }; }); - }); - } - // store args and parameters - win.features = args || {}; - win.params = params || {}; + if (callback) { + callback(result); + } - // Takes a snapshot in the FocusManager of the selection before focus is lost to dialog - if (windows.length === 1) { - editor.nodeChanged(); + return result; + })); + })); + } + + function uploadImagesAuto(callback) { + if (settings.automatic_uploads !== false) { + return uploadImages(callback); } + } - return win.renderTo().reflow(); - }; + function scanForImages() { + if (!imageScanner) { + imageScanner = new ImageScanner(blobCache); + } - /** - * Creates a alert dialog. Please don't use the blocking behavior of this - * native version use the callback method instead then it can be extended. - * - * @method alert - * @param {String} message Text to display in the new alert dialog. - * @param {function} callback Callback function to be executed after the user has selected ok. - * @param {Object} scope Optional scope to execute the callback in. - * @example - * // Displays an alert box using the active editors window manager instance - * tinymce.activeEditor.windowManager.alert('Hello world!'); - */ - self.alert = function(message, callback, scope) { - MessageBox.alert(message, function() { - if (callback) { - callback.call(scope || this); - } else { - editor.focus(); + return imageScanner.findAll(editor.getBody(), settings.images_dataimg_filter).then(aliveGuard(function(result) { + Arr.each(result, function(resultItem) { + replaceUrlInUndoStack(resultItem.image.src, resultItem.blobInfo.blobUri()); + resultItem.image.src = resultItem.blobInfo.blobUri(); + }); + + return result; + })); + } + + function destroy() { + blobCache.destroy(); + imageScanner = uploader = null; + } + + function replaceBlobWithBase64(content) { + return content.replace(/src="(blob:[^"]+)"/g, function(match, blobUri) { + var blobInfo = blobCache.getByUri(blobUri); + + if (!blobInfo) { + blobInfo = Arr.reduce(editor.editorManager.editors, function(result, editor) { + return result || editor.editorUpload.blobCache.getByUri(blobUri); + }, null); } - }); - }; - /** - * Creates a confirm dialog. Please don't use the blocking behavior of this - * native version use the callback method instead then it can be extended. - * - * @method confirm - * @param {String} messageText to display in the new confirm dialog. - * @param {function} callback Callback function to be executed after the user has selected ok or cancel. - * @param {Object} scope Optional scope to execute the callback in. - * @example - * // Displays an confirm box and an alert message will be displayed depending on what you choose in the confirm - * tinymce.activeEditor.windowManager.confirm("Do you want to do something", function(s) { - * if (s) - * tinymce.activeEditor.windowManager.alert("Ok"); - * else - * tinymce.activeEditor.windowManager.alert("Cancel"); - * }); - */ - self.confirm = function(message, callback, scope) { - MessageBox.confirm(message, function(state) { - callback.call(scope || this, state); + if (blobInfo) { + return 'src="data:' + blobInfo.blob().type + ';base64,' + blobInfo.base64() + '"'; + } + + return match; }); - }; + } - /** - * Closes the top most window. - * - * @method close - */ - self.close = function() { - if (getTopMostWindow()) { - getTopMostWindow().close(); + editor.on('setContent', function() { + if (editor.settings.automatic_uploads !== false) { + uploadImagesAuto(); + } else { + scanForImages(); } - }; + }); - /** - * Returns the params of the last window open call. This can be used in iframe based - * dialog to get params passed from the tinymce plugin. - * - * @example - * var dialogArguments = top.tinymce.activeEditor.windowManager.getParams(); - * - * @method getParams - * @return {Object} Name/value object with parameters passed from windowManager.open call. - */ - self.getParams = function() { - return getTopMostWindow() ? getTopMostWindow().params : null; - }; + editor.on('RawSaveContent', function(e) { + e.content = replaceBlobWithBase64(e.content); + }); - /** - * Sets the params of the last opened window. - * - * @method setParams - * @param {Object} params Params object to set for the last opened window. - */ - self.setParams = function(params) { - if (getTopMostWindow()) { - getTopMostWindow().params = params; + editor.on('getContent', function(e) { + if (e.source_view || e.format == 'raw') { + return; } - }; - /** - * Returns the currently opened window objects. - * - * @method getWindows - * @return {Array} Array of the currently opened windows. - */ - self.getWindows = function() { - return windows; + e.content = replaceBlobWithBase64(e.content); + }); + + return { + blobCache: blobCache, + uploadImages: uploadImages, + uploadImagesAuto: uploadImagesAuto, + scanForImages: scanForImages, + destroy: destroy }; }; }); -// Included from: js/tinymce/classes/util/Quirks.js +// Included from: js/tinymce/classes/caret/CaretUtils.js /** - * Quirks.js + * CaretUtils.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing - * - * @ignore-file */ /** - * This file includes fixes for various browser quirks it's made to make it easy to add/remove browser specific fixes. + * Utility functions shared by the caret logic. * - * @class tinymce.util.Quirks + * @private + * @class tinymce.caret.CaretUtils */ -define("tinymce/util/Quirks", [ - "tinymce/util/VK", - "tinymce/dom/RangeUtils", - "tinymce/html/Node", - "tinymce/html/Entities", - "tinymce/Env", - "tinymce/util/Tools" -], function(VK, RangeUtils, Node, Entities, Env, Tools) { - return function(editor) { - var each = Tools.each; - var BACKSPACE = VK.BACKSPACE, DELETE = VK.DELETE, dom = editor.dom, selection = editor.selection, - settings = editor.settings, parser = editor.parser, serializer = editor.serializer; - var isGecko = Env.gecko, isIE = Env.ie, isWebKit = Env.webkit; +define("tinymce/caret/CaretUtils", [ + "tinymce/util/Fun", + "tinymce/dom/TreeWalker", + "tinymce/dom/NodeType", + "tinymce/caret/CaretPosition", + "tinymce/caret/CaretContainer", + "tinymce/caret/CaretCandidate" +], function(Fun, TreeWalker, NodeType, CaretPosition, CaretContainer, CaretCandidate) { + var isContentEditableTrue = NodeType.isContentEditableTrue, + isContentEditableFalse = NodeType.isContentEditableFalse, + isBlockLike = NodeType.matchStyleValues('display', 'block table table-cell table-caption'), + isCaretContainer = CaretContainer.isCaretContainer, + curry = Fun.curry, + isElement = NodeType.isElement, + isCaretCandidate = CaretCandidate.isCaretCandidate; + + function isForwards(direction) { + return direction > 0; + } - /** - * Executes a command with a specific state this can be to enable/disable browser editing features. - */ - function setEditorCommandState(cmd, state) { - try { - editor.getDoc().execCommand(cmd, false, state); - } catch (ex) { - // Ignore - } - } + function isBackwards(direction) { + return direction < 0; + } - /** - * Returns current IE document mode. - */ - function getDocumentMode() { - var documentMode = editor.getDoc().documentMode; + function findNode(node, direction, predicateFn, rootNode, shallow) { + var walker = new TreeWalker(node, rootNode); - return documentMode ? documentMode : 6; + if (isBackwards(direction)) { + if (isContentEditableFalse(node)) { + node = walker.prev(true); + if (predicateFn(node)) { + return node; + } + } + + while ((node = walker.prev(shallow))) { + if (predicateFn(node)) { + return node; + } + } } - /** - * Returns true/false if the event is prevented or not. - * - * @private - * @param {Event} e Event object. - * @return {Boolean} true/false if the event is prevented or not. - */ - function isDefaultPrevented(e) { - return e.isDefaultPrevented(); + if (isForwards(direction)) { + if (isContentEditableFalse(node)) { + node = walker.next(true); + if (predicateFn(node)) { + return node; + } + } + + while ((node = walker.next(shallow))) { + if (predicateFn(node)) { + return node; + } + } } - /** - * Fixes a WebKit bug when deleting contents using backspace or delete key. - * WebKit will produce a span element if you delete across two block elements. - * - * Example: - *

    a

    |b

    - * - * Will produce this on backspace: - *

    ab

    - * - * This fixes the backspace to produce: - *

    a|b

    - * - * See bug: https://bugs.webkit.org/show_bug.cgi?id=45784 - * - * This fixes the following delete scenarios: - * 1. Delete by pressing backspace key. - * 2. Delete by pressing delete key. - * 3. Delete by pressing backspace key with ctrl/cmd (Word delete). - * 4. Delete by pressing delete key with ctrl/cmd (Word delete). - * 5. Delete by drag/dropping contents inside the editor. - * 6. Delete by using Cut Ctrl+X/Cmd+X. - * 7. Delete by selecting contents and writing a character.' - * - * This code is a ugly hack since writing full custom delete logic for just this bug - * fix seemed like a huge task. I hope we can remove this before the year 2030. - */ - function cleanupStylesWhenDeleting() { - var doc = editor.getDoc(), urlPrefix = 'data:text/mce-internal,'; - var MutationObserver = window.MutationObserver, olderWebKit, dragStartRng; + return null; + } - // Add mini polyfill for older WebKits - // TODO: Remove this when old Safari versions gets updated - if (!MutationObserver) { - olderWebKit = true; + function getEditingHost(node, rootNode) { + for (node = node.parentNode; node && node != rootNode; node = node.parentNode) { + if (isContentEditableTrue(node)) { + return node; + } + } - MutationObserver = function() { - var records = [], target; + return rootNode; + } - function nodeInsert(e) { - var target = e.relatedNode || e.target; - records.push({target: target, addedNodes: [target]}); - } + function getParentBlock(node, rootNode) { + while (node && node != rootNode) { + if (isBlockLike(node)) { + return node; + } - function attrModified(e) { - var target = e.relatedNode || e.target; - records.push({target: target, attributeName: e.attrName}); - } + node = node.parentNode; + } - this.observe = function(node) { - target = node; - target.addEventListener('DOMSubtreeModified', nodeInsert, false); - target.addEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false); - target.addEventListener('DOMNodeInserted', nodeInsert, false); - target.addEventListener('DOMAttrModified', attrModified, false); - }; + return null; + } - this.disconnect = function() { - target.removeEventListener('DOMSubtreeModified', nodeInsert, false); - target.removeEventListener('DOMNodeInsertedIntoDocument', nodeInsert, false); - target.removeEventListener('DOMNodeInserted', nodeInsert, false); - target.removeEventListener('DOMAttrModified', attrModified, false); - }; + function isInSameBlock(caretPosition1, caretPosition2, rootNode) { + return getParentBlock(caretPosition1.container(), rootNode) == getParentBlock(caretPosition2.container(), rootNode); + } - this.takeRecords = function() { - return records; - }; - }; - } + function isInSameEditingHost(caretPosition1, caretPosition2, rootNode) { + return getEditingHost(caretPosition1.container(), rootNode) == getEditingHost(caretPosition2.container(), rootNode); + } - function customDelete(isForward) { - var mutationObserver = new MutationObserver(function() {}); + function getChildNodeAtRelativeOffset(relativeOffset, caretPosition) { + var container, offset; - Tools.each(editor.getBody().getElementsByTagName('*'), function(elm) { - // Mark existing spans - if (elm.tagName == 'SPAN') { - elm.setAttribute('mce-data-marked', 1); - } + if (!caretPosition) { + return null; + } - // Make sure all elements has a data-mce-style attribute - if (!elm.hasAttribute('data-mce-style') && elm.hasAttribute('style')) { - editor.dom.setAttrib(elm, 'style', editor.dom.getAttrib(elm, 'style')); - } - }); + container = caretPosition.container(); + offset = caretPosition.offset(); - // Observe added nodes and style attribute changes - mutationObserver.observe(editor.getDoc(), { - childList: true, - attributes: true, - subtree: true, - attributeFilter: ['style'] - }); + if (!isElement(container)) { + return null; + } - editor.getDoc().execCommand(isForward ? 'ForwardDelete' : 'Delete', false, null); + return container.childNodes[offset + relativeOffset]; + } - var rng = editor.selection.getRng(); - var caretElement = rng.startContainer.parentNode; + function beforeAfter(before, node) { + var range = node.ownerDocument.createRange(); - Tools.each(mutationObserver.takeRecords(), function(record) { - if (!dom.isChildOf(record.target, editor.getBody())) { - return; - } + if (before) { + range.setStartBefore(node); + range.setEndBefore(node); + } else { + range.setStartAfter(node); + range.setEndAfter(node); + } - // Restore style attribute to previous value - if (record.attributeName == "style") { - var oldValue = record.target.getAttribute('data-mce-style'); + return range; + } - if (oldValue) { - record.target.setAttribute("style", oldValue); - } else { - record.target.removeAttribute("style"); - } - } + function isNodesInSameBlock(rootNode, node1, node2) { + return getParentBlock(node1, rootNode) == getParentBlock(node2, rootNode); + } - // Remove all spans that isn't maked and retain selection - Tools.each(record.addedNodes, function(node) { - if (node.nodeName == "SPAN" && !node.getAttribute('mce-data-marked')) { - var offset, container; + function lean(left, rootNode, node) { + var sibling, siblingName; - if (node == caretElement) { - offset = rng.startOffset; - container = node.firstChild; - } + if (left) { + siblingName = 'previousSibling'; + } else { + siblingName = 'nextSibling'; + } - dom.remove(node, true); + while (node && node != rootNode) { + sibling = node[siblingName]; - if (container) { - rng.setStart(container, offset); - rng.setEnd(container, offset); - editor.selection.setRng(rng); - } - } - }); - }); + if (isCaretContainer(sibling)) { + sibling = sibling[siblingName]; + } - mutationObserver.disconnect(); + if (isContentEditableFalse(sibling)) { + if (isNodesInSameBlock(rootNode, sibling, node)) { + return sibling; + } - // Remove any left over marks - Tools.each(editor.dom.select('span[mce-data-marked]'), function(span) { - span.removeAttribute('mce-data-marked'); - }); + break; } - editor.on('keydown', function(e) { - var isForward = e.keyCode == DELETE, isMeta = VK.metaKeyPressed(e); + if (isCaretCandidate(sibling)) { + break; + } - if (!isDefaultPrevented(e) && (isForward || e.keyCode == BACKSPACE)) { - var rng = editor.selection.getRng(), container = rng.startContainer, offset = rng.startOffset; + node = node.parentNode; + } - // Ignore non meta delete in the where there is text before/after the caret - if (!isMeta && rng.collapsed && container.nodeType == 3) { - if (isForward ? offset < container.data.length : offset > 0) { - return; - } - } + return null; + } - e.preventDefault(); + var before = curry(beforeAfter, true); + var after = curry(beforeAfter, false); - if (isMeta) { - editor.selection.getSel().modify("extend", isForward ? "forward" : "backward", "word"); - } + function normalizeRange(direction, rootNode, range) { + var node, container, offset, location; + var leanLeft = curry(lean, true, rootNode); + var leanRight = curry(lean, false, rootNode); - customDelete(isForward); - } - }); + container = range.startContainer; + offset = range.startOffset; - editor.on('keypress', function(e) { - if (!isDefaultPrevented(e) && !selection.isCollapsed() && e.charCode && !VK.metaKeyPressed(e)) { - e.preventDefault(); - customDelete(true); - editor.selection.setContent(String.fromCharCode(e.charCode)); - } - }); + if (CaretContainer.isCaretContainerBlock(container)) { + if (!isElement(container)) { + container = container.parentNode; + } - editor.addCommand('Delete', function() { - customDelete(); - }); + location = container.getAttribute('data-mce-caret'); - editor.addCommand('ForwardDelete', function() { - customDelete(true); - }); + if (location == 'before') { + node = container.nextSibling; + if (isContentEditableFalse(node)) { + return before(node); + } + } - // Older WebKits doesn't properly handle the clipboard so we can't add the rest - if (olderWebKit) { - return; + if (location == 'after') { + node = container.previousSibling; + if (isContentEditableFalse(node)) { + return after(node); + } } + } - editor.on('dragstart', function(e) { - var selectionHtml; + if (!range.collapsed) { + return range; + } - if (editor.selection.isCollapsed() && e.target.tagName == 'IMG') { - selection.select(e.target); + if (NodeType.isText(container)) { + if (isCaretContainer(container)) { + if (direction === 1) { + node = leanRight(container); + if (node) { + return before(node); + } + + node = leanLeft(container); + if (node) { + return after(node); + } } - dragStartRng = selection.getRng(); - selectionHtml = editor.selection.getContent(); + if (direction === -1) { + node = leanLeft(container); + if (node) { + return after(node); + } - // Safari doesn't support custom dataTransfer items so we can only use URL and Text - if (selectionHtml.length > 0) { - e.dataTransfer.setData('URL', 'data:text/mce-internal,' + escape(selectionHtml)); + node = leanRight(container); + if (node) { + return before(node); + } } - }); - editor.on('drop', function(e) { - if (!isDefaultPrevented(e)) { - var internalContent = e.dataTransfer.getData('URL'); + return range; + } - if (!internalContent || internalContent.indexOf(urlPrefix) == -1 || !doc.caretRangeFromPoint) { - return; + if (CaretContainer.endsWithCaretContainer(container) && offset >= container.data.length - 1) { + if (direction === 1) { + node = leanRight(container); + if (node) { + return before(node); } + } - internalContent = unescape(internalContent.substr(urlPrefix.length)); - if (doc.caretRangeFromPoint) { - e.preventDefault(); + return range; + } - // Safari has a weird issue where drag/dropping images sometimes - // produces a green plus icon. When this happens the caretRangeFromPoint - // will return "null" even though the x, y coordinate is correct. - // But if we detach the insert from the drop event we will get a proper range - window.setTimeout(function() { - var pointRng = doc.caretRangeFromPoint(e.x, e.y); + if (CaretContainer.startsWithCaretContainer(container) && offset <= 1) { + if (direction === -1) { + node = leanLeft(container); + if (node) { + return after(node); + } + } - if (dragStartRng) { - selection.setRng(dragStartRng); - dragStartRng = null; - } + return range; + } - customDelete(); + if (offset === container.data.length) { + node = leanRight(container); + if (node) { + return before(node); + } - selection.setRng(pointRng); - editor.insertContent(internalContent); - }, 0); - } + return range; + } + if (offset === 0) { + node = leanLeft(container); + if (node) { + return after(node); } - }); - editor.on('cut', function(e) { - if (!isDefaultPrevented(e) && e.clipboardData) { - e.preventDefault(); - e.clipboardData.clearData(); - e.clipboardData.setData('text/html', editor.selection.getContent()); - e.clipboardData.setData('text/plain', editor.selection.getContent({format: 'text'})); - customDelete(true); - } - }); + return range; + } } - /** - * Makes sure that the editor body becomes empty when backspace or delete is pressed in empty editors. - * - * For example: - *

    |

    - * - * Or: - *

    |

    - * - * Or: - * [

    ] - */ - function emptyEditorWhenDeleting() { - function serializeRng(rng) { - var body = dom.create("body"); - var contents = rng.cloneContents(); - body.appendChild(contents); - return selection.serializer.serialize(body, {format: 'html'}); - } + return range; + } - function allContentsSelected(rng) { - if (!rng.setStart) { - if (rng.item) { - return false; - } + function isNextToContentEditableFalse(relativeOffset, caretPosition) { + return isContentEditableFalse(getChildNodeAtRelativeOffset(relativeOffset, caretPosition)); + } - var bodyRng = rng.duplicate(); - bodyRng.moveToElementText(editor.getBody()); - return RangeUtils.compareRanges(rng, bodyRng); - } + return { + isForwards: isForwards, + isBackwards: isBackwards, + findNode: findNode, + getEditingHost: getEditingHost, + getParentBlock: getParentBlock, + isInSameBlock: isInSameBlock, + isInSameEditingHost: isInSameEditingHost, + isBeforeContentEditableFalse: curry(isNextToContentEditableFalse, 0), + isAfterContentEditableFalse: curry(isNextToContentEditableFalse, -1), + normalizeRange: normalizeRange + }; +}); - var selection = serializeRng(rng); +// Included from: js/tinymce/classes/caret/CaretWalker.js - var allRng = dom.createRng(); - allRng.selectNode(editor.getBody()); +/** + * CaretWalker.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - var allSelection = serializeRng(allRng); - return selection === allSelection; - } +/** + * This module contains logic for moving around a virtual caret in logical order within a DOM element. + * + * It ignores the most obvious invalid caret locations such as within a script element or within a + * contentEditable=false element but it will return locations that isn't possible to render visually. + * + * @private + * @class tinymce.caret.CaretWalker + * @example + * var caretWalker = new CaretWalker(rootElm); + * + * var prevLogicalCaretPosition = caretWalker.prev(CaretPosition.fromRangeStart(range)); + * var nextLogicalCaretPosition = caretWalker.next(CaretPosition.fromRangeEnd(range)); + */ +define("tinymce/caret/CaretWalker", [ + "tinymce/dom/NodeType", + "tinymce/caret/CaretCandidate", + "tinymce/caret/CaretPosition", + "tinymce/caret/CaretUtils", + "tinymce/util/Arr", + "tinymce/util/Fun" +], function(NodeType, CaretCandidate, CaretPosition, CaretUtils, Arr, Fun) { + var isContentEditableFalse = NodeType.isContentEditableFalse, + isText = NodeType.isText, + isElement = NodeType.isElement, + isForwards = CaretUtils.isForwards, + isBackwards = CaretUtils.isBackwards, + isCaretCandidate = CaretCandidate.isCaretCandidate, + isAtomic = CaretCandidate.isAtomic, + isEditableCaretCandidate = CaretCandidate.isEditableCaretCandidate; + + function getParents(node, rootNode) { + var parents = []; + + while (node && node != rootNode) { + parents.push(node); + node = node.parentNode; + } - editor.on('keydown', function(e) { - var keyCode = e.keyCode, isCollapsed, body; + return parents; + } - // Empty the editor if it's needed for example backspace at

    |

    - if (!isDefaultPrevented(e) && (keyCode == DELETE || keyCode == BACKSPACE)) { - isCollapsed = editor.selection.isCollapsed(); - body = editor.getBody(); + function nodeAtIndex(container, offset) { + if (container.hasChildNodes() && offset < container.childNodes.length) { + return container.childNodes[offset]; + } - // Selection is collapsed but the editor isn't empty - if (isCollapsed && !dom.isEmpty(body)) { - return; - } + return null; + } - // Selection isn't collapsed but not all the contents is selected - if (!isCollapsed && !allContentsSelected(editor.selection.getRng())) { - return; - } + function getCaretCandidatePosition(direction, node) { + if (isForwards(direction)) { + if (isCaretCandidate(node.previousSibling) && !isText(node.previousSibling)) { + return CaretPosition.before(node); + } + + if (isText(node)) { + return CaretPosition(node, 0); + } + } - // Manually empty the editor - e.preventDefault(); - editor.setContent(''); + if (isBackwards(direction)) { + if (isCaretCandidate(node.nextSibling) && !isText(node.nextSibling)) { + return CaretPosition.after(node); + } - if (body.firstChild && dom.isBlock(body.firstChild)) { - editor.selection.setCursorLocation(body.firstChild, 0); - } else { - editor.selection.setCursorLocation(body, 0); - } + if (isText(node)) { + return CaretPosition(node, node.data.length); + } + } - editor.nodeChanged(); - } - }); + if (isBackwards(direction)) { + return CaretPosition.after(node); } - /** - * WebKit doesn't select all the nodes in the body when you press Ctrl+A. - * IE selects more than the contents [

    a

    ] instead of

    [a] see bug #6438 - * This selects the whole body so that backspace/delete logic will delete everything - */ - function selectAll() { - editor.shortcuts.add('ctrl+a', null, 'SelectAll'); + return CaretPosition.before(node); + } + + function findCaretPosition(direction, startCaretPosition, rootNode) { + var container, offset, node, nextNode, innerNode, + rootContentEditableFalseElm, caretPosition; + + if (!isElement(rootNode) || !startCaretPosition) { + return null; } - /** - * WebKit has a weird issue where it some times fails to properly convert keypresses to input method keystrokes. - * The IME on Mac doesn't initialize when it doesn't fire a proper focus event. - * - * This seems to happen when the user manages to click the documentElement element then the window doesn't get proper focus until - * you enter a character into the editor. - * - * It also happens when the first focus in made to the body. - * - * See: https://bugs.webkit.org/show_bug.cgi?id=83566 - */ - function inputMethodFocus() { - if (!editor.settings.content_editable) { - // Case 1 IME doesn't initialize if you focus the document - dom.bind(editor.getDoc(), 'focusin', function() { - selection.setRng(selection.getRng()); - }); + caretPosition = startCaretPosition; + container = caretPosition.container(); + offset = caretPosition.offset(); - // Case 2 IME doesn't initialize if you click the documentElement it also doesn't properly fire the focusin event - // Needs to be both down/up due to weird rendering bug on Chrome Windows - dom.bind(editor.getDoc(), 'mousedown mouseup', function(e) { - if (e.target == editor.getDoc().documentElement) { - editor.getBody().focus(); + if (isText(container)) { + if (isBackwards(direction) && offset > 0) { + return CaretPosition(container, --offset); + } - if (e.type == 'mousedown') { - // Edge case for mousedown, drag select and mousedown again within selection on Chrome Windows to render caret - selection.placeCaretAt(e.clientX, e.clientY); - } else { - selection.setRng(selection.getRng()); + if (isForwards(direction) && offset < container.length) { + return CaretPosition(container, ++offset); + } + + node = container; + } else { + if (isBackwards(direction) && offset > 0) { + nextNode = nodeAtIndex(container, offset - 1); + if (isCaretCandidate(nextNode)) { + if (!isAtomic(nextNode)) { + innerNode = CaretUtils.findNode(nextNode, direction, isEditableCaretCandidate, nextNode); + if (innerNode) { + if (isText(innerNode)) { + return CaretPosition(innerNode, innerNode.data.length); + } + + return CaretPosition.after(innerNode); } } - }); - } - } - /** - * Backspacing in FireFox/IE from a paragraph into a horizontal rule results in a floating text node because the - * browser just deletes the paragraph - the browser fails to merge the text node with a horizontal rule so it is - * left there. TinyMCE sees a floating text node and wraps it in a paragraph on the key up event (ForceBlocks.js - * addRootBlocks), meaning the action does nothing. With this code, FireFox/IE matche the behaviour of other - * browsers. - * - * It also fixes a bug on Firefox where it's impossible to delete HR elements. - */ - function removeHrOnBackspace() { - editor.on('keydown', function(e) { - if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { - // Check if there is any HR elements this is faster since getRng on IE 7 & 8 is slow - if (!editor.getBody().getElementsByTagName('hr').length) { - return; + if (isText(nextNode)) { + return CaretPosition(nextNode, nextNode.data.length); } - if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { - var node = selection.getNode(); - var previousSibling = node.previousSibling; + return CaretPosition.before(nextNode); + } + } - if (node.nodeName == 'HR') { - dom.remove(node); - e.preventDefault(); - return; - } + if (isForwards(direction) && offset < container.childNodes.length) { + nextNode = nodeAtIndex(container, offset); + if (isCaretCandidate(nextNode)) { + if (!isAtomic(nextNode)) { + innerNode = CaretUtils.findNode(nextNode, direction, isEditableCaretCandidate, nextNode); + if (innerNode) { + if (isText(innerNode)) { + return CaretPosition(innerNode, 0); + } - if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "hr") { - dom.remove(previousSibling); - e.preventDefault(); + return CaretPosition.before(innerNode); } } - } - }); - } - /** - * Firefox 3.x has an issue where the body element won't get proper focus if you click out - * side it's rectangle. - */ - function focusBody() { - // Fix for a focus bug in FF 3.x where the body element - // wouldn't get proper focus if the user clicked on the HTML element - if (!window.Range.prototype.getClientRects) { // Detect getClientRects got introduced in FF 4 - editor.on('mousedown', function(e) { - if (!isDefaultPrevented(e) && e.target.nodeName === "HTML") { - var body = editor.getBody(); + if (isText(nextNode)) { + return CaretPosition(nextNode, 0); + } - // Blur the body it's focused but not correctly focused - body.blur(); + return CaretPosition.after(nextNode); + } + } - // Refocus the body after a little while - setTimeout(function() { - body.focus(); - }, 0); - } - }); + node = caretPosition.getNode(); + } + + if ((isForwards(direction) && caretPosition.isAtEnd()) || (isBackwards(direction) && caretPosition.isAtStart())) { + node = CaretUtils.findNode(node, direction, Fun.constant(true), rootNode, true); + if (isEditableCaretCandidate(node)) { + return getCaretCandidatePosition(direction, node); } } - /** - * WebKit has a bug where it isn't possible to select image, hr or anchor elements - * by clicking on them so we need to fake that. - */ - function selectControlElements() { - editor.on('click', function(e) { - var target = e.target; + nextNode = CaretUtils.findNode(node, direction, isEditableCaretCandidate, rootNode); - // Workaround for bug, http://bugs.webkit.org/show_bug.cgi?id=12250 - // WebKit can't even do simple things like selecting an image - // Needs to be the setBaseAndExtend or it will fail to select floated images - if (/^(IMG|HR)$/.test(target.nodeName)) { - e.preventDefault(); - selection.getSel().setBaseAndExtent(target, 0, target, 1); - editor.nodeChanged(); - } + rootContentEditableFalseElm = Arr.last(Arr.filter(getParents(container, rootNode), isContentEditableFalse)); + if (rootContentEditableFalseElm && (!nextNode || !rootContentEditableFalseElm.contains(nextNode))) { + if (isForwards(direction)) { + caretPosition = CaretPosition.after(rootContentEditableFalseElm); + } else { + caretPosition = CaretPosition.before(rootContentEditableFalseElm); + } - if (target.nodeName == 'A' && dom.hasClass(target, 'mce-item-anchor')) { - e.preventDefault(); - selection.select(target); - } - }); + return caretPosition; } - /** - * Fixes a Gecko bug where the style attribute gets added to the wrong element when deleting between two block elements. - * - * Fixes do backspace/delete on this: - *

    bla[ck

    r]ed

    - * - * Would become: - *

    bla|ed

    - * - * Instead of: - *

    bla|ed

    - */ - function removeStylesWhenDeletingAcrossBlockElements() { - function getAttributeApplyFunction() { - var template = dom.getAttribs(selection.getStart().cloneNode(false)); + if (nextNode) { + return getCaretCandidatePosition(direction, nextNode); + } - return function() { - var target = selection.getStart(); + return null; + } - if (target !== editor.getBody()) { - dom.setAttrib(target, "style", null); + return function(rootNode) { + return { + /** + * Returns the next logical caret position from the specificed input + * caretPoisiton or null if there isn't any more positions left for example + * at the end specified root element. + * + * @method next + * @param {tinymce.caret.CaretPosition} caretPosition Caret position to start from. + * @return {tinymce.caret.CaretPosition} CaretPosition or null if no position was found. + */ + next: function(caretPosition) { + return findCaretPosition(1, caretPosition, rootNode); + }, - each(template, function(attr) { - target.setAttributeNode(attr.cloneNode(true)); - }); - } - }; + /** + * Returns the previous logical caret position from the specificed input + * caretPoisiton or null if there isn't any more positions left for example + * at the end specified root element. + * + * @method prev + * @param {tinymce.caret.CaretPosition} caretPosition Caret position to start from. + * @return {tinymce.caret.CaretPosition} CaretPosition or null if no position was found. + */ + prev: function(caretPosition) { + return findCaretPosition(-1, caretPosition, rootNode); } + }; + }; +}); - function isSelectionAcrossElements() { - return !selection.isCollapsed() && - dom.getParent(selection.getStart(), dom.isBlock) != dom.getParent(selection.getEnd(), dom.isBlock); - } +// Included from: js/tinymce/classes/caret/FakeCaret.js - editor.on('keypress', function(e) { - var applyAttributes; +/** + * FakeCaret.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - if (!isDefaultPrevented(e) && (e.keyCode == 8 || e.keyCode == 46) && isSelectionAcrossElements()) { - applyAttributes = getAttributeApplyFunction(); - editor.getDoc().execCommand('delete', false, null); - applyAttributes(); - e.preventDefault(); - return false; - } - }); +/** + * This module contains logic for rendering a fake visual caret. + * + * @private + * @class tinymce.caret.FakeCaret + */ +define("tinymce/caret/FakeCaret", [ + "tinymce/caret/CaretContainer", + "tinymce/caret/CaretPosition", + "tinymce/dom/NodeType", + "tinymce/dom/RangeUtils", + "tinymce/dom/DomQuery", + "tinymce/geom/ClientRect", + "tinymce/util/Delay" +], function(CaretContainer, CaretPosition, NodeType, RangeUtils, $, ClientRect, Delay) { + var isContentEditableFalse = NodeType.isContentEditableFalse; + + return function(rootNode, isBlock) { + var cursorInterval, $lastVisualCaret, caretContainerNode; + + function getAbsoluteClientRect(node, before) { + var clientRect = ClientRect.collapse(node.getBoundingClientRect(), before), + docElm, scrollX, scrollY, margin, rootRect; + + if (rootNode.tagName == 'BODY') { + docElm = rootNode.ownerDocument.documentElement; + scrollX = rootNode.scrollLeft || docElm.scrollLeft; + scrollY = rootNode.scrollTop || docElm.scrollTop; + } else { + rootRect = rootNode.getBoundingClientRect(); + scrollX = rootNode.scrollLeft - rootRect.left; + scrollY = rootNode.scrollTop - rootRect.top; + } - dom.bind(editor.getDoc(), 'cut', function(e) { - var applyAttributes; + clientRect.left += scrollX; + clientRect.right += scrollX; + clientRect.top += scrollY; + clientRect.bottom += scrollY; + clientRect.width = 1; - if (!isDefaultPrevented(e) && isSelectionAcrossElements()) { - applyAttributes = getAttributeApplyFunction(); + margin = node.offsetWidth - node.clientWidth; - setTimeout(function() { - applyAttributes(); - }, 0); + if (margin > 0) { + if (before) { + margin *= -1; } - }); - } - /** - * Screen readers on IE needs to have the role application set on the body. - */ - function ensureBodyHasRoleApplication() { - document.body.setAttribute("role", "application"); - } + clientRect.left += margin; + clientRect.right += margin; + } - /** - * Backspacing into a table behaves differently depending upon browser type. - * Therefore, disable Backspace when cursor immediately follows a table. - */ - function disableBackspaceIntoATable() { - editor.on('keydown', function(e) { - if (!isDefaultPrevented(e) && e.keyCode === BACKSPACE) { - if (selection.isCollapsed() && selection.getRng(true).startOffset === 0) { - var previousSibling = selection.getNode().previousSibling; - if (previousSibling && previousSibling.nodeName && previousSibling.nodeName.toLowerCase() === "table") { - e.preventDefault(); - return false; - } - } - } - }); + return clientRect; } - /** - * Old IE versions can't properly render BR elements in PRE tags white in contentEditable mode. So this - * logic adds a \n before the BR so that it will get rendered. - */ - function addNewLinesBeforeBrInPre() { - // IE8+ rendering mode does the right thing with BR in PRE - if (getDocumentMode() > 7) { - return; - } - - // Enable display: none in area and add a specific class that hides all BR elements in PRE to - // avoid the caret from getting stuck at the BR elements while pressing the right arrow key - setEditorCommandState('RespectVisibilityInDesign', true); - editor.contentStyles.push('.mceHideBrInPre pre br {display: none}'); - dom.addClass(editor.getBody(), 'mceHideBrInPre'); + function trimInlineCaretContainers() { + var contentEditableFalseNodes, node, sibling, i, data; - // Adds a \n before all BR elements in PRE to get them visual - parser.addNodeFilter('pre', function(nodes) { - var i = nodes.length, brNodes, j, brElm, sibling; + contentEditableFalseNodes = $('*[contentEditable=false]', rootNode); + for (i = 0; i < contentEditableFalseNodes.length; i++) { + node = contentEditableFalseNodes[i]; - while (i--) { - brNodes = nodes[i].getAll('br'); - j = brNodes.length; - while (j--) { - brElm = brNodes[j]; + sibling = node.previousSibling; + if (CaretContainer.endsWithCaretContainer(sibling)) { + data = sibling.data; - // Add \n before BR in PRE elements on older IE:s so the new lines get rendered - sibling = brElm.prev; - if (sibling && sibling.type === 3 && sibling.value.charAt(sibling.value - 1) != '\n') { - sibling.value += '\n'; - } else { - brElm.parent.insert(new Node('#text', 3), brElm, true).value = '\n'; - } + if (data.length == 1) { + sibling.parentNode.removeChild(sibling); + } else { + sibling.deleteData(data.length - 1, 1); } } - }); - // Removes any \n before BR elements in PRE since other browsers and in contentEditable=false mode they will be visible - serializer.addNodeFilter('pre', function(nodes) { - var i = nodes.length, brNodes, j, brElm, sibling; + sibling = node.nextSibling; + if (CaretContainer.startsWithCaretContainer(sibling)) { + data = sibling.data; - while (i--) { - brNodes = nodes[i].getAll('br'); - j = brNodes.length; - while (j--) { - brElm = brNodes[j]; - sibling = brElm.prev; - if (sibling && sibling.type == 3) { - sibling.value = sibling.value.replace(/\r?\n$/, ''); - } + if (data.length == 1) { + sibling.parentNode.removeChild(sibling); + } else { + sibling.deleteData(0, 1); } } - }); + } + + return null; } - /** - * Moves style width/height to attribute width/height when the user resizes an image on IE. - */ - function removePreSerializedStylesWhenSelectingControls() { - dom.bind(editor.getBody(), 'mouseup', function() { - var value, node = selection.getNode(); + function show(before, node) { + var clientRect, rng, container; - // Moved styles to attributes on IMG eements - if (node.nodeName == 'IMG') { - // Convert style width to width attribute - if ((value = dom.getStyle(node, 'width'))) { - dom.setAttrib(node, 'width', value.replace(/[^0-9%]+/g, '')); - dom.setStyle(node, 'width', ''); - } + hide(); - // Convert style height to height attribute - if ((value = dom.getStyle(node, 'height'))) { - dom.setAttrib(node, 'height', value.replace(/[^0-9%]+/g, '')); - dom.setStyle(node, 'height', ''); - } - } - }); - } + if (isBlock(node)) { + caretContainerNode = CaretContainer.insertBlock('p', node, before); + clientRect = getAbsoluteClientRect(node, before); + $(caretContainerNode).css('top', clientRect.top); - /** - * Removes a blockquote when backspace is pressed at the beginning of it. - * - * For example: - *

    |x

    - * - * Becomes: - *

    |x

    - */ - function removeBlockQuoteOnBackSpace() { - // Add block quote deletion handler - editor.on('keydown', function(e) { - var rng, container, offset, root, parent; + $lastVisualCaret = $('
    ').css(clientRect).appendTo(rootNode); - if (isDefaultPrevented(e) || e.keyCode != VK.BACKSPACE) { - return; + if (before) { + $lastVisualCaret.addClass('mce-visual-caret-before'); } - rng = selection.getRng(); - container = rng.startContainer; - offset = rng.startOffset; - root = dom.getRoot(); - parent = container; + startBlink(); - if (!rng.collapsed || offset !== 0) { - return; - } + rng = node.ownerDocument.createRange(); + container = caretContainerNode.firstChild; + rng.setStart(container, 0); + rng.setEnd(container, 1); + } else { + caretContainerNode = CaretContainer.insertInline(node, before); + rng = node.ownerDocument.createRange(); - while (parent && parent.parentNode && parent.parentNode.firstChild == parent && parent.parentNode != root) { - parent = parent.parentNode; + if (isContentEditableFalse(caretContainerNode.nextSibling)) { + rng.setStart(caretContainerNode, 0); + rng.setEnd(caretContainerNode, 0); + } else { + rng.setStart(caretContainerNode, 1); + rng.setEnd(caretContainerNode, 1); } - // Is the cursor at the beginning of a blockquote? - if (parent.tagName === 'BLOCKQUOTE') { - // Remove the blockquote - editor.formatter.toggle('blockquote', null, parent); + return rng; + } - // Move the caret to the beginning of container - rng = dom.createRng(); - rng.setStart(container, 0); - rng.setEnd(container, 0); - selection.setRng(rng); - } - }); + return rng; } - /** - * Sets various Gecko editing options on mouse down and before a execCommand to disable inline table editing that is broken etc. - */ - function setGeckoEditingOptions() { - function setOpts() { - editor._refreshContentEditable(); - - setEditorCommandState("StyleWithCSS", false); - setEditorCommandState("enableInlineTableEditing", false); + function hide() { + trimInlineCaretContainers(); - if (!settings.object_resizing) { - setEditorCommandState("enableObjectResizing", false); - } + if (caretContainerNode) { + CaretContainer.remove(caretContainerNode); + caretContainerNode = null; } - if (!settings.readonly) { - editor.on('BeforeExecCommand MouseDown', setOpts); + if ($lastVisualCaret) { + $lastVisualCaret.remove(); + $lastVisualCaret = null; } + + clearInterval(cursorInterval); } - /** - * Fixes a gecko link bug, when a link is placed at the end of block elements there is - * no way to move the caret behind the link. This fix adds a bogus br element after the link. - * - * For example this: - *

    x

    - * - * Becomes this: - *

    x

    - */ - function addBrAfterLastLinks() { - function fixLinks() { - each(dom.select('a'), function(node) { - var parentNode = node.parentNode, root = dom.getRoot(); + function startBlink() { + cursorInterval = Delay.setInterval(function() { + $('div.mce-visual-caret', rootNode).toggleClass('mce-visual-caret-hidden'); + }, 500); + } - if (parentNode.lastChild === node) { - while (parentNode && !dom.isBlock(parentNode)) { - if (parentNode.parentNode.lastChild !== parentNode || parentNode === root) { - return; - } + function destroy() { + Delay.clearInterval(cursorInterval); + } - parentNode = parentNode.parentNode; - } + function getCss() { + return ( + '.mce-visual-caret {' + + 'position: absolute;' + + 'background-color: black;' + + 'background-color: currentcolor;' + + '}' + + '.mce-visual-caret-hidden {' + + 'display: none;' + + '}' + + '*[data-mce-caret] {' + + 'position: absolute;' + + 'left: -1000px;' + + 'right: auto;' + + 'top: 0;' + + 'margin: 0;' + + 'padding: 0;' + + '}' + ); + } - dom.add(parentNode, 'br', {'data-mce-bogus': 1}); - } - }); - } + return { + show: show, + hide: hide, + getCss: getCss, + destroy: destroy + }; + }; +}); - editor.on('SetContent ExecCommand', function(e) { - if (e.type == "setcontent" || e.command === 'mceInsertLink') { - fixLinks(); - } - }); - } +// Included from: js/tinymce/classes/dom/Dimensions.js - /** - * WebKit will produce DIV elements here and there by default. But since TinyMCE uses paragraphs by - * default we want to change that behavior. - */ - function setDefaultBlockType() { - if (settings.forced_root_block) { - editor.on('init', function() { - setEditorCommandState('DefaultParagraphSeparator', settings.forced_root_block); - }); - } - } +/** + * Dimensions.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - /** - * Removes ghost selections from images/tables on Gecko. - */ - function removeGhostSelection() { - editor.on('Undo Redo SetContent', function(e) { - if (!e.initial) { - editor.execCommand('mceRepaint'); - } +/** + * This module measures nodes and returns client rects. The client rects has an + * extra node property. + * + * @private + * @class tinymce.dom.Dimensions + */ +define("tinymce/dom/Dimensions", [ + "tinymce/util/Arr", + "tinymce/dom/NodeType", + "tinymce/geom/ClientRect" +], function(Arr, NodeType, ClientRect) { + + function getClientRects(node) { + function toArrayWithNode(clientRects) { + return Arr.map(clientRects, function(clientRect) { + clientRect = ClientRect.clone(clientRect); + clientRect.node = node; + + return clientRect; }); } - /** - * Deletes the selected image on IE instead of navigating to previous page. - */ - function deleteControlItemOnBackSpace() { - editor.on('keydown', function(e) { - var rng; + if (Arr.isArray(node)) { + return Arr.reduce(node, function(result, node) { + return result.concat(getClientRects(node)); + }, []); + } - if (!isDefaultPrevented(e) && e.keyCode == BACKSPACE) { - rng = editor.getDoc().selection.createRange(); - if (rng && rng.item) { - e.preventDefault(); - editor.undoManager.beforeChange(); - dom.remove(rng.item(0)); - editor.undoManager.add(); - } - } - }); + if (NodeType.isElement(node)) { + return toArrayWithNode(node.getClientRects()); } - /** - * IE10 doesn't properly render block elements with the right height until you add contents to them. - * This fixes that by adding a padding-right to all empty text block elements. - * See: https://connect.microsoft.com/IE/feedback/details/743881 - */ - function renderEmptyBlocksFix() { - var emptyBlocksCSS; + if (NodeType.isText(node)) { + var rng = node.ownerDocument.createRange(); - // IE10+ - if (getDocumentMode() >= 10) { - emptyBlocksCSS = ''; - each('p div h1 h2 h3 h4 h5 h6'.split(' '), function(name, i) { - emptyBlocksCSS += (i > 0 ? ',' : '') + name + ':empty'; - }); + rng.setStart(node, 0); + rng.setEnd(node, node.data.length); - editor.contentStyles.push(emptyBlocksCSS + '{padding-right: 1px !important}'); - } + return toArrayWithNode(rng.getClientRects()); } + } + return { /** - * Old IE versions can't retain contents within noscript elements so this logic will store the contents - * as a attribute and the insert that value as it's raw text when the DOM is serialized. + * Returns the client rects for a specific node. + * + * @method getClientRects + * @param {Array/DOMNode} node Node or array of nodes to get client rects on. + * @param {Array} Array of client rects with a extra node property. */ - function keepNoScriptContents() { - if (getDocumentMode() < 9) { - parser.addNodeFilter('noscript', function(nodes) { - var i = nodes.length, node, textNode; - - while (i--) { - node = nodes[i]; - textNode = node.firstChild; - - if (textNode) { - node.attr('data-mce-innertext', textNode.value); - } - } - }); - - serializer.addNodeFilter('noscript', function(nodes) { - var i = nodes.length, node, textNode, value; + getClientRects: getClientRects + }; +}); - while (i--) { - node = nodes[i]; - textNode = nodes[i].firstChild; +// Included from: js/tinymce/classes/caret/LineWalker.js - if (textNode) { - textNode.value = Entities.decode(textNode.value); - } else { - // Old IE can't retain noscript value so an attribute is used to store it - value = node.attributes.map['data-mce-innertext']; - if (value) { - node.attr('data-mce-innertext', null); - textNode = new Node('#text', 3); - textNode.value = value; - textNode.raw = true; - node.append(textNode); - } - } - } - }); +/** + * LineWalker.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This module lets you walk the document line by line + * returing nodes and client rects for each line. + * + * @private + * @class tinymce.caret.LineWalker + */ +define("tinymce/caret/LineWalker", [ + "tinymce/util/Fun", + "tinymce/util/Arr", + "tinymce/dom/Dimensions", + "tinymce/caret/CaretCandidate", + "tinymce/caret/CaretUtils", + "tinymce/caret/CaretWalker", + "tinymce/caret/CaretPosition", + "tinymce/geom/ClientRect" +], function(Fun, Arr, Dimensions, CaretCandidate, CaretUtils, CaretWalker, CaretPosition, ClientRect) { + var curry = Fun.curry; + + function findUntil(direction, rootNode, predicateFn, node) { + while ((node = CaretUtils.findNode(node, direction, CaretCandidate.isEditableCaretCandidate, rootNode))) { + if (predicateFn(node)) { + return; } } + } - /** - * IE has an issue where you can't select/move the caret by clicking outside the body if the document is in standards mode. - */ - function fixCaretSelectionOfDocumentElementOnIe() { - var doc = dom.doc, body = doc.body, started, startRng, htmlElm; - - // Return range from point or null if it failed - function rngFromPoint(x, y) { - var rng = body.createTextRange(); + function walkUntil(direction, isAboveFn, isBeflowFn, rootNode, predicateFn, caretPosition) { + var line = 0, node, result = [], targetClientRect; - try { - rng.moveToPoint(x, y); - } catch (ex) { - // IE sometimes throws and exception, so lets just ignore it - rng = null; - } + function add(node) { + var i, clientRect, clientRects; - return rng; + clientRects = Dimensions.getClientRects(node); + if (direction == -1) { + clientRects = clientRects.reverse(); } - // Fires while the selection is changing - function selectionChange(e) { - var pointRng; + for (i = 0; i < clientRects.length; i++) { + clientRect = clientRects[i]; + if (isBeflowFn(clientRect, targetClientRect)) { + continue; + } - // Check if the button is down or not - if (e.button) { - // Create range from mouse position - pointRng = rngFromPoint(e.x, e.y); + if (result.length > 0 && isAboveFn(clientRect, Arr.last(result))) { + line++; + } - if (pointRng) { - // Check if pointRange is before/after selection then change the endPoint - if (pointRng.compareEndPoints('StartToStart', startRng) > 0) { - pointRng.setEndPoint('StartToStart', startRng); - } else { - pointRng.setEndPoint('EndToEnd', startRng); - } + clientRect.line = line; - pointRng.select(); - } - } else { - endSelection(); + if (predicateFn(clientRect)) { + return true; } + + result.push(clientRect); } + } - // Removes listeners - function endSelection() { - var rng = doc.selection.createRange(); + targetClientRect = Arr.last(caretPosition.getClientRects()); + if (!targetClientRect) { + return result; + } - // If the range is collapsed then use the last start range - if (startRng && !rng.item && rng.compareEndPoints('StartToEnd', rng) === 0) { - startRng.select(); - } + node = caretPosition.getNode(); + add(node); + findUntil(direction, rootNode, add, node); - dom.unbind(doc, 'mouseup', endSelection); - dom.unbind(doc, 'mousemove', selectionChange); - startRng = started = 0; - } + return result; + } - // Make HTML element unselectable since we are going to handle selection by hand - doc.documentElement.unselectable = true; + function aboveLineNumber(lineNumber, clientRect) { + return clientRect.line > lineNumber; + } - // Detect when user selects outside BODY - dom.bind(doc, 'mousedown contextmenu', function(e) { - if (e.target.nodeName === 'HTML') { - if (started) { - endSelection(); - } + function isLine(lineNumber, clientRect) { + return clientRect.line === lineNumber; + } - // Detect vertical scrollbar, since IE will fire a mousedown on the scrollbar and have target set as HTML - htmlElm = doc.documentElement; - if (htmlElm.scrollHeight > htmlElm.clientHeight) { - return; - } + var upUntil = curry(walkUntil, -1, ClientRect.isAbove, ClientRect.isBelow); + var downUntil = curry(walkUntil, 1, ClientRect.isBelow, ClientRect.isAbove); - started = 1; - // Setup start position - startRng = rngFromPoint(e.x, e.y); - if (startRng) { - // Listen for selection change events - dom.bind(doc, 'mouseup', endSelection); - dom.bind(doc, 'mousemove', selectionChange); + function positionsUntil(direction, rootNode, predicateFn, node) { + var caretWalker = new CaretWalker(rootNode), walkFn, isBelowFn, isAboveFn, + caretPosition, result = [], line = 0, clientRect, targetClientRect; - dom.getRoot().focus(); - startRng.select(); - } - } - }); - } + function getClientRect(caretPosition) { + if (direction == 1) { + return Arr.last(caretPosition.getClientRects()); + } - /** - * Fixes selection issues where the caret can be placed between two inline elements like a|b - * this fix will lean the caret right into the closest inline element. - */ - function normalizeSelection() { - // Normalize selection for example a|a becomes a|a except for Ctrl+A since it selects everything - editor.on('keyup focusin mouseup', function(e) { - if (e.keyCode != 65 || !VK.metaKeyPressed(e)) { - selection.normalize(); - } - }, true); + return Arr.last(caretPosition.getClientRects()); } - /** - * Forces Gecko to render a broken image icon if it fails to load an image. - */ - function showBrokenImageIcon() { - editor.contentStyles.push( - 'img:-moz-broken {' + - '-moz-force-broken-image-icon:1;' + - 'min-width:24px;' + - 'min-height:24px' + - '}' - ); + if (direction == 1) { + walkFn = caretWalker.next; + isBelowFn = ClientRect.isBelow; + isAboveFn = ClientRect.isAbove; + caretPosition = CaretPosition.after(node); + } else { + walkFn = caretWalker.prev; + isBelowFn = ClientRect.isAbove; + isAboveFn = ClientRect.isBelow; + caretPosition = CaretPosition.before(node); } - /** - * iOS has a bug where it's impossible to type if the document has a touchstart event - * bound and the user touches the document while having the on screen keyboard visible. - * - * The touch event moves the focus to the parent document while having the caret inside the iframe - * this fix moves the focus back into the iframe document. - */ - function restoreFocusOnKeyDown() { - if (!editor.inline) { - editor.on('keydown', function() { - if (document.activeElement == document.body) { - editor.getWin().focus(); - } - }); + targetClientRect = getClientRect(caretPosition); + + do { + if (!caretPosition.isVisible()) { + continue; } - } - /** - * IE 11 has an annoying issue where you can't move focus into the editor - * by clicking on the white area HTML element. We used to be able to to fix this with - * the fixCaretSelectionOfDocumentElementOnIe fix. But since M$ removed the selection - * object it's not possible anymore. So we need to hack in a ungly CSS to force the - * body to be at least 150px. If the user clicks the HTML element out side this 150px region - * we simply move the focus into the first paragraph. Not ideal since you loose the - * positioning of the caret but goot enough for most cases. - */ - function bodyHeight() { - if (!editor.inline) { - editor.contentStyles.push('body {min-height: 150px}'); - editor.on('click', function(e) { - if (e.target.nodeName == 'HTML') { - editor.getBody().focus(); - editor.selection.normalize(); - editor.nodeChanged(); - } - }); + clientRect = getClientRect(caretPosition); + + if (isAboveFn(clientRect, targetClientRect)) { + continue; } - } - /** - * Firefox on Mac OS will move the browser back to the previous page if you press CMD+Left arrow. - * You might then loose all your work so we need to block that behavior and replace it with our own. - */ - function blockCmdArrowNavigation() { - if (Env.mac) { - editor.on('keydown', function(e) { - if (VK.metaKeyPressed(e) && (e.keyCode == 37 || e.keyCode == 39)) { - e.preventDefault(); - editor.selection.getSel().modify('move', e.keyCode == 37 ? 'backward' : 'forward', 'word'); - } - }); + if (result.length > 0 && isBelowFn(clientRect, Arr.last(result))) { + line++; } - } - /** - * Disables the autolinking in IE 9+ this is then re-enabled by the autolink plugin. - */ - function disableAutoUrlDetect() { - setEditorCommandState("AutoUrlDetect", false); - } + clientRect = ClientRect.clone(clientRect); + clientRect.position = caretPosition; + clientRect.line = line; - /** - * IE 11 has a fantastic bug where it will produce two trailing BR elements to iframe bodies when - * the iframe is hidden by display: none on a parent container. The DOM is actually out of sync - * with innerHTML in this case. It's like IE adds shadow DOM BR elements that appears on innerHTML - * but not as the lastChild of the body. However is we add a BR element to the body then remove it - * it doesn't seem to add these BR elements makes sence right?! - * - * Example of what happens: text becomes text

    - */ - function doubleTrailingBrElements() { - if (!editor.inline) { - editor.on('focus blur beforegetcontent', function() { - var br = editor.dom.create('br'); - editor.getBody().appendChild(br); - br.parentNode.removeChild(br); - }, true); + if (predicateFn(clientRect)) { + return result; } - } - /** - * iOS 7.1 introduced two new bugs: - * 1) It's possible to open links within a contentEditable area by clicking on them. - * 2) If you hold down the finger it will display the link/image touch callout menu. - */ - function tapLinksAndImages() { - editor.on('click', function(e) { - var elm = e.target; + result.push(clientRect); + } while ((caretPosition = walkFn(caretPosition))); - do { - if (elm.tagName === 'A') { - e.preventDefault(); - return; - } - } while ((elm = elm.parentNode)); - }); + return result; + } - editor.contentStyles.push('.mce-content-body {-webkit-touch-callout: none}'); - } + return { + upUntil: upUntil, + downUntil: downUntil, /** - * iOS Safari and possible other browsers have a bug where it won't fire - * a click event when a contentEditable is focused. This function fakes click events - * by using touchstart/touchend and measuring the time and distance travelled. + * Find client rects with line and caret position until the predicate returns true. + * + * @method positionsUntil + * @param {Number} direction Direction forward/backward 1/-1. + * @param {DOMNode} rootNode Root node to walk within. + * @param {function} predicateFn Gets the client rect as it's input. + * @param {DOMNode} node Node to start walking from. + * @return {Array} Array of client rects with line and position properties. */ - function touchClickEvent() { - editor.on('touchstart', function(e) { - var elm, time, startTouch, changedTouches; + positionsUntil: positionsUntil, - elm = e.target; - time = new Date().getTime(); - changedTouches = e.changedTouches; + isAboveLine: curry(aboveLineNumber), + isLine: curry(isLine) + }; +}); - if (!changedTouches || changedTouches.length > 1) { - return; - } +// Included from: js/tinymce/classes/caret/LineUtils.js - startTouch = changedTouches[0]; +/** + * LineUtils.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ - editor.once('touchend', function(e) { - var endTouch = e.changedTouches[0], args; +/** + * Utility functions for working with lines. + * + * @private + * @class tinymce.caret.LineUtils + */ +define("tinymce/caret/LineUtils", [ + "tinymce/util/Fun", + "tinymce/util/Arr", + "tinymce/dom/NodeType", + "tinymce/dom/Dimensions", + "tinymce/geom/ClientRect", + "tinymce/caret/CaretUtils", + "tinymce/caret/CaretCandidate" +], function(Fun, Arr, NodeType, Dimensions, ClientRect, CaretUtils, CaretCandidate) { + var isContentEditableFalse = NodeType.isContentEditableFalse, + findNode = CaretUtils.findNode, + curry = Fun.curry; + + function distanceToRectLeft(clientRect, clientX) { + return Math.abs(clientRect.left - clientX); + } - if (new Date().getTime() - time > 500) { - return; - } + function distanceToRectRight(clientRect, clientX) { + return Math.abs(clientRect.right - clientX); + } - if (Math.abs(startTouch.clientX - endTouch.clientX) > 5) { - return; - } + function findClosestClientRect(clientRects, clientX) { + function isInside(clientX, clientRect) { + return clientX >= clientRect.left && clientX <= clientRect.right; + } - if (Math.abs(startTouch.clientY - endTouch.clientY) > 5) { - return; - } + return Arr.reduce(clientRects, function(oldClientRect, clientRect) { + var oldDistance, newDistance; - args = { - target: elm - }; + oldDistance = Math.min(distanceToRectLeft(oldClientRect, clientX), distanceToRectRight(oldClientRect, clientX)); + newDistance = Math.min(distanceToRectLeft(clientRect, clientX), distanceToRectRight(clientRect, clientX)); - each('pageX pageY clientX clientY screenX screenY'.split(' '), function(key) { - args[key] = endTouch[key]; - }); + if (isInside(clientX, clientRect)) { + return clientRect; + } - args = editor.fire('click', args); + if (isInside(clientX, oldClientRect)) { + return oldClientRect; + } - if (!args.isDefaultPrevented()) { - // iOS WebKit can't place the caret properly once - // you bind touch events so we need to do this manually - // TODO: Expand to the closest word? Touble tap still works. - editor.selection.placeCaretAt(endTouch.clientX, endTouch.clientY); - editor.nodeChanged(); - } - }); - }); - } + // cE=false has higher priority + if (newDistance == oldDistance && isContentEditableFalse(clientRect.node)) { + return clientRect; + } - /** - * WebKit has a bug where it will allow forms to be submitted if they are inside a contentEditable element. - * For example this:
    ' + '
    ' ); + }, + + bindStates: function() { + var self = this, $ = self.$, textCls = self.classPrefix + 'txt'; + + function setButtonText(text) { + var $span = $('span.' + textCls, self.getEl()); + + if (text) { + if (!$span[0]) { + $('button:first', self.getEl()).append(''); + $span = $('span.' + textCls, self.getEl()); + } + + $span.html(self.encode(text)); + } else { + $span.remove(); + } + + self.classes.toggle('btn-has-text', !!text); + } + + self.state.on('change:text', function(e) { + setButtonText(e.value); + }); + + self.state.on('change:icon', function(e) { + var icon = e.value, prefix = self.classPrefix; + + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + var btnElm = self.getEl().firstChild, iconElm = btnElm.getElementsByTagName('i')[0]; + + if (icon) { + if (!iconElm || iconElm != btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + + setButtonText(self.state.get('text')); + }); + + return self._super(); } }); }); @@ -67068,8 +73524,8 @@ define("tinymce/ui/Button", [ /** * ButtonGroup.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -67113,12 +73569,12 @@ define("tinymce/ui/ButtonGroup", [ renderHtml: function() { var self = this, layout = self._layout; - self.addClass('btn-group'); + self.classes.add('btn-group'); self.preRender(); layout.preRender(self); return ( - '
    ' + + '
    ' + '
    ' + (self.settings.html || '') + layout.renderHtml(self) + '
    ' + @@ -67133,8 +73589,8 @@ define("tinymce/ui/ButtonGroup", [ /** * Checkbox.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -67202,22 +73658,13 @@ define("tinymce/ui/Checkbox", [ * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. */ checked: function(state) { - var self = this; - - if (typeof state != "undefined") { - if (state) { - self.addClass('checked'); - } else { - self.removeClass('checked'); - } - - self._checked = state; - self.aria('checked', state); - - return self; + if (!arguments.length) { + return this.state.get('checked'); } - return self._checked; + this.state.set('checked', state); + + return this; }, /** @@ -67228,6 +73675,10 @@ define("tinymce/ui/Checkbox", [ * @return {Boolean|tinymce.ui.Checkbox} True/false or checkbox if it's a set operation. */ value: function(state) { + if (!arguments.length) { + return this.checked(); + } + return this.checked(state); }, @@ -67241,11 +73692,59 @@ define("tinymce/ui/Checkbox", [ var self = this, id = self._id, prefix = self.classPrefix; return ( - '
    ' + + '
    ' + '' + - '' + self.encode(self._text) + '' + + '' + self.encode(self.state.get('text')) + '' + '
    ' ); + }, + + bindStates: function() { + var self = this; + + function checked(state) { + self.classes.toggle("checked", state); + self.aria('checked', state); + } + + self.state.on('change:text', function(e) { + self.getEl('al').firstChild.data = self.translate(e.value); + }); + + self.state.on('change:checked change:value', function(e) { + self.fire('change'); + checked(e.value); + }); + + self.state.on('change:icon', function(e) { + var icon = e.value, prefix = self.classPrefix; + + if (typeof icon == 'undefined') { + return self.settings.icon; + } + + self.settings.icon = icon; + icon = icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; + + var btnElm = self.getEl().firstChild, iconElm = btnElm.getElementsByTagName('i')[0]; + + if (icon) { + if (!iconElm || iconElm != btnElm.firstChild) { + iconElm = document.createElement('i'); + btnElm.insertBefore(iconElm, btnElm.firstChild); + } + + iconElm.className = icon; + } else if (iconElm) { + btnElm.removeChild(iconElm); + } + }); + + if (self.state.get('checked')) { + checked(true); + } + + return self._super(); } }); }); @@ -67255,8 +73754,8 @@ define("tinymce/ui/Checkbox", [ /** * ComboBox.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -67273,8 +73772,9 @@ define("tinymce/ui/Checkbox", [ define("tinymce/ui/ComboBox", [ "tinymce/ui/Widget", "tinymce/ui/Factory", - "tinymce/ui/DomUtils" -], function(Widget, Factory, DomUtils) { + "tinymce/ui/DomUtils", + "tinymce/dom/DomQuery" +], function(Widget, Factory, DomUtils, $) { "use strict"; return Widget.extend({ @@ -67289,11 +73789,12 @@ define("tinymce/ui/ComboBox", [ var self = this; self._super(settings); - self.addClass('combobox'); + settings = self.settings; + + self.classes.add('combobox'); self.subinput = true; self.ariaTarget = 'inp'; // TODO: Figure out a better way - settings = self.settings; settings.menu = settings.menu || settings.values; if (settings.menu) { @@ -67303,6 +73804,10 @@ define("tinymce/ui/ComboBox", [ self.on('click', function(e) { var elm = e.target, root = self.getEl(); + if (!$.contains(root, elm) && elm != root) { + return; + } + while (elm && elm != root) { if (elm.id && elm.id.indexOf('-open') != -1) { self.fire('action'); @@ -67324,8 +73829,15 @@ define("tinymce/ui/ComboBox", [ self.on('keydown', function(e) { if (e.target.nodeName == "INPUT" && e.keyCode == 13) { self.parents().reverse().each(function(ctrl) { + var stateValue = self.state.get('value'), inputValue = self.getEl('inp').value; + e.preventDefault(); - self.fire('change'); + + self.state.set('value', inputValue); + + if (stateValue != inputValue) { + self.fire('change'); + } if (ctrl.hasEventListeners('submit') && ctrl.toJSON) { ctrl.fire('submit', {data: ctrl.toJSON()}); @@ -67335,31 +73847,11 @@ define("tinymce/ui/ComboBox", [ } }); - if (settings.placeholder) { - self.addClass('placeholder'); - - self.on('focusin', function() { - if (!self._hasOnChange) { - DomUtils.on(self.getEl('inp'), 'change', function() { - self.fire('change'); - }); - - self._hasOnChange = true; - } - - if (self.hasClass('placeholder')) { - self.getEl('inp').value = ''; - self.removeClass('placeholder'); - } - }); - - self.on('focusout', function() { - if (self.value().length === 0) { - self.getEl('inp').value = settings.placeholder; - self.addClass('placeholder'); - } - }); - } + self.on('keyup', function(e) { + if (e.target.nodeName == "INPUT") { + self.state.set('value', e.target.value); + } + }); }, showMenu: function() { @@ -67411,57 +73903,6 @@ define("tinymce/ui/ComboBox", [ self.menu.moveRel(self.getEl(), self.isRtl() ? ['br-tr', 'tr-br'] : ['bl-tl', 'tl-bl']); }, - /** - * Getter/setter function for the control value. - * - * @method value - * @param {String} [value] Value to be set. - * @return {String|tinymce.ui.ComboBox} Value or self if it's a set operation. - */ - value: function(value) { - var self = this; - - if (typeof(value) != "undefined") { - self._value = value; - self.removeClass('placeholder'); - - if (self._rendered) { - self.getEl('inp').value = value; - } - - return self; - } - - if (self._rendered) { - value = self.getEl('inp').value; - - if (value != self.settings.placeholder) { - return value; - } - - return ''; - } - - return self._value; - }, - - /** - * Getter/setter function for the disabled state. - * - * @method value - * @param {Boolean} [state] State to be set. - * @return {Boolean|tinymce.ui.ComboBox} True/false or self if it's a set operation. - */ - disabled: function(state) { - var self = this; - - if (self._rendered && typeof(state) != 'undefined') { - self.getEl('inp').disabled = state; - } - - return self._super(state); - }, - /** * Focuses the input area of the control. * @@ -67492,7 +73933,7 @@ define("tinymce/ui/ComboBox", [ lineHeight = (self.layoutRect().h - 2) + 'px'; } - DomUtils.css(elm.firstChild, { + $(elm.firstChild).css({ width: width, lineHeight: lineHeight }); @@ -67511,18 +73952,14 @@ define("tinymce/ui/ComboBox", [ postRender: function() { var self = this; - DomUtils.on(this.getEl('inp'), 'change', function() { - self.fire('change'); + $(this.getEl('inp')).on('change', function(e) { + self.state.set('value', e.target.value); + self.fire('change', e); }); return self._super(); }, - remove: function() { - DomUtils.off(this.getEl('inp')); - this._super(); - }, - /** * Renders the control as a HTML string. * @@ -67531,7 +73968,7 @@ define("tinymce/ui/ComboBox", [ */ renderHtml: function() { var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix; - var value = settings.value || settings.placeholder || ''; + var value = self.state.get('value') || ''; var icon, text, openBtnHtml = '', extraAttrs = ''; if ("spellcheck" in settings) { @@ -67559,7 +73996,7 @@ define("tinymce/ui/ComboBox", [ icon = prefix + 'ico ' + prefix + 'i-' + settings.icon; } - text = self._text; + text = self.state.get('text'); if (icon || text) { openBtnHtml = ( @@ -67571,16 +74008,52 @@ define("tinymce/ui/ComboBox", [ '
    ' ); - self.addClass('has-open'); + self.classes.add('has-open'); } return ( - '
    ' + - '' + + '
    ' + + '' + openBtnHtml + '
    ' ); + }, + + value: function(value) { + if (arguments.length) { + this.state.set('value', value); + return this; + } + + // Make sure the real state is in sync + if (this.state.get('rendered')) { + this.state.set('value', this.getEl('inp').value); + } + + return this.state.get('value'); + }, + + bindStates: function() { + var self = this; + + self.state.on('change:value', function(e) { + if (self.getEl('inp').value != e.value) { + self.getEl('inp').value = e.value; + } + }); + + self.state.on('change:disabled', function(e) { + self.getEl('inp').disabled = e.value; + }); + + return self._super(); + }, + + remove: function() { + $(this.getEl('inp')).off(); + this._super(); } }); }); @@ -67590,8 +74063,8 @@ define("tinymce/ui/ComboBox", [ /** * ColorBox.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -67628,7 +74101,7 @@ define("tinymce/ui/ColorBox", [ self._super(settings); - self.addClass('colorbox'); + self.classes.add('colorbox'); self.on('change keyup postrender', function() { self.repaintColor(self.value()); }); @@ -67646,16 +74119,16 @@ define("tinymce/ui/ColorBox", [ } }, - value: function(value) { + bindStates: function() { var self = this; - if (typeof value != "undefined") { + self.state.on('change:value', function(e) { if (self._rendered) { - self.repaintColor(value); + self.repaintColor(e.value); } - } + }); - return self._super(value); + return self._super(); } }); }); @@ -67665,8 +74138,8 @@ define("tinymce/ui/ColorBox", [ /** * PanelButton.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -67782,8 +74255,8 @@ define("tinymce/ui/PanelButton", [ /** * ColorButton.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -67815,7 +74288,7 @@ define("tinymce/ui/ColorButton", [ */ init: function(settings) { this._super(settings); - this.addClass('colorbutton'); + this.classes.add('colorbutton'); }, /** @@ -67835,6 +74308,18 @@ define("tinymce/ui/ColorButton", [ return this._color; }, + /** + * Resets the current color. + * + * @method resetColor + * @return {tinymce.ui.ColorButton} Current instance. + */ + resetColor: function() { + this._color = null; + this.getEl('preview').style.backgroundColor = null; + return this; + }, + /** * Renders the control as a HTML string. * @@ -67842,16 +74327,22 @@ define("tinymce/ui/ColorButton", [ * @return {String} HTML representing the control. */ renderHtml: function() { - var self = this, id = self._id, prefix = self.classPrefix; + var self = this, id = self._id, prefix = self.classPrefix, text = self.state.get('text'); var icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + self.settings.icon : ''; - var image = self.settings.image ? ' style="background-image: url(\'' + self.settings.image + '\')"' : ''; + var image = self.settings.image ? ' style="background-image: url(\'' + self.settings.image + '\')"' : '', + textHtml = ''; + + if (text) { + self.classes.add('btn-has-text'); + textHtml = '' + self.encode(text) + ''; + } return ( - '
    ' + + '
    ' + '' + '' + '
    ' @@ -70598,24 +77071,18 @@ define("tinymce/ui/MenuButton", [ return self._super(); }, - /** - * Sets/gets the current button text. - * - * @method text - * @param {String} [text] New button text. - * @return {String|tinymce.ui.MenuButton} Current text or current MenuButton instance. - */ - text: function(text) { - var self = this, i, children; + bindStates: function() { + var self = this; - if (self._rendered) { - children = self.getEl('open').getElementsByTagName('span'); - for (i = 0; i < children.length; i++) { - children[i].innerHTML = (self.settings.icon && text ? '\u00a0' : '') + self.encode(text); + self.state.on('change:menu', function() { + if (self.menu) { + self.menu.remove(); } - } - return this._super(text); + self.menu = null; + }); + + return self._super(); }, /** @@ -70635,161 +77102,13 @@ define("tinymce/ui/MenuButton", [ return MenuButton; }); -// Included from: js/tinymce/classes/ui/ListBox.js - -/** - * ListBox.js - * - * Copyright, Moxiecode Systems AB - * Released under LGPL License. - * - * License: http://www.tinymce.com/license - * Contributing: http://www.tinymce.com/contributing - */ - -/** - * Creates a new list box control. - * - * @-x-less ListBox.less - * @class tinymce.ui.ListBox - * @extends tinymce.ui.MenuButton - */ -define("tinymce/ui/ListBox", [ - "tinymce/ui/MenuButton" -], function(MenuButton) { - "use strict"; - - return MenuButton.extend({ - /** - * Constructs a instance with the specified settings. - * - * @constructor - * @param {Object} settings Name/value object with settings. - * @setting {Array} values Array with values to add to list box. - */ - init: function(settings) { - var self = this, values, selected, selectedText, lastItemCtrl; - - function setSelected(menuValues) { - // Try to find a selected value - for (var i = 0; i < menuValues.length; i++) { - selected = menuValues[i].selected || settings.value === menuValues[i].value; - - if (selected) { - selectedText = selectedText || menuValues[i].text; - self._value = menuValues[i].value; - break; - } - - // If the value has a submenu, try to find the selected values in that menu - if (menuValues[i].menu) { - setSelected(menuValues[i].menu); - } - } - } - - self._values = values = settings.values; - if (values) { - if (typeof settings.value != "undefined") { - setSelected(values); - } - - // Default with first item - if (!selected && values.length > 0) { - selectedText = values[0].text; - self._value = values[0].value; - } - - settings.menu = values; - } - - settings.text = settings.text || selectedText || values[0].text; - - self._super(settings); - self.addClass('listbox'); - - self.on('select', function(e) { - var ctrl = e.control; - - if (lastItemCtrl) { - e.lastControl = lastItemCtrl; - } - - if (settings.multiple) { - ctrl.active(!ctrl.active()); - } else { - self.value(e.control.settings.value); - } - - lastItemCtrl = ctrl; - }); - }, - - /** - * Getter/setter function for the control value. - * - * @method value - * @param {String} [value] Value to be set. - * @return {Boolean/tinymce.ui.ListBox} Value or self if it's a set operation. - */ - value: function(value) { - var self = this, active, selectedText, menu; - - function activateByValue(menu, value) { - menu.items().each(function(ctrl) { - active = ctrl.value() === value; - - if (active) { - selectedText = selectedText || ctrl.text(); - } - - ctrl.active(active); - - if (ctrl.menu) { - activateByValue(ctrl.menu, value); - } - }); - } - - function setActiveValues(menuValues) { - for (var i = 0; i < menuValues.length; i++) { - active = menuValues[i].value == value; - - if (active) { - selectedText = selectedText || menuValues[i].text; - } - - menuValues[i].active = active; - - if (menuValues[i].menu) { - setActiveValues(menuValues[i].menu); - } - } - } - - if (typeof(value) != "undefined") { - if (self.menu) { - activateByValue(self.menu, value); - } else { - menu = self.settings.menu; - setActiveValues(menu); - } - - self.text(selectedText || this.settings.text); - } - - return self._super(value); - } - }); -}); - // Included from: js/tinymce/classes/ui/MenuItem.js /** * MenuItem.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -70800,13 +77119,14 @@ define("tinymce/ui/ListBox", [ * * @-x-less MenuItem.less * @class tinymce.ui.MenuItem - * @extends tinymce.ui.Widget + * @extends tinymce.ui.Control */ define("tinymce/ui/MenuItem", [ "tinymce/ui/Widget", "tinymce/ui/Factory", - "tinymce/Env" -], function(Widget, Factory, Env) { + "tinymce/Env", + "tinymce/util/Delay" +], function(Widget, Factory, Env, Delay) { "use strict"; return Widget.extend({ @@ -70825,38 +77145,37 @@ define("tinymce/ui/MenuItem", [ * @setting {String} shortcut Shortcut to display for menu item. Example: Ctrl+X */ init: function(settings) { - var self = this; - - self.hasPopup = true; + var self = this, text; self._super(settings); settings = self.settings; - self.addClass('menu-item'); + self.classes.add('menu-item'); if (settings.menu) { - self.addClass('menu-item-expand'); + self.classes.add('menu-item-expand'); } if (settings.preview) { - self.addClass('menu-item-preview'); + self.classes.add('menu-item-preview'); } - if (self._text === '-' || self._text === '|') { - self.addClass('menu-item-sep'); + text = self.state.get('text'); + if (text === '-' || text === '|') { + self.classes.add('menu-item-sep'); self.aria('role', 'separator'); - self._text = '-'; + self.state.set('text', '-'); } if (settings.selectable) { self.aria('role', 'menuitemcheckbox'); - self.addClass('menu-item-checkbox'); + self.classes.add('menu-item-checkbox'); settings.icon = 'selected'; } if (!settings.preview && !settings.selectable) { - self.addClass('menu-item-normal'); + self.classes.add('menu-item-normal'); } self.on('mousedown', function(e) { @@ -70927,7 +77246,7 @@ define("tinymce/ui/MenuItem", [ menu.on('hide', function(e) { if (e.control === menu) { - self.removeClass('selected'); + self.classes.remove('selected'); } }); @@ -70938,7 +77257,7 @@ define("tinymce/ui/MenuItem", [ menu._parentMenu = parent; - menu.addClass('menu-sub'); + menu.classes.add('menu-sub'); var rel = menu.testMoveRel( self.getEl(), @@ -70949,11 +77268,10 @@ define("tinymce/ui/MenuItem", [ menu.rel = rel; rel = 'menu-sub-' + rel; - menu.removeClass(menu._lastRel); - menu.addClass(rel); + menu.classes.remove(menu._lastRel).add(rel); menu._lastRel = rel; - self.addClass('selected'); + self.classes.add('selected'); self.aria('expanded', true); } }, @@ -70987,30 +77305,55 @@ define("tinymce/ui/MenuItem", [ * @return {String} HTML representing the control. */ renderHtml: function() { - var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix, text = self.encode(self._text); + var self = this, id = self._id, settings = self.settings, prefix = self.classPrefix, text = self.encode(self.state.get('text')); var icon = self.settings.icon, image = '', shortcut = settings.shortcut; + // Converts shortcut format to Mac/PC variants + function convertShortcut(shortcut) { + var i, value, replace = {}; + + if (Env.mac) { + replace = { + alt: '⌥', + ctrl: '⌘', + shift: '⇧', + meta: '⌘' + }; + } else { + replace = { + meta: 'Ctrl' + }; + } + + shortcut = shortcut.split('+'); + + for (i = 0; i < shortcut.length; i++) { + value = replace[shortcut[i].toLowerCase()]; + + if (value) { + shortcut[i] = value; + } + } + + return shortcut.join('+'); + } + if (icon) { - self.parent().addClass('menu-has-icons'); + self.parent().classes.add('menu-has-icons'); } if (settings.image) { - icon = 'none'; image = ' style="background-image: url(\'' + settings.image + '\')"'; } - if (shortcut && Env.mac) { - // format shortcut for Mac - shortcut = shortcut.replace(/ctrl\+alt\+/i, '⌥⌘'); // ctrl+cmd - shortcut = shortcut.replace(/ctrl\+/i, '⌘'); // ctrl symbol - shortcut = shortcut.replace(/alt\+/i, '⌥'); // cmd symbol - shortcut = shortcut.replace(/shift\+/i, '⇧'); // shift symbol + if (shortcut) { + shortcut = convertShortcut(shortcut); } icon = prefix + 'ico ' + prefix + 'i-' + (self.settings.icon || 'none'); return ( - '
    ' + + '
    ' + (text !== '-' ? '\u00a0' : '') + (text !== '-' ? '' + text + '' : '') + (shortcut ? '
    ' + shortcut + '
    ' : '') + @@ -71028,7 +77371,7 @@ define("tinymce/ui/MenuItem", [ var self = this, settings = self.settings; var textStyle = settings.textStyle; - if (typeof(textStyle) == "function") { + if (typeof textStyle == "function") { textStyle = textStyle.call(this); } @@ -71043,7 +77386,11 @@ define("tinymce/ui/MenuItem", [ if (e.control === self) { if (!settings.menu && e.type === 'click') { self.fire('select'); - self.parent().hideAll(); + + // Edge will crash if you stress it see #2660 + Delay.requestAnimationFrame(function() { + self.parent().hideAll(); + }); } else { self.showMenu(); @@ -71059,8 +77406,20 @@ define("tinymce/ui/MenuItem", [ return self; }, + hover: function() { + var self = this; + + self.parent().items().each(function(ctrl) { + ctrl.classes.remove('selected'); + }); + + self.classes.toggle('selected', true); + + return self; + }, + active: function(state) { - if (typeof(state) != "undefined") { + if (typeof state != "undefined") { this.aria('checked', state); } @@ -71082,13 +77441,104 @@ define("tinymce/ui/MenuItem", [ }); }); +// Included from: js/tinymce/classes/ui/Throbber.js + +/** + * Throbber.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class enables you to display a Throbber for any element. + * + * @-x-less Throbber.less + * @class tinymce.ui.Throbber + */ +define("tinymce/ui/Throbber", [ + "tinymce/dom/DomQuery", + "tinymce/ui/Control", + "tinymce/util/Delay" +], function($, Control, Delay) { + "use strict"; + + /** + * Constructs a new throbber. + * + * @constructor + * @param {Element} elm DOM Html element to display throbber in. + * @param {Boolean} inline Optional true/false state if the throbber should be appended to end of element for infinite scroll. + */ + return function(elm, inline) { + var self = this, state, classPrefix = Control.classPrefix, timer; + + /** + * Shows the throbber. + * + * @method show + * @param {Number} [time] Time to wait before showing. + * @param {function} [callback] Optional callback to execute when the throbber is shown. + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.show = function(time, callback) { + function render() { + if (state) { + $(elm).append( + '
    ' + ); + + if (callback) { + callback(); + } + } + } + + self.hide(); + + state = true; + + if (time) { + timer = Delay.setTimeout(render, time); + } else { + render(); + } + + return self; + }; + + /** + * Hides the throbber. + * + * @method hide + * @return {tinymce.ui.Throbber} Current throbber instance. + */ + self.hide = function() { + var child = elm.lastChild; + + Delay.clearTimeout(timer); + + if (child && child.className.indexOf('throbber') != -1) { + child.parentNode.removeChild(child); + } + + state = false; + + return self; + }; + }; +}); + // Included from: js/tinymce/classes/ui/Menu.js /** * Menu.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -71104,11 +77554,12 @@ define("tinymce/ui/MenuItem", [ define("tinymce/ui/Menu", [ "tinymce/ui/FloatPanel", "tinymce/ui/MenuItem", + "tinymce/ui/Throbber", "tinymce/util/Tools" -], function(FloatPanel, MenuItem, Tools) { +], function(FloatPanel, MenuItem, Throbber, Tools) { "use strict"; - var Menu = FloatPanel.extend({ + return FloatPanel.extend({ Defaults: { defaultType: 'menuitem', border: 1, @@ -71130,6 +77581,11 @@ define("tinymce/ui/Menu", [ settings.autohide = true; settings.constrainToViewport = true; + if (typeof settings.items === 'function') { + settings.itemsFactory = settings.items; + settings.items = []; + } + if (settings.itemDefaults) { var items = settings.items, i = items.length; @@ -71139,7 +77595,7 @@ define("tinymce/ui/Menu", [ } self._super(settings); - self.addClass('menu'); + self.classes.add('menu'); }, /** @@ -71148,7 +77604,7 @@ define("tinymce/ui/Menu", [ * @method repaint */ repaint: function() { - this.toggleClass('menu-align', true); + this.classes.toggle('menu-align', true); this._super(); @@ -71170,6 +77626,67 @@ define("tinymce/ui/Menu", [ self.fire('select'); }, + /** + * Loads new items from the factory items function. + * + * @method load + */ + load: function() { + var self = this, time, factory; + + function hideThrobber() { + if (self.throbber) { + self.throbber.hide(); + self.throbber = null; + } + } + + factory = self.settings.itemsFactory; + if (!factory) { + return; + } + + if (!self.throbber) { + self.throbber = new Throbber(self.getEl('body'), true); + + if (self.items().length === 0) { + self.throbber.show(); + self.fire('loading'); + } else { + self.throbber.show(100, function() { + self.items().remove(); + self.fire('loading'); + }); + } + + self.on('hide close', hideThrobber); + } + + self.requestTime = time = new Date().getTime(); + + self.settings.itemsFactory(function(items) { + if (items.length === 0) { + self.hide(); + return; + } + + if (self.requestTime !== time) { + return; + } + + self.getEl().style.width = ''; + self.getEl('body').style.width = ''; + + hideThrobber(); + self.items().remove(); + self.getEl('body').innerHTML = ''; + + self.add(items); + self.renderNew(); + self.fire('loaded'); + }); + }, + /** * Hide menu and all sub menus. * @@ -71182,25 +77699,7 @@ define("tinymce/ui/Menu", [ return self._super(); }, -/* - getContainerElm: function() { - var doc = document, id = this.classPrefix + 'menucontainer'; - - var elm = doc.getElementById(id); - if (!elm) { - elm = doc.createElement('div'); - elm.id = id; - elm.setAttribute('role', 'application'); - elm.className = this.classPrefix + '-reset'; - elm.style.position = 'absolute'; - elm.style.top = elm.style.left = '0'; - elm.style.overflow = 'visible'; - doc.body.appendChild(elm); - } - return elm; - }, -*/ /** * Invoked before the menu is rendered. * @@ -71212,17 +77711,178 @@ define("tinymce/ui/Menu", [ self.items().each(function(ctrl) { var settings = ctrl.settings; - if (settings.icon || settings.selectable) { + if (settings.icon || settings.image || settings.selectable) { self._hasIcons = true; return false; } }); + if (self.settings.itemsFactory) { + self.on('postrender', function() { + if (self.settings.itemsFactory) { + self.load(); + } + }); + } + return self._super(); } }); +}); + +// Included from: js/tinymce/classes/ui/ListBox.js + +/** + * ListBox.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new list box control. + * + * @-x-less ListBox.less + * @class tinymce.ui.ListBox + * @extends tinymce.ui.MenuButton + */ +define("tinymce/ui/ListBox", [ + "tinymce/ui/MenuButton", + "tinymce/ui/Menu" +], function(MenuButton, Menu) { + "use strict"; - return Menu; + return MenuButton.extend({ + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} values Array with values to add to list box. + */ + init: function(settings) { + var self = this, values, selected, selectedText, lastItemCtrl; + + function setSelected(menuValues) { + // Try to find a selected value + for (var i = 0; i < menuValues.length; i++) { + selected = menuValues[i].selected || settings.value === menuValues[i].value; + + if (selected) { + selectedText = selectedText || menuValues[i].text; + self.state.set('value', menuValues[i].value); + return true; + } + + // If the value has a submenu, try to find the selected values in that menu + if (menuValues[i].menu) { + if (setSelected(menuValues[i].menu)) { + return true; + } + } + } + } + + self._super(settings); + settings = self.settings; + + self._values = values = settings.values; + if (values) { + if (typeof settings.value != "undefined") { + setSelected(values); + } + + // Default with first item + if (!selected && values.length > 0) { + selectedText = values[0].text; + self.state.set('value', values[0].value); + } + + self.state.set('menu', values); + } + + self.state.set('text', settings.text || selectedText); + + self.classes.add('listbox'); + + self.on('select', function(e) { + var ctrl = e.control; + + if (lastItemCtrl) { + e.lastControl = lastItemCtrl; + } + + if (settings.multiple) { + ctrl.active(!ctrl.active()); + } else { + self.value(e.control.value()); + } + + lastItemCtrl = ctrl; + }); + }, + + /** + * Getter/setter function for the control value. + * + * @method value + * @param {String} [value] Value to be set. + * @return {Boolean/tinymce.ui.ListBox} Value or self if it's a set operation. + */ + bindStates: function() { + var self = this; + + function activateMenuItemsByValue(menu, value) { + if (menu instanceof Menu) { + menu.items().each(function(ctrl) { + if (!ctrl.hasMenus()) { + ctrl.active(ctrl.value() === value); + } + }); + } + } + + function getSelectedItem(menuValues, value) { + var selectedItem; + + if (!menuValues) { + return; + } + + for (var i = 0; i < menuValues.length; i++) { + if (menuValues[i].value === value) { + return menuValues[i]; + } + + if (menuValues[i].menu) { + selectedItem = getSelectedItem(menuValues[i].menu, value); + if (selectedItem) { + return selectedItem; + } + } + } + } + + self.on('show', function(e) { + activateMenuItemsByValue(e.control, self.value()); + }); + + self.state.on('change:value', function(e) { + var selectedItem = getSelectedItem(self.state.get('menu'), e.value); + + if (selectedItem) { + self.text(selectedItem.text); + } else { + self.text(self.settings.text); + } + }); + + return self._super(); + } + }); }); // Included from: js/tinymce/classes/ui/Radio.js @@ -71230,8 +77890,8 @@ define("tinymce/ui/Menu", [ /** * Radio.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -71262,8 +77922,8 @@ define("tinymce/ui/Radio", [ /** * ResizeHandle.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -71292,16 +77952,16 @@ define("tinymce/ui/ResizeHandle", [ renderHtml: function() { var self = this, prefix = self.classPrefix; - self.addClass('resizehandle'); + self.classes.add('resizehandle'); if (self.settings.direction == "both") { - self.addClass('resizehandle-both'); + self.classes.add('resizehandle-both'); } self.canFocus = false; return ( - '
    ' + + '
    ' + '' + '
    ' ); @@ -71346,13 +78006,286 @@ define("tinymce/ui/ResizeHandle", [ }); }); +// Included from: js/tinymce/classes/ui/SelectBox.js + +/** + * SelectBox.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Creates a new select box control. + * + * @-x-less SelectBox.less + * @class tinymce.ui.SelectBox + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/SelectBox", [ + "tinymce/ui/Widget" +], function(Widget) { + "use strict"; + + function createOptions(options) { + var strOptions = ''; + if (options) { + for (var i = 0; i < options.length; i++) { + strOptions += ''; + } + } + return strOptions; + } + + return Widget.extend({ + Defaults: { + classes: "selectbox", + role: "selectbox", + options: [] + }, + /** + * Constructs a instance with the specified settings. + * + * @constructor + * @param {Object} settings Name/value object with settings. + * @setting {Array} values Array with values to add to list box. + */ + init: function(settings) { + var self = this; + + self._super(settings); + + if (self.settings.size) { + + self.size = self.settings.size; + + } + + if (self.settings.options) { + self._options = self.settings.options; + } + + }, + + /** + * Getter/setter function for the options state. + * + * @method options + * @param {Array} [state] State to be set. + * @return {Array|tinymce.ui.SelectBox} Array of string options. + */ + options: function(state) { + if (!arguments.length) { + return this.state.get('options'); + } + + this.state.set('options', state); + + return this; + }, + + renderHtml: function() { + var self = this, options, size = ''; + + options = createOptions(self._options); + + if (self.size) { + size = ' size = "' + self.size + '"'; + } + + return ( + '' + ); + }, + + bindStates: function() { + var self = this; + + self.state.on('change:options', function(e) { + self.getEl().innerHTML = createOptions(e.value); + }); + + return self._super(); + } + }); +}); + +// Included from: js/tinymce/classes/ui/Slider.js + +/** + * Slider.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Slider control. + * + * @-x-less Slider.less + * @class tinymce.ui.Slider + * @extends tinymce.ui.Widget + */ +define("tinymce/ui/Slider", [ + "tinymce/ui/Widget", + "tinymce/ui/DragHelper", + "tinymce/ui/DomUtils" +], function(Widget, DragHelper, DomUtils) { + "use strict"; + + function constrain(value, minVal, maxVal) { + if (value < minVal) { + value = minVal; + } + + if (value > maxVal) { + value = maxVal; + } + + return value; + } + + function updateSliderHandle(ctrl, value) { + var maxHandlePos, shortSizeName, sizeName, stylePosName, styleValue; + + if (ctrl.settings.orientation == "v") { + stylePosName = "top"; + sizeName = "height"; + shortSizeName = "h"; + } else { + stylePosName = "left"; + sizeName = "width"; + shortSizeName = "w"; + } + + maxHandlePos = (ctrl.layoutRect()[shortSizeName] || 100) - DomUtils.getSize(ctrl.getEl('handle'))[sizeName]; + + styleValue = (maxHandlePos * ((value - ctrl._minValue) / (ctrl._maxValue - ctrl._minValue))) + 'px'; + ctrl.getEl('handle').style[stylePosName] = styleValue; + ctrl.getEl('handle').style.height = ctrl.layoutRect().h + 'px'; + } + + return Widget.extend({ + init: function(settings) { + var self = this; + + if (!settings.previewFilter) { + settings.previewFilter = function(value) { + return Math.round(value * 100) / 100.0; + }; + } + + self._super(settings); + self.classes.add('slider'); + + if (settings.orientation == "v") { + self.classes.add('vertical'); + } + + self._minValue = settings.minValue || 0; + self._maxValue = settings.maxValue || 100; + self._initValue = self.state.get('value'); + }, + + renderHtml: function() { + var self = this, id = self._id, prefix = self.classPrefix; + + return ( + '
    ' + + '
    ' + + '
    ' + ); + }, + + reset: function() { + this.value(this._initValue).repaint(); + }, + + postRender: function() { + var self = this, startPos, startHandlePos, handlePos = 0, value, minValue, maxValue, maxHandlePos; + var screenCordName, stylePosName, sizeName, shortSizeName; + + minValue = self._minValue; + maxValue = self._maxValue; + value = self.value(); + + if (self.settings.orientation == "v") { + screenCordName = "screenY"; + stylePosName = "top"; + sizeName = "height"; + shortSizeName = "h"; + } else { + screenCordName = "screenX"; + stylePosName = "left"; + sizeName = "width"; + shortSizeName = "w"; + } + + self._super(); + + self._dragHelper = new DragHelper(self._id, { + handle: self._id + "-handle", + + start: function(e) { + startPos = e[screenCordName]; + startHandlePos = parseInt(self.getEl('handle').style[stylePosName], 10); + maxHandlePos = (self.layoutRect()[shortSizeName] || 100) - DomUtils.getSize(self.getEl('handle'))[sizeName]; + self.fire('dragstart', {value: value}); + }, + + drag: function(e) { + var delta = e[screenCordName] - startPos, handleEl = self.getEl('handle'); + + handlePos = constrain(startHandlePos + delta, 0, maxHandlePos); + handleEl.style[stylePosName] = handlePos + 'px'; + + value = minValue + (handlePos / maxHandlePos) * (maxValue - minValue); + self.value(value); + + self.tooltip().text('' + self.settings.previewFilter(value)).show().moveRel(handleEl, 'bc tc'); + + self.fire('drag', {value: value}); + }, + + stop: function() { + self.tooltip().hide(); + self.fire('dragend', {value: value}); + } + }); + }, + + repaint: function() { + this._super(); + updateSliderHandle(this, this.value()); + }, + + bindStates: function() { + var self = this; + + self.state.on('change:value', function(e) { + updateSliderHandle(self, e.value); + }); + + return self._super(); + } + }); +}); + // Included from: js/tinymce/classes/ui/Spacer.js /** * Spacer.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -71380,10 +78313,10 @@ define("tinymce/ui/Spacer", [ renderHtml: function() { var self = this; - self.addClass('spacer'); + self.classes.add('spacer'); self.canFocus = false; - return '
    '; + return '
    '; } }); }); @@ -71393,8 +78326,8 @@ define("tinymce/ui/Spacer", [ /** * SplitButton.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -71405,12 +78338,13 @@ define("tinymce/ui/Spacer", [ * * @-x-less SplitButton.less * @class tinymce.ui.SplitButton - * @extends tinymce.ui.MenuButton + * @extends tinymce.ui.Button */ define("tinymce/ui/SplitButton", [ "tinymce/ui/MenuButton", - "tinymce/ui/DomUtils" -], function(MenuButton, DomUtils) { + "tinymce/ui/DomUtils", + "tinymce/dom/DomQuery" +], function(MenuButton, DomUtils, $) { return MenuButton.extend({ Defaults: { classes: "widget btn splitbtn", @@ -71430,12 +78364,12 @@ define("tinymce/ui/SplitButton", [ mainButtonElm = elm.firstChild; menuButtonElm = elm.lastChild; - DomUtils.css(mainButtonElm, { + $(mainButtonElm).css({ width: rect.w - DomUtils.getSize(menuButtonElm).width, height: rect.h - 2 }); - DomUtils.css(menuButtonElm, { + $(menuButtonElm).css({ height: rect.h - 2 }); @@ -71450,7 +78384,7 @@ define("tinymce/ui/SplitButton", [ activeMenu: function(state) { var self = this; - DomUtils.toggleClass(self.getEl().lastChild, self.classPrefix + 'active', state); + $(self.getEl().lastChild).toggleClass(self.classPrefix + 'active', state); }, /** @@ -71461,7 +78395,8 @@ define("tinymce/ui/SplitButton", [ */ renderHtml: function() { var self = this, id = self._id, prefix = self.classPrefix, image; - var icon = self.settings.icon; + var icon = self.state.get('icon'), text = self.state.get('text'), + textHtml = ''; image = self.settings.image; if (image) { @@ -71479,11 +78414,16 @@ define("tinymce/ui/SplitButton", [ icon = self.settings.icon ? prefix + 'ico ' + prefix + 'i-' + icon : ''; + if (text) { + self.classes.add('btn-has-text'); + textHtml = '' + self.encode(text) + ''; + } + return ( - '
    ' + + '
    ' + '' + '\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n If nothing selected files we be added to current context.\n

    \n \n
    \n
    \n
    \n
    \n
    \n 40% Complete (success)\n
    \n
    \n
    \n
    \n \n Upload\n \n
    \n
    \n
    \n
    \n
    \n
    \n';}); +define('text!mockup-patterns-upload-url/templates/upload.xml',[],function () { return '
    \n

    <%- _t("Upload here") %>

    \n

    \n <%- _t(\'Drag and drop files from your computer onto the area below or click the "Browse" button.\') %>\n

    \n
    \n
    \n \n
    \n

    <%-_t("Drop files here...")%>

    \n
    \n
    \n "\n disabled="disabled"\n />\n
    \n
    \n \n Browse\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n <%- _t("Select another destination folder or leave blank to add files to the current location.") %>\n

    \n \n
    \n
    \n
    \n
    \n
    \n 40% Complete (success)\n
    \n
    \n
    \n
    \n \n <%- _t("Upload") %>\n \n
    \n
    \n
    \n
    \n
    \n
    \n';}); define('text!mockup-patterns-upload-url/templates/preview.xml',[],function () { return '
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n';}); @@ -74424,7 +81070,6 @@ define('text!mockup-patterns-upload-url/templates/preview.xml',[],function () { * relativePath(string): again, to be used with baseUrl to create upload url (null) * initialFolder(string): UID of initial folder related items widget should have selected (null) * currentPath(string): Current path related items is starting with (null) - * clickable(boolean): If you can click on container to also upload (false) * className(string): value for class attribute in the form element ('upload') * paramName(string): value for name attribute in the file input element ('file') * ajaxUpload(boolean): true or false for letting the widget upload the files via ajax. If false the form will act like a normal form. (true) @@ -74434,7 +81079,7 @@ define('text!mockup-patterns-upload-url/templates/preview.xml',[],function () { * autoCleanResults(boolean): condition value for the file preview in div element to fadeout after file upload is completed. (true) * previewsContainer(selector): JavaScript selector for file preview in div element. (.upload-previews) * container(selector): JavaScript selector for where to put upload stuff into in case of form. If not provided it will be place before the first submit button. ('') - * relatedItems(object): Related items pattern options. Will only use only if relativePath is used to use correct upload destination ({ attributes: ["UID", "Title", "Description", "getURL", "Type", "path", "ModificationDate"], batchSize: 20, basePath: "/", vocabularyUrl: null, width: 500, maximumSelectionSize: 1, placeholder: "Search for item on site..." }) + * relatedItems(object): Related items pattern options. Will only use only if relativePath is used to use correct upload destination ({ attributes: ["UID", "Title", "Description", "getURL", "portal_type", "path", "ModificationDate"], batchSize: 20, basePath: "/", vocabularyUrl: null, width: 500, maximumSelectionSize: 1, placeholder: "Search for item on site..." }) * * Documentation: * @@ -74460,7 +81105,7 @@ define('text!mockup-patterns-upload-url/templates/preview.xml',[],function () { define('mockup-patterns-upload',[ 'jquery', 'underscore', - 'mockup-patterns-base', + 'pat-base', 'mockup-patterns-relateditems', 'dropzone', 'text!mockup-patterns-upload-url/templates/upload.xml', @@ -74475,6 +81120,8 @@ define('mockup-patterns-upload',[ var UploadPattern = Base.extend({ name: 'upload', + trigger: '.pat-upload', + parser: 'mockup', defaults: { showTitle: true, url: null, // XXX MUST provide url to submit to OR be in a form @@ -74487,7 +81134,6 @@ define('mockup-patterns-upload',[ ajaxUpload: true, paramName: 'file', - clickable: true, addRemoveLinks: false, autoCleanResults: true, previewsContainer: '.previews', @@ -74497,27 +81143,38 @@ define('mockup-patterns-upload',[ relatedItems: { // UID attribute is required here since we're working with related items - attributes: ['UID', 'Title', 'Description', 'getURL', 'Type', 'path', 'ModificationDate'], + attributes: ['UID', 'Title', 'Description', 'getURL', 'portal_type', 'path', 'ModificationDate'], batchSize: 20, basePath: '/', vocabularyUrl: null, width: 500, maximumSelectionSize: 1, - placeholder: _t('Search for item on site...') + selectableTypes: ['Folder'] } }, - //placeholder: 'Search for item on site...' init: function() { var self = this, template = UploadTemplate; + // TODO: find a way to make this work in firefox (and IE) + $(document).bind('paste', function(e){ + var oe = e.originalEvent; + var items = oe.clipboardData.items; + if (items) { + for (var i = 0; i < items.length; i++) { + if (items[i].type.indexOf('image') !== -1) { + var blob = items[i].getAsFile(); + self.dropzone.addFile(blob); + } + } + } + }); // values that will change current processing self.currentPath = self.options.currentPath; - self.numFiles = 0; self.currentFile = 0; - template = _.template(template, {_t: _t}); + template = _.template(template)({_t: _t}); self.$el.addClass(self.options.className); self.$el.append(template); @@ -74556,8 +81213,9 @@ define('mockup-patterns-upload',[ $('button.browse', self.$el).click(function(e) { e.preventDefault(); e.stopPropagation(); - // we trigger the dropzone dialog! - self.dropzone.hiddenFileInput.click(); + if(!self.options.maxFiles || self.dropzone.files.length < self.options.maxFiles){ + self.dropzone.hiddenFileInput.click(); + } }); var dzoneOptions = this.getDzoneOptions(); @@ -74577,34 +81235,61 @@ define('mockup-patterns-upload',[ throw e; } - self.dropzone.on('addedfile', function(file) { - self.showControls(); + self.dropzone.on('maxfilesreached', function(){ + self.showHideControls(); + }); + + self.dropzone.on('addedfile', function(/* file */) { + self.showHideControls(); }); self.dropzone.on('removedfile', function() { - if (self.dropzone.files.length < 1) { - self.hideControls(); + self.showHideControls(); + }); + + self.dropzone.on('success', function(e, response){ + // Trigger event 'uploadAllCompleted' and pass the server's reponse and + // the path uid. This event can be listened to by patterns using the + // upload pattern, e.g. the TinyMCE pattern's link plugin. + var data; + try{ + data = $.parseJSON(response); + }catch(ex){ + data = response; } + self.$el.trigger('uploadAllCompleted', { + 'data': data, + 'path_uid': (self.$pathInput) ? self.$pathInput.val() : null + }); }); if (self.options.autoCleanResults) { self.dropzone.on('complete', function(file) { - setTimeout(function() { - $(file.previewElement).fadeOut(); - }, 3000); + if (file.status === Dropzone.SUCCESS){ + setTimeout(function() { + $(file.previewElement).fadeOut(); + }, 3000); + } }); } self.dropzone.on('complete', function(file) { - if (self.dropzone.files.length < 1) { - self.hideControls(); + if (file.status === Dropzone.SUCCESS && self.dropzone.files.length === 1) { + self.showHideControls(); + } + }); + + self.dropzone.on('error', function(file, response, xmlhr) { + if (typeof(xmlhr) !== 'undefined' && xmlhr.status !== 403){ + // If error other than 403, just print a generic message + $('.dz-error-message span', file.previewElement).html(_t('The file transfer failed')); } }); self.dropzone.on('totaluploadprogress', function(pct) { // need to caclulate total pct here in reality since we're manually // processing each file one at a time. - pct = ((((self.currentFile - 1) * 100) + pct) / (self.numFiles * 100)) * 100; + pct = ((((self.currentFile - 1) * 100) + pct) / (self.dropzone.files.length * 100)) * 100; self.$progress.attr('aria-valuenow', pct).css('width', pct + '%'); }); @@ -74617,16 +81302,47 @@ define('mockup-patterns-upload',[ } }); }); + if(self.options.clipboardfile){ + self.dropzone.addFile(self.options.clipboardfile); + } }, - showControls: function() { + showHideControls: function(){ + /* we do this delayed because this can be called multiple times + AND we need to do this hide/show AFTER dropzone is done with + all it's own events. This is NASTY but the only way we can + enforce some numFiles with dropzone! */ var self = this; - $('.controls', self.$el).fadeIn('slow'); + if(self._showHideTimeout){ + clearTimeout(self._showHideTimeout); + } + self._showHideTimeout = setTimeout(function(){ + self._showHideControls(); + }, 50); }, - hideControls: function() { + _showHideControls: function(){ var self = this; - $('.controls', self.$el).fadeOut('slow'); + var $controls = $('.controls', self.$el); + var $browse = $('.browse-select', self.$el); + var $input = $('.dz-hidden-input'); + + if(self.options.maxFiles){ + if(self.dropzone.files.length < self.options.maxFiles){ + $browse.show(); + $input.prop('disabled', false); + }else{ + $browse.hide(); + $input.prop('disabled', true); + } + } + if(self.dropzone.files.length > 0){ + $controls.fadeIn('slow'); + var file = self.dropzone.files[0]; + $('.dz-error-message span', file.previewElement).html(''); + }else{ + $controls.fadeOut('slow'); + } }, pathJoin: function() { @@ -74672,18 +81388,13 @@ define('mockup-patterns-upload',[ getDzoneOptions: function() { var self = this; - // clickable option - if (typeof(self.options.clickable) === 'string') { - if (self.options.clickable === 'true') { - self.options.clickable = true; - } else { - self.options.clickable = false; - } - } + // This pattern REQUIRE dropzone to be clickable + self.options.clickable = true; var options = $.extend({}, self.options); options.url = self.getUrl(); - // XXX force to only upload one at a time, + + // XXX force to only upload one to the server at a time, // right now we don't support multiple for backends options.uploadMultiple = false; @@ -74726,21 +81437,30 @@ define('mockup-patterns-upload',[ fileaddedClassName = self.options.fileaddedClassName, finished = options.finished; - self.numFiles = self.dropzone.files.length; self.currentFile = 0; function process() { processing = true; if (self.dropzone.files.length === 0) { processing = false; + } + + var file = self.dropzone.files[0]; + if (processing && file.status === Dropzone.ERROR){ + // Put the file back as "queued" for retrying + file.status = Dropzone.QUEUED; + processing = false; + } + + if (!processing){ self.$el.removeClass(fileaddedClassName); if (finished !== undefined && typeof(finished) === 'function'){ finished(); } return; } - var file = self.dropzone.files[0]; - if ([Dropzone.SUCCESS, Dropzone.ERROR, Dropzone.CANCELED] + + if ([Dropzone.SUCCESS, Dropzone.CANCELED] .indexOf(file.status) !== -1) { // remove it self.dropzone.removeFile(file); @@ -74780,13 +81500,13 @@ define('mockup-patterns-upload',[ chunkSize: chunkSize }).fail(function() { if(window.DEBUG){ - console.alert('Error uploading with TUS resumable uploads'); + console.alert(_t('Error uploading with TUS resumable uploads')); } file.status = Dropzone.ERROR; }).progress(function(e, bytesUploaded, bytesTotal) { var percentage = (bytesUploaded / bytesTotal * 100); self.$progress.attr('aria-valuenow', percentage).css('width', percentage + '%'); - self.$progress.html(_t('uploading...
    ') + + self.$progress.html(_t('uploading...') + '
    ' + self.formatBytes(bytesUploaded) + ' / ' + self.formatBytes(bytesTotal)); }).done(function(url, file) { @@ -74811,6 +81531,7 @@ define('mockup-patterns-upload',[ setPath: function(path){ var self = this; self.currentPath = path; + self.options.url = null; self.options.url = self.dropzone.options.url = self.getUrl(); }, @@ -74838,50 +81559,53 @@ define('mockup-patterns-upload',[ }); - -define('text!mockup-patterns-tinymce-url/templates/link.xml',[],function () { return '
    \n
    \n

    <%- insertHeading %>

    \n

    Drag and drop files from your desktop onto dialog to upload

    \n\n
    \n\n
    \n Internal\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n Upload\n
    \n
    \n\n
    \n External\n
    \n \n \n
    \n
    \n\n \n\n
    \n Anchor\n
    \n
    \n \n
    \n \n <% _.each(targetList, function(target){ %>\n \n <% }); %>\n \n
    \n
    \n \n \n
    \n
    \n\n \n \n
    \n
    \n';}); - - -define('text!mockup-patterns-tinymce-url/templates/image.xml',[],function () { return '
    \n
    \n

    <%- insertHeading %>

    \n

    Drag and drop files from your desktop onto dialog to upload

    \n\n
    \n\n
    \n Image\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n Upload\n
    \n
    \n\n
    \n External image\n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n \n \n\n
    \n
    \n';}); - define('mockup-patterns-tinymce-url/js/links',[ 'jquery', 'underscore', - 'mockup-patterns-base', - 'mockup-patterns-relateditems', - 'mockup-patterns-modal', + 'pat-registry', + 'pat-base', 'tinymce', - 'mockup-patterns-upload', + 'mockup-patterns-relateditems', 'text!mockup-patterns-tinymce-url/templates/link.xml', - 'text!mockup-patterns-tinymce-url/templates/image.xml' -], function($, _, Base, RelatedItems, Modal, tinymce, Upload, - LinkTemplate, ImageTemplate) { + 'text!mockup-patterns-tinymce-url/templates/image.xml', + 'mockup-patterns-upload' +], function($, _, registry, Base, tinymce, RelatedItems, LinkTemplate, ImageTemplate) { 'use strict'; var LinkType = Base.extend({ - name: 'linktype', defaults: { linkModal: null // required }, + init: function() { this.linkModal = this.options.linkModal; this.tinypattern = this.options.tinypattern; this.tiny = this.tinypattern.tiny; this.dom = this.tiny.dom; - this.$input = this.$el.find('input'); }, + + getEl: function(){ + return this.$el.find('input'); + }, + value: function() { - return this.$input.val(); + return $.trim(this.getEl().val()); }, + toUrl: function() { return this.value(); }, + load: function(element) { - this.$input.attr('value', this.tiny.dom.getAttrib(element, 'data-val')); + this.getEl().attr('value', this.tiny.dom.getAttrib(element, 'data-val')); }, + set: function(val) { - this.$input.attr('value', val); + var $el = this.getEl(); + $el.attr('value', val); + $el.val(val); }, + attributes: function() { return { 'data-val': this.value() @@ -74889,25 +81613,48 @@ define('mockup-patterns-tinymce-url/js/links',[ } }); + var ExternalLink = LinkType.extend({ + init: function() { + LinkType.prototype.init.call(this); + this.getEl().on('change', function(){ + // check here if we should automatically add in http:// to url + var val = $(this).val(); + if((new RegExp("https?\:\/\/")).test(val)){ + // already valid url + return; + } + var domain = $(this).val().split('/')[0]; + if(domain.indexOf('.') !== -1){ + $(this).val('http://' + val); + } + }); + } + }); + var InternalLink = LinkType.extend({ init: function() { - var self = this; - LinkType.prototype.init.call(self); - self.$input.addClass('pat-relateditems'); - self.createRelatedItems(); + LinkType.prototype.init.call(this); + this.getEl().addClass('pat-relateditems'); + this.createRelatedItems(); + }, + + getEl: function(){ + return this.$el.find('input:not(.select2-input)'); }, + createRelatedItems: function() { - this.relatedItems = new RelatedItems(this.$input, + this.relatedItems = new RelatedItems(this.getEl(), this.linkModal.options.relatedItems); }, + value: function() { - var self = this; - var val = self.$input.select2('data'); + var val = this.getEl().select2('data'); if (val && typeof(val) === 'object') { val = val[0]; } return val; }, + toUrl: function() { var value = this.value(); if (value) { @@ -74921,14 +81668,18 @@ define('mockup-patterns-tinymce-url/js/links',[ this.set(val); } }, + set: function(val) { + var $el = this.getEl(); // kill it and then reinitialize since select2 will load data then - this.$input.select2('destroy'); - this.$input.attr('data-relateditems', undefined); // reset the pattern - this.$input.parent().replaceWith(this.$input); - this.$input.attr('value', val); + $el.select2('destroy'); + $el.removeData('pattern-relateditems'); // reset the pattern + $el.parent().replaceWith($el); + $el.attr('value', val); + $el.val(val); this.createRelatedItems(); }, + attributes: function() { var val = this.value(); if (val) { @@ -74938,20 +81689,35 @@ define('mockup-patterns-tinymce-url/js/links',[ } return {}; } - }); - var UploadLink = InternalLink.extend({ - toUrl: function() { - var filename = $('.pat-upload').data('filename'); - var path = $('.pat-upload').data('path'); - var paths = [path, filename]; - if (path){ - paths.unshift(''); // add root node + var UploadLink = LinkType.extend({ + /* need to do it a bit differently here. + when a user uploads and tries to upload from + it, you need to delegate to the real insert + linke types */ + getDelegatedLinkType: function(){ + if(this.linkModal.linkType === 'uploadImage'){ + return this.linkModal.linkTypes.image; + }else{ + return this.linkModal.linkTypes.internal; } - return paths.join('/'); + }, + toUrl: function(){ + return this.getDelegatedLinkType().toUrl(); + }, + attributes: function(){ + return this.getDelegatedLinkType().attributes(); + }, + set: function(val){ + return this.getDelegatedLinkType().set(val); + }, + load: function(element){ + return this.getDelegatedLinkType().load(element); + }, + value: function(){ + return this.getDelegatedLinkType().value(); } - }); var ImageLink = InternalLink.extend({ @@ -74975,13 +81741,16 @@ define('mockup-patterns-tinymce-url/js/links',[ } return null; }, + load: function(element) { LinkType.prototype.load.apply(this, [element]); this.linkModal.$subject.val(this.tiny.dom.getAttrib(element, 'data-subject')); }, + getSubject: function() { return this.linkModal.$subject.val(); }, + attributes: function() { var attribs = LinkType.prototype.attributes.call(this); attribs['data-subject'] = this.getSubject(); @@ -74991,21 +81760,21 @@ define('mockup-patterns-tinymce-url/js/links',[ var AnchorLink = LinkType.extend({ init: function() { - var self = this; - LinkType.prototype.init.call(self); - self.$select = self.$el.find('select'); - self.anchorNodes = []; - self.anchorData = []; - self.populate(); + LinkType.prototype.init.call(this); + this.$select = this.$el.find('select'); + this.anchorNodes = []; + this.anchorData = []; + this.populate(); }, + value: function() { - var self = this; - var val = self.$select.select2('data'); + var val = this.$select.select2('data'); if (val && typeof(val) === 'object') { - val = val['id']; + val = val.id; } return val; }, + populate: function() { var self = this; self.$select.find('option').remove(); @@ -75062,23 +81831,23 @@ define('mockup-patterns-tinymce-url/js/links',[ self.$select.append(''); } }, + getIndex: function(name) { - var self = this; - for (var i = 0; i < self.anchorData.length; i = i + 1) { - var data = self.anchorData[i]; + for (var i = 0; i < this.anchorData.length; i = i + 1) { + var data = this.anchorData[i]; if (data.name === name) { return i; } } return 0; }, + toUrl: function() { - var self = this; - var val = self.value(); + var val = this.value(); if (val) { var index = parseInt(val, 10); - var node = self.anchorNodes[index]; - var data = self.anchorData[index]; + var node = this.anchorNodes[index]; + var data = this.anchorData[index]; if (data.newAnchor) { node.innerHTML = '' + node.innerHTML; } @@ -75086,6 +81855,7 @@ define('mockup-patterns-tinymce-url/js/links',[ } return null; }, + set: function(val) { var anchor = this.getIndex(val); this.$select.select2('data', '' + anchor); @@ -75142,6 +81912,7 @@ define('mockup-patterns-tinymce-url/js/links',[ var LinkModal = Base.extend({ name: 'linkmodal', + trigger: '.pat-linkmodal', defaults: { anchorSelector: 'h1,h2,h3', linkTypes: [ @@ -75162,7 +81933,7 @@ define('mockup-patterns-tinymce-url/js/links',[ linkTypeClassMapping: { 'internal': InternalLink, 'upload': UploadLink, - 'external': LinkType, + 'external': ExternalLink, 'email': EmailLink, 'anchor': AnchorLink, 'image': ImageLink, @@ -75197,38 +81968,100 @@ define('mockup-patterns-tinymce-url/js/links',[ self.dom = self.tiny.dom; self.linkType = self.options.initialLinkType; self.linkTypes = {}; - self.modal = new Modal(self.$el, { + + self.data = {}; + // get selection BEFORE.. + // This is pulled from TinyMCE link plugin + self.initialText = null; + var value; + self.rng = self.tiny.selection.getRng(); + self.selectedElm = self.tiny.selection.getNode(); + self.anchorElm = self.tiny.dom.getParent(self.selectedElm, 'a[href]'); + self.onlyText = self.isOnlyTextSelected(); + + self.data.text = self.initialText = self.anchorElm ? (self.anchorElm.innerText || self.anchorElm.textContent) : self.tiny.selection.getContent({format: 'text'}); + self.data.href = self.anchorElm ? self.tiny.dom.getAttrib(self.anchorElm, 'href') : ''; + + if (self.anchorElm) { + self.data.target = self.tiny.dom.getAttrib(self.anchorElm, 'target'); + } else if (self.tiny.settings.default_link_target) { + self.data.target = self.tiny.settings.default_link_target; + } + + if ((value = self.tiny.dom.getAttrib(self.anchorElm, 'rel'))) { + self.data.rel = value; + } + + if ((value = self.tiny.dom.getAttrib(self.anchorElm, 'class'))) { + self.data['class'] = value; + } + + if ((value = self.tiny.dom.getAttrib(self.anchorElm, 'title'))) { + self.data.title = value; + } + + self.modal = registry.patterns['plone-modal'].init(self.$el, { html: self.generateModalHtml(), content: null, - buttons: '.btn' + buttons: '.plone-btn' }); self.modal.on('shown', function(e) { self.modalShown.apply(self, [e]); }); }, + + isOnlyTextSelected: function() { + /* pulled from TinyMCE link plugin */ + var html = this.tiny.selection.getContent(); + + // Partial html and not a fully selected anchor element + if (/]+>[^<]+<\/a>$/.test(html) || html.indexOf('href=') === -1)) { + return false; + } + + if (this.anchorElm) { + var nodes = this.anchorElm.childNodes, i; + + if (nodes.length === 0) { + return false; + } + + for (var ii = nodes.length - 1; ii >= 0; ii--) { + if (nodes[ii].nodeType !== 3) { + return false; + } + } + } + + return true; + }, + generateModalHtml: function() { - var self = this; - return self.template({ - text: self.options.text, - insertHeading: self.options.text.insertHeading, - linkTypes: self.options.linkTypes, - externalText: self.options.text.external, - emailText: self.options.text.email, - subjectText: self.options.text.subject, - targetList: self.options.targetList, - titleText: self.options.text.title, - externalImageText: self.options.text.externalImage, - altText: self.options.text.alt, - imageAlignText: self.options.text.imageAlign, - scaleText: self.options.text.scale, - scales: self.options.scales, - cancelBtn: self.options.text.cancelBtn, - insertBtn: self.options.text.insertBtn + return this.template({ + options: this.options, + upload: this.options.upload, + text: this.options.text, + insertHeading: this.options.text.insertHeading, + linkTypes: this.options.linkTypes, + externalText: this.options.text.external, + emailText: this.options.text.email, + subjectText: this.options.text.subject, + targetList: this.options.targetList, + titleText: this.options.text.title, + externalImageText: this.options.text.externalImage, + altText: this.options.text.alt, + imageAlignText: this.options.text.imageAlign, + scaleText: this.options.text.scale, + scales: this.options.scales, + cancelBtn: this.options.text.cancelBtn, + insertBtn: this.options.text.insertBtn }); }, + isImageMode: function() { return ['image', 'uploadImage', 'externalImage'].indexOf(this.linkType) !== -1; }, + initElements: function() { var self = this; self.$target = $('select[name="target"]', self.modal.$modal); @@ -75259,36 +82092,71 @@ define('mockup-patterns-tinymce-url/js/links',[ }); }); }, + getLinkUrl: function() { // get the url, only get one uid - var self = this; - return self.linkTypes[self.linkType].toUrl(); + return this.linkTypes[this.linkType].toUrl(); }, + getValue: function() { return this.linkTypes[this.linkType].value(); }, + updateAnchor: function(href) { var self = this; + + self.tiny.focus(); + self.tiny.selection.setRng(self.rng); + var target = self.$target.val(); var title = self.$title.val(); - var data = $.extend(true, {}, { + var linkAttrs = $.extend(true, self.data, { title: title ? title : null, target: target ? target : null, 'data-linkType': self.linkType, href: href }, self.linkTypes[self.linkType].attributes()); - self.tiny.execCommand('mceInsertLink', false, data); + if (self.anchorElm) { + + if (self.onlyText && linkAttrs.text !== self.initialText) { + if ("innerText" in self.anchorElm) { + self.anchorElm.innerText = self.data.text; + } else { + self.anchorElm.textContent = self.data.text; + } + } + + self.tiny.dom.setAttribs(self.anchorElm, linkAttrs); + + self.tiny.selection.select(self.anchorElm); + self.tiny.undoManager.add(); + } else { + if (self.onlyText) { + self.tiny.insertContent( + self.tiny.dom.createHTML('a', linkAttrs, + self.tiny.dom.encode(self.data.text))); + } else { + self.tiny.execCommand('mceInsertLink', false, linkAttrs); + } + } }, + focusElement: function(elm) { - var self = this; - self.tiny.focus(); - self.tiny.selection.select(elm); - self.tiny.nodeChanged(); + this.tiny.focus(); + this.tiny.selection.select(elm); + this.tiny.nodeChanged(); }, + updateImage: function(src) { var self = this; + var title = self.$title.val(); + + self.tiny.focus(); + self.tiny.selection.setRng(self.rng); + var data = $.extend(true, {}, { src: src, + title: title ? title : null, alt: self.$alt.val(), 'class': 'image-' + self.$align.val(), 'data-linkType': self.linkType, @@ -75322,29 +82190,60 @@ define('mockup-patterns-tinymce-url/js/links',[ self.focusElement(self.imgElm); } }, + modalShown: function(e) { var self = this; - self.initElements(); self.initData(); - // upload init - self.$upload = $('.uploadify-me', self.modal.$modal); - self.options.upload.relatedItems = self.options.relatedItems; - self.$upload.addClass('pat-upload').patternUpload(self.options.upload); - self.$upload.on('uploadAllCompleted', function(evt, data) { - self.$upload.attr({ - 'data-filename': data.files ? data.files[0].name : '', - 'data-path': data.path + if(self.options.upload){ + self.$upload = $('.uploadify-me', self.modal.$modal); + self.options.upload.relatedItems = $.extend(true, {}, self.options.relatedItems); + self.options.upload.relatedItems.selectableTypes = self.options.folderTypes; + self.$upload.addClass('pat-upload').patternUpload(self.options.upload); + self.$upload.on('uploadAllCompleted', function(evt, data) { + if(self.linkTypes.image){ + self.linkTypes.image.set(data.data.UID); + $('#' + $('#tinylink-image' , self.modal.$modal).data('navref')).trigger('click'); + }else{ + self.linkTypes.internal.set(data.data.UID); + $('#' + $('#tinylink-internal' , self.modal.$modal).data('navref')).trigger('click'); + } }); - }); + } self.$button.off('click').on('click', function(e) { e.preventDefault(); e.stopPropagation(); self.linkType = self.modal.$modal.find('fieldset.active').data('linktype'); - var href = self.getLinkUrl(); + if(self.linkType === 'uploadImage' || self.linkType === 'upload'){ + var patUpload = self.$upload.data().patternUpload; + if(patUpload.dropzone.files.length > 0){ + patUpload.processUpload(); + self.$upload.on('uploadAllCompleted', function(evt, data) { + var counter = 0; + var checkUpload = function(){ + if(counter < 5 && !self.linkTypes[self.linkType].value()){ + counter += 1; + setTimeout(checkUpload, 100); + return; + }else{ + var href = self.getLinkUrl(); + self.updateImage(href); + self.hide(); + } + }; + checkUpload(); + }); + } + } + var href; + try{ + href = self.getLinkUrl(); + }catch(error){ + return; // just cut out if no url + } if (!href) { return; // just cut out if no url } @@ -75361,18 +82260,19 @@ define('mockup-patterns-tinymce-url/js/links',[ self.hide(); }); }, + show: function() { this.modal.show(); }, + hide: function() { this.modal.hide(); }, + initData: function() { var self = this; - self.selection = self.tiny.selection; self.tiny.focus(); - var selectedElm = self.imgElm = self.selection.getNode(); self.anchorElm = self.dom.getParent(selectedElm, 'a[href]'); @@ -75394,13 +82294,17 @@ define('mockup-patterns-tinymce-url/js/links',[ } if (self.imgElm) { var src = self.dom.getAttrib(self.imgElm, 'src'); + self.$title.val(self.dom.getAttrib(self.imgElm, 'title')); self.$alt.val(self.dom.getAttrib(self.imgElm, 'alt')); linkType = self.dom.getAttrib(self.imgElm, 'data-linktype'); if (linkType) { self.linkType = linkType; self.linkTypes[self.linkType].load(self.imgElm); var scale = self.dom.getAttrib(self.imgElm, 'data-scale'); - self.$scale.val(scale); + if(scale){ + self.$scale.val(scale); + } + $('#tinylink-' + self.linkType, self.modal.$modal).trigger('click'); }else if (src) { self.guessImageLink(src); } @@ -75423,46 +82327,48 @@ define('mockup-patterns-tinymce-url/js/links',[ if (linkType) { self.linkType = linkType; self.linkTypes[self.linkType].load(self.anchorElm); + $('#tinylink-' + self.linkType, self.modal.$modal).trigger('click'); }else if (href) { self.guessAnchorLink(href); } } }, + guessImageLink: function(src) { - var self = this; - if (src.indexOf(self.options.prependToScalePart) !== -1) { - self.linkType = 'image'; - self.$scale.val(self.tinypattern.getScaleFromUrl(src)); - self.linkTypes.image.set(self.tinypattern.stripGeneratedUrl(src)); + if (src.indexOf(this.options.prependToScalePart) !== -1) { + this.linkType = 'image'; + this.$scale.val(this.tinypattern.getScaleFromUrl(src)); + this.linkTypes.image.set(this.tinypattern.stripGeneratedUrl(src)); } else { - self.linkType = 'externalImage'; - self.linkTypes.externalImage.set(src); + this.linkType = 'externalImage'; + this.linkTypes.externalImage.set(src); } }, + guessAnchorLink: function(href) { - var self = this; - if (self.options.prependToUrl && - href.indexOf(self.options.prependToUrl) !== -1) { + if (this.options.prependToUrl && + href.indexOf(this.options.prependToUrl) !== -1) { // XXX if using default configuration, it gets more difficult // here to detect internal urls so this might need to change... - self.linkType = 'internal'; - self.linkTypes.internal.set(self.tinypattern.stripGeneratedUrl(href)); + this.linkType = 'internal'; + this.linkTypes.internal.set(this.tinypattern.stripGeneratedUrl(href)); } else if (href.indexOf('mailto:') !== -1) { - self.linkType = 'email'; + this.linkType = 'email'; var email = href.substring('mailto:'.length, href.length); var split = email.split('?subject='); - self.linkTypes.email.set(split[0]); + this.linkTypes.email.set(split[0]); if (split.length > 1) { - self.$subject.val(decodeURIComponent(split[1])); + this.$subject.val(decodeURIComponent(split[1])); } } else if (href[0] === '#') { - self.linkType = 'anchor'; - self.linkTypes.anchor.setRaw(href.substring(1)); + this.linkType = 'anchor'; + this.linkTypes.anchor.set(href.substring(1)); } else { - self.linkType = 'external'; - self.linkTypes.external.setRaw(href); + this.linkType = 'external'; + this.linkTypes.external.set(href); } }, + setSelectElement: function($el, val) { $el.find('option:selected').prop('selected', false); if (val) { @@ -75470,17 +82376,16 @@ define('mockup-patterns-tinymce-url/js/links',[ $el.find('option[value="' + val + '"]').prop('selected', true); } }, + reinitialize: function() { /* * This will probably be called before show is run. * It will overwrite the base html template given to * be able to privde default values for the overlay */ - var self = this; - self.modal.options.html = self.generateModalHtml(); + this.modal.options.html = this.generateModalHtml(); } }); - return LinkModal; }); @@ -75491,8 +82396,8 @@ define("tinymce-modern-theme", ["tinymce"], function() { /** * theme.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -75501,7 +82406,8 @@ define("tinymce-modern-theme", ["tinymce"], function() { /*global tinymce:true */ tinymce.ThemeManager.add('modern', function(editor) { - var self = this, settings = editor.settings, Factory = tinymce.ui.Factory, each = tinymce.each, DOM = tinymce.DOM; + var self = this, settings = editor.settings, Factory = tinymce.ui.Factory, + each = tinymce.each, DOM = tinymce.DOM, Rect = tinymce.geom.Rect, FloatPanel = tinymce.ui.FloatPanel; // Default menus var defaultMenus = { @@ -75517,119 +82423,114 @@ tinymce.ThemeManager.add('modern', function(editor) { var defaultToolbar = "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | " + "bullist numlist outdent indent | link image"; - /** - * Creates the toolbars from config and returns a toolbar array. - * - * @return {Array} Array with toolbars. - */ - function createToolbars() { - var toolbars = []; - - function addToolbar(items) { - var toolbarItems = [], buttonGroup; + function createToolbar(items, size) { + var toolbarItems = [], buttonGroup; - if (!items) { - return; - } + if (!items) { + return; + } - each(items.split(/[ ,]/), function(item) { - var itemName; + each(items.split(/[ ,]/), function(item) { + var itemName; - function bindSelectorChanged() { - var selection = editor.selection; + function bindSelectorChanged() { + var selection = editor.selection; - if (itemName == "bullist") { - selection.selectorChanged('ul > li', function(state, args) { - var nodeName, i = args.parents.length; + function setActiveItem(name) { + return function(state, args) { + var nodeName, i = args.parents.length; - while (i--) { - nodeName = args.parents[i].nodeName; - if (nodeName == "OL" || nodeName == "UL") { - break; - } + while (i--) { + nodeName = args.parents[i].nodeName; + if (nodeName == "OL" || nodeName == "UL") { + break; } + } - item.active(state && nodeName == "UL"); - }); - } - - if (itemName == "numlist") { - selection.selectorChanged('ol > li', function(state, args) { - var nodeName, i = args.parents.length; + item.active(state && nodeName == name); + }; + } - while (i--) { - nodeName = args.parents[i].nodeName; - if (nodeName == "OL" || nodeName == "UL") { - break; - } - } + if (itemName == "bullist") { + selection.selectorChanged('ul > li', setActiveItem("UL")); + } - item.active(state && nodeName == "OL"); - }); - } + if (itemName == "numlist") { + selection.selectorChanged('ol > li', setActiveItem("OL")); + } - if (item.settings.stateSelector) { - selection.selectorChanged(item.settings.stateSelector, function(state) { - item.active(state); - }, true); - } + if (item.settings.stateSelector) { + selection.selectorChanged(item.settings.stateSelector, function(state) { + item.active(state); + }, true); + } - if (item.settings.disabledStateSelector) { - selection.selectorChanged(item.settings.disabledStateSelector, function(state) { - item.disabled(state); - }); - } + if (item.settings.disabledStateSelector) { + selection.selectorChanged(item.settings.disabledStateSelector, function(state) { + item.disabled(state); + }); } + } - if (item == "|") { + if (item == "|") { + buttonGroup = null; + } else { + if (Factory.has(item)) { + item = {type: item, size: size}; + toolbarItems.push(item); buttonGroup = null; } else { - if (Factory.has(item)) { - item = {type: item}; + if (!buttonGroup) { + buttonGroup = {type: 'buttongroup', items: []}; + toolbarItems.push(buttonGroup); + } - if (settings.toolbar_items_size) { - item.size = settings.toolbar_items_size; - } + if (editor.buttons[item]) { + // TODO: Move control creation to some UI class + itemName = item; + item = editor.buttons[itemName]; - toolbarItems.push(item); - buttonGroup = null; - } else { - if (!buttonGroup) { - buttonGroup = {type: 'buttongroup', items: []}; - toolbarItems.push(buttonGroup); + if (typeof item == "function") { + item = item(); } - if (editor.buttons[item]) { - // TODO: Move control creation to some UI class - itemName = item; - item = editor.buttons[itemName]; - - if (typeof(item) == "function") { - item = item(); - } - - item.type = item.type || 'button'; - - if (settings.toolbar_items_size) { - item.size = settings.toolbar_items_size; - } + item.type = item.type || 'button'; + item.size = size; - item = Factory.create(item); - buttonGroup.items.push(item); + item = Factory.create(item); + buttonGroup.items.push(item); - if (editor.initialized) { - bindSelectorChanged(); - } else { - editor.on('init', bindSelectorChanged); - } + if (editor.initialized) { + bindSelectorChanged(); + } else { + editor.on('init', bindSelectorChanged); } } } - }); + } + }); + + return { + type: 'toolbar', + layout: 'flow', + items: toolbarItems + }; + } - toolbars.push({type: 'toolbar', layout: 'flow', items: toolbarItems}); + /** + * Creates the toolbars from config and returns a toolbar array. + * + * @param {String} size Optional toolbar item size. + * @return {Array} Array with toolbars. + */ + function createToolbars(size) { + var toolbars = []; - return true; + function addToolbar(items) { + if (items) { + toolbars.push(createToolbar(items, size)); + return true; + } } // Convert toolbar array to multiple options @@ -75766,7 +82667,7 @@ tinymce.ThemeManager.add('modern', function(editor) { } } - var enabledMenuNames = typeof(settings.menubar) == "string" ? settings.menubar.split(/[ ,]/) : defaultMenuBar; + var enabledMenuNames = typeof settings.menubar == "string" ? settings.menubar.split(/[ ,]/) : defaultMenuBar; for (var i = 0; i < enabledMenuNames.length; i++) { var menu = enabledMenuNames[i]; menu = createMenu(menu); @@ -75848,6 +82749,241 @@ tinymce.ThemeManager.add('modern', function(editor) { self.resizeTo(elm.clientWidth + dw, elm.clientHeight + dh); } + /** + * Handles contextual toolbars. + */ + function addContextualToolbars() { + var scrollContainer; + + function getContextToolbars() { + return editor.contextToolbars || []; + } + + function getElementRect(elm) { + var pos, targetRect, root; + + pos = tinymce.DOM.getPos(editor.getContentAreaContainer()); + targetRect = editor.dom.getRect(elm); + root = editor.dom.getRoot(); + + // Adjust targetPos for scrolling in the editor + if (root.nodeName == 'BODY') { + targetRect.x -= root.ownerDocument.documentElement.scrollLeft || root.scrollLeft; + targetRect.y -= root.ownerDocument.documentElement.scrollTop || root.scrollTop; + } + + targetRect.x += pos.x; + targetRect.y += pos.y; + + return targetRect; + } + + function hideAllFloatingPanels() { + each(editor.contextToolbars, function(toolbar) { + if (toolbar.panel) { + toolbar.panel.hide(); + } + }); + } + + function reposition(match) { + var relPos, panelRect, elementRect, contentAreaRect, panel, relRect, testPositions; + + if (editor.removed) { + return; + } + + if (!match || !match.toolbar.panel) { + hideAllFloatingPanels(); + return; + } + + testPositions = [ + 'tc-bc', 'bc-tc', + 'tl-bl', 'bl-tl', + 'tr-br', 'br-tr' + ]; + + panel = match.toolbar.panel; + panel.show(); + + elementRect = getElementRect(match.element); + panelRect = tinymce.DOM.getRect(panel.getEl()); + contentAreaRect = tinymce.DOM.getRect(editor.getContentAreaContainer() || editor.getBody()); + + // We need to use these instead of the rect values since the style + // size properites might not be the same as the real size for a table + elementRect.w = match.element.clientWidth; + elementRect.h = match.element.clientHeight; + + if (!editor.inline) { + contentAreaRect.w = editor.getDoc().documentElement.offsetWidth; + } + + // Inflate the elementRect so it doesn't get placed above resize handles + if (editor.selection.controlSelection.isResizable(match.element)) { + elementRect = Rect.inflate(elementRect, 0, 8); + } + + relPos = Rect.findBestRelativePosition(panelRect, elementRect, contentAreaRect, testPositions); + + if (relPos) { + each(testPositions.concat('inside'), function(pos) { + panel.classes.toggle('tinymce-inline-' + pos, pos == relPos); + }); + + relRect = Rect.relativePosition(panelRect, elementRect, relPos); + panel.moveTo(relRect.x, relRect.y); + } else { + each(testPositions, function(pos) { + panel.classes.toggle('tinymce-inline-' + pos, false); + }); + + panel.classes.toggle('tinymce-inline-inside', true); + + elementRect = Rect.intersect(contentAreaRect, elementRect); + + if (elementRect) { + relPos = Rect.findBestRelativePosition(panelRect, elementRect, contentAreaRect, [ + 'tc-tc', 'tl-tl', 'tr-tr' + ]); + + if (relPos) { + relRect = Rect.relativePosition(panelRect, elementRect, relPos); + panel.moveTo(relRect.x, relRect.y); + } else { + panel.moveTo(elementRect.x, elementRect.y); + } + } else { + panel.hide(); + } + } + + //drawRect(contentAreaRect, 'blue'); + //drawRect(elementRect, 'red'); + //drawRect(panelRect, 'green'); + } + + function repositionHandler() { + function execute() { + if (editor.selection) { + reposition(findFrontMostMatch(editor.selection.getNode())); + } + } + + tinymce.util.Delay.requestAnimationFrame(execute); + } + + function bindScrollEvent() { + if (!scrollContainer) { + scrollContainer = editor.selection.getScrollContainer() || editor.getWin(); + tinymce.$(scrollContainer).on('scroll', repositionHandler); + + editor.on('remove', function() { + tinymce.$(scrollContainer).off('scroll'); + }); + } + } + + function showContextToolbar(match) { + var panel; + + if (match.toolbar.panel) { + match.toolbar.panel.show(); + reposition(match); + return; + } + + bindScrollEvent(); + + panel = Factory.create({ + type: 'floatpanel', + role: 'application', + classes: 'tinymce tinymce-inline', + layout: 'flex', + direction: 'column', + align: 'stretch', + autohide: false, + autofix: true, + fixed: true, + border: 1, + items: createToolbar(match.toolbar.items) + }); + + match.toolbar.panel = panel; + panel.renderTo(document.body).reflow(); + reposition(match); + } + + function hideAllContextToolbars() { + tinymce.each(getContextToolbars(), function(toolbar) { + if (toolbar.panel) { + toolbar.panel.hide(); + } + }); + } + + function findFrontMostMatch(targetElm) { + var i, y, parentsAndSelf, toolbars = getContextToolbars(); + + parentsAndSelf = editor.$(targetElm).parents().add(targetElm); + for (i = parentsAndSelf.length - 1; i >= 0; i--) { + for (y = toolbars.length - 1; y >= 0; y--) { + if (toolbars[y].predicate(parentsAndSelf[i])) { + return { + toolbar: toolbars[y], + element: parentsAndSelf[i] + }; + } + } + } + + return null; + } + + editor.on('click keyup setContent', function(e) { + // Only act on partial inserts + if (e.type == 'setcontent' && !e.selection) { + return; + } + + // Needs to be delayed to avoid Chrome img focus out bug + tinymce.util.Delay.setEditorTimeout(editor, function() { + var match; + + match = findFrontMostMatch(editor.selection.getNode()); + if (match) { + hideAllContextToolbars(); + showContextToolbar(match); + } else { + hideAllContextToolbars(); + } + }); + }); + + editor.on('blur hide', hideAllContextToolbars); + + editor.on('ObjectResizeStart', function() { + var match = findFrontMostMatch(editor.selection.getNode()); + + if (match && match.toolbar.panel) { + match.toolbar.panel.hide(); + } + }); + + editor.on('nodeChange ResizeEditor ResizeWindow', repositionHandler); + + editor.on('remove', function() { + tinymce.each(getContextToolbars(), function(toolbar) { + if (toolbar.panel) { + toolbar.panel.remove(); + } + }); + + editor.contextToolbars = {}; + }); + } + /** * Renders the inline editor UI. * @@ -75887,7 +83023,12 @@ tinymce.ThemeManager.add('modern', function(editor) { function hide() { if (panel) { + // We require two events as the inline float panel based toolbar does not have autohide=true panel.hide(); + + // All other autohidden float panels will be closed below. + FloatPanel.hideAll(); + DOM.removeClass(editor.getBody(), 'mce-edit-focus'); } } @@ -75915,7 +83056,7 @@ tinymce.ThemeManager.add('modern', function(editor) { border: 1, items: [ settings.menubar === false ? null : {type: 'menubar', border: '0 0 1 0', items: createMenuButtons()}, - createToolbars() + createToolbars(settings.toolbar_items_size) ] }); @@ -75931,6 +83072,7 @@ tinymce.ThemeManager.add('modern', function(editor) { addAccessibilityKeys(panel); show(); + addContextualToolbars(); editor.on('nodeChange', reposition); editor.on('activate', show); @@ -75962,7 +83104,9 @@ tinymce.ThemeManager.add('modern', function(editor) { // Preload skin css if (args.skinUiCss) { - tinymce.DOM.styleSheetLoader.load(args.skinUiCss); + tinymce.DOM.styleSheetLoader.load(args.skinUiCss, function() { + editor.fire('SkinLoaded'); + }); } return {}; @@ -75977,8 +83121,20 @@ tinymce.ThemeManager.add('modern', function(editor) { function renderIframeUI(args) { var panel, resizeHandleCtrl, startSize; + function switchMode() { + return function(e) { + if (e.mode == 'readonly') { + panel.find('*').disabled(true); + } else { + panel.find('*').disabled(false); + } + }; + } + if (args.skinUiCss) { - tinymce.DOM.loadCSS(args.skinUiCss); + tinymce.DOM.styleSheetLoader.load(args.skinUiCss, function() { + editor.fire('SkinLoaded'); + }); } // Basic UI layout @@ -75991,7 +83147,7 @@ tinymce.ThemeManager.add('modern', function(editor) { border: 1, items: [ settings.menubar === false ? null : {type: 'menubar', border: '0 0 1 0', items: createMenuButtons()}, - createToolbars(), + createToolbars(settings.toolbar_items_size), {type: 'panel', name: 'iframe', layout: 'stack', classes: 'edit-area', html: '', border: '1 0 0 0'} ] }); @@ -76033,6 +83189,7 @@ tinymce.ThemeManager.add('modern', function(editor) { } editor.fire('BeforeRenderUI'); + editor.on('SwitchMode', switchMode()); panel.renderBefore(args.targetNode).reflow(); if (settings.width) { @@ -76045,8 +83202,9 @@ tinymce.ThemeManager.add('modern', function(editor) { panel = null; }); - // Add accesibility shortkuts + // Add accesibility shortcuts addAccessibilityKeys(panel); + addContextualToolbars(); return { iframeContainer: panel.find('#iframe')[0].getEl(), @@ -76117,8 +83275,8 @@ define("tinymce-advlist", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -76152,27 +83310,29 @@ tinymce.PluginManager.add('advlist', function(editor) { ulMenuItems = buildMenuItems('UL', editor.getParam("advlist_bullet_styles", "default,circle,disc,square")); function applyListFormat(listName, styleValue) { - var list, dom = editor.dom, sel = editor.selection; + editor.undoManager.transact(function() { + var list, dom = editor.dom, sel = editor.selection; - // Check for existing list element - list = dom.getParent(sel.getNode(), 'ol,ul'); + // Check for existing list element + list = dom.getParent(sel.getNode(), 'ol,ul'); - // Switch/add list type if needed - if (!list || list.nodeName != listName || styleValue === false) { - editor.execCommand(listName == 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList'); - } + // Switch/add list type if needed + if (!list || list.nodeName != listName || styleValue === false) { + editor.execCommand(listName == 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList'); + } - // Set style - styleValue = styleValue === false ? lastStyles[listName] : styleValue; - lastStyles[listName] = styleValue; + // Set style + styleValue = styleValue === false ? lastStyles[listName] : styleValue; + lastStyles[listName] = styleValue; - list = dom.getParent(sel.getNode(), 'ol,ul'); - if (list) { - dom.setStyle(list, 'listStyleType', styleValue ? styleValue : null); - list.removeAttribute('data-mce-style'); - } + list = dom.getParent(sel.getNode(), 'ol,ul'); + if (list) { + dom.setStyle(list, 'listStyleType', styleValue ? styleValue : null); + list.removeAttribute('data-mce-style'); + } - editor.focus(); + editor.focus(); + }); } function updateSelection(e) { @@ -76220,8 +83380,8 @@ define("tinymce-anchor", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -76232,8 +83392,9 @@ define("tinymce-anchor", ["tinymce"], function() { tinymce.PluginManager.add('anchor', function(editor) { function showDialog() { var selectedNode = editor.selection.getNode(), name = ''; + var isAnchor = selectedNode.tagName == 'A' && editor.dom.getAttrib(selectedNode, 'href') === ''; - if (selectedNode.tagName == 'A') { + if (isAnchor) { name = selectedNode.name || selectedNode.id || ''; } @@ -76241,13 +83402,22 @@ tinymce.PluginManager.add('anchor', function(editor) { title: 'Anchor', body: {type: 'textbox', name: 'name', size: 40, label: 'Name', value: name}, onsubmit: function(e) { - editor.execCommand('mceInsertContent', false, editor.dom.createHTML('a', { - id: e.data.name - })); + var id = e.data.name; + + if (isAnchor) { + selectedNode.id = id; + } else { + editor.selection.collapse(true); + editor.execCommand('mceInsertContent', false, editor.dom.createHTML('a', { + id: id + })); + } } }); } + editor.addCommand('mceAnchor', showDialog); + editor.addButton('anchor', { icon: 'anchor', tooltip: 'Anchor', @@ -76273,8 +83443,8 @@ define("tinymce-autolink", ["tinymce"], function() { /** * plugin.js * - * Copyright 2011, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -76284,6 +83454,11 @@ define("tinymce-autolink", ["tinymce"], function() { tinymce.PluginManager.add('autolink', function(editor) { var AutoUrlDetectState; + var AutoLinkPattern = /^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i; + + if (editor.settings.autolink_pattern) { + AutoLinkPattern = editor.settings.autolink_pattern; + } editor.on("keydown", function(e) { if (e.keyCode == 13) { @@ -76352,18 +83527,31 @@ tinymce.PluginManager.add('autolink', function(editor) { } function setStart(container, offset) { - rng.setStart(container, scopeIndex(container, offset)); + if (container.nodeType != 1 || container.hasChildNodes()) { + rng.setStart(container, scopeIndex(container, offset)); + } else { + rng.setStartBefore(container); + } } function setEnd(container, offset) { - rng.setEnd(container, scopeIndex(container, offset)); + if (container.nodeType != 1 || container.hasChildNodes()) { + rng.setEnd(container, scopeIndex(container, offset)); + } else { + rng.setEndAfter(container); + } + } + + // Never create a link when we are inside a link + if (editor.selection.getNode().tagName == 'A') { + return; } // We need at least five characters to form a URL, // hence, at minimum, five characters from the beginning of the line. rng = editor.selection.getRng(true).cloneRange(); if (rng.startOffset < 5) { - // During testing, the caret is placed inbetween two text nodes. + // During testing, the caret is placed between two text nodes. // The previous text node contains the URL. prev = rng.endContainer.previousSibling; if (!prev) { @@ -76438,7 +83626,7 @@ tinymce.PluginManager.add('autolink', function(editor) { } text = rng.toString(); - matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i); + matches = text.match(AutoLinkPattern); if (matches) { if (matches[1] == 'www.') { @@ -76468,8 +83656,8 @@ define("tinymce-autoresize", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -76573,7 +83761,7 @@ tinymce.PluginManager.add('autoresize', function(editor) { * the CSS files might load async. */ function wait(times, interval, callback) { - setTimeout(function() { + tinymce.util.Delay.setEditorTimeout(editor, function() { resize({}); if (times--) { @@ -76592,13 +83780,23 @@ tinymce.PluginManager.add('autoresize', function(editor) { // Add padding at the bottom for better UX editor.on("init", function() { - var overflowPadding = editor.getParam('autoresize_overflow_padding', 1); + var overflowPadding, bottomMargin; - editor.dom.setStyles(editor.getBody(), { - paddingBottom: editor.getParam('autoresize_bottom_margin', 50), - paddingLeft: overflowPadding, - paddingRight: overflowPadding - }); + overflowPadding = editor.getParam('autoresize_overflow_padding', 1); + bottomMargin = editor.getParam('autoresize_bottom_margin', 50); + + if (overflowPadding !== false) { + editor.dom.setStyles(editor.getBody(), { + paddingLeft: overflowPadding, + paddingRight: overflowPadding + }); + } + + if (bottomMargin !== false) { + editor.dom.setStyles(editor.getBody(), { + paddingBottom: bottomMargin + }); + } }); // Add appropriate listeners for resizing content area @@ -76629,8 +83827,8 @@ define("tinymce-autosave", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -76764,7 +83962,7 @@ tinymce.PluginManager.add('autosave', function(editor) { function isEmpty(html) { var forcedRootBlockName = editor.settings.forced_root_block; - html = tinymce.trim(typeof(html) == "undefined" ? editor.getBody().innerHTML : html); + html = tinymce.trim(typeof html == "undefined" ? editor.getBody().innerHTML : html); return html === '' || new RegExp( '^<' + forcedRootBlockName + '[^>]*>((\u00a0| |[ \t]|]*>)+?|)<\/' + forcedRootBlockName + '>|
    $', 'i' @@ -76802,8 +84000,8 @@ define("tinymce-bbcode", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -76813,7 +84011,7 @@ define("tinymce-bbcode", ["tinymce"], function() { (function() { tinymce.create('tinymce.plugins.BBCodePlugin', { - init : function(ed) { + init: function(ed) { var self = this, dialect = ed.getParam('bbcode_dialect', 'punbb').toLowerCase(); ed.on('beforeSetContent', function(e) { @@ -76834,7 +84032,7 @@ define("tinymce-bbcode", ["tinymce"], function() { getInfo: function() { return { longname: 'BBCode Plugin', - author: 'Moxiecode Systems AB', + author: 'Ephox Corp', authorurl: 'http://www.tinymce.com', infourl: 'http://www.tinymce.com/wiki.php/Plugin:bbcode' }; @@ -76843,7 +84041,7 @@ define("tinymce-bbcode", ["tinymce"], function() { // Private methods // HTML -> BBCode in PunBB dialect - _punbb_html2bbcode : function(s) { + _punbb_html2bbcode: function(s) { s = tinymce.trim(s); function rep(re, str) { @@ -76893,7 +84091,7 @@ define("tinymce-bbcode", ["tinymce"], function() { }, // BBCode -> HTML from PunBB dialect - _punbb_bbcode2html : function(s) { + _punbb_bbcode2html: function(s) { s = tinymce.trim(s); function rep(re, str) { @@ -76933,8 +84131,8 @@ define("tinymce-charmap", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -76943,267 +84141,311 @@ define("tinymce-charmap", ["tinymce"], function() { /*global tinymce:true */ tinymce.PluginManager.add('charmap', function(editor) { - var charmap = [ - ['160', 'no-break space'], - ['38', 'ampersand'], - ['34', 'quotation mark'], - // finance - ['162', 'cent sign'], - ['8364', 'euro sign'], - ['163', 'pound sign'], - ['165', 'yen sign'], - // signs - ['169', 'copyright sign'], - ['174', 'registered sign'], - ['8482', 'trade mark sign'], - ['8240', 'per mille sign'], - ['181', 'micro sign'], - ['183', 'middle dot'], - ['8226', 'bullet'], - ['8230', 'three dot leader'], - ['8242', 'minutes / feet'], - ['8243', 'seconds / inches'], - ['167', 'section sign'], - ['182', 'paragraph sign'], - ['223', 'sharp s / ess-zed'], - // quotations - ['8249', 'single left-pointing angle quotation mark'], - ['8250', 'single right-pointing angle quotation mark'], - ['171', 'left pointing guillemet'], - ['187', 'right pointing guillemet'], - ['8216', 'left single quotation mark'], - ['8217', 'right single quotation mark'], - ['8220', 'left double quotation mark'], - ['8221', 'right double quotation mark'], - ['8218', 'single low-9 quotation mark'], - ['8222', 'double low-9 quotation mark'], - ['60', 'less-than sign'], - ['62', 'greater-than sign'], - ['8804', 'less-than or equal to'], - ['8805', 'greater-than or equal to'], - ['8211', 'en dash'], - ['8212', 'em dash'], - ['175', 'macron'], - ['8254', 'overline'], - ['164', 'currency sign'], - ['166', 'broken bar'], - ['168', 'diaeresis'], - ['161', 'inverted exclamation mark'], - ['191', 'turned question mark'], - ['710', 'circumflex accent'], - ['732', 'small tilde'], - ['176', 'degree sign'], - ['8722', 'minus sign'], - ['177', 'plus-minus sign'], - ['247', 'division sign'], - ['8260', 'fraction slash'], - ['215', 'multiplication sign'], - ['185', 'superscript one'], - ['178', 'superscript two'], - ['179', 'superscript three'], - ['188', 'fraction one quarter'], - ['189', 'fraction one half'], - ['190', 'fraction three quarters'], - // math / logical - ['402', 'function / florin'], - ['8747', 'integral'], - ['8721', 'n-ary sumation'], - ['8734', 'infinity'], - ['8730', 'square root'], - ['8764', 'similar to'], - ['8773', 'approximately equal to'], - ['8776', 'almost equal to'], - ['8800', 'not equal to'], - ['8801', 'identical to'], - ['8712', 'element of'], - ['8713', 'not an element of'], - ['8715', 'contains as member'], - ['8719', 'n-ary product'], - ['8743', 'logical and'], - ['8744', 'logical or'], - ['172', 'not sign'], - ['8745', 'intersection'], - ['8746', 'union'], - ['8706', 'partial differential'], - ['8704', 'for all'], - ['8707', 'there exists'], - ['8709', 'diameter'], - ['8711', 'backward difference'], - ['8727', 'asterisk operator'], - ['8733', 'proportional to'], - ['8736', 'angle'], - // undefined - ['180', 'acute accent'], - ['184', 'cedilla'], - ['170', 'feminine ordinal indicator'], - ['186', 'masculine ordinal indicator'], - ['8224', 'dagger'], - ['8225', 'double dagger'], - // alphabetical special chars - ['192', 'A - grave'], - ['193', 'A - acute'], - ['194', 'A - circumflex'], - ['195', 'A - tilde'], - ['196', 'A - diaeresis'], - ['197', 'A - ring above'], - ['198', 'ligature AE'], - ['199', 'C - cedilla'], - ['200', 'E - grave'], - ['201', 'E - acute'], - ['202', 'E - circumflex'], - ['203', 'E - diaeresis'], - ['204', 'I - grave'], - ['205', 'I - acute'], - ['206', 'I - circumflex'], - ['207', 'I - diaeresis'], - ['208', 'ETH'], - ['209', 'N - tilde'], - ['210', 'O - grave'], - ['211', 'O - acute'], - ['212', 'O - circumflex'], - ['213', 'O - tilde'], - ['214', 'O - diaeresis'], - ['216', 'O - slash'], - ['338', 'ligature OE'], - ['352', 'S - caron'], - ['217', 'U - grave'], - ['218', 'U - acute'], - ['219', 'U - circumflex'], - ['220', 'U - diaeresis'], - ['221', 'Y - acute'], - ['376', 'Y - diaeresis'], - ['222', 'THORN'], - ['224', 'a - grave'], - ['225', 'a - acute'], - ['226', 'a - circumflex'], - ['227', 'a - tilde'], - ['228', 'a - diaeresis'], - ['229', 'a - ring above'], - ['230', 'ligature ae'], - ['231', 'c - cedilla'], - ['232', 'e - grave'], - ['233', 'e - acute'], - ['234', 'e - circumflex'], - ['235', 'e - diaeresis'], - ['236', 'i - grave'], - ['237', 'i - acute'], - ['238', 'i - circumflex'], - ['239', 'i - diaeresis'], - ['240', 'eth'], - ['241', 'n - tilde'], - ['242', 'o - grave'], - ['243', 'o - acute'], - ['244', 'o - circumflex'], - ['245', 'o - tilde'], - ['246', 'o - diaeresis'], - ['248', 'o slash'], - ['339', 'ligature oe'], - ['353', 's - caron'], - ['249', 'u - grave'], - ['250', 'u - acute'], - ['251', 'u - circumflex'], - ['252', 'u - diaeresis'], - ['253', 'y - acute'], - ['254', 'thorn'], - ['255', 'y - diaeresis'], - ['913', 'Alpha'], - ['914', 'Beta'], - ['915', 'Gamma'], - ['916', 'Delta'], - ['917', 'Epsilon'], - ['918', 'Zeta'], - ['919', 'Eta'], - ['920', 'Theta'], - ['921', 'Iota'], - ['922', 'Kappa'], - ['923', 'Lambda'], - ['924', 'Mu'], - ['925', 'Nu'], - ['926', 'Xi'], - ['927', 'Omicron'], - ['928', 'Pi'], - ['929', 'Rho'], - ['931', 'Sigma'], - ['932', 'Tau'], - ['933', 'Upsilon'], - ['934', 'Phi'], - ['935', 'Chi'], - ['936', 'Psi'], - ['937', 'Omega'], - ['945', 'alpha'], - ['946', 'beta'], - ['947', 'gamma'], - ['948', 'delta'], - ['949', 'epsilon'], - ['950', 'zeta'], - ['951', 'eta'], - ['952', 'theta'], - ['953', 'iota'], - ['954', 'kappa'], - ['955', 'lambda'], - ['956', 'mu'], - ['957', 'nu'], - ['958', 'xi'], - ['959', 'omicron'], - ['960', 'pi'], - ['961', 'rho'], - ['962', 'final sigma'], - ['963', 'sigma'], - ['964', 'tau'], - ['965', 'upsilon'], - ['966', 'phi'], - ['967', 'chi'], - ['968', 'psi'], - ['969', 'omega'], - // symbols - ['8501', 'alef symbol'], - ['982', 'pi symbol'], - ['8476', 'real part symbol'], - ['978', 'upsilon - hook symbol'], - ['8472', 'Weierstrass p'], - ['8465', 'imaginary part'], - // arrows - ['8592', 'leftwards arrow'], - ['8593', 'upwards arrow'], - ['8594', 'rightwards arrow'], - ['8595', 'downwards arrow'], - ['8596', 'left right arrow'], - ['8629', 'carriage return'], - ['8656', 'leftwards double arrow'], - ['8657', 'upwards double arrow'], - ['8658', 'rightwards double arrow'], - ['8659', 'downwards double arrow'], - ['8660', 'left right double arrow'], - ['8756', 'therefore'], - ['8834', 'subset of'], - ['8835', 'superset of'], - ['8836', 'not a subset of'], - ['8838', 'subset of or equal to'], - ['8839', 'superset of or equal to'], - ['8853', 'circled plus'], - ['8855', 'circled times'], - ['8869', 'perpendicular'], - ['8901', 'dot operator'], - ['8968', 'left ceiling'], - ['8969', 'right ceiling'], - ['8970', 'left floor'], - ['8971', 'right floor'], - ['9001', 'left-pointing angle bracket'], - ['9002', 'right-pointing angle bracket'], - ['9674', 'lozenge'], - ['9824', 'black spade suit'], - ['9827', 'black club suit'], - ['9829', 'black heart suit'], - ['9830', 'black diamond suit'], - ['8194', 'en space'], - ['8195', 'em space'], - ['8201', 'thin space'], - ['8204', 'zero width non-joiner'], - ['8205', 'zero width joiner'], - ['8206', 'left-to-right mark'], - ['8207', 'right-to-left mark'], - ['173', 'soft hyphen'] - ]; + var isArray = tinymce.util.Tools.isArray; + + function getDefaultCharMap() { + return [ + ['160', 'no-break space'], + ['173', 'soft hyphen'], + ['34', 'quotation mark'], + // finance + ['162', 'cent sign'], + ['8364', 'euro sign'], + ['163', 'pound sign'], + ['165', 'yen sign'], + // signs + ['169', 'copyright sign'], + ['174', 'registered sign'], + ['8482', 'trade mark sign'], + ['8240', 'per mille sign'], + ['181', 'micro sign'], + ['183', 'middle dot'], + ['8226', 'bullet'], + ['8230', 'three dot leader'], + ['8242', 'minutes / feet'], + ['8243', 'seconds / inches'], + ['167', 'section sign'], + ['182', 'paragraph sign'], + ['223', 'sharp s / ess-zed'], + // quotations + ['8249', 'single left-pointing angle quotation mark'], + ['8250', 'single right-pointing angle quotation mark'], + ['171', 'left pointing guillemet'], + ['187', 'right pointing guillemet'], + ['8216', 'left single quotation mark'], + ['8217', 'right single quotation mark'], + ['8220', 'left double quotation mark'], + ['8221', 'right double quotation mark'], + ['8218', 'single low-9 quotation mark'], + ['8222', 'double low-9 quotation mark'], + ['60', 'less-than sign'], + ['62', 'greater-than sign'], + ['8804', 'less-than or equal to'], + ['8805', 'greater-than or equal to'], + ['8211', 'en dash'], + ['8212', 'em dash'], + ['175', 'macron'], + ['8254', 'overline'], + ['164', 'currency sign'], + ['166', 'broken bar'], + ['168', 'diaeresis'], + ['161', 'inverted exclamation mark'], + ['191', 'turned question mark'], + ['710', 'circumflex accent'], + ['732', 'small tilde'], + ['176', 'degree sign'], + ['8722', 'minus sign'], + ['177', 'plus-minus sign'], + ['247', 'division sign'], + ['8260', 'fraction slash'], + ['215', 'multiplication sign'], + ['185', 'superscript one'], + ['178', 'superscript two'], + ['179', 'superscript three'], + ['188', 'fraction one quarter'], + ['189', 'fraction one half'], + ['190', 'fraction three quarters'], + // math / logical + ['402', 'function / florin'], + ['8747', 'integral'], + ['8721', 'n-ary sumation'], + ['8734', 'infinity'], + ['8730', 'square root'], + ['8764', 'similar to'], + ['8773', 'approximately equal to'], + ['8776', 'almost equal to'], + ['8800', 'not equal to'], + ['8801', 'identical to'], + ['8712', 'element of'], + ['8713', 'not an element of'], + ['8715', 'contains as member'], + ['8719', 'n-ary product'], + ['8743', 'logical and'], + ['8744', 'logical or'], + ['172', 'not sign'], + ['8745', 'intersection'], + ['8746', 'union'], + ['8706', 'partial differential'], + ['8704', 'for all'], + ['8707', 'there exists'], + ['8709', 'diameter'], + ['8711', 'backward difference'], + ['8727', 'asterisk operator'], + ['8733', 'proportional to'], + ['8736', 'angle'], + // undefined + ['180', 'acute accent'], + ['184', 'cedilla'], + ['170', 'feminine ordinal indicator'], + ['186', 'masculine ordinal indicator'], + ['8224', 'dagger'], + ['8225', 'double dagger'], + // alphabetical special chars + ['192', 'A - grave'], + ['193', 'A - acute'], + ['194', 'A - circumflex'], + ['195', 'A - tilde'], + ['196', 'A - diaeresis'], + ['197', 'A - ring above'], + ['198', 'ligature AE'], + ['199', 'C - cedilla'], + ['200', 'E - grave'], + ['201', 'E - acute'], + ['202', 'E - circumflex'], + ['203', 'E - diaeresis'], + ['204', 'I - grave'], + ['205', 'I - acute'], + ['206', 'I - circumflex'], + ['207', 'I - diaeresis'], + ['208', 'ETH'], + ['209', 'N - tilde'], + ['210', 'O - grave'], + ['211', 'O - acute'], + ['212', 'O - circumflex'], + ['213', 'O - tilde'], + ['214', 'O - diaeresis'], + ['216', 'O - slash'], + ['338', 'ligature OE'], + ['352', 'S - caron'], + ['217', 'U - grave'], + ['218', 'U - acute'], + ['219', 'U - circumflex'], + ['220', 'U - diaeresis'], + ['221', 'Y - acute'], + ['376', 'Y - diaeresis'], + ['222', 'THORN'], + ['224', 'a - grave'], + ['225', 'a - acute'], + ['226', 'a - circumflex'], + ['227', 'a - tilde'], + ['228', 'a - diaeresis'], + ['229', 'a - ring above'], + ['230', 'ligature ae'], + ['231', 'c - cedilla'], + ['232', 'e - grave'], + ['233', 'e - acute'], + ['234', 'e - circumflex'], + ['235', 'e - diaeresis'], + ['236', 'i - grave'], + ['237', 'i - acute'], + ['238', 'i - circumflex'], + ['239', 'i - diaeresis'], + ['240', 'eth'], + ['241', 'n - tilde'], + ['242', 'o - grave'], + ['243', 'o - acute'], + ['244', 'o - circumflex'], + ['245', 'o - tilde'], + ['246', 'o - diaeresis'], + ['248', 'o slash'], + ['339', 'ligature oe'], + ['353', 's - caron'], + ['249', 'u - grave'], + ['250', 'u - acute'], + ['251', 'u - circumflex'], + ['252', 'u - diaeresis'], + ['253', 'y - acute'], + ['254', 'thorn'], + ['255', 'y - diaeresis'], + ['913', 'Alpha'], + ['914', 'Beta'], + ['915', 'Gamma'], + ['916', 'Delta'], + ['917', 'Epsilon'], + ['918', 'Zeta'], + ['919', 'Eta'], + ['920', 'Theta'], + ['921', 'Iota'], + ['922', 'Kappa'], + ['923', 'Lambda'], + ['924', 'Mu'], + ['925', 'Nu'], + ['926', 'Xi'], + ['927', 'Omicron'], + ['928', 'Pi'], + ['929', 'Rho'], + ['931', 'Sigma'], + ['932', 'Tau'], + ['933', 'Upsilon'], + ['934', 'Phi'], + ['935', 'Chi'], + ['936', 'Psi'], + ['937', 'Omega'], + ['945', 'alpha'], + ['946', 'beta'], + ['947', 'gamma'], + ['948', 'delta'], + ['949', 'epsilon'], + ['950', 'zeta'], + ['951', 'eta'], + ['952', 'theta'], + ['953', 'iota'], + ['954', 'kappa'], + ['955', 'lambda'], + ['956', 'mu'], + ['957', 'nu'], + ['958', 'xi'], + ['959', 'omicron'], + ['960', 'pi'], + ['961', 'rho'], + ['962', 'final sigma'], + ['963', 'sigma'], + ['964', 'tau'], + ['965', 'upsilon'], + ['966', 'phi'], + ['967', 'chi'], + ['968', 'psi'], + ['969', 'omega'], + // symbols + ['8501', 'alef symbol'], + ['982', 'pi symbol'], + ['8476', 'real part symbol'], + ['978', 'upsilon - hook symbol'], + ['8472', 'Weierstrass p'], + ['8465', 'imaginary part'], + // arrows + ['8592', 'leftwards arrow'], + ['8593', 'upwards arrow'], + ['8594', 'rightwards arrow'], + ['8595', 'downwards arrow'], + ['8596', 'left right arrow'], + ['8629', 'carriage return'], + ['8656', 'leftwards double arrow'], + ['8657', 'upwards double arrow'], + ['8658', 'rightwards double arrow'], + ['8659', 'downwards double arrow'], + ['8660', 'left right double arrow'], + ['8756', 'therefore'], + ['8834', 'subset of'], + ['8835', 'superset of'], + ['8836', 'not a subset of'], + ['8838', 'subset of or equal to'], + ['8839', 'superset of or equal to'], + ['8853', 'circled plus'], + ['8855', 'circled times'], + ['8869', 'perpendicular'], + ['8901', 'dot operator'], + ['8968', 'left ceiling'], + ['8969', 'right ceiling'], + ['8970', 'left floor'], + ['8971', 'right floor'], + ['9001', 'left-pointing angle bracket'], + ['9002', 'right-pointing angle bracket'], + ['9674', 'lozenge'], + ['9824', 'black spade suit'], + ['9827', 'black club suit'], + ['9829', 'black heart suit'], + ['9830', 'black diamond suit'], + ['8194', 'en space'], + ['8195', 'em space'], + ['8201', 'thin space'], + ['8204', 'zero width non-joiner'], + ['8205', 'zero width joiner'], + ['8206', 'left-to-right mark'], + ['8207', 'right-to-left mark'] + ]; + } + + function charmapFilter(charmap) { + return tinymce.util.Tools.grep(charmap, function(item) { + return isArray(item) && item.length == 2; + }); + } + + function getCharsFromSetting(settingValue) { + if (isArray(settingValue)) { + return [].concat(charmapFilter(settingValue)); + } + + if (typeof settingValue == "function") { + return settingValue(); + } + + return []; + } + + function extendCharMap(charmap) { + var settings = editor.settings; + + if (settings.charmap) { + charmap = getCharsFromSetting(settings.charmap); + } + + if (settings.charmap_append) { + return [].concat(charmap).concat(getCharsFromSetting(settings.charmap_append)); + } + + return charmap; + } + + function getCharMap() { + return extendCharMap(getDefaultCharMap()); + } + + function insertChar(chr) { + editor.fire('insertCustomChar', {chr: chr}).chr; + editor.execCommand('mceInsertContent', false, chr); + } function showDialog() { var gridHtml, x, y, win; @@ -77220,15 +84462,22 @@ tinymce.PluginManager.add('charmap', function(editor) { gridHtml = ''; - var width = 25; - for (y = 0; y < 10; y++) { + var charmap = getCharMap(); + var width = Math.min(charmap.length, 25); + var height = Math.ceil(charmap.length / width); + for (y = 0; y < height; y++) { gridHtml += ''; for (x = 0; x < width; x++) { - var chr = charmap[y * width + x]; + var index = y * width + x; + if (index < charmap.length) { + var chr = charmap[index]; - gridHtml += ''; + gridHtml += ''; + } else { + gridHtml += ''; @@ -77242,23 +84491,25 @@ tinymce.PluginManager.add('charmap', function(editor) { onclick: function(e) { var target = e.target; - if (target.tagName == 'TD') { - target = target.firstChild; - } + if (/^(TD|DIV)$/.test(target.nodeName)) { + if (getParentTd(target).firstChild) { + insertChar(tinymce.trim(target.innerText || target.textContent)); - if (target.tagName == 'DIV') { - editor.execCommand('mceInsertContent', false, target.firstChild.data); - - if (!e.ctrlKey) { - win.close(); + if (!e.ctrlKey) { + win.close(); + } } } }, onmouseover: function(e) { var td = getParentTd(e.target); - if (td) { + if (td && td.firstChild) { win.find('#preview').text(td.firstChild.firstChild.data); + win.find('#previewTitle').text(td.title); + } else { + win.find('#preview').text(' '); + win.find('#previewTitle').text(' '); } } }; @@ -77270,13 +84521,33 @@ tinymce.PluginManager.add('charmap', function(editor) { items: [ charMapPanel, { - type: 'label', - name: 'preview', - text: ' ', - style: 'font-size: 40px; text-align: center', - border: 1, - minWidth: 100, - minHeight: 80 + type: 'container', + layout: 'flex', + direction: 'column', + align: 'center', + spacing: 5, + minWidth: 160, + minHeight: 160, + items: [ + { + type: 'label', + name: 'preview', + text: ' ', + style: 'font-size: 40px; text-align: center', + border: 1, + minWidth: 140, + minHeight: 80 + }, + { + type: 'label', + name: 'previewTitle', + text: ' ', + style: 'text-align: center', + border: 1, + minWidth: 140, + minHeight: 80 + } + ] } ], buttons: [ @@ -77287,20 +84558,28 @@ tinymce.PluginManager.add('charmap', function(editor) { }); } + editor.addCommand('mceShowCharmap', showDialog); + editor.addButton('charmap', { icon: 'charmap', tooltip: 'Special character', - onclick: showDialog + cmd: 'mceShowCharmap' }); editor.addMenuItem('charmap', { icon: 'charmap', text: 'Special character', - onclick: showDialog, + cmd: 'mceShowCharmap', context: 'insert' }); + + return { + getCharMap: getCharMap, + insertChar: insertChar + }; }); + }).apply(root, arguments); }); }(this)); @@ -77311,8 +84590,8 @@ define("tinymce-code", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -77379,8 +84658,8 @@ define("tinymce-colorpicker", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -77499,8 +84778,8 @@ define("tinymce-contextmenu", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -77560,8 +84839,9 @@ tinymce.PluginManager.add('contextmenu', function(editor) { menu = new tinymce.ui.Menu({ items: items, - context: 'contextmenu' - }).addClass('contextmenu').renderTo(); + context: 'contextmenu', + classes: 'contextmenu' + }).renderTo(); editor.on('remove', function() { menu.remove(); @@ -77594,8 +84874,8 @@ define("tinymce-directionality", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -77666,8 +84946,8 @@ define("tinymce-emoticons", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -77740,8 +85020,8 @@ define("tinymce-fullpage", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -78019,11 +85299,11 @@ tinymce.PluginManager.add('fullpage', function(editor) { // Update iframe body as well dom.setAttribs(editor.getBody(), { - style : data.style, - dir : data.dir, - vLink : data.visited_color, - link : data.link_color, - aLink : data.active_color + style: data.style, + dir: data.dir, + vLink: data.visited_color, + link: data.link_color, + aLink: data.active_color }); } @@ -78043,7 +85323,7 @@ tinymce.PluginManager.add('fullpage', function(editor) { html = new tinymce.html.Serializer({ validate: false, indent: true, - apply_source_formatting : true, + apply_source_formatting: true, indent_before: 'head,html,body,meta,title,script,link,style', indent_after: 'head,html,body,meta,title,script,link,style' }).serialize(headerFragment); @@ -78131,7 +85411,7 @@ tinymce.PluginManager.add('fullpage', function(editor) { if (styles) { dom.add(headElm, 'style', { - id : 'fullpage_styles' + id: 'fullpage_styles' }, styles); // Needed for IE 6/7 @@ -78215,12 +85495,12 @@ tinymce.PluginManager.add('fullpage', function(editor) { editor.addButton('fullpage', { title: 'Document properties', - cmd : 'mceFullPageProperties' + cmd: 'mceFullPageProperties' }); editor.addMenuItem('fullpage', { text: 'Document properties', - cmd : 'mceFullPageProperties', + cmd: 'mceFullPageProperties', context: 'file' }); @@ -78239,8 +85519,8 @@ define("tinymce-fullscreen", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -78250,7 +85530,7 @@ define("tinymce-fullscreen", ["tinymce"], function() { tinymce.PluginManager.add('fullscreen', function(editor) { var fullscreenState = false, DOM = tinymce.DOM, iframeWidth, iframeHeight, resizeHandler; - var containerWidth, containerHeight; + var containerWidth, containerHeight, scrollPos; if (editor.settings.inline) { return; @@ -78275,6 +85555,19 @@ tinymce.PluginManager.add('fullscreen', function(editor) { return {w: w, h: h}; } + function getScrollPos() { + var vp = tinymce.DOM.getViewPort(); + + return { + x: vp.x, + y: vp.y + }; + } + + function setScrollPos(pos) { + scrollTo(pos.x, pos.y); + } + function toggleFullscreen() { var body = document.body, documentElement = document.documentElement, editorContainerStyle; var editorContainer, iframe, iframeStyle; @@ -78291,6 +85584,7 @@ tinymce.PluginManager.add('fullscreen', function(editor) { iframeStyle = iframe.style; if (fullscreenState) { + scrollPos = getScrollPos(); iframeWidth = iframeStyle.width; iframeHeight = iframeStyle.height; iframeStyle.width = iframeStyle.height = '100%'; @@ -78321,13 +85615,14 @@ tinymce.PluginManager.add('fullscreen', function(editor) { DOM.removeClass(documentElement, 'mce-fullscreen'); DOM.removeClass(editorContainer, 'mce-fullscreen'); DOM.unbind(window, 'resize', resizeHandler); + setScrollPos(scrollPos); } editor.fire('FullscreenStateChanged', {state: fullscreenState}); } editor.on('init', function() { - editor.addShortcut('Ctrl+Alt+F', '', toggleFullscreen); + editor.addShortcut('Meta+Alt+F', '', toggleFullscreen); }); editor.on('remove', function() { @@ -78340,7 +85635,7 @@ tinymce.PluginManager.add('fullscreen', function(editor) { editor.addMenuItem('fullscreen', { text: 'Fullscreen', - shortcut: 'Ctrl+Alt+F', + shortcut: 'Meta+Alt+F', selectable: true, onClick: toggleFullscreen, onPostRender: function() { @@ -78355,7 +85650,7 @@ tinymce.PluginManager.add('fullscreen', function(editor) { editor.addButton('fullscreen', { tooltip: 'Fullscreen', - shortcut: 'Ctrl+Alt+F', + shortcut: 'Meta+Alt+F', onClick: toggleFullscreen, onPostRender: function() { var self = this; @@ -78373,6 +85668,7 @@ tinymce.PluginManager.add('fullscreen', function(editor) { }; }); + }).apply(root, arguments); }); }(this)); @@ -78383,8 +85679,8 @@ define("tinymce-hr", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -78422,8 +85718,8 @@ define("tinymce-image", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -78444,7 +85740,7 @@ tinymce.PluginManager.add('image', function(editor) { } img.onload = function() { - done(img.clientWidth, img.clientHeight); + done(Math.max(img.width, img.clientWidth), Math.max(img.height, img.clientHeight)); }; img.onerror = function() { @@ -78488,14 +85784,14 @@ tinymce.PluginManager.add('image', function(editor) { return function() { var imageList = editor.settings.image_list; - if (typeof(imageList) == "string") { + if (typeof imageList == "string") { tinymce.util.XHR.send({ url: imageList, success: function(text) { callback(tinymce.util.JSON.parse(text)); } }); - } else if (typeof(imageList) == "function") { + } else if (typeof imageList == "function") { imageList(callback); } else { callback(imageList); @@ -78504,7 +85800,7 @@ tinymce.PluginManager.add('image', function(editor) { } function showDialog(imageList) { - var win, data = {}, dom = editor.dom, imgElm = editor.selection.getNode(); + var win, data = {}, dom = editor.dom, imgElm, figureElm; var width, height, imageListCtrl, classListCtrl, imageDimensions = editor.settings.image_dimensions !== false; function recalcSize() { @@ -78523,10 +85819,16 @@ tinymce.PluginManager.add('image', function(editor) { if (win.find('#constrain')[0].checked() && width && height && newWidth && newHeight) { if (width != newWidth) { newHeight = Math.round((newWidth / width) * newHeight); - heightCtrl.value(newHeight); + + if (!isNaN(newHeight)) { + heightCtrl.value(newHeight); + } } else { newWidth = Math.round((newHeight / height) * newWidth); - widthCtrl.value(newWidth); + + if (!isNaN(newWidth)) { + widthCtrl.value(newWidth); + } } } @@ -78535,6 +85837,8 @@ tinymce.PluginManager.add('image', function(editor) { } function onSubmitForm() { + var figureElm, oldImg; + function waitLoad(imgElm) { function selectImage() { imgElm.onload = imgElm.onerror = null; @@ -78568,6 +85872,10 @@ tinymce.PluginManager.add('image', function(editor) { data.alt = ''; } + if (!data.title) { + data.title = ''; + } + if (data.width === '') { data.width = null; } @@ -78581,12 +85889,15 @@ tinymce.PluginManager.add('image', function(editor) { } // Setup new data excluding style properties + /*eslint dot-notation: 0*/ data = { src: data.src, alt: data.alt, + title: data.title, width: data.width, height: data.height, style: data.style, + caption: data.caption, "class": data["class"] }; @@ -78601,6 +85912,10 @@ tinymce.PluginManager.add('image', function(editor) { return; } + if (data.title === "") { + data.title = null; + } + if (!imgElm) { data.id = '__mcenew'; editor.focus(); @@ -78611,6 +85926,42 @@ tinymce.PluginManager.add('image', function(editor) { dom.setAttribs(imgElm, data); } + editor.editorUpload.uploadImagesAuto(); + + if (data.caption === false) { + if (dom.is(imgElm.parentNode, 'figure.image')) { + figureElm = imgElm.parentNode; + dom.insertAfter(imgElm, figureElm); + dom.remove(figureElm); + } + } + + function isTextBlock(node) { + return editor.schema.getTextBlockElements()[node.nodeName]; + } + + if (data.caption === true) { + if (!dom.is(imgElm.parentNode, 'figure.image')) { + oldImg = imgElm; + imgElm = imgElm.cloneNode(true); + figureElm = dom.create('figure', {'class': 'image'}); + figureElm.appendChild(imgElm); + figureElm.appendChild(dom.create('figcaption', {contentEditable: true}, 'Caption')); + figureElm.contentEditable = false; + + var textBlock = dom.getParent(oldImg, isTextBlock); + if (textBlock) { + dom.split(textBlock, oldImg, figureElm); + } else { + dom.replace(figureElm, oldImg); + } + + editor.selection.select(figureElm); + } + + return; + } + waitLoad(imgElm); }); } @@ -78624,7 +85975,7 @@ tinymce.PluginManager.add('image', function(editor) { } function srcChange(e) { - var meta = e.meta || {}; + var srcURL, prependURL, absoluteURLPattern, meta = e.meta || {}; if (imageListCtrl) { imageListCtrl.value(editor.convertURL(this.value(), 'src')); @@ -78635,7 +85986,18 @@ tinymce.PluginManager.add('image', function(editor) { }); if (!meta.width && !meta.height) { - getImageSize(this.value(), function(data) { + srcURL = editor.convertURL(this.value(), 'src'); + + // Pattern test the src url and make sure we haven't already prepended the url + prependURL = editor.settings.image_prepend_url; + absoluteURLPattern = new RegExp('^(?:[a-z]+:)?//', 'i'); + if (prependURL && !absoluteURLPattern.test(srcURL) && srcURL.substring(0, prependURL.length) !== prependURL) { + srcURL = prependURL + srcURL; + } + + this.value(srcURL); + + getImageSize(editor.documentBaseURI.toAbsolute(this.value()), function(data) { if (data.width && data.height && imageDimensions) { width = data.width; height = data.height; @@ -78647,19 +86009,29 @@ tinymce.PluginManager.add('image', function(editor) { } } - width = dom.getAttrib(imgElm, 'width'); - height = dom.getAttrib(imgElm, 'height'); + imgElm = editor.selection.getNode(); + figureElm = dom.getParent(imgElm, 'figure.image'); + if (figureElm) { + imgElm = dom.select('img', figureElm)[0]; + } + + if (imgElm && (imgElm.nodeName != 'IMG' || imgElm.getAttribute('data-mce-object') || imgElm.getAttribute('data-mce-placeholder'))) { + imgElm = null; + } + + if (imgElm) { + width = dom.getAttrib(imgElm, 'width'); + height = dom.getAttrib(imgElm, 'height'); - if (imgElm.nodeName == 'IMG' && !imgElm.getAttribute('data-mce-object') && !imgElm.getAttribute('data-mce-placeholder')) { data = { src: dom.getAttrib(imgElm, 'src'), alt: dom.getAttrib(imgElm, 'alt'), + title: dom.getAttrib(imgElm, 'title'), "class": dom.getAttrib(imgElm, 'class'), width: width, - height: height + height: height, + caption: !!figureElm }; - } else { - imgElm = null; } if (imageList) { @@ -78684,6 +86056,7 @@ tinymce.PluginManager.add('image', function(editor) { win.find('#src').value(e.control.value()).fire('change'); }, onPostRender: function() { + /*eslint consistent-this: 0*/ imageListCtrl = this; } }; @@ -78724,6 +86097,10 @@ tinymce.PluginManager.add('image', function(editor) { generalFormItems.push({name: 'alt', type: 'textbox', label: 'Image description'}); } + if (editor.settings.image_title) { + generalFormItems.push({name: 'title', type: 'textbox', label: 'Image Title'}); + } + if (imageDimensions) { generalFormItems.push({ type: 'container', @@ -78743,6 +86120,45 @@ tinymce.PluginManager.add('image', function(editor) { generalFormItems.push(classListCtrl); + if (editor.settings.image_caption && tinymce.Env.ceFalse) { + generalFormItems.push({name: 'caption', type: 'checkbox', label: 'Caption'}); + } + + function mergeMargins(css) { + if (css.margin) { + + var splitMargin = css.margin.split(" "); + + switch (splitMargin.length) { + case 1: //margin: toprightbottomleft; + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[0]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[0]; + break; + case 2: //margin: topbottom rightleft; + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[0]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 3: //margin: top rightleft bottom; + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[1]; + break; + case 4: //margin: top right bottom left; + css['margin-top'] = css['margin-top'] || splitMargin[0]; + css['margin-right'] = css['margin-right'] || splitMargin[1]; + css['margin-bottom'] = css['margin-bottom'] || splitMargin[2]; + css['margin-left'] = css['margin-left'] || splitMargin[3]; + } + delete css.margin; + } + return css; + } + function updateStyle() { function addPixelSuffix(value) { if (value.length > 0 && /^[0-9]+$/.test(value)) { @@ -78756,23 +86172,73 @@ tinymce.PluginManager.add('image', function(editor) { return; } - var data = win.toJSON(); - var css = dom.parseStyle(data.style); + var data = win.toJSON(), + css = dom.parseStyle(data.style); + + css = mergeMargins(css); + + if (data.vspace) { + css['margin-top'] = css['margin-bottom'] = addPixelSuffix(data.vspace); + } + if (data.hspace) { + css['margin-left'] = css['margin-right'] = addPixelSuffix(data.hspace); + } + if (data.border) { + css['border-width'] = addPixelSuffix(data.border); + } + + win.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); + } + + function updateVSpaceHSpaceBorder() { + if (!editor.settings.image_advtab) { + return; + } + + var data = win.toJSON(), + css = dom.parseStyle(data.style); + + win.find('#vspace').value(""); + win.find('#hspace').value(""); + + css = mergeMargins(css); + + //Move opposite equal margins to vspace/hspace field + if ((css['margin-top'] && css['margin-bottom']) || (css['margin-right'] && css['margin-left'])) { + if (css['margin-top'] === css['margin-bottom']) { + win.find('#vspace').value(removePixelSuffix(css['margin-top'])); + } else { + win.find('#vspace').value(''); + } + if (css['margin-right'] === css['margin-left']) { + win.find('#hspace').value(removePixelSuffix(css['margin-right'])); + } else { + win.find('#hspace').value(''); + } + } - delete css.margin; - css['margin-top'] = css['margin-bottom'] = addPixelSuffix(data.vspace); - css['margin-left'] = css['margin-right'] = addPixelSuffix(data.hspace); - css['border-width'] = addPixelSuffix(data.border); + //Move border-width + if (css['border-width']) { + win.find('#border').value(removePixelSuffix(css['border-width'])); + } win.find('#style').value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); + } if (editor.settings.image_advtab) { // Parse styles from img if (imgElm) { - data.hspace = removePixelSuffix(imgElm.style.marginLeft || imgElm.style.marginRight); - data.vspace = removePixelSuffix(imgElm.style.marginTop || imgElm.style.marginBottom); - data.border = removePixelSuffix(imgElm.style.borderWidth); + if (imgElm.style.marginLeft && imgElm.style.marginRight && imgElm.style.marginLeft === imgElm.style.marginRight) { + data.hspace = removePixelSuffix(imgElm.style.marginLeft); + } + if (imgElm.style.marginTop && imgElm.style.marginBottom && imgElm.style.marginTop === imgElm.style.marginBottom) { + data.vspace = removePixelSuffix(imgElm.style.marginTop); + } + if (imgElm.style.borderWidth) { + data.border = removePixelSuffix(imgElm.style.borderWidth); + } + data.style = editor.dom.serializeStyle(editor.dom.parseStyle(editor.dom.getAttrib(imgElm, 'style'))); } @@ -78796,7 +86262,8 @@ tinymce.PluginManager.add('image', function(editor) { { label: 'Style', name: 'style', - type: 'textbox' + type: 'textbox', + onchange: updateVSpaceHSpaceBorder }, { type: 'form', @@ -78832,16 +86299,45 @@ tinymce.PluginManager.add('image', function(editor) { } } + editor.on('preInit', function() { + function hasImageClass(node) { + var className = node.attr('class'); + return className && /\bimage\b/.test(className); + } + + function toggleContentEditableState(state) { + return function(nodes) { + var i = nodes.length, node; + + function toggleContentEditable(node) { + node.attr('contenteditable', state ? 'true' : null); + } + + while (i--) { + node = nodes[i]; + + if (hasImageClass(node)) { + node.attr('contenteditable', state ? 'false' : null); + tinymce.each(node.getAll('figcaption'), toggleContentEditable); + } + } + }; + } + + editor.parser.addNodeFilter('figure', toggleContentEditableState(true)); + editor.serializer.addNodeFilter('figure', toggleContentEditableState(false)); + }); + editor.addButton('image', { icon: 'image', tooltip: 'Insert/edit image', onclick: createImageList(showDialog), - stateSelector: 'img:not([data-mce-object],[data-mce-placeholder])' + stateSelector: 'img:not([data-mce-object],[data-mce-placeholder]),figure.image' }); editor.addMenuItem('image', { icon: 'image', - text: 'Insert image', + text: 'Insert/edit image', onclick: createImageList(showDialog), context: 'insert', prependToContext: true @@ -78861,8 +86357,8 @@ define("tinymce-importcss", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -78873,8 +86369,36 @@ define("tinymce-importcss", ["tinymce"], function() { tinymce.PluginManager.add('importcss', function(editor) { var self = this, each = tinymce.each; + function removeCacheSuffix(url) { + var cacheSuffix = tinymce.Env.cacheSuffix; + + if (typeof url == 'string') { + url = url.replace('?' + cacheSuffix, '').replace('&' + cacheSuffix, ''); + } + + return url; + } + + function isSkinContentCss(href) { + var settings = editor.settings, skin = settings.skin !== false ? settings.skin || 'lightgray' : false; + + if (skin) { + var skinUrl = settings.skin_url; + + if (skinUrl) { + skinUrl = editor.documentBaseURI.toAbsolute(skinUrl); + } else { + skinUrl = tinymce.baseURL + '/skins/' + skin; + } + + return href === skinUrl + '/content' + (editor.inline ? '.inline' : '') + '.min.css'; + } + + return false; + } + function compileFilter(filter) { - if (typeof(filter) == "string") { + if (typeof filter == "string") { return function(value) { return value.indexOf(filter) !== -1; }; @@ -78893,7 +86417,9 @@ tinymce.PluginManager.add('importcss', function(editor) { function append(styleSheet, imported) { var href = styleSheet.href, rules; - if (!href || !fileFilter(href, imported)) { + href = removeCacheSuffix(href); + + if (!href || !fileFilter(href, imported) || isSkinContentCss(href)) { return; } @@ -78933,7 +86459,9 @@ tinymce.PluginManager.add('importcss', function(editor) { each(doc.styleSheets, function(styleSheet) { append(styleSheet); }); - } catch (e) {} + } catch (e) { + // Ignore + } return selectors; } @@ -79065,8 +86593,8 @@ define("tinymce-insertdatetime", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -79195,8 +86723,8 @@ define("tinymce-layer", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -79429,8 +86957,8 @@ define("tinymce-legacyoutput", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -79580,21 +87108,21 @@ define("tinymce-legacyoutput", ["tinymce"], function() { } var defaultFontsFormats = - 'Andale Mono=andale mono,times;' + + 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + - 'Arial Black=arial black,avant garde;' + - 'Book Antiqua=book antiqua,palatino;' + + 'Arial Black=arial black,sans-serif;' + + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + - 'Courier New=courier new,courier;' + - 'Georgia=georgia,palatino;' + - 'Helvetica=helvetica;' + - 'Impact=impact,chicago;' + + 'Courier New=courier new,courier,monospace;' + + 'Georgia=georgia,palatino,serif;' + + 'Helvetica=helvetica,arial,sans-serif;' + + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + - 'Terminal=terminal,monaco;' + - 'Times New Roman=times new roman,times;' + - 'Trebuchet MS=trebuchet ms,geneva;' + - 'Verdana=verdana,geneva;' + + 'Terminal=terminal,monaco,monospace;' + + 'Times New Roman=times new roman,times,serif;' + + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats'; @@ -79649,8 +87177,8 @@ define("tinymce-link", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -79663,14 +87191,14 @@ tinymce.PluginManager.add('link', function(editor) { return function() { var linkList = editor.settings.link_list; - if (typeof(linkList) == "string") { + if (typeof linkList == "string") { tinymce.util.XHR.send({ url: linkList, success: function(text) { callback(tinymce.util.JSON.parse(text)); } }); - } else if (typeof(linkList) == "function") { + } else if (typeof linkList == "function") { linkList(callback); } else { callback(linkList); @@ -79800,8 +87328,8 @@ tinymce.PluginManager.add('link', function(editor) { data.text = initialText = anchorElm ? (anchorElm.innerText || anchorElm.textContent) : selection.getContent({format: 'text'}); data.href = anchorElm ? dom.getAttrib(anchorElm, 'href') : ''; - if ((value = dom.getAttrib(anchorElm, 'target'))) { - data.target = value; + if (anchorElm) { + data.target = dom.getAttrib(anchorElm, 'target'); } else if (editor.settings.default_link_target) { data.target = editor.settings.default_link_target; } @@ -79844,6 +87372,7 @@ tinymce.PluginManager.add('link', function(editor) { onselect: linkListChangeHandler, value: editor.convertURL(data.href, 'href'), onPostRender: function() { + /*eslint consistent-this:0*/ linkListCtrl = this; } }; @@ -79924,6 +87453,7 @@ tinymce.PluginManager.add('link', function(editor) { classListCtrl ], onSubmit: function(e) { + /*eslint dot-notation: 0*/ var href; data = tinymce.extend(data, e.data); @@ -79933,12 +87463,12 @@ tinymce.PluginManager.add('link', function(editor) { function delayedConfirm(message, callback) { var rng = editor.selection.getRng(); - window.setTimeout(function() { + tinymce.util.Delay.setEditorTimeout(editor, function() { editor.windowManager.confirm(message, function(state) { editor.selection.setRng(rng); callback(state); }); - }, 0); + }); } function insertLink() { @@ -79995,8 +87525,9 @@ tinymce.PluginManager.add('link', function(editor) { return; } - // Is www. prefixed - if (/^\s*www\./i.test(href)) { + // Is not protocol prefixed + if ((editor.settings.link_assume_external_targets && !/^\w+:/i.test(href)) || + (!editor.settings.link_assume_external_targets && /^\s*www[\.|\d\.]/i.test(href))) { delayedConfirm( 'The URL you entered seems to be an external link. Do you want to add the required http:// prefix?', function(state) { @@ -80019,7 +87550,7 @@ tinymce.PluginManager.add('link', function(editor) { editor.addButton('link', { icon: 'link', tooltip: 'Insert/edit link', - shortcut: 'Ctrl+K', + shortcut: 'Meta+K', onclick: createLinkList(showDialog), stateSelector: 'a[href]' }); @@ -80031,15 +87562,15 @@ tinymce.PluginManager.add('link', function(editor) { stateSelector: 'a[href]' }); - editor.addShortcut('Ctrl+K', '', createLinkList(showDialog)); + editor.addShortcut('Meta+K', '', createLinkList(showDialog)); editor.addCommand('mceLink', createLinkList(showDialog)); this.showDialog = showDialog; editor.addMenuItem('link', { icon: 'link', - text: 'Insert link', - shortcut: 'Ctrl+K', + text: 'Insert/edit link', + shortcut: 'Meta+K', onclick: createLinkList(showDialog), stateSelector: 'a[href]', context: 'insert', @@ -80058,8 +87589,8 @@ define("tinymce-lists", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -80071,8 +87602,16 @@ define("tinymce-lists", ["tinymce"], function() { tinymce.PluginManager.add('lists', function(editor) { var self = this; + function isChildOfBody(elm) { + return editor.$.contains(editor.getBody(), elm); + } + + function isBr(node) { + return node && node.nodeName == 'BR'; + } + function isListNode(node) { - return node && (/^(OL|UL|DL)$/).test(node.nodeName); + return node && (/^(OL|UL|DL)$/).test(node.nodeName) && isChildOfBody(node); } function isFirstChild(node) { @@ -80087,9 +87626,23 @@ tinymce.PluginManager.add('lists', function(editor) { return node && !!editor.schema.getTextBlockElements()[node.nodeName]; } + function isEditorBody(elm) { + return elm === editor.getBody(); + } + editor.on('init', function() { var dom = editor.dom, selection = editor.selection; + function isEmpty(elm, keepBookmarks) { + var empty = dom.isEmpty(elm); + + if (keepBookmarks && dom.select('span[data-mce-type=bookmark]').length > 0) { + return false; + } + + return empty; + } + /** * Returns a range bookmark. This will convert indexed bookmarks into temporary span elements with * index 0 so that they can be restored properly after the DOM has been modified. Text bookmarks will not have spans @@ -80264,31 +87817,45 @@ tinymce.PluginManager.add('lists', function(editor) { } function splitList(ul, li, newBlock) { - var tmpRng, fragment; + var tmpRng, fragment, bookmarks, node; - var bookmarks = dom.select('span[data-mce-type="bookmark"]', ul); + function removeAndKeepBookmarks(targetNode) { + tinymce.each(bookmarks, function(node) { + targetNode.parentNode.insertBefore(node, li.parentNode); + }); + + dom.remove(targetNode); + } + bookmarks = dom.select('span[data-mce-type="bookmark"]', ul); newBlock = newBlock || createNewTextBlock(li); tmpRng = dom.createRng(); tmpRng.setStartAfter(li); tmpRng.setEndAfter(ul); fragment = tmpRng.extractContents(); + for (node = fragment.firstChild; node; node = node.firstChild) { + if (node.nodeName == 'LI' && dom.isEmpty(node)) { + dom.remove(node); + break; + } + } + if (!dom.isEmpty(fragment)) { dom.insertAfter(fragment, ul); } dom.insertAfter(newBlock, ul); - if (dom.isEmpty(li.parentNode)) { - tinymce.each(bookmarks, function(node) { - li.parentNode.parentNode.insertBefore(node, li.parentNode); - }); - - dom.remove(li.parentNode); + if (isEmpty(li.parentNode)) { + removeAndKeepBookmarks(li.parentNode); } dom.remove(li); + + if (isEmpty(ul)) { + dom.remove(ul); + } } function mergeWithAdjacentLists(listBlock) { @@ -80326,7 +87893,7 @@ tinymce.PluginManager.add('lists', function(editor) { if (sibling && sibling.nodeName == 'LI') { sibling.appendChild(ul); - if (dom.isEmpty(parentNode)) { + if (isEmpty(parentNode)) { dom.remove(parentNode); } } @@ -80346,11 +87913,15 @@ tinymce.PluginManager.add('lists', function(editor) { var ul = li.parentNode, ulParent = ul.parentNode, newBlock; function removeEmptyLi(li) { - if (dom.isEmpty(li)) { + if (isEmpty(li)) { dom.remove(li); } } + if (isEditorBody(ul)) { + return true; + } + if (li.nodeName == 'DD') { dom.rename(li, 'DT'); return true; @@ -80393,23 +87964,21 @@ tinymce.PluginManager.add('lists', function(editor) { } return true; - } else { - if (ulParent.nodeName == 'LI') { - ul = ulParent; - newBlock = createNewTextBlock(li, 'LI'); - } else if (isListNode(ulParent)) { - newBlock = createNewTextBlock(li, 'LI'); - } else { - newBlock = createNewTextBlock(li); - } - - splitList(ul, li, newBlock); - normalizeList(ul.parentNode); + } - return true; + if (ulParent.nodeName == 'LI') { + ul = ulParent; + newBlock = createNewTextBlock(li, 'LI'); + } else if (isListNode(ulParent)) { + newBlock = createNewTextBlock(li, 'LI'); + } else { + newBlock = createNewTextBlock(li); } - return false; + splitList(ul, li, newBlock); + normalizeList(ul.parentNode); + + return true; } function indent(li) { @@ -80525,7 +88094,11 @@ tinymce.PluginManager.add('lists', function(editor) { } function applyList(listName) { - var rng = selection.getRng(true), bookmark = createBookmark(rng), listItemName = 'LI'; + var rng = selection.getRng(true), bookmark, listItemName = 'LI'; + + if (dom.getContentEditable(selection.getNode()) === "false") { + return; + } listName = listName.toUpperCase(); @@ -80581,8 +88154,8 @@ tinymce.PluginManager.add('lists', function(editor) { return; } - if (dom.isBlock(node) || node.nodeName == 'BR') { - if (node.nodeName == 'BR') { + if (dom.isBlock(node) || isBr(node)) { + if (isBr(node)) { dom.remove(node); } @@ -80610,6 +88183,8 @@ tinymce.PluginManager.add('lists', function(editor) { return textBlocks; } + bookmark = createBookmark(rng); + tinymce.each(getSelectedTextBlocks(), function(block) { var listBlock, sibling; @@ -80637,7 +88212,11 @@ tinymce.PluginManager.add('lists', function(editor) { tinymce.each(getSelectedListItems(), function(li) { var node, rootList; - if (dom.isEmpty(li)) { + if (isEditorBody(li.parentNode)) { + return; + } + + if (isEmpty(li)) { outdent(li); return; } @@ -80657,6 +88236,10 @@ tinymce.PluginManager.add('lists', function(editor) { function toggleList(listName) { var parentList = dom.getParent(selection.getStart(), 'OL,UL,DL'); + if (isEditorBody(parentList)) { + return; + } + if (parentList) { if (parentList.nodeName == listName) { removeList(listName); @@ -80678,6 +88261,18 @@ tinymce.PluginManager.add('lists', function(editor) { }; } + function isBogusBr(node) { + if (!isBr(node)) { + return false; + } + + if (dom.isBlock(node.nextSibling) && !isBr(node.previousSibling)) { + return true; + } + + return false; + } + self.backspaceDelete = function(isForward) { function findNextCaretContainer(rng, isForward) { var node = rng.startContainer, offset = rng.startOffset; @@ -80688,9 +88283,16 @@ tinymce.PluginManager.add('lists', function(editor) { } nonEmptyBlocks = editor.schema.getNonEmptyElements(); - walker = new tinymce.dom.TreeWalker(rng.startContainer); + walker = new tinymce.dom.TreeWalker(rng.startContainer, editor.getBody()); + + // Delete at
  • |
  • then jump over the bogus br + if (isForward) { + if (isBogusBr(tinymce.dom.RangeUtils.getNode(rng.startContainer, rng.startOffset))) { + walker.next(); + } + } - while ((node = walker[isForward ? 'next' : 'prev']())) { + while ((node = walker[isForward ? 'next' : 'prev2']())) { if (node.nodeName == 'LI' && !node.hasChildNodes()) { return node; } @@ -80708,20 +88310,30 @@ tinymce.PluginManager.add('lists', function(editor) { function mergeLiElements(fromElm, toElm) { var node, listNode, ul = fromElm.parentNode; + if (!isChildOfBody(fromElm) || !isChildOfBody(toElm)) { + return; + } + if (isListNode(toElm.lastChild)) { listNode = toElm.lastChild; } + if (ul == toElm.lastChild) { + if (isBr(ul.previousSibling)) { + dom.remove(ul.previousSibling); + } + } + node = toElm.lastChild; - if (node && node.nodeName == 'BR' && fromElm.hasChildNodes()) { + if (node && isBr(node) && fromElm.hasChildNodes()) { dom.remove(node); } - if (dom.isEmpty(toElm)) { + if (isEmpty(toElm, true)) { dom.$(toElm).empty(); } - if (!dom.isEmpty(fromElm)) { + if (!isEmpty(fromElm, true)) { while ((node = fromElm.firstChild)) { toElm.appendChild(node); } @@ -80733,17 +88345,22 @@ tinymce.PluginManager.add('lists', function(editor) { dom.remove(fromElm); - if (dom.isEmpty(ul)) { + if (isEmpty(ul) && !isEditorBody(ul)) { dom.remove(ul); } } if (selection.isCollapsed()) { - var li = dom.getParent(selection.getStart(), 'LI'); + var li = dom.getParent(selection.getStart(), 'LI'), ul, rng, otherLi; if (li) { - var rng = selection.getRng(true); - var otherLi = dom.getParent(findNextCaretContainer(rng, isForward), 'LI'); + ul = li.parentNode; + if (isEditorBody(ul) && dom.isEmpty(ul)) { + return true; + } + + rng = selection.getRng(true); + otherLi = dom.getParent(findNextCaretContainer(rng, isForward), 'LI'); if (otherLi && otherLi != li) { var bookmark = createBookmark(rng); @@ -80758,7 +88375,7 @@ tinymce.PluginManager.add('lists', function(editor) { return true; } else if (!otherLi) { - if (!isForward && removeList(li.parentNode.nodeName)) { + if (!isForward && removeList(ul.nodeName)) { return true; } } @@ -80766,14 +88383,22 @@ tinymce.PluginManager.add('lists', function(editor) { } }; - editor.addCommand('Indent', function() { - if (!indentSelection()) { - return true; + editor.on('BeforeExecCommand', function(e) { + var cmd = e.command.toLowerCase(), isHandled; + + if (cmd == "indent") { + if (indentSelection()) { + isHandled = true; + } + } else if (cmd == "outdent") { + if (outdentSelection()) { + isHandled = true; + } } - }); - editor.addCommand('Outdent', function() { - if (!outdentSelection()) { + if (isHandled) { + editor.fire('ExecCommand', {command: e.command}); + e.preventDefault(); return true; } }); @@ -80858,8 +88483,8 @@ define("tinymce-media", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -80871,16 +88496,19 @@ define("tinymce-media", ["tinymce"], function() { tinymce.PluginManager.add('media', function(editor, url) { var urlPatterns = [ - {regex: /youtu\.be\/([\w\-.]+)/, type: 'iframe', w: 425, h: 350, url: '//www.youtube.com/embed/$1'}, - {regex: /youtube\.com(.+)v=([^&]+)/, type: 'iframe', w: 425, h: 350, url: '//www.youtube.com/embed/$2'}, - {regex: /vimeo\.com\/([0-9]+)/, type: 'iframe', w: 425, h: 350, url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc'}, - {regex: /vimeo\.com\/(.*)\/([0-9]+)/, type: "iframe", w: 425, h: 350, url: "//player.vimeo.com/video/$2?title=0&byline=0"}, - {regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, type: 'iframe', w: 425, h: 350, url: '//maps.google.com/maps/ms?msid=$2&output=embed"'} + {regex: /youtu\.be\/([\w\-.]+)/, type: 'iframe', w: 560, h: 314, url: '//www.youtube.com/embed/$1', allowFullscreen: true}, + {regex: /youtube\.com(.+)v=([^&]+)/, type: 'iframe', w: 560, h: 314, url: '//www.youtube.com/embed/$2', allowFullscreen: true}, + {regex: /youtube.com\/embed\/([a-z0-9\-_]+)/i, type: 'iframe', w: 560, h: 314, url: '//www.youtube.com/embed/$1', allowFullscreen: true}, + {regex: /vimeo\.com\/([0-9]+)/, type: 'iframe', w: 425, h: 350, url: '//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc', allowfullscreen: true}, + {regex: /vimeo\.com\/(.*)\/([0-9]+)/, type: "iframe", w: 425, h: 350, url: "//player.vimeo.com/video/$2?title=0&byline=0", allowfullscreen: true}, + {regex: /maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/, type: 'iframe', w: 425, h: 350, url: '//maps.google.com/maps/ms?msid=$2&output=embed"', allowFullscreen: false} ]; var embedChange = (tinymce.Env.ie && tinymce.Env.ie <= 8) ? 'onChange' : 'onInput'; function guessMime(url) { + url = url.toLowerCase(); + if (url.indexOf('.mp3') != -1) { return 'audio/mpeg'; } @@ -80951,10 +88579,16 @@ tinymce.PluginManager.add('media', function(editor, url) { if (win.find('#constrain')[0].checked() && width && height && newWidth && newHeight) { if (e.control == widthCtrl) { newHeight = Math.round((newWidth / width) * newHeight); - heightCtrl.value(newHeight); + + if (!isNaN(newHeight)) { + heightCtrl.value(newHeight); + } } else { newWidth = Math.round((newHeight / height) * newWidth); - widthCtrl.value(newWidth); + + if (!isNaN(newWidth)) { + widthCtrl.value(newWidth); + } } } @@ -80978,9 +88612,9 @@ tinymce.PluginManager.add('media', function(editor, url) { align: 'center', spacing: 5, items: [ - {name: 'width', type: 'textbox', maxLength: 3, size: 3, onchange: recalcSize}, + {name: 'width', type: 'textbox', maxLength: 5, size: 3, onchange: recalcSize, ariaLabel: 'Width'}, {type: 'label', text: 'x'}, - {name: 'height', type: 'textbox', maxLength: 3, size: 3, onchange: recalcSize}, + {name: 'height', type: 'textbox', maxLength: 5, size: 3, onchange: recalcSize, ariaLabel: 'Height'}, {name: 'constrain', type: 'checkbox', checked: true, text: 'Constrain proportions'} ] }); @@ -81024,7 +88658,7 @@ tinymce.PluginManager.add('media', function(editor, url) { { title: 'Embed', - type: "panel", + type: "container", layout: 'flex', direction: 'column', align: 'stretch', @@ -81114,6 +88748,7 @@ tinymce.PluginManager.add('media', function(editor, url) { data.source1 = url; data.type = pattern.type; + data.allowFullscreen = pattern.allowFullscreen; data.width = data.width || pattern.w; data.height = data.height || pattern.h; } @@ -81137,7 +88772,8 @@ tinymce.PluginManager.add('media', function(editor, url) { }); if (data.type == "iframe") { - html += ''; + var allowFullscreen = data.allowFullscreen ? ' allowFullscreen="1"' : ''; + html += ''; } else if (data.source1mime == "application/x-shockwave-flash") { html += ''; @@ -81243,7 +88879,7 @@ tinymce.PluginManager.add('media', function(editor, url) { return html; } - var writer = new tinymce.html.Writer(); + var writer = new tinymce.html.Writer(), blocked; new tinymce.html.SaxParser({ validate: false, @@ -81263,6 +88899,8 @@ tinymce.PluginManager.add('media', function(editor, url) { }, start: function(name, attrs, empty) { + blocked = true; + if (name == 'script' || name == 'noscript') { return; } @@ -81271,13 +88909,18 @@ tinymce.PluginManager.add('media', function(editor, url) { if (attrs[i].name.indexOf('on') === 0) { return; } + + if (attrs[i].name == 'style') { + attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name); + } } writer.start(name, attrs, empty); + blocked = false; }, end: function(name) { - if (name == 'script' || name == 'noscript') { + if (blocked) { return; } @@ -81451,6 +89094,86 @@ tinymce.PluginManager.add('media', function(editor, url) { } }); + function retainAttributesAndInnerHtml(sourceNode, targetNode) { + var attrName, attrValue, attribs, ai, innerHtml; + + // Prefix all attributes except width, height and style since we + // will add these to the placeholder + attribs = sourceNode.attributes; + ai = attribs.length; + while (ai--) { + attrName = attribs[ai].name; + attrValue = attribs[ai].value; + + if (attrName !== "width" && attrName !== "height" && attrName !== "style") { + if (attrName == "data" || attrName == "src") { + attrValue = editor.convertURL(attrValue, attrName); + } + + targetNode.attr('data-mce-p-' + attrName, attrValue); + } + } + + // Place the inner HTML contents inside an escaped attribute + // This enables us to copy/paste the fake object + innerHtml = sourceNode.firstChild && sourceNode.firstChild.value; + if (innerHtml) { + targetNode.attr("data-mce-html", escape(innerHtml)); + targetNode.firstChild = null; + } + } + + function createPlaceholderNode(node) { + var placeHolder, name = node.name; + + placeHolder = new tinymce.html.Node('img', 1); + placeHolder.shortEnded = true; + + retainAttributesAndInnerHtml(node, placeHolder); + + placeHolder.attr({ + width: node.attr('width') || "300", + height: node.attr('height') || (name == "audio" ? "30" : "150"), + style: node.attr('style'), + src: tinymce.Env.transparentSrc, + "data-mce-object": name, + "class": "mce-object mce-object-" + name + }); + + return placeHolder; + } + + function createPreviewNode(node) { + var previewWrapper, previewNode, shimNode, name = node.name; + + previewWrapper = new tinymce.html.Node('span', 1); + previewWrapper.attr({ + contentEditable: 'false', + style: node.attr('style'), + "data-mce-object": name, + "class": "mce-preview-object mce-object-" + name + }); + + retainAttributesAndInnerHtml(node, previewWrapper); + + previewNode = new tinymce.html.Node(name, 1); + previewNode.attr({ + src: node.attr('src'), + allowfullscreen: node.attr('allowfullscreen'), + width: node.attr('width') || "300", + height: node.attr('height') || (name == "audio" ? "30" : "150"), + frameborder: '0' + }); + + shimNode = new tinymce.html.Node('span', 1); + shimNode.attr('class', 'mce-shim'); + + previewWrapper.append(previewNode); + previewWrapper.append(shimNode); + + return previewWrapper; + } + editor.on('preInit', function() { // Make sure that any messy HTML is retained inside these var specialElements = editor.schema.getSpecialElements(); @@ -81468,9 +89191,8 @@ tinymce.PluginManager.add('media', function(editor, url) { }); // Converts iframe, video etc into placeholder images - editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', function(nodes, name) { - var i = nodes.length, ai, node, placeHolder, attrName, attrValue, attribs, innerHtml; - var videoScript; + editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', function(nodes) { + var i = nodes.length, node, placeHolder, videoScript; while (i--) { node = nodes[i]; @@ -81478,6 +89200,10 @@ tinymce.PluginManager.add('media', function(editor, url) { continue; } + if (node.parent.attr('data-mce-object')) { + continue; + } + if (node.name == 'script') { videoScript = getVideoScriptMatch(node.attr('src')); if (!videoScript) { @@ -81485,9 +89211,6 @@ tinymce.PluginManager.add('media', function(editor, url) { } } - placeHolder = new tinymce.html.Node('img', 1); - placeHolder.shortEnded = true; - if (videoScript) { if (videoScript.width) { node.attr('width', videoScript.width.toString()); @@ -81498,47 +89221,19 @@ tinymce.PluginManager.add('media', function(editor, url) { } } - // Prefix all attributes except width, height and style since we - // will add these to the placeholder - attribs = node.attributes; - ai = attribs.length; - while (ai--) { - attrName = attribs[ai].name; - attrValue = attribs[ai].value; - - if (attrName !== "width" && attrName !== "height" && attrName !== "style") { - if (attrName == "data" || attrName == "src") { - attrValue = editor.convertURL(attrValue, attrName); - } - - placeHolder.attr('data-mce-p-' + attrName, attrValue); - } - } - - // Place the inner HTML contents inside an escaped attribute - // This enables us to copy/paste the fake object - innerHtml = node.firstChild && node.firstChild.value; - if (innerHtml) { - placeHolder.attr("data-mce-html", escape(innerHtml)); - placeHolder.firstChild = null; + if (node.name == 'iframe' && editor.settings.media_live_embeds !== false && tinymce.Env.ceFalse) { + placeHolder = createPreviewNode(node); + } else { + placeHolder = createPlaceholderNode(node); } - placeHolder.attr({ - width: node.attr('width') || "300", - height: node.attr('height') || (name == "audio" ? "30" : "150"), - style: node.attr('style'), - src: tinymce.Env.transparentSrc, - "data-mce-object": name, - "class": "mce-object mce-object-" + name - }); - node.replace(placeHolder); } }); // Replaces placeholder images with real elements for video, object, iframe etc editor.serializer.addAttributeFilter('data-mce-object', function(nodes, name) { - var i = nodes.length, node, realElm, ai, attribs, innerHtml, innerNode, realElmName; + var i = nodes.length, node, realElm, ai, attribs, innerHtml, innerNode, realElmName, className; while (i--) { node = nodes[i]; @@ -81551,10 +89246,18 @@ tinymce.PluginManager.add('media', function(editor, url) { // Add width/height to everything but audio if (realElmName != "audio" && realElmName != "script") { - realElm.attr({ - width: node.attr('width'), - height: node.attr('height') - }); + className = node.attr('class'); + if (className && className.indexOf('mce-preview-object') !== -1) { + realElm.attr({ + width: node.firstChild.attr('width'), + height: node.firstChild.attr('height') + }); + } else { + realElm.attr({ + width: node.attr('width'), + height: node.attr('height') + }); + } } realElm.attr({ @@ -81618,16 +89321,20 @@ tinymce.PluginManager.add('media', function(editor, url) { editor.addButton('media', { tooltip: 'Insert/edit video', onclick: showDialog, - stateSelector: ['img[data-mce-object=video]', 'img[data-mce-object=iframe]'] + stateSelector: ['img[data-mce-object]', 'span[data-mce-object]'] }); editor.addMenuItem('media', { icon: 'media', - text: 'Insert video', + text: 'Insert/edit video', onclick: showDialog, context: 'insert', prependToContext: true }); + + editor.addCommand('mceMedia', showDialog); + + this.showDialog = showDialog; }); @@ -81641,8 +89348,8 @@ define("tinymce-nonbreaking", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -81703,469 +89410,48 @@ define("tinymce-noneditable", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ -/*jshint loopfunc:true */ -/*eslint no-loop-func:0 */ /*global tinymce:true */ tinymce.PluginManager.add('noneditable', function(editor) { - var TreeWalker = tinymce.dom.TreeWalker; - var externalName = 'contenteditable', internalName = 'data-mce-' + externalName; - var VK = tinymce.util.VK; - - // Returns the content editable state of a node "true/false" or null - function getContentEditable(node) { - var contentEditable; - - // Ignore non elements - if (node.nodeType === 1) { - // Check for fake content editable - contentEditable = node.getAttribute(internalName); - if (contentEditable && contentEditable !== "inherit") { - return contentEditable; - } + var editClass, nonEditClass, nonEditableRegExps, contentEditableAttrName = 'contenteditable'; - // Check for real content editable - contentEditable = node.contentEditable; - if (contentEditable !== "inherit") { - return contentEditable; - } - } - - return null; - } - - // Returns the noneditable parent or null if there is a editable before it or if it wasn't found - function getNonEditableParent(node) { - var state; - - while (node) { - state = getContentEditable(node); - if (state) { - return state === "false" ? node : null; - } - - node = node.parentNode; - } + function hasClass(checkClassName) { + return function(node) { + return (" " + node.attr("class") + " ").indexOf(checkClassName) !== -1; + }; } - function handleContentEditableSelection() { - var dom = editor.dom, selection = editor.selection, caretContainerId = 'mce_noneditablecaret', invisibleChar = '\uFEFF'; - - // Get caret container parent for the specified node - function getParentCaretContainer(node) { - while (node) { - if (node.id === caretContainerId) { - return node; - } - - node = node.parentNode; - } - } - - // Finds the first text node in the specified node - function findFirstTextNode(node) { - var walker; - - if (node) { - walker = new TreeWalker(node, node); - - for (node = walker.current(); node; node = walker.next()) { - if (node.nodeType === 3) { - return node; - } - } - } - } - - // Insert caret container before/after target or expand selection to include block - function insertCaretContainerOrExpandToBlock(target, before) { - var caretContainer, rng; - - // Select block - if (getContentEditable(target) === "false") { - if (dom.isBlock(target)) { - selection.select(target); - return; - } - } - - rng = dom.createRng(); - - if (getContentEditable(target) === "true") { - if (!target.firstChild) { - target.appendChild(editor.getDoc().createTextNode('\u00a0')); - } - - target = target.firstChild; - before = true; - } - - /* - caretContainer = dom.create('span', { - id: caretContainerId, - 'data-mce-bogus': true, - style:'border: 1px solid red' - }, invisibleChar); - */ - - caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true}, invisibleChar); - - if (before) { - target.parentNode.insertBefore(caretContainer, target); - } else { - dom.insertAfter(caretContainer, target); - } - - rng.setStart(caretContainer.firstChild, 1); - rng.collapse(true); - selection.setRng(rng); - - return caretContainer; - } - - // Removes any caret container except the one we might be in - function removeCaretContainer(caretContainer) { - var rng, child, currentCaretContainer, lastContainer; - - if (caretContainer) { - rng = selection.getRng(true); - rng.setStartBefore(caretContainer); - rng.setEndBefore(caretContainer); - - child = findFirstTextNode(caretContainer); - if (child && child.nodeValue.charAt(0) == invisibleChar) { - child = child.deleteData(0, 1); - } - - dom.remove(caretContainer, true); - - selection.setRng(rng); - } else { - currentCaretContainer = getParentCaretContainer(selection.getStart()); - while ((caretContainer = dom.get(caretContainerId)) && caretContainer !== lastContainer) { - if (currentCaretContainer !== caretContainer) { - child = findFirstTextNode(caretContainer); - if (child && child.nodeValue.charAt(0) == invisibleChar) { - child = child.deleteData(0, 1); - } - - dom.remove(caretContainer, true); - } - - lastContainer = caretContainer; - } - } - } - - // Modifies the selection to include contentEditable false elements or insert caret containers - function moveSelection() { - var nonEditableStart, nonEditableEnd, isCollapsed, rng, element; - - // Checks if there is any contents to the left/right side of caret returns the noneditable element or - // any editable element if it finds one inside - function hasSideContent(element, left) { - var container, offset, walker, node, len; - - container = rng.startContainer; - offset = rng.startOffset; - - // If endpoint is in middle of text node then expand to beginning/end of element - if (container.nodeType == 3) { - len = container.nodeValue.length; - if ((offset > 0 && offset < len) || (left ? offset == len : offset === 0)) { - return; - } - } else { - // Can we resolve the node by index - if (offset < container.childNodes.length) { - // Browser represents caret position as the offset at the start of an element. When moving right - // this is the element we are moving into so we consider our container to be child node at offset-1 - var pos = !left && offset > 0 ? offset - 1 : offset; - container = container.childNodes[pos]; - if (container.hasChildNodes()) { - container = container.firstChild; - } - } else { - // If not then the caret is at the last position in it's container and the caret container - // should be inserted after the noneditable element - return !left ? element : null; - } - } - - // Walk left/right to look for contents - walker = new TreeWalker(container, element); - while ((node = walker[left ? 'prev' : 'next']())) { - if (node.nodeType === 3 && node.nodeValue.length > 0) { - return; - } else if (getContentEditable(node) === "true") { - // Found contentEditable=true element return this one to we can move the caret inside it - return node; - } - } - - return element; - } - - // Remove any existing caret containers - removeCaretContainer(); - - // Get noneditable start/end elements - isCollapsed = selection.isCollapsed(); - nonEditableStart = getNonEditableParent(selection.getStart()); - nonEditableEnd = getNonEditableParent(selection.getEnd()); - - // Is any fo the range endpoints noneditable - if (nonEditableStart || nonEditableEnd) { - rng = selection.getRng(true); - - // If it's a caret selection then look left/right to see if we need to move the caret out side or expand - if (isCollapsed) { - nonEditableStart = nonEditableStart || nonEditableEnd; - - if ((element = hasSideContent(nonEditableStart, true))) { - // We have no contents to the left of the caret then insert a caret container before the noneditable element - insertCaretContainerOrExpandToBlock(element, true); - } else if ((element = hasSideContent(nonEditableStart, false))) { - // We have no contents to the right of the caret then insert a caret container after the noneditable element - insertCaretContainerOrExpandToBlock(element, false); - } else { - // We are in the middle of a noneditable so expand to select it - selection.select(nonEditableStart); - } - } else { - rng = selection.getRng(true); - - // Expand selection to include start non editable element - if (nonEditableStart) { - rng.setStartBefore(nonEditableStart); - } - - // Expand selection to include end non editable element - if (nonEditableEnd) { - rng.setEndAfter(nonEditableEnd); - } - - selection.setRng(rng); - } - } - } - - function handleKey(e) { - var keyCode = e.keyCode, nonEditableParent, caretContainer, startElement, endElement; - - function getNonEmptyTextNodeSibling(node, prev) { - while ((node = node[prev ? 'previousSibling' : 'nextSibling'])) { - if (node.nodeType !== 3 || node.nodeValue.length > 0) { - return node; - } - } - } - - function positionCaretOnElement(element, start) { - selection.select(element); - selection.collapse(start); - } - - function canDelete(backspace) { - var rng, container, offset, nonEditableParent; - - function removeNodeIfNotParent(node) { - var parent = container; - - while (parent) { - if (parent === node) { - return; - } - - parent = parent.parentNode; - } - - dom.remove(node); - moveSelection(); - } - - function isNextPrevTreeNodeNonEditable() { - var node, walker, nonEmptyElements = editor.schema.getNonEmptyElements(); - - walker = new tinymce.dom.TreeWalker(container, editor.getBody()); - while ((node = (backspace ? walker.prev() : walker.next()))) { - // Found IMG/INPUT etc - if (nonEmptyElements[node.nodeName.toLowerCase()]) { - break; - } - - // Found text node with contents - if (node.nodeType === 3 && tinymce.trim(node.nodeValue).length > 0) { - break; - } - - // Found non editable node - if (getContentEditable(node) === "false") { - removeNodeIfNotParent(node); - return true; - } - } - - // Check if the content node is within a non editable parent - if (getNonEditableParent(node)) { - return true; - } - - return false; - } - - if (selection.isCollapsed()) { - rng = selection.getRng(true); - container = rng.startContainer; - offset = rng.startOffset; - container = getParentCaretContainer(container) || container; - - // Is in noneditable parent - if ((nonEditableParent = getNonEditableParent(container))) { - removeNodeIfNotParent(nonEditableParent); - return false; - } - - // Check if the caret is in the middle of a text node - if (container.nodeType == 3 && (backspace ? offset > 0 : offset < container.nodeValue.length)) { - return true; - } + function convertRegExpsToNonEditable(e) { + var i = nonEditableRegExps.length, content = e.content, cls = tinymce.trim(nonEditClass); - // Resolve container index - if (container.nodeType == 1) { - container = container.childNodes[offset] || container; - } + function replaceMatchWithSpan(match) { + var args = arguments, index = args[args.length - 2]; - // Check if previous or next tree node is non editable then block the event - if (isNextPrevTreeNodeNonEditable()) { - return false; - } - } - - return true; + // Is value inside an attribute then don't replace + if (index > 0 && content.charAt(index - 1) == '"') { + return match; } - startElement = selection.getStart(); - endElement = selection.getEnd(); - - // Disable all key presses in contentEditable=false except delete or backspace - nonEditableParent = getNonEditableParent(startElement) || getNonEditableParent(endElement); - if (nonEditableParent && (keyCode < 112 || keyCode > 124) && keyCode != VK.DELETE && keyCode != VK.BACKSPACE) { - // Is Ctrl+c, Ctrl+v or Ctrl+x then use default browser behavior - if ((tinymce.isMac ? e.metaKey : e.ctrlKey) && (keyCode == 67 || keyCode == 88 || keyCode == 86)) { - return; - } - - e.preventDefault(); - - // Arrow left/right select the element and collapse left/right - if (keyCode == VK.LEFT || keyCode == VK.RIGHT) { - var left = keyCode == VK.LEFT; - // If a block element find previous or next element to position the caret - if (editor.dom.isBlock(nonEditableParent)) { - var targetElement = left ? nonEditableParent.previousSibling : nonEditableParent.nextSibling; - var walker = new TreeWalker(targetElement, targetElement); - var caretElement = left ? walker.prev() : walker.next(); - positionCaretOnElement(caretElement, !left); - } else { - positionCaretOnElement(nonEditableParent, left); - } - } - } else { - // Is arrow left/right, backspace or delete - if (keyCode == VK.LEFT || keyCode == VK.RIGHT || keyCode == VK.BACKSPACE || keyCode == VK.DELETE) { - caretContainer = getParentCaretContainer(startElement); - if (caretContainer) { - // Arrow left or backspace - if (keyCode == VK.LEFT || keyCode == VK.BACKSPACE) { - nonEditableParent = getNonEmptyTextNodeSibling(caretContainer, true); - - if (nonEditableParent && getContentEditable(nonEditableParent) === "false") { - e.preventDefault(); - - if (keyCode == VK.LEFT) { - positionCaretOnElement(nonEditableParent, true); - } else { - dom.remove(nonEditableParent); - return; - } - } else { - removeCaretContainer(caretContainer); - } - } - - // Arrow right or delete - if (keyCode == VK.RIGHT || keyCode == VK.DELETE) { - nonEditableParent = getNonEmptyTextNodeSibling(caretContainer); - - if (nonEditableParent && getContentEditable(nonEditableParent) === "false") { - e.preventDefault(); - - if (keyCode == VK.RIGHT) { - positionCaretOnElement(nonEditableParent, false); - } else { - dom.remove(nonEditableParent); - return; - } - } else { - removeCaretContainer(caretContainer); - } - } - } - - if ((keyCode == VK.BACKSPACE || keyCode == VK.DELETE) && !canDelete(keyCode == VK.BACKSPACE)) { - e.preventDefault(); - return false; - } - } - } + return ( + '' + + editor.dom.encode(typeof args[1] === "string" ? args[1] : args[0]) + '' + ); } - editor.on('mousedown', function(e) { - var node = editor.selection.getNode(); - - if (getContentEditable(node) === "false" && node == e.target) { - // Expand selection on mouse down we can't block the default event since it's used for drag/drop - moveSelection(); - } - }); - - editor.on('mouseup keyup', moveSelection); - editor.on('keydown', handleKey); - } - - var editClass, nonEditClass, nonEditableRegExps; - - // Converts configured regexps to noneditable span items - function convertRegExpsToNonEditable(e) { - var i = nonEditableRegExps.length, content = e.content, cls = tinymce.trim(nonEditClass); - // Don't replace the variables when raw is used for example on undo/redo if (e.format == "raw") { return; } while (i--) { - content = content.replace(nonEditableRegExps[i], function(match) { - var args = arguments, index = args[args.length - 2]; - - // Is value inside an attribute then don't replace - if (index > 0 && content.charAt(index - 1) == '"') { - return match; - } - - return ( - '' + - editor.dom.encode(typeof(args[1]) === "string" ? args[1] : args[0]) + '' - ); - }); + content = content.replace(nonEditableRegExps[i], replaceMatchWithSpan); } e.content = content; @@ -82174,41 +89460,41 @@ tinymce.PluginManager.add('noneditable', function(editor) { editClass = " " + tinymce.trim(editor.getParam("noneditable_editable_class", "mceEditable")) + " "; nonEditClass = " " + tinymce.trim(editor.getParam("noneditable_noneditable_class", "mceNonEditable")) + " "; - // Setup noneditable regexps array + var hasEditClass = hasClass(editClass); + var hasNonEditClass = hasClass(nonEditClass); + nonEditableRegExps = editor.getParam("noneditable_regexp"); if (nonEditableRegExps && !nonEditableRegExps.length) { nonEditableRegExps = [nonEditableRegExps]; } editor.on('PreInit', function() { - handleContentEditableSelection(); - if (nonEditableRegExps) { editor.on('BeforeSetContent', convertRegExpsToNonEditable); } - // Apply contentEditable true/false on elements with the noneditable/editable classes editor.parser.addAttributeFilter('class', function(nodes) { - var i = nodes.length, className, node; + var i = nodes.length, node; while (i--) { node = nodes[i]; - className = " " + node.attr("class") + " "; - if (className.indexOf(editClass) !== -1) { - node.attr(internalName, "true"); - } else if (className.indexOf(nonEditClass) !== -1) { - node.attr(internalName, "false"); + if (hasEditClass(node)) { + node.attr(contentEditableAttrName, "true"); + } else if (hasNonEditClass(node)) { + node.attr(contentEditableAttrName, "false"); } } }); - // Remove internal name - editor.serializer.addAttributeFilter(internalName, function(nodes) { + editor.serializer.addAttributeFilter(contentEditableAttrName, function(nodes) { var i = nodes.length, node; while (i--) { node = nodes[i]; + if (!hasEditClass(node) && !hasNonEditClass(node)) { + continue; + } if (nonEditableRegExps && node.attr('data-mce-content')) { node.name = "#text"; @@ -82216,28 +89502,10 @@ tinymce.PluginManager.add('noneditable', function(editor) { node.raw = true; node.value = node.attr('data-mce-content'); } else { - node.attr(externalName, null); - node.attr(internalName, null); + node.attr(contentEditableAttrName, null); } } }); - - // Convert external name into internal name - editor.parser.addAttributeFilter(externalName, function(nodes) { - var i = nodes.length, node; - - while (i--) { - node = nodes[i]; - node.attr(internalName, node.attr(externalName)); - node.attr(externalName, null); - } - }); - }); - - editor.on('drop', function(e) { - if (getNonEditableParent(e.target)) { - e.preventDefault(); - } }); }); @@ -82251,8 +89519,8 @@ define("tinymce-pagebreak", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -82268,7 +89536,7 @@ tinymce.PluginManager.add('pagebreak', function(editor) { }), 'gi'); var pageBreakPlaceHolderHtml = ''; + pageBreakClass + '" data-mce-resize="false" data-mce-placeholder />'; // Register commands editor.addCommand('mcePageBreak', function() { @@ -82337,6 +89605,7 @@ tinymce.PluginManager.add('pagebreak', function(editor) { }); }); + }).apply(root, arguments); }); }(this)); @@ -82409,10 +89678,12 @@ define("tinymce-paste", ["tinymce"], function() { } function expose(ids) { - for (var i = 0; i < ids.length; i++) { - var target = exports; - var id = ids[i]; - var fragments = id.split(/[.\/]/); + var i, target, id, fragments, privateModules; + + for (i = 0; i < ids.length; i++) { + target = exports; + id = ids[i]; + fragments = id.split(/[.\/]/); for (var fi = 0; fi < fragments.length - 1; ++fi) { if (target[fragments[fi]] === undefined) { @@ -82424,6 +89695,21 @@ define("tinymce-paste", ["tinymce"], function() { target[fragments[fragments.length - 1]] = modules[id]; } + + // Expose private modules for unit tests + if (exports.AMDLC_TESTS) { + privateModules = exports.privateModules || {}; + + for (id in modules) { + privateModules[id] = modules[id]; + } + + for (i = 0; i < ids.length; i++) { + delete privateModules[ids[i]]; + } + + exports.privateModules = privateModules; + } } // Included from: js/tinymce/plugins/paste/classes/Utils.js @@ -82431,8 +89717,8 @@ define("tinymce-paste", ["tinymce"], function() { /** * Utils.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -82441,8 +89727,7 @@ define("tinymce-paste", ["tinymce"], function() { /** * This class contails various utility functions for the paste plugin. * - * @class tinymce.pasteplugin.Clipboard - * @private + * @class tinymce.pasteplugin.Utils */ define("tinymce/pasteplugin/Utils", [ "tinymce/util/Tools", @@ -82546,6 +89831,7 @@ define("tinymce/pasteplugin/Utils", [ /^[\s\S]*]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g, // Remove anything but the contents within the BODY element /|/g, // Inner fragments (tables from excel on mac) [/( ?)\u00a0<\/span>( ?)/g, trimSpaces], + /
    /g, /
    $/i // Trailing BR elements ]); @@ -82564,8 +89850,8 @@ define("tinymce/pasteplugin/Utils", [ /** * Clipboard.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -82592,12 +89878,15 @@ define("tinymce/pasteplugin/Utils", [ */ define("tinymce/pasteplugin/Clipboard", [ "tinymce/Env", + "tinymce/dom/RangeUtils", "tinymce/util/VK", - "tinymce/pasteplugin/Utils" -], function(Env, VK, Utils) { + "tinymce/pasteplugin/Utils", + "tinymce/util/Delay" +], function(Env, RangeUtils, VK, Utils, Delay) { return function(editor) { var self = this, pasteBinElm, lastRng, keyboardPasteTimeStamp = 0, draggingInternally = false; var pasteBinDefaultContent = '%MCEPASTEBIN%', keyboardPastePlainTextState; + var mceInternalUrlPrefix = 'data:text/mce-internal,'; /** * Pastes the specified HTML. This means that the HTML is filtered and then @@ -82626,7 +89915,7 @@ define("tinymce/pasteplugin/Clipboard", [ } if (!args.isDefaultPrevented()) { - editor.insertContent(html, {merge: editor.settings.paste_merge_formats !== false}); + editor.insertContent(html, {merge: editor.settings.paste_merge_formats !== false, data: {paste: true}}); } } } @@ -82840,6 +90129,56 @@ define("tinymce/pasteplugin/Clipboard", [ return html; } + /** + * Some Windows 10/Edge versions will return a double encoded string. This checks if the + * content has this odd encoding and decodes it. + */ + function decodeEdgeData(data) { + var i, out, fingerprint, code; + + // Check if data is encoded + fingerprint = [25942, 29554, 28521, 14958]; + for (i = 0; i < fingerprint.length; i++) { + if (data.charCodeAt(i) != fingerprint[i]) { + return data; + } + } + + // Decode UTF-16 to UTF-8 + out = ''; + for (i = 0; i < data.length; i++) { + code = data.charCodeAt(i); + + /*eslint no-bitwise:0*/ + out += String.fromCharCode((code & 0x00FF)); + out += String.fromCharCode((code & 0xFF00) >> 8); + } + + // Decode UTF-8 + return decodeURIComponent(escape(out)); + } + + /** + * Extracts HTML contents from within a fragment. + */ + function extractFragment(data) { + var idx, startFragment, endFragment; + + startFragment = ''; + idx = data.indexOf(startFragment); + if (idx !== -1) { + data = data.substr(idx + startFragment.length); + } + + endFragment = ''; + idx = data.indexOf(endFragment); + if (idx !== -1) { + data = data.substr(0, idx); + } + + return data; + } + /** * Gets various content types out of a datatransfer object. * @@ -82847,26 +90186,34 @@ define("tinymce/pasteplugin/Clipboard", [ * @return {Object} Object with mime types and data for those mime types. */ function getDataTransferItems(dataTransfer) { - var data = {}; + var items = {}; if (dataTransfer) { // Use old WebKit/IE API if (dataTransfer.getData) { var legacyText = dataTransfer.getData('Text'); if (legacyText && legacyText.length > 0) { - data['text/plain'] = legacyText; + if (legacyText.indexOf(mceInternalUrlPrefix) == -1) { + items['text/plain'] = legacyText; + } } } if (dataTransfer.types) { for (var i = 0; i < dataTransfer.types.length; i++) { - var contentType = dataTransfer.types[i]; - data[contentType] = dataTransfer.getData(contentType); + var contentType = dataTransfer.types[i], + data = dataTransfer.getData(contentType); + + if (contentType == 'text/html') { + data = extractFragment(decodeEdgeData(data)); + } + + items[contentType] = data; } } } - return data; + return items; } /** @@ -82892,9 +90239,9 @@ define("tinymce/pasteplugin/Clipboard", [ var dataTransfer = e.clipboardData || e.dataTransfer; function processItems(items) { - var i, item, reader; + var i, item, reader, hadImage = false; - function pasteImage() { + function pasteImage(reader) { if (rng) { editor.selection.setRng(rng); rng = null; @@ -82907,16 +90254,18 @@ define("tinymce/pasteplugin/Clipboard", [ for (i = 0; i < items.length; i++) { item = items[i]; - if (/^image\/(jpeg|png|gif)$/.test(item.type)) { + if (/^image\/(jpeg|png|gif|bmp)$/.test(item.type)) { reader = new FileReader(); - reader.onload = pasteImage; + reader.onload = pasteImage.bind(null, reader); reader.readAsDataURL(item.getAsFile ? item.getAsFile() : item); e.preventDefault(); - return true; + hadImage = true; } } } + + return hadImage; } if (editor.settings.paste_data_images && dataTransfer) { @@ -82937,28 +90286,7 @@ define("tinymce/pasteplugin/Clipboard", [ } function getCaretRangeFromEvent(e) { - var doc = editor.getDoc(), rng, point; - - if (doc.caretPositionFromPoint) { - point = doc.caretPositionFromPoint(e.clientX, e.clientY); - rng = doc.createRange(); - rng.setStart(point.offsetNode, point.offset); - rng.collapse(true); - } else if (doc.caretRangeFromPoint) { - rng = doc.caretRangeFromPoint(e.clientX, e.clientY); - } else if (doc.body.createTextRange) { - rng = doc.body.createTextRange(); - - try { - rng.moveToPoint(e.clientX, e.clientY); - rng.collapse(true); - } catch (ex) { - // Append to top or bottom depending on drop location - rng.collapse(e.clientY < doc.body.clientHeight); - } - } - - return rng; + return RangeUtils.getCaretRangeFromPoint(e.clientX, e.clientY, editor.getDoc()); } function hasContentType(clipboardContent, mimeType) { @@ -83013,6 +90341,65 @@ define("tinymce/pasteplugin/Clipboard", [ } }); + function insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode) { + var content; + + // Grab HTML from Clipboard API or paste bin as a fallback + if (hasContentType(clipboardContent, 'text/html')) { + content = clipboardContent['text/html']; + } else { + content = getPasteBinHtml(); + + // If paste bin is empty try using plain text mode + // since that is better than nothing right + if (content == pasteBinDefaultContent) { + plainTextMode = true; + } + } + + content = Utils.trimHtml(content); + + // WebKit has a nice bug where it clones the paste bin if you paste from for example notepad + // so we need to force plain text mode in this case + if (pasteBinElm && pasteBinElm.firstChild && pasteBinElm.firstChild.id === 'mcepastebin') { + plainTextMode = true; + } + + removePasteBin(); + + // If we got nothing from clipboard API and pastebin then we could try the last resort: plain/text + if (!content.length) { + plainTextMode = true; + } + + // Grab plain text from Clipboard API or convert existing HTML to plain text + if (plainTextMode) { + // Use plain text contents from Clipboard API unless the HTML contains paragraphs then + // we should convert the HTML to plain text since works better when pasting HTML/Word contents as plain text + if (hasContentType(clipboardContent, 'text/plain') && content.indexOf('

    ') == -1) { + content = clipboardContent['text/plain']; + } else { + content = Utils.innerText(content); + } + } + + // If the content is the paste bin default HTML then it was + // impossible to get the cliboard data out. + if (content == pasteBinDefaultContent) { + if (!isKeyBoardPaste) { + editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.'); + } + + return; + } + + if (plainTextMode) { + pasteText(content); + } else { + pasteHtml(content); + } + } + editor.on('paste', function(e) { // Getting content from the Clipboard can take some time var clipboardTimer = new Date().getTime(); @@ -83051,64 +90438,15 @@ define("tinymce/pasteplugin/Clipboard", [ clipboardContent["text/html"] = getPasteBinHtml(); } - setTimeout(function() { - var content; - - // Grab HTML from Clipboard API or paste bin as a fallback - if (hasContentType(clipboardContent, 'text/html')) { - content = clipboardContent['text/html']; - } else { - content = getPasteBinHtml(); - - // If paste bin is empty try using plain text mode - // since that is better than nothing right - if (content == pasteBinDefaultContent) { - plainTextMode = true; - } - } - - content = Utils.trimHtml(content); - - // WebKit has a nice bug where it clones the paste bin if you paste from for example notepad - // so we need to force plain text mode in this case - if (pasteBinElm && pasteBinElm.firstChild && pasteBinElm.firstChild.id === 'mcepastebin') { - plainTextMode = true; - } - - removePasteBin(); - - // If we got nothing from clipboard API and pastebin then we could try the last resort: plain/text - if (!content.length) { - plainTextMode = true; - } - - // Grab plain text from Clipboard API or convert existing HTML to plain text - if (plainTextMode) { - // Use plain text contents from Clipboard API unless the HTML contains paragraphs then - // we should convert the HTML to plain text since works better when pasting HTML/Word contents as plain text - if (hasContentType(clipboardContent, 'text/plain') && content.indexOf('

    ') == -1) { - content = clipboardContent['text/plain']; - } else { - content = Utils.innerText(content); - } - } - - // If the content is the paste bin default HTML then it was - // impossible to get the cliboard data out. - if (content == pasteBinDefaultContent) { - if (!isKeyBoardPaste) { - editor.windowManager.alert('Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.'); - } - - return; - } - - if (plainTextMode) { - pasteText(content); - } else { - pasteHtml(content); - } - }, 0); + // If clipboard API has HTML then use that directly + if (hasContentType(clipboardContent, 'text/html')) { + e.preventDefault(); + insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode); + } else { + Delay.setEditorTimeout(editor, function() { + insertClipboardContent(clipboardContent, isKeyBoardPaste, plainTextMode); + }, 0); + } }); editor.on('dragstart dragend', function(e) { @@ -83153,16 +90491,8 @@ define("tinymce/pasteplugin/Clipboard", [ }); editor.on('dragover dragend', function(e) { - var i, dataTransfer = e.dataTransfer; - - if (editor.settings.paste_data_images && dataTransfer) { - for (i = 0; i < dataTransfer.types.length; i++) { - // Prevent default if we have files dragged into the editor since the pasteImageData handles that - if (dataTransfer.types[i] == "Files") { - e.preventDefault(); - return false; - } - } + if (editor.settings.paste_data_images) { + e.preventDefault(); } }); } @@ -83175,19 +90505,40 @@ define("tinymce/pasteplugin/Clipboard", [ // Remove all data images from paste for example from Gecko // except internal images like video elements - editor.parser.addNodeFilter('img', function(nodes) { - if (!editor.settings.paste_data_images) { + editor.parser.addNodeFilter('img', function(nodes, name, args) { + function isPasteInsert(args) { + return args.data && args.data.paste === true; + } + + function remove(node) { + if (!node.attr('data-mce-object') && src !== Env.transparentSrc) { + node.remove(); + } + } + + function isWebKitFakeUrl(src) { + return src.indexOf("webkit-fake-url") === 0; + } + + function isDataUri(src) { + return src.indexOf("data:") === 0; + } + + if (!editor.settings.paste_data_images && isPasteInsert(args)) { var i = nodes.length; while (i--) { var src = nodes[i].attributes.map.src; - // Some browsers automatically produce data uris on paste + if (!src) { + continue; + } + // Safari on Mac produces webkit-fake-url see: https://bugs.webkit.org/show_bug.cgi?id=49141 - if (src && /^(data:image|webkit\-fake\-url)/.test(src)) { - if (!nodes[i].attr('data-mce-object') && src !== Env.transparentSrc) { - nodes[i].remove(); - } + if (isWebKitFakeUrl(src)) { + remove(nodes[i]); + } else if (!editor.settings.allow_html_data_urls && isDataUri(src)) { + remove(nodes[i]); } } } @@ -83201,8 +90552,8 @@ define("tinymce/pasteplugin/Clipboard", [ /** * WordFilter.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -83211,7 +90562,7 @@ define("tinymce/pasteplugin/Clipboard", [ /** * This class parses word HTML into proper TinyMCE markup. * - * @class tinymce.pasteplugin.Quirks + * @class tinymce.pasteplugin.WordFilter * @private */ define("tinymce/pasteplugin/WordFilter", [ @@ -83262,7 +90613,7 @@ define("tinymce/pasteplugin/WordFilter", [ } function isBulletList(text) { - return /^[\s\u00a0]*[\u2022\u00b7\u00a7\u00d8\u25CF]\s*/.test(text); + return /^[\s\u00a0]*[\u2022\u00b7\u00a7\u25CF]\s*/.test(text); } function WordFilter(editor) { @@ -83271,6 +90622,10 @@ define("tinymce/pasteplugin/WordFilter", [ editor.on('BeforePastePreProcess', function(e) { var content = e.content, retainStyleProperties, validStyles; + // Remove google docs internal guid markers + content = content.replace(/]+id="?docs-internal-[^>]*>/gi, ''); + content = content.replace(/
    /gi, ''); + retainStyleProperties = settings.paste_retain_style_properties; if (retainStyleProperties) { validStyles = Tools.makeMap(retainStyleProperties.split(/[, ]/)); @@ -83374,7 +90729,7 @@ define("tinymce/pasteplugin/WordFilter", [ // Remove start of list item "1. " or "· " etc removeIgnoredNodes(paragraphNode); trimListStart(paragraphNode, /^\u00a0+/); - trimListStart(paragraphNode, /^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/); + trimListStart(paragraphNode, /^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/); trimListStart(paragraphNode, /^\u00a0+/); } @@ -83581,6 +90936,7 @@ define("tinymce/pasteplugin/WordFilter", [ // Add style/class attribute to all element rules since the user might have removed them from // paste_word_valid_elements config option and we need to check them for properties Tools.each(schema.elements, function(rule) { + /*eslint dot-notation:0*/ if (!rule.attributes["class"]) { rule.attributes["class"] = {}; rule.attributesOrder.push("class"); @@ -83618,7 +90974,7 @@ define("tinymce/pasteplugin/WordFilter", [ node = nodes[i]; className = node.attr('class'); - if (/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(className)) { + if (/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)) { node.remove(); } @@ -83677,10 +91033,14 @@ define("tinymce/pasteplugin/WordFilter", [ var rootNode = domParser.parse(content); // Process DOM - convertFakeListsToProperLists(rootNode); + if (settings.paste_convert_word_fake_lists !== false) { + convertFakeListsToProperLists(rootNode); + } // Serialize DOM back to HTML - e.content = new Serializer({}, schema).serialize(rootNode); + e.content = new Serializer({ + validate: settings.validate + }, schema).serialize(rootNode); } }); } @@ -83695,8 +91055,8 @@ define("tinymce/pasteplugin/WordFilter", [ /** * Quirks.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -83857,8 +91217,8 @@ define("tinymce/pasteplugin/Quirks", [ /** * Plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -83890,10 +91250,12 @@ define("tinymce/pasteplugin/Plugin", [ this.active(true); if (!userIsInformed) { - editor.windowManager.alert( - 'Paste is now in plain text mode. Contents will now ' + - 'be pasted as plain text until you toggle this option off.' - ); + var message = editor.translate('Paste is now in plain text mode. Contents will now ' + + 'be pasted as plain text until you toggle this option off.'); + editor.notificationManager.open({ + text: message, + type: 'info' + }); userIsInformed = true; } @@ -83965,7 +91327,7 @@ define("tinymce/pasteplugin/Plugin", [ }); }); -expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/WordFilter"]); +expose(["tinymce/pasteplugin/Utils"]); })(this); }).apply(root, arguments); @@ -83978,8 +91340,8 @@ define("tinymce-preview", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -83993,8 +91355,8 @@ tinymce.PluginManager.add('preview', function(editor) { editor.addCommand('mcePreview', function() { editor.windowManager.open({ title: 'Preview', - width : parseInt(editor.getParam("plugin_preview_width", "650"), 10), - height : parseInt(editor.getParam("plugin_preview_height", "500"), 10), + width: parseInt(editor.getParam("plugin_preview_width", "650"), 10), + height: parseInt(editor.getParam("plugin_preview_height", "500"), 10), html: '', buttons: { text: 'Close', @@ -84053,13 +91415,13 @@ tinymce.PluginManager.add('preview', function(editor) { }); editor.addButton('preview', { - title : 'Preview', - cmd : 'mcePreview' + title: 'Preview', + cmd: 'mcePreview' }); editor.addMenuItem('preview', { - text : 'Preview', - cmd : 'mcePreview', + text: 'Preview', + cmd: 'mcePreview', context: 'view' }); }); @@ -84075,8 +91437,8 @@ define("tinymce-print", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -84094,13 +91456,13 @@ tinymce.PluginManager.add('print', function(editor) { cmd: 'mcePrint' }); - editor.addShortcut('Ctrl+P', '', 'mcePrint'); + editor.addShortcut('Meta+P', '', 'mcePrint'); editor.addMenuItem('print', { text: 'Print', cmd: 'mcePrint', icon: 'print', - shortcut: 'Ctrl+P', + shortcut: 'Meta+P', context: 'file' }); }); @@ -84116,8 +91478,8 @@ define("tinymce-save", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -84139,31 +91501,35 @@ tinymce.PluginManager.add('save', function(editor) { // Use callback instead if (editor.getParam("save_onsavecallback")) { - if (editor.execCallback('save_onsavecallback', editor)) { - editor.startContent = tinymce.trim(editor.getContent({format: 'raw'})); - editor.nodeChanged(); - } - + editor.execCallback('save_onsavecallback', editor); + editor.nodeChanged(); return; } if (formObj) { - editor.isNotDirty = true; + editor.setDirty(false); if (!formObj.onsubmit || formObj.onsubmit()) { - if (typeof(formObj.submit) == "function") { + if (typeof formObj.submit == "function") { formObj.submit(); } else { - editor.windowManager.alert("Error: Form submit field collision."); + displayErrorMessage(editor.translate("Error: Form submit field collision.")); } } editor.nodeChanged(); } else { - editor.windowManager.alert("Error: No form element found."); + displayErrorMessage(editor.translate("Error: No form element found.")); } } + function displayErrorMessage(message) { + editor.notificationManager.open({ + text: message, + type: 'error' + }); + } + function cancel() { var h = tinymce.trim(editor.startContent); @@ -84181,7 +91547,7 @@ tinymce.PluginManager.add('save', function(editor) { function stateToggle() { var self = this; - editor.on('nodeChange', function() { + editor.on('nodeChange dirty', function() { self.disabled(editor.getParam("save_enablewhendirty", true) && !editor.isDirty()); }); } @@ -84205,7 +91571,7 @@ tinymce.PluginManager.add('save', function(editor) { onPostRender: stateToggle }); - editor.addShortcut('ctrl+s', '', 'mceSave'); + editor.addShortcut('Meta+S', '', 'mceSave'); }); @@ -84219,8 +91585,8 @@ define("tinymce-searchreplace", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -84231,6 +91597,10 @@ define("tinymce-searchreplace", ["tinymce"], function() { /*global tinymce:true */ (function() { + function isContentEditableFalse(node) { + return node && node.nodeType == 1 && node.contentEditable === "false"; + } + // Based on work developed by: James Padolsey http://james.padolsey.com // released under UNLICENSE that is compatible with LGPL // TODO: Handle contentEditable edgecase: @@ -84280,6 +91650,10 @@ define("tinymce-searchreplace", ["tinymce"], function() { txt = ''; + if (isContentEditableFalse(node)) { + return '\n'; + } + if (blockElementsMap[node.nodeName] || shortEndedElementsMap[node.nodeName]) { txt += '\n'; } @@ -84299,7 +91673,7 @@ define("tinymce-searchreplace", ["tinymce"], function() { matchLocation = matches.shift(), matchIndex = 0; out: while (true) { - if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName]) { + if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName] || isContentEditableFalse(curNode)) { atIndex++; } @@ -84347,9 +91721,11 @@ define("tinymce-searchreplace", ["tinymce"], function() { break; // no more matches } } else if ((!hiddenTextElementsMap[curNode.nodeName] || blockElementsMap[curNode.nodeName]) && curNode.firstChild) { - // Move down - curNode = curNode.firstChild; - continue; + if (!isContentEditableFalse(curNode)) { + // Move down + curNode = curNode.firstChild; + continue; + } } else if (curNode.nextSibling) { // Move forward: curNode = curNode.nextSibling; @@ -84421,34 +91797,34 @@ define("tinymce-searchreplace", ["tinymce"], function() { node.parentNode.removeChild(node); return el; - } else { - // Replace startNode -> [innerNodes...] -> endNode (in that order) - before = doc.createTextNode(startNode.data.substring(0, range.startNodeIndex)); - after = doc.createTextNode(endNode.data.substring(range.endNodeIndex)); - var elA = makeReplacementNode(startNode.data.substring(range.startNodeIndex), matchIndex); - var innerEls = []; + } - for (var i = 0, l = range.innerNodes.length; i < l; ++i) { - var innerNode = range.innerNodes[i]; - var innerEl = makeReplacementNode(innerNode.data, matchIndex); - innerNode.parentNode.replaceChild(innerEl, innerNode); - innerEls.push(innerEl); - } + // Replace startNode -> [innerNodes...] -> endNode (in that order) + before = doc.createTextNode(startNode.data.substring(0, range.startNodeIndex)); + after = doc.createTextNode(endNode.data.substring(range.endNodeIndex)); + var elA = makeReplacementNode(startNode.data.substring(range.startNodeIndex), matchIndex); + var innerEls = []; + + for (var i = 0, l = range.innerNodes.length; i < l; ++i) { + var innerNode = range.innerNodes[i]; + var innerEl = makeReplacementNode(innerNode.data, matchIndex); + innerNode.parentNode.replaceChild(innerEl, innerNode); + innerEls.push(innerEl); + } - var elB = makeReplacementNode(endNode.data.substring(0, range.endNodeIndex), matchIndex); + var elB = makeReplacementNode(endNode.data.substring(0, range.endNodeIndex), matchIndex); - parentNode = startNode.parentNode; - parentNode.insertBefore(before, startNode); - parentNode.insertBefore(elA, startNode); - parentNode.removeChild(startNode); + parentNode = startNode.parentNode; + parentNode.insertBefore(before, startNode); + parentNode.insertBefore(elA, startNode); + parentNode.removeChild(startNode); - parentNode = endNode.parentNode; - parentNode.insertBefore(elB, endNode); - parentNode.insertBefore(after, endNode); - parentNode.removeChild(endNode); + parentNode = endNode.parentNode; + parentNode.insertBefore(elB, endNode); + parentNode.insertBefore(after, endNode); + parentNode.removeChild(endNode); - return elB; - } + return elB; }; } @@ -84478,7 +91854,9 @@ define("tinymce-searchreplace", ["tinymce"], function() { var self = this, currentIndex = -1; function showDialog() { - var last = {}; + var last = {}, selectedText; + + selectedText = tinymce.trim(editor.selection.getContent({format: 'text'})); function updateButtonStates() { win.statusbar.find('#next').disabled(!findSpansByIndex(currentIndex + 1).length); @@ -84486,13 +91864,12 @@ define("tinymce-searchreplace", ["tinymce"], function() { } function notFoundAlert() { - tinymce.ui.MessageBox.alert('Could not find the specified string.', function() { + editor.windowManager.alert('Could not find the specified string.', function() { win.find('#find')[0].focus(); }); } - var win = tinymce.ui.Factory.create({ - type: 'window', + var win = editor.windowManager.open({ layout: "flex", pack: "center", align: "center", @@ -84541,7 +91918,7 @@ define("tinymce-searchreplace", ["tinymce"], function() { }; }, buttons: [ - {text: "Find", onclick: function() { + {text: "Find", subtype: 'primary', onclick: function() { win.submit(); }}, {text: "Replace", disabled: true, onclick: function() { @@ -84573,19 +91950,19 @@ define("tinymce-searchreplace", ["tinymce"], function() { labelGap: 30, spacing: 10, items: [ - {type: 'textbox', name: 'find', size: 40, label: 'Find', value: editor.selection.getNode().src}, + {type: 'textbox', name: 'find', size: 40, label: 'Find', value: selectedText}, {type: 'textbox', name: 'replace', size: 40, label: 'Replace with'}, {type: 'checkbox', name: 'case', text: 'Match case', label: ' '}, {type: 'checkbox', name: 'words', text: 'Whole words', label: ' '} ] } - }).renderTo().reflow(); + }); } self.init = function(ed) { ed.addMenuItem('searchreplace', { text: 'Find and replace', - shortcut: 'Ctrl+F', + shortcut: 'Meta+F', onclick: showDialog, separator: 'before', context: 'edit' @@ -84593,18 +91970,18 @@ define("tinymce-searchreplace", ["tinymce"], function() { ed.addButton('searchreplace', { tooltip: 'Find and replace', - shortcut: 'Ctrl+F', + shortcut: 'Meta+F', onclick: showDialog }); ed.addCommand("SearchReplace", showDialog); - ed.shortcuts.add('Ctrl+F', '', showDialog); + ed.shortcuts.add('Meta+F', '', showDialog); }; function getElmIndex(elm) { var value = elm.getAttribute('data-mce-index'); - if (typeof(value) == "number") { + if (typeof value == "number") { return "" + value; } @@ -84681,7 +92058,13 @@ define("tinymce-searchreplace", ["tinymce"], function() { } function removeNode(node) { - node.parentNode.removeChild(node); + var dom = editor.dom, parent = node.parentNode; + + dom.remove(node); + + if (dom.isEmpty(parent)) { + dom.remove(parent); + } } self.find = function(text, matchCase, wholeWord) { @@ -84714,20 +92097,22 @@ define("tinymce-searchreplace", ["tinymce"], function() { } }; + function isMatchSpan(node) { + var matchIndex = getElmIndex(node); + + return matchIndex !== null && matchIndex.length > 0; + } + self.replace = function(text, forward, all) { var i, nodes, node, matchIndex, currentMatchIndex, nextIndex = currentIndex, hasMore; forward = forward !== false; node = editor.getBody(); - nodes = tinymce.toArray(node.getElementsByTagName('span')); + nodes = tinymce.grep(tinymce.toArray(node.getElementsByTagName('span')), isMatchSpan); for (i = 0; i < nodes.length; i++) { var nodeIndex = getElmIndex(nodes[i]); - if (nodeIndex === null || !nodeIndex.length) { - continue; - } - matchIndex = currentMatchIndex = parseInt(nodeIndex, 10); if (all || matchIndex === currentIndex) { if (text.length) { @@ -84738,11 +92123,7 @@ define("tinymce-searchreplace", ["tinymce"], function() { } while (nodes[++i]) { - matchIndex = getElmIndex(nodes[i]); - - if (nodeIndex === null || !nodeIndex.length) { - continue; - } + matchIndex = parseInt(getElmIndex(nodes[i]), 10); if (matchIndex === currentMatchIndex) { removeNode(nodes[i]); @@ -84884,10 +92265,12 @@ define("tinymce-spellchecker", ["tinymce"], function() { } function expose(ids) { - for (var i = 0; i < ids.length; i++) { - var target = exports; - var id = ids[i]; - var fragments = id.split(/[.\/]/); + var i, target, id, fragments, privateModules; + + for (i = 0; i < ids.length; i++) { + target = exports; + id = ids[i]; + fragments = id.split(/[.\/]/); for (var fi = 0; fi < fragments.length - 1; ++fi) { if (target[fragments[fi]] === undefined) { @@ -84899,6 +92282,21 @@ define("tinymce-spellchecker", ["tinymce"], function() { target[fragments[fragments.length - 1]] = modules[id]; } + + // Expose private modules for unit tests + if (exports.AMDLC_TESTS) { + privateModules = exports.privateModules || {}; + + for (id in modules) { + privateModules[id] = modules[id]; + } + + for (i = 0; i < ids.length; i++) { + delete privateModules[ids[i]]; + } + + exports.privateModules = privateModules; + } } // Included from: js/tinymce/plugins/spellchecker/classes/DomTextMatcher.js @@ -84906,8 +92304,8 @@ define("tinymce-spellchecker", ["tinymce"], function() { /** * DomTextMatcher.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -84922,6 +92320,10 @@ define("tinymce-spellchecker", ["tinymce"], function() { * @private */ define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { + function isContentEditableFalse(node) { + return node && node.nodeType == 1 && node.contentEditable === "false"; + } + // Based on work developed by: James Padolsey http://james.padolsey.com // released under UNLICENSE that is compatible with LGPL // TODO: Handle contentEditable edgecase: @@ -84958,6 +92360,10 @@ define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { return ''; } + if (isContentEditableFalse(node)) { + return '\n'; + } + txt = ''; if (blockElementsMap[node.nodeName] || shortEndedElementsMap[node.nodeName]) { @@ -84986,7 +92392,7 @@ define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { matchLocation = matches.shift(); out: while (true) { - if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName]) { + if (blockElementsMap[curNode.nodeName] || shortEndedElementsMap[curNode.nodeName] || isContentEditableFalse(curNode)) { atIndex++; } @@ -85034,9 +92440,11 @@ define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { break; // no more matches } } else if ((!hiddenTextElementsMap[curNode.nodeName] || blockElementsMap[curNode.nodeName]) && curNode.firstChild) { - // Move down - curNode = curNode.firstChild; - continue; + if (!isContentEditableFalse(curNode)) { + // Move down + curNode = curNode.firstChild; + continue; + } } else if (curNode.nextSibling) { // Move forward: curNode = curNode.nextSibling; @@ -85106,34 +92514,34 @@ define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { node.parentNode.removeChild(node); return el; - } else { - // Replace startNode -> [innerNodes...] -> endNode (in that order) - before = doc.createTextNode(startNode.data.substring(0, range.startNodeIndex)); - after = doc.createTextNode(endNode.data.substring(range.endNodeIndex)); - var elA = makeReplacementNode(startNode.data.substring(range.startNodeIndex), matchIndex); - var innerEls = []; + } - for (var i = 0, l = range.innerNodes.length; i < l; ++i) { - var innerNode = range.innerNodes[i]; - var innerEl = makeReplacementNode(innerNode.data, matchIndex); - innerNode.parentNode.replaceChild(innerEl, innerNode); - innerEls.push(innerEl); - } + // Replace startNode -> [innerNodes...] -> endNode (in that order) + before = doc.createTextNode(startNode.data.substring(0, range.startNodeIndex)); + after = doc.createTextNode(endNode.data.substring(range.endNodeIndex)); + var elA = makeReplacementNode(startNode.data.substring(range.startNodeIndex), matchIndex); + var innerEls = []; + + for (var i = 0, l = range.innerNodes.length; i < l; ++i) { + var innerNode = range.innerNodes[i]; + var innerEl = makeReplacementNode(innerNode.data, matchIndex); + innerNode.parentNode.replaceChild(innerEl, innerNode); + innerEls.push(innerEl); + } - var elB = makeReplacementNode(endNode.data.substring(0, range.endNodeIndex), matchIndex); + var elB = makeReplacementNode(endNode.data.substring(0, range.endNodeIndex), matchIndex); - parentNode = startNode.parentNode; - parentNode.insertBefore(before, startNode); - parentNode.insertBefore(elA, startNode); - parentNode.removeChild(startNode); + parentNode = startNode.parentNode; + parentNode.insertBefore(before, startNode); + parentNode.insertBefore(elA, startNode); + parentNode.removeChild(startNode); - parentNode = endNode.parentNode; - parentNode.insertBefore(elB, endNode); - parentNode.insertBefore(after, endNode); - parentNode.removeChild(endNode); + parentNode = endNode.parentNode; + parentNode.insertBefore(elB, endNode); + parentNode.insertBefore(after, endNode); + parentNode.removeChild(endNode); - return elB; - } + return elB; }; } @@ -85146,7 +92554,7 @@ define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { function getWrappersByIndex(index) { var elements = node.getElementsByTagName('*'), wrappers = []; - index = typeof(index) == "number" ? "" + index : null; + index = typeof index == "number" ? "" + index : null; for (var i = 0; i < elements.length; i++) { var element = elements[i], dataIndex = element.getAttribute('data-mce-index'); @@ -85379,8 +92787,8 @@ define("tinymce/spellcheckerplugin/DomTextMatcher", [], function() { /** * Plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -85566,15 +92974,19 @@ define("tinymce/spellcheckerplugin/Plugin", [ result = JSON.parse(result); if (!result) { - errorCallback("Sever response wasn't proper JSON."); + var message = editor.translate("Server response wasn't proper JSON."); + errorCallback(message); } else if (result.error) { errorCallback(result.error); } else { doneCallback(result); } }, - error: function(type, xhr) { - errorCallback("Spellchecker request error: " + xhr.status); + error: function() { + var message = editor.translate("The spelling service was not found: (") + + settings.spellchecker_rpc_url + + editor.translate(")"); + errorCallback(message); } }); } @@ -85585,15 +92997,12 @@ define("tinymce/spellcheckerplugin/Plugin", [ } function spellcheck() { - if (started) { - finish(); + if (finish()) { return; - } else { - finish(); } function errorCallback(message) { - editor.windowManager.alert(message); + editor.notificationManager.open({text: message, type: 'error'}); editor.setProgressState(false); finish(); } @@ -85617,7 +93026,7 @@ define("tinymce/spellcheckerplugin/Plugin", [ editor.dom.remove(spans, true); checkIfFinished(); }, function(message) { - editor.windowManager.alert(message); + editor.notificationManager.open({text: message, type: 'error'}); editor.setProgressState(false); }); } @@ -85645,13 +93054,14 @@ define("tinymce/spellcheckerplugin/Plugin", [ if (started) { started = false; editor.fire('SpellcheckEnd'); + return true; } } function getElmIndex(elm) { var value = elm.getAttribute('data-mce-index'); - if (typeof(value) == "number") { + if (typeof value == "number") { return "" + value; } @@ -85747,7 +93157,8 @@ define("tinymce/spellcheckerplugin/Plugin", [ editor.setProgressState(false); if (isEmpty(suggestions)) { - editor.windowManager.alert('No misspellings found'); + var message = editor.translate('No misspellings found.'); + editor.notificationManager.open({text: message, type: 'info'}); started = false; return; } @@ -85826,8 +93237,8 @@ define("tinymce-tabfocus", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -85861,7 +93272,7 @@ tinymce.PluginManager.add('tabfocus', function(editor) { } function canSelect(el) { - return /INPUT|TEXTAREA|BUTTON/.test(el.tagName) && tinymce.get(e.id) && el.tabIndex != -1 && canSelectRecursive(el); + return /INPUT|TEXTAREA|BUTTON/.test(el.tagName) && tinymce.get(e.id) && el.tabIndex != -1 && canSelectRecursive(el); } each(el, function(e, i) { @@ -85915,7 +93326,7 @@ tinymce.PluginManager.add('tabfocus', function(editor) { if (el.id && focusEditor) { focusEditor.focus(); } else { - window.setTimeout(function() { + tinymce.util.Delay.setTimeout(function() { if (!tinymce.Env.webkit) { window.focus(); } @@ -86017,10 +93428,12 @@ define("tinymce-table", ["tinymce"], function() { } function expose(ids) { - for (var i = 0; i < ids.length; i++) { - var target = exports; - var id = ids[i]; - var fragments = id.split(/[.\/]/); + var i, target, id, fragments, privateModules; + + for (i = 0; i < ids.length; i++) { + target = exports; + id = ids[i]; + fragments = id.split(/[.\/]/); for (var fi = 0; fi < fragments.length - 1; ++fi) { if (target[fragments[fi]] === undefined) { @@ -86032,15 +93445,69 @@ define("tinymce-table", ["tinymce"], function() { target[fragments[fragments.length - 1]] = modules[id]; } + + // Expose private modules for unit tests + if (exports.AMDLC_TESTS) { + privateModules = exports.privateModules || {}; + + for (id in modules) { + privateModules[id] = modules[id]; + } + + for (i = 0; i < ids.length; i++) { + delete privateModules[ids[i]]; + } + + exports.privateModules = privateModules; + } + } + +// Included from: js/tinymce/plugins/table/classes/Utils.js + +/** + * Utils.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * Various utility functions. + * + * @class tinymce.tableplugin.Utils + * @private + */ +define("tinymce/tableplugin/Utils", [ + "tinymce/Env" +], function(Env) { + function getSpanVal(td, name) { + return parseInt(td.getAttribute(name) || 1, 10); + } + + function paddCell(cell) { + if (!Env.ie || Env.ie > 9) { + if (!cell.hasChildNodes()) { + cell.innerHTML = '
    '; + } + } } + return { + getSpanVal: getSpanVal, + paddCell: paddCell + }; +}); + // Included from: js/tinymce/plugins/table/classes/TableGrid.js /** * TableGrid.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -86056,16 +93523,35 @@ define("tinymce-table", ["tinymce"], function() { */ define("tinymce/tableplugin/TableGrid", [ "tinymce/util/Tools", - "tinymce/Env" -], function(Tools, Env) { - var each = Tools.each; + "tinymce/Env", + "tinymce/tableplugin/Utils" +], function(Tools, Env, Utils) { + var each = Tools.each, getSpanVal = Utils.getSpanVal; - function getSpanVal(td, name) { - return parseInt(td.getAttribute(name) || 1, 10); - } + return function(editor, table, selectedCell) { + var grid, gridWidth, startPos, endPos, selection = editor.selection, dom = selection.dom; + + function removeCellSelection() { + editor.$('td[data-mce-selected],th[data-mce-selected]').removeAttr('data-mce-selected'); + } - return function(editor, table) { - var grid, gridWidth, startPos, endPos, selectedCell, selection = editor.selection, dom = selection.dom; + function isEditorBody(node) { + return node === editor.getBody(); + } + + function getChildrenByName(node, names) { + if (!node) { + return []; + } + + names = Tools.map(names.split(','), function(name) { + return name.toLowerCase(); + }); + + return Tools.grep(node.childNodes, function(node) { + return Tools.inArray(names, node.nodeName.toLowerCase()) !== -1; + }); + } function buildGrid() { var startY = 0; @@ -86074,12 +93560,13 @@ define("tinymce/tableplugin/TableGrid", [ gridWidth = 0; each(['thead', 'tbody', 'tfoot'], function(part) { - var rows = dom.select('> ' + part + ' tr', table); + var partElm = getChildrenByName(table, part)[0]; + var rows = getChildrenByName(partElm, 'tr'); each(rows, function(tr, y) { y += startY; - each(dom.select('> td, > th', tr), function(td, x) { + each(getChildrenByName(tr, 'td,th'), function(td, x) { var x2, y2, rowspan, colspan; // Skip over existing cells produced by rowspan @@ -86118,6 +93605,22 @@ define("tinymce/tableplugin/TableGrid", [ }); } + function fireNewRow(node) { + editor.fire('newrow', { + node: node + }); + + return node; + } + + function fireNewCell(node) { + editor.fire('newcell', { + node: node + }); + + return node; + } + function cloneNode(node, children) { node = node.cloneNode(children); node.removeAttribute('id'); @@ -86147,7 +93650,7 @@ define("tinymce/tableplugin/TableGrid", [ } function isCellSelected(cell) { - return cell && (dom.hasClass(cell.elm, 'mce-item-selected') || cell == selectedCell); + return cell && (!!dom.getAttrib(cell.elm, 'data-mce-selected') || cell == selectedCell); } function getSelectedRows() { @@ -86155,7 +93658,7 @@ define("tinymce/tableplugin/TableGrid", [ each(table.rows, function(row) { each(row.cells, function(cell) { - if (dom.hasClass(cell, 'mce-item-selected') || (selectedCell && cell == selectedCell.elm)) { + if (dom.getAttrib(cell, 'data-mce-selected') || (selectedCell && cell == selectedCell.elm)) { rows.push(row); return false; } @@ -86168,6 +93671,10 @@ define("tinymce/tableplugin/TableGrid", [ function deleteTable() { var rng = dom.createRng(); + if (isEditorBody(table)) { + return; + } + rng.setStartAfter(table); rng.setEndAfter(table); @@ -86209,7 +93716,7 @@ define("tinymce/tableplugin/TableGrid", [ // Add something to the inner node if (curNode) { - curNode.innerHTML = Env.ie ? ' ' : '
    '; + curNode.innerHTML = Env.ie && Env.ie < 10 ? ' ' : '
    '; } return false; @@ -86217,15 +93724,15 @@ define("tinymce/tableplugin/TableGrid", [ }, 'childNodes'); cell = cloneNode(cell, false); + fireNewCell(cell); + setSpanVal(cell, 'rowSpan', 1); setSpanVal(cell, 'colSpan', 1); if (formatNode) { cell.appendChild(formatNode); } else { - if (!Env.ie || Env.ie > 10) { - cell.innerHTML = '
    '; - } + Utils.paddCell(cell); } return cell; @@ -86402,7 +93909,7 @@ define("tinymce/tableplugin/TableGrid", [ children = Tools.grep(startCell.childNodes); count = 0; each(children, function(node) { - if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1) { + if (node.nodeName == 'BR' && count++ < children.length - 1) { startCell.removeChild(node); } }); @@ -86427,7 +93934,7 @@ define("tinymce/tableplugin/TableGrid", [ if (isCellSelected(cell)) { cell = cell.elm; rowElm = cell.parentNode; - newRow = cloneNode(rowElm, false); + newRow = fireNewRow(cloneNode(rowElm, false)); posY = y; if (before) { @@ -86541,9 +94048,35 @@ define("tinymce/tableplugin/TableGrid", [ }); } + function getSelectedCells(grid) { + return Tools.grep(getAllCells(grid), isCellSelected); + } + + function getAllCells(grid) { + var cells = []; + + each(grid, function(row) { + each(row, function(cell) { + cells.push(cell); + }); + }); + + return cells; + } + function deleteCols() { var cols = []; + if (isEditorBody(table)) { + if (grid[0].length == 1) { + return; + } + + if (getSelectedCells(grid).length == getAllCells(grid).length) { + return; + } + } + // Get selected column indexes each(grid, function(row) { each(row, function(cell, x) { @@ -86609,6 +94142,10 @@ define("tinymce/tableplugin/TableGrid", [ // Get selected rows and move selection out of scope rows = getSelectedRows(); + if (isEditorBody(table) && rows.length == table.rows.length) { + return; + } + // Delete all selected rows each(rows.reverse(), function(tr) { deleteRow(tr); @@ -86620,6 +94157,10 @@ define("tinymce/tableplugin/TableGrid", [ function cutRows() { var rows = getSelectedRows(); + if (isEditorBody(table) && rows.length == table.rows.length) { + return; + } + dom.remove(rows); cleanup(); @@ -86673,16 +94214,20 @@ define("tinymce/tableplugin/TableGrid", [ each(rows, function(row) { var i, cellCount = row.cells.length, cell; + fireNewRow(row); + // Remove col/rowspans for (i = 0; i < cellCount; i++) { cell = row.cells[i]; + + fireNewCell(cell); setSpanVal(cell, 'colSpan', 1); setSpanVal(cell, 'rowSpan', 1); } // Needs more cells for (i = cellCount; i < targetCellCount; i++) { - row.appendChild(cloneCell(row.cells[cellCount - 1])); + row.appendChild(fireNewCell(cloneCell(row.cells[cellCount - 1]))); } // Needs less cells @@ -86698,8 +94243,7 @@ define("tinymce/tableplugin/TableGrid", [ } }); - // Remove current selection - dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected'); + removeCellSelection(); } function getPos(target) { @@ -86708,7 +94252,7 @@ define("tinymce/tableplugin/TableGrid", [ each(grid, function(row, y) { each(row, function(cell, x) { if (cell.elm == target) { - pos = {x : x, y : y}; + pos = {x: x, y: y}; return false; } }); @@ -86763,7 +94307,7 @@ define("tinymce/tableplugin/TableGrid", [ }); }); - return {x : maxX, y : maxY}; + return {x: maxX, y: maxY}; } function setEndCell(cell) { @@ -86778,7 +94322,7 @@ define("tinymce/tableplugin/TableGrid", [ endX = Math.max(startPos.x, endPos.x); endY = Math.max(startPos.y, endPos.y); - // Expand end positon to include spans + // Expand end position to include spans maxX = endX; maxY = endY; @@ -86828,14 +94372,13 @@ define("tinymce/tableplugin/TableGrid", [ } } - // Remove current selection - dom.removeClass(dom.select('td.mce-item-selected,th.mce-item-selected'), 'mce-item-selected'); + removeCellSelection(); // Add new selection for (y = startY; y <= maxY; y++) { for (x = startX; x <= maxX; x++) { if (grid[y][x]) { - dom.addClass(grid[y][x].elm, 'mce-item-selected'); + dom.setAttrib(grid[y][x].elm, 'data-mce-selected', '1'); } } } @@ -86870,11 +94413,12 @@ define("tinymce/tableplugin/TableGrid", [ return false; } - table = table || dom.getParent(selection.getStart(), 'table'); + table = table || dom.getParent(selection.getStart(true), 'table'); buildGrid(); - selectedCell = dom.getParent(selection.getStart(), 'th,td'); + selectedCell = selectedCell || dom.getParent(selection.getStart(true), 'th,td'); + if (selectedCell) { startPos = getPos(selectedCell); endPos = findEndPos(); @@ -86906,8 +94450,8 @@ define("tinymce/tableplugin/TableGrid", [ /** * Quirks.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -86921,14 +94465,12 @@ define("tinymce/tableplugin/TableGrid", [ */ define("tinymce/tableplugin/Quirks", [ "tinymce/util/VK", + "tinymce/util/Delay", "tinymce/Env", - "tinymce/util/Tools" -], function(VK, Env, Tools) { - var each = Tools.each; - - function getSpanVal(td, name) { - return parseInt(td.getAttribute(name) || 1, 10); - } + "tinymce/util/Tools", + "tinymce/tableplugin/Utils" +], function(VK, Delay, Env, Tools, Utils) { + var each = Tools.each, getSpanVal = Utils.getSpanVal; return function(editor) { /** @@ -86947,18 +94489,19 @@ define("tinymce/tableplugin/Quirks", [ moveCursorToRow(editor, sourceNode, siblingRow, upBool); e.preventDefault(); return true; - } else { - var tableNode = editor.dom.getParent(currentRow, 'table'); - var middleNode = currentRow.parentNode; - var parentNodeName = middleNode.nodeName.toLowerCase(); - if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) { - var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody'); - if (targetParent !== null) { - return moveToRowInTarget(upBool, targetParent, sourceNode); - } + } + + var tableNode = editor.dom.getParent(currentRow, 'table'); + var middleNode = currentRow.parentNode; + var parentNodeName = middleNode.nodeName.toLowerCase(); + if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) { + var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody'); + if (targetParent !== null) { + return moveToRowInTarget(upBool, targetParent, sourceNode); } - return escapeTable(upBool, currentRow, siblingDirection, tableNode); } + + return escapeTable(upBool, currentRow, siblingDirection, tableNode); } function getTargetParent(upBool, topNode, secondNode, nodeName) { @@ -86969,9 +94512,9 @@ define("tinymce/tableplugin/Quirks", [ } else if (position === -1) { var topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1; return tbodies[topOrBottom]; - } else { - return tbodies[position + (upBool ? -1 : 1)]; } + + return tbodies[position + (upBool ? -1 : 1)]; } function getFirstHeadOrFoot(upBool, parent) { @@ -86997,21 +94540,21 @@ define("tinymce/tableplugin/Quirks", [ if (tableSibling) { moveCursorToStartOfElement(tableSibling); return true; - } else { - var parentCell = editor.dom.getParent(table, 'td,th'); - if (parentCell) { - return handle(upBool, parentCell, e); - } else { - var backUpSibling = getChildForDirection(currentRow, !upBool); - moveCursorToStartOfElement(backUpSibling); - e.preventDefault(); - return false; - } } + + var parentCell = editor.dom.getParent(table, 'td,th'); + if (parentCell) { + return handle(upBool, parentCell, e); + } + + var backUpSibling = getChildForDirection(currentRow, !upBool); + moveCursorToStartOfElement(backUpSibling); + e.preventDefault(); + return false; } function getChildForDirection(parent, up) { - var child = parent && parent[up ? 'lastChild' : 'firstChild']; + var child = parent && parent[up ? 'lastChild' : 'firstChild']; // BR is not a valid table child to return in this case we return the table cell return child && child.nodeName === 'BR' ? editor.dom.getParent(child, 'td,th') : child; } @@ -87075,7 +94618,7 @@ define("tinymce/tableplugin/Quirks", [ if (isVerticalMovement() && isInTable(editor)) { var preBrowserNode = editor.selection.getNode(); - setTimeout(function() { + Delay.setEditorTimeout(editor, function() { if (shouldFixCaret(preBrowserNode)) { handle(!e.shiftKey && key === VK.UP, preBrowserNode, e); } @@ -87153,7 +94696,7 @@ define("tinymce/tableplugin/Quirks", [ editor.getBody(), editor.settings.forced_root_block, editor.settings.forced_root_block_attrs, - Env.ie && Env.ie < 11 ? ' ' : '
    ' + Env.ie && Env.ie < 10 ? ' ' : '
    ' ); } else { editor.dom.add(editor.getBody(), 'br', {'data-mce-bogus': '1'}); @@ -87238,20 +94781,49 @@ define("tinymce/tableplugin/Quirks", [ * Delete table if all cells are selected. */ function deleteTable() { + function placeCaretInCell(cell) { + editor.selection.select(cell, true); + editor.selection.collapse(true); + } + + function clearCell(cell) { + editor.$(cell).empty(); + Utils.paddCell(cell); + } + editor.on('keydown', function(e) { if ((e.keyCode == VK.DELETE || e.keyCode == VK.BACKSPACE) && !e.isDefaultPrevented()) { - var table = editor.dom.getParent(editor.selection.getStart(), 'table'); + var table, tableCells, selectedTableCells, cell; + table = editor.dom.getParent(editor.selection.getStart(), 'table'); if (table) { - var cells = editor.dom.select('td,th', table), i = cells.length; - while (i--) { - if (!editor.dom.hasClass(cells[i], 'mce-item-selected')) { - return; + tableCells = editor.dom.select('td,th', table); + selectedTableCells = Tools.grep(tableCells, function(cell) { + return !!editor.dom.getAttrib(cell, 'data-mce-selected'); + }); + + if (selectedTableCells.length === 0) { + // If caret is within an empty table cell then empty it for real + cell = editor.dom.getParent(editor.selection.getStart(), 'td,th'); + if (editor.selection.isCollapsed() && cell && editor.dom.isEmpty(cell)) { + e.preventDefault(); + clearCell(cell); + placeCaretInCell(cell); } + + return; } e.preventDefault(); - editor.execCommand('mceTableDelete'); + + editor.undoManager.transact(function() { + if (tableCells.length == selectedTableCells.length) { + editor.execCommand('mceTableDelete'); + } else { + Tools.each(selectedTableCells, clearCell); + placeCaretInCell(selectedTableCells[0]); + } + }); } } }); @@ -87269,7 +94841,7 @@ define("tinymce/tableplugin/Quirks", [ fixTableCaretPos(); } - if (Env.ie > 10) { + if (Env.ie > 9) { fixBeforeTableCaretBug(); fixTableCaretPos(); } @@ -87281,8 +94853,8 @@ define("tinymce/tableplugin/Quirks", [ /** * CellSelection.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -87301,60 +94873,80 @@ define("tinymce/tableplugin/CellSelection", [ "tinymce/util/Tools" ], function(TableGrid, TreeWalker, Tools) { return function(editor) { - var dom = editor.dom, tableGrid, startCell, startTable, hasCellSelection = true, resizing; + var dom = editor.dom, tableGrid, startCell, startTable, lastMouseOverTarget, hasCellSelection = true, resizing; function clear(force) { // Restore selection possibilities editor.getBody().style.webkitUserSelect = ''; if (force || hasCellSelection) { - editor.dom.removeClass( - editor.dom.select('td.mce-item-selected,th.mce-item-selected'), - 'mce-item-selected' - ); - + editor.$('td[data-mce-selected],th[data-mce-selected]').removeAttr('data-mce-selected'); hasCellSelection = false; } } + function isCellInTable(table, cell) { + if (!table || !cell) { + return false; + } + + return table === dom.getParent(cell, 'table'); + } + function cellSelectionHandler(e) { - var sel, table, target = e.target; + var sel, target = e.target, currentCell; if (resizing) { return; } - if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) { - table = dom.getParent(target, 'table'); - if (table == startTable) { - if (!tableGrid) { - tableGrid = new TableGrid(editor, table); - tableGrid.setStartCell(startCell); + // Fake mouse enter by keeping track of last mouse over + if (target === lastMouseOverTarget) { + return; + } + + lastMouseOverTarget = target; + + if (startTable && startCell) { + currentCell = dom.getParent(target, 'td,th'); + + if (!isCellInTable(startTable, currentCell)) { + currentCell = dom.getParent(startTable, 'td,th'); + } + + if (isCellInTable(startTable, currentCell)) { + e.preventDefault(); + if (!tableGrid) { + tableGrid = new TableGrid(editor, startTable, startCell); editor.getBody().style.webkitUserSelect = 'none'; } - tableGrid.setEndCell(target); + tableGrid.setEndCell(currentCell); hasCellSelection = true; - } - // Remove current selection - sel = editor.selection.getSel(); + // Remove current selection + sel = editor.selection.getSel(); - try { - if (sel.removeAllRanges) { - sel.removeAllRanges(); - } else { - sel.empty(); + try { + if (sel.removeAllRanges) { + sel.removeAllRanges(); + } else { + sel.empty(); + } + } catch (ex) { + // IE9 might throw errors here } - } catch (ex) { - // IE9 might throw errors here } - - e.preventDefault(); } } + editor.on('SelectionChange', function(e) { + if (hasCellSelection) { + e.stopImmediatePropagation(); + } + }, true); + // Add cell selection logic editor.on('MouseDown', function(e) { if (e.button != 2 && !resizing) { @@ -87369,6 +94961,7 @@ define("tinymce/tableplugin/CellSelection", [ editor.on('remove', function() { dom.unbind(editor.getDoc(), 'mouseover', cellSelectionHandler); + clear(); }); editor.on('MouseUp', function() { @@ -87409,7 +95002,7 @@ define("tinymce/tableplugin/CellSelection", [ } // Try to expand text selection as much as we can only Gecko supports cell selection - selectedCells = dom.select('td.mce-item-selected,th.mce-item-selected'); + selectedCells = dom.select('td[data-mce-selected],th[data-mce-selected]'); if (selectedCells.length > 0) { rng = dom.createRng(); node = selectedCells[0]; @@ -87421,7 +95014,7 @@ define("tinymce/tableplugin/CellSelection", [ do { if (node.nodeName == 'TD' || node.nodeName == 'TH') { - if (!dom.hasClass(node, 'mce-item-selected')) { + if (!dom.getAttrib(node, 'data-mce-selected')) { break; } @@ -87435,13 +95028,13 @@ define("tinymce/tableplugin/CellSelection", [ } editor.nodeChanged(); - startCell = tableGrid = startTable = null; + startCell = tableGrid = startTable = lastMouseOverTarget = null; } }); editor.on('KeyUp Drop SetContent', function(e) { clear(e.type == 'setcontent'); - startCell = tableGrid = startTable = null; + startCell = tableGrid = startTable = lastMouseOverTarget = null; resizing = false; }); @@ -87460,13 +95053,15 @@ define("tinymce/tableplugin/CellSelection", [ /** * Dialogs.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing */ +/*eslint dot-notation:0*/ + /** * ... * @@ -87625,23 +95220,43 @@ define("tinymce/tableplugin/Dialogs", [ data.style = dom.serializeStyle(css); } + function mergeStyles(dom, elm, styles) { + var css = dom.parseStyle(dom.getAttrib(elm, 'style')); + + each(styles, function(style) { + css[style.name] = style.value; + }); + + dom.setAttrib(elm, 'style', dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css)))); + } + self.tableProps = function() { self.table(true); }; self.table = function(isProps) { - var dom = editor.dom, tableElm, colsCtrl, rowsCtrl, classListCtrl, data = {}, generalTableForm; + var dom = editor.dom, tableElm, colsCtrl, rowsCtrl, classListCtrl, data = {}, generalTableForm, stylesToMerge; function onSubmitTableForm() { + + //Explore the layers of the table till we find the first layer of tds or ths + function styleTDTH(elm, name, value) { + if (elm.tagName === "TD" || elm.tagName === "TH") { + dom.setStyle(elm, name, value); + } else { + if (elm.children) { + for (var i = 0; i < elm.children.length; i++) { + styleTDTH(elm.children[i], name, value); + } + } + } + } + var captionElm; updateStyle(dom, this); data = Tools.extend(data, this.toJSON()); - Tools.each('backgroundColor borderColor'.split(' '), function(name) { - delete data[name]; - }); - if (data["class"] === false) { delete data["class"]; } @@ -87652,14 +95267,35 @@ define("tinymce/tableplugin/Dialogs", [ } editor.dom.setAttribs(tableElm, { - cellspacing: data.cellspacing, - cellpadding: data.cellpadding, - border: data.border, style: data.style, 'class': data['class'] }); - if (dom.getAttrib(tableElm, 'width')) { + if (editor.settings.table_style_by_css) { + stylesToMerge = []; + stylesToMerge.push({name: 'border', value: data.border}); + stylesToMerge.push({name: 'border-spacing', value: addSizeSuffix(data.cellspacing)}); + mergeStyles(dom, tableElm, stylesToMerge); + dom.setAttribs(tableElm, { + 'data-mce-border-color': data.borderColor, + 'data-mce-cell-padding': data.cellpadding, + 'data-mce-border': data.border + }); + if (tableElm.children) { + for (var i = 0; i < tableElm.children.length; i++) { + styleTDTH(tableElm.children[i], 'border', data.border); + styleTDTH(tableElm.children[i], 'padding', addSizeSuffix(data.cellpadding)); + } + } + } else { + editor.dom.setAttribs(tableElm, { + border: data.border, + cellpadding: data.cellpadding, + cellspacing: data.cellspacing + }); + } + + if (dom.getAttrib(tableElm, 'width') && !editor.settings.table_style_by_css) { dom.setAttrib(tableElm, 'width', removePxSuffix(data.width)); } else { dom.setStyle(tableElm, 'width', addSizeSuffix(data.width)); @@ -87679,7 +95315,6 @@ define("tinymce/tableplugin/Dialogs", [ captionElm.innerHTML = !Env.ie ? '
    ' : '\u00a0'; tableElm.insertBefore(captionElm, tableElm.firstChild); } - unApplyAlign(tableElm); if (data.align) { editor.formatter.apply('align' + data.align, {}, tableElm); @@ -87690,6 +95325,30 @@ define("tinymce/tableplugin/Dialogs", [ }); } + function getTDTHOverallStyle(elm, name) { + var cells = editor.dom.select("td,th", elm), firstChildStyle; + + function checkChildren(firstChildStyle, elms) { + + for (var i = 0; i < elms.length; i++) { + var currentStyle = dom.getStyle(elms[i], name); + if (typeof firstChildStyle === "undefined") { + firstChildStyle = currentStyle; + } + if (firstChildStyle != currentStyle) { + return ""; + } + } + + return firstChildStyle; + + } + + firstChildStyle = checkChildren(firstChildStyle, cells); + + return firstChildStyle; + } + if (isProps === true) { tableElm = dom.getParent(editor.selection.getStart(), 'table'); @@ -87697,9 +95356,13 @@ define("tinymce/tableplugin/Dialogs", [ data = { width: removePxSuffix(dom.getStyle(tableElm, 'width') || dom.getAttrib(tableElm, 'width')), height: removePxSuffix(dom.getStyle(tableElm, 'height') || dom.getAttrib(tableElm, 'height')), - cellspacing: tableElm ? dom.getAttrib(tableElm, 'cellspacing') : '', - cellpadding: tableElm ? dom.getAttrib(tableElm, 'cellpadding') : '', - border: tableElm ? dom.getAttrib(tableElm, 'border') : '', + cellspacing: removePxSuffix(dom.getStyle(tableElm, 'border-spacing') || + dom.getAttrib(tableElm, 'cellspacing')), + cellpadding: dom.getAttrib(tableElm, 'data-mce-cell-padding') || dom.getAttrib(tableElm, 'cellpadding') || + getTDTHOverallStyle(tableElm, 'padding'), + border: dom.getAttrib(tableElm, 'data-mce-border') || dom.getAttrib(tableElm, 'border') || + getTDTHOverallStyle(tableElm, 'border'), + borderColor: dom.getAttrib(tableElm, 'data-mce-border-color'), caption: !!dom.select('caption', tableElm)[0], 'class': dom.getAttrib(tableElm, 'class') }; @@ -87754,7 +95417,7 @@ define("tinymce/tableplugin/Dialogs", [ type: 'textbox', maxWidth: 50 }, - items: [ + items: (editor.settings.table_appearance_options !== false) ? [ colsCtrl, rowsCtrl, {label: 'Width', name: 'width'}, @@ -87763,6 +95426,11 @@ define("tinymce/tableplugin/Dialogs", [ {label: 'Cell padding', name: 'cellpadding'}, {label: 'Border', name: 'border'}, {label: 'Caption', name: 'caption', type: 'checkbox'} + ] : [ + colsCtrl, + rowsCtrl, + {label: 'Width', name: 'width'}, + {label: 'Height', name: 'height'} ] }, @@ -87871,7 +95539,7 @@ define("tinymce/tableplugin/Dialogs", [ } // Get selected cells or the current cell - cells = editor.dom.select('td.mce-item-selected,th.mce-item-selected'); + cells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]'); cellElm = editor.dom.getParent(editor.selection.getStart(), 'td,th'); if (!cells.length && cellElm) { cells.push(cellElm); @@ -88094,7 +95762,7 @@ define("tinymce/tableplugin/Dialogs", [ each(tableElm.rows, function(row) { each(row.cells, function(cell) { - if (dom.hasClass(cell, 'mce-item-selected') || cell == cellElm) { + if (dom.getAttrib(cell, 'data-mce-selected') || cell == cellElm) { rows.push(row); return false; } @@ -88207,13 +95875,1000 @@ define("tinymce/tableplugin/Dialogs", [ }; }); +// Included from: js/tinymce/plugins/table/classes/ResizeBars.js + +/** + * ResizeBars.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + * This class handles table column and row resizing by adding divs over the columns and rows of the table. + * These divs are then manipulated using mouse events to resize the underlying table. + * + * @class tinymce.tableplugin.ResizeBars + * @private + */ +define("tinymce/tableplugin/ResizeBars", [ + "tinymce/util/Tools", + "tinymce/util/VK" +], function(Tools, VK) { + var hoverTable; + + return function(editor) { + var RESIZE_BAR_CLASS = 'mce-resize-bar', + RESIZE_BAR_ROW_CLASS = 'mce-resize-bar-row', + RESIZE_BAR_ROW_CURSOR_STYLE = 'row-resize', + RESIZE_BAR_ROW_DATA_ATTRIBUTE = 'data-row', + RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE = 'data-initial-top', + RESIZE_BAR_COL_CLASS = 'mce-resize-bar-col', + RESIZE_BAR_COL_CURSOR_STYLE = 'col-resize', + RESIZE_BAR_COL_DATA_ATTRIBUTE = 'data-col', + RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE = 'data-initial-left', + RESIZE_BAR_THICKNESS = 4, + RESIZE_MINIMUM_WIDTH = 10, + RESIZE_MINIMUM_HEIGHT = 10, + RESIZE_BAR_DRAGGING_CLASS = 'mce-resize-bar-dragging'; + + var percentageBasedSizeRegex = new RegExp(/(\d+(\.\d+)?%)/), + pixelBasedSizeRegex = new RegExp(/px|em/); + + var delayDrop, dragging, blockerElement, dragBar, lastX, lastY; + + // Get the absolute position's top edge. + function getTopEdge(index, row) { + return { + index: index, + y: editor.dom.getPos(row).y + }; + } + + // Get the absolute position's bottom edge. + function getBottomEdge(index, row) { + return { + index: index, + y: editor.dom.getPos(row).y + row.offsetHeight + }; + } + + // Get the absolute position's left edge. + function getLeftEdge(index, cell) { + return { + index: index, + x: editor.dom.getPos(cell).x + }; + } + + // Get the absolute position's right edge. + function getRightEdge(index, cell) { + return { + index: index, + x: editor.dom.getPos(cell).x + cell.offsetWidth + }; + } + + function isRtl() { + var dir = editor.getBody().dir; + return dir === 'rtl'; + } + + function isInline() { + return editor.inline; + } + + function getBody() { + return isInline ? editor.getBody().ownerDocument.body : editor.getBody(); + } + + function getInnerEdge(index, cell) { + return isRtl() ? getRightEdge(index, cell) : getLeftEdge(index, cell); + } + + function getOuterEdge(index, cell) { + return isRtl() ? getLeftEdge(index, cell) : getRightEdge(index, cell); + } + + function getPercentageWidthFallback(element, table) { + return getComputedStyleSize(element, 'width') / getComputedStyleSize(table, 'width') * 100; + } + + function getComputedStyleSize(element, property) { + var widthString = editor.dom.getStyle(element, property, true); + var width = parseInt(widthString, 10); + return width; + } + + function getCurrentTablePercentWidth(table) { + var tableWidth = getComputedStyleSize(table, 'width'); + var tableParentWidth = getComputedStyleSize(table.parentElement, 'width'); + return tableWidth / tableParentWidth * 100; + } + + function getCellPercentDelta(table, delta) { + var tableWidth = getComputedStyleSize(table, 'width'); + return delta / tableWidth * 100; + } + + function getTablePercentDelta(table, delta) { + var tableParentWidth = getComputedStyleSize(table.parentElement, 'width'); + return delta / tableParentWidth * 100; + } + + // Find the left/right (ltr/rtl) or top side locations of the cells to measure. + // This is the location of the borders we need to draw over. + function findPositions(getInner, getOuter, thingsToMeasure) { + var tablePositions = []; + + // Skip the first item in the array = no left (LTR), right (RTL) or top bars + for (var i = 1; i < thingsToMeasure.length; i++) { + // Get the element from the details + var item = thingsToMeasure[i].element; + + // We need to zero index this again + tablePositions.push(getInner(i - 1, item)); + } + + var lastTableLineToMake = thingsToMeasure[thingsToMeasure.length - 1]; + tablePositions.push(getOuter(thingsToMeasure.length - 1, lastTableLineToMake.element)); + + return tablePositions; + } + + // Clear the bars. + function clearBars() { + var bars = editor.dom.select('.' + RESIZE_BAR_CLASS, getBody()); + Tools.each(bars, function(bar) { + editor.dom.remove(bar); + }); + } + + // Refresh the bars. + function refreshBars(tableElement) { + clearBars(); + drawBars(tableElement); + } + + // Generates a resize bar object for the editor to add. + function generateBar(classToAdd, cursor, left, top, height, width, indexAttr, index) { + var bar = { + 'data-mce-bogus': 'all', + 'class': RESIZE_BAR_CLASS + ' ' + classToAdd, + 'unselectable': 'on', + 'data-mce-resize': false, + style: 'cursor: ' + cursor + '; ' + + 'margin: 0; ' + + 'padding: 0; ' + + 'position: absolute; ' + + 'left: ' + left + 'px; ' + + 'top: ' + top + 'px; ' + + 'height: ' + height + 'px; ' + + 'width: ' + width + 'px; ' + }; + + bar[indexAttr] = index; + + return bar; + } + + // Draw the row bars over the row borders. + function drawRows(rowPositions, tableWidth, tablePosition) { + Tools.each(rowPositions, function(rowPosition) { + var left = tablePosition.x, + top = rowPosition.y - RESIZE_BAR_THICKNESS / 2, + height = RESIZE_BAR_THICKNESS, + width = tableWidth; + + editor.dom.add(getBody(), 'div', + generateBar(RESIZE_BAR_ROW_CLASS, RESIZE_BAR_ROW_CURSOR_STYLE, + left, top, height, width, RESIZE_BAR_ROW_DATA_ATTRIBUTE, rowPosition.index)); + }); + } + + // Draw the column bars over the column borders. + function drawCols(cellPositions, tableHeight, tablePosition) { + Tools.each(cellPositions, function(cellPosition) { + var left = cellPosition.x - RESIZE_BAR_THICKNESS / 2, + top = tablePosition.y, + height = tableHeight, + width = RESIZE_BAR_THICKNESS; + + editor.dom.add(getBody(), 'div', + generateBar(RESIZE_BAR_COL_CLASS, RESIZE_BAR_COL_CURSOR_STYLE, + left, top, height, width, RESIZE_BAR_COL_DATA_ATTRIBUTE, cellPosition.index)); + }); + } + + // Get a matrix of the cells in each row and the rows in the table. + function getTableDetails(table) { + return Tools.map(table.rows, function(row) { + + var cells = Tools.map(row.cells, function(cell) { + + var rowspan = cell.hasAttribute('rowspan') ? parseInt(cell.getAttribute('rowspan'), 10) : 1; + var colspan = cell.hasAttribute('colspan') ? parseInt(cell.getAttribute('colspan'), 10) : 1; + + return { + element: cell, + rowspan: rowspan, + colspan: colspan + }; + }); + + return { + element: row, + cells: cells + }; + + }); + + } + + // Get a grid model of the table. + function getTableGrid(tableDetails) { + function key(rowIndex, colIndex) { + return rowIndex + ',' + colIndex; + } + + function getAt(rowIndex, colIndex) { + return access[key(rowIndex, colIndex)]; + } + + function getAllCells() { + var allCells = []; + Tools.each(rows, function(row) { + allCells = allCells.concat(row.cells); + }); + return allCells; + } + + function getAllRows() { + return rows; + } + + var access = {}; + var rows = []; + + var maxRows = 0; + var maxCols = 0; + + Tools.each(tableDetails, function(row, rowIndex) { + var currentRow = []; + + Tools.each(row.cells, function(cell) { + + var start = 0; + + while (access[key(rowIndex, start)] !== undefined) { + start++; + } + + var current = { + element: cell.element, + colspan: cell.colspan, + rowspan: cell.rowspan, + rowIndex: rowIndex, + colIndex: start + }; + + for (var i = 0; i < cell.colspan; i++) { + for (var j = 0; j < cell.rowspan; j++) { + var cr = rowIndex + j; + var cc = start + i; + access[key(cr, cc)] = current; + maxRows = Math.max(maxRows, cr + 1); + maxCols = Math.max(maxCols, cc + 1); + } + } + + currentRow.push(current); + }); + + rows.push({ + element: row.element, + cells: currentRow + }); + }); + + return { + grid: { + maxRows: maxRows, + maxCols: maxCols + }, + getAt: getAt, + getAllCells: getAllCells, + getAllRows: getAllRows + }; + } + + function range(start, end) { + var r = []; + + for (var i = start; i < end; i++) { + r.push(i); + } + + return r; + } + + // Attempt to get a representative single block for this column. + // If we can't find a single block, all blocks in this row/column are spanned + // and we'll need to fallback to getting the first cell in the row/column. + function decide(getBlock, isSingle, getFallback) { + var inBlock = getBlock(); + var singleInBlock; + + for (var i = 0; i < inBlock.length; i++) { + if (isSingle(inBlock[i])) { + singleInBlock = inBlock[i]; + } + } + return singleInBlock ? singleInBlock : getFallback(); + } + + // Attempt to get representative blocks for the width of each column. + function getColumnBlocks(tableGrid) { + var cols = range(0, tableGrid.grid.maxCols); + var rows = range(0, tableGrid.grid.maxRows); + + return Tools.map(cols, function(col) { + function getBlock() { + var details = []; + for (var i = 0; i < rows.length; i++) { + var detail = tableGrid.getAt(i, col); + if (detail && detail.colIndex === col) { + details.push(detail); + } + } + + return details; + } + + function isSingle(detail) { + return detail.colspan === 1; + } + + function getFallback() { + var item; + + for (var i = 0; i < rows.length; i++) { + item = tableGrid.getAt(i, col); + if (item) { + return item; + } + } + + return null; + } + + return decide(getBlock, isSingle, getFallback); + }); + } + + // Attempt to get representative blocks for the height of each row. + function getRowBlocks(tableGrid) { + var cols = range(0, tableGrid.grid.maxCols); + var rows = range(0, tableGrid.grid.maxRows); + + return Tools.map(rows, function(row) { + function getBlock() { + var details = []; + for (var i = 0; i < cols.length; i++) { + var detail = tableGrid.getAt(row, i); + if (detail && detail.rowIndex === row) { + details.push(detail); + } + } + return details; + } + + function isSingle(detail) { + return detail.rowspan === 1; + } + + function getFallback() { + return tableGrid.getAt(row, 0); + } + + return decide(getBlock, isSingle, getFallback); + }); + } + + // Draw resize bars over the left/right (ltr/rtl) or top side locations of the cells to measure. + // This is the location of the borders we need to draw over. + function drawBars(table) { + var tableDetails = getTableDetails(table); + var tableGrid = getTableGrid(tableDetails); + var rows = getRowBlocks(tableGrid); + var cols = getColumnBlocks(tableGrid); + + var tablePosition = editor.dom.getPos(table); + var rowPositions = rows.length > 0 ? findPositions(getTopEdge, getBottomEdge, rows) : []; + var colPositions = cols.length > 0 ? findPositions(getInnerEdge, getOuterEdge, cols) : []; + + drawRows(rowPositions, table.offsetWidth, tablePosition); + drawCols(colPositions, table.offsetHeight, tablePosition); + } + + // Attempt to deduce the width/height of a column/row that has more than one cell spanned. + function deduceSize(deducables, index, isPercentageBased, table) { + if (index < 0 || index >= deducables.length - 1) { + return ""; + } + + var current = deducables[index]; + + if (current) { + current = { + value: current, + delta: 0 + }; + } else { + var reversedUpToIndex = deducables.slice(0, index).reverse(); + for (var i = 0; i < reversedUpToIndex.length; i++) { + if (reversedUpToIndex[i]) { + current = { + value: reversedUpToIndex[i], + delta: i + 1 + }; + } + } + } + + var next = deducables[index + 1]; + + if (next) { + next = { + value: next, + delta: 1 + }; + } else { + var rest = deducables.slice(index + 1); + for (var j = 0; j < rest.length; j++) { + if (rest[j]) { + next = { + value: rest[j], + delta: j + 1 + }; + } + } + } + + var extras = next.delta - current.delta; + var pixelWidth = Math.abs(next.value - current.value) / extras; + return isPercentageBased ? pixelWidth / getComputedStyleSize(table, 'width') * 100 : pixelWidth; + } + + function getStyleOrAttrib(element, property) { + var sizeString = editor.dom.getStyle(element, property); + if (!sizeString) { + sizeString = editor.dom.getAttrib(element, property); + } + if (!sizeString) { + sizeString = editor.dom.getStyle(element, property, true); + } + return sizeString; + } + + function getWidth(element, isPercentageBased, table) { + var widthString = getStyleOrAttrib(element, 'width'); + + var widthNumber = parseInt(widthString, 10); + + var getWidthFallback = isPercentageBased ? getPercentageWidthFallback(element, table) : getComputedStyleSize(element, 'width'); + + // If this is percentage based table, but this cell isn't percentage based. + // Or if this is a pixel based table, but this cell isn't pixel based. + if (isPercentageBased && !isPercentageBasedSize(widthString) || + !isPercentageBased && !isPixelBasedSize(widthString)) { + // set the widthnumber to 0 + widthNumber = 0; + } + + return !isNaN(widthNumber) && widthNumber > 0 ? + widthNumber : getWidthFallback; + } + + // Attempt to get the css width from column representative cells. + function getWidths(tableGrid, isPercentageBased, table) { + + var cols = getColumnBlocks(tableGrid); + + var backups = Tools.map(cols, function(col) { + return getInnerEdge(col.colIndex, col.element).x; + }); + + var widths = []; + + for (var i = 0; i < cols.length; i++) { + var span = cols[i].element.hasAttribute('colspan') ? parseInt(cols[i].element.getAttribute('colspan'), 10) : 1; + // Deduce if the column has colspan of more than 1 + var width = span > 1 ? deduceSize(backups, i) : getWidth(cols[i].element, isPercentageBased, table); + // If everything's failed and we still don't have a width + width = width ? width : RESIZE_MINIMUM_WIDTH; + widths.push(width); + } + + return widths; + } + + // Attempt to get the pixel height from a cell. + function getPixelHeight(element) { + + var heightString = getStyleOrAttrib(element, 'height'); + + var heightNumber = parseInt(heightString, 10); + + if (isPercentageBasedSize(heightString)) { + heightNumber = 0; + } + + return !isNaN(heightNumber) && heightNumber > 0 ? + heightNumber : getComputedStyleSize(element, 'height'); + } + + // Attempt to get the css height from row representative cells. + function getPixelHeights(tableGrid) { + + var rows = getRowBlocks(tableGrid); + + var backups = Tools.map(rows, function(row) { + return getTopEdge(row.rowIndex, row.element).y; + }); + + var heights = []; + + for (var i = 0; i < rows.length; i++) { + var span = rows[i].element.hasAttribute('rowspan') ? parseInt(rows[i].element.getAttribute('rowspan'), 10) : 1; + + var height = span > 1 ? deduceSize(backups, i) : getPixelHeight(rows[i].element); + + height = height ? height : RESIZE_MINIMUM_HEIGHT; + heights.push(height); + } + + return heights; + } + + // Determine how much each column's css width will need to change. + // Sizes = result = pixels widths OR percentage based widths + function determineDeltas(sizes, column, step, min, isPercentageBased) { + + var result = sizes.slice(0); + + function generateZeros(array) { + return Tools.map(array, function() { + return 0; + }); + } + + function onOneColumn() { + var deltas; + if (isPercentageBased) { + // If we have one column in a percent based table, that column should be 100% of the width of the table. + deltas = [100 - result[0]]; + } else { + var newNext = Math.max(min, result[0] + step); + deltas = [newNext - result[0]]; + } + return deltas; + } + + function onLeftOrMiddle(index, next) { + + var startZeros = generateZeros(result.slice(0, index)); + var endZeros = generateZeros(result.slice(next + 1)); + var deltas; + + if (step >= 0) { + var newNext = Math.max(min, result[next] - step); + deltas = startZeros.concat([step, newNext - result[next]]).concat(endZeros); + } else { + var newThis = Math.max(min, result[index] + step); + var diffx = result[index] - newThis; + deltas = startZeros.concat([newThis - result[index], diffx]).concat(endZeros); + } + + return deltas; + } + + function onRight(previous, index) { + var startZeros = generateZeros(result.slice(0, index)); + var deltas; + + if (step >= 0) { + deltas = startZeros.concat([step]); + } else { + var size = Math.max(min, result[index] + step); + deltas = startZeros.concat([size - result[index]]); + } + + return deltas; + + } + + var deltas; + + if (sizes.length === 0) { // No Columns + deltas = []; + } else if (sizes.length === 1) { // One Column + deltas = onOneColumn(); + } else if (column === 0) { // Left Column + deltas = onLeftOrMiddle(0, 1); + } else if (column > 0 && column < sizes.length - 1) { // Middle Column + deltas = onLeftOrMiddle(column, column + 1); + } else if (column === sizes.length - 1) { // Right Column + deltas = onRight(column - 1, column); + } else { + deltas = []; + } + + return deltas; + } + + function total(start, end, measures) { + var r = 0; + for (var i = start; i < end; i++) { + r += measures[i]; + } + return r; + } + + // Combine cell's css widths to determine widths of colspan'd cells. + function recalculateWidths(tableGrid, widths) { + var allCells = tableGrid.getAllCells(); + return Tools.map(allCells, function(cell) { + var width = total(cell.colIndex, cell.colIndex + cell.colspan, widths); + return { + element: cell.element, + width: width, + colspan: cell.colspan + }; + }); + } + + // Combine cell's css heights to determine heights of rowspan'd cells. + function recalculateCellHeights(tableGrid, heights) { + var allCells = tableGrid.getAllCells(); + return Tools.map(allCells, function(cell) { + var height = total(cell.rowIndex, cell.rowIndex + cell.rowspan, heights); + return { + element: cell.element, + height: height, + rowspan: cell.rowspan + }; + }); + } + + // Calculate row heights. + function recalculateRowHeights(tableGrid, heights) { + var allRows = tableGrid.getAllRows(); + return Tools.map(allRows, function(row, i) { + return { + element: row.element, + height: heights[i] + }; + }); + } + + function isPercentageBasedSize(size) { + return percentageBasedSizeRegex.test(size); + } + + function isPixelBasedSize(size) { + return pixelBasedSizeRegex.test(size); + } + + // Adjust the width of the column of table at index, with delta. + function adjustWidth(table, delta, index) { + var tableDetails = getTableDetails(table); + var tableGrid = getTableGrid(tableDetails); + + function setSizes(newSizes, styleExtension) { + Tools.each(newSizes, function(cell) { + editor.dom.setStyle(cell.element, 'width', cell.width + styleExtension); + editor.dom.setAttrib(cell.element, 'width', null); + }); + } + + function getNewTablePercentWidth() { + return index < tableGrid.grid.maxCols - 1 ? getCurrentTablePercentWidth(table) : + getCurrentTablePercentWidth(table) + getTablePercentDelta(table, delta); + } + + function getNewTablePixelWidth() { + return index < tableGrid.grid.maxCols - 1 ? getComputedStyleSize(table, 'width') : + getComputedStyleSize(table, 'width') + delta; + } + + function setTableSize(newTableWidth, styleExtension, isPercentBased) { + if (index == tableGrid.grid.maxCols - 1 || !isPercentBased) { + editor.dom.setStyle(table, 'width', newTableWidth + styleExtension); + editor.dom.setAttrib(table, 'width', null); + } + } + + var percentageBased = isPercentageBasedSize(table.width) || + isPercentageBasedSize(table.style.width); + + var widths = getWidths(tableGrid, percentageBased, table); + + var step = percentageBased ? getCellPercentDelta(table, delta) : delta; + // TODO: change the min for percentage maybe? + var deltas = determineDeltas(widths, index, step, RESIZE_MINIMUM_WIDTH, percentageBased, table); + var newWidths = []; + + for (var i = 0; i < deltas.length; i++) { + newWidths.push(deltas[i] + widths[i]); + } + + var newSizes = recalculateWidths(tableGrid, newWidths); + var styleExtension = percentageBased ? '%' : 'px'; + var newTableWidth = percentageBased ? getNewTablePercentWidth() : + getNewTablePixelWidth(); + + editor.undoManager.transact(function() { + setSizes(newSizes, styleExtension); + setTableSize(newTableWidth, styleExtension, percentageBased); + }); + } + + // Adjust the height of the row of table at index, with delta. + function adjustHeight(table, delta, index) { + var tableDetails = getTableDetails(table); + var tableGrid = getTableGrid(tableDetails); + + var heights = getPixelHeights(tableGrid); + + var newHeights = [], newTotalHeight = 0; + + for (var i = 0; i < heights.length; i++) { + newHeights.push(i === index ? delta + heights[i] : heights[i]); + newTotalHeight += newTotalHeight[i]; + } + + var newCellSizes = recalculateCellHeights(tableGrid, newHeights); + var newRowSizes = recalculateRowHeights(tableGrid, newHeights); + + editor.undoManager.transact(function() { + + Tools.each(newRowSizes, function(row) { + editor.dom.setStyle(row.element, 'height', row.height + 'px'); + editor.dom.setAttrib(row.element, 'height', null); + }); + + Tools.each(newCellSizes, function(cell) { + editor.dom.setStyle(cell.element, 'height', cell.height + 'px'); + editor.dom.setAttrib(cell.element, 'height', null); + }); + + editor.dom.setStyle(table, 'height', newTotalHeight + 'px'); + editor.dom.setAttrib(table, 'height', null); + }); + } + + function scheduleDelayedDropEvent() { + delayDrop = setTimeout(function() { + drop(); + }, 200); + } + + function cancelDelayedDropEvent() { + clearTimeout(delayDrop); + } + + function getBlockerElement() { + var blocker = document.createElement('div'); + + blocker.setAttribute('style', 'margin: 0; ' + + 'padding: 0; ' + + 'position: fixed; ' + + 'left: 0px; ' + + 'top: 0px; ' + + 'height: 100%; ' + + 'width: 100%;'); + blocker.setAttribute('data-mce-bogus', 'all'); + + return blocker; + } + + function bindBlockerEvents(blocker, dragHandler) { + editor.dom.bind(blocker, 'mouseup', function() { + drop(); + }); + + editor.dom.bind(blocker, 'mousemove', function(e) { + cancelDelayedDropEvent(); + + if (dragging) { + dragHandler(e); + } + }); + + editor.dom.bind(blocker, 'mouseout', function() { + scheduleDelayedDropEvent(); + }); + + } + + function drop() { + editor.dom.remove(blockerElement); + + if (dragging) { + editor.dom.removeClass(dragBar, RESIZE_BAR_DRAGGING_CLASS); + dragging = false; + + var index, delta; + + if (isCol(dragBar)) { + var initialLeft = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE), 10); + var newLeft = editor.dom.getPos(dragBar).x; + index = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_COL_DATA_ATTRIBUTE), 10); + delta = isRtl() ? initialLeft - newLeft : newLeft - initialLeft; + adjustWidth(hoverTable, delta, index); + } else if (isRow(dragBar)) { + var initialTop = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE), 10); + var newTop = editor.dom.getPos(dragBar).y; + index = parseInt(editor.dom.getAttrib(dragBar, RESIZE_BAR_ROW_DATA_ATTRIBUTE), 10); + delta = newTop - initialTop; + adjustHeight(hoverTable, delta, index); + } + refreshBars(hoverTable); + editor.nodeChanged(); + } + } + + function setupBaseDrag(bar, dragHandler) { + blockerElement = blockerElement ? blockerElement : getBlockerElement(); + dragging = true; + editor.dom.addClass(bar, RESIZE_BAR_DRAGGING_CLASS); + dragBar = bar; + bindBlockerEvents(blockerElement, dragHandler); + editor.dom.add(getBody(), blockerElement); + } + + function isCol(target) { + return editor.dom.hasClass(target, RESIZE_BAR_COL_CLASS); + } + + function isRow(target) { + return editor.dom.hasClass(target, RESIZE_BAR_ROW_CLASS); + } + + function colDragHandler(event) { + lastX = lastX !== undefined ? lastX : event.clientX; // we need a firstX + var deltaX = event.clientX - lastX; + lastX = event.clientX; + var oldLeft = editor.dom.getPos(dragBar).x; + editor.dom.setStyle(dragBar, 'left', oldLeft + deltaX + 'px'); + } + + function rowDragHandler(event) { + lastY = lastY !== undefined ? lastY : event.clientY; + var deltaY = event.clientY - lastY; + lastY = event.clientY; + var oldTop = editor.dom.getPos(dragBar).y; + editor.dom.setStyle(dragBar, 'top', oldTop + deltaY + 'px'); + } + + function setupColDrag(bar) { + lastX = undefined; + setupBaseDrag(bar, colDragHandler); + } + + function setupRowDrag(bar) { + lastY = undefined; + setupBaseDrag(bar, rowDragHandler); + } + + function mouseDownHandler(e) { + var target = e.target, body = editor.getBody(); + + // Since this code is working on global events we need to work on a global hoverTable state + // and make sure that the state is correct according to the events fired + if (!editor.$.contains(body, hoverTable) && hoverTable !== body) { + return; + } + + if (isCol(target)) { + e.preventDefault(); + var initialLeft = editor.dom.getPos(target).x; + editor.dom.setAttrib(target, RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE, initialLeft); + setupColDrag(target); + } else if (isRow(target)) { + e.preventDefault(); + var initialTop = editor.dom.getPos(target).y; + editor.dom.setAttrib(target, RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE, initialTop); + setupRowDrag(target); + } + } + + editor.on('init', function() { + // Needs to be like this for inline mode, editor.on does not bind to elements in the document body otherwise + editor.dom.bind(getBody(), 'mousedown', mouseDownHandler); + }); + + // If we're updating the table width via the old mechanic, we need to update the constituent cells' widths/heights too. + editor.on('ObjectResized', function(e) { + var table = e.target; + if (table.nodeName === 'TABLE') { + var newCellSizes = []; + Tools.each(table.rows, function(row) { + Tools.each(row.cells, function(cell) { + var width = editor.dom.getStyle(cell, 'width', true); + newCellSizes.push({ + cell: cell, + width: width + }); + }); + }); + Tools.each(newCellSizes, function(newCellSize) { + editor.dom.setStyle(newCellSize.cell, 'width', newCellSize.width); + editor.dom.setAttrib(newCellSize.cell, 'width', null); + }); + } + }); + + editor.on('mouseover', function(e) { + if (!dragging) { + var tableElement = editor.dom.getParent(e.target, 'table'); + + if (e.target.nodeName === 'TABLE' || tableElement) { + hoverTable = tableElement; + refreshBars(tableElement); + } + } + }); + + // Prevents the user from moving the caret inside the resize bars on Chrome + // Only does it on arrow keys since clearBars might be an epxensive operation + // since it's querying the DOM + editor.on('keydown', function(e) { + switch (e.keyCode) { + case VK.LEFT: + case VK.RIGHT: + case VK.UP: + case VK.DOWN: + clearBars(); + break; + } + }); + + editor.on('remove', function() { + clearBars(); + editor.dom.unbind(getBody(), 'mousedown', mouseDownHandler); + }); + + return { + adjustWidth: adjustWidth, + adjustHeight: adjustHeight, + clearBars: clearBars, + drawBars: drawBars, + determineDeltas: determineDeltas, + getTableGrid: getTableGrid, + getTableDetails: getTableDetails, + getWidths: getWidths, + getPixelHeights: getPixelHeights, + isPercentageBasedSize: isPercentageBasedSize, + isPixelBasedSize: isPixelBasedSize, + recalculateWidths: recalculateWidths, + recalculateCellHeights: recalculateCellHeights, + recalculateRowHeights: recalculateRowHeights + }; + }; +}); + // Included from: js/tinymce/plugins/table/classes/Plugin.js /** * Plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -88230,15 +96885,21 @@ define("tinymce/tableplugin/Plugin", [ "tinymce/tableplugin/Quirks", "tinymce/tableplugin/CellSelection", "tinymce/tableplugin/Dialogs", + "tinymce/tableplugin/ResizeBars", "tinymce/util/Tools", "tinymce/dom/TreeWalker", "tinymce/Env", "tinymce/PluginManager" -], function(TableGrid, Quirks, CellSelection, Dialogs, Tools, TreeWalker, Env, PluginManager) { +], function(TableGrid, Quirks, CellSelection, Dialogs, ResizeBars, Tools, TreeWalker, Env, PluginManager) { var each = Tools.each; function Plugin(editor) { - var clipboardRows, self = this, dialogs = new Dialogs(editor); + var clipboardRows, self = this, dialogs = new Dialogs(editor), resizeBars; + + if (editor.settings.object_resizing && editor.settings.table_resize_bars !== false && + (editor.settings.object_resizing === true || editor.settings.object_resizing === 'table')) { + resizeBars = ResizeBars(editor); + } function cmd(command) { return function() { @@ -88255,7 +96916,7 @@ define("tinymce/tableplugin/Plugin", [ html += '
    '; for (x = 0; x < cols; x++) { - html += ''; + html += ''; } html += ''; @@ -88269,6 +96930,18 @@ define("tinymce/tableplugin/Plugin", [ tableElm = editor.dom.get('__mce'); editor.dom.setAttrib(tableElm, 'id', null); + editor.$('tr', tableElm).each(function(index, row) { + editor.fire('newrow', { + node: row + }); + + editor.$('th,td', row).each(function(index, cell) { + editor.fire('newcell', { + node: cell + }); + }); + }); + editor.dom.setAttribs(tableElm, editor.settings.table_default_attributes || {}); editor.dom.setStyles(tableElm, editor.settings.table_default_styles || {}); }); @@ -88276,9 +96949,32 @@ define("tinymce/tableplugin/Plugin", [ return tableElm; } - function handleDisabledState(ctrl, selector) { + function handleDisabledState(ctrl, selector, sameParts) { function bindStateListener() { - ctrl.disabled(!editor.dom.getParent(editor.selection.getStart(), selector)); + var selectedElm, selectedCells, parts = {}, sum = 0, state; + + selectedCells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]'); + selectedElm = selectedCells[0]; + if (!selectedElm) { + selectedElm = editor.selection.getStart(); + } + + // Make sure that we don't have a selection inside thead and tbody at the same time + if (sameParts && selectedCells.length > 0) { + each(selectedCells, function(cell) { + return parts[cell.parentNode.parentNode.nodeName] = 1; + }); + + each(parts, function(value) { + sum += value; + }); + + state = sum !== 1; + } else { + state = !editor.dom.getParent(selectedElm, selector); + } + + ctrl.disabled(state); editor.selection.selectorChanged(selector, function(state) { ctrl.disabled(!state); @@ -88302,6 +96998,11 @@ define("tinymce/tableplugin/Plugin", [ handleDisabledState(this, 'td,th'); } + function postRenderMergeCell() { + /*jshint validthis:true*/ + handleDisabledState(this, 'td,th', true); + } + function generateTableGrid() { var html = ''; @@ -88449,7 +97150,7 @@ define("tinymce/tableplugin/Plugin", [ context: 'table', menu: [ {text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell}, - {text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderCell}, + {text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderMergeCell}, {text: 'Split cell', onclick: cmd('mceTableSplitCells'), onPostRender: postRenderCell} ] }); @@ -88511,6 +97212,21 @@ define("tinymce/tableplugin/Plugin", [ editor.on('Init', function() { self.cellSelection = new CellSelection(editor); + self.resizeBars = resizeBars; + }); + + editor.on('PreInit', function() { + // Remove internal data attributes + editor.serializer.addAttributeFilter( + 'data-mce-cell-padding,data-mce-border,data-mce-border-color', + function(nodes, name) { + + var i = nodes.length; + + while (i--) { + nodes[i].attr(name, null); + } + }); }); // Register action commands @@ -88524,7 +97240,7 @@ define("tinymce/tableplugin/Plugin", [ cell = editor.dom.getParent(editor.selection.getStart(), 'th,td'); - if (!editor.dom.select('td.mce-item-selected,th.mce-item-selected').length) { + if (!editor.dom.select('td[data-mce-selected],th[data-mce-selected]').length) { dialogs.merge(grid, cell); } else { grid.merge(); @@ -88572,6 +97288,9 @@ define("tinymce/tableplugin/Plugin", [ }, mceTableDelete: function(grid) { + if (resizeBars) { + resizeBars.clearBars(); + } grid.deleteTable(); } }, function(func, name) { @@ -88600,6 +97319,119 @@ define("tinymce/tableplugin/Plugin", [ }); }); + function addButtons() { + editor.addButton('tableprops', { + title: 'Table properties', + onclick: dialogs.tableProps, + icon: 'table' + }); + + editor.addButton('tabledelete', { + title: 'Delete table', + onclick: cmd('mceTableDelete') + }); + + editor.addButton('tablecellprops', { + title: 'Cell properties', + onclick: cmd('mceTableCellProps') + }); + + editor.addButton('tablemergecells', { + title: 'Merge cells', + onclick: cmd('mceTableMergeCells') + }); + + editor.addButton('tablesplitcells', { + title: 'Split cell', + onclick: cmd('mceTableSplitCells') + }); + + editor.addButton('tableinsertrowbefore', { + title: 'Insert row before', + onclick: cmd('mceTableInsertRowBefore') + }); + + editor.addButton('tableinsertrowafter', { + title: 'Insert row after', + onclick: cmd('mceTableInsertRowAfter') + }); + + editor.addButton('tabledeleterow', { + title: 'Delete row', + onclick: cmd('mceTableDeleteRow') + }); + + editor.addButton('tablerowprops', { + title: 'Row properties', + onclick: cmd('mceTableRowProps') + }); + + editor.addButton('tablecutrow', { + title: 'Cut row', + onclick: cmd('mceTableCutRow') + }); + + editor.addButton('tablecopyrow', { + title: 'Copy row', + onclick: cmd('mceTableCopyRow') + }); + + editor.addButton('tablepasterowbefore', { + title: 'Paste row before', + onclick: cmd('mceTablePasteRowBefore') + }); + + editor.addButton('tablepasterowafter', { + title: 'Paste row after', + onclick: cmd('mceTablePasteRowAfter') + }); + + editor.addButton('tableinsertcolbefore', { + title: 'Insert column before', + onclick: cmd('mceTableInsertColBefore') + }); + + editor.addButton('tableinsertcolafter', { + title: 'Insert column after', + onclick: cmd('mceTableInsertColAfter') + }); + + editor.addButton('tabledeletecol', { + title: 'Delete column', + onclick: cmd('mceTableDeleteCol') + }); + + } + + function isTable(table) { + + var selectorMatched = editor.dom.is(table, 'table') && editor.getBody().contains(table); + + return selectorMatched; + } + + function addToolbars() { + var toolbarItems = editor.settings.table_toolbar; + + if (toolbarItems === '' || toolbarItems === false) { + return; + } + + if (!toolbarItems) { + toolbarItems = 'tableprops tabledelete | ' + + 'tableinsertrowbefore tableinsertrowafter tabledeleterow | ' + + 'tableinsertcolbefore tableinsertcolafter tabledeletecol'; + } + + editor.addContextToolbar( + isTable, + toolbarItems + ); + } + + addButtons(); + addToolbars(); + // Enable tab key cell navigation if (editor.settings.table_tab_navigation !== false) { editor.on('keydown', function(e) { @@ -88643,8 +97475,8 @@ define("tinymce-template", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -88659,7 +97491,12 @@ tinymce.PluginManager.add('template', function(editor) { return function() { var templateList = editor.settings.templates; - if (typeof(templateList) == "string") { + if (typeof templateList == "function") { + templateList(callback); + return; + } + + if (typeof templateList == "string") { tinymce.util.XHR.send({ url: templateList, success: function(text) { @@ -88676,7 +97513,8 @@ tinymce.PluginManager.add('template', function(editor) { var win, values = [], templateHtml; if (!templateList || templateList.length === 0) { - editor.windowManager.alert('No templates defined'); + var message = editor.translate('No templates defined.'); + editor.notificationManager.open({text: message, type: 'info'}); return; } @@ -88815,7 +97653,7 @@ tinymce.PluginManager.add('template', function(editor) { each(dom.select('*', e), function(e) { each(vl, function(v, k) { if (dom.hasClass(e, k)) { - if (typeof(vl[k]) == 'function') { + if (typeof vl[k] == 'function') { vl[k](e); } } @@ -88825,9 +97663,11 @@ tinymce.PluginManager.add('template', function(editor) { function replaceTemplateValues(html, templateValuesOptionName) { each(editor.getParam(templateValuesOptionName), function(v, k) { - if (typeof(v) != 'function') { - html = html.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v); + if (typeof v == 'function') { + v = v(k); } + + html = html.replace(new RegExp('\\{\\$' + k + '\\}', 'g'), v); }); return html; @@ -88903,6 +97743,7 @@ tinymce.PluginManager.add('template', function(editor) { }); }); + }).apply(root, arguments); }); }(this)); @@ -88913,8 +97754,8 @@ define("tinymce-textcolor", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -89071,15 +97912,19 @@ tinymce.PluginManager.add('textcolor', function(editor) { } function applyFormat(format, value) { - editor.focus(); - editor.formatter.apply(format, {value: value}); - editor.nodeChanged(); + editor.undoManager.transact(function() { + editor.focus(); + editor.formatter.apply(format, {value: value}); + editor.nodeChanged(); + }); } function removeFormat(format) { - editor.focus(); - editor.formatter.remove(format, {value: null}, null, true); - editor.nodeChanged(); + editor.undoManager.transact(function() { + editor.focus(); + editor.formatter.remove(format, {value: null}, null, true); + editor.nodeChanged(); + }); } function onPanelClick(e) { @@ -89091,6 +97936,12 @@ tinymce.PluginManager.add('textcolor', function(editor) { applyFormat(buttonCtrl.settings.format, value); } + function resetColor() { + buttonCtrl.hidePanel(); + buttonCtrl.resetColor(); + removeFormat(buttonCtrl.settings.format); + } + function setDivColor(div, value) { div.style.background = value; div.setAttribute('data-mce-color', value); @@ -89137,12 +97988,10 @@ tinymce.PluginManager.add('textcolor', function(editor) { this.lastId = e.target.id; if (value == 'transparent') { - removeFormat(buttonCtrl.settings.format); - buttonCtrl.hidePanel(); - return; + resetColor(); + } else { + selectColor(value); } - - selectColor(value); } else if (value !== null) { buttonCtrl.hidePanel(); } @@ -89153,6 +98002,8 @@ tinymce.PluginManager.add('textcolor', function(editor) { if (self._color) { applyFormat(self.settings.format, self._color); + } else { + removeFormat(self.settings.format); } } @@ -89194,8 +98045,8 @@ define("tinymce-textpattern", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -89470,8 +98321,8 @@ define("tinymce-visualblocks", ["tinymce"], function() { /** * plugin.js * - * Copyright 2012, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -89565,8 +98416,8 @@ define("tinymce-visualchars", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -89579,10 +98430,45 @@ tinymce.PluginManager.add('visualchars', function(editor) { function toggleVisualChars(addBookmark) { var node, nodeList, i, body = editor.getBody(), nodeValue, selection = editor.selection, div, bookmark; + var charMap, visualCharsRegExp; + + charMap = { + '\u00a0': 'nbsp', + '\u00ad': 'shy' + }; + + function wrapCharWithSpan(value) { + return '' + value + ''; + } + + function compileCharMapToRegExp() { + var key, regExp = ''; + + for (key in charMap) { + regExp += key; + } + + return new RegExp('[' + regExp + ']', 'g'); + } + + function compileCharMapToCssSelector() { + var key, selector = ''; + + for (key in charMap) { + if (selector) { + selector += ','; + } + + selector += 'span.mce-' + charMap[key]; + } + + return selector; + } state = !state; self.state = state; editor.fire('VisualChars', {state: state}); + visualCharsRegExp = compileCharMapToRegExp(); if (addBookmark) { bookmark = selection.getBookmark(); @@ -89591,14 +98477,14 @@ tinymce.PluginManager.add('visualchars', function(editor) { if (state) { nodeList = []; tinymce.walk(body, function(n) { - if (n.nodeType == 3 && n.nodeValue && n.nodeValue.indexOf('\u00a0') != -1) { + if (n.nodeType == 3 && n.nodeValue && visualCharsRegExp.test(n.nodeValue)) { nodeList.push(n); } }, 'childNodes'); for (i = 0; i < nodeList.length; i++) { nodeValue = nodeList[i].nodeValue; - nodeValue = nodeValue.replace(/(\u00a0)/g, '$1'); + nodeValue = nodeValue.replace(visualCharsRegExp, wrapCharWithSpan); div = editor.dom.create('div', null, nodeValue); while ((node = div.lastChild)) { @@ -89608,7 +98494,7 @@ tinymce.PluginManager.add('visualchars', function(editor) { editor.dom.remove(nodeList[i]); } } else { - nodeList = editor.dom.select('span.mce-nbsp', body); + nodeList = editor.dom.select(compileCharMapToCssSelector(), body); for (i = nodeList.length - 1; i >= 0; i--) { editor.dom.remove(nodeList[i], 1); @@ -89662,8 +98548,8 @@ define("tinymce-wordcount", ["tinymce"], function() { /** * plugin.js * - * Copyright, Moxiecode Systems AB * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved * * License: http://www.tinymce.com/license * Contributing: http://www.tinymce.com/contributing @@ -89687,7 +98573,7 @@ tinymce.PluginManager.add('wordcount', function(editor) { var statusbar = editor.theme.panel && editor.theme.panel.find('#statusbar')[0]; if (statusbar) { - window.setTimeout(function() { + tinymce.util.Delay.setEditorTimeout(editor, function() { statusbar.insert({ type: 'label', name: 'wordcount', @@ -89733,24 +98619,332 @@ tinymce.PluginManager.add('wordcount', function(editor) { }); }(this)); +(function(root) { +define("tinymce-compat3x", ["tinymce"], function() { + return (function() { +/** + * plugin.js + * + * Released under LGPL License. + * Copyright (c) 1999-2015 Ephox Corp. All rights reserved + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/*global tinymce:true, console:true */ +/*eslint no-console:0, new-cap:0 */ + +/** + * This plugin adds missing events form the 4.x API back. Not every event is + * properly supported but most things should work. + * + * Unsupported things: + * - No editor.onEvent + * - Can't cancel execCommands with beforeExecCommand + */ +(function(tinymce) { + var reported; + + function noop() { + } + + function log(apiCall) { + if (!reported && window && window.console) { + reported = true; + console.log("Deprecated TinyMCE API call: " + apiCall); + } + } + + function Dispatcher(target, newEventName, argsMap, defaultScope) { + target = target || this; + + if (!newEventName) { + this.add = this.addToTop = this.remove = this.dispatch = noop; + return; + } + + this.add = function(callback, scope, prepend) { + log('.on' + newEventName + ".add(..)"); + + // Convert callback({arg1:x, arg2:x}) -> callback(arg1, arg2) + function patchedEventCallback(e) { + var callbackArgs = []; + + if (typeof argsMap == "string") { + argsMap = argsMap.split(" "); + } + + if (argsMap && typeof argsMap != "function") { + for (var i = 0; i < argsMap.length; i++) { + callbackArgs.push(e[argsMap[i]]); + } + } + + if (typeof argsMap == "function") { + callbackArgs = argsMap(newEventName, e, target); + if (!callbackArgs) { + return; + } + } + + if (!argsMap) { + callbackArgs = [e]; + } + + callbackArgs.unshift(defaultScope || target); + + if (callback.apply(scope || defaultScope || target, callbackArgs) === false) { + e.stopImmediatePropagation(); + } + } + + target.on(newEventName, patchedEventCallback, prepend); + + return patchedEventCallback; + }; + + this.addToTop = function(callback, scope) { + this.add(callback, scope, true); + }; + + this.remove = function(callback) { + return target.off(newEventName, callback); + }; + + this.dispatch = function() { + target.fire(newEventName); + + return true; + }; + } + + tinymce.util.Dispatcher = Dispatcher; + tinymce.onBeforeUnload = new Dispatcher(tinymce, "BeforeUnload"); + tinymce.onAddEditor = new Dispatcher(tinymce, "AddEditor", "editor"); + tinymce.onRemoveEditor = new Dispatcher(tinymce, "RemoveEditor", "editor"); + + tinymce.util.Cookie = { + get: noop, getHash: noop, remove: noop, set: noop, setHash: noop + }; + + function patchEditor(editor) { + function patchEditorEvents(oldEventNames, argsMap) { + tinymce.each(oldEventNames.split(" "), function(oldName) { + editor["on" + oldName] = new Dispatcher(editor, oldName, argsMap); + }); + } + + function convertUndoEventArgs(type, event, target) { + return [ + event.level, + target + ]; + } + + function filterSelectionEvents(needsSelection) { + return function(type, e) { + if ((!e.selection && !needsSelection) || e.selection == needsSelection) { + return [e]; + } + }; + } + + if (editor.controlManager) { + return; + } + + function cmNoop() { + var obj = {}, methods = 'add addMenu addSeparator collapse createMenu destroy displayColor expand focus ' + + 'getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark ' + + 'postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex ' + + 'setActive setAriaProperty setColor setDisabled setSelected setState showMenu update'; + + log('editor.controlManager.*'); + + function _noop() { + return cmNoop(); + } + + tinymce.each(methods.split(' '), function(method) { + obj[method] = _noop; + }); + + return obj; + } + + editor.controlManager = { + buttons: {}, + + setDisabled: function(name, state) { + log("controlManager.setDisabled(..)"); + + if (this.buttons[name]) { + this.buttons[name].disabled(state); + } + }, + + setActive: function(name, state) { + log("controlManager.setActive(..)"); + + if (this.buttons[name]) { + this.buttons[name].active(state); + } + }, + + onAdd: new Dispatcher(), + onPostRender: new Dispatcher(), + + add: function(obj) { + return obj; + }, + createButton: cmNoop, + createColorSplitButton: cmNoop, + createControl: cmNoop, + createDropMenu: cmNoop, + createListBox: cmNoop, + createMenuButton: cmNoop, + createSeparator: cmNoop, + createSplitButton: cmNoop, + createToolbar: cmNoop, + createToolbarGroup: cmNoop, + destroy: noop, + get: noop, + setControlType: cmNoop + }; + + patchEditorEvents("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate", "editor"); + patchEditorEvents("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"); + patchEditorEvents("BeforeExecCommand ExecCommand", "command ui value args"); // args.terminate not supported + patchEditorEvents("PreProcess PostProcess LoadContent SaveContent Change"); + patchEditorEvents("BeforeSetContent BeforeGetContent SetContent GetContent", filterSelectionEvents(false)); + patchEditorEvents("SetProgressState", "state time"); + patchEditorEvents("VisualAid", "element hasVisual"); + patchEditorEvents("Undo Redo", convertUndoEventArgs); + + patchEditorEvents("NodeChange", function(type, e) { + return [ + editor.controlManager, + e.element, + editor.selection.isCollapsed(), + e + ]; + }); + + var originalAddButton = editor.addButton; + editor.addButton = function(name, settings) { + var originalOnPostRender; + + function patchedPostRender() { + editor.controlManager.buttons[name] = this; + + if (originalOnPostRender) { + return originalOnPostRender.call(this); + } + } + + for (var key in settings) { + if (key.toLowerCase() === "onpostrender") { + originalOnPostRender = settings[key]; + settings.onPostRender = patchedPostRender; + } + } + + if (!originalOnPostRender) { + settings.onPostRender = patchedPostRender; + } + + if (settings.title) { + settings.title = tinymce.i18n.translate((editor.settings.language || "en") + "." + settings.title); + } + + return originalAddButton.call(this, name, settings); + }; + + editor.on('init', function() { + var undoManager = editor.undoManager, selection = editor.selection; + + undoManager.onUndo = new Dispatcher(editor, "Undo", convertUndoEventArgs, null, undoManager); + undoManager.onRedo = new Dispatcher(editor, "Redo", convertUndoEventArgs, null, undoManager); + undoManager.onBeforeAdd = new Dispatcher(editor, "BeforeAddUndo", null, undoManager); + undoManager.onAdd = new Dispatcher(editor, "AddUndo", null, undoManager); + + selection.onBeforeGetContent = new Dispatcher(editor, "BeforeGetContent", filterSelectionEvents(true), selection); + selection.onGetContent = new Dispatcher(editor, "GetContent", filterSelectionEvents(true), selection); + selection.onBeforeSetContent = new Dispatcher(editor, "BeforeSetContent", filterSelectionEvents(true), selection); + selection.onSetContent = new Dispatcher(editor, "SetContent", filterSelectionEvents(true), selection); + }); + + editor.on('BeforeRenderUI', function() { + var windowManager = editor.windowManager; + + windowManager.onOpen = new Dispatcher(); + windowManager.onClose = new Dispatcher(); + windowManager.createInstance = function(className, a, b, c, d, e) { + log("windowManager.createInstance(..)"); + + var constr = tinymce.resolve(className); + return new constr(a, b, c, d, e); + }; + }); + } + + tinymce.on('SetupEditor', patchEditor); + tinymce.PluginManager.add("compat3x", patchEditor); + + tinymce.addI18n = function(prefix, o) { + var I18n = tinymce.util.I18n, each = tinymce.each; + + if (typeof prefix == "string" && prefix.indexOf('.') === -1) { + I18n.add(prefix, o); + return; + } + + if (!tinymce.is(prefix, 'string')) { + each(prefix, function(o, lc) { + each(o, function(o, g) { + each(o, function(o, k) { + if (g === 'common') { + I18n.data[lc + '.' + k] = o; + } else { + I18n.data[lc + '.' + g + '.' + k] = o; + } + }); + }); + }); + } else { + each(o, function(o, k) { + I18n.data[prefix + '.' + k] = o; + }); + } + }; +})(tinymce); + + + }).apply(root, arguments); +}); +}(this)); + /* TinyMCE pattern. * * Options: - * relatedItems(object): Related items pattern options. ({ attributes: ["UID", "Title", "Description", "getURL", "Type", "path", "ModificationDate"], batchSize: 20, basePath: "/", vocabularyUrl: null, width: 500, maximumSelectionSize: 1, placeholder: "Search for item on site..." }) + * relatedItems(object): Related items pattern options. ({ attributes: ["UID", "Title", "Description", "getURL", "portal_type", "path", "ModificationDate"], batchSize: 20, basePath: "/", vocabularyUrl: null, width: 500, maximumSelectionSize: 1, placeholder: "Search for item on site..." }) * upload(object): Upload pattern options. ({ attributes: look at upload pattern for getting the options list }) * text(object): Translation strings ({ insertBtn: "Insert", cancelBtn: "Cancel", insertHeading: "Insert link", title: "Title", internal: "Internal", external: "External", email: "Email", anchor: "Anchor", subject: "Subject" image: "Image", imageAlign: "Align", scale: "Size", alt: "Alternative Text", externalImage: "External Image URI"}) * scales(string): TODO: is this even used ('Listing (16x16):listing,Icon (32x32):icon,Tile (64x64):tile,Thumb (128x128):thumb,Mini (200x200):mini,Preview (400x400):preview,Large (768x768):large') * targetList(array): TODO ([ {text: "Open in this window / frame", value: ""}, {text: "Open in new window", value: "_blank"}, {text: "Open in parent window / frame", value: "_parent"}, {text: "Open in top frame (replaces all frames)", value: "_top"}]) - * imageTypes(string): TODO ('Image') + * imageTypes(string): TODO ('Image') * folderTypes(string): TODO ('Folder,Plone Site') * linkableTypes(string): TODO ('Document,Event,File,Folder,Image,News Item,Topic') * tiny(object): TODO ({ plugins: [ "advlist autolink lists charmap print preview anchor", "usearchreplace visualblocks code fullscreen autoresize", "insertdatetime media table contextmenu paste plonelink ploneimage" ], menubar: "edit table format tools view insert", -toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | unlink plonelink ploneimage", autoresize_max_height: 1500 }) + toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | unlink plonelink ploneimage", autoresize_max_height: 1500 }) * prependToUrl(string): Text to prepend to generated internal urls. ('') * appendToUrl(string): Text to append to generated internal urls. ('') * prependToScalePart(string): Text to prepend to generated image scale url part. ('/imagescale/') * appendToScalePart(string): Text to append to generated image scale url part. ('') * linkAttribute(string): Ajax response data attribute to use for url. ('path') + * defaultScale(string): Scale name to default to. ('Original') + * inline(boolean): Show tinyMCE editor inline instead in an iframe. Use this on textarea inputs. If you want to use this pattern directly on a contenteditable, pass "inline: true" to the "tiny" options object. (false) * * Documentation: * # Default @@ -89761,6 +98955,10 @@ toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignrig * * {{ example-2 }} * + * # Inline editing + * + * {{ example-3 }} + * * Example: example-1 *
    * + * "upload": {"baseUrl": "/", "relativePath": "upload"} + * }'> + * + * + * Example: example-3 + *
    + * * * */ -/* global alert:true */ - - define('mockup-patterns-tinymce',[ 'jquery', 'underscore', - 'mockup-patterns-base', - 'mockup-patterns-relateditems', - 'mockup-patterns-modal', + 'pat-base', 'tinymce', - 'mockup-patterns-autotoc', 'text!mockup-patterns-tinymce-url/templates/result.xml', 'text!mockup-patterns-tinymce-url/templates/selection.xml', 'mockup-utils', 'mockup-patterns-tinymce-url/js/links', + 'mockup-i18n', 'translate', - 'tinymce-modern-theme', 'tinymce-advlist', 'tinymce-anchor', 'tinymce-autolink', - 'tinymce-autoresize', 'tinymce-autosave', 'tinymce-bbcode', 'tinymce-charmap', - 'tinymce-code', 'tinymce-colorpicker', 'tinymce-contextmenu', 'tinymce-directionality', - 'tinymce-emoticons', 'tinymce-fullpage', 'tinymce-fullscreen', 'tinymce-hr', - 'tinymce-image', 'tinymce-importcss', 'tinymce-insertdatetime', 'tinymce-layer', - 'tinymce-legacyoutput', 'tinymce-link', 'tinymce-lists', 'tinymce-media', - 'tinymce-nonbreaking', 'tinymce-noneditable', 'tinymce-pagebreak', 'tinymce-paste', - 'tinymce-preview', 'tinymce-print', 'tinymce-save', 'tinymce-searchreplace', - 'tinymce-spellchecker', 'tinymce-tabfocus', 'tinymce-table', 'tinymce-template', - 'tinymce-textcolor', 'tinymce-textpattern', 'tinymce-visualblocks', 'tinymce-visualchars', - 'tinymce-wordcount' + 'tinymce-modern-theme', + 'tinymce-advlist', + 'tinymce-anchor', + 'tinymce-autolink', + 'tinymce-autoresize', + 'tinymce-autosave', + 'tinymce-bbcode', + 'tinymce-charmap', + 'tinymce-code', + 'tinymce-colorpicker', + 'tinymce-contextmenu', + 'tinymce-directionality', + 'tinymce-emoticons', + 'tinymce-fullpage', + 'tinymce-fullscreen', + 'tinymce-hr', + 'tinymce-image', + 'tinymce-importcss', + 'tinymce-insertdatetime', + 'tinymce-layer', + 'tinymce-legacyoutput', + 'tinymce-link', + 'tinymce-lists', + 'tinymce-media', + 'tinymce-nonbreaking', + 'tinymce-noneditable', + 'tinymce-pagebreak', + 'tinymce-paste', + 'tinymce-preview', + 'tinymce-print', + 'tinymce-save', + 'tinymce-searchreplace', + 'tinymce-spellchecker', + 'tinymce-tabfocus', + 'tinymce-table', + 'tinymce-template', + 'tinymce-textcolor', + 'tinymce-textpattern', + 'tinymce-visualblocks', + 'tinymce-visualchars', + 'tinymce-wordcount', + 'tinymce-compat3x' ], function($, _, - Base, RelatedItems, Modal, tinymce, - AutoTOC, ResultTemplate, SelectionTemplate, - utils, LinkModal, _t) { + Base, tinymce, + ResultTemplate, SelectionTemplate, + utils, LinkModal, I18n, _t) { 'use strict'; var TinyMCE = Base.extend({ name: 'tinymce', + trigger: '.pat-tinymce', + parser: 'mockup', defaults: { upload: { uploadMultiple: false, @@ -89821,7 +99056,7 @@ define('mockup-patterns-tinymce',[ }, relatedItems: { // UID attribute is required here since we're working with related items - attributes: ['UID', 'Title', 'Description', 'getURL', 'Type', 'path', 'ModificationDate'], + attributes: ['UID', 'Title', 'portal_type', 'path','getURL', 'getIcon','is_folderish','review_state'], batchSize: 20, basePath: '/', vocabularyUrl: null, @@ -89835,15 +99070,15 @@ define('mockup-patterns-tinymce',[ insertHeading: _t('Insert link'), title: _t('Title'), internal: _t('Internal'), - external: _t('External'), - email: _t('Email'), + external: _t('External URL (can be relative within this site or absolute if it starts with http:// or https://)'), + email: _t('Email Address'), anchor: _t('Anchor'), - subject: _t('Subject'), + subject: _t('Email Subject (optional)'), image: _t('Image'), imageAlign: _t('Align'), scale: _t('Size'), alt: _t('Alternative Text'), - externalImage: _t('External Image URI') + externalImage: _t('External Image URL (can be relative within this site or absolute if it starts with http:// or https://)') }, // URL generation options loadingBaseUrl: '../../../bower_components/tinymce-builded/js/tinymce/', @@ -89852,6 +99087,8 @@ define('mockup-patterns-tinymce',[ linkAttribute: 'path', // attribute to get link value from data prependToScalePart: '/imagescale/', // some value here is required to be able to parse scales back appendToScalePart: '', + appendToOriginalScalePart: '', + defaultScale: 'large', scales: _t('Listing (16x16):listing,Icon (32x32):icon,Tile (64x64):tile,' + 'Thumb (128x128):thumb,Mini (200x200):mini,Preview (400x400):preview,' + 'Large (768x768):large'), @@ -89861,39 +99098,36 @@ define('mockup-patterns-tinymce',[ {text: _t('Open in parent window / frame'), value: '_parent'}, {text: _t('Open in top frame (replaces all frames)'), value: '_top'} ], - imageTypes: 'Image', - folderTypes: 'Folder,Plone Site', - linkableTypes: 'Document,Event,File,Folder,Image,News Item,Topic', + imageTypes: ['Image'], + folderTypes: ['Folder', 'Plone Site'], tiny: { - 'content_css': '../../../bower_components/tinymce-builded/js/tinymce/skins/lightgray/content.min.css', + 'content_css': '++resource++plone.app.widgets-tinymce-content.min.css', theme: '-modern', - plugins: [ - '-advlist -autolink -lists -charmap -print -preview -anchor ' + - '-searchreplace -visualblocks -code -fullscreen -autoresize ' + - '-insertdatetime -media -table -contextmenu -paste -plonelink -ploneimage' - ], + plugins: ['advlist', 'autolink', 'lists', 'charmap', 'print', 'preview', 'anchor', 'searchreplace', + 'visualblocks', 'code', 'fullscreen', 'insertdatetime', 'media', 'table', 'contextmenu', + 'paste', 'plonelink', 'ploneimage'], menubar: 'edit table format tools view insert', toolbar: 'undo redo | styleselect | bold italic | ' + 'alignleft aligncenter alignright alignjustify | ' + 'bullist numlist outdent indent | ' + 'unlink plonelink ploneimage', - 'autoresize_max_height': 1500 - } + //'autoresize_max_height': 900, + 'height': 400 + }, + inline: false }, addLinkClicked: function() { var self = this; if (self.linkModal === null) { var $el = $('
    ').insertAfter(self.$el); + var linkTypes = ['internal', 'upload', 'external', 'email', 'anchor']; + if(!self.options.upload){ + linkTypes.splice(1, 1); + } self.linkModal = new LinkModal($el, $.extend(true, {}, self.options, { tinypattern: self, - linkTypes: [ - 'internal', - 'upload', - 'external', - 'email', - 'anchor' - ] + linkTypes: linkTypes }) ); self.linkModal.show(); @@ -89905,20 +99139,24 @@ define('mockup-patterns-tinymce',[ addImageClicked: function() { var self = this; if (self.imageModal === null) { + var linkTypes = ['image', 'uploadImage', 'externalImage']; + if(!self.options.upload){ + linkTypes.splice(1, 1); + } var options = $.extend(true, {}, self.options, { tinypattern: self, - linkTypes: ['image', 'uploadImage', 'externalImage'], + linkTypes: linkTypes, initialLinkType: 'image', text: { insertHeading: _t('Insert Image') }, relatedItems: { baseCriteria: [{ - i: 'Type', + i: 'portal_type', o: 'plone.app.querystring.operation.list.contains', - v: self.options.imageTypes.split(',').concat(self.options.folderTypes.split(',')) + v: self.options.imageTypes.concat(self.options.folderTypes) }], - selectableTypes: self.options.imageTypes.split(','), + selectableTypes: self.options.imageTypes, resultTemplate: ResultTemplate, selectionTemplate: SelectionTemplate } @@ -89936,12 +99174,20 @@ define('mockup-patterns-tinymce',[ var part = data[self.options.linkAttribute]; return self.options.prependToUrl + part + self.options.appendToUrl; }, - generateImageUrl: function(data, scale) { + generateImageUrl: function(data, scale_name) { var self = this; var url = self.generateUrl(data); - if (scale !== ""){ - url = (url + self.options.prependToScalePart + scale + - self.options.appendToScalePart); + if (scale_name !== ''){ + var part = scale_name; + for(var i=0; i 1){ + lang = lang.split('_')[0]; + } else if(lang.split('-') > 1){ + lang = lang.split('-')[0]; + }else { + lang = lang + '_' + lang.toUpperCase(); + } + $.ajax({ + url: tinymce.baseURL + '/langs/' + lang + '.js', + method: 'GET', + cache: 'true', + success: function() { + self.options.tiny.language = lang; + call_back(); + }, + error: function() { + call_back(); + } + }); + } + }); + } else { + call_back(); + } + }, init: function() { var self = this; - self.linkModal = self.imageModal = self.uploadModal = null; + self.linkModal = self.imageModal = self.uploadModal = self.pasteModal = null; // tiny needs an id in order to initialize. Creat it if not set. var id = utils.setId(self.$el); var tinyOptions = self.options.tiny; - tinyOptions.selector = '#' + id; + if (self.options.inline === true) { + self.options.tiny.inline = true; + } + self.tinyId = self.options.inline ? id + '-editable' : id; // when displaying TinyMCE inline, a separate div is created. + tinyOptions.selector = '#' + self.tinyId; tinyOptions.addLinkClicked = function() { self.addLinkClicked.apply(self, []); }; - tinyOptions.addImageClicked = function() { - self.addImageClicked.apply(self, []); + tinyOptions.addImageClicked = function(file) { + self.addImageClicked.apply(self, [file] ); }; // XXX: disabled skin means it wont load css files which we already // include in widgets.min.css tinyOptions.skin = false; - self.options.relatedItems.generateImageUrl = function(data, scale) { // this is so, in our result and selection template, we can // access getting actual urls from related items @@ -90005,22 +99296,77 @@ define('mockup-patterns-tinymce',[ self.tiny = editor; } }; - if (tinyOptions.language !== 'en') { - tinymce.baseURL = self.options.loadingBaseUrl; - } - tinymce.init(tinyOptions); - self.tiny = tinymce.get(id); + self.initLanguage(function() { + if(typeof(self.options.scales) === 'string'){ + self.options.scales = _.map(self.options.scales.split(','), function(scale){ + var scale = scale.split(':'); + return { + part: scale[1], + name: scale[1], + label: scale[0] + }; + }); + } + if(typeof(self.options.folderTypes) === 'string'){ + self.options.folderTypes = self.options.folderTypes.split(','); + } + if(typeof(self.options.imageTypes) === 'string'){ + self.options.imageTypes = self.options.imageTypes.split(','); + } - /* tiny really should be doing this by default - * but this fixes overlays not saving data */ - var $form = self.$el.parents('form'); - $form.on('submit', function() { - self.tiny.save(); + if (self.options.inline === true) { + // create a div, which will be made content-editable by TinyMCE and + // copy contents from textarea to it. Then hide textarea. + self.$el.after('
    ' + self.$el.val() + '
    '); + self.$el.hide(); + } + + if(tinyOptions.importcss_file_filter && tinyOptions.importcss_file_filter.indexOf(',') !== -1){ + // need a custom function to check now + var files = tinyOptions.importcss_file_filter.split(','); + + tinyOptions.importcss_file_filter = function(value) { + for(var i=0; i *

    hello world

    * @@ -90084,18 +99433,48 @@ define('mockup-patterns-tinymce',[ * * * + * Example: example-2 + * + * + * */ define('mockup-patterns-textareamimetypeselector',[ 'jquery', - 'mockup-patterns-base', - 'mockup-registry', + 'pat-base', + 'pat-registry', 'mockup-patterns-tinymce' -], function ($, Base, registry, tinymce) { +], function ($, Base, registry) { 'use strict'; var TextareaMimetypeSelector = Base.extend({ name: 'textareamimetypeselector', + trigger: '.pat-textareamimetypeselector', + parser: 'mockup', textarea: undefined, currentWidget: undefined, defaults: { @@ -90139,33 +99518,34 @@ define('mockup-patterns-textareamimetypeselector',[ define('mockup-bundles-widgets',[ 'jquery', - 'mockup-registry', - 'mockup-patterns-base', + 'pat-registry', + 'pat-base', + 'mockup-patterns-select2', 'mockup-patterns-passwordstrength', 'mockup-patterns-pickadate', + 'mockup-patterns-recurrence', 'mockup-patterns-relateditems', 'mockup-patterns-querystring', 'mockup-patterns-textareamimetypeselector', 'mockup-patterns-tinymce' -], function($, Registry, Base) { +], function($, registry, Base) { 'use strict'; var PloneWidgets = Base.extend({ name: 'plone-widgets', - init: function() { - var self = this; - } + init: function() {} }); // initialize only if we are in top frame if (window.parent === window) { $(document).ready(function() { $('body').addClass('pat-plone-widgets'); - Registry.scan($('body')); + if (!registry.initialized) { + registry.init(); + } }); } - return PloneWidgets; }); diff --git a/plone/app/widgets/static/widgets.min.css b/plone/app/widgets/static/widgets.min.css index 589f005e..fccfa4b5 100644 --- a/plone/app/widgets/static/widgets.min.css +++ b/plone/app/widgets/static/widgets.min.css @@ -1,7 +1,7 @@ -.select2-container{margin:0;position:relative;display:inline-block;zoom:1;*display:inline;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;height:26px;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #aaa;white-space:nowrap;line-height:26px;color:#444;text-decoration:none;border-radius:4px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.5, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 50%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to top, #eee 0, #fff 50%)}html[dir="rtl"] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#aaa;border-radius:0 0 4px 4px;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.9, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 90%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 90%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to bottom, #eee 0, #fff 90%)}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir="rtl"] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:8px;font-size:1px;text-decoration:none;border:0;background:url('++resource++plone.app.widgets-select2-select2.png') right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;z-index:9999;top:100%;background:#fff;color:#000;border:1px solid #aaa;border-top:0;border-radius:0 0 4px 4px;-webkit-box-shadow:0 4px 5px rgba(0,0,0,0.15);box-shadow:0 4px 5px rgba(0,0,0,0.15)}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #aaa;border-bottom:0;border-radius:4px 4px 0 0;-webkit-box-shadow:0 -4px 5px rgba(0,0,0,0.15);box-shadow:0 -4px 5px rgba(0,0,0,0.15)}.select2-drop-active{border:1px solid #5897fb;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #5897fb}.select2-drop-auto-width{border-top:1px solid #aaa;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-left:1px solid #aaa;border-radius:0 4px 4px 0;background-clip:padding-box;background:#ccc;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(.6, #eee));background-image:-webkit-linear-gradient(center bottom, #ccc 0, #eee 60%);background-image:-moz-linear-gradient(center bottom, #ccc 0, #eee 60%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);background-image:linear-gradient(to top, #ccc 0, #eee 60%)}html[dir="rtl"] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-left:none;border-right:1px solid #aaa;border-radius:4px 0 0 4px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 0 1px}html[dir="rtl"] .select2-container .select2-choice .select2-arrow b{background-position:2px 1px}.select2-search{display:inline-block;width:100%;min-height:26px;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap}.select2-search input{width:100%;height:auto !important;min-height:26px;padding:4px 20px 4px 5px;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #aaa;border-radius:0;-webkit-box-shadow:none;box-shadow:none;background:#fff url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px;background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}html[dir="rtl"] .select2-search input{padding:4px 5px 4px 20px;background:#fff url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px;background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:#fff url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%;background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0;background-color:#eee;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center bottom, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center bottom, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to top, #fff 0, #eee 50%)}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #5897fb;border-top-color:transparent;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center top, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center top, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to bottom, #fff 0, #eee 50%)}.select2-dropdown-open .select2-choice .select2-arrow{background:transparent;border-left:none;filter:none}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:0 0 0 4px;margin:4px 4px 4px 0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:rgba(0,0,0,0)}html[dir="rtl"] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:bold}.select2-results .select2-result-label{padding:3px 7px 4px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#3875d7;color:#fff}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:transparent}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-ajax-error,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:#f4f4f4 url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%}.select2-results .select2-ajax-error{background:rgba(255,50,50,0.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto !important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #aaa;cursor:text;overflow:hidden;background-color:#fff;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(to bottom, #eee 1%, #fff 15%)}html[dir="rtl"] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px 3px 5px !important}.select2-container-multi .select2-choices{min-height:26px}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir="rtl"] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field input{padding:5px;margin:1px 0;font-family:sans-serif;font-size:100%;color:#666;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:transparent !important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:#fff url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100% !important}.select2-default{color:#999 !important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:3px 0 3px 5px;position:relative;line-height:13px;color:#333;cursor:default;border:1px solid #aaaaaa;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));background-image:-webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:-moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:linear-gradient(to top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%)}html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:3px 18px 3px 5px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:3px;top:4px;font-size:1px;outline:none;background:url('++resource++plone.app.widgets-select2-select2.png') right top no-repeat}html[dir="rtl"] .select2-search-choice-close{right:auto;left:3px}.select2-container-multi .select2-search-choice-close{left:3px}html[dir="rtl"] .select2-container-multi .select2-search-choice-close{left:auto;right:2px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover{background-position:right -11px}.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px 3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:none}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0) !important;width:1px !important;height:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;position:absolute !important;outline:0 !important;left:0px !important;top:0px !important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input,.select2-search-choice-close,.select2-container .select2-choice abbr,.select2-container .select2-choice .select2-arrow b{background-image:url('++resource++plone.app.widgets-select2-select2x2.png') !important;background-repeat:no-repeat !important;background-size:60px 40px !important}.select2-search input{background-position:100% -21px !important}}.select2-container{margin-bottom:1em}.select2-container-multi .select2-choices .select2-choice-dragging{border-color:#FF0000}.select2-container-multi.select2-orderable .select2-search-choice span,.select2-container-multi.select2-orderable .select2-search-choice{cursor:move}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! +.select2-container{margin:0;position:relative;display:inline-block;zoom:1;*display:inline;vertical-align:middle}.select2-container,.select2-drop,.select2-search,.select2-search input{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.select2-container .select2-choice{display:block;height:26px;padding:0 0 0 8px;overflow:hidden;position:relative;border:1px solid #aaa;white-space:nowrap;line-height:26px;color:#444;text-decoration:none;border-radius:4px;background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.5, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 50%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to top, #eee 0, #fff 50%)}html[dir="rtl"] .select2-container .select2-choice{padding:0 8px 0 0}.select2-container.select2-drop-above .select2-choice{border-bottom-color:#aaa;border-radius:0 0 4px 4px;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #eee), color-stop(.9, #fff));background-image:-webkit-linear-gradient(center bottom, #eee 0, #fff 90%);background-image:-moz-linear-gradient(center bottom, #eee 0, #fff 90%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0);background-image:linear-gradient(to bottom, #eee 0, #fff 90%)}.select2-container.select2-allowclear .select2-choice .select2-chosen{margin-right:42px}.select2-container .select2-choice>.select2-chosen{margin-right:26px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;float:none;width:auto}html[dir="rtl"] .select2-container .select2-choice>.select2-chosen{margin-left:26px;margin-right:0}.select2-container .select2-choice abbr{display:none;width:12px;height:12px;position:absolute;right:24px;top:8px;font-size:1px;text-decoration:none;border:0;background:url('++resource++plone.app.widgets-select2-select2.png') right top no-repeat;cursor:pointer;outline:0}.select2-container.select2-allowclear .select2-choice abbr{display:inline-block}.select2-container .select2-choice abbr:hover{background-position:right -11px;cursor:pointer}.select2-drop-mask{border:0;margin:0;padding:0;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:9998;background-color:#fff;filter:alpha(opacity=0)}.select2-drop{width:100%;margin-top:-1px;position:absolute;z-index:9999;top:100%;background:#fff;color:#000;border:1px solid #aaa;border-top:0;border-radius:0 0 4px 4px;-webkit-box-shadow:0 4px 5px rgba(0,0,0,0.15);box-shadow:0 4px 5px rgba(0,0,0,0.15)}.select2-drop.select2-drop-above{margin-top:1px;border-top:1px solid #aaa;border-bottom:0;border-radius:4px 4px 0 0;-webkit-box-shadow:0 -4px 5px rgba(0,0,0,0.15);box-shadow:0 -4px 5px rgba(0,0,0,0.15)}.select2-drop-active{border:1px solid #5897fb;border-top:none}.select2-drop.select2-drop-above.select2-drop-active{border-top:1px solid #5897fb}.select2-drop-auto-width{border-top:1px solid #aaa;width:auto}.select2-drop-auto-width .select2-search{padding-top:4px}.select2-container .select2-choice .select2-arrow{display:inline-block;width:18px;height:100%;position:absolute;right:0;top:0;border-left:1px solid #aaa;border-radius:0 4px 4px 0;background-clip:padding-box;background:#ccc;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(.6, #eee));background-image:-webkit-linear-gradient(center bottom, #ccc 0, #eee 60%);background-image:-moz-linear-gradient(center bottom, #ccc 0, #eee 60%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#cccccc', GradientType=0);background-image:linear-gradient(to top, #ccc 0, #eee 60%)}html[dir="rtl"] .select2-container .select2-choice .select2-arrow{left:0;right:auto;border-left:none;border-right:1px solid #aaa;border-radius:4px 0 0 4px}.select2-container .select2-choice .select2-arrow b{display:block;width:100%;height:100%;background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 0 1px}html[dir="rtl"] .select2-container .select2-choice .select2-arrow b{background-position:2px 1px}.select2-search{display:inline-block;width:100%;min-height:26px;margin:0;padding-left:4px;padding-right:4px;position:relative;z-index:10000;white-space:nowrap}.select2-search input{width:100%;height:auto !important;min-height:26px;padding:4px 20px 4px 5px;margin:0;outline:0;font-family:sans-serif;font-size:1em;border:1px solid #aaa;border-radius:0;-webkit-box-shadow:none;box-shadow:none;background:#fff url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px;background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat 100% -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}html[dir="rtl"] .select2-search input{padding:4px 5px 4px 20px;background:#fff url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px;background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2.png') no-repeat -37px -22px,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-drop.select2-drop-above .select2-search input{margin-top:4px}.select2-search input.select2-active{background:#fff url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%;background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,-webkit-gradient(linear, left bottom, left top, color-stop(.85, #fff), color-stop(.99, #eee));background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,-webkit-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,-moz-linear-gradient(center bottom, #fff 85%, #eee 99%);background:url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%,linear-gradient(to bottom, #fff 85%, #eee 99%) 0 0}.select2-container-active .select2-choice,.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-dropdown-open .select2-choice{border-bottom-color:transparent;-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset;border-bottom-left-radius:0;border-bottom-right-radius:0;background-color:#eee;background-image:-webkit-gradient(linear, left bottom, left top, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center bottom, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center bottom, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to top, #fff 0, #eee 50%)}.select2-dropdown-open.select2-drop-above .select2-choice,.select2-dropdown-open.select2-drop-above .select2-choices{border:1px solid #5897fb;border-top-color:transparent;background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(.5, #eee));background-image:-webkit-linear-gradient(center top, #fff 0, #eee 50%);background-image:-moz-linear-gradient(center top, #fff 0, #eee 50%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0);background-image:linear-gradient(to bottom, #fff 0, #eee 50%)}.select2-dropdown-open .select2-choice .select2-arrow{background:transparent;border-left:none;filter:none}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow{border-right:none}.select2-dropdown-open .select2-choice .select2-arrow b{background-position:-18px 1px}html[dir="rtl"] .select2-dropdown-open .select2-choice .select2-arrow b{background-position:-16px 1px}.select2-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.select2-results{max-height:200px;padding:0 0 0 4px;margin:4px 4px 4px 0;position:relative;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:rgba(0,0,0,0)}html[dir="rtl"] .select2-results{padding:0 4px 0 0;margin:4px 0 4px 4px}.select2-results ul.select2-result-sub{margin:0;padding-left:0}.select2-results li{list-style:none;display:list-item;background-image:none}.select2-results li.select2-result-with-children>.select2-result-label{font-weight:bold}.select2-results .select2-result-label{padding:3px 7px 4px;margin:0;cursor:pointer;min-height:1em;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.select2-results-dept-1 .select2-result-label{padding-left:20px}.select2-results-dept-2 .select2-result-label{padding-left:40px}.select2-results-dept-3 .select2-result-label{padding-left:60px}.select2-results-dept-4 .select2-result-label{padding-left:80px}.select2-results-dept-5 .select2-result-label{padding-left:100px}.select2-results-dept-6 .select2-result-label{padding-left:110px}.select2-results-dept-7 .select2-result-label{padding-left:120px}.select2-results .select2-highlighted{background:#3875d7;color:#fff}.select2-results li em{background:#feffde;font-style:normal}.select2-results .select2-highlighted em{background:transparent}.select2-results .select2-highlighted ul{background:#fff;color:#000}.select2-results .select2-no-results,.select2-results .select2-searching,.select2-results .select2-ajax-error,.select2-results .select2-selection-limit{background:#f4f4f4;display:list-item;padding-left:5px}.select2-results .select2-disabled.select2-highlighted{color:#666;background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-disabled{background:#f4f4f4;display:list-item;cursor:default}.select2-results .select2-selected{display:none}.select2-more-results.select2-active{background:#f4f4f4 url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100%}.select2-results .select2-ajax-error{background:rgba(255,50,50,0.2)}.select2-more-results{background:#f4f4f4;display:list-item}.select2-container.select2-container-disabled .select2-choice{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container.select2-container-disabled .select2-choice .select2-arrow{background-color:#f4f4f4;background-image:none;border-left:0}.select2-container.select2-container-disabled .select2-choice abbr{display:none}.select2-container-multi .select2-choices{height:auto !important;height:1%;margin:0;padding:0 5px 0 0;position:relative;border:1px solid #aaa;cursor:text;overflow:hidden;background-color:#fff;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(to bottom, #eee 1%, #fff 15%)}html[dir="rtl"] .select2-container-multi .select2-choices{padding:0 0 0 5px}.select2-locked{padding:3px 5px 3px 5px !important}.select2-container-multi .select2-choices{min-height:26px}.select2-container-multi.select2-container-active .select2-choices{border:1px solid #5897fb;outline:none;-webkit-box-shadow:0 0 5px rgba(0,0,0,0.3);box-shadow:0 0 5px rgba(0,0,0,0.3)}.select2-container-multi .select2-choices li{float:left;list-style:none}html[dir="rtl"] .select2-container-multi .select2-choices li{float:right}.select2-container-multi .select2-choices .select2-search-field{margin:0;padding:0;white-space:nowrap}.select2-container-multi .select2-choices .select2-search-field input{padding:5px;margin:1px 0;font-family:sans-serif;font-size:100%;color:#666;outline:0;border:0;-webkit-box-shadow:none;box-shadow:none;background:transparent !important}.select2-container-multi .select2-choices .select2-search-field input.select2-active{background:#fff url('++resource++plone.app.widgets-select2-select2-spinner.gif') no-repeat 100% !important}.select2-default{color:#999 !important}.select2-container-multi .select2-choices .select2-search-choice{padding:3px 5px 3px 18px;margin:3px 0 3px 5px;position:relative;line-height:13px;color:#333;cursor:default;border:1px solid #aaa;border-radius:3px;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,0.05);background-clip:padding-box;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#e4e4e4;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#f4f4f4', GradientType=0);background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eee));background-image:-webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:-moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);background-image:linear-gradient(to top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%)}html[dir="rtl"] .select2-container-multi .select2-choices .select2-search-choice{margin:3px 5px 3px 0;padding:3px 18px 3px 5px}.select2-container-multi .select2-choices .select2-search-choice .select2-chosen{cursor:default}.select2-container-multi .select2-choices .select2-search-choice-focus{background:#d4d4d4}.select2-search-choice-close{display:block;width:12px;height:13px;position:absolute;right:3px;top:4px;font-size:1px;outline:none;background:url('++resource++plone.app.widgets-select2-select2.png') right top no-repeat}html[dir="rtl"] .select2-search-choice-close{right:auto;left:3px}.select2-container-multi .select2-search-choice-close{left:3px}html[dir="rtl"] .select2-container-multi .select2-search-choice-close{left:auto;right:2px}.select2-container-multi .select2-choices .select2-search-choice .select2-search-choice-close:hover{background-position:right -11px}.select2-container-multi .select2-choices .select2-search-choice-focus .select2-search-choice-close{background-position:right -11px}.select2-container-multi.select2-container-disabled .select2-choices{background-color:#f4f4f4;background-image:none;border:1px solid #ddd;cursor:default}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice{padding:3px 5px 3px 5px;border:1px solid #ddd;background-image:none;background-color:#f4f4f4}.select2-container-multi.select2-container-disabled .select2-choices .select2-search-choice .select2-search-choice-close{display:none;background:none}.select2-result-selectable .select2-match,.select2-result-unselectable .select2-match{text-decoration:underline}.select2-offscreen,.select2-offscreen:focus{clip:rect(0 0 0 0) !important;width:1px !important;height:1px !important;border:0 !important;margin:0 !important;padding:0 !important;overflow:hidden !important;position:absolute !important;outline:0 !important;left:0 !important;top:0 !important}.select2-display-none{display:none}.select2-measure-scrollbar{position:absolute;top:-10000px;left:-10000px;width:100px;height:100px;overflow:scroll}@media only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-resolution:2dppx){.select2-search input,.select2-search-choice-close,.select2-container .select2-choice abbr,.select2-container .select2-choice .select2-arrow b{background-image:url('++resource++plone.app.widgets-select2-select2x2.png') !important;background-repeat:no-repeat !important;background-size:60px 40px !important}.select2-search input{background-position:100% -21px !important}}.select2-container{margin-bottom:1em}.select2-container-multi .select2-choices .select2-choice-dragging{border-color:#f00}.select2-container-multi.select2-orderable .select2-search-choice span,.select2-container-multi.select2-orderable .select2-search-choice{cursor:move}.pat-select2{min-width:50%}.select2-container-multi .select2-choices .select2-search-field input{padding-bottom:1px;padding-left:8px;padding-right:1px;padding-top:2px;height:inherit}.picker{font-size:16px;text-align:left;line-height:1.2;color:#000;position:absolute;z-index:10000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.picker__input{cursor:default}.picker__input.picker__input--active{border-color:#0089ec}.picker__holder{width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}/*! * Classic picker styling for pickadate.js * Demo: http://amsul.github.io/pickadate.js - */.picker{width:100%}.picker__holder{position:absolute;background:#ffffff;border:1px solid #aaaaaa;border-top-width:0;border-bottom-width:0;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 5px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;min-width:176px;max-width:466px;max-height:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;-webkit-transform:translateY(-1em) perspective(600px) rotateX(10deg);-moz-transform:translateY(-1em) perspective(600px) rotateX(10deg);transform:translateY(-1em) perspective(600px) rotateX(10deg);-webkit-transition:all .15s ease-out,max-height 0 .15s,border-width 0 .15s;-moz-transition:all .15s ease-out,max-height 0 .15s,border-width 0 .15s;transition:all .15s ease-out,max-height 0 .15s,border-width 0 .15s}.picker__frame{padding:1px}.picker__wrap{margin:-1px}.picker--opened .picker__holder{max-height:25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1;border-top-width:1px;border-bottom-width:1px;-webkit-transform:translateY(0) perspective(600px) rotateX(0);-moz-transform:translateY(0) perspective(600px) rotateX(0);transform:translateY(0) perspective(600px) rotateX(0);-webkit-transition:all .15s ease-out,max-height 0,border-width 0;-moz-transition:all .15s ease-out,max-height 0,border-width 0;transition:all .15s ease-out,max-height 0,border-width 0;-webkit-box-shadow:0 6px 18px 1px rgba(0,0,0,0.12);-moz-box-shadow:0 6px 18px 1px rgba(0,0,0,0.12);box-shadow:0 6px 18px 1px rgba(0,0,0,0.12)}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2.5em;padding:.5em .25em;margin-left:.25em;margin-right:.25em;font-size:.6em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{font-size:.8em;margin-top:-0.5em}}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;top:-0.25em}@media (min-width:24.5em){.picker__nav--prev,.picker__nav--next{top:-0.33em}}.picker__nav--prev{left:-1em;padding-right:1.25em}@media (min-width:24.5em){.picker__nav--prev{padding-right:1.5em}}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__nav--next{padding-left:1.5em}}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:0.75em solid #000000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:0.75em solid #000000}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{color:#0089ec;position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:0.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--selected,.picker__day--selected:hover{border-color:#0089ec}.picker__day--highlighted{background:#b1dcfb}.picker__day--disabled:before{border-top-color:#aaaaaa}.picker__day--outfocus{color:#dddddd}.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000000;background:#b1dcfb}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{background:#0089ec;color:#ffffff}.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbbbbb}.picker__footer{text-align:center}.picker__button--today,.picker__button--clear{border:1px solid #ffffff;background:#ffffff;font-size:.8em;padding:.66em 0;font-weight:bold;width:50%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus{background:#b1dcfb;border-color:#0089ec;outline:none}.picker__button--today:before,.picker__button--clear:before{position:relative;display:inline-block;height:0}.picker__button--today:before{content:" ";margin-right:.45em;top:-0.05em;width:0;border-top:0.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{content:"\D7";margin-right:.35em;top:-0.1em;color:#ee2200;vertical-align:top;font-size:1.1em}.picker__list{list-style:none;padding:0.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #dddddd;border-top:1px solid #dddddd;margin-bottom:-1px;position:relative;background:#ffffff;padding:.75em 1.25em}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--selected,.picker__list-item--selected:hover{border-color:#0089ec;z-index:10}.picker__list-item--highlighted{background:#b1dcfb}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{background:#0089ec;color:#ffffff}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#dddddd;cursor:default;border-color:#dddddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000000;background:#b1dcfb;background:#ee2200;border-color:#ee2200;cursor:pointer;color:#ffffff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#ffffff}.picker--time{min-width:256px;max-width:320px}.picker--time .picker__holder{background:#f2f2f2}@media (min-height:40.125em){.picker--time .picker__holder{font-size:.875em}}.picker--time .picker__box{padding:0;position:relative}.pattern-pickadate-wrapper{position:relative;margin-bottom:0.5em}.pattern-pickadate-wrapper .picker{display:none}.pattern-pickadate-wrapper .picker.picker--opened{display:block}.pattern-pickadate-wrapper .pattern-pickadate-date-wrapper{float:left}.pattern-pickadate-wrapper .pattern-pickadate-date-wrapper .picker__input{width:300px;margin-bottom:0.2em;text-align:center;cursor:context-menu}.pattern-pickadate-wrapper .pattern-pickadate-date-wrapper .picker__holder{width:300px;font-size:12px;margin-top:-2px}.pattern-pickadate-wrapper .pattern-pickadate-separator{float:left;display:block;margin:0 0.2em}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper{float:left}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper .picker__input{width:180px;margin-bottom:0.2em;text-align:center;cursor:context-menu}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper .picker__holder{width:180px;font-size:11px;margin-top:-2px}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper .picker__list-item{text-align:center}.pattern-pickadate-wrapper .pattern-pickadate-clear{clear:both}.pattern-pickadate-wrapper .picker__select--month,.pattern-pickadate-wrapper .picker__select--year{height:3em}@font-face{font-family:'Glyphicons Halflings';src:url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.eot');src:url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.woff') format('woff'),url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.ttf') format('truetype'),url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}ul.jqtree-tree { + */.picker{width:100%}.picker__holder{position:absolute;background:#fff;border:1px solid #aaa;border-top-width:0;border-bottom-width:0;border-radius:0 0 5px 5px;box-sizing:border-box;min-width:176px;max-width:466px;max-height:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;-webkit-transform:translateY(-1em) perspective(600px) rotateX(10deg);transform:translateY(-1em) perspective(600px) rotateX(10deg);transition:-webkit-transform .15s ease-out,opacity .15s ease-out,max-height 0s .15s,border-width 0s .15s;transition:transform .15s ease-out,opacity .15s ease-out,max-height 0s .15s,border-width 0s .15s}.picker__frame{padding:1px}.picker__wrap{margin:-1px}.picker--opened .picker__holder{max-height:25em;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1;border-top-width:1px;border-bottom-width:1px;-webkit-transform:translateY(0) perspective(600px) rotateX(0);transform:translateY(0) perspective(600px) rotateX(0);transition:-webkit-transform .15s ease-out,opacity .15s ease-out,max-height 0s,border-width 0s;transition:transform .15s ease-out,opacity .15s ease-out,max-height 0s,border-width 0s;box-shadow:0 6px 18px 1px rgba(0,0,0,0.12)}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{font-weight:500;display:inline-block;margin-left:.25em;margin-right:.25em}.picker__year{color:#999;font-size:.8em;font-style:italic}.picker__select--month,.picker__select--year{border:1px solid #b7b7b7;height:2em;padding:.5em;margin-left:.25em;margin-right:.25em}@media (min-width:24.5em){.picker__select--month,.picker__select--year{margin-top:-0.5em}}.picker__select--month{width:35%}.picker__select--year{width:22.5%}.picker__select--month:focus,.picker__select--year:focus{border-color:#0089ec}.picker__nav--prev,.picker__nav--next{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-0.25em}@media (min-width:24.5em){.picker__nav--prev,.picker__nav--next{top:-0.33em}}.picker__nav--prev{left:-1em;padding-right:1.25em}@media (min-width:24.5em){.picker__nav--prev{padding-right:1.5em}}.picker__nav--next{right:-1em;padding-left:1.25em}@media (min-width:24.5em){.picker__nav--next{padding-left:1.5em}}.picker__nav--prev:before,.picker__nav--next:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #000;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #000}.picker__nav--prev:hover,.picker__nav--next:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__nav--disabled,.picker__nav--disabled:hover,.picker__nav--disabled:before,.picker__nav--disabled:before:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{text-align:center;border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:inherit;width:100%;margin-top:.75em;margin-bottom:.5em}@media (min-height:33.875em){.picker__table{margin-bottom:.75em}}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.28571429%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day{padding:.3125em 0;font-weight:200;border:1px solid transparent}.picker__day--today{position:relative}.picker__day--today:before{content:" ";position:absolute;top:2px;right:2px;width:0;height:0;border-top:.5em solid #0059bc;border-left:.5em solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--outfocus{color:#ddd}.picker__day--infocus:hover,.picker__day--outfocus:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__day--highlighted{border-color:#0089ec}.picker__day--highlighted:hover,.picker--focused .picker__day--highlighted{cursor:pointer;color:#000;background:#b1dcfb}.picker__day--selected,.picker__day--selected:hover,.picker--focused .picker__day--selected{background:#0089ec;color:#fff}.picker__day--disabled,.picker__day--disabled:hover,.picker--focused .picker__day--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center}.picker__button--today,.picker__button--clear,.picker__button--close{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:bold;width:33%;display:inline-block;vertical-align:bottom}.picker__button--today:hover,.picker__button--clear:hover,.picker__button--close:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--today:focus,.picker__button--clear:focus,.picker__button--close:focus{background:#b1dcfb;border-color:#0089ec;outline:none}.picker__button--today:before,.picker__button--clear:before,.picker__button--close:before{position:relative;display:inline-block;height:0}.picker__button--today:before,.picker__button--clear:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-0.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-0.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-0.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb;border-color:#0089ec;z-index:10}.picker__list-item--highlighted{border-color:#0089ec;z-index:10}.picker__list-item--highlighted:hover,.picker--focused .picker__list-item--highlighted{cursor:pointer;color:#000;background:#b1dcfb}.picker__list-item--selected,.picker__list-item--selected:hover,.picker--focused .picker__list-item--selected{background:#0089ec;color:#fff;z-index:10}.picker__list-item--disabled,.picker__list-item--disabled:hover,.picker--focused .picker__list-item--disabled{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:hover,.picker--time .picker__button--clear:focus{color:#000;background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:none}.picker--time .picker__button--clear:before{top:-0.25em;color:#666;font-size:1.25em;font-weight:bold}.picker--time .picker__button--clear:hover:before,.picker--time .picker__button--clear:focus:before{color:#fff;border-color:#fff}.picker--time{min-width:256px;max-width:320px}.picker--time .picker__holder{background:#f2f2f2}@media (min-height:40.125em){.picker--time .picker__holder{font-size:.875em}}.picker--time .picker__box{padding:0;position:relative}.pattern-pickadate-wrapper{position:relative;margin-bottom:.5em}.pattern-pickadate-wrapper .picker{display:none}.pattern-pickadate-wrapper .picker.picker--opened{display:block}.pattern-pickadate-wrapper .pattern-pickadate-date-wrapper{float:left}.pattern-pickadate-wrapper .pattern-pickadate-date-wrapper .picker__input{width:300px;margin-bottom:.2em;text-align:center;cursor:context-menu}.pattern-pickadate-wrapper .pattern-pickadate-date-wrapper .picker__holder{width:300px;font-size:12px;margin-top:-2px}.pattern-pickadate-wrapper .pattern-pickadate-separator{float:left;display:block;margin:0 .2em}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper{float:left}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper .picker__input{width:180px;margin-bottom:.2em;text-align:center;cursor:context-menu}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper .picker__holder{width:180px;font-size:11px;margin-top:-2px}.pattern-pickadate-wrapper .pattern-pickadate-time-wrapper .picker__list-item{text-align:center}.pattern-pickadate-wrapper .pattern-pickadate-clear{clear:both}.pattern-pickadate-wrapper .picker__select--month,.pattern-pickadate-wrapper .picker__select--year{height:3em}@font-face{font-family:'Glyphicons Halflings';src:url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.eot');src:url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.woff2') format('woff2'),url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.woff') format('woff'),url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.ttf') format('truetype'),url('++resource++plone.app.widgets-bootstrap-glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}ul.jqtree-tree { margin-left: 0; } @@ -143,7 +143,7 @@ ul.jqtree-tree li.jqtree-selected > .jqtree-element:hover { ul.jqtree-tree .jqtree-moving > .jqtree-element .jqtree-title { outline: dashed 1px #0000ff; } -.pattern-relateditems-dropdown{z-index:10002}.pattern-relateditems-dropdown .select2-results .select2-highlighted{color:#000;background:#d8d8d8}.pattern-relateditems-dropdown .select2-results .select2-selected{display:list-item}.pattern-relateditems-active{padding:5px;background-color:#DDD}.pattern-relateditems-container{display:inline-block;position:relative}.pattern-relateditems-path{display:block;line-height:20px;background-color:#f1f1f1;font-size:12px;border:1px solid #aaa;border-bottom-style:none;z-index:9999;position:relative;padding:0 6px;color:#333}.pattern-relateditems-path a{padding:0 6px}.pattern-relateditems-path em{color:#666}.pattern-relateditems-result{padding-right:30px;position:relative}.pattern-relateditems-result a:hover{text-decoration:none}.pattern-relateditems-result .pattern-relateditems-result-select{display:block}.pattern-relateditems-result .pattern-relateditems-result-select.selectable:after{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;left:0;font-size:14px;right:0;top:50%;margin-top:-14px;color:#428bca}.pattern-relateditems-result .pattern-relateditems-result-select.selectable:after:before{content:"\e080"}.pattern-relateditems-result .pattern-relateditems-result-select.selectable{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pattern-relateditems-result .pattern-relateditems-result-select.selectable:before{content:"\e165"}.pattern-relateditems-result .pattern-relateditems-buttons{position:absolute;display:inline-block;text-align:right;font-size:18px;right:0;top:50%;margin-top:-16px}.pattern-relateditems-result .pattern-relateditems-buttons a{display:block;height:36px;line-height:36px;position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pattern-relateditems-result .pattern-relateditems-buttons a:before{content:"\e080"}.pattern-relateditems-result .pattern-relateditems-result-path{display:block;color:#444;font-size:11px;padding-left:25px}.pattern-relateditems-item .pattern-relateditems-item-path{font-size:11px;color:#444;display:block}.pattern-relateditems-tree .tree-container{position:absolute;background-color:white;min-width:200px;padding:0px;left:4px;border:3px solid #DDD;border-radius:7px;top:4px;display:none;z-index:10000}.pattern-relateditems-tree .tree-container .pat-tree{max-height:400px;overflow-y:scroll;overflow-x:hidden;border-top:1px solid #DDD;border-bottom:1px solid #DDD;padding:2px 0}.pattern-relateditems-tree .tree-container .select-folder-label{display:block;margin:10px 5px 5px 5px;font-style:italic;font-weight:bold}.pattern-relateditems-tree .tree-container .btn.close.pattern-relateditems-tree-itemselect{display:block;margin:2px;opacity:1.0}.pattern-relateditems-tree .tree-container .btn.close.pattern-relateditems-tree-cancel{display:block;position:absolute;top:5px;right:5px}.pattern-relateditems-tree .tree-container .jqtree-tree .jqtree_common{padding-left:2px}.pattern-relateditems-tree .tree-container .jqtree-tree .jqtree_common.jqtree-selected .jqtree_common.jqtree-element{background:#97BDD6;text-shadow:none}.pattern-relateditems-tree .tree-container .jqtree-tree li.jqtree_common{padding-right:6px}.pattern-relateditems-tree .tree-container .jqtree-tree li.jqtree_common .jqtree_common.jqtree-element:hover{background:#DDD}#content .field .querystring-criteria-wrapper .picker__input{font-size:16px;margin:1px}#content .field .querystring-criteria-wrapper input[type="text"]{font-size:16px;margin:1px}.querystring-criteria-wrapper .querystring-criteria-remove{float:left;display:block;height:13px;right:3px;top:4px;line-height:13px;font-style:italic;outline:0;margin:8px 4px;cursor:pointer;position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.querystring-criteria-wrapper .querystring-criteria-remove:before{content:"\e014"}.querystring-criteria-wrapper .querystring-criteria-index{float:left;margin-right:0.3em;margin-top:0.1em;margin-bottom:0.1em}.querystring-criteria-wrapper .querystring-criteria-operator{float:left;margin-right:0.3em;margin-top:0.1em;margin-bottom:0.1em}.querystring-criteria-wrapper .querystring-criteria-value{float:left;margin-right:0em;margin-bottom:0.3em}.querystring-criteria-wrapper .querystring-criteria-value .querystring-criteria-value-StringWidget{width:200px;line-height:1.5em}.querystring-criteria-wrapper .querystring-criteria-value .querystring-criteria-value-RelativeDateWidget{width:50px;line-height:1.5em;margin-right:0.3em !important}.querystring-criteria-wrapper .querystring-criteria-clear{clear:both}.querystring-criteria-wrapper .pattern-pickadate-date-wrapper .picker__input{line-height:1.5em;width:180px}.querystring-criteria-wrapper .querystring-criteria-betweendt{float:left;padding:5px 8px;display:inline-block}.querystring-criteria-wrapper .pattern-pickadate-wrapper{display:inline-block;float:left}.querystring-preview-wrapper .querystring-preview{border:2px solid #eee;padding:5px;margin:5px;height:258px;overflow-y:scroll}.querystring-preview-wrapper .querystring-preview-title{font-weight:bold;font-size:larger}.querystring-preview-wrapper .querystring-preview-description{color:#bbb}.querystring-preview-wrapper .querystring-previewcount-wrapper{font-style:italic}.querystring-sort-wrapper{margin:10px 0;clear:both}.querystring-sort-wrapper .querystring-sort-label{padding-right:10px;font-weight:bold}.querystring-sort-wrapper .querystring-sortreverse-label{padding-left:5px;font-weight:bold}.querystring-sort-wrapper .querystring-sortreverse{padding-left:10px}.querystring-sort-wrapper .querystring-sortreverse input{padding:0;margin:0}.querystring-sort-wrapper .select2-container{margin-bottom:0}.modal div.field .querystring-sort-wrapper input[type="checkbox"]{float:none}.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:0 0;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:400;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container [unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #9e9e9e;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#a1a1a1}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#a1a1a1}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#a1a1a1;background:#c8def4}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:700;font-size:20px;line-height:16px;color:#707070}.mce-toolbar-grp{padding-bottom:2px}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fdfdfd, #ddd);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fdfdfd), to(#ddd));background-image:-webkit-linear-gradient(top, #fdfdfd, #ddd);background-image:-o-linear-gradient(top, #fdfdfd, #ddd);background-image:linear-gradient(to bottom, #fdfdfd, #ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd', endColorstr='#ffdddddd', GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);top:0;left:0;background:#fff;border:1px solid #9e9e9e;border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#9e9e9e;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#fff;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:700;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:700;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;background-image:-moz-linear-gradient(top, #f2f2f2, #ccc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#ccc));background-image:-webkit-linear-gradient(top, #f2f2f2, #ccc);background-image:-o-linear-gradient(top, #f2f2f2, #ccc);background-image:linear-gradient(to bottom, #f2f2f2, #ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffcccccc', GradientType=0);zoom:1}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn:active{background-color:#d6d6d6;background-image:-moz-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e6e6e6), to(#c0c0c0));background-image:-webkit-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:-o-linear-gradient(top, #e6e6e6, #c0c0c0);background-image:linear-gradient(to bottom, #e6e6e6, #c0c0c0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6', endColorstr='#ffc0c0c0', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{min-width:50px;color:#fff;border:1px solid #b1b1b1;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25) rgba(0,0,0,0.25);background-color:#006dcc;background-image:-moz-linear-gradient(top, #08c, #04c);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#04c));background-image:-webkit-linear-gradient(top, #08c, #04c);background-image:-o-linear-gradient(top, #08c, #04c);background-image:linear-gradient(to bottom, #08c, #04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);zoom:1}.mce-primary:hover,.mce-primary:focus{background-color:#005fb3;background-image:-moz-linear-gradient(top, #0077b3, #003cb3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0077b3), to(#003cb3));background-image:-webkit-linear-gradient(top, #0077b3, #003cb3);background-image:-o-linear-gradient(top, #0077b3, #003cb3);background-image:linear-gradient(to bottom, #0077b3, #003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3', endColorstr='#ff003cb3', GradientType=0);zoom:1}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#005299;background-image:-moz-linear-gradient(top, #069, #039);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#069), to(#039));background-image:-webkit-linear-gradient(top, #069, #039);background-image:-o-linear-gradient(top, #069, #039);background-image:linear-gradient(to bottom, #069, #039);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff006699', endColorstr='#ff003399', GradientType=0);zoom:1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px #333}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px}.mce-btn-small i{line-height:20px;vertical-align:top}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:0 0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-first{border-left:1px solid #b1b1b1;border-left:1px solid rgba(0,0,0,0.25);-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #b1b1b1;border-right:1px solid rgba(0,0,0,0.1);-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top, #fff, #d9d9d9);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fff), to(#d9d9d9));background-image:-webkit-linear-gradient(top, #fff, #d9d9d9);background-image:-o-linear-gradient(top, #fff, #d9d9d9);background-image:linear-gradient(to bottom, #fff, #d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffd9d9d9', GradientType=0);zoom:1;text-indent:-10em;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:4px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-14px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;border-left:1px solid transparent;border-right:1px solid transparent}.mce-colorbutton:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:4px;margin-right:-14px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;margin-right:-17px;padding-left:0}.mce-rtl .mce-colorbutton button{padding-right:10px;padding-left:10px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:0 0;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid #000;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid #fff;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl}.mce-fieldset{border:0 solid #9E9E9E;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid #9e9e9e;width:100%;height:100%}.mce-label{display:inline-block;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:0 0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #c4c4c4}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:transparent;background:#e6e6e6;filter:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-menubtn span{color:#333;margin-right:2px;line-height:20px}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:400;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:#fff}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:#fff}.mce-menu-item .mce-caret{margin-top:4px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:#fff}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#c8def4}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:#333}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:#fff}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:#fff}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top, #08c, #0077b3);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#0077b3));background-image:-webkit-linear-gradient(top, #08c, #0077b3);background-image:-o-linear-gradient(top, #08c, #0077b3);background-image:linear-gradient(to bottom, #08c, #0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);zoom:1}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#cbcbcb;border-bottom:1px solid #fff;cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:#fff}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background:0 0;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#bdbdbd;border-right-color:#bdbdbd}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:10px;padding-left:10px}.mce-rtl .mce-splitbtn .mce-open{padding-left:4px;padding-right:4px}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tab{display:inline-block;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.65)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('++resource++plone.app.widgets-tinymce-img-loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}@font-face{font-family:tinymce;src:url(++resource++plone.app.widgets-tinymce-font-tinymce.eot);src:url(++resource++plone.app.widgets-tinymce-font-tinymce.eot?#iefix) format('embedded-opentype'),url(++resource++plone.app.widgets-tinymce-font-tinymce.woff) format('woff'),url(++resource++plone.app.widgets-tinymce-font-tinymce.ttf) format('truetype'),url(++resource++plone.app.widgets-tinymce-font-tinymce.svg#tinymce) format('svg');font-weight:400;font-style:normal}@font-face{font-family:tinymce-small;src:url(++resource++plone.app.widgets-tinymce-font-tinymce-small.eot);src:url(++resource++plone.app.widgets-tinymce-font-tinymce-small.eot?#iefix) format('embedded-opentype'),url(++resource++plone.app.widgets-tinymce-font-tinymce-small.woff) format('woff'),url(++resource++plone.app.widgets-tinymce-font-tinymce-small.ttf) format('truetype'),url(++resource++plone.app.widgets-tinymce-font-tinymce-small.svg#tinymce) format('svg');font-weight:400;font-style:normal}.mce-ico{font-family:tinymce,Arial;font-style:normal;font-weight:400;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:tinymce-small,Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb}.mce-object{border:1px dotted #3A3A3A;background:#d5d5d5 url('++resource++plone.app.widgets-tinymce-img-object.gif') no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3A3A3A;background:#d5d5d5 url('++resource++plone.app.widgets-tinymce-img-anchor.gif') no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid red;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid green;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}.mce-visualblocks p { +.autotabs ul li.jqtree_common{display:block}.pattern-relateditems-dropdown{z-index:10002}.pattern-relateditems-dropdown .select2-results .select2-highlighted{color:#000;background:#d8d8d8}.pattern-relateditems-dropdown .select2-results .select2-selected{display:list-item}.pattern-relateditems-active{padding:5px;background-color:#ddd}.pattern-relateditems-container{display:inline-block;position:relative}.pattern-relateditems-path{display:block;line-height:20px;background-color:#f1f1f1;font-size:12px;border:1px solid #aaa;border-bottom-style:none;z-index:4;position:relative;padding:0 6px;color:#333}.pattern-relateditems-path a{padding:0 6px}.pattern-relateditems-path em{color:#666}.pattern-relateditems-buttons{position:absolute;display:inline-block;text-align:right;font-size:18px;right:0;top:50%;margin-top:-16px}.pattern-relateditems-buttons a{display:block;height:36px;line-height:36px;position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.pattern-relateditems-buttons a:before{content:"\e080"}.pattern-relateditems-result{padding-right:30px;position:relative}.pattern-relateditems-result a:hover{text-decoration:none}.pattern-relateditems-result .pattern-relateditems-result-select{display:block;line-height:15px;padding-top:5px}.pattern-relateditems-result .pattern-relateditems-result-path{display:block;color:#444;font-size:11px}.pattern-relateditems-item .pattern-relateditems-item-path{font-size:11px;color:#444;display:block}.pattern-relateditems-tree .tree-container{box-shadow:0 0 8px 0 #ddd;position:absolute;background-color:white;min-width:200px;padding:0;left:-1px;top:-11px;border:1px solid #5897fb;display:none;z-index:10000;min-width:350px;margin-top:10px}.pattern-relateditems-tree .tree-container .pat-tree{max-height:400px;overflow-y:scroll;overflow-x:hidden;border-top:1px solid #ddd;border-bottom:1px solid #ddd;padding:2px 0}.pattern-relateditems-tree .tree-container .select-folder-label{font-weight:bold}.pattern-relateditems-tree .tree-container .tree-node-empty{font-size:75%}.pattern-relateditems-tree .tree-container .title-container{background-color:#f1f1f1}.pattern-relateditems-tree .tree-container .jqtree-tree{background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(5%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 5%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 5%);background-image:linear-gradient(to bottom, #eee 1%, #fff 5%)}.pattern-relateditems-tree .tree-container .jqtree-tree .pattern-relateditems-buttons{margin-top:-22px;top:inherit}.pattern-relateditems-tree .tree-container .jqtree-tree .jqtree_common{padding-left:2px}.pattern-relateditems-tree .tree-container .jqtree-tree .jqtree_common.jqtree-selected .jqtree_common.jqtree-element{background:#f1f1f1;text-shadow:none}.pattern-relateditems-tree .tree-container .jqtree-tree .jqtree-toggler{top:20%}.pattern-relateditems-tree .tree-container .jqtree-tree li.jqtree_common .jqtree-element{padding:0}.pattern-relateditems-tree .tree-container .jqtree-tree li.jqtree_common .jqtree_common.jqtree-element:hover{background:#f1f1f1}.pattern-relateditems-tree .tree-container .jqtree-tree li.jqtree_common.jqtree-folder{margin-left:18px}.pattern-relateditems-tree .tree-container .jqtree-tree li.jqtree_common.jqtree-folder ul.jqtree_common{margin-left:0;padding-left:0}#content .field .querystring-criteria-wrapper .picker__input{font-size:16px;margin:1px}#content .field .querystring-criteria-wrapper input[type="text"]{font-size:16px;margin:1px}.querystring-criteria-wrapper .querystring-criteria-remove{float:left;display:block;height:13px;right:3px;top:4px;line-height:13px;font-style:italic;outline:0;margin:8px 4px;cursor:pointer;position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.querystring-criteria-wrapper .querystring-criteria-remove:before{content:"\e014"}.querystring-criteria-wrapper .querystring-criteria-index{float:left;margin-right:.3em;margin-top:.1em;margin-bottom:.1em}.querystring-criteria-wrapper .querystring-criteria-operator{float:left;margin-right:.3em;margin-top:.1em;margin-bottom:.1em}.querystring-criteria-wrapper .querystring-criteria-value{float:left;margin-right:0;margin-bottom:.3em}.querystring-criteria-wrapper .querystring-criteria-value .querystring-criteria-value-StringWidget{width:200px;line-height:1.5em}.querystring-criteria-wrapper .querystring-criteria-value .querystring-criteria-value-RelativeDateWidget{width:50px;line-height:1.5em;margin-right:.3em !important}.querystring-criteria-wrapper .querystring-criteria-clear{clear:both}.querystring-criteria-wrapper .pattern-pickadate-date-wrapper .picker__input{line-height:1.5em;width:180px}.querystring-criteria-wrapper .querystring-criteria-betweendt{float:left;padding:5px 8px;display:inline-block}.querystring-criteria-wrapper .pattern-pickadate-wrapper{display:inline-block;float:left}.querystring-preview-wrapper .querystring-preview{border:2px solid #eee;padding:5px;margin:5px;height:258px;overflow-y:scroll}.querystring-preview-wrapper .querystring-preview-title{font-weight:bold;font-size:larger}.querystring-preview-wrapper .querystring-preview-description{color:#bbb}.querystring-preview-wrapper .querystring-previewcount-wrapper{font-style:italic}.break-line{width:80%;padding-left:22px}.break-line div.depth-select-box{width:30%;display:inline;padding-left:15px}.break-line select{margin-left:15px;width:100px;display:inline}.querystring-sort-wrapper{margin:10px 0;clear:both}.querystring-sort-wrapper .querystring-sort-label{padding-right:10px;font-weight:bold}.querystring-sort-wrapper .querystring-sortreverse-label{padding-left:5px;font-weight:bold}.querystring-sort-wrapper .querystring-sortreverse{padding-left:10px}.querystring-sort-wrapper .querystring-sortreverse input{padding:0;margin:0}.querystring-sort-wrapper .select2-container{margin-bottom:0}.modal div.field .querystring-sort-wrapper input[type="checkbox"]{float:none}.mce-container,.mce-container *,.mce-widget,.mce-widget *,.mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#333;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal;font-weight:normal;text-align:left;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-widget button{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:inherit !important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block}.mce-wordcount{position:absolute;top:0;right:0;padding:8px}div.mce-edit-area{background:#fff;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid rgba(0,0,0,0.2);width:20px;height:20px;line-height:20px;text-align:center;vertical-align:middle;padding:2px}.mce-charmap td div{text-align:center}.mce-charmap td:hover{background:#d9d9d9}.mce-grid td.mce-grid-cell div{border:1px solid #d6d6d6;width:15px;height:15px;margin:0;cursor:pointer}.mce-grid td.mce-grid-cell div:focus{border-color:#3498db}.mce-grid td.mce-grid-cell div[disabled]{cursor:not-allowed}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover,.mce-grid a:focus{border-color:#3498db}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#d6d6d6;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#3498db;background:#3498db}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;box-shadow:none}.mce-colorbtn-trans div{text-align:center;vertical-align:middle;font-weight:bold;font-size:20px;line-height:16px;color:#707070}.mce-monospace{font-family:"Courier New",Courier,monospace}.mce-toolbar-grp{padding:2px 0}.mce-toolbar-grp .mce-flow-layout-item{margin-bottom:0}.mce-rtl .mce-wordcount{left:0;right:auto}.mce-croprect-container{position:absolute;top:0;left:0}.mce-croprect-handle{position:absolute;top:0;left:0;width:20px;height:20px;border:2px solid white}.mce-croprect-handle-nw{border-width:2px 0 0 2px;margin:-2px 0 0 -2px;cursor:nw-resize;top:100px;left:100px}.mce-croprect-handle-ne{border-width:2px 2px 0 0;margin:-2px 0 0 -20px;cursor:ne-resize;top:100px;left:200px}.mce-croprect-handle-sw{border-width:0 0 2px 2px;margin:-20px 2px 0 -2px;cursor:sw-resize;top:200px;left:100px}.mce-croprect-handle-se{border-width:0 2px 2px 0;margin:-20px 0 0 -20px;cursor:se-resize;top:200px;left:200px}.mce-croprect-handle-move{position:absolute;cursor:move;border:0}.mce-croprect-block{zoom:1;opacity:.3;filter:alpha(opacity=30);position:absolute;background:black}.mce-imagepanel{overflow:auto;background:black}.mce-imagepanel img{position:absolute}.mce-imagetool.mce-btn .mce-ico{display:block;width:20px;height:20px;text-align:center;line-height:20px;font-size:20px;padding:5px}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;zoom:1;opacity:.4;filter:alpha(opacity=40)}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#aaa;zoom:1;opacity:.6;filter:alpha(opacity=60)}.mce-scroll{position:relative}.mce-panel{border:0 solid #cacaca;border:0 solid rgba(0,0,0,0.2);background-color:#f0f0f0} .mce-floatpanel{position:absolute;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-fixed{position:fixed}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);top:0;left:0;background:#fff;border:1px solid rgba(0,0,0,0.2);border:1px solid rgba(0,0,0,0.25)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px;*margin-top:0}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0.2);border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{zoom:1;opacity:0;filter:alpha(opacity=0);position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{zoom:1;opacity:.3;filter:alpha(opacity=30)}.mce-window-move{cursor:move}.mce-window{-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#fff;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;-o-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #c5c5c5;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#adadad}.mce-window-head .mce-title{line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:#fff;border-top:1px solid #c5c5c5}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window-body .mce-listbox{border-color:#ccc}.mce-rtl .mce-window-head .mce-close{position:absolute;right:auto;left:15px}.mce-rtl .mce-window-head .mce-dragh{left:auto;right:0}.mce-rtl .mce-window-head .mce-title{direction:rtl;text-align:right}.mce-tooltip{position:absolute;padding:5px;zoom:1;opacity:.8;filter:alpha(opacity=80)}.mce-tooltip-inner{font-size:11px;background-color:#000;color:white;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-nw,.mce-tooltip-sw{margin-left:-14px}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:none;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:none;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-progress{display:inline-block;position:relative;height:20px}.mce-progress .mce-bar-container{display:inline-block;width:100px;height:100%;margin-right:8px;border:1px solid #ccc;overflow:hidden}.mce-progress .mce-text{display:inline-block;margin-top:auto;margin-bottom:auto;font-size:14px;width:40px;color:#333}.mce-bar{display:block;width:0;height:100%;background-color:#d7d7d7;-webkit-transition:width .2s ease;-o-transition:width .2s ease;transition:width .2s ease}.mce-notification{position:absolute;background-color:#f0f0f0;padding:5px;margin-top:5px;zoom:1;opacity:.8;filter:alpha(opacity=80);border-width:1px;border-style:solid;border-color:#ccc}.mce-notification-success{background-color:#dff0d8;border-color:#d6e9c6}.mce-notification-info{background-color:#d9edf7;border-color:#779ecb}.mce-notification-warning{background-color:#fcf8e3;border-color:#faebcc}.mce-notification-error{background-color:#f2dede;border-color:#ebccd1}.mce-notification.mce-has-close{padding-right:15px}.mce-notification .mce-ico{margin-top:5px}.mce-notification-inner{display:inline-block;font-size:14px;margin:5px 8px 4px 8px;text-align:center;white-space:normal;color:#31708f}.mce-notification-inner a{text-decoration:underline;cursor:pointer}.mce-notification .mce-progress{margin-right:8px}.mce-notification .mce-progress .mce-text{margin-top:5px}.mce-notification *,.mce-notification .mce-progress .mce-text{color:#333}.mce-notification .mce-progress .mce-bar-container{border-color:#ccc}.mce-notification .mce-progress .mce-bar-container .mce-bar{background-color:#333}.mce-notification-success *,.mce-notification-success .mce-progress .mce-text{color:#3c763d}.mce-notification-success .mce-progress .mce-bar-container{border-color:#d6e9c6}.mce-notification-success .mce-progress .mce-bar-container .mce-bar{background-color:#3c763d}.mce-notification-info *,.mce-notification-info .mce-progress .mce-text{color:#31708f}.mce-notification-info .mce-progress .mce-bar-container{border-color:#779ecb}.mce-notification-info .mce-progress .mce-bar-container .mce-bar{background-color:#31708f}.mce-notification-warning *,.mce-notification-warning .mce-progress .mce-text{color:#8a6d3b}.mce-notification-warning .mce-progress .mce-bar-container{border-color:#faebcc}.mce-notification-warning .mce-progress .mce-bar-container .mce-bar{background-color:#8a6d3b}.mce-notification-error *,.mce-notification-error .mce-progress .mce-text{color:#a94442}.mce-notification-error .mce-progress .mce-bar-container{border-color:#ebccd1}.mce-notification-error .mce-progress .mce-bar-container .mce-bar{background-color:#a94442}.mce-notification .mce-close{position:absolute;top:6px;right:8px;font-size:20px;font-weight:bold;line-height:20px;color:#858585;cursor:pointer;height:20px;overflow:hidden}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-btn{border:1px solid #b1b1b1;border-color:transparent transparent transparent transparent;position:relative;text-shadow:0 1px 1px rgba(255,255,255,0.75);display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0}.mce-btn:hover,.mce-btn:focus{color:#333;background-color:#e3e3e3;border-color:#ccc}.mce-btn.mce-disabled button,.mce-btn.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;box-shadow:none;zoom:1;opacity:.4;filter:alpha(opacity=40)}.mce-btn.mce-active,.mce-btn.mce-active:hover{background-color:#dbdbdb;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);border-color:#ccc}.mce-btn:active{background-color:#e0e0e0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);border-color:#ccc}.mce-btn button{padding:4px 8px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;text-align:center;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px none}.mce-primary{min-width:50px;color:#fff;border:1px solid transparent;border-color:transparent;background-color:#2d8ac7}.mce-primary:hover,.mce-primary:focus{background-color:#257cb6;border-color:transparent}.mce-primary.mce-disabled button,.mce-primary.mce-disabled:hover button{cursor:default;-webkit-box-shadow:none;box-shadow:none;zoom:1;opacity:.4;filter:alpha(opacity=40)}.mce-primary.mce-active,.mce-primary.mce-active:hover,.mce-primary:not(.mce-disabled):active{background-color:#206ea1;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-primary button,.mce-primary button i{color:#fff;text-shadow:1px 1px none}.mce-btn .mce-txt{font-size:inherit;line-height:inherit;color:inherit}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:1px 5px;font-size:12px;*padding-bottom:2px}.mce-btn-small i{line-height:20px;vertical-align:top;*line-height:18px}.mce-btn .mce-caret{margin-top:8px;margin-left:0}.mce-btn-small .mce-caret{margin-top:8px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #333;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#aaa}.mce-caret.mce-up{border-bottom:4px solid #333;border-top:0}.mce-btn-flat{border:0;background:transparent;-webkit-box-shadow:none;box-shadow:none;filter:none}.mce-btn-flat:hover,.mce-btn-flat.mce-active,.mce-btn-flat:focus,.mce-btn-flat:active{border:0;background:#e6e6e6;filter:none;-webkit-box-shadow:none;box-shadow:none}.mce-btn-has-text .mce-ico{padding-right:5px}.mce-rtl .mce-btn button{direction:rtl}.mce-btn-group .mce-btn{border-width:1px;margin:0;margin-left:2px}.mce-btn-group:not(:first-child){border-left:1px solid #d9d9d9;padding-left:3px;margin-left:3px}.mce-btn-group .mce-first{margin-left:0}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-rtl .mce-btn-group .mce-btn{margin-left:0;margin-right:2px}.mce-rtl .mce-btn-group .mce-first{margin-right:0}.mce-rtl .mce-btn-group:not(:first-child){border-left:none;border-right:1px solid #d9d9d9;padding-right:4px;margin-right:4px}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0;overflow:hidden}.mce-checked i.mce-i-checkbox{color:#333;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox,.mce-checkbox.mce-focus i.mce-i-checkbox{border:1px solid rgba(82,168,236,0.8)}.mce-checkbox.mce-disabled .mce-label,.mce-checkbox.mce-disabled i.mce-i-checkbox{color:#acacac}.mce-checkbox .mce-label{vertical-align:middle}.mce-rtl .mce-checkbox{direction:rtl;text-align:right}.mce-rtl i.mce-i-checkbox{margin:0 0 0 3px}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);*height:32px}.mce-combobox input{border:1px solid #c5c5c5;border-right-color:#c5c5c5;height:28px}.mce-combobox.mce-disabled input{color:#adadad}.mce-combobox .mce-btn{border:1px solid #c5c5c5;border-left:0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox.mce-disabled .mce-btn button{cursor:default;-webkit-box-shadow:none;box-shadow:none;zoom:1;opacity:.4;filter:alpha(opacity=40)}.mce-colorbox i{border:1px solid #c5c5c5;width:14px;height:14px}.mce-colorbutton .mce-ico{position:relative}.mce-colorbutton-grid{margin:4px}.mce-colorbutton button{padding-right:6px;padding-left:6px}.mce-colorbutton .mce-preview{padding-right:3px;display:block;position:absolute;left:50%;top:50%;margin-left:-17px;margin-top:7px;background:gray;width:13px;height:2px;overflow:hidden}.mce-colorbutton.mce-btn-small .mce-preview{margin-left:-16px;padding-right:0;width:16px}.mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:1px solid transparent}.mce-colorbutton:hover .mce-open{border-color:#ccc}.mce-colorbutton.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-colorbutton{direction:rtl}.mce-rtl .mce-colorbutton .mce-preview{margin-left:0;padding-right:0;padding-left:3px}.mce-rtl .mce-colorbutton.mce-btn-small .mce-preview{margin-left:0;padding-right:0;padding-left:2px}.mce-rtl .mce-colorbutton .mce-open{padding-left:4px;padding-right:4px;border-left:0}.mce-colorpicker{position:relative;width:250px;height:220px}.mce-colorpicker-sv{position:absolute;top:0;left:0;width:90%;height:100%;border:1px solid #c5c5c5;cursor:crosshair;overflow:hidden}.mce-colorpicker-h-chunk{width:100%}.mce-colorpicker-overlay1,.mce-colorpicker-overlay2{width:100%;height:100%;position:absolute;top:0;left:0}.mce-colorpicker-overlay1{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#ffffff', endColorstr='#00ffffff');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";background:linear-gradient(to right, #fff, rgba(255,255,255,0))}.mce-colorpicker-overlay2{filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#00000000', endColorstr='#000000');-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";background:linear-gradient(to bottom, rgba(0,0,0,0), #000)}.mce-colorpicker-selector1{background:none;position:absolute;width:12px;height:12px;margin:-8px 0 0 -8px;border:1px solid black;border-radius:50%}.mce-colorpicker-selector2{position:absolute;width:10px;height:10px;border:1px solid white;border-radius:50%}.mce-colorpicker-h{position:absolute;top:0;right:0;width:6.5%;height:100%;border:1px solid #c5c5c5;cursor:crosshair}.mce-colorpicker-h-marker{margin-top:-4px;position:absolute;top:0;left:-1px;width:100%;border:1px solid #333;background:#fff;height:4px;z-index:100}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#333}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:#666;color:#fff}.mce-path .mce-divider{display:inline}.mce-disabled .mce-path-item{color:#aaa}.mce-rtl .mce-path{direction:rtl} .mce-fieldset{border:0 solid #9e9e9e}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-tinymce-inline .mce-flow-layout{white-space:nowrap}.mce-rtl .mce-flow-layout{text-align:right;direction:rtl}.mce-rtl .mce-flow-layout-item{margin:2px 2px 2px 0}.mce-rtl .mce-flow-layout-item.mce-last{margin-left:2px}.mce-iframe{border:0 solid rgba(0,0,0,0.2);width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label.mce-disabled{color:#aaa}.mce-label.mce-multiline{white-space:pre-wrap}.mce-label.mce-error{color:#a00}.mce-rtl .mce-label{text-align:right;direction:rtl}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-box-shadow:none;box-shadow:none;filter:none}.mce-menubar .mce-menubtn button{color:#333}.mce-menubar{border:1px solid rgba(217,217,217,0.52)}.mce-menubar .mce-menubtn button span{color:#333}.mce-menubar .mce-caret{border-top-color:#333}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubar .mce-menubtn:focus{border-color:#ccc;background:#fff;filter:none;-webkit-box-shadow:none;box-shadow:none}.mce-menubtn button{color:#333}.mce-menubtn.mce-btn-small span{font-size:12px}.mce-menubtn.mce-fixed-width span{display:inline-block;overflow-x:hidden;text-overflow:ellipsis;width:90px}.mce-menubtn.mce-fixed-width.mce-btn-small span{width:70px}.mce-menubtn .mce-caret{*margin-top:6px}.mce-rtl .mce-menubtn button{direction:rtl;text-align:right}.mce-menu-item{display:block;padding:6px 15px 6px 12px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal;border-left:4px solid transparent;margin-bottom:1px}.mce-menu-item .mce-ico,.mce-menu-item .mce-text{color:#333}.mce-menu-item.mce-disabled .mce-text,.mce-menu-item.mce-disabled .mce-ico{color:#adadad}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text,.mce-menu-item:focus .mce-text{color:white}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-item.mce-disabled:hover{background:#ccc}.mce-menu-shortcut{display:inline-block;color:#adadad}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 15px 0 20px}.mce-menu-item:hover .mce-menu-shortcut,.mce-menu-item.mce-selected .mce-menu-shortcut,.mce-menu-item:focus .mce-menu-shortcut{color:white}.mce-menu-item .mce-caret{margin-top:4px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #333}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret,.mce-menu-item:hover .mce-caret{border-left-color:white}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item-normal.mce-active{background-color:#3498db}.mce-menu-item-preview.mce-active{border-left:5px solid #aaa}.mce-menu-item-normal.mce-active .mce-text{color:white}.mce-menu-item-normal.mce-active:hover .mce-text,.mce-menu-item-normal.mce-active:hover .mce-ico{color:white}.mce-menu-item-normal.mce-active:focus .mce-text,.mce-menu-item-normal.mce-active:focus .mce-ico{color:white}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:white;background-color:#2d8ac7}div.mce-menu .mce-menu-item-sep,.mce-menu-item-sep:hover{border:0;padding:0;height:1px;margin:9px 1px;overflow:hidden;background:transparent;border-bottom:1px solid rgba(0,0,0,0.1);cursor:default;filter:none}.mce-menu.mce-rtl{direction:rtl}.mce-rtl .mce-menu-item{text-align:right;direction:rtl;padding:6px 12px 6px 15px}.mce-menu-align.mce-rtl .mce-menu-shortcut,.mce-menu-align.mce-rtl .mce-caret{right:auto;left:0}.mce-rtl .mce-menu-item .mce-caret{margin-left:6px;margin-right:0;border-right:4px solid #333;border-left:0}.mce-rtl .mce-menu-item.mce-selected .mce-caret,.mce-rtl .mce-menu-item:focus .mce-caret,.mce-rtl .mce-menu-item:hover .mce-caret{border-left-color:transparent;border-right-color:white}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;zoom:1;opacity:.6;filter:alpha(opacity=60);background:#fff url('++resource++plone.app.widgets-tinymce-img-loader.gif') no-repeat center center}.mce-throbber-inline{position:static;height:50px}.mce-menu .mce-throbber-inline{height:25px;background-size:contain}.mce-menu{position:absolute;left:0;top:0;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:-1px 0 0;min-width:160px;background:#fff;border:1px solid #989898;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);max-height:400px;overflow:auto;overflow-x:hidden}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline}.mce-menu-sub-tr-tl{margin:-6px 0 0 -1px}.mce-menu-sub-br-bl{margin:6px 0 0 -1px}.mce-menu-sub-tl-tr{margin:-6px 0 0 1px}.mce-menu-sub-bl-br{margin:6px 0 0 1px}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-rtl .mce-listbox .mce-caret{right:auto;left:8px}.mce-rtl .mce-listbox button{padding-right:10px;padding-left:20px}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-container-body .mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#333}.mce-selectbox{background:#fff;border:1px solid #c5c5c5}.mce-slider{border:1px solid #aaa;background:#eee;width:100px;height:10px;position:relative;display:block}.mce-slider.mce-vertical{width:10px;height:100px}.mce-slider-handle{border:1px solid #bbb;background:#ddd;display:block;width:13px;height:13px;position:absolute;top:0;left:0;margin-left:-1px;margin-top:-2px}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#ccc}.mce-splitbtn button{padding-right:6px;padding-left:6px}.mce-splitbtn .mce-open{padding-right:4px;padding-left:4px}.mce-splitbtn .mce-open.mce-active{background-color:#dbdbdb;outline:1px solid #ccc}.mce-splitbtn.mce-btn-small .mce-open{padding:0 3px 0 3px}.mce-rtl .mce-splitbtn{direction:rtl;text-align:right}.mce-rtl .mce-splitbtn button{padding-right:4px;padding-left:4px}.mce-rtl .mce-splitbtn .mce-open{border-left:0}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #c5c5c5}.mce-tabs,.mce-tabs+.mce-container-body{background:#fff}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #c5c5c5;border-width:0 1px 0 0;background:#fff;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-rtl .mce-tabs{text-align:right;direction:rtl}.mce-rtl .mce-tab{border-width:0 0 0 1px}.mce-textbox{background:#fff;border:1px solid #c5c5c5;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;-webkit-transition:border linear .2s, box-shadow linear .2s;-o-transition:border linear .2s, box-shadow linear .2s;transition:border linear .2s, box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:pre-wrap;*white-space:pre;color:#333}.mce-textbox:focus,.mce-textbox.mce-focus{border-color:#3498db}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px;height:auto}.mce-textbox.mce-disabled{color:#adadad}.mce-rtl .mce-textbox{text-align:right;direction:rtl}@font-face{font-family:'tinymce';src:url('++resource++plone.app.widgets-tinymce-font-tinymce.eot');src:url('++resource++plone.app.widgets-tinymce-font-tinymce.eot?#iefix') format('embedded-opentype'),url('++resource++plone.app.widgets-tinymce-font-tinymce.woff') format('woff'),url('++resource++plone.app.widgets-tinymce-font-tinymce.ttf') format('truetype'),url('++resource++plone.app.widgets-tinymce-font-tinymce.svg#tinymce') format('svg');font-weight:normal;font-style:normal}@font-face{font-family:'tinymce-small';src:url('++resource++plone.app.widgets-tinymce-font-tinymce-small.eot');src:url('++resource++plone.app.widgets-tinymce-font-tinymce-small.eot?#iefix') format('embedded-opentype'),url('++resource++plone.app.widgets-tinymce-font-tinymce-small.woff') format('woff'),url('++resource++plone.app.widgets-tinymce-font-tinymce-small.ttf') format('truetype'),url('++resource++plone.app.widgets-tinymce-font-tinymce-small.svg#tinymce') format('svg');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-variant:normal;font-size:16px;line-height:16px;speak:none;vertical-align:text-top;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;display:inline-block;background:transparent center center;background-size:cover;width:16px;height:16px;color:#333}.mce-btn-small .mce-ico{font-family:'tinymce-small',Arial}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-alignnone:before{content:"\e003"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-insertdatetime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-visualblocks:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-pastetext:before{content:"\e035"}.mce-i-rotateleft:before{content:"\eaa8"}.mce-i-rotateright:before{content:"\eaa9"}.mce-i-crop:before{content:"\ee78"}.mce-i-editimage:before{content:"\e914"}.mce-i-options:before{content:"\ec6a"}.mce-i-flipv:before{content:"\eaaa"}.mce-i-fliph:before{content:"\eaac"}.mce-i-zoomin:before{content:"\eb35"}.mce-i-zoomout:before{content:"\eb36"}.mce-i-sun:before{content:"\eccc"}.mce-i-moon:before{content:"\eccd"}.mce-i-arrowleft:before{content:"\edc0"}.mce-i-arrowright:before{content:"\edb8"}.mce-i-drop:before{content:"\e934"}.mce-i-contrast:before{content:"\ecd4"}.mce-i-sharpen:before{content:"\eba7"}.mce-i-palette:before{content:"\e92a"}.mce-i-resize2:before{content:"\edf9"}.mce-i-orientation:before{content:"\e601"}.mce-i-invert:before{content:"\e602"}.mce-i-gamma:before{content:"\e600"}.mce-i-remove:before{content:"\ed6a"}.mce-i-tablerowprops:before{content:"\e604"}.mce-i-tablecellprops:before{content:"\e605"}.mce-i-table2:before{content:"\e606"}.mce-i-tablemergecells:before{content:"\e607"}.mce-i-tableinsertcolbefore:before{content:"\e608"}.mce-i-tableinsertcolafter:before{content:"\e609"}.mce-i-tableinsertrowbefore:before{content:"\e60a"}.mce-i-tableinsertrowafter:before{content:"\e60b"}.mce-i-tablesplitcells:before{content:"\e60d"}.mce-i-tabledelete:before{content:"\e60e"}.mce-i-tableleftheader:before{content:"\e62a"}.mce-i-tabletopheader:before{content:"\e62b"}.mce-i-tabledeleterow:before{content:"\e800"}.mce-i-tabledeletecol:before{content:"\e801"}.mce-i-codesample:before{content:"\e603"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#bbb}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3a3a3a;background:#d5d5d5 url('++resource++plone.app.widgets-tinymce-img-object.gif') no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-preview-object[data-mce-selected] .mce-shim{display:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3a3a3a;background:#d5d5d5 url('++resource++plone.app.widgets-tinymce-img-anchor.gif') no-repeat center}.mce-nbsp,.mce-shy{background:#aaa}.mce-shy::after{content:'-'}hr{cursor:default}.mce-match-marker{background:#aaa;color:#fff}.mce-match-marker-selected{background:#39f;color:#fff}.mce-spellchecker-word{border-bottom:2px solid #f00;cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #bbb}td[data-mce-selected],th[data-mce-selected]{background-color:#39f !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2d8ac7}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #7acaff}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2d8ac7}.mce-resize-bar-dragging{background-color:blue;zoom:1;opacity:.25;filter:alpha(opacity=25)}.mce-visualblocks p { padding-top: 10px; border: 1px dashed #BBB; margin-left: 3px; @@ -278,4 +278,241 @@ ul.jqtree-tree .jqtree-moving > .jqtree-element .jqtree-title { margin: 0 0 1em 3px; background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybEOnmOvUoWznTqeuEjNSCqeGRUAOw==); } -.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.plone-btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plone-btn:hover,.plone-btn:focus{color:#333;text-decoration:none}.plone-btn:active,.plone-btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.plone-btn.disabled,.plone-btn[disabled],fieldset[disabled] .plone-btn{cursor:not-allowed;pointer-events:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.plone-btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.plone-btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.plone-btn-sm{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.plone-btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.plone-btn-primary:hover,.plone-btn-primary:focus,.plone-btn-primary:active,.plone-btn-primary.active,.open>.dropdown-toggle.plone-btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.plone-btn-primary:active,.plone-btn-primary.active,.open>.dropdown-toggle.plone-btn-primary{background-image:none}.plone-btn-primary.disabled,.plone-btn-primary[disabled],fieldset[disabled] .plone-btn-primary,.plone-btn-primary.disabled:hover,.plone-btn-primary[disabled]:hover,fieldset[disabled] .plone-btn-primary:hover,.plone-btn-primary.disabled:focus,.plone-btn-primary[disabled]:focus,fieldset[disabled] .plone-btn-primary:focus,.plone-btn-primary.disabled:active,.plone-btn-primary[disabled]:active,fieldset[disabled] .plone-btn-primary:active,.plone-btn-primary.disabled.active,.plone-btn-primary[disabled].active,fieldset[disabled] .plone-btn-primary.active{background-color:#428bca;border-color:#357ebd}.plone-btn-primary .badge{color:#428bca;background-color:#fff}.plone-btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.plone-btn-warning:hover,.plone-btn-warning:focus,.plone-btn-warning:active,.plone-btn-warning.active,.open>.dropdown-toggle.plone-btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.plone-btn-warning:active,.plone-btn-warning.active,.open>.dropdown-toggle.plone-btn-warning{background-image:none}.plone-btn-warning.disabled,.plone-btn-warning[disabled],fieldset[disabled] .plone-btn-warning,.plone-btn-warning.disabled:hover,.plone-btn-warning[disabled]:hover,fieldset[disabled] .plone-btn-warning:hover,.plone-btn-warning.disabled:focus,.plone-btn-warning[disabled]:focus,fieldset[disabled] .plone-btn-warning:focus,.plone-btn-warning.disabled:active,.plone-btn-warning[disabled]:active,fieldset[disabled] .plone-btn-warning:active,.plone-btn-warning.disabled.active,.plone-btn-warning[disabled].active,fieldset[disabled] .plone-btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.plone-btn-warning .badge{color:#f0ad4e;background-color:#fff}.plone-btn-default{color:#333;background-color:#fff;border-color:#ccc}.plone-btn-default:hover,.plone-btn-default:focus,.plone-btn-default:active,.plone-btn-default.active,.open>.dropdown-toggle.plone-btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.plone-btn-default:active,.plone-btn-default.active,.open>.dropdown-toggle.plone-btn-default{background-image:none}.plone-btn-default.disabled,.plone-btn-default[disabled],fieldset[disabled] .plone-btn-default,.plone-btn-default.disabled:hover,.plone-btn-default[disabled]:hover,fieldset[disabled] .plone-btn-default:hover,.plone-btn-default.disabled:focus,.plone-btn-default[disabled]:focus,fieldset[disabled] .plone-btn-default:focus,.plone-btn-default.disabled:active,.plone-btn-default[disabled]:active,fieldset[disabled] .plone-btn-default:active,.plone-btn-default.disabled.active,.plone-btn-default[disabled].active,fieldset[disabled] .plone-btn-default.active{background-color:#fff;border-color:#ccc}.plone-btn-default .badge{color:#fff;background-color:#333}.plone-btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.plone-btn-success:hover,.plone-btn-success:focus,.plone-btn-success:active,.plone-btn-success.active,.open>.dropdown-toggle.plone-btn-success{color:#fff;background-color:#449d44;border-color:#398439}.plone-btn-success:active,.plone-btn-success.active,.open>.dropdown-toggle.plone-btn-success{background-image:none}.plone-btn-success.disabled,.plone-btn-success[disabled],fieldset[disabled] .plone-btn-success,.plone-btn-success.disabled:hover,.plone-btn-success[disabled]:hover,fieldset[disabled] .plone-btn-success:hover,.plone-btn-success.disabled:focus,.plone-btn-success[disabled]:focus,fieldset[disabled] .plone-btn-success:focus,.plone-btn-success.disabled:active,.plone-btn-success[disabled]:active,fieldset[disabled] .plone-btn-success:active,.plone-btn-success.disabled.active,.plone-btn-success[disabled].active,fieldset[disabled] .plone-btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.plone-btn-success .badge{color:#5cb85c;background-color:#fff}.plone-btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.plone-btn-info:hover,.plone-btn-info:focus,.plone-btn-info:active,.plone-btn-info.active,.open>.dropdown-toggle.plone-btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.plone-btn-info:active,.plone-btn-info.active,.open>.dropdown-toggle.plone-btn-info{background-image:none}.plone-btn-info.disabled,.plone-btn-info[disabled],fieldset[disabled] .plone-btn-info,.plone-btn-info.disabled:hover,.plone-btn-info[disabled]:hover,fieldset[disabled] .plone-btn-info:hover,.plone-btn-info.disabled:focus,.plone-btn-info[disabled]:focus,fieldset[disabled] .plone-btn-info:focus,.plone-btn-info.disabled:active,.plone-btn-info[disabled]:active,fieldset[disabled] .plone-btn-info:active,.plone-btn-info.disabled.active,.plone-btn-info[disabled].active,fieldset[disabled] .plone-btn-info.active{background-color:#5bc0de;border-color:#46b8da}.plone-btn-info .badge{color:#5bc0de;background-color:#fff}.plone-btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.plone-btn-danger:hover,.plone-btn-danger:focus,.plone-btn-danger:active,.plone-btn-danger.active,.open>.dropdown-toggle.plone-btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.plone-btn-danger:active,.plone-btn-danger.active,.open>.dropdown-toggle.plone-btn-danger{background-image:none}.plone-btn-danger.disabled,.plone-btn-danger[disabled],fieldset[disabled] .plone-btn-danger,.plone-btn-danger.disabled:hover,.plone-btn-danger[disabled]:hover,fieldset[disabled] .plone-btn-danger:hover,.plone-btn-danger.disabled:focus,.plone-btn-danger[disabled]:focus,fieldset[disabled] .plone-btn-danger:focus,.plone-btn-danger.disabled:active,.plone-btn-danger[disabled]:active,fieldset[disabled] .plone-btn-danger:active,.plone-btn-danger.disabled.active,.plone-btn-danger[disabled].active,fieldset[disabled] .plone-btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.plone-btn-danger .badge{color:#d9534f;background-color:#fff}.plone-btn-link{color:#428bca;font-weight:normal;cursor:pointer;border-radius:0}.plone-btn-link,.plone-btn-link:active,.plone-btn-link[disabled],fieldset[disabled] .plone-btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.plone-btn-link,.plone-btn-link:hover,.plone-btn-link:focus,.plone-btn-link:active{border-color:transparent}.plone-btn-link:hover,.plone-btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.plone-btn-group{position:relative;display:inline-block;vertical-align:middle}.plone-btn-group>.btn{position:relative;float:left}.plone-btn-group>.btn:hover,.plone-btn-group>.btn:focus,.plone-btn-group>.btn:active,.plone-btn-group>.btn.active{z-index:2}.plone-btn-group>.btn:focus{outline:0}.plone-btn-group .btn+.btn,.plone-btn-group .btn+.btn-group,.plone-btn-group .btn-group+.btn,.plone-btn-group .btn-group+.btn-group{margin-left:-1px}.plone-btn-block{display:block;width:100%}.plone-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.plone-modal.fade .modal-dialog{-webkit-transform:translate3d(0, -25%, 0);transform:translate3d(0, -25%, 0);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.plone-modal.in .modal-dialog{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}.plone-modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.plone-modal-title{margin:0;line-height:1.42857143}.plone-modal-body{position:relative;padding:15px}.plone-modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.plone-modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.plone-modal-footer .btn-group .btn+.btn{margin-left:-1px}.plone-modal-footer .btn-block+.btn-block{margin-left:0}.plone-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.plone-modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.plone-modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.plone-progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.plone-progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.plone-progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.plone-progress-bar[aria-valuenow="1"],.plone-progress-bar[aria-valuenow="2"]{min-width:30px}.plone-progress-bar[aria-valuenow="0"]{color:#777;min-width:30px;background-color:transparent;background-image:none;box-shadow:none}.plone-modal-loading{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease;-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px;border-radius:0.5em;width:40em;height:40px}.plone-modal-loading[aria-valuenow="1"],.plone-modal-loading[aria-valuenow="2"]{min-width:30px}.plone-modal-loading[aria-valuenow="0"]{color:#777;min-width:30px;background-color:transparent;background-image:none;box-shadow:none}.plone-modal-header{padding:5px 10px}.plone-modal-title{font-size:120%;margin:4px 0}.plone-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;z-index:1040}.plone-modal.in{display:block !important}.plone-modal.fade{opacity:0;-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}.plone-modal.fade.in{opacity:1;-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}.plone-modal-open{overflow:hidden;padding-right:15px}.plone-modal-open .plone-modal{overflow-x:hidden;overflow-y:auto}.plone-modal-dialog{position:relative;width:auto;margin:10px}.plone-modal.fade .plone-modal-dialog{-webkit-transform:translate3d(0, -25%, 0);transform:translate3d(0, -25%, 0);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.plone-modal.in .plone-modal-dialog{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@media (min-width:768px){.plone-modal-dialog{width:600px;margin:30px auto}}.plone-modal-content{background:#fff;overflow:hidden}.plone-modal-body{padding:15px;position:relative}.plone-modal-footer{text-align:right;border-top:1px solid #e5e5e5;padding:15px}.plone-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;opacity:.85}.plone-modal-close{float:right;font-size:21px;line-height:1;color:#000;opacity:.2;filter:alpha(opacity=20)}.plone-modal-close:hover{text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.pat-autotoc .autotoc-nav{float:right;border:1px solid #DDD;padding:0.5em 0;margin:0 0 1em 1em}.pat-autotoc .autotoc-nav a{display:block}.pat-autotoc .autotoc-nav a:focus{outline-style:none}.pat-autotoc .autotoc-nav .autotoc-level-1{margin:0 1em 0 1em}.pat-autotoc .autotoc-nav .autotoc-level-2{margin:0 1em 0 2em}.pat-autotoc .autotoc-nav .autotoc-level-3{margin:0 1em 0 3em}.pat-autotoc.autotabs .autotoc-nav{float:none;padding:0;margin:0 0 0.3em 0;border:0;border-bottom:1px solid #DDD}.pat-autotoc.autotabs .autotoc-nav:after{content:"";display:table;line-height:0}.pat-autotoc.autotabs .autotoc-nav a{display:inline-block;margin:0 .5em -1px .5em;line-height:1.5em;padding:0.4em 0.8em;text-decoration:none;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ie-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.pat-autotoc.autotabs .autotoc-nav a.active{border:1px solid #DDD;border-bottom-color:#FFF;color:#555555;cursor:default}.pat-autotoc.autotabs .autotoc-nav a.active:hover{background-color:transparent}.pat-autotoc.autotabs .autotoc-nav a:hover{background-color:#EEE;border-color:#EEE;border-bottom-color:#FFF}.pat-autotoc.autotabs .autotoc-section{display:none}.pat-autotoc.autotabs .autotoc-section.active{display:block}.pat-autotoc.autotabs .autotoc-section.active legend{display:none}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.dropzone,.dropzone *,.dropzone-previews,.dropzone-previews *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dropzone{position:relative;border:1px solid rgba(0,0,0,0.08);background:rgba(0,0,0,0.02);padding:1em}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message span{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone .dz-message{opacity:1;-ms-filter:none;filter:none}.dropzone.dz-drag-hover{border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.04)}.dropzone.dz-started .dz-message{display:none}.dropzone .dz-preview,.dropzone-previews .dz-preview{background:rgba(255,255,255,0.8);position:relative;display:inline-block;margin:17px;vertical-align:top;border:1px solid #acacac;padding:6px 6px 6px 6px}.dropzone .dz-preview.dz-file-preview [data-dz-thumbnail],.dropzone-previews .dz-preview.dz-file-preview [data-dz-thumbnail]{display:none}.dropzone .dz-preview .dz-details,.dropzone-previews .dz-preview .dz-details{width:100px;height:100px;position:relative;background:#ebebeb;padding:5px;margin-bottom:22px}.dropzone .dz-preview .dz-details .dz-filename,.dropzone-previews .dz-preview .dz-details .dz-filename{overflow:hidden;height:100%}.dropzone .dz-preview .dz-details img,.dropzone-previews .dz-preview .dz-details img{position:absolute;top:0;left:0;width:100px;height:100px}.dropzone .dz-preview .dz-details .dz-size,.dropzone-previews .dz-preview .dz-details .dz-size{position:absolute;bottom:-28px;left:3px;height:28px;line-height:28px}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{display:block}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{display:block}.dropzone .dz-preview:hover .dz-details img,.dropzone-previews .dz-preview:hover .dz-details img{display:none}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{display:none;position:absolute;width:40px;height:40px;font-size:30px;text-align:center;right:-10px;top:-10px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{color:#8cc657}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{color:#ee162d}.dropzone .dz-preview .dz-progress,.dropzone-previews .dz-preview .dz-progress{position:absolute;top:100px;left:6px;right:6px;height:6px;background:#d7d7d7;display:none}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{display:block;position:absolute;top:0;bottom:0;left:0;width:0%;background-color:#8cc657}.dropzone .dz-preview.dz-processing .dz-progress,.dropzone-previews .dz-preview.dz-processing .dz-progress{display:block}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:none;position:absolute;top:-5px;left:-20px;background:rgba(245,245,245,0.8);padding:8px 10px;color:#800;min-width:140px;max-width:500px;z-index:500}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{display:block}.dropzone{border:1px solid rgba(0,0,0,0.03);min-height:360px;-webkit-border-radius:3px;border-radius:3px;background:rgba(0,0,0,0.03);padding:23px}.dropzone .dz-default.dz-message{opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-image:url('++resource++plone.app.widgets-dropzone-spritemap.png");background-repeat:no-repeat;background-position:0 0;position:absolute;width:428px;height:123px;margin-left:-214px;margin-top:-61.5px;top:50%;left:50%}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-default.dz-message{background-image:url('++resource++plone.app.widgets-dropzone-spritemap@2x.png");-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-default.dz-message span{display:none}.dropzone.dz-square .dz-default.dz-message{background-position:0 -123px;width:268px;margin-left:-134px;height:174px;margin-top:-87px}.dropzone.dz-drag-hover .dz-message{opacity:0.15;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=15)";filter:alpha(opacity=15)}.dropzone.dz-started .dz-message{display:block;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0)}.dropzone .dz-preview,.dropzone-previews .dz-preview{-webkit-box-shadow:1px 1px 4px rgba(0,0,0,0.16);box-shadow:1px 1px 4px rgba(0,0,0,0.16);font-size:14px}.dropzone .dz-preview.dz-image-preview:hover .dz-details img,.dropzone-previews .dz-preview.dz-image-preview:hover .dz-details img{display:block;opacity:0.1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";filter:alpha(opacity=10)}.dropzone .dz-preview.dz-success .dz-success-mark,.dropzone-previews .dz-preview.dz-success .dz-success-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-error-mark,.dropzone-previews .dz-preview.dz-error .dz-error-mark{opacity:1;-ms-filter:none;filter:none}.dropzone .dz-preview.dz-error .dz-progress .dz-upload,.dropzone-previews .dz-preview.dz-error .dz-progress .dz-upload{background:#ee1e2d}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{display:block;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;background-image:url('++resource++plone.app.widgets-dropzone-spritemap.png");background-repeat:no-repeat}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark,.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-image:url('++resource++plone.app.widgets-dropzone-spritemap@2x.png");-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview .dz-error-mark span,.dropzone-previews .dz-preview .dz-error-mark span,.dropzone .dz-preview .dz-success-mark span,.dropzone-previews .dz-preview .dz-success-mark span{display:none}.dropzone .dz-preview .dz-error-mark,.dropzone-previews .dz-preview .dz-error-mark{background-position:-268px -123px}.dropzone .dz-preview .dz-success-mark,.dropzone-previews .dz-preview .dz-success-mark{background-position:-268px -163px}.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{-webkit-animation:loading 0.4s linear infinite;-moz-animation:loading 0.4s linear infinite;-o-animation:loading 0.4s linear infinite;-ms-animation:loading 0.4s linear infinite;animation:loading 0.4s linear infinite;-webkit-transition:width .3s ease-in-out;-moz-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;-ms-transition:width .3s ease-in-out;transition:width .3s ease-in-out;-webkit-border-radius:2px;border-radius:2px;position:absolute;top:0;left:0;width:0%;height:100%;background-image:url('++resource++plone.app.widgets-dropzone-spritemap.png");background-repeat:repeat-x;background-position:0 -400px}@media all and (-webkit-min-device-pixel-ratio:1.5),(min--moz-device-pixel-ratio:1.5),(-o-min-device-pixel-ratio:1.5/1),(min-device-pixel-ratio:1.5),(min-resolution:138dpi),(min-resolution:1.5dppx){.dropzone .dz-preview .dz-progress .dz-upload,.dropzone-previews .dz-preview .dz-progress .dz-upload{background-image:url('++resource++plone.app.widgets-dropzone-spritemap@2x.png");-webkit-background-size:428px 406px;-moz-background-size:428px 406px;background-size:428px 406px}}.dropzone .dz-preview.dz-success .dz-progress,.dropzone-previews .dz-preview.dz-success .dz-progress{display:block;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .4s ease-in-out;-moz-transition:opacity .4s ease-in-out;-o-transition:opacity .4s ease-in-out;-ms-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out}.dropzone .dz-preview .dz-error-message,.dropzone-previews .dz-preview .dz-error-message{display:block;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.dropzone .dz-preview:hover.dz-error .dz-error-message,.dropzone-previews .dz-preview:hover.dz-error .dz-error-message{opacity:1;-ms-filter:none;filter:none}.dropzone a.dz-remove,.dropzone-previews a.dz-remove{background-image:-webkit-linear-gradient(top, #fafafa, #eee);background-image:-moz-linear-gradient(top, #fafafa, #eee);background-image:-o-linear-gradient(top, #fafafa, #eee);background-image:-ms-linear-gradient(top, #fafafa, #eee);background-image:linear-gradient(to bottom, #fafafa, #eee);-webkit-border-radius:2px;border-radius:2px;border:1px solid #eee;text-decoration:none;display:block;padding:4px 5px;text-align:center;color:#aaa;margin-top:26px}.dropzone a.dz-remove:hover,.dropzone-previews a.dz-remove:hover{color:#666}@-moz-keyframes loading{from{background-position:0 -400px}to{background-position:-7px -400px}}@-webkit-keyframes loading{from{background-position:0 -400px}to{background-position:-7px -400px}}@-o-keyframes loading{from{background-position:0 -400px}to{background-position:-7px -400px}}@keyframes loading{from{background-position:0 -400px}to{background-position:-7px -400px}}.upload-container .upload-area{border:3px dashed #ccc;padding:30px;border-radius:5px;margin:0 auto 15px auto;width:600px}.upload-container .upload-area:hover{background:rgba(0,0,0,0.025);cursor:pointer}.upload-container .upload-area button.browse,.upload-container .upload-area .controls button,.upload-container .upload-area input{width:100%}.upload-container .upload-queue .input-sm{line-height:1em;font-size:0.8em;height:24px;margin-bottom:1px}.upload-container .upload-queue .controls{margin-top:10px;padding-top:10px}.upload-container .upload-queue .previews{margin-top:4em}.upload-container .upload-queue .previews .item{padding:5px 0;clear:both}.upload-container .upload-queue .previews .title{padding-left:3px}.upload-container .upload-queue .previews .info img{width:32px;height:32px;margin-top:-26px;float:right}.upload-container #fakeUploadFile{height:35px}.upload-container .pattern-relateditems-container,.upload-container .pattern-relateditems-container>*{width:100% !important}.upload-container .align-right{text-align:right}.upload-container .controls{display:none}.upload-container .actions{margin-top:.5em}.upload-container .progress{height:34px;margin-bottom:0}.upload-container .dz-drag-hover{-webkit-box-shadow:inset 0 0 20px rgba(0,0,0,0.75),0 0 0 1000px rgba(255,255,255,0.85);-moz-box-shadow:inset 0 0 20px rgba(0,0,0,0.75),0 0 0 1000px rgba(255,255,255,0.85);box-shadow:inset 0 0 20px rgba(0,0,0,0.75),0 0 0 1000px rgba(0,0,0,0.85);z-index:99999;position:relative}.upload-container .upload .dz-preview .dz-details .dz-size,.upload-container .upload-previews .dz-preview .dz-details .dz-size{font-size:11px}div.linkModal .pattern-relateditems-container{padding-top:0;margin-right:20px}div.linkModal hr{margin:5px 0}div.linkModal div.linkTypes{line-height:15px}div.linkModal div.linkTypes input{margin:5px 5px 9px 9px}div.linkModal input[name="external"],div.linkModal input[name="externalImage"]{width:80%}div.linkModal fieldset{padding-top:10px;min-height:90px}div.linkModal fieldset .input-wrapper{display:inline-flex}div.linkModal .common-controls{padding-top:10px;border-top:1px solid #ccc}.tinymce-dropzone{position:relative}.tinymce-dropzone .dz-notice{display:none;-ms-filter:none;filter:none;pointer-events:none}.tinymce-dropzone *{opacity:1}.tinymce-dropzone .dropzone-previews{background-color:#f5f5f5}.tinymce-dropzone .fallback{display:none}.tinymce-dropzone.dz-drag-hover{box-sizing:border-box}.tinymce-dropzone.dz-drag-hover *{opacity:0.7}.tinymce-dropzone.dz-drag-hover iframe{pointer-events:none}.tinymce-dropzone.dz-drag-hover p{font-size:250%;position:absolute;width:400px;height:50px;top:50%;left:50%;margin-left:-200px;display:block;text-align:center;opacity:1}.tinymce-dropzone.dz-drag-hover .dz-notice{display:block;opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-position:0 0;position:absolute;width:100%;height:100%;top:0;left:0}.pattern-relateditems-result-image img{max-height:30px;max-width:80px}.pat-passwordstrength+.pat-passwordstrength-meter{margin-top:10px;line-height:1px}.pat-passwordstrength+.pat-passwordstrength-meter div{display:inline-block;box-sizing:border-box;width:25%;height:20px;border-right:2px solid white;background-color:#E5E5E5}.pat-passwordstrength+.pat-passwordstrength-meter div:last-child{border-right:0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAALCAMAAABxsOwqAAABgFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEDAwMFBQUICAgNDQ0SEhIbGxskJCQqKio3Nzd1dXV2dnZ/f3+Ojo6QkJCZmZmfn5+kpKSoqKiqqqqtra2urq6vr6+wsLCwsLCxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFsbGxqampoaGhmZmZkZGRiYmJgYGBdXV1cXFxaWlpYWFhVVVVUVFRSUlJQUFBOTk5MTExKSkpHR0dFRUVDQ0NBQUE/Pz8M+rxwAAAAX3RSTlMAAAAAAAAAAAAAAAAAAAECBAcLERchLTpOYnmMq8XT8efn0KaehnNlV05EPDgyMC0rKCcmJiYoKSosLi8xMzY6SVhkc36Gkpeepaitr7O2ur/H0dji6u709/n6+/39/siucVUAAAABYktHRG4iD1EXAAAAT0lEQVQI12Pg4uJyjA/1AlIMXFymUY76gZ5gprM3F5dRFITpy8WlC2aaugfq6jrG6wOZfuHxYKDLwOUbBWEaIZj6QCaEFWUEZ4JEPaGipgA/ehqVQY+CkQAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:95% center}.pat-passwordstrength+.pat-passwordstrength-meter.level-1 div:first-child{background-color:orangered}.pat-passwordstrength+.pat-passwordstrength-meter.level-2 div:first-child,.pat-passwordstrength+.pat-passwordstrength-meter.level-2 div:first-child+div{background-color:orange}.pat-passwordstrength+.pat-passwordstrength-meter.level-3 div:first-child,.pat-passwordstrength+.pat-passwordstrength-meter.level-3 div:first-child+div,.pat-passwordstrength+.pat-passwordstrength-meter.level-3 div:first-child+div+div{background-color:orange}.pat-passwordstrength+.pat-passwordstrength-meter.level-4 div{background-color:lightgreen}#content .pat-autotoc.autotabs fieldset.autotoc-section{border:0 !important}#content .pat-autotoc.autotabs .autotoc-nav{border-style:solid solid none;border-top-left-radius:0.5em;border-top-right-radius:0.5em;display:block;margin-left:0;background-color:#DDDDDD}#content .pat-autotoc.autotabs .autotoc-level-1{margin:0.25em 0.25em 0;line-height:2em;border:medium none;padding:0 0.75em;text-decoration:none}#content .pat-autotoc.autotabs .autotoc-level-1:hover{background:White;border-top-left-radius:0.5em;border-top-right-radius:0.5em;color:Black}#content .pat-autotoc.autotabs .autotoc-level-1.active{font-weight:bold;color:Black;background:White}#content .pat-select2,#content .pat-relateditems{min-width:400px}#content .pat-select2 a.select2-choice:link{border:1px solid #AAAAAA !important;color:#444444 !important}#content .pat-select2 ul.select2-results{margin:4px 4px 4px 0;list-style:none}#content .pat-select2 a.select2-search-choice-close:link{border:0}#content .pat-select2.select2-container-multi .select2-choices{margin:0;line-height:1.2em}#content .pat-select2.select2-container-multi .select2-choices .select2-search-choice{line-height:1.2em}#content .querystring-wrapper{font-size:0.9em}#content .querystring-wrapper .querystring-criteria-wrapper .select2-choices{margin:0}#content .field .select2-container input[type="text"]{border:0;font-size:1.2em;margin:1px 0;padding:5px}#content .field .select2-container .select2-choice span{color:#333}#content ul.picker__list{list-style:none;margin:0;padding:0}#content ul.picker__list .picker__list-item{margin:0}#content ul.picker__list .picker__button--clear{font-size:1em;margin:1em auto 1em}#content .picker--opened .picker__holder{opacity:1}#content ul.select2-choices{margin-left:0}#content .pattern-relateditems-container a{border-bottom:none}.select2-drop{font-size:0.8em}dl.actionMenu dd{display:none}dl.actionMenu dt{margin:0 0.25em}dl.actionMenu.activated dd{display:block}.LSBox .searchButton,.LSBox .searchSection{display:none}#content .field input[type="text"]{margin:0;padding:0.1em 0.2em;border:1px solid #AAA;cursor:text;background-color:#FFF;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:-o-linear-gradient(top, #eee 1%, #fff 15%);background-image:-ms-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(top, #eee 1%, #fff 15%);font-size:1.5em}#content .field input[type="text"]:focus{border-color:#5897FB;outline:0}#content .field textarea{margin:0;padding:0.1em 0.2em;border:1px solid #AAA;cursor:text;background-color:#FFF;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:-o-linear-gradient(top, #eee 1%, #fff 15%);background-image:-ms-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(top, #eee 1%, #fff 15%);padding:0.2em;min-height:5em}#content .field textarea:focus{border-color:#5897FB;outline:0}.modal-body .linkModal hr{border-color:#eee;border-style:solid}.modal-body .linkModal .linkTypes label:hover{cursor:pointer}.modal-body .linkModal .control-group{margin-top:10px}.modal-body .linkModal select,.modal-body .linkModal input[type="text"]{font-size:120%;min-width:300px}/*# sourceMappingURL=++resource++plone.app.widgets.min.css.map */ \ No newline at end of file +.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#20638f;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2980b9;border-color:transparent}.btn-primary .badge{color:#2980b9;background-color:#fff}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.plone-btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.plone-btn:focus,.plone-btn:active:focus,.plone-btn.active:focus,.plone-btn.focus,.plone-btn:active.focus,.plone-btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.plone-btn:hover,.plone-btn:focus,.plone-btn.focus{color:#333;text-decoration:none}.plone-btn:active,.plone-btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.plone-btn.disabled,.plone-btn[disabled],fieldset[disabled] .plone-btn{cursor:not-allowed;pointer-events:none;zoom:1;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.plone-btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.plone-btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.plone-btn-sm{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.plone-btn-primary{color:#fff;background-color:#2980b9;border-color:transparent}.plone-btn-primary:hover,.plone-btn-primary:focus,.plone-btn-primary.focus,.plone-btn-primary:active,.plone-btn-primary.active,.open>.dropdown-toggle.plone-btn-primary{color:#fff;background-color:#20638f;border-color:rgba(0,0,0,0)}.plone-btn-primary:active,.plone-btn-primary.active,.open>.dropdown-toggle.plone-btn-primary{background-image:none}.plone-btn-primary.disabled,.plone-btn-primary[disabled],fieldset[disabled] .plone-btn-primary,.plone-btn-primary.disabled:hover,.plone-btn-primary[disabled]:hover,fieldset[disabled] .plone-btn-primary:hover,.plone-btn-primary.disabled:focus,.plone-btn-primary[disabled]:focus,fieldset[disabled] .plone-btn-primary:focus,.plone-btn-primary.disabled.focus,.plone-btn-primary[disabled].focus,fieldset[disabled] .plone-btn-primary.focus,.plone-btn-primary.disabled:active,.plone-btn-primary[disabled]:active,fieldset[disabled] .plone-btn-primary:active,.plone-btn-primary.disabled.active,.plone-btn-primary[disabled].active,fieldset[disabled] .plone-btn-primary.active{background-color:#2980b9;border-color:transparent}.plone-btn-primary .badge{color:#2980b9;background-color:#fff}.plone-btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.plone-btn-warning:hover,.plone-btn-warning:focus,.plone-btn-warning.focus,.plone-btn-warning:active,.plone-btn-warning.active,.open>.dropdown-toggle.plone-btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.plone-btn-warning:active,.plone-btn-warning.active,.open>.dropdown-toggle.plone-btn-warning{background-image:none}.plone-btn-warning.disabled,.plone-btn-warning[disabled],fieldset[disabled] .plone-btn-warning,.plone-btn-warning.disabled:hover,.plone-btn-warning[disabled]:hover,fieldset[disabled] .plone-btn-warning:hover,.plone-btn-warning.disabled:focus,.plone-btn-warning[disabled]:focus,fieldset[disabled] .plone-btn-warning:focus,.plone-btn-warning.disabled.focus,.plone-btn-warning[disabled].focus,fieldset[disabled] .plone-btn-warning.focus,.plone-btn-warning.disabled:active,.plone-btn-warning[disabled]:active,fieldset[disabled] .plone-btn-warning:active,.plone-btn-warning.disabled.active,.plone-btn-warning[disabled].active,fieldset[disabled] .plone-btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.plone-btn-warning .badge{color:#f0ad4e;background-color:#fff}.plone-btn-default{color:#333;background-color:#fff;border-color:#ccc}.plone-btn-default:hover,.plone-btn-default:focus,.plone-btn-default.focus,.plone-btn-default:active,.plone-btn-default.active,.open>.dropdown-toggle.plone-btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.plone-btn-default:active,.plone-btn-default.active,.open>.dropdown-toggle.plone-btn-default{background-image:none}.plone-btn-default.disabled,.plone-btn-default[disabled],fieldset[disabled] .plone-btn-default,.plone-btn-default.disabled:hover,.plone-btn-default[disabled]:hover,fieldset[disabled] .plone-btn-default:hover,.plone-btn-default.disabled:focus,.plone-btn-default[disabled]:focus,fieldset[disabled] .plone-btn-default:focus,.plone-btn-default.disabled.focus,.plone-btn-default[disabled].focus,fieldset[disabled] .plone-btn-default.focus,.plone-btn-default.disabled:active,.plone-btn-default[disabled]:active,fieldset[disabled] .plone-btn-default:active,.plone-btn-default.disabled.active,.plone-btn-default[disabled].active,fieldset[disabled] .plone-btn-default.active{background-color:#fff;border-color:#ccc}.plone-btn-default .badge{color:#fff;background-color:#333}.plone-btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.plone-btn-success:hover,.plone-btn-success:focus,.plone-btn-success.focus,.plone-btn-success:active,.plone-btn-success.active,.open>.dropdown-toggle.plone-btn-success{color:#fff;background-color:#449d44;border-color:#398439}.plone-btn-success:active,.plone-btn-success.active,.open>.dropdown-toggle.plone-btn-success{background-image:none}.plone-btn-success.disabled,.plone-btn-success[disabled],fieldset[disabled] .plone-btn-success,.plone-btn-success.disabled:hover,.plone-btn-success[disabled]:hover,fieldset[disabled] .plone-btn-success:hover,.plone-btn-success.disabled:focus,.plone-btn-success[disabled]:focus,fieldset[disabled] .plone-btn-success:focus,.plone-btn-success.disabled.focus,.plone-btn-success[disabled].focus,fieldset[disabled] .plone-btn-success.focus,.plone-btn-success.disabled:active,.plone-btn-success[disabled]:active,fieldset[disabled] .plone-btn-success:active,.plone-btn-success.disabled.active,.plone-btn-success[disabled].active,fieldset[disabled] .plone-btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.plone-btn-success .badge{color:#5cb85c;background-color:#fff}.plone-btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.plone-btn-info:hover,.plone-btn-info:focus,.plone-btn-info.focus,.plone-btn-info:active,.plone-btn-info.active,.open>.dropdown-toggle.plone-btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.plone-btn-info:active,.plone-btn-info.active,.open>.dropdown-toggle.plone-btn-info{background-image:none}.plone-btn-info.disabled,.plone-btn-info[disabled],fieldset[disabled] .plone-btn-info,.plone-btn-info.disabled:hover,.plone-btn-info[disabled]:hover,fieldset[disabled] .plone-btn-info:hover,.plone-btn-info.disabled:focus,.plone-btn-info[disabled]:focus,fieldset[disabled] .plone-btn-info:focus,.plone-btn-info.disabled.focus,.plone-btn-info[disabled].focus,fieldset[disabled] .plone-btn-info.focus,.plone-btn-info.disabled:active,.plone-btn-info[disabled]:active,fieldset[disabled] .plone-btn-info:active,.plone-btn-info.disabled.active,.plone-btn-info[disabled].active,fieldset[disabled] .plone-btn-info.active{background-color:#5bc0de;border-color:#46b8da}.plone-btn-info .badge{color:#5bc0de;background-color:#fff}.plone-btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.plone-btn-danger:hover,.plone-btn-danger:focus,.plone-btn-danger.focus,.plone-btn-danger:active,.plone-btn-danger.active,.open>.dropdown-toggle.plone-btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.plone-btn-danger:active,.plone-btn-danger.active,.open>.dropdown-toggle.plone-btn-danger{background-image:none}.plone-btn-danger.disabled,.plone-btn-danger[disabled],fieldset[disabled] .plone-btn-danger,.plone-btn-danger.disabled:hover,.plone-btn-danger[disabled]:hover,fieldset[disabled] .plone-btn-danger:hover,.plone-btn-danger.disabled:focus,.plone-btn-danger[disabled]:focus,fieldset[disabled] .plone-btn-danger:focus,.plone-btn-danger.disabled.focus,.plone-btn-danger[disabled].focus,fieldset[disabled] .plone-btn-danger.focus,.plone-btn-danger.disabled:active,.plone-btn-danger[disabled]:active,fieldset[disabled] .plone-btn-danger:active,.plone-btn-danger.disabled.active,.plone-btn-danger[disabled].active,fieldset[disabled] .plone-btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.plone-btn-danger .badge{color:#d9534f;background-color:#fff}.plone-btn-link{color:#337ab7;font-weight:normal;border-radius:0}.plone-btn-link,.plone-btn-link:active,.plone-btn-link.active,.plone-btn-link[disabled],fieldset[disabled] .plone-btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.plone-btn-link,.plone-btn-link:hover,.plone-btn-link:focus,.plone-btn-link:active{border-color:transparent}.plone-btn-link:hover,.plone-btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.plone-btn-link[disabled]:hover,fieldset[disabled] .plone-btn-link:hover,.plone-btn-link[disabled]:focus,fieldset[disabled] .plone-btn-link:focus{color:#777;text-decoration:none}.plone-btn-group .plone-btn+.plone-btn,.plone-btn-group .plone-btn+.plone-btn-group,.plone-btn-group .plone-btn-group+.plone-btn,.plone-btn-group .plone-btn-group+.plone-btn-group{margin-left:-1px}.plone-btn-block{display:block;width:100%}.plone-close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;zoom:1;opacity:.2;filter:alpha(opacity=20)}.plone-close:hover,.plone-close:focus{color:#000;text-decoration:none;cursor:pointer;zoom:1;opacity:.5;filter:alpha(opacity=50)}button.plone-close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.plone-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.plone-modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out}.plone-modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.plone-modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.plone-modal-title{margin:0;line-height:1.42857143}.plone-modal-body{position:relative;padding:15px}.plone-modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.plone-modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.plone-modal-footer .btn-group .btn+.btn{margin-left:-1px}.plone-modal-footer .btn-block+.btn-block{margin-left:0}.plone-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.plone-modal-backdrop.fade{zoom:1;opacity:0;filter:alpha(opacity=0)}.plone-modal-backdrop.in{zoom:1;opacity:.5;filter:alpha(opacity=50)}.plone-progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.plone-progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px}.plone-progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#dfdfdf;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.plone-modal-loading{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#dfdfdf;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease;-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-size:40px 40px;border-radius:.5em;width:40em;height:40px}.plone-modal-header{padding:5px 10px}.plone-modal-title{font-size:120%;margin:4px 0}.plone-modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0;z-index:1040}.plone-modal.in{display:block !important}.plone-modal.fade{opacity:0;-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}.plone-modal.fade.in{opacity:1;-webkit-transition:opacity .5s linear;-o-transition:opacity .5s linear;transition:opacity .5s linear}.plone-modal-open{overflow:hidden;padding-right:15px}.plone-modal-open .plone-modal{overflow-x:hidden;overflow-y:auto}.plone-modal-dialog{position:relative;width:auto;margin:10px}.plone-modal.fade .plone-modal-dialog{-webkit-transform:translate3d(0, -25%, 0);transform:translate3d(0, -25%, 0);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.plone-modal.in .plone-modal-dialog{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}@media (min-width:768px){.plone-modal-dialog{width:600px;margin:30px auto}}.plone-modal-content{background:#fff;overflow:inherit}.plone-modal-body{padding:15px;position:relative}.plone-modal-footer{text-align:right;border-top:1px solid #e5e5e5;padding:15px}.plone-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000;opacity:.85}.plone-modal-close{float:right;font-size:21px;line-height:1;color:#000;opacity:.2;filter:alpha(opacity=20)}.plone-modal-close:hover{text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}.pat-autotoc .autotoc-nav{float:right;border:1px solid #ddd;padding:.5em 0;margin:0 0 1em 1em}.pat-autotoc .autotoc-nav a{display:block}.pat-autotoc .autotoc-nav a:focus{outline-style:none}.pat-autotoc .autotoc-nav .autotoc-level-1{margin:0 1em 0 1em}.pat-autotoc .autotoc-nav .autotoc-level-2{margin:0 1em 0 2em}.pat-autotoc .autotoc-nav .autotoc-level-3{margin:0 1em 0 3em}.pat-autotoc.autotabs .autotoc-nav{float:none;padding:0;margin:0 0 .3em 0;border:0;border-bottom:1px solid #ddd}.pat-autotoc.autotabs .autotoc-nav:after{content:"";display:table;line-height:0}.pat-autotoc.autotabs .autotoc-nav a{display:inline-block;margin:0 .5em -1px .5em;line-height:1.5em;padding:.4em .8em;text-decoration:none;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;-ie-border-radius:4px 4px 0 0;-o-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.pat-autotoc.autotabs .autotoc-nav a.active{border:1px solid #ddd;border-bottom-color:#fff;color:#555;cursor:default}.pat-autotoc.autotabs .autotoc-nav a.active:hover{background-color:transparent}.pat-autotoc.autotabs .autotoc-nav a:hover{background-color:#eee;border-color:#eee;border-bottom-color:#fff}.pat-autotoc.autotabs .autotoc-section{display:none}.pat-autotoc.autotabs .autotoc-section.active{display:block}.pat-autotoc.autotabs .autotoc-section.active legend{display:none}@-webkit-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-moz-keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@keyframes passing-through{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%,70%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}100%{opacity:0;-webkit-transform:translateY(-40px);-moz-transform:translateY(-40px);-ms-transform:translateY(-40px);-o-transform:translateY(-40px);transform:translateY(-40px)}}@-webkit-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@-moz-keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;-webkit-transform:translateY(40px);-moz-transform:translateY(40px);-ms-transform:translateY(40px);-o-transform:translateY(40px);transform:translateY(40px)}30%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}@-moz-keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}@keyframes pulse{0%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}10%{-webkit-transform:scale(1.1);-moz-transform:scale(1.1);-ms-transform:scale(1.1);-o-transform:scale(1.1);transform:scale(1.1)}20%{-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}}.dropzone,.dropzone *{box-sizing:border-box}.dropzone{min-height:150px;border:2px solid rgba(0,0,0,0.3);background:white;padding:20px 20px}.dropzone.dz-clickable{cursor:pointer}.dropzone.dz-clickable *{cursor:default}.dropzone.dz-clickable .dz-message,.dropzone.dz-clickable .dz-message *{cursor:pointer}.dropzone.dz-started .dz-message{display:none}.dropzone.dz-drag-hover{border-style:solid}.dropzone.dz-drag-hover .dz-message{opacity:.5}.dropzone .dz-message{text-align:center;margin:2em 0}.dropzone .dz-preview{position:relative;display:inline-block;vertical-align:top;margin:16px;min-height:100px}.dropzone .dz-preview:hover{z-index:1000}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview.dz-file-preview .dz-image{border-radius:20px;background:#999;background:linear-gradient(to bottom, #eee, #ddd)}.dropzone .dz-preview.dz-file-preview .dz-details{opacity:1}.dropzone .dz-preview.dz-image-preview{background:white}.dropzone .dz-preview.dz-image-preview .dz-details{-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;-ms-transition:opacity .2s linear;-o-transition:opacity .2s linear;transition:opacity .2s linear}.dropzone .dz-preview .dz-remove{font-size:14px;text-align:center;display:block;cursor:pointer;border:none}.dropzone .dz-preview .dz-remove:hover{text-decoration:underline}.dropzone .dz-preview:hover .dz-details{opacity:1}.dropzone .dz-preview .dz-details{z-index:20;position:absolute;top:0;left:0;opacity:0;font-size:13px;min-width:100%;max-width:100%;padding:2em 1em;text-align:center;color:rgba(0,0,0,0.9);line-height:150%}.dropzone .dz-preview .dz-details .dz-size{margin-bottom:1em;font-size:16px}.dropzone .dz-preview .dz-details .dz-filename{white-space:nowrap}.dropzone .dz-preview .dz-details .dz-filename:hover span{border:1px solid rgba(200,200,200,0.8);background-color:rgba(255,255,255,0.8)}.dropzone .dz-preview .dz-details .dz-filename:not(:hover){overflow:hidden;text-overflow:ellipsis}.dropzone .dz-preview .dz-details .dz-filename:not(:hover) span{border:1px solid transparent}.dropzone .dz-preview .dz-details .dz-filename span,.dropzone .dz-preview .dz-details .dz-size span{background-color:rgba(255,255,255,0.4);padding:0 .4em;border-radius:3px}.dropzone .dz-preview:hover .dz-image img{-webkit-transform:scale(1.05, 1.05);-moz-transform:scale(1.05, 1.05);-ms-transform:scale(1.05, 1.05);-o-transform:scale(1.05, 1.05);transform:scale(1.05, 1.05);-webkit-filter:blur(8px);filter:blur(8px)}.dropzone .dz-preview .dz-image{border-radius:20px;overflow:hidden;width:120px;height:120px;position:relative;display:block;z-index:10}.dropzone .dz-preview .dz-image img{display:block}.dropzone .dz-preview.dz-success .dz-success-mark{-webkit-animation:passing-through 3s cubic-bezier(.77, 0, .175, 1);-moz-animation:passing-through 3s cubic-bezier(.77, 0, .175, 1);-ms-animation:passing-through 3s cubic-bezier(.77, 0, .175, 1);-o-animation:passing-through 3s cubic-bezier(.77, 0, .175, 1);animation:passing-through 3s cubic-bezier(.77, 0, .175, 1)}.dropzone .dz-preview.dz-error .dz-error-mark{opacity:1;-webkit-animation:slide-in 3s cubic-bezier(.77, 0, .175, 1);-moz-animation:slide-in 3s cubic-bezier(.77, 0, .175, 1);-ms-animation:slide-in 3s cubic-bezier(.77, 0, .175, 1);-o-animation:slide-in 3s cubic-bezier(.77, 0, .175, 1);animation:slide-in 3s cubic-bezier(.77, 0, .175, 1)}.dropzone .dz-preview .dz-success-mark,.dropzone .dz-preview .dz-error-mark{pointer-events:none;opacity:0;z-index:500;position:absolute;display:block;top:50%;left:50%;margin-left:-27px;margin-top:-27px}.dropzone .dz-preview .dz-success-mark svg,.dropzone .dz-preview .dz-error-mark svg{display:block;width:54px;height:54px}.dropzone .dz-preview.dz-processing .dz-progress{opacity:1;-webkit-transition:all .2s linear;-moz-transition:all .2s linear;-ms-transition:all .2s linear;-o-transition:all .2s linear;transition:all .2s linear}.dropzone .dz-preview.dz-complete .dz-progress{opacity:0;-webkit-transition:opacity .4s ease-in;-moz-transition:opacity .4s ease-in;-ms-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.dropzone .dz-preview:not(.dz-processing) .dz-progress{-webkit-animation:pulse 6s ease infinite;-moz-animation:pulse 6s ease infinite;-ms-animation:pulse 6s ease infinite;-o-animation:pulse 6s ease infinite;animation:pulse 6s ease infinite}.dropzone .dz-preview .dz-progress{opacity:1;z-index:1000;pointer-events:none;position:absolute;height:16px;left:50%;top:50%;margin-top:-8px;width:80px;margin-left:-40px;background:rgba(255,255,255,0.9);-webkit-transform:scale(1);border-radius:8px;overflow:hidden}.dropzone .dz-preview .dz-progress .dz-upload{background:#333;background:linear-gradient(to bottom, #666, #444);position:absolute;top:0;left:0;bottom:0;width:0;-webkit-transition:width 300ms ease-in-out;-moz-transition:width 300ms ease-in-out;-ms-transition:width 300ms ease-in-out;-o-transition:width 300ms ease-in-out;transition:width 300ms ease-in-out}.dropzone .dz-preview.dz-error .dz-error-message{display:block}.dropzone .dz-preview.dz-error:hover .dz-error-message{opacity:1;pointer-events:auto}.dropzone .dz-preview .dz-error-message{pointer-events:none;z-index:1000;position:absolute;display:block;display:none;opacity:0;-webkit-transition:opacity .3s ease;-moz-transition:opacity .3s ease;-ms-transition:opacity .3s ease;-o-transition:opacity .3s ease;transition:opacity .3s ease;border-radius:8px;font-size:13px;top:130px;left:-10px;width:140px;background:#be2626;background:linear-gradient(to bottom, #be2626, #a92222);padding:.5em 1.2em;color:white}.dropzone .dz-preview .dz-error-message:after{content:'';position:absolute;top:-6px;left:64px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #be2626}.upload-container .upload-area{border:3px dashed #ccc;padding:30px;border-radius:5px;margin:0 auto 15px auto;max-width:600px}.upload-container .upload-area:hover{background:rgba(0,0,0,0.025);cursor:pointer}.upload-container .upload-area button.browse,.upload-container .upload-area .controls button,.upload-container .upload-area input{width:100%}.upload-container .upload-queue .input-sm{line-height:1em;font-size:.8em;height:24px;margin-bottom:1px}.upload-container .upload-queue .controls{margin-top:10px;padding-top:10px}.upload-container .upload-queue .previews{margin-top:4em}.upload-container .upload-queue .previews .item{padding:5px 0;clear:both}.upload-container .upload-queue .previews .title{padding-left:3px}.upload-container .upload-queue .previews .info img{width:32px;height:32px;margin-top:-26px;float:right}.upload-container #fakeUploadFile{height:35px}.upload-container .pattern-relateditems-container,.upload-container .pattern-relateditems-container>*{width:100% !important}.upload-container .align-right{text-align:right}.upload-container .controls{display:none}.upload-container .actions{margin-top:.5em}.upload-container .progress{height:34px;margin-bottom:0}.upload-container .dz-drag-hover{-webkit-box-shadow:inset 0 0 20px rgba(0,0,0,0.75),0 0 0 1000px rgba(255,255,255,0.85);-moz-box-shadow:inset 0 0 20px rgba(0,0,0,0.75),0 0 0 1000px rgba(255,255,255,0.85);box-shadow:inset 0 0 20px rgba(0,0,0,0.75),0 0 0 1000px rgba(0,0,0,0.85);z-index:99999;position:relative}.upload-container .upload .dz-preview .dz-details .dz-size,.upload-container .upload-previews .dz-preview .dz-details .dz-size{font-size:11px}div.linkModal .pattern-relateditems-container{padding-top:0;margin-right:20px}div.linkModal hr{margin:5px 0}div.linkModal div.linkTypes{line-height:15px}div.linkModal div.linkTypes input{margin:5px 5px 9px 9px}div.linkModal input[name="external"],div.linkModal input[name="externalImage"]{width:80%}div.linkModal fieldset{padding-top:10px;min-height:90px}div.linkModal fieldset .input-wrapper{display:inline-flex}div.linkModal .common-controls{padding-top:10px;border-top:1px solid #ccc}.tinymce-dropzone{position:relative}.tinymce-dropzone .dz-notice{display:none;-ms-filter:none;filter:none;pointer-events:none}.tinymce-dropzone *{opacity:1}.tinymce-dropzone .dropzone-previews{background-color:#f5f5f5}.tinymce-dropzone .fallback{display:none}.tinymce-dropzone.dz-drag-hover{box-sizing:border-box}.tinymce-dropzone.dz-drag-hover *{opacity:.7}.tinymce-dropzone.dz-drag-hover iframe{pointer-events:none}.tinymce-dropzone.dz-drag-hover p{font-size:250%;position:absolute;width:400px;height:50px;top:50%;left:50%;margin-left:-200px;display:block;text-align:center;opacity:1}.tinymce-dropzone.dz-drag-hover .dz-notice{display:block;opacity:1;-ms-filter:none;filter:none;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;-o-transition:opacity .3s ease-in-out;-ms-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out;background-position:0 0;position:absolute;width:100%;height:100%;top:0;left:0}.pattern-relateditems-result-image img{max-height:30px;max-width:80px}.mce-item-table td{min-width:.6em}.pat-passwordstrength+.pat-passwordstrength-meter{margin-top:10px;line-height:1px}.pat-passwordstrength+.pat-passwordstrength-meter div{display:inline-block;box-sizing:border-box;width:25%;height:20px;border-right:2px solid white;background-color:#e5e5e5}.pat-passwordstrength+.pat-passwordstrength-meter div:last-child{border-right:0;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAALCAMAAABxsOwqAAABgFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEDAwMFBQUICAgNDQ0SEhIbGxskJCQqKio3Nzd1dXV2dnZ/f3+Ojo6QkJCZmZmfn5+kpKSoqKiqqqqtra2urq6vr6+wsLCwsLCxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbFsbGxqampoaGhmZmZkZGRiYmJgYGBdXV1cXFxaWlpYWFhVVVVUVFRSUlJQUFBOTk5MTExKSkpHR0dFRUVDQ0NBQUE/Pz8M+rxwAAAAX3RSTlMAAAAAAAAAAAAAAAAAAAECBAcLERchLTpOYnmMq8XT8efn0KaehnNlV05EPDgyMC0rKCcmJiYoKSosLi8xMzY6SVhkc36Gkpeepaitr7O2ur/H0dji6u709/n6+/39/siucVUAAAABYktHRG4iD1EXAAAAT0lEQVQI12Pg4uJyjA/1AlIMXFymUY76gZ5gprM3F5dRFITpy8WlC2aaugfq6jrG6wOZfuHxYKDLwOUbBWEaIZj6QCaEFWUEZ4JEPaGipgA/ehqVQY+CkQAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:95% center}.pat-passwordstrength+.pat-passwordstrength-meter.level-1 div:first-child{background-color:orangered}.pat-passwordstrength+.pat-passwordstrength-meter.level-2 div:first-child,.pat-passwordstrength+.pat-passwordstrength-meter.level-2 div:first-child+div{background-color:orange}.pat-passwordstrength+.pat-passwordstrength-meter.level-3 div:first-child,.pat-passwordstrength+.pat-passwordstrength-meter.level-3 div:first-child+div,.pat-passwordstrength+.pat-passwordstrength-meter.level-3 div:first-child+div+div{background-color:orange}.pat-passwordstrength+.pat-passwordstrength-meter.level-4 div{background-color:lightgreen} +/* For the details, see: http://flowplayer.org/tools/dateinput/index.html#skinning */ + +/* the input field */ +.date { + border:1px solid #ccc; + padding:4px; + text-align:center; + -moz-box-shadow:0 0 10px #eee inset; +} + +/* calendar root element */ +#calroot { + margin-top:-1px; + width:198px; + padding:2px; + background-color:#fff; + font-size:11px; + border:1px solid #ccc; + z-index:1; + -moz-border-radius:5px; + -webkit-border-radius:5px; + -moz-box-shadow: 0 0 15px #666; + -webkit-box-shadow: 0 0 15px #666; +} + +/* head. contains title, prev/next month controls and possible month/year selectors */ +#calhead { + padding:2px 0; + height:22px; +} + +#caltitle { + font-size:14px; + color:#0150D1; + float:left; + text-align:center; + width:155px; + line-height:20px; + text-shadow:0 1px 0 #ddd; +} + +#calnext, #calprev { + display:block; + width:20px; + height:20px; + background:transparent url(prev.gif) no-repeat scroll center center; + float:left; + cursor:pointer; +} + +#calnext { + background-image:url(next.gif); + float:right; +} + +#calprev.caldisabled, #calnext.caldisabled { + visibility:hidden; +} + +/* year/month selector */ +#caltitle select { + font-size:10px; +} + +/* names of the days */ +#caldays { + height:14px; + border-bottom:1px solid #ddd; +} + +#caldays span { + display:block; + float:left; + width:28px; + text-align:center; +} + +/* container for weeks */ +#calweeks { + background-color:#fff; + margin-top:4px; +} + +/* single week */ +.calweek { + clear:left; + height:22px; +} + +/* single day */ +.calweek a { + display:block; + float:left; + width:27px; + height:20px; + text-decoration:none; + font-size:11px; + margin-left:1px; + text-align:center; + line-height:20px; + color:#666; + -moz-border-radius:3px; + -webkit-border-radius:3px; +} + +/* different states */ +.calweek a:hover, .calfocus { + background-color:#ddd; +} + +/* sunday */ +a.calsun { + color:red; +} + +/* offmonth day */ +a.caloff { + color:#ccc; +} + +a.caloff:hover { + background-color:rgb(245, 245, 250); +} + + +/* unselecteble day */ +a.caldisabled { + background-color:#efefef !important; + color:#ccc !important; + cursor:default; +} + +/* current day */ +#calcurrent { + background-color:#498CE2; + color:#fff; +} + +/* today */ +#caltoday { + background-color:#333; + color:#fff; +} + +div.overlay { + width: auto; + height: auto; + /* initially overlay is hidden */ + display: none; + /* some padding to layout nested elements nicely */ + margin: 1em; +} + +div.overlay-iframe, +div.overlay-ajax { + width: 60%; + min-height: 100px; + z-index: 99; /* overlays should be above everything */ +} + +div.overlay-iframe { + height: 60%; +} + +/* default close button positioned on upper-left corner */ +div.overlaybg div.close, +div.overlay div.close { + background-image: url(pb_close.png); + position: absolute; + left: -14px; + top: -14px; + cursor: pointer; + height: 30px; + width: 30px; +} + +.pb-ajax { + overflow-y: auto; +} + +.pb-ajax, .pb-image { + background-color: #fff; + border: 1px solid #999; + white-space: normal; + box-shadow: 0 0 3em 0.5em #666; + -moz-box-shadow: 0 0 3em 0.5em #666; + -webkit-box-shadow: 0 0 3em #666; +} + +.pb-ajax > div { + width: 92%; + padding: 1em; +} + +.pb-ajax .documentActions {display:none} + +div.overlay div.close span { + display: block; + height: 1px; + margin: -1px 0 0 -1px; + overflow: hidden; + padding: 0; + width: 1px; +} + +div.overlay textarea { width: 100%; } + +/* Hide form elements that don't make sense within an overlay. */ +div.overlay .link-parent { display: none; } +div.overlay #createGroup legend { display: none; } +div.overlay #createGroup fieldset { border: none; } + +/* lets play nice with paragraphs, links, tabbed pages in overlay e.g. when plone.openid is installed */ +div.overlay p { + margin-bottom: 1em; +} +div.overlay label { + margin-bottom: 0.25em; +} +div.overlay a:hover { + color: #75ad0a; +} +div.overlay a.selected { + color: #000000; +} +div.overlay .formTab { + margin-right:1em; + font-weight: bold; +} +div.overlay .formTab.lastFormTab { + margin-right:0em; +} +div.overlay .formControls a { + display: block; + margin: 0.75em; +} +div.riform{padding:1em;background-color:white;box-shadow:0 0 3em .5em #666;line-height:2;-moz-box-shadow:0 0 3em .5em #666;-webkit-box-shadow:0 0 3em #666}div.riform h1{color:#888;border-bottom:1px solid #ddd;font-size:20px;line-height:1;margin:0;padding-bottom:5px;padding-left:5px}div.riform form{margin-bottom:0}div.riform .rifield{clear:both}div.riform .rifield .field{float:left;clear:none}div.riform .label{display:block;float:left;font-weight:bold;margin-right:10px;text-align:right;width:130px}div.riform #rirtemplate{margin-top:6px}div#riformfields{min-height:11em;min-width:25em}div.riform #rirangeoptions input,div.riform #rimonthlyoptions input,div.riform #riyearlyoptions input{margin:0}div.riform #riweeklyweekdays .riweeklyweekday input{display:block;margin:8px auto 0}div.riform #riweeklyweekdays .riweeklyweekday label{display:block}div.riform #riweeklyweekdays .riweeklyweekday{margin-right:15px;float:left}div.riform input.ricancelbutton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAABHVBMVEUAAAAAAAADAwMEBAQFBQUGBgYJCQkKCgoPDw8RERETExMWFhYbGxscHBwfHx8iIiIlJSUoKCgsLCwyMjI1NTU4ODg7OztDQ0NGRkZKSkpLS0tNTU1XV1ddXV1gYGBjY2NkZGRmZmZoaGhsbGxvb291dXV7e3t+fn6BgYGCgoKFhYWLi4uMjIyNjY2Ojo6QkJCTk5OVlZWWlpaXl5eZmZmdnZ2fn5+qqqqurq6vr6+ysrKzs7O5ubnCwsLFxcXHx8fJycnLy8vMzMzR0dHV1dXY2Nja2trc3Nzd3d3f39/g4ODh4eHk5OTl5eXo6Ojr6+vs7Ozt7e3u7u7x8fHy8vLz8/P19fX29vb39/f4+Pj6+vr7+/v8/Pz9/f3////kwcJJAAAAAXRSTlMAQObYZgAAAThJREFUKBXNwWdb2gAYhtH3CVbQFisVlOLWVlHcdeBedXSQqoiR4f3/f4YJF8Gg9psfPMfezL8avvqNvaaCz/2Nr2wvPFBbz8qXXrynZs/AXp9aUidgHRpsOmpz5sEibthzFLVGxZ5wl5Q0MCjfx/G49KGEtf1iRdIXyEufS6xLmuTKQh4ZSX0e5PtLUJDU28BC3CqQ8+AWio58p1iIczXlqkDRUWCHH9bCTzWlroA5NW2zai1cK5ByoQF5BY74bi01kpISLhSHPZiW5JSx0CXfJGWg6CjnsSUpi2uhJdy4pMlpR1I6n5S0z661lSiowxgVezIBY4oYrLNqEWswq7bRKgcW1bMCZyNxBbKHcCDrkJj6C9XTjY3jMlwvyJ6Ja/mCpj+bXbKXupUYmpn5+kmy/4jFFLP34hGuw0GxTwkuWgAAAABJRU5ErkJggg==);background-color:transparent;font-size:0;color:transparent;border:none;position:absolute;left:-14px;top:-14px;cursor:pointer;height:30px;width:30px}div.rioccurrencesactions .riaddoccurrence #adddate{width:75%}div.rioccurrencesactions .rioccurancesheader{border-bottom:1px solid #ddd;line-height:1.5;clear:both;margin-top:30px}div.rioccurrencesactions .rioccurancesheader h2{color:#888;display:inline;font-size:18px;font-weight:bold;margin:0 0 5px 5px}div.rioccurrences div.batching{font-size:70%;text-align:center}div.rioccurrences span.current{font-weight:bold}div.riform span.action a{height:19px;width:19px;overflow:hidden;float:right;text-indent:9999px}div.rioccurrences .occurrence{border-top:1px solid transparent;border-bottom:1px solid transparent}div.rioccurrences .occurrence:hover{border-top:1px solid #ddd;border-bottom:1px solid #ddd}div.rioccurrences .occurrence.start span.rlabel,div.rioccurrences .occurrence.rdate span.rlabel{color:#9cba9b;margin:0 5px;font-size:70%;font-weight:bold}div.rioccurrences .occurrence.exdate{opacity:.4;filter:alpha(opacity=40)}div.ridisplay .occurrence.exdate{display:none}div.ridisplay label.ridisplay{font-weight:300}div.ridisplay .rimain a{margin-right:.5em}div.rioccurrences .occurrence.rdate{background:#ffffe0}div.rioccurrences div.occurrence{margin-left:5px}div.rioccurrences a.rrule,div.rioccurrences a.rdate,div.rioccurrences a.exdate{color:transparent;margin-top:6px;margin-right:5px}div.rioccurrences a.rrule,div.rioccurrences a.rdate{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAMAAABFjsb+AAAAdVBMVEUAAAAAAAACAgIHBwcICAgODg4PDw8QEBASEhIXFxcbGxsdHR0fHx8gICAnJyc2NjY3Nzc4ODg5OTk+Pj5ERERISEhJSUlSUlJYWFhqampvb2/Hx8fPz8/R0dHn5+fs7Ozv7+/x8fHy8vL39/f9/f3+/v7///8jaUCMAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAOkAAADpAVSSFEsAAAB9SURBVBjTY2BQQwcMDGqyYuxsCMAuJqvGoCbCiApEgGIsECaTEBOEwQIUYwbSbAKCUmqSggKsQDYzVEwGarw0kpiwKlhIhR9JjEVNXFlMWUKNEUWMU4FZgYfGYrxKHEp8KGJM8opqQCgHEwP7l1sUBLhg/sUWLljCD0s4AwBmjBYPljOv7QAAAABJRU5ErkJggg==)}div.rioccurrences a.exdate{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAMAAABFjsb+AAAAnFBMVEUCodIAAAABAQEVAAAHBwcICAgKCgoPDw8QEBBTAABVAABZAABaAAAXFxdcBwdhCgodHR2TAAAhISFlDw9nDw8vLy8wMDAxMTH4AAD5AQH6AgL+Bgb/BweDKipBQUFERERJSUlQUFBXV1daWlpmZmb0nZ31nZ36o6P/pqb/qanNzc3R0dHp6ens7Ozt7e3v7+/y8vL39/f8/Pz////TudgfAAAAAXRSTlMAQObYZgAAAKFJREFUGFdt0FsXQkAUhuHZIYfIITTVFJVEiNr//781xoUJ79Ws52KvNR8hOI0QrFJDHzPSCgkmoIBcwk0D3+LP1X41mMZNBZNuozjDLI7W3FRhYJ/K4fxrNDgzgd+LZFAcn7fPHUE2DJnbOhNzcprPrHVZODP9cShm1u7Y5s+8zum8ktqS1Q2+saktagrTeguufQFYvvhvAnKK2GVhv4WdfzaPHhGyo11gAAAAAElFTkSuQmCC)}div.rioccurrencesactions a.rirefreshbutton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAMAAABFjsb+AAAA1VBMVEWbLGwAAAABAQECAgIFBQUGBgYHBwcICAgJCQkKCgoWFhYZGRkaGhoeHh4fHx8gICAkJCQmJiYoKCgrKyssLCwxMTE3Nzc4ODg5OTk+Pj5DQ0NHR0dISEhRUVFUVFRWVlZXV1ddXV1fX19gYGBkZGRoaGhwcHBxcXF6enp/f3+BgYGDg4OEhISJiYmNjY2VlZWampqnp6eoqKirq6uurq62trbCwsLDw8PFxcXIyMjNzc3V1dXW1tbZ2dnb29vv7+/19fX39/f4+Pj6+vr7+/v8/Pz///9okOBsAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAOkAAADpAVSSFEsAAADYSURBVBjTZdBrk8EwFAbghEprFaulxN2y2HVZ6n5tWX3//0+ScIwZ3g/JmWcmOTlhDK9hDBtpCiEqqYTQMeUGDJLrtBcxfo9UJnSRnKCfbyV1KchKRyDq4Fh6mhchxF8hQOQ9zDpg1V0a3F7hYJE1EdjlD3XMDtAkG8Gnnj5GZDMMyYaYkQ0wJ5tjQFbDyVFgec4JNTJji73LY/7vHlvj8T43xLn4gwtC9zlHbo2vf2CdozlMfXlcfvYwjuvSVFalnnz6fduqynaNbEYn7dTVmm3s9Ke+/fMVeXMr/BRXPaEAAAAASUVORK5CYII=);color:transparent;margin-top:4px;margin-right:5px}div#messagearea,div.errorarea{display:none;background-color:red;color:white;font-weight:bold;padding:2px 10px}div#calroot{z-index:10000}div.ributtons .risavebutton{display:block;margin:30px auto 0}#calnext,#calprev{background-image:url(data:image/gif;base64,R0lGODlhDgAOAOZsAPb29vv7+/f39/Ly8vr6+vn5+QCFzfz8/PDw8PPz8wCEzQODzACHzwCFzgCBzCKb1fL7/fHx8aXZ7+r4/F295LXg8pTR6wKCzA2L0J3V7ZnW7T234gaS05bV7v3+/ofN65Tb8JfX7/n+/pff8uv6/YXN60C748/s9wCIz9ry+gKHzgOIzs7r9gF+yx+Z1QKEzSKg2AGP0mG54uf2++b4/AyP0QGCzGG844bN62m95Gm/5Fm95AeQ0vf8/bzl9ACAyxma1rbi9DKm2////weGzpfW7Mvp9QyO0J/Y7qrc8AiJz9jy+mK949Tv+QCDzHLA5geIzgCDzcfr9gqM0Mzv+ACQ0g2Q0sLn9XbM6y+p3L/s96LY706w3sbo9PX19ZXT7PD7/Tis3gyQ0g+R0v7+/gCGzgCHzvj4+ACCzPT09O/v7wCJz+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGwALAAAAAAOAA4AAAe0gGyCamlnBAQCCYKLbAMHTVgbJh00BWqLA2QlMQpoCxdAQQGXagc4CmZlRxIWC1ZXZ2xpVBwGZTVIZBlKDllgCAUfaAxTGkNfUAxraydpATloK0VkW0Rmyw1JAAFPDio6EEYuUcsGFQBnIQZmNkwiLA9lZlUpCQMkME4oLzceXRg/KPS4VMDHGDRl0Mjg0kLIDC+DCEgJw2NNAzE7JghgpEYAGS0gRiw5kIbRogjozqRBwCgQADs=)}#calnext{background-image:url(data:image/gif;base64,R0lGODlhDgAOAOZsAPb29vv7+/f39/Ly8vr6+vn5+QCFzfz8/PDw8PPz8wCEzQODzACHzwCFzgCBzCKb1fL7/fHx8aXZ7+r4/F295LXg8pTR6wKCzA2L0J3V7ZnW7T234gaS05bV7v3+/ofN65Tb8JfX7/n+/pff8uv6/YXN60C748/s9wCIz9ry+gKHzgOIzs7r9gF+yx+Z1QKEzSKg2AGP0mG54uf2++b4/AyP0QGCzGG844bN62m95Gm/5Fm95AeQ0vf8/bzl9ACAyxma1rbi9DKm2////weGzpfW7Mvp9QyO0J/Y7qrc8AiJz9jy+mK949Tv+QCDzHLA5geIzgCDzcfr9gqM0Mzv+ACQ0g2Q0sLn9XbM6y+p3L/s96LY706w3sbo9PX19ZXT7PD7/Tis3gyQ0g+R0v7+/gCGzgCHzvj4+ACCzPT09O/v7wCJz+7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGwALAAAAAAOAA4AAAe2gGyCbAhpZ2cAEYOLaQdLIyBaZAJqiwITO2INazxhUgSVbF4zQi1cMmhlaGM+BWxqPRQ/GF0eNy8oTjAkAwkpVWZlDywiTDZmBiGIFQZra1EuRhA6Kg5PAQBJm2tmRFtkRStoOQFpJ84MUF9DGlMMaB8FCGBZDkoZZEg1ZQYcVGlszlyxssCChCNlzCjAcaCSmgBBgFxYgEZBjBJkBgxSU4BGBxMbsDQ5oHERmwQCCBA4kyYUm0AAOw==)}div.overlaybg div.close,div.overlay div.close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAABHVBMVEUAAAAAAAADAwMEBAQFBQUGBgYJCQkKCgoPDw8RERETExMWFhYbGxscHBwfHx8iIiIlJSUoKCgsLCwyMjI1NTU4ODg7OztDQ0NGRkZKSkpLS0tNTU1XV1ddXV1gYGBjY2NkZGRmZmZoaGhsbGxvb291dXV7e3t+fn6BgYGCgoKFhYWLi4uMjIyNjY2Ojo6QkJCTk5OVlZWWlpaXl5eZmZmdnZ2fn5+qqqqurq6vr6+ysrKzs7O5ubnCwsLFxcXHx8fJycnLy8vMzMzR0dHV1dXY2Nja2trc3Nzd3d3f39/g4ODh4eHk5OTl5eXo6Ojr6+vs7Ozt7e3u7u7x8fHy8vLz8/P19fX29vb39/f4+Pj6+vr7+/v8/Pz9/f3////kwcJJAAAAAXRSTlMAQObYZgAAAThJREFUKBXNwWdb2gAYhtH3CVbQFisVlOLWVlHcdeBedXSQqoiR4f3/f4YJF8Gg9psfPMfezL8avvqNvaaCz/2Nr2wvPFBbz8qXXrynZs/AXp9aUidgHRpsOmpz5sEibthzFLVGxZ5wl5Q0MCjfx/G49KGEtf1iRdIXyEufS6xLmuTKQh4ZSX0e5PtLUJDU28BC3CqQ8+AWio58p1iIczXlqkDRUWCHH9bCTzWlroA5NW2zai1cK5ByoQF5BY74bi01kpISLhSHPZiW5JSx0CXfJGWg6CjnsSUpi2uhJdy4pMlpR1I6n5S0z661lSiowxgVezIBY4oYrLNqEWswq7bRKgcW1bMCZyNxBbKHcCDrkJj6C9XTjY3jMlwvyJ6Ja/mCpj+bXbKXupUYmpn5+kmy/4jFFLP34hGuw0GxTwkuWgAAAABJRU5ErkJggg==)}#calroot{width:auto}div.riform #rirtemplate select{width:auto}#content .pat-autotoc.autotabs fieldset.autotoc-section{border:0 !important}#content .pat-autotoc.autotabs .autotoc-nav{border-style:solid solid none;border-top-left-radius:.5em;border-top-right-radius:.5em;display:block;margin-left:0;background-color:#ddd}#content .pat-autotoc.autotabs .autotoc-level-1{margin:.25em .25em 0;line-height:2em;border:medium none;padding:0 .75em;text-decoration:none}#content .pat-autotoc.autotabs .autotoc-level-1:hover{background:White;border-top-left-radius:.5em;border-top-right-radius:.5em;color:Black}#content .pat-autotoc.autotabs .autotoc-level-1.active{font-weight:bold;color:Black;background:White}#content .pat-select2,#content .pat-relateditems{min-width:400px}#content .pat-select2 a.select2-choice:link{border:1px solid #aaa !important;color:#444 !important}#content .pat-select2 ul.select2-results{margin:4px 4px 4px 0;list-style:none}#content .pat-select2 a.select2-search-choice-close:link{border:0}#content .pat-select2.select2-container-multi .select2-choices{margin:0;line-height:1.2em}#content .pat-select2.select2-container-multi .select2-choices .select2-search-choice{line-height:1.2em}#content .querystring-wrapper{font-size:.9em}#content .querystring-wrapper .querystring-criteria-wrapper .select2-choices{margin:0}#content .field .select2-container input[type="text"]{border:0;font-size:1.2em;margin:1px 0;padding:5px}#content .field .select2-container .select2-choice span{color:#333}#content ul.picker__list{list-style:none;margin:0;padding:0}#content ul.picker__list .picker__list-item{margin:0}#content ul.picker__list .picker__button--clear{font-size:1em;margin:1em auto 1em}#content .picker--opened .picker__holder{opacity:1}#content ul.select2-choices{margin-left:0}#content .pattern-relateditems-container a{border-bottom:none}.select2-drop{font-size:.8em}dl.actionMenu dd{display:none}dl.actionMenu dt{margin:0 .25em}dl.actionMenu.activated dd{display:block}.LSBox .searchButton,.LSBox .searchSection{display:none}#content .field input[type="text"]{margin:0;padding:.1em .2em;border:1px solid #aaa;cursor:text;background-color:#fff;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:-o-linear-gradient(top, #eee 1%, #fff 15%);background-image:-ms-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(top, #eee 1%, #fff 15%);font-size:1.5em}#content .field input[type="text"]:focus{border-color:#5897fb;outline:0}#content .field textarea{margin:0;padding:.1em .2em;border:1px solid #aaa;cursor:text;background-color:#fff;background-image:-webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eee), color-stop(15%, #fff));background-image:-webkit-linear-gradient(top, #eee 1%, #fff 15%);background-image:-moz-linear-gradient(top, #eee 1%, #fff 15%);background-image:-o-linear-gradient(top, #eee 1%, #fff 15%);background-image:-ms-linear-gradient(top, #eee 1%, #fff 15%);background-image:linear-gradient(top, #eee 1%, #fff 15%);padding:.2em;min-height:5em}#content .field textarea:focus{border-color:#5897fb;outline:0}.modal-body .linkModal hr{border-color:#eee;border-style:solid}.modal-body .linkModal .linkTypes label:hover{cursor:pointer}.modal-body .linkModal .control-group{margin-top:10px}.modal-body .linkModal select,.modal-body .linkModal input[type="text"]{font-size:120%;min-width:300px}/*# sourceMappingURL=++resource++plone.app.widgets.min.css.map */ \ No newline at end of file diff --git a/plone/app/widgets/static/widgets.min.css.map b/plone/app/widgets/static/widgets.min.css.map index 6e5fccea..5b112c71 100644 --- a/plone/app/widgets/static/widgets.min.css.map +++ b/plone/app/widgets/static/widgets.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["bower_components/select2/select2.css","patterns/select2/pattern.select2.less","bower_components/pickadate/lib/themes/classic.css","bower_components/pickadate/lib/themes/classic.date.css","bower_components/pickadate/lib/themes/classic.time.css","patterns/pickadate/pattern.pickadate.less","bower_components/bootstrap/less/glyphicons.less","bower_components/jqtree/jqtree.css","patterns/relateditems/pattern.relateditems.less","patterns/querystring/pattern.querystring.less","bower_components/tinymce-builded/js/tinymce/skins/lightgray/skin.min.css","bower_components/tinymce-builded/js/tinymce/skins/lightgray/content.inline.min.css","bower_components/tinymce-builded/js/tinymce/plugins/visualblocks/css/visualblocks.css","bower_components/bootstrap/less/mixins/buttons.less","bower_components/bootstrap/less/buttons.less","bower_components/bootstrap/less/button-groups.less","bower_components/bootstrap/less/mixins/progress-bar.less","bower_components/bootstrap/less/mixins/gradients.less","less/base.less","bower_components/bootstrap/less/mixins/vendor-prefixes.less","bower_components/bootstrap/less/mixins/opacity.less","bower_components/bootstrap/less/modals.less","bower_components/bootstrap/less/progress-bars.less","patterns/modal/pattern.modal.less","patterns/autotoc/pattern.autotoc.less","bower_components/bootstrap/less/close.less","bower_components/dropzone/downloads/css/dropzone.css","patterns/upload/less/pattern.upload.less","patterns/tinymce/less/pattern.tinymce.less","patterns/passwordstrength/pattern.passwordstrength.less","less/widgets.less"],"names":[],"mappings":"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AU,QAAS,QACpB,oBAAC,QAAU,QAAS,QACpB,oBAAC,QAAU,QAAS,QACpB,oBAAC,QAAU,QAAS,QACpB,yBAAC,QAAU,QAAS,QACpB,4BAAC,QAAU,QAAS,QACpB,yBAAC,QAAU,QAAS,QACpB,uBAAC,QAAU,QAAS,QACpB,uBAAC,QAAU,QAAS,QACpB,yBAAC,QAAU,QAAS,QCxOxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACvIA,+BACE,cADF,8BAGE,iBACE,sBACE,UAAA,CACA,mBANN,8BAGE,iBAKE,mBACE,kBAQN,6BACI,WAAA,CACA,sBAGJ,gCACE,oBAAA,CACA,kBAEF,2BACE,aAAA,CACA,gBAAA,CACA,wBAAA,CACA,cAAA,CACA,qBAAA,CACA,wBAAA,CACA,YAAA,CACA,iBAAA,CACA,aAAA,CACA,WAVF,0BAYE,GACE,cAbJ,0BAgBE,IACE,WAIJ,6BACE,kBAAA,CACA,k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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7HE,YAAC,OACD,YAAC,OACD,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,UAAA,CACA,wBAAA,CACI,qBAEN,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,sBAKA,YAHD,UAGC,YAFD,WAEC,QADM,UAAW,cAEjB,YAJD,SAIE,OAAD,YAHD,UAGE,OAAD,QAFM,UAAW,aAEhB,OACD,YALD,SAKE,OAAD,YAJD,UAIE,OAAD,QAHM,UAAW,aAGhB,OACD,YAND,SAME,QAAD,YALD,UAKE,QAAD,QAJM,UAAW,aAIhB,QACD,YAPD,SAOE,QAAD,YAND,UAME,QAAD,QALM,UAAW,aAKhB,QACC,qBAAA,CACI,kBCuBV,YDnBE,QACE,UAAA,CACA,sBA7BF,YAAC,OACD,YAAC,OACD,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,UAAA,CACA,wBAAA,CACI,qBAEN,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,sBAKA,YAHD,UAGC,YAFD,WAEC,QADM,UAAW,cAEjB,YAJD,SAIE,OAAD,YAHD,UAGE,OAAD,QAFM,UAAW,aAEhB,OACD,YALD,SAKE,OAAD,YAJD,UAIE,OAAD,QAHM,UAAW,aAGhB,OACD,YAND,SAME,QAAD,YALD,UAKE,QAAD,QAJM,UAAW,aAIhB,QACD,YAPD,SAOE,QAAD,YAND,UAME,QAAD,QALM,UAAW,aAKhB,QACC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"} \ No newline at end of file +{"version":3,"sources":["bower_components/select2/select2.css","patterns/select2/pattern.select2.less","bower_components/pickadate/lib/themes/classic.css","bower_components/pickadate/lib/themes/classic.date.css","bower_components/pickadate/lib/themes/classic.time.css","patterns/pickadate/pattern.pickadate.less","bower_components/bootstrap/less/glyphicons.less","bower_components/jqtree/jqtree.css","patterns/tree/pattern.tree.less","patterns/relateditems/pattern.relateditems.less","patterns/querystring/pattern.querystring.less","bower_components/tinymce-builded/js/tinymce/skins/lightgray/skin.less","bower_components/bootstrap/less/mixins/vendor-prefixes.less","bower_components/bootstrap/less/mixins/opacity.less","bower_components/tinymce-builded/js/tinymce/skins/lightgray/Content.Objects.less","bower_components/tinymce-builded/js/tinymce/plugins/visualblocks/css/visualblocks.css","bower_components/bootstrap/less/mixins/buttons.less","bower_components/bootstrap/less/buttons.less","bower_components/bootstrap/less/button-groups.less","bower_components/bootstrap/less/mixins/progress-bar.less","bower_components/bootstrap/less/mixins/gradients.less","less/base.less","bower_components/bootstrap/less/mixins/tab-focus.less","bower_components/bootstrap/less/close.less","bower_components/bootstrap/less/modals.less","bower_components/bootstrap/less/progress-bars.less","patterns/modal/pattern.modal.less","patterns/autotoc/pattern.autotoc.less","bower_components/dropzone/dist/dropzone.css","patterns/upload/less/pattern.upload.less","patterns/tinymce/less/pattern.tinymce.less","patterns/passwordstrength/pattern.passwordstrength.less","bower_components/jquery.recurrenceinput.js/lib/jquery.tools.dateinput.css","bower_components/jquery.recurrenceinput.js/lib/jquery.tools.overlay.css","bower_components/jquery.recurrenceinput.js/src/jquery.recurrenceinput.css","patterns/recurrence/pattern.recurrence.less","less/widgets.less"],"names":[],"mappings":"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BAAC,QAAU,QAAS,QACpB,4BAAC,QAAU,QAAS,QACpB,0BAAC,QAAU,QAAS,QACpB,yBAAC,QAAU,QAAS,QACpB,uBAAC,QAAU,QAAS,QACpB,cAAC,QAAU,QAAS,QACpB,gBAAC,QAAU,QAAS,QACpB,qBAAC,QAAU,QAAS,QACpB,oBAAC,QAAU,QAAS,QACpB,qBAAC,QAAU,QAAS,QACpB,0BAAC,QAAU,QAAS,QACpB,2BAAC,QAAU,QAAS,QACpB,8BAAC,QAAU,QAAS,QACpB,kCAAC,QAAU,QAAS,QACpB,4BAAC,QAAU,QAAS,QACpB,gCAAC,QAAU,QAAS,QACpB,6BAAC,QAAU,QAAS,QACpB,yBAAC,QAAU,QAAS,QACpB,wBAAC,QAAU,QAAS,QACpB,0BAAC,QAAU,QAAS,QACpB,uBAAC,QAAU,QAAS,QACpB,kBAAC,QAAU,QAAS,QACpB,sBAAC,QAAU,QAAS,QACpB,oBAAC,QAAU,QAAS,QACpB,oBAAC,QAAU,QAAS,QACpB,qBAAC,QAAU,QAAS,QACpB,oBAAC,QAAU,QAAS,QACpB,kBAAC,QAAU,QAAS,QChTxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AAA,CACA,sBAGD,mBAAoB,WACnB,iBAAA,CACA,KAAA,CAAQ,MAAA,CACR,UAAA,CAAa,WAAA,CACb,+FAGD,MAAM,YACL,WAGD,MAAM,aACL,YAGD,MAAM,MAAM,cACX,aAAA,CACA,gBAAA,CACA,kBAGD,MAAM,OACL,oBAAA,CACA,qBAAA,CACA,kBAAA,CACA,mBAGD,MAAM,MAAO,KACZ,qBAGD,MAAM,MAAO,YACZ,sBAAA,CACA,kBAGD,mBAAmB,mBAAoB,WACtC,aAGD,eACC,cAAA,CACA,aAAA,CACA,QAAA,CACA,UAAA,CACA,UAAA,CACA,sBAAA,CACA,eAAA,CACA,yBASD,aALE,eACE,UAIJ,iBACC,cAAA,CACA,oBAAA,CACA,uBAAA,CACA,6BAAA,CACA,oBAAA,CACA,0BAAA,CACA,eAAA,CACA,qBAAA,CACA,SAAA,YACA,UAAA,YACA,yBAAA,CACA,wDAGD,UAAW,SACV,gBAGD,QAAQ,QACP,QAAS,IAGV,GACC,eAGD,kBACC,eAAA,CACA,WAGD,2BACC,eAAA,CACA,WAGD,uBACC,4BAAA,CACA,eAGD,0BACC,+BAAA,CACA,eAGD,gBAAiB,eAAgB,IAAI,eAAgB,IAAI,eAAgB,SACxE,uBAGD,EAAE,oBAAqB,EAAE,oBACxB,qBAAA,YAGD,gBACC,wBAGD,iBAAkB,EAAC,uBAAwB,EAAC,sBAAsB,OACjE,0BAGD,iBAAkB,EAAC,uBAAwB,EAAC,sBAAsB,OACjE,0BAGD,iBAAkB,EAAC,uBAAuB,oBACzC,0BAGD,yBACC,qBAAA,CH2EA,MAAA,CE3OC,WAAA,CAGA,yBENF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7HE,YAAC,OACD,YAAC,OACD,YAAC,OACD,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,UAAA,CACA,wBAAA,CACI,qBAEN,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,sBAKA,YAHD,UAGC,YAFD,WAEC,QADM,UAAW,cAEjB,YAJD,SAIE,OAAD,YAHD,UAGE,OAAD,QAFM,UAAW,aAEhB,OACD,YALD,SAKE,OAAD,YAJD,UAIE,OAAD,QAHM,UAAW,aAGhB,OACD,YAND,SAME,OAAD,YALD,UAKE,OAAD,QAJM,UAAW,aAIhB,OACD,YAPD,SAOE,QAAD,YAND,UAME,QAAD,QALM,UAAW,aAKhB,QACD,YARD,SAQE,QAAD,YAPD,UAOE,QAAD,QANM,UAAW,aAMhB,QACC,qBAAA,CACI,kBCwBV,YDpBE,QACE,UAAA,CACA,sBA/BF,YAAC,OACD,YAAC,OACD,YAAC,OACD,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,UAAA,CACA,wBAAA,CACI,2BAEN,YAAC,QACD,YAAC,QACD,KAAM,iBAAkB,aACtB,sBAKA,YAHD,UAGC,YAFD,WAEC,QADM,UAAW,cAEjB,YAJD,SAIE,OAAD,YAHD,UAGE,OAAD,QAFM,UAAW,aAEhB,OACD,YALD,SAKE,OAAD,YAJD,UAIE,OAAD,QAHM,UAAW,aAGhB,OACD,YAND,SAME,OAAD,YALD,UAKE,OAAD,QAJM,UAAW,aAIhB,OACD,YAPD,SAOE,QAAD,Y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B,cASb,GACI,cAAA,CACA,iBAAA,CACA,WAAA,CACA,WAAA,CACA,OAAA,CACA,QAAA,CACA,kBAAA,CACA,aAAA,CACA,iBAAA,CACA,UAnBR,iBAAiB,cAqBb,YACI,aAAA,CACA,SAAA,CACA,eAAA,CACA,WAAA,CACA,0CAAA,CACA,uCAAA,CACA,qCAAA,CACA,sCAAA,CACA,kCAAA,CACA,uBAAA,CACA,iBAAA,CACA,UAAA,CACA,WAAA,CACA,KAAA,CACA,OAIR,kCAAmC,KAC/B,eAAA,CACA,eAGJ,eAAgB,IACf,eCvGD,qBAAsB,6BAClB,eAAA,CACA,gBAFJ,qBAAsB,4BAIlB,KACI,oBAAA,CACA,qBAAA,CACA,SAAA,CACA,WAAA,CACA,4BAAA,CACA,yBAVR,qBAAsB,4BAalB,IAAG,YACC,cAAA,CACA,o5BAAA,CACA,2BAAA,CACA,+BAGJ,qBApBkB,4BAoBjB,QAAS,IAAG,aACT,2BAGJ,qBAxBkB,4BAwBjB,QAAS,IAAG,aACb,qBAzBkB,4BAyBjB,QAAS,IAAG,YAAa,KACtB,wBAGJ,qBA7BkB,4BA6BjB,QAAS,IAAG,aACb,qBA9BkB,4BA8BjB,QAAS,IAAG,YAAa,KAC1B,qBA/BkB,4BA+BjB,QAAS,IAAG,YAAa,IAAM,KAC5B,wBAGJ,qBAnCkB,4BAmCjB,QAAS,KACN,4BCpCR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACjJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5FA,GAAG,QACC,WAAA,CACA,sBAAA,CACA,4BAAA,CACA,aAAA,CACA,iCAAA,CACA,gCAGJ,GAAG,OAAQ,IACP,UAAA,CACA,4BAAA,CACA,cAAA,CACA,aAAA,CACA,QAAA,CACA,kBAAA,CACA,iBAGJ,GAAG,OAAQ,MACP,gBAGJ,GAAG,OAAQ,UACP,WAGJ,GAAG,OAAQ,SAAS,QAChB,UAAA,CACA,WAGJ,GAAG,OAAQ,QACP,aAAA,CACA,UAAA,CACA,gBAAA,CACA,iBAAA,CACA,gBAAA,CACA,YAGJ,GAAG,OAAQ,cACP,eAGJ,GAAG,cACC,eAAA,CACA,eAGJ,GAAG,OAAQ,gBAAgB,OAC3B,GAAG,OAAQ,kBAAkB,OAC7B,GAAG,OAAQ,iBAAiB,OACxB,SAGJ,GAAG,OAAQ,kBAAkB,iBAAiB,O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"} \ No newline at end of file diff --git a/plone/app/widgets/static/widgets.min.js b/plone/app/widgets/static/widgets.min.js index bf852fb1..c28ae123 100644 --- a/plone/app/widgets/static/widgets.min.js +++ b/plone/app/widgets/static/widgets.min.js @@ -1,41 +1,48 @@ -var requirejs,require,define;!function(global){function isFunction(it){return"[object Function]"===ostring.call(it)}function isArray(it){return"[object Array]"===ostring.call(it)}function each(ary,func){if(ary){var i;for(i=0;i-1&&(!ary[i]||!func(ary[i],i,ary));i-=1);}}function hasProp(obj,prop){return hasOwn.call(obj,prop)}function getOwn(obj,prop){return hasProp(obj,prop)&&obj[prop]}function eachProp(obj,func){var prop;for(prop in obj)if(hasProp(obj,prop)&&func(obj[prop],prop))break}function mixin(target,source,force,deepStringMixin){return source&&eachProp(source,function(value,prop){(force||!hasProp(target,prop))&&(!deepStringMixin||"object"!=typeof value||!value||isArray(value)||isFunction(value)||value instanceof RegExp?target[prop]=value:(target[prop]||(target[prop]={}),mixin(target[prop],value,force,deepStringMixin)))}),target}function bind(obj,fn){return function(){return fn.apply(obj,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(err){throw err}function getGlobal(value){if(!value)return value;var g=global;return each(value.split("."),function(part){g=g[part]}),g}function makeError(id,msg,err,requireModules){var e=new Error(msg+"\nhttp://requirejs.org/docs/errors.html#"+id);return e.requireType=id,e.requireModules=requireModules,err&&(e.originalError=err),e}function newContext(contextName){function trimDots(ary){var i,part;for(i=0;i0&&(ary.splice(i-1,2),i-=2)}}function normalize(name,baseName,applyMap){var pkgMain,mapValue,nameParts,i,j,nameSegment,lastIndex,foundMap,foundI,foundStarMap,starI,normalizedBaseParts,baseParts=baseName&&baseName.split("/"),map=config.map,starMap=map&&map["*"];if(name&&(name=name.split("/"),lastIndex=name.length-1,config.nodeIdCompat&&jsSuffixRegExp.test(name[lastIndex])&&(name[lastIndex]=name[lastIndex].replace(jsSuffixRegExp,"")),"."===name[0].charAt(0)&&baseParts&&(normalizedBaseParts=baseParts.slice(0,baseParts.length-1),name=normalizedBaseParts.concat(name)),trimDots(name),name=name.join("/")),applyMap&&map&&(baseParts||starMap)){nameParts=name.split("/");outerLoop:for(i=nameParts.length;i>0;i-=1){if(nameSegment=nameParts.slice(0,i).join("/"),baseParts)for(j=baseParts.length;j>0;j-=1)if(mapValue=getOwn(map,baseParts.slice(0,j).join("/")),mapValue&&(mapValue=getOwn(mapValue,nameSegment))){foundMap=mapValue,foundI=i;break outerLoop}!foundStarMap&&starMap&&getOwn(starMap,nameSegment)&&(foundStarMap=getOwn(starMap,nameSegment),starI=i)}!foundMap&&foundStarMap&&(foundMap=foundStarMap,foundI=starI),foundMap&&(nameParts.splice(0,foundI,foundMap),name=nameParts.join("/"))}return pkgMain=getOwn(config.pkgs,name),pkgMain?pkgMain:name}function removeScript(name){isBrowser&&each(scripts(),function(scriptNode){return scriptNode.getAttribute("data-requiremodule")===name&&scriptNode.getAttribute("data-requirecontext")===context.contextName?(scriptNode.parentNode.removeChild(scriptNode),!0):void 0})}function hasPathFallback(id){var pathConfig=getOwn(config.paths,id);return pathConfig&&isArray(pathConfig)&&pathConfig.length>1?(pathConfig.shift(),context.require.undef(id),context.makeRequire(null,{skipMap:!0})([id]),!0):void 0}function splitPrefix(name){var prefix,index=name?name.indexOf("!"):-1;return index>-1&&(prefix=name.substring(0,index),name=name.substring(index+1,name.length)),[prefix,name]}function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var url,pluginModule,suffix,nameParts,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=!0,normalizedName="";return name||(isDefine=!1,name="_@r"+(requireCounter+=1)),nameParts=splitPrefix(name),prefix=nameParts[0],name=nameParts[1],prefix&&(prefix=normalize(prefix,parentName,applyMap),pluginModule=getOwn(defined,prefix)),name&&(prefix?normalizedName=pluginModule&&pluginModule.normalize?pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap)}):-1===name.indexOf("!")?normalize(name,parentName,applyMap):name:(normalizedName=normalize(name,parentName,applyMap),nameParts=splitPrefix(normalizedName),prefix=nameParts[0],normalizedName=nameParts[1],isNormalized=!0,url=context.nameToUrl(normalizedName))),suffix=!prefix||pluginModule||isNormalized?"":"_unnormalized"+(unnormalizedCounter+=1),{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+"!"+normalizedName:normalizedName)+suffix}}function getModule(depMap){var id=depMap.id,mod=getOwn(registry,id);return mod||(mod=registry[id]=new context.Module(depMap)),mod}function on(depMap,name,fn){var id=depMap.id,mod=getOwn(registry,id);!hasProp(defined,id)||mod&&!mod.defineEmitComplete?(mod=getModule(depMap),mod.error&&"error"===name?fn(mod.error):mod.on(name,fn)):"defined"===name&&fn(defined[id])}function onError(err,errback){var ids=err.requireModules,notified=!1;errback?errback(err):(each(ids,function(id){var mod=getOwn(registry,id);mod&&(mod.error=err,mod.events.error&&(notified=!0,mod.emit("error",err)))}),notified||req.onError(err))}function takeGlobalQueue(){globalDefQueue.length&&(each(globalDefQueue,function(queueItem){var id=queueItem[0];"string"==typeof id&&(context.defQueueMap[id]=!0),defQueue.push(queueItem)}),globalDefQueue=[])}function cleanRegistry(id){delete registry[id],delete enabledRegistry[id]}function breakCycle(mod,traced,processed){var id=mod.map.id;mod.error?mod.emit("error",mod.error):(traced[id]=!0,each(mod.depMaps,function(depMap,i){var depId=depMap.id,dep=getOwn(registry,depId);!dep||mod.depMatched[i]||processed[depId]||(getOwn(traced,depId)?(mod.defineDep(i,defined[depId]),mod.check()):breakCycle(dep,traced,processed))}),processed[id]=!0)}function checkLoaded(){var err,usingPathFallback,waitInterval=1e3*config.waitSeconds,expired=waitInterval&&context.startTime+waitInterval<(new Date).getTime(),noLoads=[],reqCalls=[],stillLoading=!1,needCycleCheck=!0;if(!inCheckLoaded){if(inCheckLoaded=!0,eachProp(enabledRegistry,function(mod){var map=mod.map,modId=map.id;if(mod.enabled&&(map.isDefine||reqCalls.push(mod),!mod.error))if(!mod.inited&&expired)hasPathFallback(modId)?(usingPathFallback=!0,stillLoading=!0):(noLoads.push(modId),removeScript(modId));else if(!mod.inited&&mod.fetched&&map.isDefine&&(stillLoading=!0,!map.prefix))return needCycleCheck=!1}),expired&&noLoads.length)return err=makeError("timeout","Load timeout for modules: "+noLoads,null,noLoads),err.contextName=context.contextName,onError(err);needCycleCheck&&each(reqCalls,function(mod){breakCycle(mod,{},{})}),expired&&!usingPathFallback||!stillLoading||!isBrowser&&!isWebWorker||checkLoadedTimeoutId||(checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0,checkLoaded()},50)),inCheckLoaded=!1}}function callGetModule(args){hasProp(defined,args[0])||getModule(makeModuleMap(args[0],null,!0)).init(args[1],args[2])}function removeListener(node,func,name,ieName){node.detachEvent&&!isOpera?ieName&&node.detachEvent(ieName,func):node.removeEventListener(name,func,!1)}function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;return removeListener(node,context.onScriptLoad,"load","onreadystatechange"),removeListener(node,context.onScriptError,"error"),{node:node,id:node&&node.getAttribute("data-requiremodule")}}function intakeDefines(){var args;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0])return onError(makeError("mismatch","Mismatched anonymous define() module: "+args[args.length-1]));callGetModule(args)}context.defQueueMap={}}var inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId,config={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},registry={},enabledRegistry={},undefEvents={},defQueue=[],defined={},urlFetched={},bundlesMap={},requireCounter=1,unnormalizedCounter=1;return handlers={require:function(mod){return mod.require?mod.require:mod.require=context.makeRequire(mod.map)},exports:function(mod){return mod.usingExports=!0,mod.map.isDefine?mod.exports?defined[mod.map.id]=mod.exports:mod.exports=defined[mod.map.id]={}:void 0},module:function(mod){return mod.module?mod.module:mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return getOwn(config.config,mod.map.id)||{}},exports:mod.exports||(mod.exports={})}}},Module=function(map){this.events=getOwn(undefEvents,map.id)||{},this.map=map,this.shim=getOwn(config.shim,map.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},Module.prototype={init:function(depMaps,factory,errback,options){options=options||{},this.inited||(this.factory=factory,errback?this.on("error",errback):this.events.error&&(errback=bind(this,function(err){this.emit("error",err)})),this.depMaps=depMaps&&depMaps.slice(0),this.errback=errback,this.inited=!0,this.ignore=options.ignore,options.enabled||this.enabled?this.enable():this.check())},defineDep:function(i,depExports){this.depMatched[i]||(this.depMatched[i]=!0,this.depCount-=1,this.depExports[i]=depExports)},fetch:function(){if(!this.fetched){this.fetched=!0,context.startTime=(new Date).getTime();var map=this.map;return this.shim?void context.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return map.prefix?this.callPlugin():this.load()})):map.prefix?this.callPlugin():this.load()}},load:function(){var url=this.map.url;urlFetched[url]||(urlFetched[url]=!0,context.load(this.map.id,url))},check:function(){if(this.enabled&&!this.enabling){var err,cjsModule,id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(factory)){try{exports=context.execCb(id,factory,depExports,exports)}catch(e){err=e}if(this.map.isDefine&&void 0===exports&&(cjsModule=this.module,cjsModule?exports=cjsModule.exports:this.usingExports&&(exports=this.exports)),err){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)return err.requireMap=this.map,err.requireModules=this.map.isDefine?[this.map.id]:null,err.requireType=this.map.isDefine?"define":"require",onError(this.error=err);"undefined"!=typeof console&&console.error?console.error(err):req.onError(err)}}else exports=factory;if(this.exports=exports,this.map.isDefine&&!this.ignore&&(defined[id]=exports,req.onResourceLoad)){var resLoadMaps=[];each(this.depMaps,function(depMap){resLoadMaps.push(depMap.normalizedMap||depMap)}),req.onResourceLoad(context,this.map,resLoadMaps)}cleanRegistry(id),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(context.defQueueMap,id)||this.fetch()}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix);this.depMaps.push(pluginMap),on(pluginMap,"defined",bind(this,function(plugin){var load,normalizedMap,normalizedMod,bundleId=getOwn(bundlesMap,this.map.id),name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,localRequire=context.makeRequire(map.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(plugin.normalize&&(name=plugin.normalize(name,function(name){return normalize(name,parentName,!0)})||""),normalizedMap=makeModuleMap(map.prefix+"!"+name,this.map.parentMap),on(normalizedMap,"defined",bind(this,function(value){this.map.normalizedMap=normalizedMap,this.init([],function(){return value},null,{enabled:!0,ignore:!0})})),normalizedMod=getOwn(registry,normalizedMap.id),void(normalizedMod&&(this.depMaps.push(normalizedMap),this.events.error&&normalizedMod.on("error",bind(this,function(err){this.emit("error",err)})),normalizedMod.enable()))):bundleId?(this.map.url=context.nameToUrl(bundleId),void this.load()):(load=bind(this,function(value){this.init([],function(){return value},null,{enabled:!0})}),load.error=bind(this,function(err){this.inited=!0,this.error=err,err.requireModules=[id],eachProp(registry,function(mod){0===mod.map.id.indexOf(id+"_unnormalized")&&cleanRegistry(mod.map.id)}),onError(err)}),load.fromText=bind(this,function(text,textAlt){var moduleName=map.name,moduleMap=makeModuleMap(moduleName),hasInteractive=useInteractive;textAlt&&(text=textAlt),hasInteractive&&(useInteractive=!1),getModule(moduleMap),hasProp(config.config,id)&&(config.config[moduleName]=config.config[id]);try{req.exec(text)}catch(e){return onError(makeError("fromtexteval","fromText eval for "+id+" failed: "+e,e,[id]))}hasInteractive&&(useInteractive=!0),this.depMaps.push(moduleMap),context.completeLoad(moduleName),localRequire([moduleName],load)}),void plugin.load(map.name,localRequire,load,config))})),context.enable(pluginMap,this),this.pluginMaps[pluginMap.id]=pluginMap},enable:function(){enabledRegistry[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(depMap,i){var id,mod,handler;if("string"==typeof depMap){if(depMap=makeModuleMap(depMap,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[i]=depMap,handler=getOwn(handlers,depMap.id))return void(this.depExports[i]=handler(this));this.depCount+=1,on(depMap,"defined",bind(this,function(depExports){this.undefed||(this.defineDep(i,depExports),this.check())})),this.errback?on(depMap,"error",bind(this,this.errback)):this.events.error&&on(depMap,"error",bind(this,function(err){this.emit("error",err)}))}id=depMap.id,mod=registry[id],hasProp(handlers,id)||!mod||mod.enabled||context.enable(depMap,this)})),eachProp(this.pluginMaps,bind(this,function(pluginMap){var mod=getOwn(registry,pluginMap.id);mod&&!mod.enabled&&context.enable(pluginMap,this)})),this.enabling=!1,this.check()},on:function(name,cb){var cbs=this.events[name];cbs||(cbs=this.events[name]=[]),cbs.push(cb)},emit:function(name,evt){each(this.events[name],function(cb){cb(evt)}),"error"===name&&delete this.events[name]}},context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,defQueue:defQueue,defQueueMap:{},Module:Module,makeModuleMap:makeModuleMap,nextTick:req.nextTick,onError:onError,configure:function(cfg){cfg.baseUrl&&"/"!==cfg.baseUrl.charAt(cfg.baseUrl.length-1)&&(cfg.baseUrl+="/");var shim=config.shim,objs={paths:!0,bundles:!0,config:!0,map:!0};eachProp(cfg,function(value,prop){objs[prop]?(config[prop]||(config[prop]={}),mixin(config[prop],value,!0,!0)):config[prop]=value}),cfg.bundles&&eachProp(cfg.bundles,function(value,prop){each(value,function(v){v!==prop&&(bundlesMap[v]=prop)})}),cfg.shim&&(eachProp(cfg.shim,function(value,id){isArray(value)&&(value={deps:value}),!value.exports&&!value.init||value.exportsFn||(value.exportsFn=context.makeShimExports(value)),shim[id]=value}),config.shim=shim),cfg.packages&&each(cfg.packages,function(pkgObj){var location,name;pkgObj="string"==typeof pkgObj?{name:pkgObj}:pkgObj,name=pkgObj.name,location=pkgObj.location,location&&(config.paths[name]=pkgObj.location),config.pkgs[name]=pkgObj.name+"/"+(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(registry,function(mod,id){mod.inited||mod.map.unnormalized||(mod.map=makeModuleMap(id,null,!0))}),(cfg.deps||cfg.callback)&&context.require(cfg.deps||[],cfg.callback)},makeShimExports:function(value){function fn(){var ret;return value.init&&(ret=value.init.apply(global,arguments)),ret||value.exports&&getGlobal(value.exports)}return fn},makeRequire:function(relMap,options){function localRequire(deps,callback,errback){var id,map,requireMod;return options.enableBuildCallback&&callback&&isFunction(callback)&&(callback.__requireJsBuild=!0),"string"==typeof deps?isFunction(callback)?onError(makeError("requireargs","Invalid require call"),errback):relMap&&hasProp(handlers,deps)?handlers[deps](registry[relMap.id]):req.get?req.get(context,deps,relMap,localRequire):(map=makeModuleMap(deps,relMap,!1,!0),id=map.id,hasProp(defined,id)?defined[id]:onError(makeError("notloaded",'Module name "'+id+'" has not been loaded yet for context: '+contextName+(relMap?"":". Use require([])")))):(intakeDefines(),context.nextTick(function(){intakeDefines(),requireMod=getModule(makeModuleMap(null,relMap)),requireMod.skipMap=options.skipMap,requireMod.init(deps,callback,errback,{enabled:!0}),checkLoaded()}),localRequire)}return options=options||{},mixin(localRequire,{isBrowser:isBrowser,toUrl:function(moduleNamePlusExt){var ext,index=moduleNamePlusExt.lastIndexOf("."),segment=moduleNamePlusExt.split("/")[0],isRelative="."===segment||".."===segment;return-1!==index&&(!isRelative||index>1)&&(ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length),moduleNamePlusExt=moduleNamePlusExt.substring(0,index)),context.nameToUrl(normalize(moduleNamePlusExt,relMap&&relMap.id,!0),ext,!0)},defined:function(id){return hasProp(defined,makeModuleMap(id,relMap,!1,!0).id)},specified:function(id){return id=makeModuleMap(id,relMap,!1,!0).id,hasProp(defined,id)||hasProp(registry,id)}}),relMap||(localRequire.undef=function(id){takeGlobalQueue();var map=makeModuleMap(id,relMap,!0),mod=getOwn(registry,id);mod.undefed=!0,removeScript(id),delete defined[id],delete urlFetched[map.url],delete undefEvents[id],eachReverse(defQueue,function(args,i){args[0]===id&&defQueue.splice(i,1)}),delete context.defQueueMap[id],mod&&(mod.events.defined&&(undefEvents[id]=mod.events),cleanRegistry(id))}),localRequire},enable:function(depMap){var mod=getOwn(registry,depMap.id);mod&&getModule(depMap).enable()},completeLoad:function(moduleName){var found,args,mod,shim=getOwn(config.shim,moduleName)||{},shExports=shim.exports;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0]){if(args[0]=moduleName,found)break;found=!0}else args[0]===moduleName&&(found=!0);callGetModule(args)}if(context.defQueueMap={},mod=getOwn(registry,moduleName),!found&&!hasProp(defined,moduleName)&&mod&&!mod.inited){if(!(!config.enforceDefine||shExports&&getGlobal(shExports)))return hasPathFallback(moduleName)?void 0:onError(makeError("nodefine","No define call for "+moduleName,null,[moduleName]));callGetModule([moduleName,shim.deps||[],shim.exportsFn])}checkLoaded()},nameToUrl:function(moduleName,ext,skipExt){var paths,syms,i,parentModule,url,parentPath,bundleId,pkgMain=getOwn(config.pkgs,moduleName);if(pkgMain&&(moduleName=pkgMain),bundleId=getOwn(bundlesMap,moduleName))return context.nameToUrl(bundleId,ext,skipExt);if(req.jsExtRegExp.test(moduleName))url=moduleName+(ext||"");else{for(paths=config.paths,syms=moduleName.split("/"),i=syms.length;i>0;i-=1)if(parentModule=syms.slice(0,i).join("/"),parentPath=getOwn(paths,parentModule)){isArray(parentPath)&&(parentPath=parentPath[0]),syms.splice(0,i,parentPath);break}url=syms.join("/"),url+=ext||(/^data\:|\?/.test(url)||skipExt?"":".js"),url=("/"===url.charAt(0)||url.match(/^[\w\+\.\-]+:/)?"":config.baseUrl)+url}return config.urlArgs?url+((-1===url.indexOf("?")?"?":"&")+config.urlArgs):url},load:function(id,url){req.load(context,id,url)},execCb:function(name,callback,args,exports){return callback.apply(exports,args)},onScriptLoad:function(evt){if("load"===evt.type||readyRegExp.test((evt.currentTarget||evt.srcElement).readyState)){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id)}},onScriptError:function(evt){var data=getScriptData(evt);if(!hasPathFallback(data.id)){var parents=[];return eachProp(registry,function(value,key){0!==key.indexOf("_@r")&&each(value.depMaps,function(depMap){return depMap.id===data.id&&parents.push(key),!0})}),onError(makeError("scripterror",'Script error for "'+data.id+(parents.length?'", needed by: '+parents.join(", "):'"'),evt,[data.id]))}}},context.require=context.makeRequire(),context}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(script){return"interactive"===script.readyState?interactiveScript=script:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.22",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(deps,callback,errback,optional){var context,config,contextName=defContextName;return isArray(deps)||"string"==typeof deps||(config=deps,isArray(callback)?(deps=callback,callback=errback,errback=optional):deps=[]),config&&config.context&&(contextName=config.context),context=getOwn(contexts,contextName),context||(context=contexts[contextName]=req.s.newContext(contextName)),config&&context.configure(config),context.require(deps,callback,errback)},req.config=function(config){return req(config)},req.nextTick="undefined"!=typeof setTimeout?function(fn){setTimeout(fn,4)}:function(fn){fn()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(prop){req[prop]=function(){var ctx=contexts[defContextName];return ctx.require[prop].apply(ctx,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(config,moduleName,url){var node=config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return node.type=config.scriptType||"text/javascript",node.charset="utf-8",node.async=!0,node},req.load=function(context,moduleName,url){var node,config=context&&context.config||{};if(isBrowser)return node=req.createNode(config,moduleName,url),config.onNodeCreated&&config.onNodeCreated(node,config,moduleName,url),node.setAttribute("data-requirecontext",context.contextName),node.setAttribute("data-requiremodule",moduleName),!node.attachEvent||node.attachEvent.toString&&node.attachEvent.toString().indexOf("[native code")<0||isOpera?(node.addEventListener("load",context.onScriptLoad,!1),node.addEventListener("error",context.onScriptError,!1)):(useInteractive=!0,node.attachEvent("onreadystatechange",context.onScriptLoad)),node.src=url,currentlyAddingScript=node,baseElement?head.insertBefore(node,baseElement):head.appendChild(node),currentlyAddingScript=null,node;if(isWebWorker)try{importScripts(url),context.completeLoad(moduleName)}catch(e){context.onError(makeError("importscripts","importScripts failed for "+moduleName+" at "+url,e,[moduleName]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(script){return head||(head=script.parentNode),dataMain=script.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(name,deps,callback){var node,context;"string"!=typeof name&&(callback=deps,deps=name,name=null),isArray(deps)||(callback=deps,deps=null),!deps&&isFunction(callback)&&(deps=[],callback.length&&(callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)}),deps=(1===callback.length?["require"]:["require","exports","module"]).concat(deps))),useInteractive&&(node=currentlyAddingScript||getInteractiveScript(),node&&(name||(name=node.getAttribute("data-requiremodule")),context=contexts[node.getAttribute("data-requirecontext")])),context?(context.defQueue.push([name,deps,callback]),context.defQueueMap[name]=!0):globalDefQueue.push([name,deps,callback])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this),define("node_modules/requirejs/require.js",function(){}),function(global,factory){"object"==typeof module&&"object"==typeof module.exports?module.exports=global.document?factory(global,!0):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w)}:factory(global)}("undefined"!=typeof window?window:this,function(window,noGlobal){function isArraylike(obj){var length=obj.length,type=jQuery.type(obj);return"function"===type||jQuery.isWindow(obj)?!1:1===obj.nodeType&&length?!0:"array"===type||0===length||"number"==typeof length&&length>0&&length-1 in obj}function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier))return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not});if(qualifier.nodeType)return jQuery.grep(elements,function(elem){return elem===qualifier!==not});if("string"==typeof qualifier){if(risSimple.test(qualifier))return jQuery.filter(qualifier,elements,not);qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return jQuery.inArray(elem,qualifier)>=0!==not})}function sibling(cur,dir){do cur=cur[dir];while(cur&&1!==cur.nodeType);return cur}function createOptions(options){var object=optionsCache[options]={};return jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=!0}),object}function detach(){document.addEventListener?(document.removeEventListener("DOMContentLoaded",completed,!1),window.removeEventListener("load",completed,!1)):(document.detachEvent("onreadystatechange",completed),window.detachEvent("onload",completed))}function completed(){(document.addEventListener||"load"===event.type||"complete"===document.readyState)&&(detach(),jQuery.ready())}function dataAttr(elem,key,data){if(void 0===data&&1===elem.nodeType){var name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();if(data=elem.getAttribute(name),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}jQuery.data(elem,key,data)}else data=void 0}return data}function isEmptyDataObject(obj){var name;for(name in obj)if(("data"!==name||!jQuery.isEmptyObject(obj[name]))&&"toJSON"!==name)return!1;return!0}function internalData(elem,name,data,pvt){if(jQuery.acceptData(elem)){var ret,thisCache,internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[internalKey]:elem[internalKey]&&internalKey;if(id&&cache[id]&&(pvt||cache[id].data)||void 0!==data||"string"!=typeof name)return id||(id=isNode?elem[internalKey]=deletedIds.pop()||jQuery.guid++:internalKey),cache[id]||(cache[id]=isNode?{}:{toJSON:jQuery.noop}),("object"==typeof name||"function"==typeof name)&&(pvt?cache[id]=jQuery.extend(cache[id],name):cache[id].data=jQuery.extend(cache[id].data,name)),thisCache=cache[id],pvt||(thisCache.data||(thisCache.data={}),thisCache=thisCache.data),void 0!==data&&(thisCache[jQuery.camelCase(name)]=data),"string"==typeof name?(ret=thisCache[name],null==ret&&(ret=thisCache[jQuery.camelCase(name)])):ret=thisCache,ret}}function internalRemoveData(elem,name,pvt){if(jQuery.acceptData(elem)){var thisCache,i,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(cache[id]){if(name&&(thisCache=pvt?cache[id]:cache[id].data)){jQuery.isArray(name)?name=name.concat(jQuery.map(name,jQuery.camelCase)):name in thisCache?name=[name]:(name=jQuery.camelCase(name),name=name in thisCache?[name]:name.split(" ")),i=name.length;for(;i--;)delete thisCache[name[i]];if(pvt?!isEmptyDataObject(thisCache):!jQuery.isEmptyObject(thisCache))return}(pvt||(delete cache[id].data,isEmptyDataObject(cache[id])))&&(isNode?jQuery.cleanData([elem],!0):support.deleteExpando||cache!=cache.window?delete cache[id]:cache[id]=null)}}}function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return document.activeElement}catch(err){}}function createSafeFragment(document){var list=nodeNames.split("|"),safeFrag=document.createDocumentFragment();if(safeFrag.createElement)for(;list.length;)safeFrag.createElement(list.pop());return safeFrag}function getAll(context,tag){var elems,elem,i=0,found=typeof context.getElementsByTagName!==strundefined?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!==strundefined?context.querySelectorAll(tag||"*"):void 0;if(!found)for(found=[],elems=context.childNodes||context;null!=(elem=elems[i]);i++)!tag||jQuery.nodeName(elem,tag)?found.push(elem):jQuery.merge(found,getAll(elem,tag));return void 0===tag||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],found):found}function fixDefaultChecked(elem){rcheckableType.test(elem.type)&&(elem.defaultChecked=elem.checked)}function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(11!==content.nodeType?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){return elem.type=(null!==jQuery.find.attr(elem,"type"))+"/"+elem.type,elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);return match?elem.type=match[1]:elem.removeAttribute("type"),elem}function setGlobalEval(elems,refElements){for(var elem,i=0;null!=(elem=elems[i]);i++)jQuery._data(elem,"globalEval",!refElements||jQuery._data(refElements[i],"globalEval"))}function cloneCopyEvent(src,dest){if(1===dest.nodeType&&jQuery.hasData(src)){var type,i,l,oldData=jQuery._data(src),curData=jQuery._data(dest,oldData),events=oldData.events;if(events){delete curData.handle,curData.events={};for(type in events)for(i=0,l=events[type].length;l>i;i++)jQuery.event.add(dest,type,events[type][i])}curData.data&&(curData.data=jQuery.extend({},curData.data))}}function fixCloneNodeIssues(src,dest){var nodeName,e,data;if(1===dest.nodeType){if(nodeName=dest.nodeName.toLowerCase(),!support.noCloneEvent&&dest[jQuery.expando]){data=jQuery._data(dest);for(e in data.events)jQuery.removeEvent(dest,e,data.handle);dest.removeAttribute(jQuery.expando)}"script"===nodeName&&dest.text!==src.text?(disableScript(dest).text=src.text,restoreScript(dest)):"object"===nodeName?(dest.parentNode&&(dest.outerHTML=src.outerHTML),support.html5Clone&&src.innerHTML&&!jQuery.trim(dest.innerHTML)&&(dest.innerHTML=src.innerHTML)):"input"===nodeName&&rcheckableType.test(src.type)?(dest.defaultChecked=dest.checked=src.checked,dest.value!==src.value&&(dest.value=src.value)):"option"===nodeName?dest.defaultSelected=dest.selected=src.defaultSelected:("input"===nodeName||"textarea"===nodeName)&&(dest.defaultValue=src.defaultValue)}}function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");return elem.detach(),display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];return display||(display=actualDisplay(nodeName,doc),"none"!==display&&display||(iframe=(iframe||jQuery("'),"undefined"==typeof html&&(html=layout.renderHtml(self)),self.statusbar&&(footerHtml=self.statusbar.renderHtml()),'
    '+headerHtml+'
    '+html+"
    "+footerHtml+"
    "},fullscreen:function(state){var slowRendering,layoutRect,self=this,documentElement=document.documentElement,prefix=self.classPrefix;if(state!=self._fullscreen)if(DomUtils.on(window,"resize",function(){var time;if(self._fullscreen)if(slowRendering)self._timer||(self._timer=setTimeout(function(){var rect=DomUtils.getWindowSize();self.moveTo(0,0).resizeTo(rect.w,rect.h),self._timer=0},50));else{time=(new Date).getTime();var rect=DomUtils.getWindowSize();self.moveTo(0,0).resizeTo(rect.w,rect.h),(new Date).getTime()-time>50&&(slowRendering=!0)}}),layoutRect=self.layoutRect(),self._fullscreen=state,state){self._initial={x:layoutRect.x,y:layoutRect.y,w:layoutRect.w,h:layoutRect.h},self._borderBox=self.parseBox("0"),self.getEl("head").style.display="none",layoutRect.deltaH-=layoutRect.headerH+2,DomUtils.addClass(documentElement,prefix+"fullscreen"),DomUtils.addClass(document.body,prefix+"fullscreen"),self.addClass("fullscreen");var rect=DomUtils.getWindowSize();self.moveTo(0,0).resizeTo(rect.w,rect.h)}else self._borderBox=self.parseBox(self.settings.border),self.getEl("head").style.display="",layoutRect.deltaH+=layoutRect.headerH,DomUtils.removeClass(documentElement,prefix+"fullscreen"),DomUtils.removeClass(document.body,prefix+"fullscreen"),self.removeClass("fullscreen"),self.moveTo(self._initial.x,self._initial.y).resizeTo(self._initial.w,self._initial.h);return self.reflow()},postRender:function(){var startPos,self=this;setTimeout(function(){self.addClass("in")},0),self._super(),self.statusbar&&self.statusbar.postRender(),self.focus(),this.dragHelper=new DragHelper(self._id+"-dragh",{start:function(){startPos={x:self.layoutRect().x,y:self.layoutRect().y}},drag:function(e){self.moveTo(startPos.x+e.deltaX,startPos.y+e.deltaY)}}),self.on("submit",function(e){e.isDefaultPrevented()||self.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var self=this,prefix=self.classPrefix;self.dragHelper.destroy(),self._super(),self.statusbar&&this.statusbar.remove(),self._fullscreen&&(DomUtils.removeClass(document.documentElement,prefix+"fullscreen"),DomUtils.removeClass(document.body,prefix+"fullscreen"))},getContentWindow:function(){var ifr=this.getEl().getElementsByTagName("iframe")[0];return ifr?ifr.contentWindow:null}});return Window}),define("tinymce/ui/MessageBox",["tinymce/ui/Window"],function(Window){var MessageBox=Window.extend({init:function(settings){settings={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(settings)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(settings){function createButton(text,status,primary){return{type:"button",text:text,subtype:primary?"primary":"",onClick:function(e){e.control.parents()[1].close(),callback(status)}}}var buttons,callback=settings.callback||function(){};switch(settings.buttons){case MessageBox.OK_CANCEL:buttons=[createButton("Ok",!0,!0),createButton("Cancel",!1)];break;case MessageBox.YES_NO:case MessageBox.YES_NO_CANCEL:buttons=[createButton("Yes",1,!0),createButton("No",0)],settings.buttons==MessageBox.YES_NO_CANCEL&&buttons.push(createButton("Cancel",-1));break;default:buttons=[createButton("Ok",!0,!0)]}return new Window({padding:20,x:settings.x,y:settings.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:buttons,title:settings.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:settings.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:settings.onClose,onCancel:function(){callback(!1)}}).renderTo(document.body).reflow()},alert:function(settings,callback){return"string"==typeof settings&&(settings={text:settings}),settings.callback=callback,MessageBox.msgBox(settings)},confirm:function(settings,callback){return"string"==typeof settings&&(settings={text:settings}),settings.callback=callback,settings.buttons=MessageBox.OK_CANCEL,MessageBox.msgBox(settings)}}});return MessageBox}),define("tinymce/WindowManager",["tinymce/ui/Window","tinymce/ui/MessageBox"],function(Window,MessageBox){return function(editor){function getTopMostWindow(){return windows.length?windows[windows.length-1]:void 0}var self=this,windows=[];self.windows=windows,editor.on("remove",function(){for(var i=windows.length;i--;)windows[i].close()}),self.open=function(args,params){var win;return editor.editorManager.setActive(editor),args.title=args.title||" ",args.url=args.url||args.file,args.url&&(args.width=parseInt(args.width||320,10),args.height=parseInt(args.height||240,10)),args.body&&(args.items={defaults:args.defaults,type:args.bodyType||"form",items:args.body}),args.url||args.buttons||(args.buttons=[{text:"Ok",subtype:"primary",onclick:function(){win.find("form")[0].submit()}},{text:"Cancel",onclick:function(){win.close()}}]),win=new Window(args),windows.push(win),win.on("close",function(){for(var i=windows.length;i--;)windows[i]===win&&windows.splice(i,1);windows.length||editor.focus()}),args.data&&win.on("postRender",function(){this.find("*").each(function(ctrl){var name=ctrl.name();name in args.data&&ctrl.value(args.data[name])})}),win.features=args||{},win.params=params||{},1===windows.length&&editor.nodeChanged(),win.renderTo().reflow()},self.alert=function(message,callback,scope){MessageBox.alert(message,function(){callback?callback.call(scope||this):editor.focus()})},self.confirm=function(message,callback,scope){MessageBox.confirm(message,function(state){callback.call(scope||this,state)})},self.close=function(){getTopMostWindow()&&getTopMostWindow().close()},self.getParams=function(){return getTopMostWindow()?getTopMostWindow().params:null},self.setParams=function(params){getTopMostWindow()&&(getTopMostWindow().params=params)},self.getWindows=function(){return windows}}}),define("tinymce/util/Quirks",["tinymce/util/VK","tinymce/dom/RangeUtils","tinymce/html/Node","tinymce/html/Entities","tinymce/Env","tinymce/util/Tools"],function(VK,RangeUtils,Node,Entities,Env,Tools){return function(editor){function setEditorCommandState(cmd,state){try{editor.getDoc().execCommand(cmd,!1,state)}catch(ex){}}function getDocumentMode(){var documentMode=editor.getDoc().documentMode;return documentMode?documentMode:6}function isDefaultPrevented(e){return e.isDefaultPrevented()}function cleanupStylesWhenDeleting(){function customDelete(isForward){var mutationObserver=new MutationObserver(function(){});Tools.each(editor.getBody().getElementsByTagName("*"),function(elm){"SPAN"==elm.tagName&&elm.setAttribute("mce-data-marked",1),!elm.hasAttribute("data-mce-style")&&elm.hasAttribute("style")&&editor.dom.setAttrib(elm,"style",editor.dom.getAttrib(elm,"style"))}),mutationObserver.observe(editor.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),editor.getDoc().execCommand(isForward?"ForwardDelete":"Delete",!1,null);var rng=editor.selection.getRng(),caretElement=rng.startContainer.parentNode;Tools.each(mutationObserver.takeRecords(),function(record){if(dom.isChildOf(record.target,editor.getBody())){if("style"==record.attributeName){var oldValue=record.target.getAttribute("data-mce-style");oldValue?record.target.setAttribute("style",oldValue):record.target.removeAttribute("style")}Tools.each(record.addedNodes,function(node){if("SPAN"==node.nodeName&&!node.getAttribute("mce-data-marked")){var offset,container;node==caretElement&&(offset=rng.startOffset,container=node.firstChild),dom.remove(node,!0),container&&(rng.setStart(container,offset),rng.setEnd(container,offset),editor.selection.setRng(rng))}})}}),mutationObserver.disconnect(),Tools.each(editor.dom.select("span[mce-data-marked]"),function(span){span.removeAttribute("mce-data-marked")})}var olderWebKit,dragStartRng,doc=editor.getDoc(),urlPrefix="data:text/mce-internal,",MutationObserver=window.MutationObserver;MutationObserver||(olderWebKit=!0,MutationObserver=function(){function nodeInsert(e){var target=e.relatedNode||e.target;records.push({target:target,addedNodes:[target]})}function attrModified(e){var target=e.relatedNode||e.target;records.push({target:target,attributeName:e.attrName})}var target,records=[];this.observe=function(node){target=node,target.addEventListener("DOMSubtreeModified",nodeInsert,!1),target.addEventListener("DOMNodeInsertedIntoDocument",nodeInsert,!1),target.addEventListener("DOMNodeInserted",nodeInsert,!1),target.addEventListener("DOMAttrModified",attrModified,!1)},this.disconnect=function(){target.removeEventListener("DOMSubtreeModified",nodeInsert,!1),target.removeEventListener("DOMNodeInsertedIntoDocument",nodeInsert,!1),target.removeEventListener("DOMNodeInserted",nodeInsert,!1),target.removeEventListener("DOMAttrModified",attrModified,!1)},this.takeRecords=function(){return records}}),editor.on("keydown",function(e){var isForward=e.keyCode==DELETE,isMeta=VK.metaKeyPressed(e);if(!isDefaultPrevented(e)&&(isForward||e.keyCode==BACKSPACE)){var rng=editor.selection.getRng(),container=rng.startContainer,offset=rng.startOffset;if(!isMeta&&rng.collapsed&&3==container.nodeType&&(isForward?offset0))return;e.preventDefault(),isMeta&&editor.selection.getSel().modify("extend",isForward?"forward":"backward","word"),customDelete(isForward)}}),editor.on("keypress",function(e){isDefaultPrevented(e)||selection.isCollapsed()||!e.charCode||VK.metaKeyPressed(e)||(e.preventDefault(),customDelete(!0),editor.selection.setContent(String.fromCharCode(e.charCode))); -}),editor.addCommand("Delete",function(){customDelete()}),editor.addCommand("ForwardDelete",function(){customDelete(!0)}),olderWebKit||(editor.on("dragstart",function(e){var selectionHtml;editor.selection.isCollapsed()&&"IMG"==e.target.tagName&&selection.select(e.target),dragStartRng=selection.getRng(),selectionHtml=editor.selection.getContent(),selectionHtml.length>0&&e.dataTransfer.setData("URL","data:text/mce-internal,"+escape(selectionHtml))}),editor.on("drop",function(e){if(!isDefaultPrevented(e)){var internalContent=e.dataTransfer.getData("URL");if(!internalContent||-1==internalContent.indexOf(urlPrefix)||!doc.caretRangeFromPoint)return;internalContent=unescape(internalContent.substr(urlPrefix.length)),doc.caretRangeFromPoint&&(e.preventDefault(),window.setTimeout(function(){var pointRng=doc.caretRangeFromPoint(e.x,e.y);dragStartRng&&(selection.setRng(dragStartRng),dragStartRng=null),customDelete(),selection.setRng(pointRng),editor.insertContent(internalContent)},0))}}),editor.on("cut",function(e){!isDefaultPrevented(e)&&e.clipboardData&&(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",editor.selection.getContent()),e.clipboardData.setData("text/plain",editor.selection.getContent({format:"text"})),customDelete(!0))}))}function emptyEditorWhenDeleting(){function serializeRng(rng){var body=dom.create("body"),contents=rng.cloneContents();return body.appendChild(contents),selection.serializer.serialize(body,{format:"html"})}function allContentsSelected(rng){if(!rng.setStart){if(rng.item)return!1;var bodyRng=rng.duplicate();return bodyRng.moveToElementText(editor.getBody()),RangeUtils.compareRanges(rng,bodyRng)}var selection=serializeRng(rng),allRng=dom.createRng();allRng.selectNode(editor.getBody());var allSelection=serializeRng(allRng);return selection===allSelection}editor.on("keydown",function(e){var isCollapsed,body,keyCode=e.keyCode;if(!isDefaultPrevented(e)&&(keyCode==DELETE||keyCode==BACKSPACE)){if(isCollapsed=editor.selection.isCollapsed(),body=editor.getBody(),isCollapsed&&!dom.isEmpty(body))return;if(!isCollapsed&&!allContentsSelected(editor.selection.getRng()))return;e.preventDefault(),editor.setContent(""),body.firstChild&&dom.isBlock(body.firstChild)?editor.selection.setCursorLocation(body.firstChild,0):editor.selection.setCursorLocation(body,0),editor.nodeChanged()}})}function selectAll(){editor.shortcuts.add("ctrl+a",null,"SelectAll")}function inputMethodFocus(){editor.settings.content_editable||(dom.bind(editor.getDoc(),"focusin",function(){selection.setRng(selection.getRng())}),dom.bind(editor.getDoc(),"mousedown mouseup",function(e){e.target==editor.getDoc().documentElement&&(editor.getBody().focus(),"mousedown"==e.type?selection.placeCaretAt(e.clientX,e.clientY):selection.setRng(selection.getRng()))}))}function removeHrOnBackspace(){editor.on("keydown",function(e){if(!isDefaultPrevented(e)&&e.keyCode===BACKSPACE){if(!editor.getBody().getElementsByTagName("hr").length)return;if(selection.isCollapsed()&&0===selection.getRng(!0).startOffset){var node=selection.getNode(),previousSibling=node.previousSibling;if("HR"==node.nodeName)return dom.remove(node),void e.preventDefault();previousSibling&&previousSibling.nodeName&&"hr"===previousSibling.nodeName.toLowerCase()&&(dom.remove(previousSibling),e.preventDefault())}}})}function focusBody(){window.Range.prototype.getClientRects||editor.on("mousedown",function(e){if(!isDefaultPrevented(e)&&"HTML"===e.target.nodeName){var body=editor.getBody();body.blur(),setTimeout(function(){body.focus()},0)}})}function selectControlElements(){editor.on("click",function(e){var target=e.target;/^(IMG|HR)$/.test(target.nodeName)&&(e.preventDefault(),selection.getSel().setBaseAndExtent(target,0,target,1),editor.nodeChanged()),"A"==target.nodeName&&dom.hasClass(target,"mce-item-anchor")&&(e.preventDefault(),selection.select(target))})}function removeStylesWhenDeletingAcrossBlockElements(){function getAttributeApplyFunction(){var template=dom.getAttribs(selection.getStart().cloneNode(!1));return function(){var target=selection.getStart();target!==editor.getBody()&&(dom.setAttrib(target,"style",null),each(template,function(attr){target.setAttributeNode(attr.cloneNode(!0))}))}}function isSelectionAcrossElements(){return!selection.isCollapsed()&&dom.getParent(selection.getStart(),dom.isBlock)!=dom.getParent(selection.getEnd(),dom.isBlock)}editor.on("keypress",function(e){var applyAttributes;return isDefaultPrevented(e)||8!=e.keyCode&&46!=e.keyCode||!isSelectionAcrossElements()?void 0:(applyAttributes=getAttributeApplyFunction(),editor.getDoc().execCommand("delete",!1,null),applyAttributes(),e.preventDefault(),!1)}),dom.bind(editor.getDoc(),"cut",function(e){var applyAttributes;!isDefaultPrevented(e)&&isSelectionAcrossElements()&&(applyAttributes=getAttributeApplyFunction(),setTimeout(function(){applyAttributes()},0))})}function ensureBodyHasRoleApplication(){document.body.setAttribute("role","application")}function disableBackspaceIntoATable(){editor.on("keydown",function(e){if(!isDefaultPrevented(e)&&e.keyCode===BACKSPACE&&selection.isCollapsed()&&0===selection.getRng(!0).startOffset){var previousSibling=selection.getNode().previousSibling;if(previousSibling&&previousSibling.nodeName&&"table"===previousSibling.nodeName.toLowerCase())return e.preventDefault(),!1}})}function addNewLinesBeforeBrInPre(){getDocumentMode()>7||(setEditorCommandState("RespectVisibilityInDesign",!0),editor.contentStyles.push(".mceHideBrInPre pre br {display: none}"),dom.addClass(editor.getBody(),"mceHideBrInPre"),parser.addNodeFilter("pre",function(nodes){for(var brNodes,j,brElm,sibling,i=nodes.length;i--;)for(brNodes=nodes[i].getAll("br"),j=brNodes.length;j--;)brElm=brNodes[j],sibling=brElm.prev,sibling&&3===sibling.type&&"\n"!=sibling.value.charAt(sibling.value-1)?sibling.value+="\n":brElm.parent.insert(new Node("#text",3),brElm,!0).value="\n"}),serializer.addNodeFilter("pre",function(nodes){for(var brNodes,j,brElm,sibling,i=nodes.length;i--;)for(brNodes=nodes[i].getAll("br"),j=brNodes.length;j--;)brElm=brNodes[j],sibling=brElm.prev,sibling&&3==sibling.type&&(sibling.value=sibling.value.replace(/\r?\n$/,""))}))}function removePreSerializedStylesWhenSelectingControls(){dom.bind(editor.getBody(),"mouseup",function(){var value,node=selection.getNode();"IMG"==node.nodeName&&((value=dom.getStyle(node,"width"))&&(dom.setAttrib(node,"width",value.replace(/[^0-9%]+/g,"")),dom.setStyle(node,"width","")),(value=dom.getStyle(node,"height"))&&(dom.setAttrib(node,"height",value.replace(/[^0-9%]+/g,"")),dom.setStyle(node,"height","")))})}function removeBlockQuoteOnBackSpace(){editor.on("keydown",function(e){var rng,container,offset,root,parent;if(!isDefaultPrevented(e)&&e.keyCode==VK.BACKSPACE&&(rng=selection.getRng(),container=rng.startContainer,offset=rng.startOffset,root=dom.getRoot(),parent=container,rng.collapsed&&0===offset)){for(;parent&&parent.parentNode&&parent.parentNode.firstChild==parent&&parent.parentNode!=root;)parent=parent.parentNode;"BLOCKQUOTE"===parent.tagName&&(editor.formatter.toggle("blockquote",null,parent),rng=dom.createRng(),rng.setStart(container,0),rng.setEnd(container,0),selection.setRng(rng))}})}function setGeckoEditingOptions(){function setOpts(){editor._refreshContentEditable(),setEditorCommandState("StyleWithCSS",!1),setEditorCommandState("enableInlineTableEditing",!1),settings.object_resizing||setEditorCommandState("enableObjectResizing",!1)}settings.readonly||editor.on("BeforeExecCommand MouseDown",setOpts)}function addBrAfterLastLinks(){function fixLinks(){each(dom.select("a"),function(node){var parentNode=node.parentNode,root=dom.getRoot();if(parentNode.lastChild===node){for(;parentNode&&!dom.isBlock(parentNode);){if(parentNode.parentNode.lastChild!==parentNode||parentNode===root)return;parentNode=parentNode.parentNode}dom.add(parentNode,"br",{"data-mce-bogus":1})}})}editor.on("SetContent ExecCommand",function(e){("setcontent"==e.type||"mceInsertLink"===e.command)&&fixLinks()})}function setDefaultBlockType(){settings.forced_root_block&&editor.on("init",function(){setEditorCommandState("DefaultParagraphSeparator",settings.forced_root_block)})}function removeGhostSelection(){editor.on("Undo Redo SetContent",function(e){e.initial||editor.execCommand("mceRepaint")})}function deleteControlItemOnBackSpace(){editor.on("keydown",function(e){var rng;isDefaultPrevented(e)||e.keyCode!=BACKSPACE||(rng=editor.getDoc().selection.createRange(),rng&&rng.item&&(e.preventDefault(),editor.undoManager.beforeChange(),dom.remove(rng.item(0)),editor.undoManager.add()))})}function renderEmptyBlocksFix(){var emptyBlocksCSS;getDocumentMode()>=10&&(emptyBlocksCSS="",each("p div h1 h2 h3 h4 h5 h6".split(" "),function(name,i){emptyBlocksCSS+=(i>0?",":"")+name+":empty"}),editor.contentStyles.push(emptyBlocksCSS+"{padding-right: 1px !important}"))}function keepNoScriptContents(){getDocumentMode()<9&&(parser.addNodeFilter("noscript",function(nodes){for(var node,textNode,i=nodes.length;i--;)node=nodes[i],textNode=node.firstChild,textNode&&node.attr("data-mce-innertext",textNode.value)}),serializer.addNodeFilter("noscript",function(nodes){for(var node,textNode,value,i=nodes.length;i--;)node=nodes[i],textNode=nodes[i].firstChild,textNode?textNode.value=Entities.decode(textNode.value):(value=node.attributes.map["data-mce-innertext"],value&&(node.attr("data-mce-innertext",null),textNode=new Node("#text",3),textNode.value=value,textNode.raw=!0,node.append(textNode)))}))}function fixCaretSelectionOfDocumentElementOnIe(){function rngFromPoint(x,y){var rng=body.createTextRange();try{rng.moveToPoint(x,y)}catch(ex){rng=null}return rng}function selectionChange(e){var pointRng;e.button?(pointRng=rngFromPoint(e.x,e.y),pointRng&&(pointRng.compareEndPoints("StartToStart",startRng)>0?pointRng.setEndPoint("StartToStart",startRng):pointRng.setEndPoint("EndToEnd",startRng),pointRng.select())):endSelection()}function endSelection(){var rng=doc.selection.createRange();startRng&&!rng.item&&0===rng.compareEndPoints("StartToEnd",rng)&&startRng.select(),dom.unbind(doc,"mouseup",endSelection),dom.unbind(doc,"mousemove",selectionChange),startRng=started=0}var started,startRng,htmlElm,doc=dom.doc,body=doc.body;doc.documentElement.unselectable=!0,dom.bind(doc,"mousedown contextmenu",function(e){if("HTML"===e.target.nodeName){if(started&&endSelection(),htmlElm=doc.documentElement,htmlElm.scrollHeight>htmlElm.clientHeight)return;started=1,startRng=rngFromPoint(e.x,e.y),startRng&&(dom.bind(doc,"mouseup",endSelection),dom.bind(doc,"mousemove",selectionChange),dom.getRoot().focus(),startRng.select())}})}function normalizeSelection(){editor.on("keyup focusin mouseup",function(e){65==e.keyCode&&VK.metaKeyPressed(e)||selection.normalize()},!0)}function showBrokenImageIcon(){editor.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function restoreFocusOnKeyDown(){editor.inline||editor.on("keydown",function(){document.activeElement==document.body&&editor.getWin().focus()})}function bodyHeight(){editor.inline||(editor.contentStyles.push("body {min-height: 150px}"),editor.on("click",function(e){"HTML"==e.target.nodeName&&(editor.getBody().focus(),editor.selection.normalize(),editor.nodeChanged())}))}function blockCmdArrowNavigation(){Env.mac&&editor.on("keydown",function(e){!VK.metaKeyPressed(e)||37!=e.keyCode&&39!=e.keyCode||(e.preventDefault(),editor.selection.getSel().modify("move",37==e.keyCode?"backward":"forward","word"))})}function disableAutoUrlDetect(){setEditorCommandState("AutoUrlDetect",!1)}function doubleTrailingBrElements(){editor.inline||editor.on("focus blur beforegetcontent",function(){var br=editor.dom.create("br");editor.getBody().appendChild(br),br.parentNode.removeChild(br)},!0)}function tapLinksAndImages(){editor.on("click",function(e){var elm=e.target;do if("A"===elm.tagName)return void e.preventDefault();while(elm=elm.parentNode)}),editor.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function touchClickEvent(){editor.on("touchstart",function(e){var elm,time,startTouch,changedTouches;elm=e.target,time=(new Date).getTime(),changedTouches=e.changedTouches,!changedTouches||changedTouches.length>1||(startTouch=changedTouches[0],editor.once("touchend",function(e){var args,endTouch=e.changedTouches[0];(new Date).getTime()-time>500||Math.abs(startTouch.clientX-endTouch.clientX)>5||Math.abs(startTouch.clientY-endTouch.clientY)>5||(args={target:elm},each("pageX pageY clientX clientY screenX screenY".split(" "),function(key){args[key]=endTouch[key]}),args=editor.fire("click",args),args.isDefaultPrevented()||(editor.selection.placeCaretAt(endTouch.clientX,endTouch.clientY),editor.nodeChanged()))}))})}function blockFormSubmitInsideEditor(){editor.on("init",function(){editor.dom.bind(editor.getBody(),"submit",function(e){e.preventDefault()})})}function removeAppleInterchangeBrs(){parser.addNodeFilter("br",function(nodes){for(var i=nodes.length;i--;)"Apple-interchange-newline"==nodes[i].attr("class")&&nodes[i].remove()})}var each=Tools.each,BACKSPACE=VK.BACKSPACE,DELETE=VK.DELETE,dom=editor.dom,selection=editor.selection,settings=editor.settings,parser=editor.parser,serializer=editor.serializer,isGecko=Env.gecko,isIE=Env.ie,isWebKit=Env.webkit;removeBlockQuoteOnBackSpace(),emptyEditorWhenDeleting(),normalizeSelection(),isWebKit&&(cleanupStylesWhenDeleting(),inputMethodFocus(),selectControlElements(),setDefaultBlockType(),blockFormSubmitInsideEditor(),disableBackspaceIntoATable(),removeAppleInterchangeBrs(),touchClickEvent(),Env.iOS?(restoreFocusOnKeyDown(),bodyHeight(),tapLinksAndImages()):selectAll()),isIE&&Env.ie<11&&(removeHrOnBackspace(),ensureBodyHasRoleApplication(),addNewLinesBeforeBrInPre(),removePreSerializedStylesWhenSelectingControls(),deleteControlItemOnBackSpace(),renderEmptyBlocksFix(),keepNoScriptContents(),fixCaretSelectionOfDocumentElementOnIe()),Env.ie>=11&&(bodyHeight(),doubleTrailingBrElements(),disableBackspaceIntoATable()),Env.ie&&(selectAll(),disableAutoUrlDetect()),isGecko&&(removeHrOnBackspace(),focusBody(),removeStylesWhenDeletingAcrossBlockElements(),setGeckoEditingOptions(),addBrAfterLastLinks(),removeGhostSelection(),showBrokenImageIcon(),blockCmdArrowNavigation(),disableBackspaceIntoATable())}}),define("tinymce/util/Observable",["tinymce/util/EventDispatcher"],function(EventDispatcher){function getEventDispatcher(obj){return obj._eventDispatcher||(obj._eventDispatcher=new EventDispatcher({scope:obj,toggleEvent:function(name,state){EventDispatcher.isNative(name)&&obj.toggleNativeEvent&&obj.toggleNativeEvent(name,state)}})),obj._eventDispatcher}return{fire:function(name,args,bubble){var self=this;if(self.removed&&"remove"!==name)return args;if(args=getEventDispatcher(self).fire(name,args,bubble),bubble!==!1&&self.parent)for(var parent=self.parent();parent&&!args.isPropagationStopped();)parent.fire(name,args,!1),parent=parent.parent();return args},on:function(name,callback,prepend){return getEventDispatcher(this).on(name,callback,prepend)},off:function(name,callback){return getEventDispatcher(this).off(name,callback)},once:function(name,callback){return getEventDispatcher(this).once(name,callback)},hasEventListeners:function(name){return getEventDispatcher(this).has(name)}}}),define("tinymce/EditorObservable",["tinymce/util/Observable","tinymce/dom/DOMUtils","tinymce/util/Tools"],function(Observable,DOMUtils,Tools){function getEventTarget(editor,eventName){return"selectionchange"==eventName?editor.getDoc():!editor.inline&&/^mouse|click|contextmenu|drop|dragover|dragend/.test(eventName)?editor.getDoc().documentElement:editor.settings.event_root?(editor.eventRoot||(editor.eventRoot=DOM.select(editor.settings.event_root)[0]),editor.eventRoot):editor.getBody()}function bindEventDelegate(editor,eventName){var delegate,eventRootElm=getEventTarget(editor,eventName);if(editor.delegates||(editor.delegates={}),!editor.delegates[eventName])if(editor.settings.event_root){if(customEventRootDelegates||(customEventRootDelegates={},editor.editorManager.on("removeEditor",function(){var name;if(!editor.editorManager.activeEditor&&customEventRootDelegates){for(name in customEventRootDelegates)editor.dom.unbind(getEventTarget(editor,name));customEventRootDelegates=null}})),customEventRootDelegates[eventName])return;delegate=function(e){for(var target=e.target,editors=editor.editorManager.editors,i=editors.length;i--;){var body=editors[i].getBody();(body===target||DOM.isChildOf(target,body))&&(editors[i].hidden||editors[i].fire(eventName,e))}},customEventRootDelegates[eventName]=delegate,DOM.bind(eventRootElm,eventName,delegate)}else delegate=function(e){editor.hidden||editor.fire(eventName,e)},DOM.bind(eventRootElm,eventName,delegate),editor.delegates[eventName]=delegate}var customEventRootDelegates,DOM=DOMUtils.DOM,EditorObservable={bindPendingEventDelegates:function(){var self=this;Tools.each(self._pendingNativeEvents,function(name){bindEventDelegate(self,name)})},toggleNativeEvent:function(name,state){var self=this;self.settings.readonly||"focus"!=name&&"blur"!=name&&(state?self.initialized?bindEventDelegate(self,name):self._pendingNativeEvents?self._pendingNativeEvents.push(name):self._pendingNativeEvents=[name]:self.initialized&&(self.dom.unbind(getEventTarget(self,name),name,self.delegates[name]),delete self.delegates[name]))},unbindAllNativeEvents:function(){var name,self=this;if(self.delegates){for(name in self.delegates)self.dom.unbind(getEventTarget(self,name),name,self.delegates[name]);delete self.delegates}self.inline||(self.getBody().onload=null,self.dom.unbind(self.getWin()),self.dom.unbind(self.getDoc())),self.dom.unbind(self.getBody()),self.dom.unbind(self.getContainer())}};return EditorObservable=Tools.extend({},Observable,EditorObservable)}),define("tinymce/Shortcuts",["tinymce/util/Tools","tinymce/Env"],function(Tools,Env){var each=Tools.each,explode=Tools.explode,keyCodeLookup={f9:120,f10:121,f11:122};return function(editor){var self=this,shortcuts={};editor.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&!e.isDefaultPrevented()&&each(shortcuts,function(shortcut){var ctrlKey=Env.mac?e.metaKey:e.ctrlKey;if(shortcut.ctrl==ctrlKey&&shortcut.alt==e.altKey&&shortcut.shift==e.shiftKey)return e.keyCode==shortcut.keyCode||e.charCode&&e.charCode==shortcut.charCode?(e.preventDefault(),"keydown"==e.type&&shortcut.func.call(shortcut.scope),!0):void 0})}),self.add=function(pattern,desc,cmdFunc,scope){var cmd;return cmd=cmdFunc,"string"==typeof cmdFunc?cmdFunc=function(){editor.execCommand(cmd,!1,null)}:Tools.isArray(cmd)&&(cmdFunc=function(){editor.execCommand(cmd[0],cmd[1],cmd[2])}),each(explode(pattern.toLowerCase()),function(pattern){var shortcut={func:cmdFunc,scope:scope||editor,desc:editor.translate(desc),alt:!1,ctrl:!1,shift:!1};each(explode(pattern,"+"),function(value){switch(value){case"alt":case"ctrl":case"shift":shortcut[value]=!0;break;default:/^[0-9]{2,}$/.test(value)?shortcut.keyCode=parseInt(value,10):(shortcut.charCode=value.charCodeAt(0),shortcut.keyCode=keyCodeLookup[value]||value.toUpperCase().charCodeAt(0))}}),shortcuts[(shortcut.ctrl?"ctrl":"")+","+(shortcut.alt?"alt":"")+","+(shortcut.shift?"shift":"")+","+shortcut.keyCode]=shortcut}),!0}}}),define("tinymce/Editor",["tinymce/dom/DOMUtils","tinymce/dom/DomQuery","tinymce/AddOnManager","tinymce/NodeChange","tinymce/html/Node","tinymce/dom/Serializer","tinymce/html/Serializer","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/dom/ScriptLoader","tinymce/dom/EventUtils","tinymce/WindowManager","tinymce/html/Schema","tinymce/html/DomParser","tinymce/util/Quirks","tinymce/Env","tinymce/util/Tools","tinymce/EditorObservable","tinymce/Shortcuts"],function(DOMUtils,DomQuery,AddOnManager,NodeChange,Node,DomSerializer,Serializer,Selection,Formatter,UndoManager,EnterKey,ForceBlocks,EditorCommands,URI,ScriptLoader,EventUtils,WindowManager,Schema,DomParser,Quirks,Env,Tools,EditorObservable,Shortcuts){function Editor(id,settings,editorManager){var documentBaseUrl,baseUri,self=this;documentBaseUrl=self.documentBaseUrl=editorManager.documentBaseURL,baseUri=editorManager.baseURI,self.settings=settings=extend({id:id,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:documentBaseUrl,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:self.convertURL,url_converter_scope:self,ie7_compat:!0},settings),AddOnManager.language=settings.language||"en",AddOnManager.languageLoad=settings.language_load,AddOnManager.baseURL=editorManager.baseURL,self.id=settings.id=id,self.isNotDirty=!0,self.plugins={},self.documentBaseURI=new URI(settings.document_base_url||documentBaseUrl,{base_uri:baseUri}),self.baseURI=baseUri,self.contentCSS=[],self.contentStyles=[],self.shortcuts=new Shortcuts(self),self.execCommands={},self.queryStateCommands={},self.queryValueCommands={},self.loadedCSS={},settings.target&&(self.targetElm=settings.target),self.suffix=editorManager.suffix,self.editorManager=editorManager,self.inline=settings.inline,editorManager.fire("SetupEditor",self),self.execCallback("setup",self),self.$=DomQuery.overrideDefaults(function(){return{context:self.inline?self.getBody():self.getDoc(),element:self.getBody()}})}var DOM=DOMUtils.DOM,ThemeManager=AddOnManager.ThemeManager,PluginManager=AddOnManager.PluginManager,extend=Tools.extend,each=Tools.each,explode=Tools.explode,inArray=Tools.inArray,trim=Tools.trim,resolve=Tools.resolve,Event=EventUtils.Event,isGecko=Env.gecko,ie=Env.ie;return Editor.prototype={render:function(){function readyHandler(){DOM.unbind(window,"ready",readyHandler),self.render()}function loadScripts(){var scriptLoader=ScriptLoader.ScriptLoader;if(settings.language&&"en"!=settings.language&&!settings.language_url&&(settings.language_url=self.editorManager.baseURL+"/langs/"+settings.language+".js"),settings.language_url&&scriptLoader.add(settings.language_url),settings.theme&&"function"!=typeof settings.theme&&"-"!=settings.theme.charAt(0)&&!ThemeManager.urls[settings.theme]){var themeUrl=settings.theme_url;themeUrl=themeUrl?self.documentBaseURI.toAbsolute(themeUrl):"themes/"+settings.theme+"/theme"+suffix+".js",ThemeManager.load(settings.theme,themeUrl)}Tools.isArray(settings.plugins)&&(settings.plugins=settings.plugins.join(" ")),each(settings.external_plugins,function(url,name){PluginManager.load(name,url),settings.plugins+=" "+name}),each(settings.plugins.split(/[ ,]/),function(plugin){if(plugin=trim(plugin),plugin&&!PluginManager.urls[plugin])if("-"==plugin.charAt(0)){plugin=plugin.substr(1,plugin.length);var dependencies=PluginManager.dependencies(plugin);each(dependencies,function(dep){var defaultSettings={prefix:"plugins/",resource:dep,suffix:"/plugin"+suffix+".js"};dep=PluginManager.createUrl(defaultSettings,dep),PluginManager.load(dep.resource,dep)})}else PluginManager.load(plugin,{prefix:"plugins/",resource:plugin,suffix:"/plugin"+suffix+".js"})}),scriptLoader.loadQueue(function(){self.removed||self.init()})}var self=this,settings=self.settings,id=self.id,suffix=self.suffix;if(!Event.domLoaded)return void DOM.bind(window,"ready",readyHandler);if(self.getElement()&&Env.contentEditable){settings.inline?self.inline=!0:(self.orgVisibility=self.getElement().style.visibility,self.getElement().style.visibility="hidden");var form=self.getElement().form||DOM.getParent(id,"form");form&&(self.formElement=form,settings.hidden_input&&!/TEXTAREA|INPUT/i.test(self.getElement().nodeName)&&(DOM.insertAfter(DOM.create("input",{type:"hidden",name:id}),id),self.hasHiddenInput=!0),self.formEventDelegate=function(e){self.fire(e.type,e)},DOM.bind(form,"submit reset",self.formEventDelegate),self.on("reset",function(){self.setContent(self.startContent,{format:"raw"})}),!settings.submit_patch||form.submit.nodeType||form.submit.length||form._mceOldSubmit||(form._mceOldSubmit=form.submit,form.submit=function(){return self.editorManager.triggerSave(),self.isNotDirty=!0,form._mceOldSubmit(form)})),self.windowManager=new WindowManager(self),"xml"==settings.encoding&&self.on("GetContent",function(e){e.save&&(e.content=DOM.encode(e.content))}),settings.add_form_submit_trigger&&self.on("submit",function(){self.initialized&&self.save()}),settings.add_unload_trigger&&(self._beforeUnload=function(){!self.initialized||self.destroyed||self.isHidden()||self.save({format:"raw",no_events:!0,set_dirty:!1})},self.editorManager.on("BeforeUnload",self._beforeUnload)),loadScripts()}},init:function(){function initPlugin(plugin){var pluginUrl,pluginInstance,Plugin=PluginManager.get(plugin);pluginUrl=PluginManager.urls[plugin]||self.documentBaseUrl.replace(/\/$/,""),plugin=trim(plugin),Plugin&&-1===inArray(initializedPlugins,plugin)&&(each(PluginManager.dependencies(plugin),function(dep){initPlugin(dep)}),pluginInstance=new Plugin(self,pluginUrl,self.$),self.plugins[plugin]=pluginInstance,pluginInstance.init&&(pluginInstance.init(self,pluginUrl),initializedPlugins.push(plugin)))}var w,h,minHeight,n,o,Theme,url,bodyId,bodyClass,re,i,self=this,settings=self.settings,elm=self.getElement(),initializedPlugins=[];if(self.rtl=this.editorManager.i18n.rtl,self.editorManager.add(self),settings.aria_label=settings.aria_label||DOM.getAttrib(elm,"aria-label",self.getLang("aria.rich_text_area")),settings.theme&&("function"!=typeof settings.theme?(settings.theme=settings.theme.replace(/-/,""),Theme=ThemeManager.get(settings.theme),self.theme=new Theme(self,ThemeManager.urls[settings.theme]),self.theme.init&&self.theme.init(self,ThemeManager.urls[settings.theme]||self.documentBaseUrl.replace(/\/$/,""),self.$)):self.theme=settings.theme),each(settings.plugins.replace(/\-/g,"").split(/[ ,]/),initPlugin),settings.render_ui&&self.theme&&(self.orgDisplay=elm.style.display,"function"!=typeof settings.theme?(w=settings.width||elm.style.width||elm.offsetWidth,h=settings.height||elm.style.height||elm.offsetHeight,minHeight=settings.min_height||100,re=/^[0-9\.]+(|px)$/i,re.test(""+w)&&(w=Math.max(parseInt(w,10),100)),re.test(""+h)&&(h=Math.max(parseInt(h,10),minHeight)),o=self.theme.renderUI({targetNode:elm,width:w,height:h,deltaWidth:settings.delta_width,deltaHeight:settings.delta_height}),settings.content_editable||(h=(o.iframeHeight||h)+("number"==typeof h?o.deltaHeight||0:""),minHeight>h&&(h=minHeight))):(o=settings.theme(self,elm),o.editorContainer.nodeType&&(o.editorContainer=o.editorContainer.id=o.editorContainer.id||self.id+"_parent"),o.iframeContainer.nodeType&&(o.iframeContainer=o.iframeContainer.id=o.iframeContainer.id||self.id+"_iframecontainer"),h=o.iframeHeight||elm.offsetHeight),self.editorContainer=o.editorContainer),settings.content_css&&each(explode(settings.content_css),function(u){self.contentCSS.push(self.documentBaseURI.toAbsolute(u))}),settings.content_style&&self.contentStyles.push(settings.content_style),settings.content_editable)return elm=n=o=null,self.initContentBody();for(self.iframeHTML=settings.doctype+"",settings.document_base_url!=self.documentBaseUrl&&(self.iframeHTML+=''),!Env.caretAfter&&settings.ie7_compat&&(self.iframeHTML+=''),self.iframeHTML+='',i=0;i',self.loadedCSS[cssUrl]=!0}bodyId=settings.body_id||"tinymce",-1!=bodyId.indexOf("=")&&(bodyId=self.getParam("body_id","","hash"),bodyId=bodyId[self.id]||bodyId),bodyClass=settings.body_class||"",-1!=bodyClass.indexOf("=")&&(bodyClass=self.getParam("body_class","","hash"),bodyClass=bodyClass[self.id]||""),settings.content_security_policy&&(self.iframeHTML+=''),self.iframeHTML+='
    ';var domainRelaxUrl='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+self.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&(url=domainRelaxUrl);var ifr=DOM.create("iframe",{id:self.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:self.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:h,display:"block"}});if(ifr.onload=function(){ifr.onload=null,self.fire("load")},DOM.setAttrib(ifr,"src",url||'javascript:""'),self.contentAreaContainer=o.iframeContainer,self.iframeElement=ifr,n=DOM.add(o.iframeContainer,ifr),ie)try{self.getDoc()}catch(e){n.src=url=domainRelaxUrl}o.editorContainer&&(DOM.get(o.editorContainer).style.display=self.orgDisplay,self.hidden=DOM.isHidden(o.editorContainer)),self.getElement().style.display="none",DOM.setAttrib(self.id,"aria-hidden",!0),url||self.initContentBody(),elm=n=o=null},initContentBody:function(skipWrite){var body,contentCssText,self=this,settings=self.settings,targetElm=self.getElement(),doc=self.getDoc();settings.inline||(self.getElement().style.visibility=self.orgVisibility),skipWrite||settings.content_editable||(doc.open(),doc.write(self.iframeHTML),doc.close()),settings.content_editable&&(self.on("remove",function(){var bodyEl=this.getBody();DOM.removeClass(bodyEl,"mce-content-body"),DOM.removeClass(bodyEl,"mce-edit-focus"),DOM.setAttrib(bodyEl,"contentEditable",null)}),DOM.addClass(targetElm,"mce-content-body"),self.contentDocument=doc=settings.content_document||document,self.contentWindow=settings.content_window||window,self.bodyElement=targetElm,settings.content_document=settings.content_window=null,settings.root_name=targetElm.nodeName.toLowerCase()),body=self.getBody(),body.disabled=!0,settings.readonly||(self.inline&&"static"==DOM.getStyle(body,"position",!0)&&(body.style.position="relative"),body.contentEditable=self.getParam("content_editable_state",!0)),body.disabled=!1,self.schema=new Schema(settings),self.dom=new DOMUtils(doc,{keep_values:!0,url_converter:self.convertURL,url_converter_scope:self,hex_colors:settings.force_hex_style_colors,class_filter:settings.class_filter,update_styles:!0,root_element:self.inline?self.getBody():null,collect:settings.content_editable,schema:self.schema,onSetAttrib:function(e){self.fire("SetAttrib",e)}}),self.parser=new DomParser(settings,self.schema),self.parser.addAttributeFilter("src,href,style,tabindex",function(nodes,name){for(var node,value,internalName,i=nodes.length,dom=self.dom;i--;)node=nodes[i],value=node.attr(name),internalName="data-mce-"+name,node.attributes.map[internalName]||("style"===name?(value=dom.serializeStyle(dom.parseStyle(value),node.name),value.length||(value=null),node.attr(internalName,value),node.attr(name,value)):"tabindex"===name?(node.attr(internalName,value),node.attr(name,null)):node.attr(internalName,self.convertURL(value,name,node.name)))}),self.parser.addNodeFilter("script",function(nodes){ -for(var node,i=nodes.length;i--;)node=nodes[i],node.attr("type","mce-"+(node.attr("type")||"no/type"))}),self.parser.addNodeFilter("#cdata",function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i],node.type=8,node.name="#comment",node.value="[CDATA["+node.value+"]]"}),self.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(nodes){for(var node,i=nodes.length,nonEmptyElements=self.schema.getNonEmptyElements();i--;)node=nodes[i],node.isEmpty(nonEmptyElements)&&(node.append(new Node("br",1)).shortEnded=!0)}),self.serializer=new DomSerializer(settings,self),self.selection=new Selection(self.dom,self.getWin(),self.serializer,self),self.formatter=new Formatter(self),self.undoManager=new UndoManager(self),self.forceBlocks=new ForceBlocks(self),self.enterKey=new EnterKey(self),self.editorCommands=new EditorCommands(self),self._nodeChangeDispatcher=new NodeChange(self),self.fire("PreInit"),settings.browser_spellcheck||settings.gecko_spellcheck||(doc.body.spellcheck=!1,DOM.setAttrib(body,"spellcheck","false")),self.fire("PostRender"),self.quirks=new Quirks(self),settings.directionality&&(body.dir=settings.directionality),settings.nowrap&&(body.style.whiteSpace="nowrap"),settings.protect&&self.on("BeforeSetContent",function(e){each(settings.protect,function(pattern){e.content=e.content.replace(pattern,function(str){return""})})}),self.on("SetContent",function(){self.addVisual(self.getBody())}),settings.padd_empty_editor&&self.on("PostProcess",function(e){e.content=e.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
    [\r\n]*)$/,"")}),self.load({initial:!0,format:"html"}),self.startContent=self.getContent({format:"raw"}),self.initialized=!0,self.bindPendingEventDelegates(),self.fire("init"),self.focus(!0),self.nodeChanged({initial:!0}),self.execCallback("init_instance_callback",self),self.contentStyles.length>0&&(contentCssText="",each(self.contentStyles,function(style){contentCssText+=style+"\r\n"}),self.dom.addStyle(contentCssText)),each(self.contentCSS,function(cssUrl){self.loadedCSS[cssUrl]||(self.dom.loadCSS(cssUrl),self.loadedCSS[cssUrl]=!0)}),settings.auto_focus&&setTimeout(function(){var editor;editor=settings.auto_focus===!0?self:self.editorManager.get(settings.auto_focus),editor.focus()},100),targetElm=doc=body=null},focus:function(skipFocus){var rng,controlElm,body,self=this,selection=self.selection,contentEditable=self.settings.content_editable,doc=self.getDoc();if(!skipFocus){if(rng=selection.getRng(),rng.item&&(controlElm=rng.item(0)),self._refreshContentEditable(),contentEditable||(Env.opera||self.getBody().focus(),self.getWin().focus()),isGecko||contentEditable){if(body=self.getBody(),body.setActive)try{body.setActive()}catch(ex){body.focus()}else body.focus();contentEditable&&selection.normalize()}controlElm&&controlElm.ownerDocument==doc&&(rng=doc.body.createControlRange(),rng.addElement(controlElm),rng.select())}self.editorManager.setActive(self)},execCallback:function(name){var scope,self=this,callback=self.settings[name];if(callback)return self.callbackLookup&&(scope=self.callbackLookup[name])&&(callback=scope.func,scope=scope.scope),"string"==typeof callback&&(scope=callback.replace(/\.\w+$/,""),scope=scope?resolve(scope):0,callback=resolve(callback),self.callbackLookup=self.callbackLookup||{},self.callbackLookup[name]={func:callback,scope:scope}),callback.apply(scope||self,Array.prototype.slice.call(arguments,1))},translate:function(text){var lang=this.settings.language||"en",i18n=this.editorManager.i18n;return text?i18n.data[lang+"."+text]||text.replace(/\{\#([^\}]+)\}/g,function(a,b){return i18n.data[lang+"."+b]||"{#"+b+"}"}):""},getLang:function(name,defaultVal){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+name]||(defaultVal!==undefined?defaultVal:"{#"+name+"}")},getParam:function(name,defaultVal,type){var output,value=name in this.settings?this.settings[name]:defaultVal;return"hash"===type?(output={},"string"==typeof value?each(value.indexOf("=")>0?value.split(/[;,](?![^=;,]*(?:[;,]|$))/):value.split(","),function(value){value=value.split("="),value.length>1?output[trim(value[0])]=trim(value[1]):output[trim(value[0])]=trim(value)}):output=value,output):value},nodeChanged:function(args){this._nodeChangeDispatcher.nodeChanged(args)},addButton:function(name,settings){var self=this;settings.cmd&&(settings.onclick=function(){self.execCommand(settings.cmd)}),settings.text||settings.icon||(settings.icon=name),self.buttons=self.buttons||{},settings.tooltip=settings.tooltip||settings.title,self.buttons[name]=settings},addMenuItem:function(name,settings){var self=this;settings.cmd&&(settings.onclick=function(){self.execCommand(settings.cmd)}),self.menuItems=self.menuItems||{},self.menuItems[name]=settings},addCommand:function(name,callback,scope){this.execCommands[name]={func:callback,scope:scope||this}},addQueryStateHandler:function(name,callback,scope){this.queryStateCommands[name]={func:callback,scope:scope||this}},addQueryValueHandler:function(name,callback,scope){this.queryValueCommands[name]={func:callback,scope:scope||this}},addShortcut:function(pattern,desc,cmdFunc,scope){this.shortcuts.add(pattern,desc,cmdFunc,scope)},execCommand:function(cmd,ui,value,args){var cmdItem,self=this,state=0;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(cmd)||args&&args.skip_focus||self.focus(),args=extend({},args),args=self.fire("BeforeExecCommand",{command:cmd,ui:ui,value:value}),args.isDefaultPrevented())return!1;if((cmdItem=self.execCommands[cmd])&&cmdItem.func.call(cmdItem.scope,ui,value)!==!0)return self.fire("ExecCommand",{command:cmd,ui:ui,value:value}),!0;if(each(self.plugins,function(p){return p.execCommand&&p.execCommand(cmd,ui,value)?(self.fire("ExecCommand",{command:cmd,ui:ui,value:value}),state=!0,!1):void 0}),state)return state;if(self.theme&&self.theme.execCommand&&self.theme.execCommand(cmd,ui,value))return self.fire("ExecCommand",{command:cmd,ui:ui,value:value}),!0;if(self.editorCommands.execCommand(cmd,ui,value))return self.fire("ExecCommand",{command:cmd,ui:ui,value:value}),!0;try{state=self.getDoc().execCommand(cmd,ui,value)}catch(ex){}return state?(self.fire("ExecCommand",{command:cmd,ui:ui,value:value}),!0):!1},queryCommandState:function(cmd){var queryItem,returnVal,self=this;if(!self._isHidden()){if((queryItem=self.queryStateCommands[cmd])&&(returnVal=queryItem.func.call(queryItem.scope),returnVal===!0||returnVal===!1))return returnVal;if(returnVal=self.editorCommands.queryCommandState(cmd),-1!==returnVal)return returnVal;try{return self.getDoc().queryCommandState(cmd)}catch(ex){}}},queryCommandValue:function(cmd){var queryItem,returnVal,self=this;if(!self._isHidden()){if((queryItem=self.queryValueCommands[cmd])&&(returnVal=queryItem.func.call(queryItem.scope),returnVal!==!0))return returnVal;if(returnVal=self.editorCommands.queryCommandValue(cmd),returnVal!==undefined)return returnVal;try{return self.getDoc().queryCommandValue(cmd)}catch(ex){}}},show:function(){var self=this;self.hidden&&(self.hidden=!1,self.inline?self.getBody().contentEditable=!0:(DOM.show(self.getContainer()),DOM.hide(self.id)),self.load(),self.fire("show"))},hide:function(){var self=this,doc=self.getDoc();self.hidden||(ie&&doc&&!self.inline&&doc.execCommand("SelectAll"),self.save(),self.inline?(self.getBody().contentEditable=!1,self==self.editorManager.focusedEditor&&(self.editorManager.focusedEditor=null)):(DOM.hide(self.getContainer()),DOM.setStyle(self.id,"display",self.orgDisplay)),self.hidden=!0,self.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(state,time){this.fire("ProgressState",{state:state,time:time})},load:function(args){var html,self=this,elm=self.getElement();return elm?(args=args||{},args.load=!0,html=self.setContent(elm.value!==undefined?elm.value:elm.innerHTML,args),args.element=elm,args.no_events||self.fire("LoadContent",args),args.element=elm=null,html):void 0},save:function(args){var html,form,self=this,elm=self.getElement();if(elm&&self.initialized)return args=args||{},args.save=!0,args.element=elm,html=args.content=self.getContent(args),args.no_events||self.fire("SaveContent",args),html=args.content,/TEXTAREA|INPUT/i.test(elm.nodeName)?elm.value=html:(self.inline||(elm.innerHTML=html),(form=DOM.getParent(self.id,"form"))&&each(form.elements,function(elm){return elm.name==self.id?(elm.value=html,!1):void 0})),args.element=elm=null,args.set_dirty!==!1&&(self.isNotDirty=!0),html},setContent:function(content,args){var forcedRootBlockName,self=this,body=self.getBody();return args=args||{},args.format=args.format||"html",args.set=!0,args.content=content,args.no_events||self.fire("BeforeSetContent",args),content=args.content,0===content.length||/^\s+$/.test(content)?(forcedRootBlockName=self.settings.forced_root_block,forcedRootBlockName&&self.schema.isValidChild(body.nodeName.toLowerCase(),forcedRootBlockName.toLowerCase())?(content=ie&&11>ie?"":'
    ',content=self.dom.createHTML(forcedRootBlockName,self.settings.forced_root_block_attrs,content)):ie||(content='
    '),self.dom.setHTML(body,content),self.fire("SetContent",args)):("raw"!==args.format&&(content=new Serializer({},self.schema).serialize(self.parser.parse(content,{isRootContent:!0}))),args.content=trim(content),self.dom.setHTML(body,args.content),args.no_events||self.fire("SetContent",args)),args.content},getContent:function(args){var content,self=this,body=self.getBody();return args=args||{},args.format=args.format||"html",args.get=!0,args.getInner=!0,args.no_events||self.fire("BeforeGetContent",args),content="raw"==args.format?body.innerHTML:"text"==args.format?body.innerText||body.textContent:self.serializer.serialize(body,args),"text"!=args.format?args.content=trim(content):args.content=content,args.no_events||self.fire("GetContent",args),args.content},insertContent:function(content,args){args&&(content=extend({content:content},args)),this.execCommand("mceInsertContent",!1,content)},isDirty:function(){return!this.isNotDirty},getContainer:function(){var self=this;return self.container||(self.container=DOM.get(self.editorContainer||self.id+"_parent")),self.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=DOM.get(this.id)),this.targetElm},getWin:function(){var elm,self=this;return self.contentWindow||(elm=self.iframeElement,elm&&(self.contentWindow=elm.contentWindow)),self.contentWindow},getDoc:function(){var win,self=this;return self.contentDocument||(win=self.getWin(),win&&(self.contentDocument=win.document)),self.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(url,name,elm){var self=this,settings=self.settings;return settings.urlconverter_callback?self.execCallback("urlconverter_callback",url,elm,!0,name):!settings.convert_urls||elm&&"LINK"==elm.nodeName||0===url.indexOf("file:")||0===url.length?url:settings.relative_urls?self.documentBaseURI.toRelative(url):url=self.documentBaseURI.toAbsolute(url,settings.remove_script_host)},addVisual:function(elm){var cls,self=this,settings=self.settings,dom=self.dom;elm=elm||self.getBody(),self.hasVisual===undefined&&(self.hasVisual=settings.visual),each(dom.select("table,a",elm),function(elm){var value;switch(elm.nodeName){case"TABLE":return cls=settings.visual_table_class||"mce-item-table",value=dom.getAttrib(elm,"border"),void(value&&"0"!=value||!self.hasVisual?dom.removeClass(elm,cls):dom.addClass(elm,cls));case"A":return void(dom.getAttrib(elm,"href",!1)||(value=dom.getAttrib(elm,"name")||elm.id,cls=settings.visual_anchor_class||"mce-item-anchor",value&&self.hasVisual?dom.addClass(elm,cls):dom.removeClass(elm,cls)))}}),self.fire("VisualAid",{element:elm,hasVisual:self.hasVisual})},remove:function(){var self=this;self.removed||(self.save(),self.removed=1,self.unbindAllNativeEvents(),self.hasHiddenInput&&DOM.remove(self.getElement().nextSibling),self.inline||(ie&&10>ie&&self.getDoc().execCommand("SelectAll",!1,null),DOM.setStyle(self.id,"display",self.orgDisplay),self.getBody().onload=null),self.fire("remove"),self.editorManager.remove(self),DOM.remove(self.getContainer()),self.destroy())},destroy:function(automatic){var form,self=this;if(!self.destroyed){if(!automatic&&!self.removed)return void self.remove();automatic||(self.editorManager.off("beforeunload",self._beforeUnload),self.theme&&self.theme.destroy&&self.theme.destroy(),self.selection.destroy(),self.dom.destroy()),form=self.formElement,form&&(form._mceOldSubmit&&(form.submit=form._mceOldSubmit,form._mceOldSubmit=null),DOM.unbind(form,"submit reset",self.formEventDelegate)),self.contentAreaContainer=self.formElement=self.container=self.editorContainer=null,self.bodyElement=self.contentDocument=self.contentWindow=null,self.iframeElement=self.targetElm=null,self.selection&&(self.selection=self.selection.win=self.selection.dom=self.selection.dom.doc=null),self.destroyed=1}},_refreshContentEditable:function(){var body,parent,self=this;self._isHidden()&&(body=self.getBody(),parent=body.parentNode,parent.removeChild(body),parent.appendChild(body),body.focus())},_isHidden:function(){var sel;return isGecko?(sel=this.selection.getSel(),!sel||!sel.rangeCount||0===sel.rangeCount):0}},extend(Editor.prototype,EditorObservable),Editor}),define("tinymce/util/I18n",[],function(){var data={};return{rtl:!1,add:function(code,items){for(var name in items)data[name]=items[name];this.rtl=this.rtl||"rtl"===data._dir},translate:function(text){if("undefined"==typeof text)return text;if("string"!=typeof text&&text.raw)return text.raw;if(text.push){var values=text.slice(1);text=(data[text[0]]||text[0]).replace(/\{([^\}]+)\}/g,function(match1,match2){return values[match2]})}return data[text]||text},data:data}}),define("tinymce/FocusManager",["tinymce/dom/DOMUtils","tinymce/Env"],function(DOMUtils,Env){function FocusManager(editorManager){function getActiveElement(){try{return document.activeElement}catch(ex){return document.body}}function createBookmark(dom,rng){if(rng&&rng.startContainer){if(!dom.isChildOf(rng.startContainer,dom.getRoot())||!dom.isChildOf(rng.endContainer,dom.getRoot()))return;return{startContainer:rng.startContainer,startOffset:rng.startOffset,endContainer:rng.endContainer,endOffset:rng.endOffset}}return rng}function bookmarkToRng(editor,bookmark){var rng;return bookmark.startContainer?(rng=editor.getDoc().createRange(),rng.setStart(bookmark.startContainer,bookmark.startOffset),rng.setEnd(bookmark.endContainer,bookmark.endOffset)):rng=bookmark,rng}function isUIElement(elm){return!!DOM.getParent(elm,FocusManager.isEditorUIElement)}function registerEvents(e){var editor=e.editor;editor.on("init",function(){(editor.inline||Env.ie)&&("onbeforedeactivate"in document&&Env.ie<9?editor.dom.bind(editor.getBody(),"beforedeactivate",function(e){if(e.target==editor.getBody())try{editor.lastRng=editor.selection.getRng()}catch(ex){}}):editor.on("nodechange mouseup keyup",function(e){var node=getActiveElement();"nodechange"==e.type&&e.selectionChange||(node&&node.id==editor.id+"_ifr"&&(node=editor.getBody()),editor.dom.isChildOf(node,editor.getBody())&&(editor.lastRng=editor.selection.getRng()))}),Env.webkit&&!selectionChangeHandler&&(selectionChangeHandler=function(){var activeEditor=editorManager.activeEditor;if(activeEditor&&activeEditor.selection){var rng=activeEditor.selection.getRng();rng&&!rng.collapsed&&(editor.lastRng=rng)}},DOM.bind(document,"selectionchange",selectionChangeHandler)))}),editor.on("setcontent",function(){editor.lastRng=null}),editor.on("mousedown",function(){editor.selection.lastFocusBookmark=null}),editor.on("focusin",function(){var focusedEditor=editorManager.focusedEditor;editor.selection.lastFocusBookmark&&(editor.selection.setRng(bookmarkToRng(editor,editor.selection.lastFocusBookmark)),editor.selection.lastFocusBookmark=null),focusedEditor!=editor&&(focusedEditor&&focusedEditor.fire("blur",{focusedEditor:editor}),editorManager.setActive(editor),editorManager.focusedEditor=editor,editor.fire("focus",{blurredEditor:focusedEditor}),editor.focus(!0)),editor.lastRng=null}),editor.on("focusout",function(){window.setTimeout(function(){var focusedEditor=editorManager.focusedEditor;isUIElement(getActiveElement())||focusedEditor!=editor||(editor.fire("blur",{focusedEditor:null}),editorManager.focusedEditor=null,editor.selection&&(editor.selection.lastFocusBookmark=null))},0)}),documentFocusInHandler||(documentFocusInHandler=function(e){var activeEditor=editorManager.activeEditor;activeEditor&&e.target.ownerDocument==document&&(activeEditor.selection&&e.target!=activeEditor.getBody()&&(activeEditor.selection.lastFocusBookmark=createBookmark(activeEditor.dom,activeEditor.lastRng)),e.target==document.body||isUIElement(e.target)||editorManager.focusedEditor!=activeEditor||(activeEditor.fire("blur",{focusedEditor:null}),editorManager.focusedEditor=null))},DOM.bind(document,"focusin",documentFocusInHandler)),editor.inline&&!documentMouseUpHandler&&(documentMouseUpHandler=function(e){var activeEditor=editorManager.activeEditor;if(activeEditor.inline&&!activeEditor.dom.isChildOf(e.target,activeEditor.getBody())){var rng=activeEditor.selection.getRng();rng.collapsed||(activeEditor.lastRng=rng)}},DOM.bind(document,"mouseup",documentMouseUpHandler))}function unregisterDocumentEvents(e){editorManager.focusedEditor==e.editor&&(editorManager.focusedEditor=null),editorManager.activeEditor||(DOM.unbind(document,"selectionchange",selectionChangeHandler),DOM.unbind(document,"focusin",documentFocusInHandler),DOM.unbind(document,"mouseup",documentMouseUpHandler),selectionChangeHandler=documentFocusInHandler=documentMouseUpHandler=null)}editorManager.on("AddEditor",registerEvents),editorManager.on("RemoveEditor",unregisterDocumentEvents)}var selectionChangeHandler,documentFocusInHandler,documentMouseUpHandler,DOM=DOMUtils.DOM;return FocusManager.isEditorUIElement=function(elm){return-1!==elm.className.toString().indexOf("mce-")},FocusManager}),define("tinymce/EditorManager",["tinymce/Editor","tinymce/dom/DomQuery","tinymce/dom/DOMUtils","tinymce/util/URI","tinymce/Env","tinymce/util/Tools","tinymce/util/Observable","tinymce/util/I18n","tinymce/FocusManager"],function(Editor,DomQuery,DOMUtils,URI,Env,Tools,Observable,I18n,FocusManager){function removeEditorFromList(editor){var removedFromList,editors=EditorManager.editors;delete editors[editor.id];for(var i=0;i0&&each(explode(l),function(id){var elm;(elm=DOM.get(id))?createEditor(id,settings,elm):each(document.forms,function(f){each(f.elements,function(e){e.name===id&&(id="mce_editor_"+instanceCounter++,DOM.setAttrib(e,"id",id),createEditor(id,settings,e))})})});break;case"textareas":case"specific_textareas":each(DOM.select("textarea"),function(elm){settings.editor_deselector&&hasClass(elm,settings.editor_deselector)||(!settings.editor_selector||hasClass(elm,settings.editor_selector))&&createEditor(createId(elm),settings,elm)})}settings.oninit&&(l=co=0,each(editors,function(ed){co++,ed.initialized?l++:ed.on("init",function(){l++,l==co&&execCallback("oninit")}),l==co&&execCallback("oninit")}))}var self=this,editors=[];self.settings=settings,DOM.bind(window,"ready",readyHandler)},get:function(id){return arguments.length?id in this.editors?this.editors[id]:null:this.editors},add:function(editor){var self=this,editors=self.editors;return editors[editor.id]=editor,editors.push(editor),self.activeEditor=editor,self.fire("AddEditor",{editor:editor}),beforeUnloadDelegate||(beforeUnloadDelegate=function(){self.fire("BeforeUnload")},DOM.bind(window,"beforeunload",beforeUnloadDelegate)),editor},createEditor:function(id,settings){return this.add(new Editor(id,settings,this))},remove:function(selector){var i,editor,self=this,editors=self.editors;{if(selector)return"string"==typeof selector?(selector=selector.selector||selector,void each(DOM.select(selector),function(elm){editor=editors[elm.id],editor&&self.remove(editor)})):(editor=selector,editors[editor.id]?(removeEditorFromList(editor)&&self.fire("RemoveEditor",{editor:editor}),editors.length||DOM.unbind(window,"beforeunload",beforeUnloadDelegate),editor.remove(),editor):null);for(i=editors.length-1;i>=0;i--)self.remove(editors[i])}},execCommand:function(cmd,ui,value){var self=this,editor=self.get(value);switch(cmd){case"mceAddEditor":return self.get(value)||new Editor(value,self.settings,self).render(),!0;case"mceRemoveEditor":return editor&&editor.remove(),!0;case"mceToggleEditor":return editor?(editor.isHidden()?editor.show():editor.hide(),!0):(self.execCommand("mceAddEditor",0,value),!0)}return self.activeEditor?self.activeEditor.execCommand(cmd,ui,value):!1},triggerSave:function(){each(this.editors,function(editor){editor.save()})},addI18n:function(code,items){I18n.add(code,items)},translate:function(text){return I18n.translate(text)},setActive:function(editor){var activeEditor=this.activeEditor;this.activeEditor!=editor&&(activeEditor&&activeEditor.fire("deactivate",{relatedTarget:editor}),editor.fire("activate",{relatedTarget:activeEditor})),this.activeEditor=editor}},extend(EditorManager,Observable),EditorManager.setup(),window.tinymce=window.tinyMCE=EditorManager,EditorManager}),define("tinymce/LegacyInput",["tinymce/EditorManager","tinymce/util/Tools"],function(EditorManager,Tools){var each=Tools.each,explode=Tools.explode;EditorManager.on("AddEditor",function(e){var editor=e.editor;editor.on("preInit",function(){function replaceWithSpan(node,styles){each(styles,function(value,name){value&&dom.setStyle(node,name,value)}),dom.rename(node,"span")}function convert(e){dom=editor.dom,settings.convert_fonts_to_spans&&each(dom.select("font,u,strike",e.node),function(node){filters[node.nodeName.toLowerCase()](dom,node)})}var filters,fontSizes,dom,settings=editor.settings;settings.inline_styles&&(fontSizes=explode(settings.font_size_legacy_values),filters={font:function(dom,node){replaceWithSpan(node,{backgroundColor:node.style.backgroundColor,color:node.color,fontFamily:node.face,fontSize:fontSizes[parseInt(node.size,10)-1]})},u:function(dom,node){replaceWithSpan(node,{textDecoration:"underline"})},strike:function(dom,node){replaceWithSpan(node,{textDecoration:"line-through"})}},editor.on("PreProcess SetContent",convert))})})}),define("tinymce/util/XHR",["tinymce/util/Observable","tinymce/util/Tools"],function(Observable,Tools){var XHR={send:function(settings){function ready(){!settings.async||4==xhr.readyState||count++>1e4?(settings.success&&1e4>count&&200==xhr.status?settings.success.call(settings.success_scope,""+xhr.responseText,xhr,settings):settings.error&&settings.error.call(settings.error_scope,count>1e4?"TIMED_OUT":"GENERAL",xhr,settings),xhr=null):setTimeout(ready,10)}var xhr,count=0;if(settings.scope=settings.scope||this,settings.success_scope=settings.success_scope||settings.scope,settings.error_scope=settings.error_scope||settings.scope,settings.async=settings.async===!1?!1:!0,settings.data=settings.data||"",xhr=new XMLHttpRequest){if(xhr.overrideMimeType&&xhr.overrideMimeType(settings.content_type),xhr.open(settings.type||(settings.data?"POST":"GET"),settings.url,settings.async),settings.crossDomain&&(xhr.withCredentials=!0),settings.content_type&&xhr.setRequestHeader("Content-Type",settings.content_type),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr=XHR.fire("beforeSend",{xhr:xhr,settings:settings}).xhr,xhr.send(settings.data),!settings.async)return ready();setTimeout(ready,10)}}};return Tools.extend(XHR,Observable),XHR}),define("tinymce/util/JSON",[],function(){function serialize(o,quote){var i,v,t,name;if(quote=quote||'"',null===o)return"null";if(t=typeof o,"string"==t)return v="\bb t\nn\ff\rr\"\"''\\\\",quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){return'"'===quote&&"'"===a?a:(i=v.indexOf(b),i+1?"\\"+v.charAt(i+1):(a=b.charCodeAt().toString(16),"\\u"+"0000".substring(a.length)+a))})+quote;if("object"==t){if(o.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(o)){for(i=0,v="[";i0?",":"")+serialize(o[i],quote);return v+"]"}v="{";for(name in o)o.hasOwnProperty(name)&&(v+="function"!=typeof o[name]?(v.length>1?","+quote:quote)+name+quote+":"+serialize(o[name],quote):"");return v+"}"}return""+o}return{serialize:serialize,parse:function(text){try{return window[String.fromCharCode(101)+"val"]("("+text+")")}catch(ex){}}}}),define("tinymce/util/JSONRequest",["tinymce/util/JSON","tinymce/util/XHR","tinymce/util/Tools"],function(JSON,XHR,Tools){function JSONRequest(settings){this.settings=extend({},settings),this.count=0}var extend=Tools.extend;return JSONRequest.sendRPC=function(o){return(new JSONRequest).send(o)},JSONRequest.prototype={send:function(args){var ecb=args.error,scb=args.success;args=extend(this.settings,args),args.success=function(c,x){c=JSON.parse(c),"undefined"==typeof c&&(c={error:"JSON Parse error."}),c.error?ecb.call(args.error_scope||args.scope,c.error,x):scb.call(args.success_scope||args.scope,c.result)},args.error=function(ty,x){ecb&&ecb.call(args.error_scope||args.scope,ty,x)},args.data=JSON.serialize({id:args.id||"c"+this.count++,method:args.method,params:args.params}),args.content_type="application/json",XHR.send(args)}},JSONRequest}),define("tinymce/util/JSONP",["tinymce/dom/DOMUtils"],function(DOMUtils){return{callbacks:{},count:0,send:function(settings){var self=this,dom=DOMUtils.DOM,count=settings.count!==undefined?settings.count:self.count,id="tinymce_jsonp_"+count;self.callbacks[count]=function(json){dom.remove(id),delete self.callbacks[count],settings.callback(json)},dom.add(dom.doc.body,"script",{id:id,src:settings.url,type:"text/javascript"}),self.count++}}}),define("tinymce/util/LocalStorage",[],function(){function updateKeys(){keys=[];for(var key in items)keys.push(key);LocalStorage.length=keys.length}function load(){function next(end){var value,nextPos;return nextPos=end!==undefined?pos+end:data.indexOf(",",pos),-1===nextPos||nextPos>data.length?null:(value=data.substring(pos,nextPos),pos=nextPos+1,value)}var key,data,value,pos=0;if(items={},hasOldIEDataSupport){storageElm.load(userDataKey),data=storageElm.getAttribute(userDataKey)||"";do{var offset=next();if(null===offset)break;if(key=next(parseInt(offset,32)||0),null!==key){if(offset=next(),null===offset)break;value=next(parseInt(offset,32)||0),key&&(items[key]=value)}}while(null!==key);updateKeys()}}function save(){var value,data="";if(hasOldIEDataSupport){for(var key in items)value=items[key],data+=(data?",":"")+key.length.toString(32)+","+key+","+value.length.toString(32)+","+value;storageElm.setAttribute(userDataKey,data);try{storageElm.save(userDataKey)}catch(ex){}updateKeys()}}var LocalStorage,storageElm,items,keys,userDataKey,hasOldIEDataSupport;try{if(window.localStorage)return localStorage}catch(ex){}return userDataKey="tinymce",storageElm=document.documentElement,hasOldIEDataSupport=!!storageElm.addBehavior,hasOldIEDataSupport&&storageElm.addBehavior("#default#userData"),LocalStorage={key:function(index){return keys[index]},getItem:function(key){return key in items?items[key]:null},setItem:function(key,value){items[key]=""+value,save()},removeItem:function(key){delete items[key],save()},clear:function(){items={},save()}},load(),LocalStorage}),define("tinymce/Compat",["tinymce/dom/DOMUtils","tinymce/dom/EventUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/util/Tools","tinymce/Env"],function(DOMUtils,EventUtils,ScriptLoader,AddOnManager,Tools,Env){var tinymce=window.tinymce;return tinymce.DOM=DOMUtils.DOM,tinymce.ScriptLoader=ScriptLoader.ScriptLoader,tinymce.PluginManager=AddOnManager.PluginManager,tinymce.ThemeManager=AddOnManager.ThemeManager,tinymce.dom=tinymce.dom||{},tinymce.dom.Event=EventUtils.Event,Tools.each(Tools,function(func,key){tinymce[key]=func}),Tools.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(name){tinymce[name]=Env[name.substr(2).toLowerCase()]}),{}}),define("tinymce/ui/Layout",["tinymce/util/Class","tinymce/util/Tools"],function(Class,Tools){return Class.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(settings){this.settings=Tools.extend({},this.Defaults,settings)},preRender:function(container){container.addClass(this.settings.containerClass,"body")},applyClasses:function(container){var items,firstClass,lastClass,self=this,settings=self.settings;items=container.items().filter(":visible"),firstClass=settings.firstControlClass,lastClass=settings.lastControlClass,items.each(function(item){item.removeClass(firstClass).removeClass(lastClass),settings.controlClass&&item.addClass(settings.controlClass)}),items.eq(0).addClass(firstClass),items.eq(-1).addClass(lastClass)},renderHtml:function(container){var items,self=this,settings=self.settings,html="";return items=container.items(),items.eq(0).addClass(settings.firstControlClass),items.eq(-1).addClass(settings.lastControlClass),items.each(function(item){settings.controlClass&&item.addClass(settings.controlClass),html+=item.renderHtml()}),html},recalc:function(){}, -postRender:function(){}})}),define("tinymce/ui/AbsoluteLayout",["tinymce/ui/Layout"],function(Layout){return Layout.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(container){container.items().filter(":visible").each(function(ctrl){var settings=ctrl.settings;ctrl.layoutRect({x:settings.x,y:settings.y,w:settings.w,h:settings.h}),ctrl.recalc&&ctrl.recalc()})},renderHtml:function(container){return'
    '+this._super(container)}})}),define("tinymce/ui/Tooltip",["tinymce/ui/Control","tinymce/ui/Movable"],function(Control,Movable){return Control.extend({Mixins:[Movable],Defaults:{classes:"widget tooltip tooltip-n"},text:function(value){var self=this;return"undefined"!=typeof value?(self._value=value,self._rendered&&(self.getEl().lastChild.innerHTML=self.encode(value)),self):self._value},renderHtml:function(){var self=this,prefix=self.classPrefix;return'"},repaint:function(){var style,rect,self=this;style=self.getEl().style,rect=self._layoutRect,style.left=rect.x+"px",style.top=rect.y+"px",style.zIndex=131070}})}),define("tinymce/ui/Widget",["tinymce/ui/Control","tinymce/ui/Tooltip"],function(Control,Tooltip){var tooltip,Widget=Control.extend({init:function(settings){var self=this;self._super(settings),settings=self.settings,self.canFocus=!0,settings.tooltip&&Widget.tooltips!==!1&&(self.on("mouseenter",function(e){var tooltip=self.tooltip().moveTo(-65535);if(e.control==self){var rel=tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(),["bc-tc","bc-tl","bc-tr"]);tooltip.toggleClass("tooltip-n","bc-tc"==rel),tooltip.toggleClass("tooltip-nw","bc-tl"==rel),tooltip.toggleClass("tooltip-ne","bc-tr"==rel),tooltip.moveRel(self.getEl(),rel)}else tooltip.hide()}),self.on("mouseleave mousedown click",function(){self.tooltip().hide()})),self.aria("label",settings.ariaLabel||settings.tooltip)},tooltip:function(){return tooltip||(tooltip=new Tooltip({type:"tooltip"}),tooltip.renderTo()),tooltip},active:function(state){var undef,self=this;return state!==undef&&(self.aria("pressed",state),self.toggleClass("active",state)),self._super(state)},disabled:function(state){var undef,self=this;return state!==undef&&(self.aria("disabled",state),self.toggleClass("disabled",state)),self._super(state)},postRender:function(){var self=this,settings=self.settings;self._rendered=!0,self._super(),self.parent()||!settings.width&&!settings.height||(self.initLayoutRect(),self.repaint()),settings.autofocus&&self.focus()},remove:function(){this._super(),tooltip&&(tooltip.remove(),tooltip=null)}});return Widget}),define("tinymce/ui/Button",["tinymce/ui/Widget"],function(Widget){return Widget.extend({Defaults:{classes:"widget btn",role:"button"},init:function(settings){var size,self=this;self.on("click mousedown",function(e){e.preventDefault()}),self._super(settings),size=settings.size,settings.subtype&&self.addClass(settings.subtype),size&&self.addClass("btn-"+size)},icon:function(icon){var self=this,prefix=self.classPrefix;if("undefined"==typeof icon)return self.settings.icon;if(self.settings.icon=icon,icon=icon?prefix+"ico "+prefix+"i-"+self.settings.icon:"",self._rendered){var btnElm=self.getEl().firstChild,iconElm=btnElm.getElementsByTagName("i")[0];icon?(iconElm&&iconElm==btnElm.firstChild||(iconElm=document.createElement("i"),btnElm.insertBefore(iconElm,btnElm.firstChild)),iconElm.className=icon):iconElm&&btnElm.removeChild(iconElm),self.text(self._text)}return self},repaint:function(){var btnStyle=this.getEl().firstChild.style;btnStyle.width=btnStyle.height="100%",this._super()},text:function(text){var self=this;if(self._rendered){var textNode=self.getEl().lastChild.lastChild;textNode&&(textNode.data=self.translate(text))}return self._super(text)},renderHtml:function(){var image,self=this,id=self._id,prefix=self.classPrefix,icon=self.settings.icon;return image=self.settings.image,image?(icon="none","string"!=typeof image&&(image=window.getSelection?image[0]:image[1]),image=" style=\"background-image: url('"+image+"')\""):image="",icon=self.settings.icon?prefix+"ico "+prefix+"i-"+icon:"",'
    "}})}),define("tinymce/ui/ButtonGroup",["tinymce/ui/Container"],function(Container){return Container.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var self=this,layout=self._layout;return self.addClass("btn-group"),self.preRender(),layout.preRender(self),'
    '+(self.settings.html||"")+layout.renderHtml(self)+"
    "}})}),define("tinymce/ui/Checkbox",["tinymce/ui/Widget"],function(Widget){return Widget.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(settings){var self=this;self._super(settings),self.on("click mousedown",function(e){e.preventDefault()}),self.on("click",function(e){e.preventDefault(),self.disabled()||self.checked(!self.checked())}),self.checked(self.settings.checked)},checked:function(state){var self=this;return"undefined"!=typeof state?(state?self.addClass("checked"):self.removeClass("checked"),self._checked=state,self.aria("checked",state),self):self._checked},value:function(state){return this.checked(state)},renderHtml:function(){var self=this,id=self._id,prefix=self.classPrefix;return'
    '+self.encode(self._text)+"
    "}})}),define("tinymce/ui/ComboBox",["tinymce/ui/Widget","tinymce/ui/Factory","tinymce/ui/DomUtils"],function(Widget,Factory,DomUtils){return Widget.extend({init:function(settings){var self=this;self._super(settings),self.addClass("combobox"),self.subinput=!0,self.ariaTarget="inp",settings=self.settings,settings.menu=settings.menu||settings.values,settings.menu&&(settings.icon="caret"),self.on("click",function(e){for(var elm=e.target,root=self.getEl();elm&&elm!=root;)elm.id&&-1!=elm.id.indexOf("-open")&&(self.fire("action"),settings.menu&&(self.showMenu(),e.aria&&self.menu.items()[0].focus())),elm=elm.parentNode}),self.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&self.parents().reverse().each(function(ctrl){return e.preventDefault(),self.fire("change"),ctrl.hasEventListeners("submit")&&ctrl.toJSON?(ctrl.fire("submit",{data:ctrl.toJSON()}),!1):void 0})}),settings.placeholder&&(self.addClass("placeholder"),self.on("focusin",function(){self._hasOnChange||(DomUtils.on(self.getEl("inp"),"change",function(){self.fire("change")}),self._hasOnChange=!0),self.hasClass("placeholder")&&(self.getEl("inp").value="",self.removeClass("placeholder"))}),self.on("focusout",function(){0===self.value().length&&(self.getEl("inp").value=settings.placeholder,self.addClass("placeholder"))}))},showMenu:function(){var menu,self=this,settings=self.settings;self.menu||(menu=settings.menu||[],menu.length?menu={type:"menu",items:menu}:menu.type=menu.type||"menu",self.menu=Factory.create(menu).parent(self).renderTo(self.getContainerElm()),self.fire("createmenu"),self.menu.reflow(),self.menu.on("cancel",function(e){e.control===self.menu&&self.focus()}),self.menu.on("show hide",function(e){e.control.items().each(function(ctrl){ctrl.active(ctrl.value()==self.value())})}).fire("show"),self.menu.on("select",function(e){self.value(e.control.value())}),self.on("focusin",function(e){"INPUT"==e.target.tagName.toUpperCase()&&self.menu.hide()}),self.aria("expanded",!0)),self.menu.show(),self.menu.layoutRect({w:self.layoutRect().w}),self.menu.moveRel(self.getEl(),self.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},value:function(value){var self=this;return"undefined"!=typeof value?(self._value=value,self.removeClass("placeholder"),self._rendered&&(self.getEl("inp").value=value),self):self._rendered?(value=self.getEl("inp").value,value!=self.settings.placeholder?value:""):self._value},disabled:function(state){var self=this;return self._rendered&&"undefined"!=typeof state&&(self.getEl("inp").disabled=state),self._super(state)},focus:function(){this.getEl("inp").focus()},repaint:function(){var width,lineHeight,self=this,elm=self.getEl(),openElm=self.getEl("open"),rect=self.layoutRect();width=openElm?rect.w-DomUtils.getSize(openElm).width-10:rect.w-10;var doc=document;return doc.all&&(!doc.documentMode||doc.documentMode<=8)&&(lineHeight=self.layoutRect().h-2+"px"),DomUtils.css(elm.firstChild,{width:width,lineHeight:lineHeight}),self._super(),self},postRender:function(){var self=this;return DomUtils.on(this.getEl("inp"),"change",function(){self.fire("change")}),self._super()},remove:function(){DomUtils.off(this.getEl("inp")),this._super()},renderHtml:function(){var icon,text,self=this,id=self._id,settings=self.settings,prefix=self.classPrefix,value=settings.value||settings.placeholder||"",openBtnHtml="",extraAttrs="";return"spellcheck"in settings&&(extraAttrs+=' spellcheck="'+settings.spellcheck+'"'),settings.maxLength&&(extraAttrs+=' maxlength="'+settings.maxLength+'"'),settings.size&&(extraAttrs+=' size="'+settings.size+'"'),settings.subtype&&(extraAttrs+=' type="'+settings.subtype+'"'),self.disabled()&&(extraAttrs+=' disabled="disabled"'),icon=settings.icon,icon&&"caret"!=icon&&(icon=prefix+"ico "+prefix+"i-"+settings.icon),text=self._text,(icon||text)&&(openBtnHtml='
    ",self.addClass("has-open")),'
    "+openBtnHtml+"
    "}})}),define("tinymce/ui/ColorBox",["tinymce/ui/ComboBox"],function(ComboBox){return ComboBox.extend({init:function(settings){var self=this;settings.spellcheck=!1,settings.onaction&&(settings.icon="none"),self._super(settings),self.addClass("colorbox"),self.on("change keyup postrender",function(){self.repaintColor(self.value())})},repaintColor:function(value){var elm=this.getEl().getElementsByTagName("i")[0];if(elm)try{elm.style.background=value}catch(ex){}},value:function(value){var self=this;return"undefined"!=typeof value&&self._rendered&&self.repaintColor(value),self._super(value)}})}),define("tinymce/ui/PanelButton",["tinymce/ui/Button","tinymce/ui/FloatPanel"],function(Button,FloatPanel){return Button.extend({showPanel:function(){var self=this,settings=self.settings;if(self.active(!0),self.panel)self.panel.show();else{var panelSettings=settings.panel;panelSettings.type&&(panelSettings={layout:"grid",items:panelSettings}),panelSettings.role=panelSettings.role||"dialog",panelSettings.popover=!0,panelSettings.autohide=!0,panelSettings.ariaRoot=!0,self.panel=new FloatPanel(panelSettings).on("hide",function(){self.active(!1)}).on("cancel",function(e){e.stopPropagation(),self.focus(),self.hidePanel()}).parent(self).renderTo(self.getContainerElm()),self.panel.fire("show"),self.panel.reflow()}self.panel.moveRel(self.getEl(),settings.popoverAlign||(self.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var self=this;self.panel&&self.panel.hide()},postRender:function(){var self=this;return self.aria("haspopup",!0),self.on("click",function(e){e.control===self&&(self.panel&&self.panel.visible()?self.hidePanel():(self.showPanel(),self.panel.focus(!!e.aria)))}),self._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),define("tinymce/ui/ColorButton",["tinymce/ui/PanelButton","tinymce/dom/DOMUtils"],function(PanelButton,DomUtils){var DOM=DomUtils.DOM;return PanelButton.extend({init:function(settings){this._super(settings),this.addClass("colorbutton")},color:function(color){return color?(this._color=color,this.getEl("preview").style.backgroundColor=color,this):this._color},renderHtml:function(){var self=this,id=self._id,prefix=self.classPrefix,icon=self.settings.icon?prefix+"ico "+prefix+"i-"+self.settings.icon:"",image=self.settings.image?" style=\"background-image: url('"+self.settings.image+"')\"":"";return'
    '},postRender:function(){var self=this,onClickHandler=self.settings.onclick;return self.on("click",function(e){e.aria&&"down"==e.aria.key||e.control!=self||DOM.getParent(e.target,"."+self.classPrefix+"open")||(e.stopImmediatePropagation(),onClickHandler.call(self,e))}),delete self.settings.onclick,self._super()}})}),define("tinymce/util/Color",[],function(){function Color(value){function rgb2hsv(r,g,b){var h,s,v,d,minRGB,maxRGB;return h=0,s=0,v=0,r/=255,g/=255,b/=255,minRGB=min(r,min(g,b)),maxRGB=max(r,max(g,b)),minRGB==maxRGB?(v=minRGB,{h:0,s:0,v:100*v}):(d=r==minRGB?g-b:b==minRGB?r-g:b-r,h=r==minRGB?3:b==minRGB?1:5,h=60*(h-d/(maxRGB-minRGB)),s=(maxRGB-minRGB)/maxRGB,v=maxRGB,{h:round(h),s:round(100*s),v:round(100*v)})}function hsvToRgb(hue,saturation,brightness){var side,chroma,x,match;if(hue=(parseInt(hue,10)||0)%360,saturation=parseInt(saturation,10)/100,brightness=parseInt(brightness,10)/100,saturation=max(0,min(saturation,1)),brightness=max(0,min(brightness,1)),0===saturation)return void(r=g=b=round(255*brightness));switch(side=hue/60,chroma=brightness*saturation,x=chroma*(1-Math.abs(side%2-1)),match=brightness-chroma,Math.floor(side)){case 0:r=chroma,g=x,b=0;break;case 1:r=x,g=chroma,b=0;break;case 2:r=0,g=chroma,b=x;break;case 3:r=0,g=x,b=chroma;break;case 4:r=x,g=0,b=chroma;break;case 5:r=chroma,g=0,b=x;break;default:r=g=b=0}r=round(255*(r+match)),g=round(255*(g+match)),b=round(255*(b+match))}function toHex(){function hex(val){return val=parseInt(val,10).toString(16),val.length>1?val:"0"+val}return"#"+hex(r)+hex(g)+hex(b)}function toRgb(){return{r:r,g:g,b:b}}function toHsv(){return rgb2hsv(r,g,b)}function parse(value){var matches;return"object"==typeof value?"r"in value?(r=value.r,g=value.g,b=value.b):"v"in value&&hsvToRgb(value.h,value.s,value.v):(matches=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(value))?(r=parseInt(matches[1],10),g=parseInt(matches[2],10),b=parseInt(matches[3],10)):(matches=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value))?(r=parseInt(matches[1],16),g=parseInt(matches[2],16),b=parseInt(matches[3],16)):(matches=/#([0-F])([0-F])([0-F])/gi.exec(value))&&(r=parseInt(matches[1]+matches[1],16),g=parseInt(matches[2]+matches[2],16),b=parseInt(matches[3]+matches[3],16)),r=0>r?0:r>255?255:r,g=0>g?0:g>255?255:g,b=0>b?0:b>255?255:b,self}var self=this,r=0,g=0,b=0;value&&parse(value),self.toRgb=toRgb,self.toHsv=toHsv,self.toHex=toHex,self.parse=parse}var min=Math.min,max=Math.max,round=Math.round;return Color}),define("tinymce/ui/ColorPicker",["tinymce/ui/Widget","tinymce/ui/DragHelper","tinymce/ui/DomUtils","tinymce/util/Color"],function(Widget,DragHelper,DomUtils,Color){return Widget.extend({Defaults:{classes:"widget colorpicker"},init:function(settings){this._super(settings)},postRender:function(){function getPos(elm,event){var x,y,pos=DomUtils.getPos(elm);return x=event.pageX-pos.x,y=event.pageY-pos.y,x=Math.max(0,Math.min(x/elm.clientWidth,1)),y=Math.max(0,Math.min(y/elm.clientHeight,1)),{x:x,y:y}}function updateColor(hsv,hueUpdate){var hue=(360-hsv.h)/360;DomUtils.css(huePointElm,{top:100*hue+"%"}),hueUpdate||DomUtils.css(svPointElm,{left:hsv.s+"%",top:100-hsv.v+"%"}),svRootElm.style.background=new Color({s:100,v:100,h:hsv.h}).toHex(),self.color().parse({s:hsv.s,v:hsv.v,h:hsv.h})}function updateSaturationAndValue(e){var pos;pos=getPos(svRootElm,e),hsv.s=100*pos.x,hsv.v=100*(1-pos.y),updateColor(hsv),self.fire("change")}function updateHue(e){var pos;pos=getPos(hueRootElm,e),hsv=color.toHsv(),hsv.h=360*(1-pos.y),updateColor(hsv,!0),self.fire("change")}var hsv,hueRootElm,huePointElm,svRootElm,svPointElm,self=this,color=self.color();hueRootElm=self.getEl("h"),huePointElm=self.getEl("hp"),svRootElm=self.getEl("sv"),svPointElm=self.getEl("svp"),self._repaint=function(){hsv=color.toHsv(),updateColor(hsv)},self._super(),self._svdraghelper=new DragHelper(self._id+"-sv",{start:updateSaturationAndValue,drag:updateSaturationAndValue}),self._hdraghelper=new DragHelper(self._id+"-h",{start:updateHue,drag:updateHue}),self._repaint()},rgb:function(){return this.color().toRgb()},value:function(value){var self=this;return arguments.length?(self.color().parse(value),void(self._rendered&&self._repaint())):self.color().toHex()},color:function(){return this._color||(this._color=new Color),this._color},renderHtml:function(){function getOldIeFallbackHtml(){var i,l,gradientPrefix,stopsList,html="";for(gradientPrefix="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",stopsList=stops.split(","),i=0,l=stopsList.length-1;l>i;i++)html+='
    ';return html}var hueHtml,self=this,id=self._id,prefix=self.classPrefix,stops="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",gradientCssText="background: -ms-linear-gradient(top,"+stops+");background: linear-gradient(to bottom,"+stops+");";return hueHtml='
    '+getOldIeFallbackHtml()+'
    ','
    '+hueHtml+"
    "}})}),define("tinymce/ui/Path",["tinymce/ui/Widget"],function(Widget){return Widget.extend({init:function(settings){var self=this;settings.delimiter||(settings.delimiter="»"),self._super(settings),self.addClass("path"),self.canFocus=!0,self.on("click",function(e){var index,target=e.target;(index=target.getAttribute("data-index"))&&self.fire("select",{value:self.data()[index],index:index})})},focus:function(){var self=this;return self.getEl().firstChild.focus(),self},data:function(data){var self=this;return"undefined"!=typeof data?(self._data=data,self.update(),self):self._data},update:function(){this.innerHtml(this._getPathHtml())},postRender:function(){var self=this;self._super(),self.data(self.settings.data)},renderHtml:function(){var self=this;return'
    '+self._getPathHtml()+"
    "},_getPathHtml:function(){var i,l,self=this,parts=self._data||[],html="",prefix=self.classPrefix;for(i=0,l=parts.length;l>i;i++)html+=(i>0?'":"")+'
    '+parts[i].name+"
    ";return html||(html='
     
    '),html}})}),define("tinymce/ui/ElementPath",["tinymce/ui/Path","tinymce/EditorManager"],function(Path,EditorManager){return Path.extend({postRender:function(){function isHidden(elm){if(1===elm.nodeType){if("BR"==elm.nodeName||elm.getAttribute("data-mce-bogus"))return!0;if("bookmark"===elm.getAttribute("data-mce-type"))return!0}return!1}var self=this,editor=EditorManager.activeEditor;return self.on("select",function(e){editor.focus(),editor.selection.select(this.data()[e.index].element),editor.nodeChanged()}),editor.on("nodeChange",function(e){for(var outParents=[],parents=e.parents,i=parents.length;i--;)if(1==parents[i].nodeType&&!isHidden(parents[i])){var args=editor.fire("ResolveName",{name:parents[i].nodeName.toLowerCase(),target:parents[i]});if(args.isDefaultPrevented()||outParents.push({name:args.name,element:parents[i]}),args.isPropagationStopped())break}self.data(outParents)}),self._super()}})}),define("tinymce/ui/FormItem",["tinymce/ui/Container"],function(Container){return Container.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var self=this,layout=self._layout,prefix=self.classPrefix;return self.addClass("formitem"),layout.preRender(self),'
    '+(self.settings.title?'
    '+self.settings.title+"
    ":"")+'
    '+(self.settings.html||"")+layout.renderHtml(self)+"
    "}})}),define("tinymce/ui/Form",["tinymce/ui/Container","tinymce/ui/FormItem","tinymce/util/Tools"],function(Container,FormItem,Tools){return Container.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var self=this,items=self.items();self.settings.formItemDefaults||(self.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),items.each(function(ctrl){var formItem,label=ctrl.settings.label;label&&(formItem=new FormItem(Tools.extend({items:{type:"label",id:ctrl._id+"-l",text:label,flex:0,forId:ctrl._id,disabled:ctrl.disabled()}},self.settings.formItemDefaults)),formItem.type="formitem",ctrl.aria("labelledby",ctrl._id+"-l"),"undefined"==typeof ctrl.settings.flex&&(ctrl.settings.flex=1),self.replace(ctrl,formItem),formItem.add(ctrl))})},recalcLabels:function(){var i,labelGap,items,self=this,maxLabelWidth=0,labels=[];if(self.settings.labelGapCalc!==!1)for(items="children"==self.settings.labelGapCalc?self.find("formitem"):self.items(),items.filter("formitem").each(function(item){var labelCtrl=item.items()[0],labelWidth=labelCtrl.getEl().clientWidth;maxLabelWidth=labelWidth>maxLabelWidth?labelWidth:maxLabelWidth,labels.push(labelCtrl)}),labelGap=self.settings.labelGap||0,i=labels.length;i--;)labels[i].settings.minWidth=maxLabelWidth+labelGap},visible:function(state){var val=this._super(state);return state===!0&&this._rendered&&this.recalcLabels(),val},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var self=this;self._super(),self.recalcLabels(),self.fromJSON(self.settings.data)}})}),define("tinymce/ui/FieldSet",["tinymce/ui/Form"],function(Form){return Form.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var self=this,layout=self._layout,prefix=self.classPrefix;return self.preRender(),layout.preRender(self),'
    '+(self.settings.title?''+self.settings.title+"":"")+'
    '+(self.settings.html||"")+layout.renderHtml(self)+"
    "}})}),define("tinymce/ui/FilePicker",["tinymce/ui/ComboBox","tinymce/util/Tools"],function(ComboBox,Tools){return ComboBox.extend({init:function(settings){var actionCallback,fileBrowserCallback,fileBrowserCallbackTypes,self=this,editor=tinymce.activeEditor,editorSettings=editor.settings;settings.spellcheck=!1,fileBrowserCallbackTypes=editorSettings.file_picker_types||editorSettings.file_browser_callback_types,fileBrowserCallbackTypes&&(fileBrowserCallbackTypes=Tools.makeMap(fileBrowserCallbackTypes,/[, ]/)),(!fileBrowserCallbackTypes||fileBrowserCallbackTypes[settings.filetype])&&(fileBrowserCallback=editorSettings.file_picker_callback,!fileBrowserCallback||fileBrowserCallbackTypes&&!fileBrowserCallbackTypes[settings.filetype]?(fileBrowserCallback=editorSettings.file_browser_callback,!fileBrowserCallback||fileBrowserCallbackTypes&&!fileBrowserCallbackTypes[settings.filetype]||(actionCallback=function(){fileBrowserCallback(self.getEl("inp").id,self.value(),settings.filetype,window)})):actionCallback=function(){var meta=self.fire("beforecall").meta;meta=Tools.extend({filetype:settings.filetype},meta),fileBrowserCallback.call(editor,function(value,meta){self.value(value).fire("change",{meta:meta})},self.value(),meta)}),actionCallback&&(settings.icon="browse",settings.onaction=actionCallback),self._super(settings)}})}),define("tinymce/ui/FitLayout",["tinymce/ui/AbsoluteLayout"],function(AbsoluteLayout){return AbsoluteLayout.extend({recalc:function(container){var contLayoutRect=container.layoutRect(),paddingBox=container.paddingBox();container.items().filter(":visible").each(function(ctrl){ctrl.layoutRect({x:paddingBox.left,y:paddingBox.top,w:contLayoutRect.innerW-paddingBox.right-paddingBox.left,h:contLayoutRect.innerH-paddingBox.top-paddingBox.bottom}),ctrl.recalc&&ctrl.recalc()})}})}),define("tinymce/ui/FlexLayout",["tinymce/ui/AbsoluteLayout"],function(AbsoluteLayout){return AbsoluteLayout.extend({recalc:function(container){var i,l,items,contLayoutRect,contPaddingBox,contSettings,align,pack,spacing,totalFlex,availableSpace,direction,ctrl,ctrlLayoutRect,ctrlSettings,flex,size,maxSize,ratio,rect,pos,maxAlignEndPos,sizeName,minSizeName,posName,maxSizeName,beforeName,innerSizeName,deltaSizeName,contentSizeName,alignAxisName,alignInnerSizeName,alignSizeName,alignMinSizeName,alignBeforeName,alignAfterName,alignDeltaSizeName,alignContentSizeName,maxSizeItems=[],max=Math.max,min=Math.min;for(items=container.items().filter(":visible"),contLayoutRect=container.layoutRect(),contPaddingBox=container._paddingBox,contSettings=container.settings,direction=container.isRtl()?contSettings.direction||"row-reversed":contSettings.direction,align=contSettings.align,pack=container.isRtl()?contSettings.pack||"end":contSettings.pack,spacing=contSettings.spacing||0,("row-reversed"==direction||"column-reverse"==direction)&&(items=items.set(items.toArray().reverse()),direction=direction.split("-")[0]),"column"==direction?(posName="y",sizeName="h",minSizeName="minH",maxSizeName="maxH",innerSizeName="innerH",beforeName="top",deltaSizeName="deltaH",contentSizeName="contentH",alignBeforeName="left",alignSizeName="w",alignAxisName="x",alignInnerSizeName="innerW",alignMinSizeName="minW",alignAfterName="right",alignDeltaSizeName="deltaW",alignContentSizeName="contentW"):(posName="x",sizeName="w",minSizeName="minW",maxSizeName="maxW",innerSizeName="innerW",beforeName="left",deltaSizeName="deltaW",contentSizeName="contentW",alignBeforeName="top",alignSizeName="h",alignAxisName="y",alignInnerSizeName="innerH",alignMinSizeName="minH",alignAfterName="bottom",alignDeltaSizeName="deltaH",alignContentSizeName="contentH"),availableSpace=contLayoutRect[innerSizeName]-contPaddingBox[beforeName]-contPaddingBox[beforeName],maxAlignEndPos=totalFlex=0,i=0,l=items.length;l>i;i++)ctrl=items[i],ctrlLayoutRect=ctrl.layoutRect(),ctrlSettings=ctrl.settings,flex=ctrlSettings.flex,availableSpace-=l-1>i?spacing:0,flex>0&&(totalFlex+=flex,ctrlLayoutRect[maxSizeName]&&maxSizeItems.push(ctrl),ctrlLayoutRect.flex=flex),availableSpace-=ctrlLayoutRect[minSizeName],size=contPaddingBox[alignBeforeName]+ctrlLayoutRect[alignMinSizeName]+contPaddingBox[alignAfterName],size>maxAlignEndPos&&(maxAlignEndPos=size);if(rect={},0>availableSpace?rect[minSizeName]=contLayoutRect[minSizeName]-availableSpace+contLayoutRect[deltaSizeName]:rect[minSizeName]=contLayoutRect[innerSizeName]-availableSpace+contLayoutRect[deltaSizeName],rect[alignMinSizeName]=maxAlignEndPos+contLayoutRect[alignDeltaSizeName],rect[contentSizeName]=contLayoutRect[innerSizeName]-availableSpace,rect[alignContentSizeName]=maxAlignEndPos,rect.minW=min(rect.minW,contLayoutRect.maxW),rect.minH=min(rect.minH,contLayoutRect.maxH),rect.minW=max(rect.minW,contLayoutRect.startMinWidth),rect.minH=max(rect.minH,contLayoutRect.startMinHeight),!contLayoutRect.autoResize||rect.minW==contLayoutRect.minW&&rect.minH==contLayoutRect.minH){for(ratio=availableSpace/totalFlex,i=0,l=maxSizeItems.length;l>i;i++)ctrl=maxSizeItems[i],ctrlLayoutRect=ctrl.layoutRect(),maxSize=ctrlLayoutRect[maxSizeName],size=ctrlLayoutRect[minSizeName]+ctrlLayoutRect.flex*ratio,size>maxSize?(availableSpace-=ctrlLayoutRect[maxSizeName]-ctrlLayoutRect[minSizeName],totalFlex-=ctrlLayoutRect.flex,ctrlLayoutRect.flex=0,ctrlLayoutRect.maxFlexSize=maxSize):ctrlLayoutRect.maxFlexSize=0;for(ratio=availableSpace/totalFlex,pos=contPaddingBox[beforeName],rect={},0===totalFlex&&("end"==pack?pos=availableSpace+contPaddingBox[beforeName]:"center"==pack?(pos=Math.round(contLayoutRect[innerSizeName]/2-(contLayoutRect[innerSizeName]-availableSpace)/2)+contPaddingBox[beforeName],0>pos&&(pos=contPaddingBox[beforeName])):"justify"==pack&&(pos=contPaddingBox[beforeName],spacing=Math.floor(availableSpace/(items.length-1)))),rect[alignAxisName]=contPaddingBox[alignBeforeName],i=0,l=items.length;l>i;i++)ctrl=items[i],ctrlLayoutRect=ctrl.layoutRect(),size=ctrlLayoutRect.maxFlexSize||ctrlLayoutRect[minSizeName],"center"===align?rect[alignAxisName]=Math.round(contLayoutRect[alignInnerSizeName]/2-ctrlLayoutRect[alignSizeName]/2):"stretch"===align?(rect[alignSizeName]=max(ctrlLayoutRect[alignMinSizeName]||0,contLayoutRect[alignInnerSizeName]-contPaddingBox[alignBeforeName]-contPaddingBox[alignAfterName]),rect[alignAxisName]=contPaddingBox[alignBeforeName]):"end"===align&&(rect[alignAxisName]=contLayoutRect[alignInnerSizeName]-ctrlLayoutRect[alignSizeName]-contPaddingBox.top),ctrlLayoutRect.flex>0&&(size+=ctrlLayoutRect.flex*ratio),rect[sizeName]=size,rect[posName]=pos,ctrl.layoutRect(rect),ctrl.recalc&&ctrl.recalc(),pos+=size+spacing}else if(rect.w=rect.minW,rect.h=rect.minH,container.layoutRect(rect),this.recalc(container),null===container._lastRect){var parentCtrl=container.parent();parentCtrl&&(parentCtrl._lastRect=null,parentCtrl.recalc())}}})}),define("tinymce/ui/FlowLayout",["tinymce/ui/Layout"],function(Layout){return Layout.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(container){container.items().filter(":visible").each(function(ctrl){ctrl.recalc&&ctrl.recalc()})}})}),define("tinymce/ui/FormatControls",["tinymce/ui/Control","tinymce/ui/Widget","tinymce/ui/FloatPanel","tinymce/util/Tools","tinymce/EditorManager","tinymce/Env"],function(Control,Widget,FloatPanel,Tools,EditorManager,Env){function registerControls(editor){function createListBoxChangeHandler(items,formatName){return function(){var self=this;editor.on("nodeChange",function(e){var formatter=editor.formatter,value=null;each(e.parents,function(node){return each(items,function(item){return formatName?formatter.matchNode(node,formatName,{value:item.value})&&(value=item.value):formatter.matchNode(node,item.value)&&(value=item.value),value?!1:void 0}),value?!1:void 0}),self.value(value)})}}function createFormats(formats){formats=formats.replace(/;$/,"").split(";");for(var i=formats.length;i--;)formats[i]=formats[i].split("=");return formats}function createFormatMenu(){function createMenu(formats){ -var menu=[];if(formats)return each(formats,function(format){var menuItem={text:format.title,icon:format.icon};if(format.items)menuItem.menu=createMenu(format.items);else{var formatName=format.format||"custom"+count++;format.format||(format.name=formatName,newFormats.push(format)),menuItem.format=formatName,menuItem.cmd=format.cmd}menu.push(menuItem)}),menu}function createStylesMenu(){var menu;return menu=createMenu(editor.settings.style_formats_merge?editor.settings.style_formats?defaultStyleFormats.concat(editor.settings.style_formats):defaultStyleFormats:editor.settings.style_formats||defaultStyleFormats)}var count=0,newFormats=[],defaultStyleFormats=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return editor.on("init",function(){each(newFormats,function(format){editor.formatter.register(format.name,format)})}),{type:"menu",items:createStylesMenu(),onPostRender:function(e){editor.fire("renderFormatsMenu",{control:e.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?editor.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var self=this;self.parent().on("show",function(){var formatName,command;formatName=self.settings.format,formatName&&(self.disabled(!editor.formatter.canApply(formatName)),self.active(editor.formatter.match(formatName))),command=self.settings.cmd,command&&self.active(editor.queryCommandState(command))})},onclick:function(){this.settings.format&&toggleFormat(this.settings.format),this.settings.cmd&&editor.execCommand(this.settings.cmd)}}}}function toggleUndoRedoState(type){return function(){function checkState(){return editor.undoManager?editor.undoManager[type]():!1}var self=this;type="redo"==type?"hasRedo":"hasUndo",self.disabled(!checkState()),editor.on("Undo Redo AddUndo TypingUndo ClearUndos",function(){self.disabled(!checkState())})}}function toggleVisualAidState(){var self=this;editor.on("VisualAid",function(e){self.active(e.hasVisual)}),self.active(editor.hasVisual)}function toggleFormat(fmt){fmt.control&&(fmt=fmt.control.value()),fmt&&editor.execCommand("mceToggleFormat",!1,fmt)}var formatMenu;formatMenu=createFormatMenu(),each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(text,name){editor.addButton(name,{tooltip:text,onPostRender:function(){var self=this;editor.formatter?editor.formatter.formatChanged(name,function(state){self.active(state)}):editor.on("init",function(){editor.formatter.formatChanged(name,function(state){self.active(state)})})},onclick:function(){toggleFormat(name)}})}),each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(item,name){editor.addButton(name,{tooltip:item[0],cmd:item[1]})}),each({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(item,name){editor.addButton(name,{tooltip:item[0],cmd:item[1],onPostRender:function(){var self=this;editor.formatter?editor.formatter.formatChanged(name,function(state){self.active(state)}):editor.on("init",function(){editor.formatter.formatChanged(name,function(state){self.active(state)})})}})}),editor.addButton("undo",{tooltip:"Undo",onPostRender:toggleUndoRedoState("undo"),cmd:"undo"}),editor.addButton("redo",{tooltip:"Redo",onPostRender:toggleUndoRedoState("redo"),cmd:"redo"}),editor.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),editor.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:toggleUndoRedoState("undo"),cmd:"undo"}),editor.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:toggleUndoRedoState("redo"),cmd:"redo"}),editor.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:toggleVisualAidState,cmd:"mceToggleVisualAid"}),each({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(item,name){editor.addMenuItem(name,{text:item[0],icon:name,shortcut:item[2],cmd:item[1]})}),editor.on("mousedown",function(){FloatPanel.hideAll()}),editor.addButton("styleselect",{type:"menubutton",text:"Formats",menu:formatMenu}),editor.addButton("formatselect",function(){var items=[],blocks=createFormats(editor.settings.block_formats||"Paragraph=p;Address=address;Pre=pre;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6");return each(blocks,function(block){items.push({text:block[0],value:block[1],textStyle:function(){return editor.formatter.getCssText(block[1])}})}),{type:"listbox",text:blocks[0][0],values:items,fixedWidth:!0,onselect:toggleFormat,onPostRender:createListBoxChangeHandler(items)}}),editor.addButton("fontselect",function(){var defaultFontsFormats="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",items=[],fonts=createFormats(editor.settings.font_formats||defaultFontsFormats);return each(fonts,function(font){items.push({text:{raw:font[0]},value:font[1],textStyle:-1==font[1].indexOf("dings")?"font-family:"+font[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:items,fixedWidth:!0,onPostRender:createListBoxChangeHandler(items,"fontname"),onselect:function(e){e.control.settings.value&&editor.execCommand("FontName",!1,e.control.settings.value)}}}),editor.addButton("fontsizeselect",function(){var items=[],defaultFontsizeFormats="8pt 10pt 12pt 14pt 18pt 24pt 36pt",fontsize_formats=editor.settings.fontsize_formats||defaultFontsizeFormats;return each(fontsize_formats.split(" "),function(item){var text=item,value=item,values=item.split("=");values.length>1&&(text=values[0],value=values[1]),items.push({text:text,value:value})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:items,fixedWidth:!0,onPostRender:createListBoxChangeHandler(items,"fontsize"),onclick:function(e){e.control.settings.value&&editor.execCommand("FontSize",!1,e.control.settings.value)}}}),editor.addMenuItem("formats",{text:"Formats",menu:formatMenu})}var each=Tools.each;EditorManager.on("AddEditor",function(e){e.editor.rtl&&(Control.rtl=!0),registerControls(e.editor)}),Control.translate=function(text){return EditorManager.translate(text)},Widget.tooltips=!Env.iOS}),define("tinymce/ui/GridLayout",["tinymce/ui/AbsoluteLayout"],function(AbsoluteLayout){return AbsoluteLayout.extend({recalc:function(container){var rows,cols,items,contLayoutRect,width,height,rect,ctrlLayoutRect,ctrl,x,y,posX,posY,ctrlSettings,contPaddingBox,align,spacingH,spacingV,alignH,alignV,maxX,maxY,ctrlMinWidth,ctrlMinHeight,availableWidth,availableHeight,reverseRows,idx,settings=container.settings,colWidths=[],rowHeights=[];settings=container.settings,items=container.items().filter(":visible"),contLayoutRect=container.layoutRect(),cols=settings.columns||Math.ceil(Math.sqrt(items.length)),rows=Math.ceil(items.length/cols),spacingH=settings.spacingH||settings.spacing||0,spacingV=settings.spacingV||settings.spacing||0,alignH=settings.alignH||settings.align,alignV=settings.alignV||settings.align,contPaddingBox=container._paddingBox,reverseRows="reverseRows"in settings?settings.reverseRows:container.isRtl(),alignH&&"string"==typeof alignH&&(alignH=[alignH]),alignV&&"string"==typeof alignV&&(alignV=[alignV]);for(x=0;cols>x;x++)colWidths.push(0);for(y=0;rows>y;y++)rowHeights.push(0);for(y=0;rows>y;y++)for(x=0;cols>x&&(ctrl=items[y*cols+x],ctrl);x++)ctrlLayoutRect=ctrl.layoutRect(),ctrlMinWidth=ctrlLayoutRect.minW,ctrlMinHeight=ctrlLayoutRect.minH,colWidths[x]=ctrlMinWidth>colWidths[x]?ctrlMinWidth:colWidths[x],rowHeights[y]=ctrlMinHeight>rowHeights[y]?ctrlMinHeight:rowHeights[y];for(availableWidth=contLayoutRect.innerW-contPaddingBox.left-contPaddingBox.right,maxX=0,x=0;cols>x;x++)maxX+=colWidths[x]+(x>0?spacingH:0),availableWidth-=(x>0?spacingH:0)+colWidths[x];for(availableHeight=contLayoutRect.innerH-contPaddingBox.top-contPaddingBox.bottom,maxY=0,y=0;rows>y;y++)maxY+=rowHeights[y]+(y>0?spacingV:0),availableHeight-=(y>0?spacingV:0)+rowHeights[y];if(maxX+=contPaddingBox.left+contPaddingBox.right,maxY+=contPaddingBox.top+contPaddingBox.bottom,rect={},rect.minW=maxX+(contLayoutRect.w-contLayoutRect.innerW),rect.minH=maxY+(contLayoutRect.h-contLayoutRect.innerH),rect.contentW=rect.minW-contLayoutRect.deltaW,rect.contentH=rect.minH-contLayoutRect.deltaH,rect.minW=Math.min(rect.minW,contLayoutRect.maxW),rect.minH=Math.min(rect.minH,contLayoutRect.maxH),rect.minW=Math.max(rect.minW,contLayoutRect.startMinWidth),rect.minH=Math.max(rect.minH,contLayoutRect.startMinHeight),!contLayoutRect.autoResize||rect.minW==contLayoutRect.minW&&rect.minH==contLayoutRect.minH){contLayoutRect.autoResize&&(rect=container.layoutRect(rect),rect.contentW=rect.minW-contLayoutRect.deltaW,rect.contentH=rect.minH-contLayoutRect.deltaH);var flexV;flexV="start"==settings.packV?0:availableHeight>0?Math.floor(availableHeight/rows):0;var totalFlex=0,flexWidths=settings.flexWidths;if(flexWidths)for(x=0;xx;x++)colWidths[x]+=flexWidths?flexWidths[x]*ratio:ratio;for(posY=contPaddingBox.top,y=0;rows>y;y++){for(posX=contPaddingBox.left,height=rowHeights[y]+flexV,x=0;cols>x&&(idx=reverseRows?y*cols+cols-1-x:y*cols+x,ctrl=items[idx],ctrl);x++)ctrlSettings=ctrl.settings,ctrlLayoutRect=ctrl.layoutRect(),width=Math.max(colWidths[x],ctrlLayoutRect.startMinWidth),ctrlLayoutRect.x=posX,ctrlLayoutRect.y=posY,align=ctrlSettings.alignH||(alignH?alignH[x]||alignH[0]:null),"center"==align?ctrlLayoutRect.x=posX+width/2-ctrlLayoutRect.w/2:"right"==align?ctrlLayoutRect.x=posX+width-ctrlLayoutRect.w:"stretch"==align&&(ctrlLayoutRect.w=width),align=ctrlSettings.alignV||(alignV?alignV[x]||alignV[0]:null),"center"==align?ctrlLayoutRect.y=posY+height/2-ctrlLayoutRect.h/2:"bottom"==align?ctrlLayoutRect.y=posY+height-ctrlLayoutRect.h:"stretch"==align&&(ctrlLayoutRect.h=height),ctrl.layoutRect(ctrlLayoutRect),posX+=width+spacingH,ctrl.recalc&&ctrl.recalc();posY+=height+spacingV}}else if(rect.w=rect.minW,rect.h=rect.minH,container.layoutRect(rect),this.recalc(container),null===container._lastRect){var parentCtrl=container.parent();parentCtrl&&(parentCtrl._lastRect=null,parentCtrl.recalc())}}})}),define("tinymce/ui/Iframe",["tinymce/ui/Widget"],function(Widget){return Widget.extend({renderHtml:function(){var self=this;return self.addClass("iframe"),self.canFocus=!1,''},src:function(src){this.getEl().src=src},html:function(html,callback){var self=this,body=this.getEl().contentWindow.document.body;return body?(body.innerHTML=html,callback&&callback()):setTimeout(function(){self.html(html)},0),this}})}),define("tinymce/ui/Label",["tinymce/ui/Widget","tinymce/ui/DomUtils"],function(Widget,DomUtils){return Widget.extend({init:function(settings){var self=this;self._super(settings),self.addClass("widget"),self.addClass("label"),self.canFocus=!1,settings.multiline&&self.addClass("autoscroll"),settings.strong&&self.addClass("strong")},initLayoutRect:function(){var self=this,layoutRect=self._super();if(self.settings.multiline){var size=DomUtils.getSize(self.getEl());size.width>layoutRect.maxW&&(layoutRect.minW=layoutRect.maxW,self.addClass("multiline")),self.getEl().style.width=layoutRect.minW+"px",layoutRect.startMinH=layoutRect.h=layoutRect.minH=Math.min(layoutRect.maxH,DomUtils.getSize(self.getEl()).height)}return layoutRect},repaint:function(){var self=this;return self.settings.multiline||(self.getEl().style.lineHeight=self.layoutRect().h+"px"),self._super()},text:function(text){var self=this;return self._rendered&&text&&this.innerHtml(self.encode(text)),self._super(text)},renderHtml:function(){var self=this,forId=self.settings.forId;return'"}})}),define("tinymce/ui/Toolbar",["tinymce/ui/Container"],function(Container){return Container.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(settings){var self=this;self._super(settings),self.addClass("toolbar")},postRender:function(){var self=this;return self.items().addClass("toolbar-item"),self._super()}})}),define("tinymce/ui/MenuBar",["tinymce/ui/Toolbar"],function(Toolbar){return Toolbar.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),define("tinymce/ui/MenuButton",["tinymce/ui/Button","tinymce/ui/Factory","tinymce/ui/MenuBar"],function(Button,Factory,MenuBar){function isChildOf(node,parent){for(;node;){if(parent===node)return!0;node=node.parentNode}return!1}var MenuButton=Button.extend({init:function(settings){var self=this;self._renderOpen=!0,self._super(settings),self.addClass("menubtn"),settings.fixedWidth&&self.addClass("fixed-width"),self.aria("haspopup",!0),self.hasPopup=!0},showMenu:function(){var menu,self=this,settings=self.settings;return self.menu&&self.menu.visible()?self.hideMenu():(self.menu||(menu=settings.menu||[],menu.length?menu={type:"menu",items:menu}:menu.type=menu.type||"menu",self.menu=Factory.create(menu).parent(self).renderTo(),self.fire("createmenu"),self.menu.reflow(),self.menu.on("cancel",function(e){e.control.parent()===self.menu&&(e.stopPropagation(),self.focus(),self.hideMenu())}),self.menu.on("select",function(){self.focus()}),self.menu.on("show hide",function(e){e.control==self.menu&&self.activeMenu("show"==e.type),self.aria("expanded","show"==e.type)}).fire("show")),self.menu.show(),self.menu.layoutRect({w:self.layoutRect().w}),void self.menu.moveRel(self.getEl(),self.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var self=this;self.menu&&(self.menu.items().each(function(item){item.hideMenu&&item.hideMenu()}),self.menu.hide())},activeMenu:function(state){this.toggleClass("active",state)},renderHtml:function(){var image,self=this,id=self._id,prefix=self.classPrefix,icon=self.settings.icon;return image=self.settings.image,image?(icon="none","string"!=typeof image&&(image=window.getSelection?image[0]:image[1]),image=" style=\"background-image: url('"+image+"')\""):image="",icon=self.settings.icon?prefix+"ico "+prefix+"i-"+icon:"",self.aria("role",self.parent()instanceof MenuBar?"menuitem":"button"),'
    '},postRender:function(){var self=this;return self.on("click",function(e){e.control===self&&isChildOf(e.target,self.getEl())&&(self.showMenu(),e.aria&&self.menu.items()[0].focus())}),self.on("mouseenter",function(e){var hasVisibleSiblingMenu,overCtrl=e.control,parent=self.parent();overCtrl&&parent&&overCtrl instanceof MenuButton&&overCtrl.parent()==parent&&(parent.items().filter("MenuButton").each(function(ctrl){ctrl.hideMenu&&ctrl!=overCtrl&&(ctrl.menu&&ctrl.menu.visible()&&(hasVisibleSiblingMenu=!0),ctrl.hideMenu())}),hasVisibleSiblingMenu&&(overCtrl.focus(),overCtrl.showMenu()))}),self._super()},text:function(text){var i,children,self=this;if(self._rendered)for(children=self.getEl("open").getElementsByTagName("span"),i=0;i0&&(selectedText=values[0].text,self._value=values[0].value),settings.menu=values),settings.text=settings.text||selectedText||values[0].text,self._super(settings),self.addClass("listbox"),self.on("select",function(e){var ctrl=e.control;lastItemCtrl&&(e.lastControl=lastItemCtrl),settings.multiple?ctrl.active(!ctrl.active()):self.value(e.control.settings.value),lastItemCtrl=ctrl})},value:function(value){function activateByValue(menu,value){menu.items().each(function(ctrl){active=ctrl.value()===value,active&&(selectedText=selectedText||ctrl.text()),ctrl.active(active),ctrl.menu&&activateByValue(ctrl.menu,value)})}function setActiveValues(menuValues){for(var i=0;i'+("-"!==text?' ":"")+("-"!==text?''+text+"":"")+(shortcut?'
    '+shortcut+"
    ":"")+(settings.menu?'
    ':"")+"
    "},postRender:function(){var self=this,settings=self.settings,textStyle=settings.textStyle;if("function"==typeof textStyle&&(textStyle=textStyle.call(this)),textStyle){var textElm=self.getEl("text");textElm&&textElm.setAttribute("style",textStyle)}return self.on("mouseenter click",function(e){e.control===self&&(settings.menu||"click"!==e.type?(self.showMenu(),e.aria&&self.menu.focus(!0)):(self.fire("select"),self.parent().hideAll()))}),self._super(),self},active:function(state){return"undefined"!=typeof state&&this.aria("checked",state),this._super(state)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),define("tinymce/ui/Menu",["tinymce/ui/FloatPanel","tinymce/ui/MenuItem","tinymce/util/Tools"],function(FloatPanel,MenuItem,Tools){var Menu=FloatPanel.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(settings){var self=this;if(settings.autohide=!0,settings.constrainToViewport=!0,settings.itemDefaults)for(var items=settings.items,i=items.length;i--;)items[i]=Tools.extend({},settings.itemDefaults,items[i]);self._super(settings),self.addClass("menu")},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var self=this;self.hideAll(),self.fire("select")},hideAll:function(){var self=this;return this.find("menuitem").exec("hideMenu"),self._super()},preRender:function(){var self=this;return self.items().each(function(ctrl){var settings=ctrl.settings;return settings.icon||settings.selectable?(self._hasIcons=!0,!1):void 0}),self._super()}});return Menu}),define("tinymce/ui/Radio",["tinymce/ui/Checkbox"],function(Checkbox){return Checkbox.extend({Defaults:{classes:"radio",role:"radio"}})}),define("tinymce/ui/ResizeHandle",["tinymce/ui/Widget","tinymce/ui/DragHelper"],function(Widget,DragHelper){return Widget.extend({renderHtml:function(){var self=this,prefix=self.classPrefix;return self.addClass("resizehandle"),"both"==self.settings.direction&&self.addClass("resizehandle-both"),self.canFocus=!1,'
    '},postRender:function(){var self=this;self._super(),self.resizeDragHelper=new DragHelper(this._id,{start:function(){self.fire("ResizeStart")},drag:function(e){"both"!=self.settings.direction&&(e.deltaX=0),self.fire("Resize",e)},stop:function(){self.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),define("tinymce/ui/Spacer",["tinymce/ui/Widget"],function(Widget){return Widget.extend({renderHtml:function(){var self=this;return self.addClass("spacer"),self.canFocus=!1,'
    '}})}),define("tinymce/ui/SplitButton",["tinymce/ui/MenuButton","tinymce/ui/DomUtils"],function(MenuButton,DomUtils){return MenuButton.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var mainButtonElm,menuButtonElm,self=this,elm=self.getEl(),rect=self.layoutRect();return self._super(),mainButtonElm=elm.firstChild,menuButtonElm=elm.lastChild,DomUtils.css(mainButtonElm,{width:rect.w-DomUtils.getSize(menuButtonElm).width,height:rect.h-2}),DomUtils.css(menuButtonElm,{height:rect.h-2}),self},activeMenu:function(state){var self=this;DomUtils.toggleClass(self.getEl().lastChild,self.classPrefix+"active",state)},renderHtml:function(){var image,self=this,id=self._id,prefix=self.classPrefix,icon=self.settings.icon;return image=self.settings.image,image?(icon="none","string"!=typeof image&&(image=window.getSelection?image[0]:image[1]),image=" style=\"background-image: url('"+image+"')\""):image="",icon=self.settings.icon?prefix+"ico "+prefix+"i-"+icon:"",'
    '},postRender:function(){var self=this,onClickHandler=self.settings.onclick;return self.on("click",function(e){var node=e.target;if(e.control==this)for(;node;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==node.nodeName&&-1==node.className.indexOf("open"))return e.stopImmediatePropagation(),void onClickHandler.call(this,e);node=node.parentNode}}),delete self.settings.onclick,self._super()}})}),define("tinymce/ui/StackLayout",["tinymce/ui/FlowLayout"],function(FlowLayout){return FlowLayout.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),define("tinymce/ui/TabPanel",["tinymce/ui/Panel","tinymce/ui/DomUtils"],function(Panel,DomUtils){return Panel.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(idx){var activeTabElm;this.activeTabId&&(activeTabElm=this.getEl(this.activeTabId),DomUtils.removeClass(activeTabElm,this.classPrefix+"active"),activeTabElm.setAttribute("aria-selected","false")),this.activeTabId="t"+idx,activeTabElm=this.getEl("t"+idx),activeTabElm.setAttribute("aria-selected","true"),DomUtils.addClass(activeTabElm,this.classPrefix+"active"),this.items()[idx].show().fire("showtab"),this.reflow(),this.items().each(function(item,i){idx!=i&&item.hide()})},renderHtml:function(){var self=this,layout=self._layout,tabsHtml="",prefix=self.classPrefix;return self.preRender(),layout.preRender(self),self.items().each(function(ctrl,i){var id=self._id+"-t"+i;ctrl.aria("role","tabpanel"),ctrl.aria("labelledby",id),tabsHtml+='"}),'
    '+tabsHtml+'
    '+layout.renderHtml(self)+"
    "},postRender:function(){var self=this;self._super(),self.settings.activeTab=self.settings.activeTab||0,self.activateTab(self.settings.activeTab),this.on("click",function(e){var targetParent=e.target.parentNode;if(e.target.parentNode.id==self._id+"-head")for(var i=targetParent.childNodes.length;i--;)targetParent.childNodes[i]==e.target&&self.activateTab(i)})},initLayoutRect:function(){var rect,minW,minH,self=this;minW=DomUtils.getSize(self.getEl("head")).width,minW=0>minW?0:minW,minH=0,self.items().each(function(item){minW=Math.max(minW,item.layoutRect().minW),minH=Math.max(minH,item.layoutRect().minH)}),self.items().each(function(ctrl){ctrl.settings.x=0,ctrl.settings.y=0,ctrl.settings.w=minW,ctrl.settings.h=minH,ctrl.layoutRect({x:0,y:0,w:minW,h:minH})});var headH=DomUtils.getSize(self.getEl("head")).height;return self.settings.minWidth=minW,self.settings.minHeight=minH+headH,rect=self._super(),rect.deltaH+=headH,rect.innerH=rect.h-rect.deltaH,rect}})}),define("tinymce/ui/TextBox",["tinymce/ui/Widget","tinymce/ui/DomUtils"],function(Widget,DomUtils){return Widget.extend({init:function(settings){var self=this;self._super(settings),self._value=settings.value||"",self.addClass("textbox"),settings.multiline?self.addClass("multiline"):self.on("keydown",function(e){13==e.keyCode&&self.parents().reverse().each(function(ctrl){return e.preventDefault(),ctrl.hasEventListeners("submit")&&ctrl.toJSON?(ctrl.fire("submit",{data:ctrl.toJSON()}),!1):void 0})})},disabled:function(state){var self=this;return self._rendered&&"undefined"!=typeof state&&(self.getEl().disabled=state),self._super(state)},value:function(value){var self=this;return"undefined"!=typeof value?(self._value=value,self._rendered&&(self.getEl().value=value),self):self._rendered?self.getEl().value:self._value},repaint:function(){var style,rect,borderBox,lastRepaintRect,self=this,borderW=0,borderH=0;style=self.getEl().style,rect=self._layoutRect,lastRepaintRect=self._lastRepaintRect||{};var doc=document;return!self.settings.multiline&&doc.all&&(!doc.documentMode||doc.documentMode<=8)&&(style.lineHeight=rect.h-borderH+"px"),borderBox=self._borderBox,borderW=borderBox.left+borderBox.right+8,borderH=borderBox.top+borderBox.bottom+(self.settings.multiline?8:0),rect.x!==lastRepaintRect.x&&(style.left=rect.x+"px",lastRepaintRect.x=rect.x),rect.y!==lastRepaintRect.y&&(style.top=rect.y+"px",lastRepaintRect.y=rect.y),rect.w!==lastRepaintRect.w&&(style.width=rect.w-borderW+"px",lastRepaintRect.w=rect.w),rect.h!==lastRepaintRect.h&&(style.height=rect.h-borderH+"px",lastRepaintRect.h=rect.h),self._lastRepaintRect=lastRepaintRect,self.fire("repaint",{},!1),self},renderHtml:function(){var self=this,id=self._id,settings=self.settings,value=self.encode(self._value,!1),extraAttrs="";return"spellcheck"in settings&&(extraAttrs+=' spellcheck="'+settings.spellcheck+'"'),settings.maxLength&&(extraAttrs+=' maxlength="'+settings.maxLength+'"'),settings.size&&(extraAttrs+=' size="'+settings.size+'"'),settings.subtype&&(extraAttrs+=' type="'+settings.subtype+'"'),self.disabled()&&(extraAttrs+=' disabled="disabled"'),settings.multiline?'":'"; -},postRender:function(){var self=this;return DomUtils.on(self.getEl(),"change",function(e){self.fire("change",e)}),self._super()},remove:function(){DomUtils.off(this.getEl()),this._super()}})}),define("tinymce/ui/Throbber",["tinymce/ui/DomUtils","tinymce/ui/Control"],function(DomUtils,Control){return function(elm,inline){var state,self=this,classPrefix=Control.classPrefix;self.show=function(time){return self.hide(),state=!0,window.setTimeout(function(){state&&elm.appendChild(DomUtils.createFragment('
    '))},time||0),self},self.hide=function(){var child=elm.lastChild;return child&&-1!=child.className.indexOf("throbber")&&child.parentNode.removeChild(child),state=!1,self}}}),expose(["tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/util/Tools","tinymce/Env","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/dom/Range","tinymce/html/Entities","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/dom/TridentSelection","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/BookmarkManager","tinymce/dom/Selection","tinymce/dom/ElementUtils","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/util/EventDispatcher","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/DomUtils","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/util/Quirks","tinymce/util/Observable","tinymce/EditorObservable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/LegacyInput","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/ComboBox","tinymce/ui/ColorBox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/util/Color","tinymce/ui/ColorPicker","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/ListBox","tinymce/ui/MenuItem","tinymce/ui/Menu","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox","tinymce/ui/Throbber"])}(this),function(){return this.tinyMCE.DOM.events.domLoaded=!0,this.tinyMCE}.apply(this,arguments)||window.tinyMCE}.apply(root,arguments)})}(this),define("mockup-patterns-autotoc",["jquery","mockup-patterns-base"],function($,Base){"use strict";var AutoTOC=Base.extend({name:"autotoc",defaults:{section:"section",levels:"h1,h2,h3",IDPrefix:"autotoc-item-",classTOCName:"autotoc-nav",classSectionName:"autotoc-section",classLevelPrefixName:"autotoc-level-",classActiveName:"active",scrollDuration:"slow",scrollEasing:"swing"},init:function(){var self=this;self.$toc=$("
    ';var width=25;for(y=0;10>y;y++){for(gridHtml+="",x=0;width>x;x++){var chr=charmap[y*width+x];gridHtml+='"}gridHtml+=""}gridHtml+="";var charMapPanel={type:"container",html:gridHtml,onclick:function(e){var target=e.target;"TD"==target.tagName&&(target=target.firstChild),"DIV"==target.tagName&&(editor.execCommand("mceInsertContent",!1,target.firstChild.data),e.ctrlKey||win.close())},onmouseover:function(e){var td=getParentTd(e.target);td&&win.find("#preview").text(td.firstChild.firstChild.data)}};win=editor.windowManager.open({title:"Special character",spacing:10,padding:10,items:[charMapPanel,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){win.close()}}]})}var charmap=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];editor.addButton("charmap",{icon:"charmap",tooltip:"Special character",onclick:showDialog}),editor.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:showDialog,context:"insert"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-code",["tinymce"],function(){return function(){tinymce.PluginManager.add("code",function(editor){function showDialog(){var win=editor.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:editor.getParam("code_dialog_width",600),minHeight:editor.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(e){editor.focus(),editor.undoManager.transact(function(){editor.setContent(e.data.code)}),editor.selection.setCursorLocation(),editor.nodeChanged()}});win.find("#code").value(editor.getContent({source_view:!0}))}editor.addCommand("mceCodeEditor",showDialog),editor.addButton("code",{icon:"code",tooltip:"Source code",onclick:showDialog}),editor.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:showDialog})})}.apply(root,arguments)})}(this),function(root){define("tinymce-colorpicker",["tinymce"],function(){return function(){tinymce.PluginManager.add("colorpicker",function(editor){function colorPickerCallback(callback,value){function setColor(value){var color=new tinymce.util.Color(value),rgb=color.toRgb();win.fromJSON({r:rgb.r,g:rgb.g,b:rgb.b,hex:color.toHex().substr(1)}),showPreview(color.toHex())}function showPreview(hexColor){win.find("#preview")[0].getEl().style.background=hexColor}var win=editor.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:value,onchange:function(){var rgb=this.rgb();win&&(win.find("#r").value(rgb.r),win.find("#g").value(rgb.g),win.find("#b").value(rgb.b),win.find("#hex").value(this.value().substr(1)),showPreview(this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var name,value,colorPickerCtrl=win.find("colorpicker")[0];return name=this.name(),value=this.value(),"hex"==name?(value="#"+value,setColor(value),void colorPickerCtrl.value(value)):(value={r:win.find("#r").value(),g:win.find("#g").value(),b:win.find("#b").value()},colorPickerCtrl.value(value),void setColor(value))}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){callback("#"+this.toJSON().hex)}});setColor(value)}editor.settings.color_picker_callback||(editor.settings.color_picker_callback=colorPickerCallback)})}.apply(root,arguments)})}(this),function(root){define("tinymce-contextmenu",["tinymce"],function(){return function(){tinymce.PluginManager.add("contextmenu",function(editor){var menu,contextmenuNeverUseNative=editor.settings.contextmenu_never_use_native;editor.on("contextmenu",function(e){var contextmenu,doc=editor.getDoc();if(!e.ctrlKey||contextmenuNeverUseNative){if(e.preventDefault(),tinymce.Env.mac&&tinymce.Env.webkit&&2==e.button&&doc.caretRangeFromPoint&&editor.selection.setRng(doc.caretRangeFromPoint(e.x,e.y)),contextmenu=editor.settings.contextmenu||"link image inserttable | cell row column deletetable",menu)menu.show();else{var items=[];tinymce.each(contextmenu.split(/[ ,]/),function(name){var item=editor.menuItems[name];"|"==name&&(item={text:name}),item&&(item.shortcut="",items.push(item))});for(var i=0;i'}),emoticonsHtml+=""}),emoticonsHtml+=""}var emoticons=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];editor.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:getHtml,onclick:function(e){var linkElm=editor.dom.getParent(e.target,"a");linkElm&&(editor.insertContent(''+linkElm.getAttribute('),this.hide())}},tooltip:"Emoticons"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-fullpage",["tinymce"],function(){return function(){tinymce.PluginManager.add("fullpage",function(editor){function showDialog(){var data=htmlToData();editor.windowManager.open({title:"Document properties",data:data,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){dataToHtml(tinymce.extend(data,e.data))}})}function htmlToData(){function getAttr(elm,name){var value=elm.attr(name);return value||""}var elm,matches,headerFragment=parseHeader(),data={};return data.fontface=editor.getParam("fullpage_default_fontface",""),data.fontsize=editor.getParam("fullpage_default_fontsize",""),elm=headerFragment.firstChild,7==elm.type&&(data.xml_pi=!0,matches=/encoding="([^"]+)"/.exec(elm.value),matches&&(data.docencoding=matches[1])),elm=headerFragment.getAll("#doctype")[0],elm&&(data.doctype=""),elm=headerFragment.getAll("title")[0],elm&&elm.firstChild&&(data.title=elm.firstChild.value),each(headerFragment.getAll("meta"),function(meta){var matches,name=meta.attr("name"),httpEquiv=meta.attr("http-equiv");name?data[name.toLowerCase()]=meta.attr("content"):"Content-Type"==httpEquiv&&(matches=/charset\s*=\s*(.*)\s*/gi.exec(meta.attr("content")),matches&&(data.docencoding=matches[1]))}),elm=headerFragment.getAll("html")[0],elm&&(data.langcode=getAttr(elm,"lang")||getAttr(elm,"xml:lang")),data.stylesheets=[],tinymce.each(headerFragment.getAll("link"),function(link){"stylesheet"==link.attr("rel")&&data.stylesheets.push(link.attr("href"))}),elm=headerFragment.getAll("body")[0],elm&&(data.langdir=getAttr(elm,"dir"),data.style=getAttr(elm,"style"),data.visited_color=getAttr(elm,"vlink"),data.link_color=getAttr(elm,"link"),data.active_color=getAttr(elm,"alink")),data}function dataToHtml(data){function setAttr(elm,name,value){elm.attr(name,value?value:void 0)}function addHeadNode(node){headElement.firstChild?headElement.insert(node,headElement.firstChild):headElement.append(node)}var headerFragment,headElement,html,elm,value,dom=editor.dom;headerFragment=parseHeader(),headElement=headerFragment.getAll("head")[0],headElement||(elm=headerFragment.getAll("html")[0],headElement=new Node("head",1),elm.firstChild?elm.insert(headElement,elm.firstChild,!0):elm.append(headElement)),elm=headerFragment.firstChild,data.xml_pi?(value='version="1.0"',data.docencoding&&(value+=' encoding="'+data.docencoding+'"'),7!=elm.type&&(elm=new Node("xml",7),headerFragment.insert(elm,headerFragment.firstChild,!0)),elm.value=value):elm&&7==elm.type&&elm.remove(),elm=headerFragment.getAll("#doctype")[0],data.doctype?(elm||(elm=new Node("#doctype",10),data.xml_pi?headerFragment.insert(elm,headerFragment.firstChild):addHeadNode(elm)),elm.value=data.doctype.substring(9,data.doctype.length-1)):elm&&elm.remove(),elm=null,each(headerFragment.getAll("meta"),function(meta){"Content-Type"==meta.attr("http-equiv")&&(elm=meta)}),data.docencoding?(elm||(elm=new Node("meta",1),elm.attr("http-equiv","Content-Type"),elm.shortEnded=!0,addHeadNode(elm)),elm.attr("content","text/html; charset="+data.docencoding)):elm&&elm.remove(),elm=headerFragment.getAll("title")[0],data.title?(elm?elm.empty():(elm=new Node("title",1),addHeadNode(elm)),elm.append(new Node("#text",3)).value=data.title):elm&&elm.remove(),each("keywords,description,author,copyright,robots".split(","),function(name){var i,meta,nodes=headerFragment.getAll("meta"),value=data[name];for(i=0;i"))}function parseHeader(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(head)}function setContent(evt){function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase()})}var startPos,endPos,headerFragment,elm,content=evt.content,styles="",dom=editor.dom;if(!evt.selection&&!("raw"==evt.format&&head||evt.source_view&&editor.getParam("fullpage_hide_in_source_view"))){0!==content.length||evt.source_view||(content=tinymce.trim(head)+"\n"+tinymce.trim(content)+"\n"+tinymce.trim(foot)),content=content.replace(/<(\/?)BODY/gi,"<$1body"),startPos=content.indexOf("",startPos),head=low(content.substring(0,startPos+1)),endPos=content.indexOf("\n"),headerFragment=parseHeader(),each(headerFragment.getAll("style"),function(node){node.firstChild&&(styles+=node.firstChild.value)}),elm=headerFragment.getAll("body")[0],elm&&dom.setAttribs(editor.getBody(),{style:elm.attr("style")||"",dir:elm.attr("dir")||"",vLink:elm.attr("vlink")||"",link:elm.attr("link")||"",aLink:elm.attr("alink")||""}),dom.remove("fullpage_styles");var headElm=editor.getDoc().getElementsByTagName("head")[0];styles&&(dom.add(headElm,"style",{id:"fullpage_styles"},styles),elm=dom.get("fullpage_styles"),elm.styleSheet&&(elm.styleSheet.cssText=styles));var currentStyleSheetsMap={};tinymce.each(headElm.getElementsByTagName("link"),function(stylesheet){"stylesheet"==stylesheet.rel&&stylesheet.getAttribute("data-mce-fullpage")&&(currentStyleSheetsMap[stylesheet.href]=stylesheet)}),tinymce.each(headerFragment.getAll("link"),function(stylesheet){var href=stylesheet.attr("href");currentStyleSheetsMap[href]||"stylesheet"!=stylesheet.attr("rel")||dom.add(headElm,"link",{rel:"stylesheet",text:"text/css",href:href,"data-mce-fullpage":"1"}),delete currentStyleSheetsMap[href]}),tinymce.each(currentStyleSheetsMap,function(stylesheet){stylesheet.parentNode.removeChild(stylesheet)})}}function getDefaultHeader(){var value,header="",styles="";return editor.getParam("fullpage_default_xml_pi")&&(header+='\n'),header+=editor.getParam("fullpage_default_doctype",""),header+="\n\n\n",(value=editor.getParam("fullpage_default_title"))&&(header+=""+value+"\n"),(value=editor.getParam("fullpage_default_encoding"))&&(header+='\n'),(value=editor.getParam("fullpage_default_font_family"))&&(styles+="font-family: "+value+";"),(value=editor.getParam("fullpage_default_font_size"))&&(styles+="font-size: "+value+";"),(value=editor.getParam("fullpage_default_text_color"))&&(styles+="color: "+value+";"),header+="\n\n"}function getContent(evt){evt.selection||evt.source_view&&editor.getParam("fullpage_hide_in_source_view")||(evt.content=tinymce.trim(head)+"\n"+tinymce.trim(evt.content)+"\n"+tinymce.trim(foot))}var head,foot,each=tinymce.each,Node=tinymce.html.Node;editor.addCommand("mceFullPageProperties",showDialog),editor.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),editor.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),editor.on("BeforeSetContent",setContent),editor.on("GetContent",getContent)})}.apply(root,arguments)})}(this),function(root){define("tinymce-fullscreen",["tinymce"],function(){return function(){tinymce.PluginManager.add("fullscreen",function(editor){function getWindowSize(){var w,h,win=window,doc=document,body=doc.body;return body.offsetWidth&&(w=body.offsetWidth,h=body.offsetHeight),win.innerWidth&&win.innerHeight&&(w=win.innerWidth,h=win.innerHeight),{w:w,h:h}}function toggleFullscreen(){function resize(){DOM.setStyle(iframe,"height",getWindowSize().h-(editorContainer.clientHeight-iframe.clientHeight))}var editorContainerStyle,editorContainer,iframe,iframeStyle,body=document.body,documentElement=document.documentElement;fullscreenState=!fullscreenState,editorContainer=editor.getContainer(),editorContainerStyle=editorContainer.style,iframe=editor.getContentAreaContainer().firstChild,iframeStyle=iframe.style,fullscreenState?(iframeWidth=iframeStyle.width,iframeHeight=iframeStyle.height,iframeStyle.width=iframeStyle.height="100%",containerWidth=editorContainerStyle.width,containerHeight=editorContainerStyle.height,editorContainerStyle.width=editorContainerStyle.height="",DOM.addClass(body,"mce-fullscreen"),DOM.addClass(documentElement,"mce-fullscreen"),DOM.addClass(editorContainer,"mce-fullscreen"),DOM.bind(window,"resize",resize),resize(),resizeHandler=resize):(iframeStyle.width=iframeWidth,iframeStyle.height=iframeHeight,containerWidth&&(editorContainerStyle.width=containerWidth),containerHeight&&(editorContainerStyle.height=containerHeight),DOM.removeClass(body,"mce-fullscreen"),DOM.removeClass(documentElement,"mce-fullscreen"),DOM.removeClass(editorContainer,"mce-fullscreen"),DOM.unbind(window,"resize",resizeHandler)),editor.fire("FullscreenStateChanged",{state:fullscreenState})}var iframeWidth,iframeHeight,resizeHandler,containerWidth,containerHeight,fullscreenState=!1,DOM=tinymce.DOM;return editor.settings.inline?void 0:(editor.on("init",function(){ -editor.addShortcut("Ctrl+Alt+F","",toggleFullscreen)}),editor.on("remove",function(){resizeHandler&&DOM.unbind(window,"resize",resizeHandler)}),editor.addCommand("mceFullScreen",toggleFullscreen),editor.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:toggleFullscreen,onPostRender:function(){var self=this;editor.on("FullscreenStateChanged",function(e){self.active(e.state)})},context:"view"}),editor.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:toggleFullscreen,onPostRender:function(){var self=this;editor.on("FullscreenStateChanged",function(e){self.active(e.state)})}}),{isFullscreen:function(){return fullscreenState}})})}.apply(root,arguments)})}(this),function(root){define("tinymce-hr",["tinymce"],function(){return function(){tinymce.PluginManager.add("hr",function(editor){editor.addCommand("InsertHorizontalRule",function(){editor.execCommand("mceInsertContent",!1,"
    ")}),editor.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),editor.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-image",["tinymce"],function(){return function(){tinymce.PluginManager.add("image",function(editor){function getImageSize(url,callback){function done(width,height){img.parentNode&&img.parentNode.removeChild(img),callback({width:width,height:height})}var img=document.createElement("img");img.onload=function(){done(img.clientWidth,img.clientHeight)},img.onerror=function(){done()};var style=img.style;style.visibility="hidden",style.position="fixed",style.bottom=style.left=0,style.width=style.height="auto",document.body.appendChild(img),img.src=url}function buildListItems(inputList,itemCallback,startItems){function appendItems(values,output){return output=output||[],tinymce.each(values,function(item){var menuItem={text:item.text||item.title};item.menu?menuItem.menu=appendItems(item.menu):(menuItem.value=item.value,itemCallback(menuItem)),output.push(menuItem)}),output}return appendItems(inputList,startItems||[])}function createImageList(callback){return function(){var imageList=editor.settings.image_list;"string"==typeof imageList?tinymce.util.XHR.send({url:imageList,success:function(text){callback(tinymce.util.JSON.parse(text))}}):"function"==typeof imageList?imageList(callback):callback(imageList)}}function showDialog(imageList){function recalcSize(){var widthCtrl,heightCtrl,newWidth,newHeight;widthCtrl=win.find("#width")[0],heightCtrl=win.find("#height")[0],widthCtrl&&heightCtrl&&(newWidth=widthCtrl.value(),newHeight=heightCtrl.value(),win.find("#constrain")[0].checked()&&width&&height&&newWidth&&newHeight&&(width!=newWidth?(newHeight=Math.round(newWidth/width*newHeight),heightCtrl.value(newHeight)):(newWidth=Math.round(newHeight/height*newWidth),widthCtrl.value(newWidth))),width=newWidth,height=newHeight)}function onSubmitForm(){function waitLoad(imgElm){function selectImage(){imgElm.onload=imgElm.onerror=null,editor.selection&&(editor.selection.select(imgElm),editor.nodeChanged())}imgElm.onload=function(){data.width||data.height||!imageDimensions||dom.setAttribs(imgElm,{width:imgElm.clientWidth,height:imgElm.clientHeight}),selectImage()},imgElm.onerror=selectImage}updateStyle(),recalcSize(),data=tinymce.extend(data,win.toJSON()),data.alt||(data.alt=""),""===data.width&&(data.width=null),""===data.height&&(data.height=null),data.style||(data.style=null),data={src:data.src,alt:data.alt,width:data.width,height:data.height,style:data.style,"class":data["class"]},editor.undoManager.transact(function(){return data.src?(imgElm?dom.setAttribs(imgElm,data):(data.id="__mcenew",editor.focus(),editor.selection.setContent(dom.createHTML("img",data)),imgElm=dom.get("__mcenew"),dom.setAttrib(imgElm,"id",null)),void waitLoad(imgElm)):void(imgElm&&(dom.remove(imgElm),editor.focus(),editor.nodeChanged()))})}function removePixelSuffix(value){return value&&(value=value.replace(/px$/,"")),value}function srcChange(e){var meta=e.meta||{};imageListCtrl&&imageListCtrl.value(editor.convertURL(this.value(),"src")),tinymce.each(meta,function(value,key){win.find("#"+key).value(value)}),meta.width||meta.height||getImageSize(this.value(),function(data){data.width&&data.height&&imageDimensions&&(width=data.width,height=data.height,win.find("#width").value(width),win.find("#height").value(height))})}function updateStyle(){function addPixelSuffix(value){return value.length>0&&/^[0-9]+$/.test(value)&&(value+="px"),value}if(editor.settings.image_advtab){var data=win.toJSON(),css=dom.parseStyle(data.style);delete css.margin,css["margin-top"]=css["margin-bottom"]=addPixelSuffix(data.vspace),css["margin-left"]=css["margin-right"]=addPixelSuffix(data.hspace),css["border-width"]=addPixelSuffix(data.border),win.find("#style").value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))))}}var win,width,height,imageListCtrl,classListCtrl,data={},dom=editor.dom,imgElm=editor.selection.getNode(),imageDimensions=editor.settings.image_dimensions!==!1;width=dom.getAttrib(imgElm,"width"),height=dom.getAttrib(imgElm,"height"),"IMG"!=imgElm.nodeName||imgElm.getAttribute("data-mce-object")||imgElm.getAttribute("data-mce-placeholder")?imgElm=null:data={src:dom.getAttrib(imgElm,"src"),alt:dom.getAttrib(imgElm,"alt"),"class":dom.getAttrib(imgElm,"class"),width:width,height:height},imageList&&(imageListCtrl={type:"listbox",label:"Image list",values:buildListItems(imageList,function(item){item.value=editor.convertURL(item.value||item.url,"src")},[{text:"None",value:""}]),value:data.src&&editor.convertURL(data.src,"src"),onselect:function(e){var altCtrl=win.find("#alt");(!altCtrl.value()||e.lastControl&&altCtrl.value()==e.lastControl.text())&&altCtrl.value(e.control.text()),win.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){imageListCtrl=this}}),editor.settings.image_class_list&&(classListCtrl={name:"class",type:"listbox",label:"Class",values:buildListItems(editor.settings.image_class_list,function(item){item.value&&(item.textStyle=function(){return editor.formatter.getCssText({inline:"img",classes:[item.value]})})})});var generalFormItems=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:srcChange},imageListCtrl];editor.settings.image_description!==!1&&generalFormItems.push({name:"alt",type:"textbox",label:"Image description"}),imageDimensions&&generalFormItems.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:recalcSize,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:recalcSize,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),generalFormItems.push(classListCtrl),editor.settings.image_advtab?(imgElm&&(data.hspace=removePixelSuffix(imgElm.style.marginLeft||imgElm.style.marginRight),data.vspace=removePixelSuffix(imgElm.style.marginTop||imgElm.style.marginBottom),data.border=removePixelSuffix(imgElm.style.borderWidth),data.style=editor.dom.serializeStyle(editor.dom.parseStyle(editor.dom.getAttrib(imgElm,"style")))),win=editor.windowManager.open({title:"Insert/edit image",data:data,bodyType:"tabpanel",body:[{title:"General",type:"form",items:generalFormItems},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox"},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:updateStyle},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:onSubmitForm})):win=editor.windowManager.open({title:"Insert/edit image",data:data,body:generalFormItems,onSubmit:onSubmitForm})}editor.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:createImageList(showDialog),stateSelector:"img:not([data-mce-object],[data-mce-placeholder])"}),editor.addMenuItem("image",{icon:"image",text:"Insert image",onclick:createImageList(showDialog),context:"insert",prependToContext:!0}),editor.addCommand("mceImage",createImageList(showDialog))})}.apply(root,arguments)})}(this),function(root){define("tinymce-importcss",["tinymce"],function(){return function(){tinymce.PluginManager.add("importcss",function(editor){function compileFilter(filter){return"string"==typeof filter?function(value){return-1!==value.indexOf(filter)}:filter instanceof RegExp?function(value){return filter.test(value)}:filter}function getSelectors(doc,fileFilter){function append(styleSheet,imported){var rules,href=styleSheet.href;if(href&&fileFilter(href,imported)){each(styleSheet.imports,function(styleSheet){append(styleSheet,!0)});try{rules=styleSheet.cssRules||styleSheet.rules}catch(e){}each(rules,function(cssRule){cssRule.styleSheet?append(cssRule.styleSheet,!0):cssRule.selectorText&&each(cssRule.selectorText.split(","),function(selector){selectors.push(tinymce.trim(selector))})})}}var selectors=[],contentCSSUrls={};each(editor.contentCSS,function(url){contentCSSUrls[url]=!0}),fileFilter||(fileFilter=function(href,imported){return imported||contentCSSUrls[href]});try{each(doc.styleSheets,function(styleSheet){append(styleSheet)})}catch(e){}return selectors}function convertSelectorToFormat(selectorText){var format,selector=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(selectorText);if(selector){var elementName=selector[1],classes=selector[2].substr(1).split(".").join(" "),inlineSelectorElements=tinymce.makeMap("a,img");return selector[1]?(format={title:selectorText},editor.schema.getTextBlockElements()[elementName]?format.block=elementName:editor.schema.getBlockElements()[elementName]||inlineSelectorElements[elementName.toLowerCase()]?format.selector=elementName:format.inline=elementName):selector[2]&&(format={inline:"span",title:selectorText.substr(1),classes:classes}),editor.settings.importcss_merge_classes!==!1?format.classes=classes:format.attributes={"class":classes},format}}var self=this,each=tinymce.each;editor.on("renderFormatsMenu",function(e){var settings=editor.settings,selectors={},selectorConverter=settings.importcss_selector_converter||convertSelectorToFormat,selectorFilter=compileFilter(settings.importcss_selector_filter),ctrl=e.control;editor.settings.importcss_append||ctrl.items().remove();var groups=[];tinymce.each(settings.importcss_groups,function(group){group=tinymce.extend({},group),group.filter=compileFilter(group.filter),groups.push(group)}),each(getSelectors(e.doc||editor.getDoc(),compileFilter(settings.importcss_file_filter)),function(selector){if(-1===selector.indexOf(".mce-")&&!selectors[selector]&&(!selectorFilter||selectorFilter(selector))){var menu,format=selectorConverter.call(self,selector);if(format){var formatName=format.name||tinymce.DOM.uniqueId();if(groups)for(var i=0;i'+html+"";var timeElm=editor.dom.getParent(editor.selection.getStart(),"time");if(timeElm)return void editor.dom.setOuterHTML(timeElm,html)}editor.insertContent(html)}var lastFormat,defaultButtonTimeFormat,daysShort="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),daysLong="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),monthsShort="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),monthsLong="January February March April May June July August September October November December".split(" "),menuItems=[];editor.addCommand("mceInsertDate",function(){insertDateTime(editor.getParam("insertdatetime_dateformat",editor.translate("%Y-%m-%d")))}),editor.addCommand("mceInsertTime",function(){insertDateTime(editor.getParam("insertdatetime_timeformat",editor.translate("%H:%M:%S")))}),editor.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",onclick:function(){insertDateTime(lastFormat||defaultButtonTimeFormat)},menu:menuItems}),tinymce.each(editor.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(fmt){defaultButtonTimeFormat||(defaultButtonTimeFormat=fmt),menuItems.push({text:getDateTime(fmt),onclick:function(){lastFormat=fmt,insertDateTime(fmt)}})}),editor.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:menuItems,context:"insert"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-layer",["tinymce"],function(){return function(){tinymce.PluginManager.add("layer",function(editor){function getParentLayer(node){do if(node.className&&-1!=node.className.indexOf("mceItemLayer"))return node;while(node=node.parentNode)}function visualAid(e){var dom=editor.dom;tinymce.each(dom.select("div,p",e),function(e){/^(absolute|relative|fixed)$/i.test(e.style.position)&&(e.hasVisual?dom.addClass(e,"mceItemVisualAid"):dom.removeClass(e,"mceItemVisualAid"),dom.addClass(e,"mceItemLayer"))})}function move(d){var i,nl,z=[],le=getParentLayer(editor.selection.getNode()),ci=-1,fi=-1;for(nl=[],tinymce.walk(editor.getBody(),function(n){1==n.nodeType&&/^(absolute|relative|static)$/i.test(n.style.position)&&nl.push(n)},"childNodes"),i=0;ici&&nl[i]==le&&(ci=i);if(0>d){for(i=0;i-1?(nl[ci].style.zIndex=z[fi],nl[fi].style.zIndex=z[ci]):z[ci]>0&&(nl[ci].style.zIndex=z[ci]-1)}else{for(i=0;iz[ci]){fi=i;break}fi>-1?(nl[ci].style.zIndex=z[fi],nl[fi].style.zIndex=z[ci]):nl[ci].style.zIndex=z[ci]+1}editor.execCommand("mceRepaint")}function insertLayer(){var dom=editor.dom,p=dom.getPos(dom.getParent(editor.selection.getNode(),"*")),body=editor.getBody();editor.dom.add(body,"div",{style:{position:"absolute",left:p.x,top:p.y>20?p.y:20,width:100,height:100},"class":"mceItemVisualAid mceItemLayer"},editor.selection.getContent()||editor.getLang("layer.content")),tinymce.Env.ie&&dom.setHTML(body,body.innerHTML)}function toggleAbsolute(){var le=getParentLayer(editor.selection.getNode());le||(le=editor.dom.getParent(editor.selection.getNode(),"DIV,P,IMG")),le&&("absolute"==le.style.position.toLowerCase()?(editor.dom.setStyles(le,{position:"",left:"",top:"",width:"",height:""}),editor.dom.removeClass(le,"mceItemVisualAid"),editor.dom.removeClass(le,"mceItemLayer")):(le.style.left||(le.style.left="20px"),le.style.top||(le.style.top="20px"),le.style.width||(le.style.width=le.width?le.width+"px":"100px"),le.style.height||(le.style.height=le.height?le.height+"px":"100px"),le.style.position="absolute",editor.dom.setAttrib(le,"data-mce-style",""),editor.addVisual(editor.getBody())),editor.execCommand("mceRepaint"),editor.nodeChanged())}editor.addCommand("mceInsertLayer",insertLayer),editor.addCommand("mceMoveForward",function(){move(1)}),editor.addCommand("mceMoveBackward",function(){move(-1)}),editor.addCommand("mceMakeAbsolute",function(){toggleAbsolute()}),editor.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"}),editor.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"}),editor.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"}),editor.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"}),editor.on("init",function(){tinymce.Env.ie&&editor.getDoc().execCommand("2D-Position",!1,!0)}),editor.on("mouseup",function(e){var layer=getParentLayer(e.target);layer&&editor.dom.setAttrib(layer,"data-mce-style","")}),editor.on("mousedown",function(e){var parent,node=e.target,doc=editor.getDoc();tinymce.Env.gecko&&(getParentLayer(node)?"on"!==doc.designMode&&(doc.designMode="on",node=doc.body,parent=node.parentNode,parent.removeChild(node),parent.appendChild(node)):"on"==doc.designMode&&(doc.designMode="off"))}),editor.on("NodeChange",visualAid)})}.apply(root,arguments)})}(this),function(root){define("tinymce-legacyoutput",["tinymce"],function(){return function(){!function(tinymce){tinymce.on("AddEditor",function(e){e.editor.settings.inline_styles=!1}),tinymce.PluginManager.add("legacyoutput",function(editor,url,$){editor.on("init",function(){var alignElements="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",fontSizes=tinymce.explode(editor.settings.font_size_style_values),schema=editor.schema;editor.formatter.register({alignleft:{selector:alignElements,attributes:{align:"left"}},aligncenter:{selector:alignElements,attributes:{align:"center"}},alignright:{selector:alignElements,attributes:{align:"right"}},alignjustify:{selector:alignElements,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(vars){return tinymce.inArray(fontSizes,vars.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),tinymce.each("b,i,u,strike".split(","),function(name){schema.addValidElements(name+"[*]")}),schema.getElementRule("font")||schema.addValidElements("font[face|size|color|style]"),tinymce.each(alignElements.split(","),function(name){var rule=schema.getElementRule(name);rule&&(rule.attributes.align||(rule.attributes.align={},rule.attributesOrder.push("align")))})}),editor.addButton("fontsizeselect",function(){var items=[],defaultFontsizeFormats="8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7",fontsize_formats=editor.settings.fontsize_formats||defaultFontsizeFormats;return editor.$.each(fontsize_formats.split(" "),function(i,item){var text=item,value=item,values=item.split("=");values.length>1&&(text=values[0],value=values[1]),items.push({text:text,value:value})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:items,fixedWidth:!0,onPostRender:function(){var self=this;editor.on("NodeChange",function(){var fontElm;fontElm=editor.dom.getParent(editor.selection.getNode(),"font"),fontElm?self.value(fontElm.size):self.value("")})},onclick:function(e){e.control.settings.value&&editor.execCommand("FontSize",!1,e.control.settings.value)}}}),editor.addButton("fontselect",function(){function createFormats(formats){formats=formats.replace(/;$/,"").split(";");for(var i=formats.length;i--;)formats[i]=formats[i].split("=");return formats}var defaultFontsFormats="Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",items=[],fonts=createFormats(editor.settings.font_formats||defaultFontsFormats);return $.each(fonts,function(i,font){items.push({text:{raw:font[0]},value:font[1],textStyle:-1==font[1].indexOf("dings")?"font-family:"+font[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:items,fixedWidth:!0,onPostRender:function(){var self=this;editor.on("NodeChange",function(){var fontElm;fontElm=editor.dom.getParent(editor.selection.getNode(),"font"),fontElm?self.value(fontElm.face):self.value("")})},onselect:function(e){e.control.settings.value&&editor.execCommand("FontName",!1,e.control.settings.value)}}})})}(tinymce)}.apply(root,arguments)})}(this),function(root){define("tinymce-link",["tinymce"],function(){return function(){tinymce.PluginManager.add("link",function(editor){function createLinkList(callback){return function(){var linkList=editor.settings.link_list;"string"==typeof linkList?tinymce.util.XHR.send({url:linkList,success:function(text){callback(tinymce.util.JSON.parse(text))}}):"function"==typeof linkList?linkList(callback):callback(linkList)}}function buildListItems(inputList,itemCallback,startItems){function appendItems(values,output){return output=output||[],tinymce.each(values,function(item){var menuItem={text:item.text||item.title};item.menu?menuItem.menu=appendItems(item.menu):(menuItem.value=item.value,itemCallback&&itemCallback(menuItem)),output.push(menuItem)}),output}return appendItems(inputList,startItems||[])}function showDialog(linkList){function linkListChangeHandler(e){var textCtrl=win.find("#text");(!textCtrl.value()||e.lastControl&&textCtrl.value()==e.lastControl.text())&&textCtrl.value(e.control.text()),win.find("#href").value(e.control.value())}function buildAnchorListControl(url){var anchorList=[];return tinymce.each(editor.dom.select("a:not([href])"),function(anchor){var id=anchor.name||anchor.id;id&&anchorList.push({text:id,value:"#"+id,selected:-1!=url.indexOf("#"+id)})}),anchorList.length?(anchorList.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:anchorList,onselect:linkListChangeHandler}):void 0}function updateText(){!initialText&&0===data.text.length&&onlyText&&this.parent().parent().find("#text")[0].value(this.value())}function urlChange(e){var meta=e.meta||{};linkListCtrl&&linkListCtrl.value(editor.convertURL(this.value(),"href")),tinymce.each(e.meta,function(value,key){win.find("#"+key).value(value)}),meta.text||updateText.call(this)}function isOnlyTextSelected(anchorElm){var html=selection.getContent();if(/]+>[^<]+<\/a>$/.test(html)||-1==html.indexOf("href=")))return!1;if(anchorElm){var i,nodes=anchorElm.childNodes;if(0===nodes.length)return!1;for(i=nodes.length-1;i>=0;i--)if(3!=nodes[i].nodeType)return!1}return!0}var selectedElm,anchorElm,initialText,win,onlyText,textListCtrl,linkListCtrl,relListCtrl,targetListCtrl,classListCtrl,linkTitleCtrl,value,data={},selection=editor.selection,dom=editor.dom;selectedElm=selection.getNode(),anchorElm=dom.getParent(selectedElm,"a[href]"),onlyText=isOnlyTextSelected(),data.text=initialText=anchorElm?anchorElm.innerText||anchorElm.textContent:selection.getContent({format:"text"}),data.href=anchorElm?dom.getAttrib(anchorElm,"href"):"",(value=dom.getAttrib(anchorElm,"target"))?data.target=value:editor.settings.default_link_target&&(data.target=editor.settings.default_link_target),(value=dom.getAttrib(anchorElm,"rel"))&&(data.rel=value),(value=dom.getAttrib(anchorElm,"class"))&&(data["class"]=value),(value=dom.getAttrib(anchorElm,"title"))&&(data.title=value),onlyText&&(textListCtrl={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){data.text=this.value()}}),linkList&&(linkListCtrl={type:"listbox",label:"Link list",values:buildListItems(linkList,function(item){item.value=editor.convertURL(item.value||item.url,"href")},[{text:"None",value:""}]),onselect:linkListChangeHandler,value:editor.convertURL(data.href,"href"),onPostRender:function(){linkListCtrl=this}}),editor.settings.target_list!==!1&&(editor.settings.target_list||(editor.settings.target_list=[{text:"None",value:""},{text:"New window",value:"_blank"}]),targetListCtrl={name:"target",type:"listbox",label:"Target",values:buildListItems(editor.settings.target_list)}),editor.settings.rel_list&&(relListCtrl={name:"rel",type:"listbox",label:"Rel",values:buildListItems(editor.settings.rel_list)}),editor.settings.link_class_list&&(classListCtrl={name:"class",type:"listbox",label:"Class",values:buildListItems(editor.settings.link_class_list,function(item){item.value&&(item.textStyle=function(){return editor.formatter.getCssText({inline:"a",classes:[item.value]})})})}),editor.settings.link_title!==!1&&(linkTitleCtrl={name:"title",type:"textbox",label:"Title",value:data.title}),win=editor.windowManager.open({title:"Insert link",data:data,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:urlChange,onkeyup:updateText},textListCtrl,linkTitleCtrl,buildAnchorListControl(data.href),linkListCtrl,relListCtrl,targetListCtrl,classListCtrl],onSubmit:function(e){function delayedConfirm(message,callback){var rng=editor.selection.getRng();window.setTimeout(function(){editor.windowManager.confirm(message,function(state){editor.selection.setRng(rng),callback(state)})},0)}function insertLink(){var linkAttrs={href:href,target:data.target?data.target:null,rel:data.rel?data.rel:null,"class":data["class"]?data["class"]:null,title:data.title?data.title:null};anchorElm?(editor.focus(),onlyText&&data.text!=initialText&&("innerText"in anchorElm?anchorElm.innerText=data.text:anchorElm.textContent=data.text),dom.setAttribs(anchorElm,linkAttrs),selection.select(anchorElm),editor.undoManager.add()):onlyText?editor.insertContent(dom.createHTML("a",linkAttrs,dom.encode(data.text))):editor.execCommand("mceInsertLink",!1,linkAttrs)}var href;return data=tinymce.extend(data,e.data),(href=data.href)?href.indexOf("@")>0&&-1==href.indexOf("//")&&-1==href.indexOf("mailto:")?void delayedConfirm("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(state){state&&(href="mailto:"+href),insertLink()}):/^\s*www\./i.test(href)?void delayedConfirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(state){state&&(href="http://"+href),insertLink()}):void insertLink():void editor.execCommand("unlink")}})}editor.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:createLinkList(showDialog),stateSelector:"a[href]"}),editor.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),editor.addShortcut("Ctrl+K","",createLinkList(showDialog)),editor.addCommand("mceLink",createLinkList(showDialog)),this.showDialog=showDialog,editor.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:createLinkList(showDialog),stateSelector:"a[href]",context:"insert",prependToContext:!0})})}.apply(root,arguments)})}(this),function(root){define("tinymce-lists",["tinymce"],function(){return function(){tinymce.PluginManager.add("lists",function(editor){function isListNode(node){return node&&/^(OL|UL|DL)$/.test(node.nodeName)}function isFirstChild(node){return node.parentNode.firstChild==node}function isLastChild(node){return node.parentNode.lastChild==node}function isTextBlock(node){return node&&!!editor.schema.getTextBlockElements()[node.nodeName]}var self=this;editor.on("init",function(){function createBookmark(rng){function setupEndPoint(start){var offsetNode,container,offset;container=rng[start?"startContainer":"endContainer"],offset=rng[start?"startOffset":"endOffset"],1==container.nodeType&&(offsetNode=dom.create("span",{"data-mce-type":"bookmark"}),container.hasChildNodes()?(offset=Math.min(offset,container.childNodes.length-1),start?container.insertBefore(offsetNode,container.childNodes[offset]):dom.insertAfter(offsetNode,container.childNodes[offset])):container.appendChild(offsetNode),container=offsetNode,offset=0),bookmark[start?"startContainer":"endContainer"]=container,bookmark[start?"startOffset":"endOffset"]=offset}var bookmark={};return setupEndPoint(!0),rng.collapsed||setupEndPoint(),bookmark}function moveToBookmark(bookmark){function restoreEndPoint(start){function nodeIndex(container){for(var node=container.parentNode.firstChild,idx=0;node;){if(node==container)return idx;(1!=node.nodeType||"bookmark"!=node.getAttribute("data-mce-type"))&&idx++,node=node.nextSibling}return-1}var container,offset,node;container=node=bookmark[start?"startContainer":"endContainer"],offset=bookmark[start?"startOffset":"endOffset"],container&&(1==container.nodeType&&(offset=nodeIndex(container),container=container.parentNode,dom.remove(node)),bookmark[start?"startContainer":"endContainer"]=container,bookmark[start?"startOffset":"endOffset"]=offset)}restoreEndPoint(!0),restoreEndPoint();var rng=dom.createRng();rng.setStart(bookmark.startContainer,bookmark.startOffset),bookmark.endContainer&&rng.setEnd(bookmark.endContainer,bookmark.endOffset),selection.setRng(rng)}function createNewTextBlock(contentNode,blockName){var node,textBlock,hasContentNode,fragment=dom.createFragment(),blockElements=editor.schema.getBlockElements();if(editor.settings.forced_root_block&&(blockName=blockName||editor.settings.forced_root_block),blockName&&(textBlock=dom.create(blockName),textBlock.tagName===editor.settings.forced_root_block&&dom.setAttribs(textBlock,editor.settings.forced_root_block_attrs),fragment.appendChild(textBlock)),contentNode)for(;node=contentNode.firstChild;){var nodeName=node.nodeName;hasContentNode||"SPAN"==nodeName&&"bookmark"==node.getAttribute("data-mce-type")||(hasContentNode=!0),blockElements[nodeName]?(fragment.appendChild(node),textBlock=null):blockName?(textBlock||(textBlock=dom.create(blockName),fragment.appendChild(textBlock)),textBlock.appendChild(node)):fragment.appendChild(node)}return editor.settings.forced_root_block?hasContentNode||tinymce.Env.ie&&!(tinymce.Env.ie>10)||textBlock.appendChild(dom.create("br",{"data-mce-bogus":"1"})):fragment.appendChild(dom.create("br")),fragment}function getSelectedListItems(){return tinymce.grep(selection.getSelectedBlocks(),function(block){return/^(LI|DT|DD)$/.test(block.nodeName)})}function splitList(ul,li,newBlock){var tmpRng,fragment,bookmarks=dom.select('span[data-mce-type="bookmark"]',ul);newBlock=newBlock||createNewTextBlock(li),tmpRng=dom.createRng(),tmpRng.setStartAfter(li),tmpRng.setEndAfter(ul),fragment=tmpRng.extractContents(),dom.isEmpty(fragment)||dom.insertAfter(fragment,ul),dom.insertAfter(newBlock,ul),dom.isEmpty(li.parentNode)&&(tinymce.each(bookmarks,function(node){li.parentNode.parentNode.insertBefore(node,li.parentNode)}),dom.remove(li.parentNode)),dom.remove(li)}function mergeWithAdjacentLists(listBlock){var sibling,node;if(sibling=listBlock.nextSibling,sibling&&isListNode(sibling)&&sibling.nodeName==listBlock.nodeName){ -for(;node=sibling.firstChild;)listBlock.appendChild(node);dom.remove(sibling)}if(sibling=listBlock.previousSibling,sibling&&isListNode(sibling)&&sibling.nodeName==listBlock.nodeName){for(;node=sibling.firstChild;)listBlock.insertBefore(node,listBlock.firstChild);dom.remove(sibling)}}function normalizeList(element){tinymce.each(tinymce.grep(dom.select("ol,ul",element)),function(ul){var sibling,parentNode=ul.parentNode;"LI"==parentNode.nodeName&&parentNode.firstChild==ul&&(sibling=parentNode.previousSibling,sibling&&"LI"==sibling.nodeName&&(sibling.appendChild(ul),dom.isEmpty(parentNode)&&dom.remove(parentNode))),isListNode(parentNode)&&(sibling=parentNode.previousSibling,sibling&&"LI"==sibling.nodeName&&sibling.appendChild(ul))})}function outdent(li){function removeEmptyLi(li){dom.isEmpty(li)&&dom.remove(li)}var newBlock,ul=li.parentNode,ulParent=ul.parentNode;return"DD"==li.nodeName?(dom.rename(li,"DT"),!0):isFirstChild(li)&&isLastChild(li)?("LI"==ulParent.nodeName?(dom.insertAfter(li,ulParent),removeEmptyLi(ulParent),dom.remove(ul)):isListNode(ulParent)?dom.remove(ul,!0):(ulParent.insertBefore(createNewTextBlock(li),ul),dom.remove(ul)),!0):isFirstChild(li)?("LI"==ulParent.nodeName?(dom.insertAfter(li,ulParent),li.appendChild(ul),removeEmptyLi(ulParent)):isListNode(ulParent)?ulParent.insertBefore(li,ul):(ulParent.insertBefore(createNewTextBlock(li),ul),dom.remove(li)),!0):isLastChild(li)?("LI"==ulParent.nodeName?dom.insertAfter(li,ulParent):isListNode(ulParent)?dom.insertAfter(li,ul):(dom.insertAfter(createNewTextBlock(li),ul),dom.remove(li)),!0):("LI"==ulParent.nodeName?(ul=ulParent,newBlock=createNewTextBlock(li,"LI")):newBlock=isListNode(ulParent)?createNewTextBlock(li,"LI"):createNewTextBlock(li),splitList(ul,li,newBlock),normalizeList(ul.parentNode),!0)}function indent(li){function mergeLists(from,to){var node;if(isListNode(from)){for(;node=li.lastChild.firstChild;)to.appendChild(node);dom.remove(from)}}var sibling,newList;return"DT"==li.nodeName?(dom.rename(li,"DD"),!0):(sibling=li.previousSibling,sibling&&isListNode(sibling)?(sibling.appendChild(li),!0):sibling&&"LI"==sibling.nodeName&&isListNode(sibling.lastChild)?(sibling.lastChild.appendChild(li),mergeLists(li.lastChild,sibling.lastChild),!0):(sibling=li.nextSibling,sibling&&isListNode(sibling)?(sibling.insertBefore(li,sibling.firstChild),!0):sibling&&"LI"==sibling.nodeName&&isListNode(li.lastChild)?!1:(sibling=li.previousSibling,sibling&&"LI"==sibling.nodeName?(newList=dom.create(li.parentNode.nodeName),sibling.appendChild(newList),newList.appendChild(li),mergeLists(li.lastChild,newList),!0):!1)))}function indentSelection(){var listElements=getSelectedListItems();if(listElements.length){for(var bookmark=createBookmark(selection.getRng(!0)),i=0;i0))return node;for(nonEmptyBlocks=editor.schema.getNonEmptyElements(),walker=new tinymce.dom.TreeWalker(rng.startContainer);node=walker[isForward?"next":"prev"]();){if("LI"==node.nodeName&&!node.hasChildNodes())return node;if(nonEmptyBlocks[node.nodeName])return node;if(3==node.nodeType&&node.data.length>0)return node}}function mergeLiElements(fromElm,toElm){var node,listNode,ul=fromElm.parentNode;if(isListNode(toElm.lastChild)&&(listNode=toElm.lastChild),node=toElm.lastChild,node&&"BR"==node.nodeName&&fromElm.hasChildNodes()&&dom.remove(node),dom.isEmpty(toElm)&&dom.$(toElm).empty(),!dom.isEmpty(fromElm))for(;node=fromElm.firstChild;)toElm.appendChild(node);listNode&&toElm.appendChild(listNode),dom.remove(fromElm),dom.isEmpty(ul)&&dom.remove(ul)}if(selection.isCollapsed()){var li=dom.getParent(selection.getStart(),"LI");if(li){var rng=selection.getRng(!0),otherLi=dom.getParent(findNextCaretContainer(rng,isForward),"LI");if(otherLi&&otherLi!=li){var bookmark=createBookmark(rng);return isForward?mergeLiElements(otherLi,li):mergeLiElements(li,otherLi),moveToBookmark(bookmark),!0}if(!otherLi&&!isForward&&removeList(li.parentNode.nodeName))return!0}}},editor.addCommand("Indent",function(){return indentSelection()?void 0:!0}),editor.addCommand("Outdent",function(){return outdentSelection()?void 0:!0}),editor.addCommand("InsertUnorderedList",function(){toggleList("UL")}),editor.addCommand("InsertOrderedList",function(){toggleList("OL")}),editor.addCommand("InsertDefinitionList",function(){toggleList("DL")}),editor.addQueryStateHandler("InsertUnorderedList",queryListCommandState("UL")),editor.addQueryStateHandler("InsertOrderedList",queryListCommandState("OL")),editor.addQueryStateHandler("InsertDefinitionList",queryListCommandState("DL")),editor.on("keydown",function(e){9!=e.keyCode||tinymce.util.VK.metaKeyPressed(e)||editor.dom.getParent(editor.selection.getStart(),"LI,DT,DD")&&(e.preventDefault(),e.shiftKey?outdentSelection():indentSelection())})}),editor.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var ctrl=this;editor.on("nodechange",function(){for(var blocks=editor.selection.getSelectedBlocks(),disable=!1,i=0,l=blocks.length;!disable&&l>i;i++){var tag=blocks[i].nodeName;disable="LI"==tag&&isFirstChild(blocks[i])||"UL"==tag||"OL"==tag||"DD"==tag}ctrl.disabled(disable)})}}),editor.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?self.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&self.backspaceDelete(!0)&&e.preventDefault()})})}.apply(root,arguments)})}(this),function(root){define("tinymce-media",["tinymce"],function(){return function(){tinymce.PluginManager.add("media",function(editor,url){function guessMime(url){return-1!=url.indexOf(".mp3")?"audio/mpeg":-1!=url.indexOf(".wav")?"audio/wav":-1!=url.indexOf(".mp4")?"video/mp4":-1!=url.indexOf(".webm")?"video/webm":-1!=url.indexOf(".ogg")?"video/ogg":-1!=url.indexOf(".swf")?"application/x-shockwave-flash":""}function getVideoScriptMatch(src){var prefixes=editor.settings.media_scripts;if(prefixes)for(var i=0;i=0;y--)beforeObjects[i]==afterObjects[y]&&afterObjects.splice(y,1);editor.selection.select(afterObjects[0]),editor.nodeChanged()}})}function getSource(){var elm=editor.selection.getNode();return elm.getAttribute("data-mce-object")?editor.selection.getContent():void 0}function dataToHtml(data){var html="";if(!data.source1&&(tinymce.extend(data,htmlToData(data.embed)),!data.source1))return"";if(data.source2||(data.source2=""),data.poster||(data.poster=""),data.source1=editor.convertURL(data.source1,"source"),data.source2=editor.convertURL(data.source2,"source"),data.source1mime=guessMime(data.source1),data.source2mime=guessMime(data.source2),data.poster=editor.convertURL(data.poster,"poster"),data.flashPlayerUrl=editor.convertURL(url+"/moxieplayer.swf","movie"),tinymce.each(urlPatterns,function(pattern){var match,i,url;if(match=pattern.regex.exec(data.source1)){for(url=pattern.url,i=0;match[i];i++)url=url.replace("$"+i,function(){return match[i]});data.source1=url,data.type=pattern.type,data.width=data.width||pattern.w,data.height=data.height||pattern.h}}),data.embed)html=updateHtml(data.embed,data,!0);else{var videoScript=getVideoScriptMatch(data.source1);videoScript&&(data.type="script",data.width=videoScript.width,data.height=videoScript.height),data.width=data.width||300,data.height=data.height||150,tinymce.each(data,function(value,key){data[key]=editor.dom.encode(value)}),"iframe"==data.type?html+='':"application/x-shockwave-flash"==data.source1mime?(html+='',data.poster&&(html+=''),html+=""):-1!=data.source1mime.indexOf("audio")?editor.settings.audio_template_callback?html=editor.settings.audio_template_callback(data):html+='":"script"==data.type?html+='':html=editor.settings.video_template_callback?editor.settings.video_template_callback(data):'"}return html}function htmlToData(html){var data={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(name,attrs){if(data.source1||"param"!=name||(data.source1=attrs.map.movie),("iframe"==name||"object"==name||"embed"==name||"video"==name||"audio"==name)&&(data.type||(data.type=name),data=tinymce.extend(attrs.map,data)),"script"==name){var videoScript=getVideoScriptMatch(attrs.map.src);if(!videoScript)return;data={type:"script",source1:attrs.map.src,width:videoScript.width,height:videoScript.height}}"source"==name&&(data.source1?data.source2||(data.source2=attrs.map.src):data.source1=attrs.map.src),"img"!=name||data.poster||(data.poster=attrs.map.src)}}).parse(html),data.source1=data.source1||data.src||data.data,data.source2=data.source2||"",data.poster=data.poster||"",data}function getData(element){return element.getAttribute("data-mce-object")?htmlToData(editor.serializer.serialize(element,{selection:!0})):{}}function sanitize(html){if(editor.settings.media_filter_html===!1)return html;var writer=new tinymce.html.Writer;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(text){writer.comment(text)},cdata:function(text){writer.cdata(text)},text:function(text,raw){writer.text(text,raw)},start:function(name,attrs,empty){if("script"!=name&&"noscript"!=name){for(var i=0;i=sourceCount&&(setAttributes(attrs,{src:data["source"+sourceCount],type:data["source"+sourceCount+"mime"]}),!data["source"+sourceCount]))return;break;case"img":if(!data.poster)return;hasImage=!0}writer.start(name,attrs,empty)},end:function(name){if("video"==name&&updateAll)for(var index=1;2>=index;index++)if(data["source"+index]){var attrs=[];attrs.map={},index>sourceCount&&(setAttributes(attrs,{src:data["source"+index],type:data["source"+index+"mime"]}),writer.start("source",attrs,!0))}if(data.poster&&"object"==name&&updateAll&&!hasImage){var imgAttrs=[];imgAttrs.map={},setAttributes(imgAttrs,{src:data.poster,width:data.width,height:data.height}),writer.start("img",imgAttrs,!0)}writer.end(name)}},new tinymce.html.Schema({})).parse(html),writer.getContent()}var urlPatterns=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"//www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&byline=0"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"'}],embedChange=tinymce.Env.ie&&tinymce.Env.ie<=8?"onChange":"onInput";editor.on("ResolveName",function(e){var name;1==e.target.nodeType&&(name=e.target.getAttribute("data-mce-object"))&&(e.name=name)}),editor.on("preInit",function(){var specialElements=editor.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(name){specialElements[name]=new RegExp("]*>","gi")});var boolAttrs=editor.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(name){boolAttrs[name]={}}),editor.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(nodes,name){for(var ai,node,placeHolder,attrName,attrValue,attribs,innerHtml,videoScript,i=nodes.length;i--;)if(node=nodes[i],node.parent&&("script"!=node.name||(videoScript=getVideoScriptMatch(node.attr("src"))))){for(placeHolder=new tinymce.html.Node("img",1),placeHolder.shortEnded=!0,videoScript&&(videoScript.width&&node.attr("width",videoScript.width.toString()),videoScript.height&&node.attr("height",videoScript.height.toString())),attribs=node.attributes,ai=attribs.length;ai--;)attrName=attribs[ai].name,attrValue=attribs[ai].value,"width"!==attrName&&"height"!==attrName&&"style"!==attrName&&(("data"==attrName||"src"==attrName)&&(attrValue=editor.convertURL(attrValue,attrName)),placeHolder.attr("data-mce-p-"+attrName,attrValue));innerHtml=node.firstChild&&node.firstChild.value,innerHtml&&(placeHolder.attr("data-mce-html",escape(innerHtml)),placeHolder.firstChild=null),placeHolder.attr({width:node.attr("width")||"300",height:node.attr("height")||("audio"==name?"30":"150"),style:node.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":name,"class":"mce-object mce-object-"+name}),node.replace(placeHolder)}}),editor.serializer.addAttributeFilter("data-mce-object",function(nodes,name){for(var node,realElm,ai,attribs,innerHtml,innerNode,realElmName,i=nodes.length;i--;)if(node=nodes[i],node.parent){for(realElmName=node.attr(name),realElm=new tinymce.html.Node(realElmName,1),"audio"!=realElmName&&"script"!=realElmName&&realElm.attr({width:node.attr("width"),height:node.attr("height")}),realElm.attr({style:node.attr("style")}),attribs=node.attributes,ai=attribs.length;ai--;){var attrName=attribs[ai].name;0===attrName.indexOf("data-mce-p-")&&realElm.attr(attrName.substr(11),attribs[ai].value)}"script"==realElmName&&realElm.attr("type","text/javascript"),innerHtml=node.attr("data-mce-html"),innerHtml&&(innerNode=new tinymce.html.Node("#text",3),innerNode.raw=!0,innerNode.value=sanitize(unescape(innerHtml)),realElm.append(innerNode)),node.replace(realElm)}})}),editor.on("ObjectSelected",function(e){var objectType=e.target.getAttribute("data-mce-object");("audio"==objectType||"script"==objectType)&&e.preventDefault()}),editor.on("objectResized",function(e){var html,target=e.target;target.getAttribute("data-mce-object")&&(html=target.getAttribute("data-mce-html"),html&&(html=unescape(html),target.setAttribute("data-mce-html",escape(updateHtml(html,{width:e.width,height:e.height})))))}),editor.addButton("media",{tooltip:"Insert/edit video",onclick:showDialog,stateSelector:["img[data-mce-object=video]","img[data-mce-object=iframe]"]}),editor.addMenuItem("media",{icon:"media",text:"Insert video",onclick:showDialog,context:"insert",prependToContext:!0})})}.apply(root,arguments)})}(this),function(root){define("tinymce-nonbreaking",["tinymce"],function(){return function(){tinymce.PluginManager.add("nonbreaking",function(editor){var setting=editor.getParam("nonbreaking_force_tab");if(editor.addCommand("mceNonBreaking",function(){editor.insertContent(editor.plugins.visualchars&&editor.plugins.visualchars.state?' ':" "),editor.dom.setAttrib(editor.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),editor.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),editor.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),setting){var spaces=+setting>1?+setting:3;editor.on("keydown",function(e){if(9==e.keyCode){if(e.shiftKey)return;e.preventDefault();for(var i=0;spaces>i;i++)editor.execCommand("mceNonBreaking")}})}})}.apply(root,arguments)})}(this),function(root){define("tinymce-noneditable",["tinymce"],function(){return function(){tinymce.PluginManager.add("noneditable",function(editor){function getContentEditable(node){var contentEditable;if(1===node.nodeType){if(contentEditable=node.getAttribute(internalName),contentEditable&&"inherit"!==contentEditable)return contentEditable;if(contentEditable=node.contentEditable,"inherit"!==contentEditable)return contentEditable}return null}function getNonEditableParent(node){for(var state;node;){if(state=getContentEditable(node))return"false"===state?node:null;node=node.parentNode}}function handleContentEditableSelection(){function getParentCaretContainer(node){for(;node;){if(node.id===caretContainerId)return node;node=node.parentNode}}function findFirstTextNode(node){var walker;if(node)for(walker=new TreeWalker(node,node),node=walker.current();node;node=walker.next())if(3===node.nodeType)return node}function insertCaretContainerOrExpandToBlock(target,before){var caretContainer,rng;return"false"===getContentEditable(target)&&dom.isBlock(target)?void selection.select(target):(rng=dom.createRng(),"true"===getContentEditable(target)&&(target.firstChild||target.appendChild(editor.getDoc().createTextNode(" ")),target=target.firstChild,before=!0),caretContainer=dom.create("span",{id:caretContainerId,"data-mce-bogus":!0},invisibleChar),before?target.parentNode.insertBefore(caretContainer,target):dom.insertAfter(caretContainer,target),rng.setStart(caretContainer.firstChild,1),rng.collapse(!0),selection.setRng(rng),caretContainer)}function removeCaretContainer(caretContainer){var rng,child,currentCaretContainer,lastContainer;if(caretContainer)rng=selection.getRng(!0),rng.setStartBefore(caretContainer),rng.setEndBefore(caretContainer),child=findFirstTextNode(caretContainer),child&&child.nodeValue.charAt(0)==invisibleChar&&(child=child.deleteData(0,1)),dom.remove(caretContainer,!0),selection.setRng(rng);else for(currentCaretContainer=getParentCaretContainer(selection.getStart());(caretContainer=dom.get(caretContainerId))&&caretContainer!==lastContainer;)currentCaretContainer!==caretContainer&&(child=findFirstTextNode(caretContainer),child&&child.nodeValue.charAt(0)==invisibleChar&&(child=child.deleteData(0,1)),dom.remove(caretContainer,!0)),lastContainer=caretContainer}function moveSelection(){function hasSideContent(element,left){var container,offset,walker,node,len;if(container=rng.startContainer,offset=rng.startOffset,3==container.nodeType){if(len=container.nodeValue.length,offset>0&&len>offset||(left?offset==len:0===offset))return}else{if(!(offset0?offset-1:offset;container=container.childNodes[pos],container.hasChildNodes()&&(container=container.firstChild)}for(walker=new TreeWalker(container,element);node=walker[left?"prev":"next"]();){if(3===node.nodeType&&node.nodeValue.length>0)return;if("true"===getContentEditable(node))return node}return element}var nonEditableStart,nonEditableEnd,isCollapsed,rng,element;removeCaretContainer(),isCollapsed=selection.isCollapsed(),nonEditableStart=getNonEditableParent(selection.getStart()),nonEditableEnd=getNonEditableParent(selection.getEnd()),(nonEditableStart||nonEditableEnd)&&(rng=selection.getRng(!0),isCollapsed?(nonEditableStart=nonEditableStart||nonEditableEnd,(element=hasSideContent(nonEditableStart,!0))?insertCaretContainerOrExpandToBlock(element,!0):(element=hasSideContent(nonEditableStart,!1))?insertCaretContainerOrExpandToBlock(element,!1):selection.select(nonEditableStart)):(rng=selection.getRng(!0),nonEditableStart&&rng.setStartBefore(nonEditableStart),nonEditableEnd&&rng.setEndAfter(nonEditableEnd),selection.setRng(rng)))}function handleKey(e){function getNonEmptyTextNodeSibling(node,prev){for(;node=node[prev?"previousSibling":"nextSibling"];)if(3!==node.nodeType||node.nodeValue.length>0)return node}function positionCaretOnElement(element,start){selection.select(element),selection.collapse(start)}function canDelete(backspace){function removeNodeIfNotParent(node){for(var parent=container;parent;){if(parent===node)return;parent=parent.parentNode}dom.remove(node),moveSelection()}function isNextPrevTreeNodeNonEditable(){var node,walker,nonEmptyElements=editor.schema.getNonEmptyElements();for(walker=new tinymce.dom.TreeWalker(container,editor.getBody());(node=backspace?walker.prev():walker.next())&&!nonEmptyElements[node.nodeName.toLowerCase()]&&!(3===node.nodeType&&tinymce.trim(node.nodeValue).length>0);)if("false"===getContentEditable(node))return removeNodeIfNotParent(node),!0;return getNonEditableParent(node)?!0:!1}var rng,container,offset,nonEditableParent;if(selection.isCollapsed()){if(rng=selection.getRng(!0),container=rng.startContainer,offset=rng.startOffset,container=getParentCaretContainer(container)||container,nonEditableParent=getNonEditableParent(container))return removeNodeIfNotParent(nonEditableParent),!1;if(3==container.nodeType&&(backspace?offset>0:offsetkeyCode||keyCode>124)&&keyCode!=VK.DELETE&&keyCode!=VK.BACKSPACE){if((tinymce.isMac?e.metaKey:e.ctrlKey)&&(67==keyCode||88==keyCode||86==keyCode))return;if(e.preventDefault(),keyCode==VK.LEFT||keyCode==VK.RIGHT){var left=keyCode==VK.LEFT;if(editor.dom.isBlock(nonEditableParent)){var targetElement=left?nonEditableParent.previousSibling:nonEditableParent.nextSibling,walker=new TreeWalker(targetElement,targetElement),caretElement=left?walker.prev():walker.next();positionCaretOnElement(caretElement,!left)}else positionCaretOnElement(nonEditableParent,left)}}else if(keyCode==VK.LEFT||keyCode==VK.RIGHT||keyCode==VK.BACKSPACE||keyCode==VK.DELETE){if(caretContainer=getParentCaretContainer(startElement)){if(keyCode==VK.LEFT||keyCode==VK.BACKSPACE)if(nonEditableParent=getNonEmptyTextNodeSibling(caretContainer,!0),nonEditableParent&&"false"===getContentEditable(nonEditableParent)){if(e.preventDefault(),keyCode!=VK.LEFT)return void dom.remove(nonEditableParent);positionCaretOnElement(nonEditableParent,!0)}else removeCaretContainer(caretContainer);if(keyCode==VK.RIGHT||keyCode==VK.DELETE)if(nonEditableParent=getNonEmptyTextNodeSibling(caretContainer),nonEditableParent&&"false"===getContentEditable(nonEditableParent)){if(e.preventDefault(),keyCode!=VK.RIGHT)return void dom.remove(nonEditableParent);positionCaretOnElement(nonEditableParent,!1)}else removeCaretContainer(caretContainer)}if((keyCode==VK.BACKSPACE||keyCode==VK.DELETE)&&!canDelete(keyCode==VK.BACKSPACE))return e.preventDefault(),!1}}var dom=editor.dom,selection=editor.selection,caretContainerId="mce_noneditablecaret",invisibleChar="\ufeff";editor.on("mousedown",function(e){var node=editor.selection.getNode();"false"===getContentEditable(node)&&node==e.target&&moveSelection()}),editor.on("mouseup keyup",moveSelection),editor.on("keydown",handleKey)}function convertRegExpsToNonEditable(e){var i=nonEditableRegExps.length,content=e.content,cls=tinymce.trim(nonEditClass);if("raw"!=e.format){for(;i--;)content=content.replace(nonEditableRegExps[i],function(match){var args=arguments,index=args[args.length-2];return index>0&&'"'==content.charAt(index-1)?match:''+editor.dom.encode("string"==typeof args[1]?args[1]:args[0])+""});e.content=content}}var editClass,nonEditClass,nonEditableRegExps,TreeWalker=tinymce.dom.TreeWalker,externalName="contenteditable",internalName="data-mce-"+externalName,VK=tinymce.util.VK;editClass=" "+tinymce.trim(editor.getParam("noneditable_editable_class","mceEditable"))+" ",nonEditClass=" "+tinymce.trim(editor.getParam("noneditable_noneditable_class","mceNonEditable"))+" ",nonEditableRegExps=editor.getParam("noneditable_regexp"),nonEditableRegExps&&!nonEditableRegExps.length&&(nonEditableRegExps=[nonEditableRegExps]),editor.on("PreInit",function(){handleContentEditableSelection(),nonEditableRegExps&&editor.on("BeforeSetContent",convertRegExpsToNonEditable),editor.parser.addAttributeFilter("class",function(nodes){for(var className,node,i=nodes.length;i--;)node=nodes[i],className=" "+node.attr("class")+" ",-1!==className.indexOf(editClass)?node.attr(internalName,"true"):-1!==className.indexOf(nonEditClass)&&node.attr(internalName,"false")}),editor.serializer.addAttributeFilter(internalName,function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i],nonEditableRegExps&&node.attr("data-mce-content")?(node.name="#text",node.type=3,node.raw=!0,node.value=node.attr("data-mce-content")):(node.attr(externalName,null),node.attr(internalName,null))}),editor.parser.addAttributeFilter(externalName,function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i], -node.attr(internalName,node.attr(externalName)),node.attr(externalName,null)})}),editor.on("drop",function(e){getNonEditableParent(e.target)&&e.preventDefault()})})}.apply(root,arguments)})}(this),function(root){define("tinymce-pagebreak",["tinymce"],function(){return function(){tinymce.PluginManager.add("pagebreak",function(editor){var pageBreakClass="mce-pagebreak",separatorHtml=editor.getParam("pagebreak_separator",""),pageBreakSeparatorRegExp=new RegExp(separatorHtml.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return"\\"+a}),"gi"),pageBreakPlaceHolderHtml='';editor.addCommand("mcePageBreak",function(){editor.settings.pagebreak_split_block?editor.insertContent("

    "+pageBreakPlaceHolderHtml+"

    "):editor.insertContent(pageBreakPlaceHolderHtml)}),editor.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),editor.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),editor.on("ResolveName",function(e){"IMG"==e.target.nodeName&&editor.dom.hasClass(e.target,pageBreakClass)&&(e.name="pagebreak")}),editor.on("click",function(e){e=e.target,"IMG"===e.nodeName&&editor.dom.hasClass(e,pageBreakClass)&&editor.selection.select(e)}),editor.on("BeforeSetContent",function(e){e.content=e.content.replace(pageBreakSeparatorRegExp,pageBreakPlaceHolderHtml)}),editor.on("PreInit",function(){editor.serializer.addNodeFilter("img",function(nodes){for(var node,className,i=nodes.length;i--;)if(node=nodes[i],className=node.attr("class"),className&&-1!==className.indexOf("mce-pagebreak")){var parentNode=node.parent;if(editor.schema.getBlockElements()[parentNode.name]&&editor.settings.pagebreak_split_block){parentNode.type=3,parentNode.value=separatorHtml,parentNode.raw=!0,node.remove();continue}node.type=3,node.value=separatorHtml,node.raw=!0}})})})}.apply(root,arguments)})}(this),function(root){define("tinymce-paste",["tinymce"],function(){return function(){!function(exports,undefined){"use strict";function require(ids,callback){for(var module,defs=[],i=0;i/g]),walk(domParser.parse(html)),text}function trimHtml(html){function trimSpaces(all,s1,s2){return s1||s2?" ":" "}return html=filter(html,[/^[\s\S]*]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/|/g,[/( ?)\u00a0<\/span>( ?)/g,trimSpaces],/
    $/i])}return{filter:filter,innerText:innerText,trimHtml:trimHtml}}),define("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/util/VK","tinymce/pasteplugin/Utils"],function(Env,VK,Utils){return function(editor){function pasteHtml(html){var args,dom=editor.dom;if(args=editor.fire("BeforePastePreProcess",{content:html}),args=editor.fire("PastePreProcess",args),html=args.content,!args.isDefaultPrevented()){if(editor.hasEventListeners("PastePostProcess")&&!args.isDefaultPrevented()){var tempBody=dom.add(editor.getBody(),"div",{style:"display:none"},html);args=editor.fire("PastePostProcess",{node:tempBody}),dom.remove(tempBody),html=args.node.innerHTML}args.isDefaultPrevented()||editor.insertContent(html,{merge:editor.settings.paste_merge_formats!==!1})}}function pasteText(text){text=editor.dom.encode(text).replace(/\r\n/g,"\n");var forcedRootBlockStartHtml,startBlock=editor.dom.getParent(editor.selection.getStart(),editor.dom.isBlock),forcedRootBlockName=editor.settings.forced_root_block;forcedRootBlockName&&(forcedRootBlockStartHtml=editor.dom.createHTML(forcedRootBlockName,editor.settings.forced_root_block_attrs),forcedRootBlockStartHtml=forcedRootBlockStartHtml.substr(0,forcedRootBlockStartHtml.length-3)+">"),startBlock&&/^(PRE|DIV)$/.test(startBlock.nodeName)||!forcedRootBlockName?text=Utils.filter(text,[[/\n/g,"
    "]]):(text=Utils.filter(text,[[/\n\n/g,"

    "+forcedRootBlockStartHtml],[/^(.*<\/p>)(

    )$/,forcedRootBlockStartHtml+"$1"],[/\n/g,"
    "]]),-1!=text.indexOf("

    ")&&(text=forcedRootBlockStartHtml+text)),pasteHtml(text)}function createPasteBin(){function getCaretRect(rng){var rects,textNode,node,container=rng.startContainer;if(rects=rng.getClientRects(),rects.length)return rects[0];if(rng.collapsed&&1==container.nodeType){for(node=container.childNodes[lastRng.startOffset];node&&3==node.nodeType&&!node.data.length;)node=node.nextSibling;if(node)return"BR"==node.tagName&&(textNode=dom.doc.createTextNode("\ufeff"),node.parentNode.insertBefore(textNode,node),rng=dom.createRng(),rng.setStartBefore(textNode),rng.setEndAfter(textNode),rects=rng.getClientRects(),dom.remove(textNode)),rects.length?rects[0]:void 0}}var scrollContainer,dom=editor.dom,body=editor.getBody(),viewport=editor.dom.getViewPort(editor.getWin()),scrollTop=viewport.y,top=20;if(lastRng=editor.selection.getRng(),editor.inline&&(scrollContainer=editor.selection.getScrollContainer(),scrollContainer&&scrollContainer.scrollTop>0&&(scrollTop=scrollContainer.scrollTop)),lastRng.getClientRects){var rect=getCaretRect(lastRng);if(rect)top=scrollTop+(rect.top-dom.getPos(body).y);else{top=scrollTop;var container=lastRng.startContainer;container&&(3==container.nodeType&&container.parentNode!=body&&(container=container.parentNode),1==container.nodeType&&(top=dom.getPos(container,scrollContainer||body).y))}}pasteBinElm=dom.add(editor.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+top+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},pasteBinDefaultContent),(Env.ie||Env.gecko)&&dom.setStyle(pasteBinElm,"left","rtl"==dom.getStyle(body,"direction",!0)?65535:-65535),dom.bind(pasteBinElm,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),pasteBinElm.focus(),editor.selection.select(pasteBinElm,!0)}function removePasteBin(){if(pasteBinElm){for(var pasteBinClone;pasteBinClone=editor.dom.get("mcepastebin");)editor.dom.remove(pasteBinClone),editor.dom.unbind(pasteBinClone);lastRng&&editor.selection.setRng(lastRng)}pasteBinElm=lastRng=null}function getPasteBinHtml(){var pasteBinClones,i,clone,cloneHtml,html="";for(pasteBinClones=editor.dom.select("div[id=mcepastebin]"),i=0;i0&&(data["text/plain"]=legacyText)}if(dataTransfer.types)for(var i=0;i')}var i,item,reader;if(items)for(i=0;i0}function isKeyboardPasteEvent(e){return VK.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function registerEventHandlers(){editor.on("keydown",function(e){function removePasteBinOnKeyUp(e){isKeyboardPasteEvent(e)&&!e.isDefaultPrevented()&&removePasteBin()}if(isKeyboardPasteEvent(e)&&!e.isDefaultPrevented()){if(keyboardPastePlainTextState=e.shiftKey&&86==e.keyCode,keyboardPastePlainTextState&&Env.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(e.stopImmediatePropagation(),keyboardPasteTimeStamp=(new Date).getTime(),Env.ie&&keyboardPastePlainTextState)return e.preventDefault(),void editor.fire("paste",{ieFake:!0});removePasteBin(),createPasteBin(),editor.once("keyup",removePasteBinOnKeyUp),editor.once("paste",function(){editor.off("keyup",removePasteBinOnKeyUp)})}}),editor.on("paste",function(e){var clipboardTimer=(new Date).getTime(),clipboardContent=getClipboardContent(e),clipboardDelay=(new Date).getTime()-clipboardTimer,isKeyBoardPaste=(new Date).getTime()-keyboardPasteTimeStamp-clipboardDelay<1e3,plainTextMode="text"==self.pasteFormat||keyboardPastePlainTextState;return keyboardPastePlainTextState=!1,e.isDefaultPrevented()||isBrokenAndroidClipboardEvent(e)?void removePasteBin():pasteImageData(e)?void removePasteBin():(isKeyBoardPaste||e.preventDefault(),!Env.ie||isKeyBoardPaste&&!e.ieFake||(createPasteBin(),editor.dom.bind(pasteBinElm,"paste",function(e){e.stopPropagation()}),editor.getDoc().execCommand("Paste",!1,null),clipboardContent["text/html"]=getPasteBinHtml()),void setTimeout(function(){var content;return hasContentType(clipboardContent,"text/html")?content=clipboardContent["text/html"]:(content=getPasteBinHtml(),content==pasteBinDefaultContent&&(plainTextMode=!0)),content=Utils.trimHtml(content),pasteBinElm&&pasteBinElm.firstChild&&"mcepastebin"===pasteBinElm.firstChild.id&&(plainTextMode=!0),removePasteBin(),content.length||(plainTextMode=!0),plainTextMode&&(content=hasContentType(clipboardContent,"text/plain")&&-1==content.indexOf("

    ")?clipboardContent["text/plain"]:Utils.innerText(content)),content==pasteBinDefaultContent?void(isKeyBoardPaste||editor.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(plainTextMode?pasteText(content):pasteHtml(content))},0))}),editor.on("dragstart dragend",function(e){draggingInternally="dragstart"==e.type}),editor.on("drop",function(e){var rng=getCaretRangeFromEvent(e);if(!e.isDefaultPrevented()&&!draggingInternally&&!pasteImageData(e,rng)&&rng&&editor.settings.paste_filter_drop!==!1){var dropContent=getDataTransferItems(e.dataTransfer),content=dropContent["mce-internal"]||dropContent["text/html"]||dropContent["text/plain"];content&&(e.preventDefault(),editor.undoManager.transact(function(){dropContent["mce-internal"]&&editor.execCommand("Delete"),editor.selection.setRng(rng),content=Utils.trimHtml(content),dropContent["text/html"]?pasteHtml(content):pasteText(content)}))}}),editor.on("dragover dragend",function(e){var i,dataTransfer=e.dataTransfer;if(editor.settings.paste_data_images&&dataTransfer)for(i=0;ilevel?currentListNode&&(currentListNode=currentListNode.parent.parent):(prevListNode=currentListNode,currentListNode=null)),currentListNode&¤tListNode.name==listName?currentListNode.append(paragraphNode):(prevListNode=prevListNode||currentListNode,currentListNode=new Node(listName,1),start>1&¤tListNode.attr("start",""+start),paragraphNode.wrap(currentListNode)),paragraphNode.name="li",level>lastLevel&&prevListNode&&prevListNode.lastChild.append(currentListNode),lastLevel=level,removeIgnoredNodes(paragraphNode),trimListStart(paragraphNode,/^\u00a0+/),trimListStart(paragraphNode,/^\s*([\u2022\u00b7\u00a7\u00d8\u25CF]|\w+\.)/),trimListStart(paragraphNode,/^\u00a0+/)}for(var currentListNode,prevListNode,lastLevel=1,elements=[],child=node.firstChild;"undefined"!=typeof child&&null!==child;)if(elements.push(child),child=child.walk(),null!==child)for(;"undefined"!=typeof child&&child.parent!==node;)child=child.walk();for(var i=0;i/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi," "],[/([\s\u00a0]*)<\/span>/gi,function(str,spaces){return spaces.length>0?spaces.replace(/./," ").slice(Math.floor(spaces.length/2)).split("").join(" "):""}]]);var validElements=settings.paste_word_valid_elements;validElements||(validElements="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody");var schema=new Schema({valid_elements:validElements,valid_children:"-li[p]"});Tools.each(schema.elements,function(rule){rule.attributes["class"]||(rule.attributes["class"]={},rule.attributesOrder.push("class")),rule.attributes.style||(rule.attributes.style={},rule.attributesOrder.push("style"))});var domParser=new DomParser({},schema);domParser.addAttributeFilter("style",function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i],node.attr("style",filterStyles(node,node.attr("style"))),"span"==node.name&&node.parent&&!node.attributes.length&&node.unwrap()}),domParser.addAttributeFilter("class",function(nodes){for(var node,className,i=nodes.length;i--;)node=nodes[i],className=node.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel|MsoCaption)$/i.test(className)&&node.remove(),node.attr("class",null)}),domParser.addNodeFilter("del",function(nodes){for(var i=nodes.length;i--;)nodes[i].remove()}),domParser.addNodeFilter("a",function(nodes){for(var node,href,name,i=nodes.length;i--;)if(node=nodes[i],href=node.attr("href"),name=node.attr("name"),href&&-1!=href.indexOf("#_msocom_"))node.remove();else if(href&&0===href.indexOf("file://")&&(href=href.split("#")[1],href&&(href="#"+href)),href||name){if(name&&!/^_?(?:toc|edn|ftn)/i.test(name)){node.unwrap();continue}node.attr({href:href,name:name})}else node.unwrap()});var rootNode=domParser.parse(content);convertFakeListsToProperLists(rootNode),e.content=new Serializer({},schema).serialize(rootNode)}})}return WordFilter.isWordContent=isWordContent,WordFilter}),define("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(Env,Tools,WordFilter,Utils){return function(editor){function addPreProcessFilter(filterFunc){editor.on("BeforePastePreProcess",function(e){e.content=filterFunc(e.content)})}function removeExplorerBrElementsAfterBlocks(html){if(!WordFilter.isWordContent(html))return html;var blockElements=[];Tools.each(editor.schema.getBlockElements(),function(block,blockName){blockElements.push(blockName)});var explorerBlocksRegExp=new RegExp("(?:
     [\\s\\r\\n]+|
    )*(<\\/?("+blockElements.join("|")+")[^>]*>)(?:
     [\\s\\r\\n]+|
    )*","g");return html=Utils.filter(html,[[explorerBlocksRegExp,"$1"]]),html=Utils.filter(html,[[/

    /g,"

    "],[/
    /g," "],[/

    /g,"
    "]])}function removeWebKitStyles(content){if(WordFilter.isWordContent(content))return content;var webKitStyles=editor.settings.paste_webkit_styles;if(editor.settings.paste_remove_styles_if_webkit===!1||"all"==webKitStyles)return content;if(webKitStyles&&(webKitStyles=webKitStyles.split(/[, ]/)),webKitStyles){var dom=editor.dom,node=editor.selection.getNode();content=content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(all,before,value,after){var inputStyles=dom.parseStyle(value,"span"),outputStyles={};if("none"===webKitStyles)return before+after;for(var i=0;i]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return content=content.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(all,before,value,after){return before+' style="'+value+'"'+after})}Env.webkit&&addPreProcessFilter(removeWebKitStyles),Env.ie&&addPreProcessFilter(removeExplorerBrElementsAfterBlocks)}}),define("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(PluginManager,Clipboard,WordFilter,Quirks){var userIsInformed;PluginManager.add("paste",function(editor){function togglePlainTextPaste(){"text"==clipboard.pasteFormat?(this.active(!1),clipboard.pasteFormat="html"):(clipboard.pasteFormat="text",this.active(!0),userIsInformed||(editor.windowManager.alert("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off."),userIsInformed=!0))}var clipboard,self=this,settings=editor.settings;self.clipboard=clipboard=new Clipboard(editor),self.quirks=new Quirks(editor),self.wordFilter=new WordFilter(editor),editor.settings.paste_as_text&&(self.clipboard.pasteFormat="text"),settings.paste_preprocess&&editor.on("PastePreProcess",function(e){settings.paste_preprocess.call(self,self,e)}),settings.paste_postprocess&&editor.on("PastePostProcess",function(e){settings.paste_postprocess.call(self,self,e)}),editor.addCommand("mceInsertClipboardContent",function(ui,value){value.content&&self.clipboard.pasteHtml(value.content),value.text&&self.clipboard.pasteText(value.text)}),editor.paste_block_drop&&editor.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),editor.settings.paste_data_images||editor.on("drop",function(e){var dataTransfer=e.dataTransfer;dataTransfer&&dataTransfer.files&&dataTransfer.files.length>0&&e.preventDefault()}),editor.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:togglePlainTextPaste,active:"text"==self.clipboard.pasteFormat}),editor.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:clipboard.pasteFormat,onclick:togglePlainTextPaste})})}),expose(["tinymce/pasteplugin/Utils","tinymce/pasteplugin/WordFilter"])}(this)}.apply(root,arguments)})}(this),function(root){define("tinymce-preview",["tinymce"],function(){return function(){tinymce.PluginManager.add("preview",function(editor){var settings=editor.settings,sandbox=!tinymce.Env.ie;editor.addCommand("mcePreview",function(){editor.windowManager.open({title:"Preview",width:parseInt(editor.getParam("plugin_preview_width","650"),10),height:parseInt(editor.getParam("plugin_preview_height","500"),10),html:'",buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var previewHtml,headHtml="";headHtml+='',tinymce.each(editor.contentCSS,function(url){headHtml+=''});var bodyId=settings.body_id||"tinymce";-1!=bodyId.indexOf("=")&&(bodyId=editor.getParam("body_id","","hash"),bodyId=bodyId[editor.id]||bodyId);var bodyClass=settings.body_class||"";-1!=bodyClass.indexOf("=")&&(bodyClass=editor.getParam("body_class","","hash"),bodyClass=bodyClass[editor.id]||"");var dirAttr=editor.settings.directionality?' dir="'+editor.settings.directionality+'"':"";if(previewHtml=""+headHtml+'"+editor.getContent()+"",sandbox)this.getEl("body").firstChild.src="data:text/html;charset=utf-8,"+encodeURIComponent(previewHtml);else{var doc=this.getEl("body").firstChild.contentWindow.document;doc.open(),doc.write(previewHtml),doc.close()}}})}),editor.addButton("preview",{title:"Preview",cmd:"mcePreview"}),editor.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-print",["tinymce"],function(){return function(){tinymce.PluginManager.add("print",function(editor){editor.addCommand("mcePrint",function(){editor.getWin().print()}),editor.addButton("print",{title:"Print",cmd:"mcePrint"}),editor.addShortcut("Ctrl+P","","mcePrint"),editor.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-save",["tinymce"],function(){return function(){tinymce.PluginManager.add("save",function(editor){function save(){var formObj;return formObj=tinymce.DOM.getParent(editor.id,"form"),!editor.getParam("save_enablewhendirty",!0)||editor.isDirty()?(tinymce.triggerSave(),editor.getParam("save_onsavecallback")?void(editor.execCallback("save_onsavecallback",editor)&&(editor.startContent=tinymce.trim(editor.getContent({format:"raw"})),editor.nodeChanged())):void(formObj?(editor.isNotDirty=!0,(!formObj.onsubmit||formObj.onsubmit())&&("function"==typeof formObj.submit?formObj.submit():editor.windowManager.alert("Error: Form submit field collision.")),editor.nodeChanged()):editor.windowManager.alert("Error: No form element found."))):void 0}function cancel(){var h=tinymce.trim(editor.startContent);return editor.getParam("save_oncancelcallback")?void editor.execCallback("save_oncancelcallback",editor):(editor.setContent(h),editor.undoManager.clear(),void editor.nodeChanged())}function stateToggle(){var self=this;editor.on("nodeChange",function(){self.disabled(editor.getParam("save_enablewhendirty",!0)&&!editor.isDirty())})}editor.addCommand("mceSave",save),editor.addCommand("mceCancel",cancel),editor.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:stateToggle}),editor.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:stateToggle}),editor.addShortcut("ctrl+s","","mceSave")})}.apply(root,arguments)})}(this),function(root){define("tinymce-searchreplace",["tinymce"],function(){return function(){!function(){function findAndReplaceDOMText(regex,node,replacementNode,captureGroup,schema){function getMatchIndexes(m,captureGroup){if(captureGroup=captureGroup||0,!m[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var index=m.index;if(captureGroup>0){var cg=m[captureGroup];if(!cg)throw"Invalid capture group";index+=m[0].indexOf(cg),m[0]=cg}return[index,index+m[0].length,[m[0]]]}function getText(node){var txt;if(3===node.nodeType)return node.data;if(hiddenTextElementsMap[node.nodeName]&&!blockElementsMap[node.nodeName])return"";if(txt="",(blockElementsMap[node.nodeName]||shortEndedElementsMap[node.nodeName])&&(txt+="\n"),node=node.firstChild)do txt+=getText(node);while(node=node.nextSibling);return txt}function stepThroughMatches(node,matches,replaceFn){var startNode,endNode,startNodeIndex,endNodeIndex,innerNodes=[],atIndex=0,curNode=node,matchLocation=matches.shift(),matchIndex=0;out:for(;;){if((blockElementsMap[curNode.nodeName]||shortEndedElementsMap[curNode.nodeName])&&atIndex++,3===curNode.nodeType&&(!endNode&&curNode.length+atIndex>=matchLocation[1]?(endNode=curNode,endNodeIndex=matchLocation[1]-atIndex):startNode&&innerNodes.push(curNode),!startNode&&curNode.length+atIndex>matchLocation[0]&&(startNode=curNode,startNodeIndex=matchLocation[0]-atIndex),atIndex+=curNode.length),startNode&&endNode){if(curNode=replaceFn({startNode:startNode,startNodeIndex:startNodeIndex,endNode:endNode,endNodeIndex:endNodeIndex,innerNodes:innerNodes,match:matchLocation[2],matchIndex:matchIndex}),atIndex-=endNode.length-endNodeIndex,startNode=null,endNode=null,innerNodes=[],matchLocation=matches.shift(),matchIndex++,!matchLocation)break}else{if((!hiddenTextElementsMap[curNode.nodeName]||blockElementsMap[curNode.nodeName])&&curNode.firstChild){curNode=curNode.firstChild;continue}if(curNode.nextSibling){curNode=curNode.nextSibling;continue}}for(;;){if(curNode.nextSibling){curNode=curNode.nextSibling;break}if(curNode.parentNode===node)break out;curNode=curNode.parentNode}}}function genReplacer(nodeName){var makeReplacementNode;if("function"!=typeof nodeName){var stencilNode=nodeName.nodeType?nodeName:doc.createElement(nodeName);makeReplacementNode=function(fill,matchIndex){var clone=stencilNode.cloneNode(!1);return clone.setAttribute("data-mce-index",matchIndex),fill&&clone.appendChild(doc.createTextNode(fill)),clone}}else makeReplacementNode=nodeName;return function(range){var before,after,parentNode,startNode=range.startNode,endNode=range.endNode,matchIndex=range.matchIndex;if(startNode===endNode){var node=startNode;parentNode=node.parentNode,range.startNodeIndex>0&&(before=doc.createTextNode(node.data.substring(0,range.startNodeIndex)),parentNode.insertBefore(before,node));var el=makeReplacementNode(range.match[0],matchIndex);return parentNode.insertBefore(el,node),range.endNodeIndexi;++i){var innerNode=range.innerNodes[i],innerEl=makeReplacementNode(innerNode.data,matchIndex);innerNode.parentNode.replaceChild(innerEl,innerNode),innerEls.push(innerEl)}var elB=makeReplacementNode(endNode.data.substring(0,range.endNodeIndex),matchIndex);return parentNode=startNode.parentNode,parentNode.insertBefore(before,startNode),parentNode.insertBefore(elA,startNode),parentNode.removeChild(startNode),parentNode=endNode.parentNode,parentNode.insertBefore(elB,endNode),parentNode.insertBefore(after,endNode),parentNode.removeChild(endNode),elB}}var m,text,doc,blockElementsMap,hiddenTextElementsMap,shortEndedElementsMap,matches=[],count=0;if(doc=node.ownerDocument,blockElementsMap=schema.getBlockElements(),hiddenTextElementsMap=schema.getWhiteSpaceElements(),shortEndedElementsMap=schema.getShortEndedElements(),text=getText(node)){if(regex.global)for(;m=regex.exec(text);)matches.push(getMatchIndexes(m,captureGroup));else m=text.match(regex),matches.push(getMatchIndexes(m,captureGroup));return matches.length&&(count=matches.length,stepThroughMatches(node,matches,genReplacer(replacementNode))),count}}function Plugin(editor){function showDialog(){function updateButtonStates(){win.statusbar.find("#next").disabled(!findSpansByIndex(currentIndex+1).length),win.statusbar.find("#prev").disabled(!findSpansByIndex(currentIndex-1).length)}function notFoundAlert(){tinymce.ui.MessageBox.alert("Could not find the specified string.",function(){win.find("#find")[0].focus()})}var last={},win=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){editor.focus(),self.done()},onSubmit:function(e){var count,caseState,text,wholeWord;return e.preventDefault(),caseState=win.find("#case").checked(),wholeWord=win.find("#words").checked(),text=win.find("#find").value(),text.length?last.text==text&&last.caseState==caseState&&last.wholeWord==wholeWord?0===findSpansByIndex(currentIndex+1).length?void notFoundAlert():(self.next(),void updateButtonStates()):(count=self.find(text,caseState,wholeWord),count||notFoundAlert(),win.statusbar.items().slice(1).disabled(0===count),updateButtonStates(),void(last={text:text,caseState:caseState,wholeWord:wholeWord})):(self.done(!1),void win.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",onclick:function(){win.submit()}},{text:"Replace",disabled:!0,onclick:function(){self.replace(win.find("#replace").value())||(win.statusbar.items().slice(1).disabled(!0),currentIndex=-1,last={})}},{text:"Replace all",disabled:!0,onclick:function(){self.replace(win.find("#replace").value(),!0,!0),win.statusbar.items().slice(1).disabled(!0),last={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){self.prev(),updateButtonStates()}},{text:"Next",name:"next",disabled:!0,onclick:function(){self.next(),updateButtonStates()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:editor.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow()}function getElmIndex(elm){var value=elm.getAttribute("data-mce-index");return"number"==typeof value?""+value:value}function markAllMatches(regex){var node,marker;return marker=editor.dom.create("span",{"data-mce-bogus":1}),marker.className="mce-match-marker",node=editor.getBody(),self.done(!1),findAndReplaceDOMText(regex,node,marker,!1,editor.schema)}function unwrap(node){var parentNode=node.parentNode;node.firstChild&&parentNode.insertBefore(node.firstChild,node),node.parentNode.removeChild(node)}function findSpansByIndex(index){var nodes,spans=[];if(nodes=tinymce.toArray(editor.getBody().getElementsByTagName("span")),nodes.length)for(var i=0;icurrentIndex&&nodes[i].setAttribute("data-mce-index",currentMatchIndex-1)}return editor.undoManager.add(),currentIndex=nextIndex,forward?(hasMore=findSpansByIndex(nextIndex+1).length>0,self.next()):(hasMore=findSpansByIndex(nextIndex-1).length>0,self.prev()),!all&&hasMore},self.done=function(keepEditorSelection){var i,nodes,startContainer,endContainer;for(nodes=tinymce.toArray(editor.getBody().getElementsByTagName("span")),i=0;i=matchLocation.end?(endNode=curNode,endNodeIndex=matchLocation.end-atIndex):startNode&&innerNodes.push(curNode),!startNode&&curNode.length+atIndex>matchLocation.start&&(startNode=curNode,startNodeIndex=matchLocation.start-atIndex),atIndex+=curNode.length),startNode&&endNode){if(curNode=replaceFn({startNode:startNode,startNodeIndex:startNodeIndex,endNode:endNode,endNodeIndex:endNodeIndex,innerNodes:innerNodes,match:matchLocation.text,matchIndex:matchIndex}),atIndex-=endNode.length-endNodeIndex,startNode=null,endNode=null,innerNodes=[],matchLocation=matches.shift(),matchIndex++,!matchLocation)break}else{if((!hiddenTextElementsMap[curNode.nodeName]||blockElementsMap[curNode.nodeName])&&curNode.firstChild){curNode=curNode.firstChild;continue}if(curNode.nextSibling){curNode=curNode.nextSibling;continue}}for(;;){if(curNode.nextSibling){curNode=curNode.nextSibling;break}if(curNode.parentNode===node)break out;curNode=curNode.parentNode}}}function genReplacer(callback){function makeReplacementNode(fill,matchIndex){var match=matches[matchIndex];match.stencil||(match.stencil=callback(match));var clone=match.stencil.cloneNode(!1);return clone.setAttribute("data-mce-index",matchIndex),fill&&clone.appendChild(dom.doc.createTextNode(fill)),clone}return function(range){var before,after,parentNode,startNode=range.startNode,endNode=range.endNode,matchIndex=range.matchIndex,doc=dom.doc;if(startNode===endNode){var node=startNode;parentNode=node.parentNode,range.startNodeIndex>0&&(before=doc.createTextNode(node.data.substring(0,range.startNodeIndex)),parentNode.insertBefore(before,node));var el=makeReplacementNode(range.match,matchIndex);return parentNode.insertBefore(el,node),range.endNodeIndexi;++i){var innerNode=range.innerNodes[i],innerEl=makeReplacementNode(innerNode.data,matchIndex);innerNode.parentNode.replaceChild(innerEl,innerNode),innerEls.push(innerEl)}var elB=makeReplacementNode(endNode.data.substring(0,range.endNodeIndex),matchIndex);return parentNode=startNode.parentNode,parentNode.insertBefore(before,startNode),parentNode.insertBefore(elA,startNode),parentNode.removeChild(startNode),parentNode=endNode.parentNode,parentNode.insertBefore(elB,endNode),parentNode.insertBefore(after,endNode),parentNode.removeChild(endNode),elB}}function unwrapElement(element){var parentNode=element.parentNode;parentNode.insertBefore(element.firstChild,element),element.parentNode.removeChild(element)}function getWrappersByIndex(index){var elements=node.getElementsByTagName("*"),wrappers=[];index="number"==typeof index?""+index:null;for(var i=0;ii&&callback(matches[i],i)!==!1;i++);return this}function wrap(callback){return matches.length&&stepThroughMatches(node,matches,genReplacer(callback)),this}function find(regex,data){if(text&®ex.global)for(;m=regex.exec(text);)matches.push(createMatch(m,data));return this}function unwrap(match){var i,elements=getWrappersByIndex(match?indexOf(match):null);for(i=elements.length;i--;)unwrapElement(elements[i]);return this}function matchFromElement(element){return matches[element.getAttribute("data-mce-index")]}function elementFromMatch(match){return getWrappersByIndex(indexOf(match))[0]}function add(start,length,data){return matches.push({start:start,end:start+length,text:text.substr(start,length),data:data}),this}function rangeFromMatch(match){var wrappers=getWrappersByIndex(indexOf(match)),rng=editor.dom.createRng();return rng.setStartBefore(wrappers[0]),rng.setEndAfter(wrappers[wrappers.length-1]),rng}function replace(match,text){var rng=rangeFromMatch(match);return rng.deleteContents(),text.length>0&&rng.insertNode(editor.dom.doc.createTextNode(text)),rng}function reset(){return matches.splice(0,matches.length),unwrap(),this}var m,text,blockElementsMap,hiddenTextElementsMap,shortEndedElementsMap,matches=[],dom=editor.dom;return blockElementsMap=editor.schema.getBlockElements(),hiddenTextElementsMap=editor.schema.getWhiteSpaceElements(),shortEndedElementsMap=editor.schema.getShortEndedElements(),text=getText(node),{text:text,matches:matches,each:each,filter:filter,reset:reset,matchFromElement:matchFromElement,elementFromMatch:elementFromMatch,find:find,add:add,wrap:wrap,unwrap:unwrap,replace:replace,rangeFromMatch:rangeFromMatch,indexOf:indexOf}}}),define("tinymce/spellcheckerplugin/Plugin",["tinymce/spellcheckerplugin/DomTextMatcher","tinymce/PluginManager","tinymce/util/Tools","tinymce/ui/Menu","tinymce/dom/DOMUtils","tinymce/util/XHR","tinymce/util/URI","tinymce/util/JSON"],function(DomTextMatcher,PluginManager,Tools,Menu,DOMUtils,XHR,URI,JSON){PluginManager.add("spellchecker",function(editor,url){function getTextMatcher(){return self.textMatcher||(self.textMatcher=new DomTextMatcher(editor.getBody(),editor)),self.textMatcher}function buildMenuItems(listName,languageValues){var items=[];return Tools.each(languageValues,function(languageValue){items.push({selectable:!0,text:languageValue.name,data:languageValue.value})}),items}function isEmpty(obj){for(var name in obj)return!1;return!0}function showSuggestions(word,spans){var items=[],suggestions=lastSuggestions[word];Tools.each(suggestions,function(suggestion){items.push({text:suggestion,onclick:function(){editor.insertContent(editor.dom.encode(suggestion)),editor.dom.remove(spans),checkIfFinished()}})}),items.push({text:"-"}),hasDictionarySupport&&items.push({text:"Add to Dictionary",onclick:function(){addToDictionary(word,spans)}}),items.push.apply(items,[{text:"Ignore",onclick:function(){ignoreWord(word,spans)}},{text:"Ignore all",onclick:function(){ignoreWord(word,spans,!0)}}]),suggestionsMenu=new Menu({items:items,context:"contextmenu",onautohide:function(e){-1!=e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){suggestionsMenu.remove(),suggestionsMenu=null}}),suggestionsMenu.renderTo(document.body);var pos=DOMUtils.DOM.getPos(editor.getContentAreaContainer()),targetPos=editor.dom.getPos(spans[0]),root=editor.dom.getRoot();"BODY"==root.nodeName?(targetPos.x-=root.ownerDocument.documentElement.scrollLeft||root.scrollLeft,targetPos.y-=root.ownerDocument.documentElement.scrollTop||root.scrollTop):(targetPos.x-=root.scrollLeft,targetPos.y-=root.scrollTop),pos.x+=targetPos.x,pos.y+=targetPos.y,suggestionsMenu.moveTo(pos.x,pos.y+spans[0].offsetHeight)}function getWordCharPattern(){return editor.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`§©«®±¶·¸»¼½¾¿×÷¤”“„    ]+',"g")}function defaultSpellcheckCallback(method,text,doneCallback,errorCallback){var data={method:method},postData="";"spellcheck"==method&&(data.text=text,data.lang=settings.spellchecker_language),"addToDictionary"==method&&(data.word=text),Tools.each(data,function(value,key){postData&&(postData+="&"),postData+=key+"="+encodeURIComponent(value)}),XHR.send({url:new URI(url).toAbsolute(settings.spellchecker_rpc_url),type:"post",content_type:"application/x-www-form-urlencoded",data:postData,success:function(result){result=JSON.parse(result),result?result.error?errorCallback(result.error):doneCallback(result):errorCallback("Sever response wasn't proper JSON.")},error:function(type,xhr){errorCallback("Spellchecker request error: "+xhr.status)}})}function sendRpcCall(name,data,successCallback,errorCallback){var spellCheckCallback=settings.spellchecker_callback||defaultSpellcheckCallback;spellCheckCallback.call(self,name,data,successCallback,errorCallback)}function spellcheck(){function errorCallback(message){editor.windowManager.alert(message),editor.setProgressState(!1),finish()}return started?void finish():(finish(),editor.setProgressState(!0),sendRpcCall("spellcheck",getTextMatcher().text,markErrors,errorCallback),void editor.focus())}function checkIfFinished(){editor.dom.select("span.mce-spellchecker-word").length||finish()}function addToDictionary(word,spans){editor.setProgressState(!0),sendRpcCall("addToDictionary",word,function(){editor.setProgressState(!1),editor.dom.remove(spans,!0),checkIfFinished()},function(message){editor.windowManager.alert(message),editor.setProgressState(!1)})}function ignoreWord(word,spans,all){editor.selection.collapse(),all?Tools.each(editor.dom.select("span.mce-spellchecker-word"),function(span){span.getAttribute("data-mce-word")==word&&editor.dom.remove(span,!0)}):editor.dom.remove(spans,!0),checkIfFinished()}function finish(){getTextMatcher().reset(),self.textMatcher=null,started&&(started=!1,editor.fire("SpellcheckEnd"))}function getElmIndex(elm){var value=elm.getAttribute("data-mce-index");return"number"==typeof value?""+value:value}function findSpansByIndex(index){var nodes,spans=[];if(nodes=Tools.toArray(editor.getBody().getElementsByTagName("span")),nodes.length)for(var i=0;i0){var rng=editor.dom.createRng();rng.setStartBefore(spans[0]),rng.setEndAfter(spans[spans.length-1]),editor.selection.setRng(rng),showSuggestions(target.getAttribute("data-mce-word"),spans)}}}),editor.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:spellcheck,selectable:!0,onPostRender:function(){var self=this;self.active(started),editor.on("SpellcheckStart SpellcheckEnd",function(){self.active(started)})}});var buttonArgs={tooltip:"Spellcheck",onclick:spellcheck,onPostRender:function(){var self=this;editor.on("SpellcheckStart SpellcheckEnd",function(){self.active(started)})}};languageMenuItems.length>1&&(buttonArgs.type="splitbutton",buttonArgs.menu=languageMenuItems,buttonArgs.onshow=updateSelection,buttonArgs.onselect=function(e){settings.spellchecker_language=e.control.settings.data}),editor.addButton("spellchecker",buttonArgs),editor.addCommand("mceSpellCheck",spellcheck),editor.on("remove",function(){suggestionsMenu&&(suggestionsMenu.remove(),suggestionsMenu=null)}),editor.on("change",checkIfFinished),this.getTextMatcher=getTextMatcher,this.getWordCharPattern=getWordCharPattern,this.markErrors=markErrors,this.getLanguage=function(){return settings.spellchecker_language},settings.spellchecker_language=settings.spellchecker_language||settings.language||"en"})}),expose(["tinymce/spellcheckerplugin/DomTextMatcher"])}(this)}.apply(root,arguments)})}(this),function(root){define("tinymce-tabfocus",["tinymce"],function(){return function(){tinymce.PluginManager.add("tabfocus",function(editor){function tabCancel(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function tabHandler(e){function find(direction){function canSelectRecursive(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&canSelectRecursive(e.parentNode)}function canSelect(el){return/INPUT|TEXTAREA|BUTTON/.test(el.tagName)&&tinymce.get(e.id)&&-1!=el.tabIndex&&canSelectRecursive(el)}if(el=DOM.select(":input:enabled,*[tabindex]:not(iframe)"),each(el,function(e,i){return e.id==editor.id?(x=i,!1):void 0}),direction>0){for(i=x+1;i=0;i--)if(canSelect(el[i]))return el[i];return null}var x,el,v,i;if(!(9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.isDefaultPrevented())&&(v=explode(editor.getParam("tab_focus",editor.getParam("tabfocus_elements",":prev,:next"))),1==v.length&&(v[1]=v[0],v[0]=":prev"),el=e.shiftKey?":prev"==v[0]?find(-1):DOM.get(v[0]):":next"==v[1]?find(1):DOM.get(v[1]))){var focusEditor=tinymce.get(el.id||el.name);el.id&&focusEditor?focusEditor.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),el.focus()},10),e.preventDefault()}}var DOM=tinymce.DOM,each=tinymce.each,explode=tinymce.explode;editor.on("init",function(){editor.inline&&tinymce.DOM.setAttrib(editor.getBody(),"tabIndex",null),editor.on("keyup",tabCancel),tinymce.Env.gecko?editor.on("keypress keydown",tabHandler):editor.on("keydown",tabHandler)})})}.apply(root,arguments)})}(this),function(root){define("tinymce-table",["tinymce"],function(){return function(){!function(exports,undefined){"use strict";function require(ids,callback){for(var module,defs=[],i=0;i "+part+" tr",table);each(rows,function(tr,y){y+=startY,each(dom.select("> td, > th",tr),function(td,x){var x2,y2,rowspan,colspan;if(grid[y])for(;grid[y][x];)x++;for(rowspan=getSpanVal(td,"rowspan"),colspan=getSpanVal(td,"colspan"),y2=y;y+rowspan>y2;y2++)for(grid[y2]||(grid[y2]=[]),x2=x;x+colspan>x2;x2++)grid[y2][x2]={part:part,real:y2==y&&x2==x,elm:td,rowspan:rowspan,colspan:colspan};gridWidth=Math.max(gridWidth,x+1)})}),startY+=rows.length})}function cloneNode(node,children){return node=node.cloneNode(children),node.removeAttribute("id"),node}function getCell(x,y){var row;return row=grid[y],row?row[x]:void 0}function setSpanVal(td,name,val){td&&(val=parseInt(val,10),1===val?td.removeAttribute(name,1):td.setAttribute(name,val,1))}function isCellSelected(cell){return cell&&(dom.hasClass(cell.elm,"mce-item-selected")||cell==selectedCell)}function getSelectedRows(){var rows=[];return each(table.rows,function(row){each(row.cells,function(cell){return dom.hasClass(cell,"mce-item-selected")||selectedCell&&cell==selectedCell.elm?(rows.push(row),!1):void 0})}),rows}function deleteTable(){var rng=dom.createRng();rng.setStartAfter(table),rng.setEndAfter(table),selection.setRng(rng),dom.remove(table)}function cloneCell(cell){var formatNode,cloneFormats={};return editor.settings.table_clone_elements!==!1&&(cloneFormats=Tools.makeMap((editor.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),Tools.walk(cell,function(node){var curNode;return 3==node.nodeType?(each(dom.getParents(node.parentNode,null,cell).reverse(),function(node){cloneFormats[node.nodeName]&&(node=cloneNode(node,!1),formatNode?curNode&&curNode.appendChild(node):formatNode=curNode=node,curNode=node)}),curNode&&(curNode.innerHTML=Env.ie?" ":'
    '),!1):void 0},"childNodes"),cell=cloneNode(cell,!1),setSpanVal(cell,"rowSpan",1),setSpanVal(cell,"colSpan",1),formatNode?cell.appendChild(formatNode):(!Env.ie||Env.ie>10)&&(cell.innerHTML='
    '),cell}function cleanup(){var row,rng=dom.createRng();return each(dom.select("tr",table),function(tr){0===tr.cells.length&&dom.remove(tr)}),0===dom.select("tr",table).length?(rng.setStartBefore(table),rng.setEndBefore(table),selection.setRng(rng),void dom.remove(table)):(each(dom.select("thead,tbody,tfoot",table),function(part){0===part.rows.length&&dom.remove(part)}),buildGrid(),void(startPos&&(row=grid[Math.min(grid.length-1,startPos.y)],row&&(selection.select(row[Math.min(row.length-1,startPos.x)].elm,!0),selection.collapse(!0)))))}function fillLeftDown(x,y,rows,cols){var tr,x2,r,c,cell;for(tr=grid[y][x].elm.parentNode,r=1;rows>=r;r++)if(tr=dom.getNext(tr,"tr")){for(x2=x;x2>=0;x2--)if(cell=grid[y+r][x2].elm,cell.parentNode==tr){for(c=1;cols>=c;c++)dom.insertAfter(cloneCell(cell),cell);break}if(-1==x2)for(c=1;cols>=c;c++)tr.insertBefore(cloneCell(tr.cells[0]),tr.cells[0])}}function split(){each(grid,function(row,y){each(row,function(cell,x){var colSpan,rowSpan,i;if(isCellSelected(cell)&&(cell=cell.elm,colSpan=getSpanVal(cell,"colspan"),rowSpan=getSpanVal(cell,"rowspan"),colSpan>1||rowSpan>1)){for(setSpanVal(cell,"rowSpan",1),setSpanVal(cell,"colSpan",1),i=0;colSpan-1>i;i++)dom.insertAfter(cloneCell(cell),cell);fillLeftDown(x,y,rowSpan-1,colSpan)}})})}function merge(cell,cols,rows){var pos,startX,startY,endX,endY,x,y,startCell,endCell,children,count;if(cell?(pos=getPos(cell),startX=pos.x,startY=pos.y,endX=startX+(cols-1),endY=startY+(rows-1)):(startPos=endPos=null,each(grid,function(row,y){each(row,function(cell,x){isCellSelected(cell)&&(startPos||(startPos={x:x,y:y}),endPos={x:x,y:y})})}),startPos&&(startX=startPos.x,startY=startPos.y,endX=endPos.x,endY=endPos.y)),startCell=getCell(startX,startY),endCell=getCell(endX,endY),startCell&&endCell&&startCell.part==endCell.part){for(split(),buildGrid(),startCell=getCell(startX,startY).elm,setSpanVal(startCell,"colSpan",endX-startX+1),setSpanVal(startCell,"rowSpan",endY-startY+1),y=startY;endY>=y;y++)for(x=startX;endX>=x;x++)grid[y]&&grid[y][x]&&(cell=grid[y][x].elm,cell!=startCell&&(children=Tools.grep(cell.childNodes),each(children,function(node){startCell.appendChild(node)}),children.length&&(children=Tools.grep(startCell.childNodes),count=0,each(children,function(node){"BR"==node.nodeName&&dom.getAttrib(node,"data-mce-bogus")&&count++0&&grid[posY-1][x]&&(otherCell=grid[posY-1][x].elm,rowSpan=getSpanVal(otherCell,"rowSpan"),rowSpan>1)){setSpanVal(otherCell,"rowSpan",rowSpan+1);continue}}else if(rowSpan=getSpanVal(cell,"rowspan"),rowSpan>1){setSpanVal(cell,"rowSpan",rowSpan+1);continue}newCell=cloneCell(cell),setSpanVal(newCell,"colSpan",cell.colSpan),newRow.appendChild(newCell),lastCell=cell}newRow.hasChildNodes()&&(before?rowElm.parentNode.insertBefore(newRow,rowElm):dom.insertAfter(newRow,rowElm))}}function insertCol(before){var posX,lastCell;each(grid,function(row){return each(row,function(cell,x){return isCellSelected(cell)&&(posX=x,before)?!1:void 0}),before?!posX:void 0}),each(grid,function(row,y){var cell,rowSpan,colSpan;row[posX]&&(cell=row[posX].elm,cell!=lastCell&&(colSpan=getSpanVal(cell,"colspan"),rowSpan=getSpanVal(cell,"rowspan"),1==colSpan?before?(cell.parentNode.insertBefore(cloneCell(cell),cell),fillLeftDown(posX,y,rowSpan-1,colSpan)):(dom.insertAfter(cloneCell(cell),cell),fillLeftDown(posX,y,rowSpan-1,colSpan)):setSpanVal(cell,"colSpan",cell.colSpan+1),lastCell=cell))})}function deleteCols(){var cols=[];each(grid,function(row){each(row,function(cell,x){isCellSelected(cell)&&-1===Tools.inArray(cols,x)&&(each(grid,function(row){var colSpan,cell=row[x].elm;colSpan=getSpanVal(cell,"colSpan"),colSpan>1?setSpanVal(cell,"colSpan",colSpan-1):dom.remove(cell)}),cols.push(x))})}),cleanup()}function deleteRows(){function deleteRow(tr){var pos,lastCell;each(tr.cells,function(cell){var rowSpan=getSpanVal(cell,"rowSpan");rowSpan>1&&(setSpanVal(cell,"rowSpan",rowSpan-1),pos=getPos(cell),fillLeftDown(pos.x,pos.y,1,1))}),pos=getPos(tr.cells[0]),each(grid[pos.y],function(cell){var rowSpan;cell=cell.elm,cell!=lastCell&&(rowSpan=getSpanVal(cell,"rowSpan"),1>=rowSpan?dom.remove(cell):setSpanVal(cell,"rowSpan",rowSpan-1),lastCell=cell)})}var rows;rows=getSelectedRows(),each(rows.reverse(),function(tr){deleteRow(tr)}),cleanup()}function cutRows(){var rows=getSelectedRows();return dom.remove(rows),cleanup(),rows}function copyRows(){var rows=getSelectedRows();return each(rows,function(row,i){rows[i]=cloneNode(row,!0); -}),rows}function pasteRows(rows,before){var selectedRows=getSelectedRows(),targetRow=selectedRows[before?0:selectedRows.length-1],targetCellCount=targetRow.cells.length;rows&&(each(grid,function(row){var match;return targetCellCount=0,each(row,function(cell){cell.real&&(targetCellCount+=cell.colspan),cell.elm.parentNode==targetRow&&(match=1)}),match?!1:void 0}),before||rows.reverse(),each(rows,function(row){var i,cell,cellCount=row.cells.length;for(i=0;cellCount>i;i++)cell=row.cells[i],setSpanVal(cell,"colSpan",1),setSpanVal(cell,"rowSpan",1);for(i=cellCount;targetCellCount>i;i++)row.appendChild(cloneCell(row.cells[cellCount-1]));for(i=targetCellCount;cellCount>i;i++)dom.remove(row.cells[i]);before?targetRow.parentNode.insertBefore(row,targetRow):dom.insertAfter(row,targetRow)}),dom.removeClass(dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function getPos(target){var pos;return each(grid,function(row,y){return each(row,function(cell,x){return cell.elm==target?(pos={x:x,y:y},!1):void 0}),!pos}),pos}function setStartCell(cell){startPos=getPos(cell)}function findEndPos(){var maxX,maxY;return maxX=maxY=0,each(grid,function(row,y){each(row,function(cell,x){var colSpan,rowSpan;isCellSelected(cell)&&(cell=grid[y][x],x>maxX&&(maxX=x),y>maxY&&(maxY=y),cell.real&&(colSpan=cell.colspan-1,rowSpan=cell.rowspan-1,colSpan&&x+colSpan>maxX&&(maxX=x+colSpan),rowSpan&&y+rowSpan>maxY&&(maxY=y+rowSpan)))})}),{x:maxX,y:maxY}}function setEndCell(cell){var startX,startY,endX,endY,maxX,maxY,colSpan,rowSpan,x,y;if(endPos=getPos(cell),startPos&&endPos){for(startX=Math.min(startPos.x,endPos.x),startY=Math.min(startPos.y,endPos.y),endX=Math.max(startPos.x,endPos.x),endY=Math.max(startPos.y,endPos.y),maxX=endX,maxY=endY,y=startY;maxY>=y;y++)cell=grid[y][startX],cell.real||startX-(cell.colspan-1)=x;x++)cell=grid[startY][x],cell.real||startY-(cell.rowspan-1)=y;y++)for(x=startX;endX>=x;x++)cell=grid[y][x],cell.real&&(colSpan=cell.colspan-1,rowSpan=cell.rowspan-1,colSpan&&x+colSpan>maxX&&(maxX=x+colSpan),rowSpan&&y+rowSpan>maxY&&(maxY=y+rowSpan));for(dom.removeClass(dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),y=startY;maxY>=y;y++)for(x=startX;maxX>=x;x++)grid[y][x]&&dom.addClass(grid[y][x].elm,"mce-item-selected")}}function moveRelIdx(cellElm,delta){var pos,index,cell;pos=getPos(cellElm),index=pos.y*gridWidth+pos.x;do{if(index+=delta,cell=getCell(index%gridWidth,Math.floor(index/gridWidth)),!cell)break;if(cell.elm!=cellElm)return selection.select(cell.elm,!0),dom.isEmpty(cell.elm)&&selection.collapse(!0),!0}while(cell.elm==cellElm);return!1}var grid,gridWidth,startPos,endPos,selectedCell,selection=editor.selection,dom=selection.dom;table=table||dom.getParent(selection.getStart(),"table"),buildGrid(),selectedCell=dom.getParent(selection.getStart(),"th,td"),selectedCell&&(startPos=getPos(selectedCell),endPos=findEndPos(),selectedCell=getCell(startPos.x,startPos.y)),Tools.extend(this,{deleteTable:deleteTable,split:split,merge:merge,insertRow:insertRow,insertCol:insertCol,deleteCols:deleteCols,deleteRows:deleteRows,cutRows:cutRows,copyRows:copyRows,pasteRows:pasteRows,getPos:getPos,setStartCell:setStartCell,setEndCell:setEndCell,moveRelIdx:moveRelIdx,refresh:buildGrid})}}),define("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/Env","tinymce/util/Tools"],function(VK,Env,Tools){function getSpanVal(td,name){return parseInt(td.getAttribute(name)||1,10)}var each=Tools.each;return function(editor){function moveWebKitSelection(){function eventHandler(e){function handle(upBool,sourceNode){var siblingDirection=upBool?"previousSibling":"nextSibling",currentRow=editor.dom.getParent(sourceNode,"tr"),siblingRow=currentRow[siblingDirection];if(siblingRow)return moveCursorToRow(editor,sourceNode,siblingRow,upBool),e.preventDefault(),!0;var tableNode=editor.dom.getParent(currentRow,"table"),middleNode=currentRow.parentNode,parentNodeName=middleNode.nodeName.toLowerCase();if("tbody"===parentNodeName||parentNodeName===(upBool?"tfoot":"thead")){var targetParent=getTargetParent(upBool,tableNode,middleNode,"tbody");if(null!==targetParent)return moveToRowInTarget(upBool,targetParent,sourceNode)}return escapeTable(upBool,currentRow,siblingDirection,tableNode)}function getTargetParent(upBool,topNode,secondNode,nodeName){var tbodies=editor.dom.select(">"+nodeName,topNode),position=tbodies.indexOf(secondNode);if(upBool&&0===position||!upBool&&position===tbodies.length-1)return getFirstHeadOrFoot(upBool,topNode);if(-1===position){var topOrBottom="thead"===secondNode.tagName.toLowerCase()?0:tbodies.length-1;return tbodies[topOrBottom]}return tbodies[position+(upBool?-1:1)]}function getFirstHeadOrFoot(upBool,parent){var tagName=upBool?"thead":"tfoot",headOrFoot=editor.dom.select(">"+tagName,parent);return 0!==headOrFoot.length?headOrFoot[0]:null}function moveToRowInTarget(upBool,targetParent,sourceNode){var targetRow=getChildForDirection(targetParent,upBool);return targetRow&&moveCursorToRow(editor,sourceNode,targetRow,upBool),e.preventDefault(),!0}function escapeTable(upBool,currentRow,siblingDirection,table){var tableSibling=table[siblingDirection];if(tableSibling)return moveCursorToStartOfElement(tableSibling),!0;var parentCell=editor.dom.getParent(table,"td,th");if(parentCell)return handle(upBool,parentCell,e);var backUpSibling=getChildForDirection(currentRow,!upBool);return moveCursorToStartOfElement(backUpSibling),e.preventDefault(),!1}function getChildForDirection(parent,up){var child=parent&&parent[up?"lastChild":"firstChild"];return child&&"BR"===child.nodeName?editor.dom.getParent(child,"td,th"):child}function moveCursorToStartOfElement(n){editor.selection.setCursorLocation(n,0)}function isVerticalMovement(){return key==VK.UP||key==VK.DOWN}function isInTable(editor){var node=editor.selection.getNode(),currentRow=editor.dom.getParent(node,"tr");return null!==currentRow}function columnIndex(column){for(var colIndex=0,c=column;c.previousSibling;)c=c.previousSibling,colIndex+=getSpanVal(c,"colspan");return colIndex}function findColumn(rowElement,columnIndex){var c=0,r=0;return each(rowElement.children,function(cell,i){return c+=getSpanVal(cell,"colspan"),r=i,c>columnIndex?!1:void 0}),r}function moveCursorToRow(ed,node,row,upBool){var srcColumnIndex=columnIndex(editor.dom.getParent(node,"td,th")),tgtColumnIndex=findColumn(row,srcColumnIndex),tgtNode=row.childNodes[tgtColumnIndex],rowCellTarget=getChildForDirection(tgtNode,upBool);moveCursorToStartOfElement(rowCellTarget||tgtNode)}function shouldFixCaret(preBrowserNode){var newNode=editor.selection.getNode(),newParent=editor.dom.getParent(newNode,"td,th"),oldParent=editor.dom.getParent(preBrowserNode,"td,th");return newParent&&newParent!==oldParent&&checkSameParentTable(newParent,oldParent)}function checkSameParentTable(nodeOne,NodeTwo){return editor.dom.getParent(nodeOne,"TABLE")===editor.dom.getParent(NodeTwo,"TABLE")}var key=e.keyCode;if(isVerticalMovement()&&isInTable(editor)){var preBrowserNode=editor.selection.getNode();setTimeout(function(){shouldFixCaret(preBrowserNode)&&handle(!e.shiftKey&&key===VK.UP,preBrowserNode,e)},0)}}editor.on("KeyDown",function(e){eventHandler(e)})}function fixBeforeTableCaretBug(){function isAtStart(rng,par){var elm,doc=par.ownerDocument,rng2=doc.createRange();return rng2.setStartBefore(par),rng2.setEnd(rng.endContainer,rng.endOffset),elm=doc.createElement("body"),elm.appendChild(rng2.cloneContents()),0===elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}editor.on("KeyDown",function(e){var rng,table,dom=editor.dom;(37==e.keyCode||38==e.keyCode)&&(rng=editor.selection.getRng(),table=dom.getParent(rng.startContainer,"table"),table&&editor.getBody().firstChild==table&&isAtStart(rng,table)&&(rng=dom.createRng(),rng.setStartBefore(table),rng.setEndBefore(table),editor.selection.setRng(rng),e.preventDefault()))})}function fixTableCaretPos(){editor.on("KeyDown SetContent VisualAid",function(){var last;for(last=editor.getBody().lastChild;last;last=last.previousSibling)if(3==last.nodeType){if(last.nodeValue.length>0)break}else if(1==last.nodeType&&("BR"==last.tagName||!last.getAttribute("data-mce-bogus")))break;last&&"TABLE"==last.nodeName&&(editor.settings.forced_root_block?editor.dom.add(editor.getBody(),editor.settings.forced_root_block,editor.settings.forced_root_block_attrs,Env.ie&&Env.ie<11?" ":'
    '):editor.dom.add(editor.getBody(),"br",{"data-mce-bogus":"1"}))}),editor.on("PreProcess",function(o){var last=o.node.lastChild;last&&("BR"==last.nodeName||1==last.childNodes.length&&("BR"==last.firstChild.nodeName||" "==last.firstChild.nodeValue))&&last.previousSibling&&"TABLE"==last.previousSibling.nodeName&&editor.dom.remove(last)})}function fixTableCellSelection(){function tableCellSelected(ed,rng,n,currentCell){var tableParent,allOfCellSelected,tableCellSelection,TEXT_NODE=3,table=ed.dom.getParent(rng.startContainer,"TABLE");return table&&(tableParent=table.parentNode),allOfCellSelected=rng.startContainer.nodeType==TEXT_NODE&&0===rng.startOffset&&0===rng.endOffset&¤tCell&&("TR"==n.nodeName||n==tableParent),tableCellSelection=("TD"==n.nodeName||"TH"==n.nodeName)&&!currentCell,allOfCellSelected||tableCellSelection}function fixSelection(){var rng=editor.selection.getRng(),n=editor.selection.getNode(),currentCell=editor.dom.getParent(rng.startContainer,"TD,TH");if(tableCellSelected(editor,rng,n,currentCell)){currentCell||(currentCell=n);for(var end=currentCell.lastChild;end.lastChild;)end=end.lastChild;3==end.nodeType&&(rng.setEnd(end,end.data.length),editor.selection.setRng(rng))}}editor.on("KeyDown",function(){fixSelection()}),editor.on("MouseDown",function(e){2!=e.button&&fixSelection()})}function deleteTable(){editor.on("keydown",function(e){if((e.keyCode==VK.DELETE||e.keyCode==VK.BACKSPACE)&&!e.isDefaultPrevented()){var table=editor.dom.getParent(editor.selection.getStart(),"table");if(table){for(var cells=editor.dom.select("td,th",table),i=cells.length;i--;)if(!editor.dom.hasClass(cells[i],"mce-item-selected"))return;e.preventDefault(),editor.execCommand("mceTableDelete")}}})}deleteTable(),Env.webkit&&(moveWebKitSelection(),fixTableCellSelection()),Env.gecko&&(fixBeforeTableCaretBug(),fixTableCaretPos()),Env.ie>10&&(fixBeforeTableCaretBug(),fixTableCaretPos())}}),define("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(TableGrid,TreeWalker,Tools){return function(editor){function clear(force){editor.getBody().style.webkitUserSelect="",(force||hasCellSelection)&&(editor.dom.removeClass(editor.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),hasCellSelection=!1)}function cellSelectionHandler(e){var sel,table,target=e.target;if(!resizing&&startCell&&(tableGrid||target!=startCell)&&("TD"==target.nodeName||"TH"==target.nodeName)){table=dom.getParent(target,"table"),table==startTable&&(tableGrid||(tableGrid=new TableGrid(editor,table),tableGrid.setStartCell(startCell),editor.getBody().style.webkitUserSelect="none"),tableGrid.setEndCell(target),hasCellSelection=!0),sel=editor.selection.getSel();try{sel.removeAllRanges?sel.removeAllRanges():sel.empty()}catch(ex){}e.preventDefault()}}var tableGrid,startCell,startTable,resizing,dom=editor.dom,hasCellSelection=!0;return editor.on("MouseDown",function(e){2==e.button||resizing||(clear(),startCell=dom.getParent(e.target,"td,th"),startTable=dom.getParent(startCell,"table"))}),editor.on("mouseover",cellSelectionHandler),editor.on("remove",function(){dom.unbind(editor.getDoc(),"mouseover",cellSelectionHandler)}),editor.on("MouseUp",function(){function setPoint(node,start){var walker=new TreeWalker(node,node);do{if(3==node.nodeType&&0!==Tools.trim(node.nodeValue).length)return void(start?rng.setStart(node,0):rng.setEnd(node,node.nodeValue.length));if("BR"==node.nodeName)return void(start?rng.setStartBefore(node):rng.setEndBefore(node))}while(node=start?walker.next():walker.prev())}var rng,selectedCells,walker,node,lastNode,sel=editor.selection;if(startCell){if(tableGrid&&(editor.getBody().style.webkitUserSelect=""),selectedCells=dom.select("td.mce-item-selected,th.mce-item-selected"),selectedCells.length>0){rng=dom.createRng(),node=selectedCells[0],rng.setStartBefore(node),rng.setEndAfter(node),setPoint(node,1),walker=new TreeWalker(node,dom.getParent(selectedCells[0],"table"));do if("TD"==node.nodeName||"TH"==node.nodeName){if(!dom.hasClass(node,"mce-item-selected"))break;lastNode=node}while(node=walker.next());setPoint(lastNode),sel.setRng(rng)}editor.nodeChanged(),startCell=tableGrid=startTable=null}}),editor.on("KeyUp Drop SetContent",function(e){clear("setcontent"==e.type),startCell=tableGrid=startTable=null,resizing=!1}),editor.on("ObjectResizeStart ObjectResized",function(e){resizing="objectresized"!=e.type}),{clear:clear}}}),define("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(Tools,Env){var each=Tools.each;return function(editor){function createColorPickAction(){var colorPickerCallback=editor.settings.color_picker_callback;return colorPickerCallback?function(){var self=this;colorPickerCallback.call(editor,function(value){self.value(value).fire("change")},self.value())}:void 0}function createStyleForm(dom){return{title:"Advanced",type:"form",defaults:{onchange:function(){updateStyle(dom,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:createColorPickAction()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:createColorPickAction()}]}]}}function removePxSuffix(size){return size?size.replace(/px$/,""):""}function addSizeSuffix(size){return/^[0-9]+$/.test(size)&&(size+="px"),size}function unApplyAlign(elm){each("left center right".split(" "),function(name){editor.formatter.remove("align"+name,{},elm)})}function unApplyVAlign(elm){each("top middle bottom".split(" "),function(name){editor.formatter.remove("valign"+name,{},elm)})}function buildListItems(inputList,itemCallback,startItems){function appendItems(values,output){return output=output||[],Tools.each(values,function(item){var menuItem={text:item.text||item.title};item.menu?menuItem.menu=appendItems(item.menu):(menuItem.value=item.value,itemCallback&&itemCallback(menuItem)),output.push(menuItem)}),output}return appendItems(inputList,startItems||[])}function updateStyle(dom,win,isStyleCtrl){var data=win.toJSON(),css=dom.parseStyle(data.style);isStyleCtrl?(win.find("#borderColor").value(css["border-color"]||"")[0].fire("change"),win.find("#backgroundColor").value(css["background-color"]||"")[0].fire("change")):(css["border-color"]=data.borderColor,css["background-color"]=data.backgroundColor),win.find("#style").value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))))}function appendStylesToData(dom,data,elm){var css=dom.parseStyle(dom.getAttrib(elm,"style"));css["border-color"]&&(data.borderColor=css["border-color"]),css["background-color"]&&(data.backgroundColor=css["background-color"]),data.style=dom.serializeStyle(css)}var self=this;self.tableProps=function(){self.table(!0)},self.table=function(isProps){function onSubmitTableForm(){var captionElm;updateStyle(dom,this),data=Tools.extend(data,this.toJSON()),Tools.each("backgroundColor borderColor".split(" "),function(name){delete data[name]}),data["class"]===!1&&delete data["class"],editor.undoManager.transact(function(){tableElm||(tableElm=editor.plugins.table.insertTable(data.cols||1,data.rows||1)),editor.dom.setAttribs(tableElm,{cellspacing:data.cellspacing,cellpadding:data.cellpadding,border:data.border,style:data.style,"class":data["class"]}),dom.getAttrib(tableElm,"width")?dom.setAttrib(tableElm,"width",removePxSuffix(data.width)):dom.setStyle(tableElm,"width",addSizeSuffix(data.width)),dom.setStyle(tableElm,"height",addSizeSuffix(data.height)),captionElm=dom.select("caption",tableElm)[0],captionElm&&!data.caption&&dom.remove(captionElm),!captionElm&&data.caption&&(captionElm=dom.create("caption"),captionElm.innerHTML=Env.ie?" ":'
    ',tableElm.insertBefore(captionElm,tableElm.firstChild)),unApplyAlign(tableElm),data.align&&editor.formatter.apply("align"+data.align,{},tableElm),editor.focus(),editor.addVisual()})}var tableElm,colsCtrl,rowsCtrl,classListCtrl,generalTableForm,dom=editor.dom,data={};isProps===!0?(tableElm=dom.getParent(editor.selection.getStart(),"table"),tableElm&&(data={width:removePxSuffix(dom.getStyle(tableElm,"width")||dom.getAttrib(tableElm,"width")),height:removePxSuffix(dom.getStyle(tableElm,"height")||dom.getAttrib(tableElm,"height")),cellspacing:tableElm?dom.getAttrib(tableElm,"cellspacing"):"",cellpadding:tableElm?dom.getAttrib(tableElm,"cellpadding"):"",border:tableElm?dom.getAttrib(tableElm,"border"):"",caption:!!dom.select("caption",tableElm)[0],"class":dom.getAttrib(tableElm,"class")},each("left center right".split(" "),function(name){editor.formatter.matchNode(tableElm,"align"+name)&&(data.align=name)}))):(colsCtrl={label:"Cols",name:"cols"},rowsCtrl={label:"Rows",name:"rows"}),editor.settings.table_class_list&&(data["class"]&&(data["class"]=data["class"].replace(/\s*mce\-item\-table\s*/g,"")),classListCtrl={name:"class",type:"listbox",label:"Class",values:buildListItems(editor.settings.table_class_list,function(item){item.value&&(item.textStyle=function(){return editor.formatter.getCssText({block:"table",classes:[item.value]})})})}),generalTableForm={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[colsCtrl,rowsCtrl,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},classListCtrl]},editor.settings.table_advtab!==!1?(appendStylesToData(dom,data,tableElm),editor.windowManager.open({title:"Table properties",data:data,bodyType:"tabpanel",body:[{title:"General",type:"form",items:generalTableForm},createStyleForm(dom)],onsubmit:onSubmitTableForm})):editor.windowManager.open({title:"Table properties",data:data,body:generalTableForm,onsubmit:onSubmitTableForm})},self.merge=function(grid,cell){editor.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var data=this.toJSON();editor.undoManager.transact(function(){grid.merge(cell,data.cols,data.rows)})}})},self.cell=function(){function onSubmitCellForm(){updateStyle(dom,this),data=Tools.extend(data,this.toJSON()),editor.undoManager.transact(function(){each(cells,function(cellElm){editor.dom.setAttribs(cellElm,{scope:data.scope,style:data.style,"class":data["class"]}),editor.dom.setStyles(cellElm,{width:addSizeSuffix(data.width),height:addSizeSuffix(data.height)}),data.type&&cellElm.nodeName.toLowerCase()!=data.type&&(cellElm=dom.rename(cellElm,data.type)),unApplyAlign(cellElm),data.align&&editor.formatter.apply("align"+data.align,{},cellElm),unApplyVAlign(cellElm),data.valign&&editor.formatter.apply("valign"+data.valign,{},cellElm)}),editor.focus()})}var cellElm,data,classListCtrl,dom=editor.dom,cells=[];if(cells=editor.dom.select("td.mce-item-selected,th.mce-item-selected"),cellElm=editor.dom.getParent(editor.selection.getStart(),"td,th"),!cells.length&&cellElm&&cells.push(cellElm),cellElm=cellElm||cells[0]){data={width:removePxSuffix(dom.getStyle(cellElm,"width")||dom.getAttrib(cellElm,"width")),height:removePxSuffix(dom.getStyle(cellElm,"height")||dom.getAttrib(cellElm,"height")),scope:dom.getAttrib(cellElm,"scope"),"class":dom.getAttrib(cellElm,"class")},data.type=cellElm.nodeName.toLowerCase(),each("left center right".split(" "),function(name){editor.formatter.matchNode(cellElm,"align"+name)&&(data.align=name)}),each("top middle bottom".split(" "),function(name){editor.formatter.matchNode(cellElm,"valign"+name)&&(data.valign=name)}),editor.settings.table_cell_class_list&&(classListCtrl={name:"class",type:"listbox",label:"Class",values:buildListItems(editor.settings.table_cell_class_list,function(item){item.value&&(item.textStyle=function(){return editor.formatter.getCssText({block:"td",classes:[item.value]})})})});var generalCellForm={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},classListCtrl]};editor.settings.table_cell_advtab!==!1?(appendStylesToData(dom,data,cellElm),editor.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:data,body:[{title:"General",type:"form",items:generalCellForm},createStyleForm(dom)],onsubmit:onSubmitCellForm})):editor.windowManager.open({title:"Cell properties",data:data,body:generalCellForm,onsubmit:onSubmitCellForm})}},self.row=function(){function onSubmitRowForm(){var tableElm,oldParentElm,parentElm;updateStyle(dom,this),data=Tools.extend(data,this.toJSON()),editor.undoManager.transact(function(){var toType=data.type;each(rows,function(rowElm){editor.dom.setAttribs(rowElm,{scope:data.scope,style:data.style,"class":data["class"]}),editor.dom.setStyles(rowElm,{height:addSizeSuffix(data.height)}),toType!=rowElm.parentNode.nodeName.toLowerCase()&&(tableElm=dom.getParent(rowElm,"table"),oldParentElm=rowElm.parentNode,parentElm=dom.select(toType,tableElm)[0],parentElm||(parentElm=dom.create(toType),tableElm.firstChild?tableElm.insertBefore(parentElm,tableElm.firstChild):tableElm.appendChild(parentElm)),parentElm.appendChild(rowElm),oldParentElm.hasChildNodes()||dom.remove(oldParentElm)),unApplyAlign(rowElm),data.align&&editor.formatter.apply("align"+data.align,{},rowElm)}),editor.focus()})}var tableElm,cellElm,rowElm,classListCtrl,data,generalRowForm,dom=editor.dom,rows=[];tableElm=editor.dom.getParent(editor.selection.getStart(),"table"),cellElm=editor.dom.getParent(editor.selection.getStart(),"td,th"),each(tableElm.rows,function(row){each(row.cells,function(cell){return dom.hasClass(cell,"mce-item-selected")||cell==cellElm?(rows.push(row),!1):void 0})}),rowElm=rows[0],rowElm&&(data={height:removePxSuffix(dom.getStyle(rowElm,"height")||dom.getAttrib(rowElm,"height")),scope:dom.getAttrib(rowElm,"scope"),"class":dom.getAttrib(rowElm,"class")},data.type=rowElm.parentNode.nodeName.toLowerCase(),each("left center right".split(" "),function(name){editor.formatter.matchNode(rowElm,"align"+name)&&(data.align=name)}),editor.settings.table_row_class_list&&(classListCtrl={name:"class",type:"listbox",label:"Class",values:buildListItems(editor.settings.table_row_class_list,function(item){item.value&&(item.textStyle=function(){return editor.formatter.getCssText({block:"tr",classes:[item.value]})})})}),generalRowForm={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},classListCtrl]},editor.settings.table_row_advtab!==!1?(appendStylesToData(dom,data,rowElm),editor.windowManager.open({title:"Row properties",data:data,bodyType:"tabpanel",body:[{title:"General",type:"form",items:generalRowForm},createStyleForm(dom)],onsubmit:onSubmitRowForm})):editor.windowManager.open({title:"Row properties",data:data,body:generalRowForm,onsubmit:onSubmitRowForm}))}}}),define("tinymce/tableplugin/Plugin",["tinymce/tableplugin/TableGrid","tinymce/tableplugin/Quirks","tinymce/tableplugin/CellSelection","tinymce/tableplugin/Dialogs","tinymce/util/Tools","tinymce/dom/TreeWalker","tinymce/Env","tinymce/PluginManager"],function(TableGrid,Quirks,CellSelection,Dialogs,Tools,TreeWalker,Env,PluginManager){function Plugin(editor){function cmd(command){return function(){editor.execCommand(command)}}function insertTable(cols,rows){var y,x,html,tableElm;for(html='',y=0;rows>y;y++){for(html+="",x=0;cols>x;x++)html+="";html+=""}return html+="
    "+(Env.ie?" ":"
    ")+"
    ",editor.undoManager.transact(function(){editor.insertContent(html),tableElm=editor.dom.get("__mce"),editor.dom.setAttrib(tableElm,"id",null),editor.dom.setAttribs(tableElm,editor.settings.table_default_attributes||{}),editor.dom.setStyles(tableElm,editor.settings.table_default_styles||{})}),tableElm}function handleDisabledState(ctrl,selector){function bindStateListener(){ctrl.disabled(!editor.dom.getParent(editor.selection.getStart(),selector)),editor.selection.selectorChanged(selector,function(state){ctrl.disabled(!state)})}editor.initialized?bindStateListener():editor.on("init",bindStateListener)}function postRender(){handleDisabledState(this,"table")}function postRenderCell(){handleDisabledState(this,"td,th")}function generateTableGrid(){var html="";html='';for(var y=0;10>y;y++){html+="";for(var x=0;10>x;x++)html+='';html+=""}return html+="
    ",html+=''}function selectGrid(tx,ty,control){var x,y,focusCell,cell,active,table=control.getEl().getElementsByTagName("table")[0],rtl=control.isRtl()||"tl-tr"==control.parent().rel;for(table.nextSibling.innerHTML=tx+1+" x "+(ty+1),rtl&&(tx=9-tx),y=0;10>y;y++)for(x=0;10>x;x++)cell=table.rows[y].childNodes[x].firstChild,active=(rtl?x>=tx:tx>=x)&&ty>=y,editor.dom.toggleClass(cell,"mce-active",active),active&&(focusCell=cell);return focusCell.parentNode}var clipboardRows,self=this,dialogs=new Dialogs(editor);editor.settings.table_grid===!1?editor.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:dialogs.table}):editor.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),dialogs.table())},onshow:function(){selectGrid(0,0,this.menu.items()[0])},onhide:function(){var elements=this.menu.items()[0].getEl().getElementsByTagName("a");editor.dom.removeClass(elements,"mce-active"),editor.dom.addClass(elements[0],"mce-active")},menu:[{type:"container",html:generateTableGrid(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var x,y,target=e.target;"A"==target.tagName.toUpperCase()&&(x=parseInt(target.getAttribute("data-mce-x"),10),y=parseInt(target.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(x=9-x),(x!==this.lastX||y!==this.lastY)&&(selectGrid(x,y,e.control),this.lastX=x,this.lastY=y))},onclick:function(e){var self=this;"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),self.parent().cancel(),editor.undoManager.transact(function(){insertTable(self.lastX+1,self.lastY+1)}),editor.addVisual())}}]}),editor.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:postRender,onclick:dialogs.tableProps}),editor.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:postRender,cmd:"mceTableDelete"}),editor.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:cmd("mceTableCellProps"),onPostRender:postRenderCell},{text:"Merge cells",onclick:cmd("mceTableMergeCells"),onPostRender:postRenderCell},{text:"Split cell",onclick:cmd("mceTableSplitCells"),onPostRender:postRenderCell}]}),editor.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:cmd("mceTableInsertRowBefore"),onPostRender:postRenderCell},{text:"Insert row after",onclick:cmd("mceTableInsertRowAfter"),onPostRender:postRenderCell},{text:"Delete row",onclick:cmd("mceTableDeleteRow"),onPostRender:postRenderCell},{text:"Row properties",onclick:cmd("mceTableRowProps"),onPostRender:postRenderCell},{text:"-"},{text:"Cut row",onclick:cmd("mceTableCutRow"),onPostRender:postRenderCell},{text:"Copy row",onclick:cmd("mceTableCopyRow"),onPostRender:postRenderCell},{text:"Paste row before",onclick:cmd("mceTablePasteRowBefore"),onPostRender:postRenderCell},{text:"Paste row after",onclick:cmd("mceTablePasteRowAfter"),onPostRender:postRenderCell}]}),editor.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:cmd("mceTableInsertColBefore"),onPostRender:postRenderCell},{text:"Insert column after",onclick:cmd("mceTableInsertColAfter"),onPostRender:postRenderCell},{text:"Delete column",onclick:cmd("mceTableDeleteCol"),onPostRender:postRenderCell}]});var menuItems=[];each("inserttable tableprops deletetable | cell row column".split(" "),function(name){"|"==name?menuItems.push({text:"-"}):menuItems.push(editor.menuItems[name])}),editor.addButton("table",{type:"menubutton",title:"Table",menu:menuItems}),Env.isIE||editor.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(editor.selection.select(e),editor.nodeChanged())}),self.quirks=new Quirks(editor),editor.on("Init",function(){self.cellSelection=new CellSelection(editor)}),each({mceTableSplitCells:function(grid){grid.split()},mceTableMergeCells:function(grid){var cell;cell=editor.dom.getParent(editor.selection.getStart(),"th,td"),editor.dom.select("td.mce-item-selected,th.mce-item-selected").length?grid.merge():dialogs.merge(grid,cell)},mceTableInsertRowBefore:function(grid){grid.insertRow(!0)},mceTableInsertRowAfter:function(grid){grid.insertRow()},mceTableInsertColBefore:function(grid){grid.insertCol(!0)},mceTableInsertColAfter:function(grid){grid.insertCol()},mceTableDeleteCol:function(grid){grid.deleteCols()},mceTableDeleteRow:function(grid){grid.deleteRows()},mceTableCutRow:function(grid){clipboardRows=grid.cutRows()},mceTableCopyRow:function(grid){clipboardRows=grid.copyRows()},mceTablePasteRowBefore:function(grid){grid.pasteRows(clipboardRows,!0)},mceTablePasteRowAfter:function(grid){grid.pasteRows(clipboardRows)},mceTableDelete:function(grid){grid.deleteTable()}},function(func,name){editor.addCommand(name,function(){var grid=new TableGrid(editor);grid&&(func(grid),editor.execCommand("mceRepaint"),self.cellSelection.clear())})}),each({mceInsertTable:dialogs.table,mceTableProps:function(){dialogs.table(!0)},mceTableRowProps:dialogs.row,mceTableCellProps:dialogs.cell},function(func,name){ -editor.addCommand(name,function(ui,val){func(val)})}),editor.settings.table_tab_navigation!==!1&&editor.on("keydown",function(e){var cellElm,grid,delta;9==e.keyCode&&(cellElm=editor.dom.getParent(editor.selection.getStart(),"th,td"),cellElm&&(e.preventDefault(),grid=new TableGrid(editor),delta=e.shiftKey?-1:1,editor.undoManager.transact(function(){!grid.moveRelIdx(cellElm,delta)&&delta>0&&(grid.insertRow(),grid.refresh(),grid.moveRelIdx(cellElm,delta))})))}),self.insertTable=insertTable}var each=Tools.each;PluginManager.add("table",Plugin)})}(this)}.apply(root,arguments)})}(this),function(root){define("tinymce-template",["tinymce"],function(){return function(){tinymce.PluginManager.add("template",function(editor){function createTemplateList(callback){return function(){var templateList=editor.settings.templates;"string"==typeof templateList?tinymce.util.XHR.send({url:templateList,success:function(text){callback(tinymce.util.JSON.parse(text))}}):callback(templateList)}}function showDialog(templateList){function onSelectTemplate(e){function insertIframeHtml(html){if(-1==html.indexOf("")){var contentCssLinks="";tinymce.each(editor.contentCSS,function(url){contentCssLinks+=''}),html=""+contentCssLinks+""+html+""}html=replaceTemplateValues(html,"template_preview_replace_values");var doc=win.find("iframe")[0].getEl().contentWindow.document;doc.open(),doc.write(html),doc.close()}var value=e.control.value();value.url?tinymce.util.XHR.send({url:value.url,success:function(html){templateHtml=html,insertIframeHtml(templateHtml)}}):(templateHtml=value.content,insertIframeHtml(templateHtml)),win.find("#description")[0].text(e.control.value().description)}var win,templateHtml,values=[];return templateList&&0!==templateList.length?(tinymce.each(templateList,function(template){values.push({selected:!values.length,text:template.title,value:{url:template.url,content:template.content,description:template.description}})}),win=editor.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:values,onselect:onSelectTemplate}}]},{type:"label",name:"description",label:"Description",text:" "},{type:"iframe",flex:1,border:1}],onsubmit:function(){insertTemplate(!1,templateHtml)},width:editor.getParam("template_popup_width",600),height:editor.getParam("template_popup_height",500)}),void win.find("listbox")[0].fire("select")):void editor.windowManager.alert("No templates defined")}function getDateTime(fmt,date){function addZeros(value,len){if(value=""+value,value.length0&&(el=dom.create("div",null),el.appendChild(n[0].cloneNode(!0))),each(dom.select("*",el),function(n){hasClass(n,editor.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(n.innerHTML=getDateTime(editor.getParam("template_cdate_format",editor.getLang("template.cdate_format")))),hasClass(n,editor.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(n.innerHTML=getDateTime(editor.getParam("template_mdate_format",editor.getLang("template.mdate_format")))),hasClass(n,editor.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(n.innerHTML=sel)}),replaceVals(el),editor.execCommand("mceInsertContent",!1,el.innerHTML),editor.addVisual()}var each=tinymce.each;editor.addCommand("mceInsertTemplate",insertTemplate),editor.addButton("template",{title:"Insert template",onclick:createTemplateList(showDialog)}),editor.addMenuItem("template",{text:"Insert template",onclick:createTemplateList(showDialog),context:"insert"}),editor.on("PreProcess",function(o){var dom=editor.dom;each(dom.select("div",o.node),function(e){dom.hasClass(e,"mceTmpl")&&(each(dom.select("*",e),function(e){dom.hasClass(e,editor.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(e.innerHTML=getDateTime(editor.getParam("template_mdate_format",editor.getLang("template.mdate_format"))))}),replaceVals(e))})})})}.apply(root,arguments)})}(this),function(root){define("tinymce-textcolor",["tinymce"],function(){return function(){tinymce.PluginManager.add("textcolor",function(editor){function getCurrentColor(format){var color;return editor.dom.getParents(editor.selection.getStart(),function(elm){var value;(value=elm.style["forecolor"==format?"color":"background-color"])&&(color=value)}),color}function mapColors(){var i,colorMap,colors=[];for(colorMap=editor.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],i=0;i
    '+(isNoColor?"×":"")+"
    "}var colors,color,html,last,x,y,i,ctrl=this,id=ctrl._id,count=0;for(colors=mapColors(),colors.push({text:tinymce.translate("No color"),color:"transparent"}),html='',last=colors.length-1,y=0;rows>y;y++){for(html+="",x=0;cols>x;x++)i=y*cols+x,i>last?html+="":(color=colors[i],html+=getColorCellHtml(color.color,color.text));html+=""}if(editor.settings.color_picker_callback){for(html+='",html+="",x=0;cols>x;x++)html+=getColorCellHtml("","Custom color");html+=""}return html+="
    "}function applyFormat(format,value){editor.focus(),editor.formatter.apply(format,{value:value}),editor.nodeChanged()}function removeFormat(format){editor.focus(),editor.formatter.remove(format,{value:null},null,!0),editor.nodeChanged()}function onPanelClick(e){function selectColor(value){buttonCtrl.hidePanel(),buttonCtrl.color(value),applyFormat(buttonCtrl.settings.format,value)}function setDivColor(div,value){div.style.background=value,div.setAttribute("data-mce-color",value)}var value,buttonCtrl=this.parent();if(tinymce.DOM.getParent(e.target,".mce-custom-color-btn")&&(buttonCtrl.hidePanel(),editor.settings.color_picker_callback.call(editor,function(value){var customColorCells,div,i,tableElm=buttonCtrl.panel.getEl().getElementsByTagName("table")[0];for(customColorCells=tinymce.map(tableElm.rows[tableElm.rows.length-1].childNodes,function(elm){return elm.firstChild}),i=0;ii;i++)setDivColor(customColorCells[i],customColorCells[i+1].getAttribute("data-mce-color"));setDivColor(div,value),selectColor(value)},getCurrentColor(buttonCtrl.settings.format))),value=e.target.getAttribute("data-mce-color")){if(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),e.target.setAttribute("aria-selected",!0),this.lastId=e.target.id,"transparent"==value)return removeFormat(buttonCtrl.settings.format),void buttonCtrl.hidePanel();selectColor(value)}else null!==value&&buttonCtrl.hidePanel()}function onButtonClick(){var self=this;self._color&&applyFormat(self.settings.format,self._color)}var cols,rows;rows=editor.settings.textcolor_rows||5,cols=editor.settings.textcolor_cols||8,editor.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:renderColorPicker,onclick:onPanelClick},onclick:onButtonClick}),editor.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:renderColorPicker,onclick:onPanelClick},onclick:onButtonClick})})}.apply(root,arguments)})}(this),function(root){define("tinymce-textpattern",["tinymce"],function(){return function(){tinymce.PluginManager.add("textpattern",function(editor){function getPatterns(){return isPatternsDirty&&(patterns.sort(function(a,b){return a.start.length>b.start.length?-1:a.start.length$1
    '),div=editor.dom.create("div",null,nodeValue);node=div.lastChild;)editor.dom.insertAfter(node,nodeList[i]);editor.dom.remove(nodeList[i])}else for(nodeList=editor.dom.select("span.mce-nbsp",body),i=nodeList.length-1;i>=0;i--)editor.dom.remove(nodeList[i],1);selection.moveToBookmark(bookmark)}function toggleActiveState(){var self=this;editor.on("VisualChars",function(e){self.active(e.state)})}var state,self=this;editor.addCommand("mceVisualChars",toggleVisualChars),editor.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:toggleActiveState}),editor.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:toggleActiveState,selectable:!0,context:"view",prependToContext:!0}),editor.on("beforegetcontent",function(e){state&&"raw"!=e.format&&!e.draft&&(state=!0,toggleVisualChars(!1))})})}.apply(root,arguments)})}(this),function(root){define("tinymce-wordcount",["tinymce"],function(){return function(){tinymce.PluginManager.add("wordcount",function(editor){function update(){editor.theme.panel.find("#wordcount").text(["Words: {0}",self.getCount()])}var countre,cleanre,self=this;countre=editor.getParam("wordcount_countregex",/[\w\u2019\x27\-\u00C0-\u1FFF]+/g),cleanre=editor.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),editor.on("init",function(){var statusbar=editor.theme.panel&&editor.theme.panel.find("#statusbar")[0];statusbar&&window.setTimeout(function(){statusbar.insert({type:"label",name:"wordcount",text:["Words: {0}",self.getCount()],classes:"wordcount",disabled:editor.settings.readonly},0),editor.on("setcontent beforeaddundo",update),editor.on("keyup",function(e){32==e.keyCode&&update()})},0)}),self.getCount=function(){var tx=editor.getContent({format:"raw"}),tc=0;if(tx){tx=tx.replace(/\.\.\./g," "),tx=tx.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," "),tx=tx.replace(/(\w+)(&#?[a-z0-9]+;)+(\w+)/i,"$1$3").replace(/&.+?;/g," "),tx=tx.replace(cleanre,"");var wordArray=tx.match(countre);wordArray&&(tc=wordArray.length)}return tc}})}.apply(root,arguments)})}(this),define("mockup-patterns-tinymce",["jquery","underscore","mockup-patterns-base","mockup-patterns-relateditems","mockup-patterns-modal","tinymce","mockup-patterns-autotoc","text!mockup-patterns-tinymce-url/templates/result.xml","text!mockup-patterns-tinymce-url/templates/selection.xml","mockup-utils","mockup-patterns-tinymce-url/js/links","translate","tinymce-modern-theme","tinymce-advlist","tinymce-anchor","tinymce-autolink","tinymce-autoresize","tinymce-autosave","tinymce-bbcode","tinymce-charmap","tinymce-code","tinymce-colorpicker","tinymce-contextmenu","tinymce-directionality","tinymce-emoticons","tinymce-fullpage","tinymce-fullscreen","tinymce-hr","tinymce-image","tinymce-importcss","tinymce-insertdatetime","tinymce-layer","tinymce-legacyoutput","tinymce-link","tinymce-lists","tinymce-media","tinymce-nonbreaking","tinymce-noneditable","tinymce-pagebreak","tinymce-paste","tinymce-preview","tinymce-print","tinymce-save","tinymce-searchreplace","tinymce-spellchecker","tinymce-tabfocus","tinymce-table","tinymce-template","tinymce-textcolor","tinymce-textpattern","tinymce-visualblocks","tinymce-visualchars","tinymce-wordcount"],function($,_,Base,RelatedItems,Modal,tinymce,AutoTOC,ResultTemplate,SelectionTemplate,utils,LinkModal,_t){"use strict";var TinyMCE=Base.extend({name:"tinymce",defaults:{upload:{uploadMultiple:!1,maxFiles:1,showTitle:!1},relatedItems:{attributes:["UID","Title","Description","getURL","Type","path","ModificationDate"],batchSize:20,basePath:"/",vocabularyUrl:null,width:500,maximumSelectionSize:1,placeholder:_t("Search for item on site...")},text:{insertBtn:_t("Insert"),cancelBtn:_t("Cancel"),insertHeading:_t("Insert link"),title:_t("Title"),internal:_t("Internal"),external:_t("External"),email:_t("Email"),anchor:_t("Anchor"),subject:_t("Subject"),image:_t("Image"),imageAlign:_t("Align"),scale:_t("Size"),alt:_t("Alternative Text"),externalImage:_t("External Image URI")},loadingBaseUrl:"../../../bower_components/tinymce-builded/js/tinymce/",prependToUrl:"",appendToUrl:"",linkAttribute:"path",prependToScalePart:"/imagescale/",appendToScalePart:"",scales:_t("Listing (16x16):listing,Icon (32x32):icon,Tile (64x64):tile,Thumb (128x128):thumb,Mini (200x200):mini,Preview (400x400):preview,Large (768x768):large"),targetList:[{text:_t("Open in this window / frame"),value:""},{text:_t("Open in new window"),value:"_blank"},{text:_t("Open in parent window / frame"),value:"_parent"},{text:_t("Open in top frame (replaces all frames)"),value:"_top"}],imageTypes:"Image",folderTypes:"Folder,Plone Site",linkableTypes:"Document,Event,File,Folder,Image,News Item,Topic",tiny:{content_css:"../../../bower_components/tinymce-builded/js/tinymce/skins/lightgray/content.min.css",theme:"-modern",plugins:["-advlist -autolink -lists -charmap -print -preview -anchor -searchreplace -visualblocks -code -fullscreen -autoresize -insertdatetime -media -table -contextmenu -paste -plonelink -ploneimage"],menubar:"edit table format tools view insert",toolbar:"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | unlink plonelink ploneimage",autoresize_max_height:1500}},addLinkClicked:function(){var self=this;if(null===self.linkModal){var $el=$("
    ").insertAfter(self.$el);self.linkModal=new LinkModal($el,$.extend(!0,{},self.options,{tinypattern:self,linkTypes:["internal","upload","external","email","anchor"]})),self.linkModal.show()}else self.linkModal.reinitialize(),self.linkModal.show()},addImageClicked:function(){var self=this;if(null===self.imageModal){var options=$.extend(!0,{},self.options,{tinypattern:self,linkTypes:["image","uploadImage","externalImage"],initialLinkType:"image",text:{insertHeading:_t("Insert Image")},relatedItems:{baseCriteria:[{i:"Type",o:"plone.app.querystring.operation.list.contains",v:self.options.imageTypes.split(",").concat(self.options.folderTypes.split(","))}],selectableTypes:self.options.imageTypes.split(","),resultTemplate:ResultTemplate,selectionTemplate:SelectionTemplate}}),$el=$("
    ").insertAfter(self.$el);self.imageModal=new LinkModal($el,options),self.imageModal.show()}else self.imageModal.reinitialize(),self.imageModal.show()},generateUrl:function(data){var self=this,part=data[self.options.linkAttribute];return self.options.prependToUrl+part+self.options.appendToUrl},generateImageUrl:function(data,scale){var self=this,url=self.generateUrl(data);return""!==scale&&(url=url+self.options.prependToScalePart+scale+self.options.appendToScalePart),url},stripGeneratedUrl:function(url){var self=this;if(url=url.split(self.options.prependToScalePart,2)[0],self.options.prependToUrl){var parts=url.split(self.options.prependToUrl,2);2===parts.length&&(url=parts[1])}return self.options.appendToUrl&&(url=url.split(self.options.appendToUrl)[0]),url},getScaleFromUrl:function(url){var self=this,split=url.split(self.options.prependToScalePart);return 2!==split.length?null:(url=self.options.appendToScalePart?split[1].split(self.options.appendToScalePart)[0]:split[1],-1!==url.indexOf("/image_")&&(url=url.split("/image_")[1]),url)},init:function(){var self=this;self.linkModal=self.imageModal=self.uploadModal=null;var id=utils.setId(self.$el),tinyOptions=self.options.tiny;tinyOptions.selector="#"+id,tinyOptions.addLinkClicked=function(){self.addLinkClicked.apply(self,[])},tinyOptions.addImageClicked=function(){self.addImageClicked.apply(self,[])},tinyOptions.skin=!1,self.options.relatedItems.generateImageUrl=function(data,scale){return self.generateImageUrl.apply(self,[data,scale])},tinyOptions.init_instance_callback=function(editor){(void 0===self.tiny||null===self.tiny)&&(self.tiny=editor)},"en"!==tinyOptions.language&&(tinymce.baseURL=self.options.loadingBaseUrl),tinymce.init(tinyOptions),self.tiny=tinymce.get(id);var $form=self.$el.parents("form");$form.on("submit",function(){self.tiny.save()})},destroy:function(){this.tiny.destroy()}});return TinyMCE}),define("mockup-patterns-textareamimetypeselector",["jquery","mockup-patterns-base","mockup-registry","mockup-patterns-tinymce"],function($,Base,registry,tinymce){"use strict";var TextareaMimetypeSelector=Base.extend({name:"textareamimetypeselector",textarea:void 0,currentWidget:void 0,defaults:{textareaName:"",widgets:{"text/html":{pattern:"tinymce",patternOptions:{}}}},init:function(){var self=this,$el=self.$el;self.textarea=$('[name="'+self.options.textareaName+'"]'),$el.change(function(e){self.initTextarea(e.target.value)}),self.initTextarea($el.val())},initTextarea:function(mimetype){var pattern,self=this,patternConfig=self.options.widgets[mimetype];self.currentWidget&&self.currentWidget.destroy(),patternConfig&&(pattern=new registry.patterns[patternConfig.pattern](self.textarea,patternConfig.patternOptions||{}),self.currentWidget=pattern)}});return TextareaMimetypeSelector}),define("mockup-bundles-widgets",["jquery","mockup-registry","mockup-patterns-base","mockup-patterns-select2","mockup-patterns-passwordstrength","mockup-patterns-pickadate","mockup-patterns-relateditems","mockup-patterns-querystring","mockup-patterns-textareamimetypeselector","mockup-patterns-tinymce"],function($,Registry,Base){"use strict";var PloneWidgets=Base.extend({name:"plone-widgets",init:function(){}});return window.parent===window&&$(document).ready(function(){$("body").addClass("pat-plone-widgets"),Registry.scan($("body"))}),PloneWidgets}),require(["mockup-bundles-widgets"]); +var requirejs,require,define;!function(global){function isFunction(it){return"[object Function]"===ostring.call(it)}function isArray(it){return"[object Array]"===ostring.call(it)}function each(ary,func){if(ary){var i;for(i=0;i-1&&(!ary[i]||!func(ary[i],i,ary));i-=1);}}function hasProp(obj,prop){return hasOwn.call(obj,prop)}function getOwn(obj,prop){return hasProp(obj,prop)&&obj[prop]}function eachProp(obj,func){var prop;for(prop in obj)if(hasProp(obj,prop)&&func(obj[prop],prop))break}function mixin(target,source,force,deepStringMixin){return source&&eachProp(source,function(value,prop){!force&&hasProp(target,prop)||(!deepStringMixin||"object"!=typeof value||!value||isArray(value)||isFunction(value)||value instanceof RegExp?target[prop]=value:(target[prop]||(target[prop]={}),mixin(target[prop],value,force,deepStringMixin)))}),target}function bind(obj,fn){return function(){return fn.apply(obj,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(err){throw err}function getGlobal(value){if(!value)return value;var g=global;return each(value.split("."),function(part){g=g[part]}),g}function makeError(id,msg,err,requireModules){var e=new Error(msg+"\nhttp://requirejs.org/docs/errors.html#"+id);return e.requireType=id,e.requireModules=requireModules,err&&(e.originalError=err),e}function newContext(contextName){function trimDots(ary){var i,part;for(i=0;i0&&(ary.splice(i-1,2),i-=2)}}function normalize(name,baseName,applyMap){var pkgMain,mapValue,nameParts,i,j,nameSegment,lastIndex,foundMap,foundI,foundStarMap,starI,normalizedBaseParts,baseParts=baseName&&baseName.split("/"),map=config.map,starMap=map&&map["*"];if(name&&(name=name.split("/"),lastIndex=name.length-1,config.nodeIdCompat&&jsSuffixRegExp.test(name[lastIndex])&&(name[lastIndex]=name[lastIndex].replace(jsSuffixRegExp,"")),"."===name[0].charAt(0)&&baseParts&&(normalizedBaseParts=baseParts.slice(0,baseParts.length-1),name=normalizedBaseParts.concat(name)),trimDots(name),name=name.join("/")),applyMap&&map&&(baseParts||starMap)){nameParts=name.split("/");outerLoop:for(i=nameParts.length;i>0;i-=1){if(nameSegment=nameParts.slice(0,i).join("/"),baseParts)for(j=baseParts.length;j>0;j-=1)if(mapValue=getOwn(map,baseParts.slice(0,j).join("/")),mapValue&&(mapValue=getOwn(mapValue,nameSegment))){foundMap=mapValue,foundI=i;break outerLoop}!foundStarMap&&starMap&&getOwn(starMap,nameSegment)&&(foundStarMap=getOwn(starMap,nameSegment),starI=i)}!foundMap&&foundStarMap&&(foundMap=foundStarMap,foundI=starI),foundMap&&(nameParts.splice(0,foundI,foundMap),name=nameParts.join("/"))}return pkgMain=getOwn(config.pkgs,name),pkgMain?pkgMain:name}function removeScript(name){isBrowser&&each(scripts(),function(scriptNode){return scriptNode.getAttribute("data-requiremodule")===name&&scriptNode.getAttribute("data-requirecontext")===context.contextName?(scriptNode.parentNode.removeChild(scriptNode),!0):void 0})}function hasPathFallback(id){var pathConfig=getOwn(config.paths,id);return pathConfig&&isArray(pathConfig)&&pathConfig.length>1?(pathConfig.shift(),context.require.undef(id),context.makeRequire(null,{skipMap:!0})([id]),!0):void 0}function splitPrefix(name){var prefix,index=name?name.indexOf("!"):-1;return index>-1&&(prefix=name.substring(0,index),name=name.substring(index+1,name.length)),[prefix,name]}function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var url,pluginModule,suffix,nameParts,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=!0,normalizedName="";return name||(isDefine=!1,name="_@r"+(requireCounter+=1)),nameParts=splitPrefix(name),prefix=nameParts[0],name=nameParts[1],prefix&&(prefix=normalize(prefix,parentName,applyMap),pluginModule=getOwn(defined,prefix)),name&&(prefix?normalizedName=pluginModule&&pluginModule.normalize?pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap)}):-1===name.indexOf("!")?normalize(name,parentName,applyMap):name:(normalizedName=normalize(name,parentName,applyMap),nameParts=splitPrefix(normalizedName),prefix=nameParts[0],normalizedName=nameParts[1],isNormalized=!0,url=context.nameToUrl(normalizedName))),suffix=!prefix||pluginModule||isNormalized?"":"_unnormalized"+(unnormalizedCounter+=1),{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+"!"+normalizedName:normalizedName)+suffix}}function getModule(depMap){var id=depMap.id,mod=getOwn(registry,id);return mod||(mod=registry[id]=new context.Module(depMap)),mod}function on(depMap,name,fn){var id=depMap.id,mod=getOwn(registry,id);!hasProp(defined,id)||mod&&!mod.defineEmitComplete?(mod=getModule(depMap),mod.error&&"error"===name?fn(mod.error):mod.on(name,fn)):"defined"===name&&fn(defined[id])}function onError(err,errback){var ids=err.requireModules,notified=!1;errback?errback(err):(each(ids,function(id){var mod=getOwn(registry,id);mod&&(mod.error=err,mod.events.error&&(notified=!0,mod.emit("error",err)))}),notified||req.onError(err))}function takeGlobalQueue(){globalDefQueue.length&&(each(globalDefQueue,function(queueItem){var id=queueItem[0];"string"==typeof id&&(context.defQueueMap[id]=!0),defQueue.push(queueItem)}),globalDefQueue=[])}function cleanRegistry(id){delete registry[id],delete enabledRegistry[id]}function breakCycle(mod,traced,processed){var id=mod.map.id;mod.error?mod.emit("error",mod.error):(traced[id]=!0,each(mod.depMaps,function(depMap,i){var depId=depMap.id,dep=getOwn(registry,depId);!dep||mod.depMatched[i]||processed[depId]||(getOwn(traced,depId)?(mod.defineDep(i,defined[depId]),mod.check()):breakCycle(dep,traced,processed))}),processed[id]=!0)}function checkLoaded(){var err,usingPathFallback,waitInterval=1e3*config.waitSeconds,expired=waitInterval&&context.startTime+waitInterval<(new Date).getTime(),noLoads=[],reqCalls=[],stillLoading=!1,needCycleCheck=!0;if(!inCheckLoaded){if(inCheckLoaded=!0,eachProp(enabledRegistry,function(mod){var map=mod.map,modId=map.id;if(mod.enabled&&(map.isDefine||reqCalls.push(mod),!mod.error))if(!mod.inited&&expired)hasPathFallback(modId)?(usingPathFallback=!0,stillLoading=!0):(noLoads.push(modId),removeScript(modId));else if(!mod.inited&&mod.fetched&&map.isDefine&&(stillLoading=!0,!map.prefix))return needCycleCheck=!1}),expired&&noLoads.length)return err=makeError("timeout","Load timeout for modules: "+noLoads,null,noLoads),err.contextName=context.contextName,onError(err);needCycleCheck&&each(reqCalls,function(mod){breakCycle(mod,{},{})}),expired&&!usingPathFallback||!stillLoading||!isBrowser&&!isWebWorker||checkLoadedTimeoutId||(checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0,checkLoaded()},50)),inCheckLoaded=!1}}function callGetModule(args){hasProp(defined,args[0])||getModule(makeModuleMap(args[0],null,!0)).init(args[1],args[2])}function removeListener(node,func,name,ieName){node.detachEvent&&!isOpera?ieName&&node.detachEvent(ieName,func):node.removeEventListener(name,func,!1)}function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;return removeListener(node,context.onScriptLoad,"load","onreadystatechange"),removeListener(node,context.onScriptError,"error"),{node:node,id:node&&node.getAttribute("data-requiremodule")}}function intakeDefines(){var args;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0])return onError(makeError("mismatch","Mismatched anonymous define() module: "+args[args.length-1]));callGetModule(args)}context.defQueueMap={}}var inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId,config={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},registry={},enabledRegistry={},undefEvents={},defQueue=[],defined={},urlFetched={},bundlesMap={},requireCounter=1,unnormalizedCounter=1;return handlers={require:function(mod){return mod.require?mod.require:mod.require=context.makeRequire(mod.map)},exports:function(mod){return mod.usingExports=!0,mod.map.isDefine?mod.exports?defined[mod.map.id]=mod.exports:mod.exports=defined[mod.map.id]={}:void 0},module:function(mod){return mod.module?mod.module:mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return getOwn(config.config,mod.map.id)||{}},exports:mod.exports||(mod.exports={})}}},Module=function(map){this.events=getOwn(undefEvents,map.id)||{},this.map=map,this.shim=getOwn(config.shim,map.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},Module.prototype={init:function(depMaps,factory,errback,options){options=options||{},this.inited||(this.factory=factory,errback?this.on("error",errback):this.events.error&&(errback=bind(this,function(err){this.emit("error",err)})),this.depMaps=depMaps&&depMaps.slice(0),this.errback=errback,this.inited=!0,this.ignore=options.ignore,options.enabled||this.enabled?this.enable():this.check())},defineDep:function(i,depExports){this.depMatched[i]||(this.depMatched[i]=!0,this.depCount-=1,this.depExports[i]=depExports)},fetch:function(){if(!this.fetched){this.fetched=!0,context.startTime=(new Date).getTime();var map=this.map;return this.shim?void context.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return map.prefix?this.callPlugin():this.load()})):map.prefix?this.callPlugin():this.load()}},load:function(){var url=this.map.url;urlFetched[url]||(urlFetched[url]=!0,context.load(this.map.id,url))},check:function(){if(this.enabled&&!this.enabling){var err,cjsModule,id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(factory)){try{exports=context.execCb(id,factory,depExports,exports)}catch(e){err=e}if(this.map.isDefine&&void 0===exports&&(cjsModule=this.module,cjsModule?exports=cjsModule.exports:this.usingExports&&(exports=this.exports)),err){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)return err.requireMap=this.map,err.requireModules=this.map.isDefine?[this.map.id]:null,err.requireType=this.map.isDefine?"define":"require",onError(this.error=err);"undefined"!=typeof console&&console.error?console.error(err):req.onError(err)}}else exports=factory;if(this.exports=exports,this.map.isDefine&&!this.ignore&&(defined[id]=exports,req.onResourceLoad)){var resLoadMaps=[];each(this.depMaps,function(depMap){resLoadMaps.push(depMap.normalizedMap||depMap)}),req.onResourceLoad(context,this.map,resLoadMaps)}cleanRegistry(id),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(context.defQueueMap,id)||this.fetch()}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix);this.depMaps.push(pluginMap),on(pluginMap,"defined",bind(this,function(plugin){var load,normalizedMap,normalizedMod,bundleId=getOwn(bundlesMap,this.map.id),name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,localRequire=context.makeRequire(map.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(plugin.normalize&&(name=plugin.normalize(name,function(name){return normalize(name,parentName,!0)})||""),normalizedMap=makeModuleMap(map.prefix+"!"+name,this.map.parentMap),on(normalizedMap,"defined",bind(this,function(value){this.map.normalizedMap=normalizedMap,this.init([],function(){return value},null,{enabled:!0,ignore:!0})})),normalizedMod=getOwn(registry,normalizedMap.id),void(normalizedMod&&(this.depMaps.push(normalizedMap),this.events.error&&normalizedMod.on("error",bind(this,function(err){this.emit("error",err)})),normalizedMod.enable()))):bundleId?(this.map.url=context.nameToUrl(bundleId),void this.load()):(load=bind(this,function(value){this.init([],function(){return value},null,{enabled:!0})}),load.error=bind(this,function(err){this.inited=!0,this.error=err,err.requireModules=[id],eachProp(registry,function(mod){0===mod.map.id.indexOf(id+"_unnormalized")&&cleanRegistry(mod.map.id)}),onError(err)}),load.fromText=bind(this,function(text,textAlt){var moduleName=map.name,moduleMap=makeModuleMap(moduleName),hasInteractive=useInteractive;textAlt&&(text=textAlt),hasInteractive&&(useInteractive=!1),getModule(moduleMap),hasProp(config.config,id)&&(config.config[moduleName]=config.config[id]);try{req.exec(text)}catch(e){return onError(makeError("fromtexteval","fromText eval for "+id+" failed: "+e,e,[id]))}hasInteractive&&(useInteractive=!0),this.depMaps.push(moduleMap),context.completeLoad(moduleName),localRequire([moduleName],load)}),void plugin.load(map.name,localRequire,load,config))})),context.enable(pluginMap,this),this.pluginMaps[pluginMap.id]=pluginMap},enable:function(){enabledRegistry[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(depMap,i){var id,mod,handler;if("string"==typeof depMap){if(depMap=makeModuleMap(depMap,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[i]=depMap,handler=getOwn(handlers,depMap.id))return void(this.depExports[i]=handler(this));this.depCount+=1,on(depMap,"defined",bind(this,function(depExports){this.undefed||(this.defineDep(i,depExports),this.check())})),this.errback?on(depMap,"error",bind(this,this.errback)):this.events.error&&on(depMap,"error",bind(this,function(err){this.emit("error",err)}))}id=depMap.id,mod=registry[id],hasProp(handlers,id)||!mod||mod.enabled||context.enable(depMap,this)})),eachProp(this.pluginMaps,bind(this,function(pluginMap){var mod=getOwn(registry,pluginMap.id);mod&&!mod.enabled&&context.enable(pluginMap,this)})),this.enabling=!1,this.check()},on:function(name,cb){var cbs=this.events[name];cbs||(cbs=this.events[name]=[]),cbs.push(cb)},emit:function(name,evt){each(this.events[name],function(cb){cb(evt)}),"error"===name&&delete this.events[name]}},context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,defQueue:defQueue,defQueueMap:{},Module:Module,makeModuleMap:makeModuleMap,nextTick:req.nextTick,onError:onError,configure:function(cfg){cfg.baseUrl&&"/"!==cfg.baseUrl.charAt(cfg.baseUrl.length-1)&&(cfg.baseUrl+="/");var shim=config.shim,objs={paths:!0,bundles:!0,config:!0,map:!0};eachProp(cfg,function(value,prop){objs[prop]?(config[prop]||(config[prop]={}),mixin(config[prop],value,!0,!0)):config[prop]=value}),cfg.bundles&&eachProp(cfg.bundles,function(value,prop){each(value,function(v){v!==prop&&(bundlesMap[v]=prop)})}),cfg.shim&&(eachProp(cfg.shim,function(value,id){isArray(value)&&(value={deps:value}),!value.exports&&!value.init||value.exportsFn||(value.exportsFn=context.makeShimExports(value)),shim[id]=value}),config.shim=shim),cfg.packages&&each(cfg.packages,function(pkgObj){var location,name;pkgObj="string"==typeof pkgObj?{name:pkgObj}:pkgObj,name=pkgObj.name,location=pkgObj.location,location&&(config.paths[name]=pkgObj.location),config.pkgs[name]=pkgObj.name+"/"+(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(registry,function(mod,id){mod.inited||mod.map.unnormalized||(mod.map=makeModuleMap(id,null,!0))}),(cfg.deps||cfg.callback)&&context.require(cfg.deps||[],cfg.callback)},makeShimExports:function(value){function fn(){var ret;return value.init&&(ret=value.init.apply(global,arguments)),ret||value.exports&&getGlobal(value.exports)}return fn},makeRequire:function(relMap,options){function localRequire(deps,callback,errback){var id,map,requireMod;return options.enableBuildCallback&&callback&&isFunction(callback)&&(callback.__requireJsBuild=!0),"string"==typeof deps?isFunction(callback)?onError(makeError("requireargs","Invalid require call"),errback):relMap&&hasProp(handlers,deps)?handlers[deps](registry[relMap.id]):req.get?req.get(context,deps,relMap,localRequire):(map=makeModuleMap(deps,relMap,!1,!0),id=map.id,hasProp(defined,id)?defined[id]:onError(makeError("notloaded",'Module name "'+id+'" has not been loaded yet for context: '+contextName+(relMap?"":". Use require([])")))):(intakeDefines(),context.nextTick(function(){intakeDefines(),requireMod=getModule(makeModuleMap(null,relMap)),requireMod.skipMap=options.skipMap,requireMod.init(deps,callback,errback,{enabled:!0}),checkLoaded()}),localRequire)}return options=options||{},mixin(localRequire,{isBrowser:isBrowser,toUrl:function(moduleNamePlusExt){var ext,index=moduleNamePlusExt.lastIndexOf("."),segment=moduleNamePlusExt.split("/")[0],isRelative="."===segment||".."===segment;return-1!==index&&(!isRelative||index>1)&&(ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length),moduleNamePlusExt=moduleNamePlusExt.substring(0,index)),context.nameToUrl(normalize(moduleNamePlusExt,relMap&&relMap.id,!0),ext,!0)},defined:function(id){return hasProp(defined,makeModuleMap(id,relMap,!1,!0).id)},specified:function(id){return id=makeModuleMap(id,relMap,!1,!0).id,hasProp(defined,id)||hasProp(registry,id)}}),relMap||(localRequire.undef=function(id){takeGlobalQueue();var map=makeModuleMap(id,relMap,!0),mod=getOwn(registry,id);mod.undefed=!0,removeScript(id),delete defined[id],delete urlFetched[map.url],delete undefEvents[id],eachReverse(defQueue,function(args,i){args[0]===id&&defQueue.splice(i,1)}),delete context.defQueueMap[id],mod&&(mod.events.defined&&(undefEvents[id]=mod.events),cleanRegistry(id))}),localRequire},enable:function(depMap){var mod=getOwn(registry,depMap.id);mod&&getModule(depMap).enable()},completeLoad:function(moduleName){var found,args,mod,shim=getOwn(config.shim,moduleName)||{},shExports=shim.exports;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0]){if(args[0]=moduleName,found)break;found=!0}else args[0]===moduleName&&(found=!0);callGetModule(args)}if(context.defQueueMap={},mod=getOwn(registry,moduleName),!found&&!hasProp(defined,moduleName)&&mod&&!mod.inited){if(!(!config.enforceDefine||shExports&&getGlobal(shExports)))return hasPathFallback(moduleName)?void 0:onError(makeError("nodefine","No define call for "+moduleName,null,[moduleName]));callGetModule([moduleName,shim.deps||[],shim.exportsFn])}checkLoaded()},nameToUrl:function(moduleName,ext,skipExt){var paths,syms,i,parentModule,url,parentPath,bundleId,pkgMain=getOwn(config.pkgs,moduleName);if(pkgMain&&(moduleName=pkgMain),bundleId=getOwn(bundlesMap,moduleName))return context.nameToUrl(bundleId,ext,skipExt);if(req.jsExtRegExp.test(moduleName))url=moduleName+(ext||"");else{for(paths=config.paths,syms=moduleName.split("/"),i=syms.length;i>0;i-=1)if(parentModule=syms.slice(0,i).join("/"),parentPath=getOwn(paths,parentModule)){isArray(parentPath)&&(parentPath=parentPath[0]),syms.splice(0,i,parentPath);break}url=syms.join("/"),url+=ext||(/^data\:|\?/.test(url)||skipExt?"":".js"),url=("/"===url.charAt(0)||url.match(/^[\w\+\.\-]+:/)?"":config.baseUrl)+url}return config.urlArgs?url+((-1===url.indexOf("?")?"?":"&")+config.urlArgs):url},load:function(id,url){req.load(context,id,url)},execCb:function(name,callback,args,exports){return callback.apply(exports,args)},onScriptLoad:function(evt){if("load"===evt.type||readyRegExp.test((evt.currentTarget||evt.srcElement).readyState)){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id)}},onScriptError:function(evt){var data=getScriptData(evt);if(!hasPathFallback(data.id)){var parents=[];return eachProp(registry,function(value,key){0!==key.indexOf("_@r")&&each(value.depMaps,function(depMap){return depMap.id===data.id&&parents.push(key),!0})}),onError(makeError("scripterror",'Script error for "'+data.id+(parents.length?'", needed by: '+parents.join(", "):'"'),evt,[data.id]))}}},context.require=context.makeRequire(),context}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(script){return"interactive"===script.readyState?interactiveScript=script:void 0}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.22",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if("undefined"==typeof define){if("undefined"!=typeof requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}"undefined"==typeof require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(deps,callback,errback,optional){var context,config,contextName=defContextName;return isArray(deps)||"string"==typeof deps||(config=deps,isArray(callback)?(deps=callback,callback=errback,errback=optional):deps=[]),config&&config.context&&(contextName=config.context),context=getOwn(contexts,contextName),context||(context=contexts[contextName]=req.s.newContext(contextName)),config&&context.configure(config),context.require(deps,callback,errback)},req.config=function(config){return req(config)},req.nextTick="undefined"!=typeof setTimeout?function(fn){setTimeout(fn,4)}:function(fn){fn()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(prop){req[prop]=function(){var ctx=contexts[defContextName];return ctx.require[prop].apply(ctx,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],baseElement=document.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(config,moduleName,url){var node=config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return node.type=config.scriptType||"text/javascript",node.charset="utf-8",node.async=!0,node},req.load=function(context,moduleName,url){var node,config=context&&context.config||{};if(isBrowser)return node=req.createNode(config,moduleName,url),config.onNodeCreated&&config.onNodeCreated(node,config,moduleName,url),node.setAttribute("data-requirecontext",context.contextName),node.setAttribute("data-requiremodule",moduleName),!node.attachEvent||node.attachEvent.toString&&node.attachEvent.toString().indexOf("[native code")<0||isOpera?(node.addEventListener("load",context.onScriptLoad,!1),node.addEventListener("error",context.onScriptError,!1)):(useInteractive=!0,node.attachEvent("onreadystatechange",context.onScriptLoad)),node.src=url,currentlyAddingScript=node,baseElement?head.insertBefore(node,baseElement):head.appendChild(node),currentlyAddingScript=null,node;if(isWebWorker)try{importScripts(url),context.completeLoad(moduleName)}catch(e){context.onError(makeError("importscripts","importScripts failed for "+moduleName+" at "+url,e,[moduleName]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(script){return head||(head=script.parentNode),dataMain=script.getAttribute("data-main"),dataMain?(mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0):void 0}),define=function(name,deps,callback){var node,context;"string"!=typeof name&&(callback=deps,deps=name,name=null),isArray(deps)||(callback=deps,deps=null),!deps&&isFunction(callback)&&(deps=[],callback.length&&(callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)}),deps=(1===callback.length?["require"]:["require","exports","module"]).concat(deps))),useInteractive&&(node=currentlyAddingScript||getInteractiveScript(),node&&(name||(name=node.getAttribute("data-requiremodule")),context=contexts[node.getAttribute("data-requirecontext")])),context?(context.defQueue.push([name,deps,callback]),context.defQueueMap[name]=!0):globalDefQueue.push([name,deps,callback])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this),define("node_modules/requirejs/require.js",function(){}),function(global,factory){"object"==typeof module&&"object"==typeof module.exports?module.exports=global.document?factory(global,!0):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w)}:factory(global)}("undefined"!=typeof window?window:this,function(window,noGlobal){function isArraylike(obj){var length="length"in obj&&obj.length,type=jQuery.type(obj);return"function"===type||jQuery.isWindow(obj)?!1:1===obj.nodeType&&length?!0:"array"===type||0===length||"number"==typeof length&&length>0&&length-1 in obj}function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier))return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not});if(qualifier.nodeType)return jQuery.grep(elements,function(elem){return elem===qualifier!==not});if("string"==typeof qualifier){if(risSimple.test(qualifier))return jQuery.filter(qualifier,elements,not);qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return jQuery.inArray(elem,qualifier)>=0!==not})}function sibling(cur,dir){do cur=cur[dir];while(cur&&1!==cur.nodeType);return cur}function createOptions(options){var object=optionsCache[options]={};return jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=!0}),object}function detach(){document.addEventListener?(document.removeEventListener("DOMContentLoaded",completed,!1),window.removeEventListener("load",completed,!1)):(document.detachEvent("onreadystatechange",completed),window.detachEvent("onload",completed))}function completed(){(document.addEventListener||"load"===event.type||"complete"===document.readyState)&&(detach(),jQuery.ready())}function dataAttr(elem,key,data){if(void 0===data&&1===elem.nodeType){var name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();if(data=elem.getAttribute(name),"string"==typeof data){try{data="true"===data?!0:"false"===data?!1:"null"===data?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}jQuery.data(elem,key,data)}else data=void 0}return data}function isEmptyDataObject(obj){var name;for(name in obj)if(("data"!==name||!jQuery.isEmptyObject(obj[name]))&&"toJSON"!==name)return!1;return!0}function internalData(elem,name,data,pvt){if(jQuery.acceptData(elem)){var ret,thisCache,internalKey=jQuery.expando,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[internalKey]:elem[internalKey]&&internalKey;if(id&&cache[id]&&(pvt||cache[id].data)||void 0!==data||"string"!=typeof name)return id||(id=isNode?elem[internalKey]=deletedIds.pop()||jQuery.guid++:internalKey),cache[id]||(cache[id]=isNode?{}:{toJSON:jQuery.noop}),"object"!=typeof name&&"function"!=typeof name||(pvt?cache[id]=jQuery.extend(cache[id],name):cache[id].data=jQuery.extend(cache[id].data,name)),thisCache=cache[id],pvt||(thisCache.data||(thisCache.data={}),thisCache=thisCache.data),void 0!==data&&(thisCache[jQuery.camelCase(name)]=data),"string"==typeof name?(ret=thisCache[name],null==ret&&(ret=thisCache[jQuery.camelCase(name)])):ret=thisCache,ret}}function internalRemoveData(elem,name,pvt){if(jQuery.acceptData(elem)){var thisCache,i,isNode=elem.nodeType,cache=isNode?jQuery.cache:elem,id=isNode?elem[jQuery.expando]:jQuery.expando;if(cache[id]){if(name&&(thisCache=pvt?cache[id]:cache[id].data)){jQuery.isArray(name)?name=name.concat(jQuery.map(name,jQuery.camelCase)):name in thisCache?name=[name]:(name=jQuery.camelCase(name),name=name in thisCache?[name]:name.split(" ")),i=name.length;for(;i--;)delete thisCache[name[i]];if(pvt?!isEmptyDataObject(thisCache):!jQuery.isEmptyObject(thisCache))return}(pvt||(delete cache[id].data,isEmptyDataObject(cache[id])))&&(isNode?jQuery.cleanData([elem],!0):support.deleteExpando||cache!=cache.window?delete cache[id]:cache[id]=null)}}}function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return document.activeElement}catch(err){}}function createSafeFragment(document){var list=nodeNames.split("|"),safeFrag=document.createDocumentFragment();if(safeFrag.createElement)for(;list.length;)safeFrag.createElement(list.pop());return safeFrag}function getAll(context,tag){var elems,elem,i=0,found=typeof context.getElementsByTagName!==strundefined?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!==strundefined?context.querySelectorAll(tag||"*"):void 0;if(!found)for(found=[],elems=context.childNodes||context;null!=(elem=elems[i]);i++)!tag||jQuery.nodeName(elem,tag)?found.push(elem):jQuery.merge(found,getAll(elem,tag));return void 0===tag||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],found):found}function fixDefaultChecked(elem){rcheckableType.test(elem.type)&&(elem.defaultChecked=elem.checked)}function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(11!==content.nodeType?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){return elem.type=(null!==jQuery.find.attr(elem,"type"))+"/"+elem.type,elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);return match?elem.type=match[1]:elem.removeAttribute("type"),elem}function setGlobalEval(elems,refElements){for(var elem,i=0;null!=(elem=elems[i]);i++)jQuery._data(elem,"globalEval",!refElements||jQuery._data(refElements[i],"globalEval"))}function cloneCopyEvent(src,dest){if(1===dest.nodeType&&jQuery.hasData(src)){var type,i,l,oldData=jQuery._data(src),curData=jQuery._data(dest,oldData),events=oldData.events;if(events){delete curData.handle,curData.events={};for(type in events)for(i=0,l=events[type].length;l>i;i++)jQuery.event.add(dest,type,events[type][i])}curData.data&&(curData.data=jQuery.extend({},curData.data))}}function fixCloneNodeIssues(src,dest){var nodeName,e,data;if(1===dest.nodeType){if(nodeName=dest.nodeName.toLowerCase(),!support.noCloneEvent&&dest[jQuery.expando]){data=jQuery._data(dest);for(e in data.events)jQuery.removeEvent(dest,e,data.handle);dest.removeAttribute(jQuery.expando)}"script"===nodeName&&dest.text!==src.text?(disableScript(dest).text=src.text,restoreScript(dest)):"object"===nodeName?(dest.parentNode&&(dest.outerHTML=src.outerHTML),support.html5Clone&&src.innerHTML&&!jQuery.trim(dest.innerHTML)&&(dest.innerHTML=src.innerHTML)):"input"===nodeName&&rcheckableType.test(src.type)?(dest.defaultChecked=dest.checked=src.checked,dest.value!==src.value&&(dest.value=src.value)):"option"===nodeName?dest.defaultSelected=dest.selected=src.defaultSelected:"input"!==nodeName&&"textarea"!==nodeName||(dest.defaultValue=src.defaultValue)}}function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");return elem.detach(),display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];return display||(display=actualDisplay(nodeName,doc),"none"!==display&&display||(iframe=(iframe||jQuery("'),"undefined"==typeof html&&(html=layout.renderHtml(self)),self.statusbar&&(footerHtml=self.statusbar.renderHtml()),'
    '+headerHtml+'
    '+html+"
    "+footerHtml+"
    "},fullscreen:function(state){var slowRendering,layoutRect,self=this,documentElement=document.documentElement,prefix=self.classPrefix;if(state!=self._fullscreen)if($(window).on("resize",function(){var time;if(self._fullscreen)if(slowRendering)self._timer||(self._timer=Delay.setTimeout(function(){var rect=DomUtils.getWindowSize();self.moveTo(0,0).resizeTo(rect.w,rect.h),self._timer=0},50));else{time=(new Date).getTime();var rect=DomUtils.getWindowSize();self.moveTo(0,0).resizeTo(rect.w,rect.h),(new Date).getTime()-time>50&&(slowRendering=!0)}}),layoutRect=self.layoutRect(),self._fullscreen=state,state){self._initial={x:layoutRect.x,y:layoutRect.y,w:layoutRect.w,h:layoutRect.h},self.borderBox=BoxUtils.parseBox("0"),self.getEl("head").style.display="none",layoutRect.deltaH-=layoutRect.headerH+2,$([documentElement,document.body]).addClass(prefix+"fullscreen"),self.classes.add("fullscreen");var rect=DomUtils.getWindowSize();self.moveTo(0,0).resizeTo(rect.w,rect.h)}else self.borderBox=BoxUtils.parseBox(self.settings.border),self.getEl("head").style.display="",layoutRect.deltaH+=layoutRect.headerH,$([documentElement,document.body]).removeClass(prefix+"fullscreen"),self.classes.remove("fullscreen"),self.moveTo(self._initial.x,self._initial.y).resizeTo(self._initial.w,self._initial.h);return self.reflow()},postRender:function(){var startPos,self=this;setTimeout(function(){self.classes.add("in")},0),self._super(),self.statusbar&&self.statusbar.postRender(),self.focus(),this.dragHelper=new DragHelper(self._id+"-dragh",{start:function(){startPos={x:self.layoutRect().x,y:self.layoutRect().y}},drag:function(e){self.moveTo(startPos.x+e.deltaX,startPos.y+e.deltaY)}}),self.on("submit",function(e){e.isDefaultPrevented()||self.close()}),windows.push(self),toggleFullScreenState(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var i,self=this;for(self.dragHelper.destroy(),self._super(),self.statusbar&&this.statusbar.remove(),i=windows.length;i--;)windows[i]===self&&windows.splice(i,1);toggleFullScreenState(windows.length>0),toggleBodyFullScreenClasses(self.classPrefix)},getContentWindow:function(){var ifr=this.getEl().getElementsByTagName("iframe")[0];return ifr?ifr.contentWindow:null}});return Env.desktop||handleWindowResize(),Window}),define("tinymce/ui/MessageBox",["tinymce/ui/Window"],function(Window){var MessageBox=Window.extend({init:function(settings){settings={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(settings)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(settings){function createButton(text,status,primary){return{type:"button",text:text,subtype:primary?"primary":"",onClick:function(e){e.control.parents()[1].close(),callback(status)}}}var buttons,callback=settings.callback||function(){};switch(settings.buttons){case MessageBox.OK_CANCEL:buttons=[createButton("Ok",!0,!0),createButton("Cancel",!1)];break;case MessageBox.YES_NO:case MessageBox.YES_NO_CANCEL:buttons=[createButton("Yes",1,!0),createButton("No",0)],settings.buttons==MessageBox.YES_NO_CANCEL&&buttons.push(createButton("Cancel",-1));break;default:buttons=[createButton("Ok",!0,!0)]}return new Window({padding:20,x:settings.x,y:settings.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:buttons,title:settings.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:settings.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:settings.onClose,onCancel:function(){callback(!1)}}).renderTo(document.body).reflow()},alert:function(settings,callback){return"string"==typeof settings&&(settings={text:settings}),settings.callback=callback,MessageBox.msgBox(settings)},confirm:function(settings,callback){return"string"==typeof settings&&(settings={text:settings}),settings.callback=callback,settings.buttons=MessageBox.OK_CANCEL,MessageBox.msgBox(settings)}}});return MessageBox}),define("tinymce/WindowManager",["tinymce/ui/Window","tinymce/ui/MessageBox"],function(Window,MessageBox){return function(editor){function getTopMostWindow(){return windows.length?windows[windows.length-1]:void 0}function fireOpenEvent(win){editor.fire("OpenWindow",{win:win})}function fireCloseEvent(win){editor.fire("CloseWindow",{win:win})}var self=this,windows=[];self.windows=windows,editor.on("remove",function(){for(var i=windows.length;i--;)windows[i].close()}),self.open=function(args,params){var win;return editor.editorManager.setActive(editor),args.title=args.title||" ",args.url=args.url||args.file,args.url&&(args.width=parseInt(args.width||320,10),args.height=parseInt(args.height||240,10)),args.body&&(args.items={defaults:args.defaults,type:args.bodyType||"form",items:args.body}),args.url||args.buttons||(args.buttons=[{text:"Ok",subtype:"primary",onclick:function(){win.find("form")[0].submit()}},{text:"Cancel",onclick:function(){win.close()}}]),win=new Window(args),windows.push(win),win.on("close",function(){for(var i=windows.length;i--;)windows[i]===win&&windows.splice(i,1);windows.length||editor.focus(),fireCloseEvent(win)}),args.data&&win.on("postRender",function(){this.find("*").each(function(ctrl){var name=ctrl.name();name in args.data&&ctrl.value(args.data[name])})}),win.features=args||{},win.params=params||{},1===windows.length&&editor.nodeChanged(),win=win.renderTo().reflow(),fireOpenEvent(win),win},self.alert=function(message,callback,scope){var win;win=MessageBox.alert(message,function(){callback?callback.call(scope||this):editor.focus()}),win.on("close",function(){fireCloseEvent(win)}),fireOpenEvent(win)},self.confirm=function(message,callback,scope){var win;win=MessageBox.confirm(message,function(state){callback.call(scope||this,state)}),win.on("close",function(){fireCloseEvent(win)}),fireOpenEvent(win)},self.close=function(){getTopMostWindow()&&getTopMostWindow().close()},self.getParams=function(){return getTopMostWindow()?getTopMostWindow().params:null},self.setParams=function(params){getTopMostWindow()&&(getTopMostWindow().params=params)},self.getWindows=function(){return windows}}}),define("tinymce/ui/Tooltip",["tinymce/ui/Control","tinymce/ui/Movable"],function(Control,Movable){return Control.extend({Mixins:[Movable],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var self=this,prefix=self.classPrefix;return'"},bindStates:function(){var self=this;return self.state.on("change:text",function(e){self.getEl().lastChild.innerHTML=self.encode(e.value)}),self._super()},repaint:function(){var style,rect,self=this;style=self.getEl().style,rect=self._layoutRect,style.left=rect.x+"px",style.top=rect.y+"px",style.zIndex=131070}})}),define("tinymce/ui/Widget",["tinymce/ui/Control","tinymce/ui/Tooltip"],function(Control,Tooltip){var tooltip,Widget=Control.extend({init:function(settings){var self=this;self._super(settings),settings=self.settings,self.canFocus=!0,settings.tooltip&&Widget.tooltips!==!1&&(self.on("mouseenter",function(e){var tooltip=self.tooltip().moveTo(-65535);if(e.control==self){var rel=tooltip.text(settings.tooltip).show().testMoveRel(self.getEl(),["bc-tc","bc-tl","bc-tr"]);tooltip.classes.toggle("tooltip-n","bc-tc"==rel),tooltip.classes.toggle("tooltip-nw","bc-tl"==rel),tooltip.classes.toggle("tooltip-ne","bc-tr"==rel),tooltip.moveRel(self.getEl(),rel)}else tooltip.hide()}),self.on("mouseleave mousedown click",function(){self.tooltip().hide()})),self.aria("label",settings.ariaLabel||settings.tooltip)},tooltip:function(){return tooltip||(tooltip=new Tooltip({type:"tooltip"}),tooltip.renderTo()),tooltip},postRender:function(){var self=this,settings=self.settings;self._super(),self.parent()||!settings.width&&!settings.height||(self.initLayoutRect(),self.repaint()),settings.autofocus&&self.focus()},bindStates:function(){function disable(state){self.aria("disabled",state),self.classes.toggle("disabled",state)}function active(state){self.aria("pressed",state),self.classes.toggle("active",state)}var self=this;return self.state.on("change:disabled",function(e){disable(e.value)}),self.state.on("change:active",function(e){active(e.value)}),self.state.get("disabled")&&disable(!0),self.state.get("active")&&active(!0),self._super()},remove:function(){this._super(),tooltip&&(tooltip.remove(),tooltip=null)}});return Widget}),define("tinymce/ui/Progress",["tinymce/ui/Widget"],function(Widget){return Widget.extend({Defaults:{value:0},init:function(settings){var self=this;self._super(settings),self.classes.add("progress"),self.settings.filter||(self.settings.filter=function(value){return Math.round(value)})},renderHtml:function(){var self=this,id=self._id,prefix=this.classPrefix;return'
    0%
    '},postRender:function(){var self=this;return self._super(),self.value(self.settings.value),self},bindStates:function(){function setValue(value){value=self.settings.filter(value),self.getEl().lastChild.innerHTML=value+"%",self.getEl().firstChild.firstChild.style.width=value+"%"}var self=this;return self.state.on("change:value",function(e){setValue(e.value)}),setValue(self.state.get("value")),self._super()}})}),define("tinymce/ui/Notification",["tinymce/ui/Control","tinymce/ui/Movable","tinymce/ui/Progress"],function(Control,Movable,Progress){return Control.extend({Mixins:[Movable],Defaults:{classes:"widget notification"},init:function(settings){var self=this;self._super(settings),settings.text&&self.text(settings.text),settings.icon&&(self.icon=settings.icon),settings.color&&(self.color=settings.color),settings.type&&self.classes.add("notification-"+settings.type),settings.timeout&&(settings.timeout<0||settings.timeout>0)&&!settings.closeButton?self.closeButton=!1:(self.classes.add("has-close"),self.closeButton=!0),settings.progressBar&&(self.progressBar=new Progress),self.on("click",function(e){-1!=e.target.className.indexOf(self.classPrefix+"close")&&self.close()})},renderHtml:function(){var self=this,prefix=self.classPrefix,icon="",closeButton="",progressBar="",notificationStyle="";return self.icon&&(icon=''),self.color&&(notificationStyle=' style="background-color: '+self.color+'"'),self.closeButton&&(closeButton=''),self.progressBar&&(progressBar=self.progressBar.renderHtml()),'"},bindStates:function(){var self=this;return self.state.on("change:text",function(e){self.getEl().childNodes[1].innerHTML=e.value}),self.progressBar&&self.progressBar.bindStates(),self._super()},close:function(){var self=this;return self.fire("close").isDefaultPrevented()||self.remove(),self},repaint:function(){var style,rect,self=this;style=self.getEl().style,rect=self._layoutRect,style.left=rect.x+"px",style.top=rect.y+"px",style.zIndex=131070}})}),define("tinymce/NotificationManager",["tinymce/ui/Notification","tinymce/util/Delay"],function(Notification,Delay){return function(editor){function getLastNotification(){return notifications.length?notifications[notifications.length-1]:void 0}function resizeWindowEvent(){Delay.requestAnimationFrame(function(){prePositionNotifications(),positionNotifications()})}function prePositionNotifications(){for(var i=0;i0){var firstItem=notifications.slice(0,1)[0],container=editor.inline?editor.getElement():editor.getContentAreaContainer();if(firstItem.moveRel(container,"tc-tc"),notifications.length>1)for(var i=1;i0&&(notif.timer=setTimeout(function(){notif.close()},args.timeout)),notif.on("close",function(){var i=notifications.length;for(notif.timer&&editor.getWin().clearTimeout(notif.timer);i--;)notifications[i]===notif&¬ifications.splice(i,1);positionNotifications()}),notif.renderTo(),positionNotifications(),notif},self.close=function(){getLastNotification()&&getLastNotification().close()},self.getNotifications=function(){return notifications},editor.on("SkinLoaded",function(){var serviceMessage=editor.settings.service_message;serviceMessage&&editor.notificationManager.open({text:serviceMessage,type:"warning",timeout:0,icon:""})})}}),define("tinymce/dom/NodePath",["tinymce/dom/DOMUtils"],function(DOMUtils){function create(rootNode,targetNode,normalized){for(var path=[];targetNode&&targetNode!=rootNode;targetNode=targetNode.parentNode)path.push(DOMUtils.nodeIndex(targetNode,normalized));return path}function resolve(rootNode,path){var i,node,children;for(node=rootNode,i=path.length-1;i>=0;i--){if(children=node.childNodes,path[i]>children.length-1)return null;node=children[path[i]]}return node}return{create:create,resolve:resolve}}),define("tinymce/util/Quirks",["tinymce/util/VK","tinymce/dom/RangeUtils","tinymce/dom/TreeWalker","tinymce/dom/NodePath","tinymce/html/Node","tinymce/html/Entities","tinymce/Env","tinymce/util/Tools","tinymce/util/Delay","tinymce/caret/CaretContainer"],function(VK,RangeUtils,TreeWalker,NodePath,Node,Entities,Env,Tools,Delay,CaretContainer){return function(editor){function setEditorCommandState(cmd,state){try{editor.getDoc().execCommand(cmd,!1,state)}catch(ex){}}function getDocumentMode(){var documentMode=editor.getDoc().documentMode;return documentMode?documentMode:6}function isDefaultPrevented(e){return e.isDefaultPrevented()}function setMceInteralContent(e){var selectionHtml,internalContent;e.dataTransfer&&(editor.selection.isCollapsed()&&"IMG"==e.target.tagName&&selection.select(e.target),selectionHtml=editor.selection.getContent(),selectionHtml.length>0&&(internalContent=mceInternalUrlPrefix+escape(editor.id)+","+escape(selectionHtml),e.dataTransfer.setData(mceInternalDataType,internalContent)))}function getMceInternalContent(e){var internalContent;return e.dataTransfer&&(internalContent=e.dataTransfer.getData(mceInternalDataType),internalContent&&internalContent.indexOf(mceInternalUrlPrefix)>=0)?(internalContent=internalContent.substr(mceInternalUrlPrefix.length).split(","),{id:unescape(internalContent[0]),html:unescape(internalContent[1])}):null}function insertClipboardContents(content){editor.queryCommandSupported("mceInsertClipboardContent")?editor.execCommand("mceInsertClipboardContent",!1,{content:content}):editor.execCommand("mceInsertContent",!1,content)}function cleanupStylesWhenDeleting(){function isTrailingBr(node){var blockElements=dom.schema.getBlockElements(),rootNode=editor.getBody();if("BR"!=node.nodeName)return!1;for(node=node;node!=rootNode&&!blockElements[node.nodeName];node=node.parentNode)if(node.nextSibling)return!1;return!0}function isSiblingsIgnoreWhiteSpace(node1,node2){var node;for(node=node1.nextSibling;node&&node!=node2;node=node.nextSibling)if((3!=node.nodeType||0!==$.trim(node.data).length)&&node!==node2)return!1;return node===node2}function findCaretNode(node,forward,startNode){var walker,current,nonEmptyElements;for(nonEmptyElements=dom.schema.getNonEmptyElements(),walker=new TreeWalker(startNode||node,node);current=walker[forward?"next":"prev"]();){if(nonEmptyElements[current.nodeName]&&!isTrailingBr(current))return current;if(3==current.nodeType&¤t.data.length>0)return current}}function deleteRangeBetweenTextBlocks(rng){var startBlock,endBlock,caretNodeBefore,caretNodeAfter,textBlockElements;if(!rng.collapsed&&(startBlock=dom.getParent(RangeUtils.getNode(rng.startContainer,rng.startOffset),dom.isBlock),endBlock=dom.getParent(RangeUtils.getNode(rng.endContainer,rng.endOffset),dom.isBlock),textBlockElements=editor.schema.getTextBlockElements(),startBlock!=endBlock&&textBlockElements[startBlock.nodeName]&&textBlockElements[endBlock.nodeName]&&"false"!==dom.getContentEditable(startBlock)&&"false"!==dom.getContentEditable(endBlock)))return rng.deleteContents(),caretNodeBefore=findCaretNode(startBlock,!1),caretNodeAfter=findCaretNode(endBlock,!0),dom.isEmpty(endBlock)||$(startBlock).append(endBlock.childNodes),$(endBlock).remove(),caretNodeBefore?1==caretNodeBefore.nodeType?"BR"==caretNodeBefore.nodeName?(rng.setStartBefore(caretNodeBefore),rng.setEndBefore(caretNodeBefore)):(rng.setStartAfter(caretNodeBefore),rng.setEndAfter(caretNodeBefore)):(rng.setStart(caretNodeBefore,caretNodeBefore.data.length),rng.setEnd(caretNodeBefore,caretNodeBefore.data.length)):caretNodeAfter&&(1==caretNodeAfter.nodeType?(rng.setStartBefore(caretNodeAfter),rng.setEndBefore(caretNodeAfter)):(rng.setStart(caretNodeAfter,0),rng.setEnd(caretNodeAfter,0))),selection.setRng(rng),!0}function expandBetweenBlocks(rng,isForward){var caretNode,targetCaretNode,textBlock,targetTextBlock,container,offset;if(!rng.collapsed)return rng;if(container=rng.startContainer,offset=rng.startOffset,3==container.nodeType)if(isForward){if(offset0)return rng;if(caretNode=RangeUtils.getNode(rng.startContainer,rng.startOffset),textBlock=dom.getParent(caretNode,dom.isBlock),targetCaretNode=findCaretNode(editor.getBody(),isForward,caretNode),targetTextBlock=dom.getParent(targetCaretNode,dom.isBlock),!caretNode||!targetCaretNode)return rng;if(targetTextBlock&&textBlock!=targetTextBlock)if(isForward){if(!isSiblingsIgnoreWhiteSpace(textBlock,targetTextBlock))return rng;1==caretNode.nodeType?"BR"==caretNode.nodeName?rng.setStartBefore(caretNode):rng.setStartAfter(caretNode):rng.setStart(caretNode,caretNode.data.length),1==targetCaretNode.nodeType?rng.setEnd(targetCaretNode,0):rng.setEndBefore(targetCaretNode)}else{if(!isSiblingsIgnoreWhiteSpace(targetTextBlock,textBlock))return rng;1==targetCaretNode.nodeType?"BR"==targetCaretNode.nodeName?rng.setStartBefore(targetCaretNode):rng.setStartAfter(targetCaretNode):rng.setStart(targetCaretNode,targetCaretNode.data.length),1==caretNode.nodeType?rng.setEnd(caretNode,0):rng.setEndBefore(caretNode)}return rng}function handleTextBlockMergeDelete(isForward){var rng=selection.getRng();return rng=expandBetweenBlocks(rng,isForward),deleteRangeBetweenTextBlocks(rng)?!0:void 0}function handleLastBlockCharacterDelete(isForward,rng){function cloneTextBlockWithFormats(blockElm,node){return currentFormatNodes=$(node).parents().filter(function(idx,node){return!!editor.schema.getTextInlineElements()[node.nodeName]}),newBlockElm=blockElm.cloneNode(!1),currentFormatNodes=Tools.map(currentFormatNodes,function(formatNode){return formatNode=formatNode.cloneNode(!1),newBlockElm.hasChildNodes()?(formatNode.appendChild(newBlockElm.firstChild),newBlockElm.appendChild(formatNode)):newBlockElm.appendChild(formatNode),newBlockElm.appendChild(formatNode),formatNode}),currentFormatNodes.length?(br=dom.create("br"),currentFormatNodes[0].appendChild(br),dom.replace(newBlockElm,blockElm),rng.setStartBefore(br),rng.setEndBefore(br),editor.selection.setRng(rng),br):null}function isTextBlock(node){return node&&editor.schema.getTextBlockElements()[node.tagName]}var path,blockElm,newBlockElm,clonedBlockElm,sibling,container,offset,br,currentFormatNodes;if(rng.collapsed&&(container=rng.startContainer,offset=rng.startOffset,blockElm=dom.getParent(container,dom.isBlock), +isTextBlock(blockElm)))if(1==container.nodeType){if(container=container.childNodes[offset],container&&"BR"!=container.tagName)return;if(sibling=isForward?blockElm.nextSibling:blockElm.previousSibling,dom.isEmpty(blockElm)&&isTextBlock(sibling)&&dom.isEmpty(sibling)&&cloneTextBlockWithFormats(blockElm,container))return dom.remove(sibling),!0}else if(3==container.nodeType){if(path=NodePath.create(blockElm,container),clonedBlockElm=blockElm.cloneNode(!0),container=NodePath.resolve(clonedBlockElm,path),isForward){if(offset>=container.data.length)return;container.deleteData(offset,1)}else{if(0>=offset)return;container.deleteData(offset-1,1)}if(dom.isEmpty(clonedBlockElm))return cloneTextBlockWithFormats(blockElm,container)}}function customDelete(isForward){var mutationObserver,rng,caretElement;handleTextBlockMergeDelete(isForward)||(Tools.each(editor.getBody().getElementsByTagName("*"),function(elm){"SPAN"==elm.tagName&&elm.setAttribute("mce-data-marked",1),!elm.hasAttribute("data-mce-style")&&elm.hasAttribute("style")&&editor.dom.setAttrib(elm,"style",editor.dom.getAttrib(elm,"style"))}),mutationObserver=new MutationObserver(function(){}),mutationObserver.observe(editor.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),editor.getDoc().execCommand(isForward?"ForwardDelete":"Delete",!1,null),rng=editor.selection.getRng(),caretElement=rng.startContainer.parentNode,Tools.each(mutationObserver.takeRecords(),function(record){if(dom.isChildOf(record.target,editor.getBody())){if("style"==record.attributeName){var oldValue=record.target.getAttribute("data-mce-style");oldValue?record.target.setAttribute("style",oldValue):record.target.removeAttribute("style")}Tools.each(record.addedNodes,function(node){if("SPAN"==node.nodeName&&!node.getAttribute("mce-data-marked")){var offset,container;node==caretElement&&(offset=rng.startOffset,container=node.firstChild),dom.remove(node,!0),container&&(rng.setStart(container,offset),rng.setEnd(container,offset),editor.selection.setRng(rng))}})}}),mutationObserver.disconnect(),Tools.each(editor.dom.select("span[mce-data-marked]"),function(span){span.removeAttribute("mce-data-marked")}))}var olderWebKit,dragStartRng,doc=editor.getDoc(),dom=editor.dom,selection=editor.selection,MutationObserver=window.MutationObserver;MutationObserver||(olderWebKit=!0,MutationObserver=function(){function nodeInsert(e){var target=e.relatedNode||e.target;records.push({target:target,addedNodes:[target]})}function attrModified(e){var target=e.relatedNode||e.target;records.push({target:target,attributeName:e.attrName})}var target,records=[];this.observe=function(node){target=node,target.addEventListener("DOMSubtreeModified",nodeInsert,!1),target.addEventListener("DOMNodeInsertedIntoDocument",nodeInsert,!1),target.addEventListener("DOMNodeInserted",nodeInsert,!1),target.addEventListener("DOMAttrModified",attrModified,!1)},this.disconnect=function(){target.removeEventListener("DOMSubtreeModified",nodeInsert,!1),target.removeEventListener("DOMNodeInsertedIntoDocument",nodeInsert,!1),target.removeEventListener("DOMNodeInserted",nodeInsert,!1),target.removeEventListener("DOMAttrModified",attrModified,!1)},this.takeRecords=function(){return records}}),editor.on("keydown",function(e){var isForward=e.keyCode==DELETE,isMetaOrCtrl=e.ctrlKey||e.metaKey;if(!isDefaultPrevented(e)&&(isForward||e.keyCode==BACKSPACE)){var rng=editor.selection.getRng(),container=rng.startContainer,offset=rng.startOffset;if(isForward&&e.shiftKey)return;if(handleLastBlockCharacterDelete(isForward,rng))return void e.preventDefault();if(!isMetaOrCtrl&&rng.collapsed&&3==container.nodeType&&(isForward?offset0))return;e.preventDefault(),isMetaOrCtrl&&editor.selection.getSel().modify("extend",isForward?"forward":"backward",e.metaKey?"lineboundary":"word"),customDelete(isForward)}}),editor.on("keypress",function(e){if(!isDefaultPrevented(e)&&!selection.isCollapsed()&&e.charCode>31&&!VK.metaKeyPressed(e)){var rng,currentFormatNodes,fragmentNode,blockParent,caretNode,charText;rng=editor.selection.getRng(),charText=String.fromCharCode(e.charCode),e.preventDefault(),currentFormatNodes=$(rng.startContainer).parents().filter(function(idx,node){return!!editor.schema.getTextInlineElements()[node.nodeName]}),customDelete(!0),currentFormatNodes=currentFormatNodes.filter(function(idx,node){return!$.contains(editor.getBody(),node)}),currentFormatNodes.length?(fragmentNode=dom.createFragment(),currentFormatNodes.each(function(idx,formatNode){formatNode=formatNode.cloneNode(!1),fragmentNode.hasChildNodes()?(formatNode.appendChild(fragmentNode.firstChild),fragmentNode.appendChild(formatNode)):(caretNode=formatNode,fragmentNode.appendChild(formatNode)),fragmentNode.appendChild(formatNode)}),caretNode.appendChild(editor.getDoc().createTextNode(charText)),blockParent=dom.getParent(rng.startContainer,dom.isBlock),dom.isEmpty(blockParent)?$(blockParent).empty().append(fragmentNode):rng.insertNode(fragmentNode),rng.setStart(caretNode.firstChild,1),rng.setEnd(caretNode.firstChild,1),editor.selection.setRng(rng)):editor.selection.setContent(charText)}}),editor.addCommand("Delete",function(){customDelete()}),editor.addCommand("ForwardDelete",function(){customDelete(!0)}),olderWebKit||(editor.on("dragstart",function(e){dragStartRng=selection.getRng(),setMceInteralContent(e)}),editor.on("drop",function(e){if(!isDefaultPrevented(e)){var internalContent=getMceInternalContent(e);internalContent&&(e.preventDefault(),Delay.setEditorTimeout(editor,function(){var pointRng=RangeUtils.getCaretRangeFromPoint(e.x,e.y,doc);dragStartRng&&(selection.setRng(dragStartRng),dragStartRng=null),customDelete(),selection.setRng(pointRng),insertClipboardContents(internalContent.html)}))}}),editor.on("cut",function(e){isDefaultPrevented(e)||!e.clipboardData||editor.selection.isCollapsed()||(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",editor.selection.getContent()),e.clipboardData.setData("text/plain",editor.selection.getContent({format:"text"})),Delay.setEditorTimeout(editor,function(){customDelete(!0)}))}))}function emptyEditorWhenDeleting(){function serializeRng(rng){var body=dom.create("body"),contents=rng.cloneContents();return body.appendChild(contents),selection.serializer.serialize(body,{format:"html"})}function allContentsSelected(rng){if(!rng.setStart){if(rng.item)return!1;var bodyRng=rng.duplicate();return bodyRng.moveToElementText(editor.getBody()),RangeUtils.compareRanges(rng,bodyRng)}var selection=serializeRng(rng),allRng=dom.createRng();allRng.selectNode(editor.getBody());var allSelection=serializeRng(allRng);return selection===allSelection}editor.on("keydown",function(e){var isCollapsed,body,keyCode=e.keyCode;if(!isDefaultPrevented(e)&&(keyCode==DELETE||keyCode==BACKSPACE)){if(isCollapsed=editor.selection.isCollapsed(),body=editor.getBody(),isCollapsed&&!dom.isEmpty(body))return;if(!isCollapsed&&!allContentsSelected(editor.selection.getRng()))return;e.preventDefault(),editor.setContent(""),body.firstChild&&dom.isBlock(body.firstChild)?editor.selection.setCursorLocation(body.firstChild,0):editor.selection.setCursorLocation(body,0),editor.nodeChanged()}})}function selectAll(){editor.shortcuts.add("meta+a",null,"SelectAll")}function inputMethodFocus(){editor.settings.content_editable||dom.bind(editor.getDoc(),"mousedown mouseup",function(e){var rng;if(e.target==editor.getDoc().documentElement)if(rng=selection.getRng(),editor.getBody().focus(),"mousedown"==e.type){if(CaretContainer.isCaretContainer(rng.startContainer))return;selection.placeCaretAt(e.clientX,e.clientY)}else selection.setRng(rng)})}function removeHrOnBackspace(){editor.on("keydown",function(e){if(!isDefaultPrevented(e)&&e.keyCode===BACKSPACE){if(!editor.getBody().getElementsByTagName("hr").length)return;if(selection.isCollapsed()&&0===selection.getRng(!0).startOffset){var node=selection.getNode(),previousSibling=node.previousSibling;if("HR"==node.nodeName)return dom.remove(node),void e.preventDefault();previousSibling&&previousSibling.nodeName&&"hr"===previousSibling.nodeName.toLowerCase()&&(dom.remove(previousSibling),e.preventDefault())}}})}function focusBody(){window.Range.prototype.getClientRects||editor.on("mousedown",function(e){if(!isDefaultPrevented(e)&&"HTML"===e.target.nodeName){var body=editor.getBody();body.blur(),Delay.setEditorTimeout(editor,function(){body.focus()})}})}function selectControlElements(){editor.on("click",function(e){var target=e.target;/^(IMG|HR)$/.test(target.nodeName)&&"false"!==dom.getContentEditableParent(target)&&(e.preventDefault(),selection.getSel().setBaseAndExtent(target,0,target,1),editor.nodeChanged()),"A"==target.nodeName&&dom.hasClass(target,"mce-item-anchor")&&(e.preventDefault(),selection.select(target))})}function removeStylesWhenDeletingAcrossBlockElements(){function getAttributeApplyFunction(){var template=dom.getAttribs(selection.getStart().cloneNode(!1));return function(){var target=selection.getStart();target!==editor.getBody()&&(dom.setAttrib(target,"style",null),each(template,function(attr){target.setAttributeNode(attr.cloneNode(!0))}))}}function isSelectionAcrossElements(){return!selection.isCollapsed()&&dom.getParent(selection.getStart(),dom.isBlock)!=dom.getParent(selection.getEnd(),dom.isBlock)}editor.on("keypress",function(e){var applyAttributes;return isDefaultPrevented(e)||8!=e.keyCode&&46!=e.keyCode||!isSelectionAcrossElements()?void 0:(applyAttributes=getAttributeApplyFunction(),editor.getDoc().execCommand("delete",!1,null),applyAttributes(),e.preventDefault(),!1)}),dom.bind(editor.getDoc(),"cut",function(e){var applyAttributes;!isDefaultPrevented(e)&&isSelectionAcrossElements()&&(applyAttributes=getAttributeApplyFunction(),Delay.setEditorTimeout(editor,function(){applyAttributes()}))})}function ensureBodyHasRoleApplication(){document.body.setAttribute("role","application")}function disableBackspaceIntoATable(){editor.on("keydown",function(e){if(!isDefaultPrevented(e)&&e.keyCode===BACKSPACE&&selection.isCollapsed()&&0===selection.getRng(!0).startOffset){var previousSibling=selection.getNode().previousSibling;if(previousSibling&&previousSibling.nodeName&&"table"===previousSibling.nodeName.toLowerCase())return e.preventDefault(),!1}})}function addNewLinesBeforeBrInPre(){getDocumentMode()>7||(setEditorCommandState("RespectVisibilityInDesign",!0),editor.contentStyles.push(".mceHideBrInPre pre br {display: none}"),dom.addClass(editor.getBody(),"mceHideBrInPre"),parser.addNodeFilter("pre",function(nodes){for(var brNodes,j,brElm,sibling,i=nodes.length;i--;)for(brNodes=nodes[i].getAll("br"),j=brNodes.length;j--;)brElm=brNodes[j],sibling=brElm.prev,sibling&&3===sibling.type&&"\n"!=sibling.value.charAt(sibling.value-1)?sibling.value+="\n":brElm.parent.insert(new Node("#text",3),brElm,!0).value="\n"}),serializer.addNodeFilter("pre",function(nodes){for(var brNodes,j,brElm,sibling,i=nodes.length;i--;)for(brNodes=nodes[i].getAll("br"),j=brNodes.length;j--;)brElm=brNodes[j],sibling=brElm.prev,sibling&&3==sibling.type&&(sibling.value=sibling.value.replace(/\r?\n$/,""))}))}function removePreSerializedStylesWhenSelectingControls(){dom.bind(editor.getBody(),"mouseup",function(){var value,node=selection.getNode();"IMG"==node.nodeName&&((value=dom.getStyle(node,"width"))&&(dom.setAttrib(node,"width",value.replace(/[^0-9%]+/g,"")),dom.setStyle(node,"width","")),(value=dom.getStyle(node,"height"))&&(dom.setAttrib(node,"height",value.replace(/[^0-9%]+/g,"")),dom.setStyle(node,"height","")))})}function removeBlockQuoteOnBackSpace(){editor.on("keydown",function(e){var rng,container,offset,root,parent;if(!isDefaultPrevented(e)&&e.keyCode==VK.BACKSPACE&&(rng=selection.getRng(),container=rng.startContainer,offset=rng.startOffset,root=dom.getRoot(),parent=container,rng.collapsed&&0===offset)){for(;parent&&parent.parentNode&&parent.parentNode.firstChild==parent&&parent.parentNode!=root;)parent=parent.parentNode;"BLOCKQUOTE"===parent.tagName&&(editor.formatter.toggle("blockquote",null,parent),rng=dom.createRng(),rng.setStart(container,0),rng.setEnd(container,0),selection.setRng(rng))}})}function setGeckoEditingOptions(){function setOpts(){editor._refreshContentEditable(),setEditorCommandState("StyleWithCSS",!1),setEditorCommandState("enableInlineTableEditing",!1),settings.object_resizing||setEditorCommandState("enableObjectResizing",!1)}settings.readonly||editor.on("BeforeExecCommand MouseDown",setOpts)}function addBrAfterLastLinks(){function fixLinks(){each(dom.select("a"),function(node){var parentNode=node.parentNode,root=dom.getRoot();if(parentNode.lastChild===node){for(;parentNode&&!dom.isBlock(parentNode);){if(parentNode.parentNode.lastChild!==parentNode||parentNode===root)return;parentNode=parentNode.parentNode}dom.add(parentNode,"br",{"data-mce-bogus":1})}})}editor.on("SetContent ExecCommand",function(e){"setcontent"!=e.type&&"mceInsertLink"!==e.command||fixLinks()})}function setDefaultBlockType(){settings.forced_root_block&&editor.on("init",function(){setEditorCommandState("DefaultParagraphSeparator",settings.forced_root_block)})}function deleteControlItemOnBackSpace(){editor.on("keydown",function(e){var rng;isDefaultPrevented(e)||e.keyCode!=BACKSPACE||(rng=editor.getDoc().selection.createRange(),rng&&rng.item&&(e.preventDefault(),editor.undoManager.beforeChange(),dom.remove(rng.item(0)),editor.undoManager.add()))})}function renderEmptyBlocksFix(){var emptyBlocksCSS;getDocumentMode()>=10&&(emptyBlocksCSS="",each("p div h1 h2 h3 h4 h5 h6".split(" "),function(name,i){emptyBlocksCSS+=(i>0?",":"")+name+":empty"}),editor.contentStyles.push(emptyBlocksCSS+"{padding-right: 1px !important}"))}function keepNoScriptContents(){getDocumentMode()<9&&(parser.addNodeFilter("noscript",function(nodes){for(var node,textNode,i=nodes.length;i--;)node=nodes[i],textNode=node.firstChild,textNode&&node.attr("data-mce-innertext",textNode.value)}),serializer.addNodeFilter("noscript",function(nodes){for(var node,textNode,value,i=nodes.length;i--;)node=nodes[i],textNode=nodes[i].firstChild,textNode?textNode.value=Entities.decode(textNode.value):(value=node.attributes.map["data-mce-innertext"],value&&(node.attr("data-mce-innertext",null),textNode=new Node("#text",3),textNode.value=value,textNode.raw=!0,node.append(textNode)))}))}function fixCaretSelectionOfDocumentElementOnIe(){function rngFromPoint(x,y){var rng=body.createTextRange();try{rng.moveToPoint(x,y)}catch(ex){rng=null}return rng}function selectionChange(e){var pointRng;e.button?(pointRng=rngFromPoint(e.x,e.y),pointRng&&(pointRng.compareEndPoints("StartToStart",startRng)>0?pointRng.setEndPoint("StartToStart",startRng):pointRng.setEndPoint("EndToEnd",startRng),pointRng.select())):endSelection()}function endSelection(){var rng=doc.selection.createRange();startRng&&!rng.item&&0===rng.compareEndPoints("StartToEnd",rng)&&startRng.select(),dom.unbind(doc,"mouseup",endSelection),dom.unbind(doc,"mousemove",selectionChange),startRng=started=0}var started,startRng,htmlElm,doc=dom.doc,body=doc.body;doc.documentElement.unselectable=!0,dom.bind(doc,"mousedown contextmenu",function(e){if("HTML"===e.target.nodeName){if(started&&endSelection(),htmlElm=doc.documentElement,htmlElm.scrollHeight>htmlElm.clientHeight)return;started=1,startRng=rngFromPoint(e.x,e.y),startRng&&(dom.bind(doc,"mouseup",endSelection),dom.bind(doc,"mousemove",selectionChange),dom.getRoot().focus(),startRng.select())}})}function normalizeSelection(){editor.on("keyup focusin mouseup",function(e){65==e.keyCode&&VK.metaKeyPressed(e)||selection.normalize()},!0)}function showBrokenImageIcon(){editor.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function restoreFocusOnKeyDown(){editor.inline||editor.on("keydown",function(){document.activeElement==document.body&&editor.getWin().focus()})}function bodyHeight(){editor.inline||(editor.contentStyles.push("body {min-height: 150px}"),editor.on("click",function(e){var rng;if("HTML"==e.target.nodeName){if(Env.ie>11)return void editor.getBody().focus();rng=editor.selection.getRng(),editor.getBody().focus(),editor.selection.setRng(rng),editor.selection.normalize(),editor.nodeChanged()}}))}function blockCmdArrowNavigation(){Env.mac&&editor.on("keydown",function(e){!VK.metaKeyPressed(e)||e.shiftKey||37!=e.keyCode&&39!=e.keyCode||(e.preventDefault(),editor.selection.getSel().modify("move",37==e.keyCode?"backward":"forward","lineboundary"))})}function disableAutoUrlDetect(){setEditorCommandState("AutoUrlDetect",!1)}function tapLinksAndImages(){editor.on("click",function(e){var elm=e.target;do if("A"===elm.tagName)return void e.preventDefault();while(elm=elm.parentNode)}),editor.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function blockFormSubmitInsideEditor(){editor.on("init",function(){editor.dom.bind(editor.getBody(),"submit",function(e){e.preventDefault()})})}function removeAppleInterchangeBrs(){parser.addNodeFilter("br",function(nodes){for(var i=nodes.length;i--;)"Apple-interchange-newline"==nodes[i].attr("class")&&nodes[i].remove()})}function ieInternalDragAndDrop(){editor.on("dragstart",function(e){setMceInteralContent(e)}),editor.on("drop",function(e){if(!isDefaultPrevented(e)){var internalContent=getMceInternalContent(e);if(internalContent&&internalContent.id!=editor.id){e.preventDefault();var rng=RangeUtils.getCaretRangeFromPoint(e.x,e.y,editor.getDoc());selection.setRng(rng),insertClipboardContents(internalContent.html)}}})}var each=Tools.each,$=editor.$,BACKSPACE=VK.BACKSPACE,DELETE=VK.DELETE,dom=editor.dom,selection=editor.selection,settings=editor.settings,parser=editor.parser,serializer=editor.serializer,isGecko=Env.gecko,isIE=Env.ie,isWebKit=Env.webkit,mceInternalUrlPrefix="data:text/mce-internal,",mceInternalDataType=isIE?"Text":"URL";removeBlockQuoteOnBackSpace(),emptyEditorWhenDeleting(),Env.windowsPhone||normalizeSelection(),isWebKit&&(cleanupStylesWhenDeleting(),inputMethodFocus(),selectControlElements(),setDefaultBlockType(),blockFormSubmitInsideEditor(),disableBackspaceIntoATable(),removeAppleInterchangeBrs(),Env.iOS?(restoreFocusOnKeyDown(),bodyHeight(),tapLinksAndImages()):selectAll()),isIE&&Env.ie<11&&(removeHrOnBackspace(),ensureBodyHasRoleApplication(),addNewLinesBeforeBrInPre(),removePreSerializedStylesWhenSelectingControls(),deleteControlItemOnBackSpace(),renderEmptyBlocksFix(),keepNoScriptContents(),fixCaretSelectionOfDocumentElementOnIe()),Env.ie>=11&&(bodyHeight(),disableBackspaceIntoATable()),Env.ie&&(selectAll(),disableAutoUrlDetect(),ieInternalDragAndDrop()),isGecko&&(removeHrOnBackspace(),focusBody(),removeStylesWhenDeletingAcrossBlockElements(),setGeckoEditingOptions(),addBrAfterLastLinks(),showBrokenImageIcon(),blockCmdArrowNavigation(),disableBackspaceIntoATable())}}),define("tinymce/EditorObservable",["tinymce/util/Observable","tinymce/dom/DOMUtils","tinymce/util/Tools"],function(Observable,DOMUtils,Tools){function getEventTarget(editor,eventName){return"selectionchange"==eventName?editor.getDoc():!editor.inline&&/^mouse|click|contextmenu|drop|dragover|dragend/.test(eventName)?editor.getDoc().documentElement:editor.settings.event_root?(editor.eventRoot||(editor.eventRoot=DOM.select(editor.settings.event_root)[0]),editor.eventRoot):editor.getBody()}function bindEventDelegate(editor,eventName){function isListening(editor){return!editor.hidden&&!editor.readonly}var delegate,eventRootElm=getEventTarget(editor,eventName);if(editor.delegates||(editor.delegates={}),!editor.delegates[eventName])if(editor.settings.event_root){if(customEventRootDelegates||(customEventRootDelegates={},editor.editorManager.on("removeEditor",function(){var name;if(!editor.editorManager.activeEditor&&customEventRootDelegates){for(name in customEventRootDelegates)editor.dom.unbind(getEventTarget(editor,name));customEventRootDelegates=null}})),customEventRootDelegates[eventName])return;delegate=function(e){for(var target=e.target,editors=editor.editorManager.editors,i=editors.length;i--;){var body=editors[i].getBody();(body===target||DOM.isChildOf(target,body))&&isListening(editors[i])&&editors[i].fire(eventName,e)}},customEventRootDelegates[eventName]=delegate,DOM.bind(eventRootElm,eventName,delegate)}else delegate=function(e){isListening(editor)&&editor.fire(eventName,e)},DOM.bind(eventRootElm,eventName,delegate),editor.delegates[eventName]=delegate}var customEventRootDelegates,DOM=DOMUtils.DOM,EditorObservable={bindPendingEventDelegates:function(){var self=this;Tools.each(self._pendingNativeEvents,function(name){bindEventDelegate(self,name)})},toggleNativeEvent:function(name,state){var self=this;"focus"!=name&&"blur"!=name&&(state?self.initialized?bindEventDelegate(self,name):self._pendingNativeEvents?self._pendingNativeEvents.push(name):self._pendingNativeEvents=[name]:self.initialized&&(self.dom.unbind(getEventTarget(self,name),name,self.delegates[name]),delete self.delegates[name]))},unbindAllNativeEvents:function(){var name,self=this;if(self.delegates){for(name in self.delegates)self.dom.unbind(getEventTarget(self,name),name,self.delegates[name]);delete self.delegates}self.inline||(self.getBody().onload=null,self.dom.unbind(self.getWin()),self.dom.unbind(self.getDoc())),self.dom.unbind(self.getBody()),self.dom.unbind(self.getContainer())}};return EditorObservable=Tools.extend({},Observable,EditorObservable)}),define("tinymce/Mode",[],function(){function setEditorCommandState(editor,cmd,state){try{editor.getDoc().execCommand(cmd,!1,state)}catch(ex){}}function setMode(editor,mode){var currentMode=editor.readonly?"readonly":"design";mode!=currentMode&&("readonly"==mode?(editor.selection.controlSelection.hideResizeRect(),editor.readonly=!0,editor.getBody().contentEditable=!1):(editor.readonly=!1,editor.getBody().contentEditable=!0,setEditorCommandState(editor,"StyleWithCSS",!1),setEditorCommandState(editor,"enableInlineTableEditing",!1),setEditorCommandState(editor,"enableObjectResizing",!1),editor.focus(),editor.nodeChanged()),editor.fire("SwitchMode",{mode:mode}))}return{setMode:setMode}}),define("tinymce/Shortcuts",["tinymce/util/Tools","tinymce/Env"],function(Tools,Env){var each=Tools.each,explode=Tools.explode,keyCodeLookup={f9:120,f10:121,f11:122},modifierNames=Tools.makeMap("alt,ctrl,shift,meta,access");return function(editor){function createShortcut(pattern,desc,cmdFunc,scope){var id,key,shortcut;shortcut={func:cmdFunc,scope:scope||editor,desc:editor.translate(desc)},each(explode(pattern,"+"),function(value){value in modifierNames?shortcut[value]=!0:/^[0-9]{2,}$/.test(value)?shortcut.keyCode=parseInt(value,10):(shortcut.charCode=value.charCodeAt(0),shortcut.keyCode=keyCodeLookup[value]||value.toUpperCase().charCodeAt(0))}),id=[shortcut.keyCode];for(key in modifierNames)shortcut[key]?id.push(key):shortcut[key]=!1;return shortcut.id=id.join(","),shortcut.access&&(shortcut.alt=!0,Env.mac?shortcut.ctrl=!0:shortcut.shift=!0),shortcut.meta&&(Env.mac?shortcut.meta=!0:(shortcut.ctrl=!0,shortcut.meta=!1)),shortcut}var self=this,shortcuts={};editor.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&!e.isDefaultPrevented()&&each(shortcuts,function(shortcut){return shortcut.ctrl==e.ctrlKey&&shortcut.meta==e.metaKey&&shortcut.alt==e.altKey&&shortcut.shift==e.shiftKey&&(e.keyCode==shortcut.keyCode||e.charCode&&e.charCode==shortcut.charCode)?(e.preventDefault(),"keydown"==e.type&&shortcut.func.call(shortcut.scope),!0):void 0})}),self.add=function(pattern,desc,cmdFunc,scope){var cmd;return cmd=cmdFunc,"string"==typeof cmdFunc?cmdFunc=function(){editor.execCommand(cmd,!1,null)}:Tools.isArray(cmd)&&(cmdFunc=function(){editor.execCommand(cmd[0],cmd[1],cmd[2])}),each(explode(pattern.toLowerCase()),function(pattern){var shortcut=createShortcut(pattern,desc,cmdFunc,scope);shortcuts[shortcut.id]=shortcut}),!0},self.remove=function(pattern){var shortcut=createShortcut(pattern);return shortcuts[shortcut.id]?(delete shortcuts[shortcut.id],!0):!1}}}),define("tinymce/file/Uploader",["tinymce/util/Promise","tinymce/util/Tools","tinymce/util/Fun"],function(Promise,Tools,Fun){return function(settings){function fileName(blobInfo){var ext,extensions;return extensions={"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"},ext=extensions[blobInfo.blob().type.toLowerCase()]||"dat",blobInfo.id()+"."+ext}function pathJoin(path1,path2){return path1?path1.replace(/\/$/,"")+"/"+path2.replace(/^\//,""):path2}function blobInfoToData(blobInfo){return{id:blobInfo.id,blob:blobInfo.blob,base64:blobInfo.base64,filename:Fun.constant(fileName(blobInfo))}}function defaultHandler(blobInfo,success,failure,openNotification){var xhr,formData,notification;xhr=new XMLHttpRequest,xhr.open("POST",settings.url),xhr.withCredentials=settings.credentials,notification=openNotification(),xhr.upload.onprogress=function(e){var percentLoaded=Math.round(e.loaded/e.total*100);notification.progressBar.value(percentLoaded)},xhr.onload=function(){var json;return notification.close(),200!=xhr.status?void failure("HTTP Error: "+xhr.status):(json=JSON.parse(xhr.responseText),json&&"string"==typeof json.location?void success(pathJoin(settings.basePath,json.location)):void failure("Invalid JSON: "+xhr.responseText))},formData=new FormData,formData.append("file",blobInfo.blob(),fileName(blobInfo)),xhr.send(formData)}function noUpload(){return new Promise(function(resolve){resolve([])})}function interpretResult(promise){return promise.then(function(result){return result})["catch"](function(error){return error})}function registerPromise(handler,id,blobInfo){var response=handler(blobInfo),promise=interpretResult(response);return delete cachedPromises[id],cachedPromises[id]=promise,promise}function collectUploads(blobInfos,uploadBlobInfo){return Tools.map(blobInfos,function(blobInfo){var id=blobInfo.id();return cachedPromises[id]?cachedPromises[id]:registerPromise(uploadBlobInfo,id,blobInfo)})}function uploadBlobs(blobInfos,openNotification){function uploadBlobInfo(blobInfo){return new Promise(function(resolve){var handler=settings.handler;handler(blobInfoToData(blobInfo),function(url){resolve({url:url,blobInfo:blobInfo,status:!0})},function(failure){resolve({url:"",blobInfo:blobInfo,status:!1,error:failure})},openNotification)})}var promises=collectUploads(blobInfos,uploadBlobInfo);return Promise.all(promises)}function upload(blobInfos,openNotification){return settings.url||settings.handler!==defaultHandler?uploadBlobs(blobInfos,openNotification):noUpload()}var cachedPromises={};return settings=Tools.extend({credentials:!1,handler:defaultHandler},settings),{upload:upload}}}),define("tinymce/file/Conversions",["tinymce/util/Promise"],function(Promise){function blobUriToBlob(url){return new Promise(function(resolve){var xhr=new XMLHttpRequest;xhr.open("GET",url,!0),xhr.responseType="blob",xhr.onload=function(){200==this.status&&resolve(this.response)},xhr.send()})}function parseDataUri(uri){var type,matches;return uri=decodeURIComponent(uri).split(","),matches=/data:([^;]+)/.exec(uri[0]),matches&&(type=matches[1]),{type:type,data:uri[1]}}function dataUriToBlob(uri){return new Promise(function(resolve){var str,arr,i;uri=parseDataUri(uri);try{str=atob(uri.data)}catch(e){return void resolve(new Blob([]))}for(arr=new Uint8Array(str.length),i=0;i0}function isBackwards(direction){return 0>direction}function findNode(node,direction,predicateFn,rootNode,shallow){var walker=new TreeWalker(node,rootNode);if(isBackwards(direction)){if(isContentEditableFalse(node)&&(node=walker.prev(!0),predicateFn(node)))return node;for(;node=walker.prev(shallow);)if(predicateFn(node))return node}if(isForwards(direction)){if(isContentEditableFalse(node)&&(node=walker.next(!0),predicateFn(node)))return node;for(;node=walker.next(shallow);)if(predicateFn(node))return node}return null}function getEditingHost(node,rootNode){for(node=node.parentNode;node&&node!=rootNode;node=node.parentNode)if(isContentEditableTrue(node))return node;return rootNode}function getParentBlock(node,rootNode){for(;node&&node!=rootNode;){if(isBlockLike(node))return node;node=node.parentNode}return null}function isInSameBlock(caretPosition1,caretPosition2,rootNode){return getParentBlock(caretPosition1.container(),rootNode)==getParentBlock(caretPosition2.container(),rootNode)}function isInSameEditingHost(caretPosition1,caretPosition2,rootNode){return getEditingHost(caretPosition1.container(),rootNode)==getEditingHost(caretPosition2.container(),rootNode)}function getChildNodeAtRelativeOffset(relativeOffset,caretPosition){var container,offset;return caretPosition?(container=caretPosition.container(),offset=caretPosition.offset(),isElement(container)?container.childNodes[offset+relativeOffset]:null):null}function beforeAfter(before,node){var range=node.ownerDocument.createRange();return before?(range.setStartBefore(node),range.setEndBefore(node)):(range.setStartAfter(node),range.setEndAfter(node)),range}function isNodesInSameBlock(rootNode,node1,node2){return getParentBlock(node1,rootNode)==getParentBlock(node2,rootNode)}function lean(left,rootNode,node){var sibling,siblingName;for(siblingName=left?"previousSibling":"nextSibling";node&&node!=rootNode;){if(sibling=node[siblingName],isCaretContainer(sibling)&&(sibling=sibling[siblingName]),isContentEditableFalse(sibling)){if(isNodesInSameBlock(rootNode,sibling,node))return sibling;break}if(isCaretCandidate(sibling))break;node=node.parentNode}return null}function normalizeRange(direction,rootNode,range){var node,container,offset,location,leanLeft=curry(lean,!0,rootNode),leanRight=curry(lean,!1,rootNode);if(container=range.startContainer,offset=range.startOffset,CaretContainer.isCaretContainerBlock(container)){if(isElement(container)||(container=container.parentNode),location=container.getAttribute("data-mce-caret"),"before"==location&&(node=container.nextSibling,isContentEditableFalse(node)))return before(node);if("after"==location&&(node=container.previousSibling,isContentEditableFalse(node)))return after(node)}if(!range.collapsed)return range;if(NodeType.isText(container)){if(isCaretContainer(container)){if(1===direction){if(node=leanRight(container))return before(node);if(node=leanLeft(container))return after(node)}if(-1===direction){if(node=leanLeft(container))return after(node);if(node=leanRight(container))return before(node)}return range}if(CaretContainer.endsWithCaretContainer(container)&&offset>=container.data.length-1)return 1===direction&&(node=leanRight(container))?before(node):range;if(CaretContainer.startsWithCaretContainer(container)&&1>=offset)return-1===direction&&(node=leanLeft(container))?after(node):range;if(offset===container.data.length)return node=leanRight(container),node?before(node):range;if(0===offset)return node=leanLeft(container),node?after(node):range}return range}function isNextToContentEditableFalse(relativeOffset,caretPosition){return isContentEditableFalse(getChildNodeAtRelativeOffset(relativeOffset,caretPosition))}var isContentEditableTrue=NodeType.isContentEditableTrue,isContentEditableFalse=NodeType.isContentEditableFalse,isBlockLike=NodeType.matchStyleValues("display","block table table-cell table-caption"),isCaretContainer=CaretContainer.isCaretContainer,curry=Fun.curry,isElement=NodeType.isElement,isCaretCandidate=CaretCandidate.isCaretCandidate,before=curry(beforeAfter,!0),after=curry(beforeAfter,!1);return{isForwards:isForwards,isBackwards:isBackwards,findNode:findNode,getEditingHost:getEditingHost,getParentBlock:getParentBlock,isInSameBlock:isInSameBlock,isInSameEditingHost:isInSameEditingHost,isBeforeContentEditableFalse:curry(isNextToContentEditableFalse,0),isAfterContentEditableFalse:curry(isNextToContentEditableFalse,-1),normalizeRange:normalizeRange}}),define("tinymce/caret/CaretWalker",["tinymce/dom/NodeType","tinymce/caret/CaretCandidate","tinymce/caret/CaretPosition","tinymce/caret/CaretUtils","tinymce/util/Arr","tinymce/util/Fun"],function(NodeType,CaretCandidate,CaretPosition,CaretUtils,Arr,Fun){function getParents(node,rootNode){for(var parents=[];node&&node!=rootNode;)parents.push(node),node=node.parentNode;return parents}function nodeAtIndex(container,offset){return container.hasChildNodes()&&offset0)return CaretPosition(container,--offset);if(isForwards(direction)&&offset0&&(nextNode=nodeAtIndex(container,offset-1),isCaretCandidate(nextNode)))return!isAtomic(nextNode)&&(innerNode=CaretUtils.findNode(nextNode,direction,isEditableCaretCandidate,nextNode))?isText(innerNode)?CaretPosition(innerNode,innerNode.data.length):CaretPosition.after(innerNode):isText(nextNode)?CaretPosition(nextNode,nextNode.data.length):CaretPosition.before(nextNode);if(isForwards(direction)&&offset0&&(before&&(margin*=-1),clientRect.left+=margin,clientRect.right+=margin),clientRect}function trimInlineCaretContainers(){var contentEditableFalseNodes,node,sibling,i,data;for(contentEditableFalseNodes=$("*[contentEditable=false]",rootNode),i=0;i
    ').css(clientRect).appendTo(rootNode),before&&$lastVisualCaret.addClass("mce-visual-caret-before"),startBlink(),rng=node.ownerDocument.createRange(),container=caretContainerNode.firstChild,rng.setStart(container,0),rng.setEnd(container,1),rng):(caretContainerNode=CaretContainer.insertInline(node,before),rng=node.ownerDocument.createRange(),isContentEditableFalse(caretContainerNode.nextSibling)?(rng.setStart(caretContainerNode,0),rng.setEnd(caretContainerNode,0)):(rng.setStart(caretContainerNode,1),rng.setEnd(caretContainerNode,1)),rng)}function hide(){trimInlineCaretContainers(),caretContainerNode&&(CaretContainer.remove(caretContainerNode),caretContainerNode=null),$lastVisualCaret&&($lastVisualCaret.remove(),$lastVisualCaret=null),clearInterval(cursorInterval)}function startBlink(){cursorInterval=Delay.setInterval(function(){$("div.mce-visual-caret",rootNode).toggleClass("mce-visual-caret-hidden")},500)}function destroy(){Delay.clearInterval(cursorInterval)}function getCss(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"}var cursorInterval,$lastVisualCaret,caretContainerNode;return{show:show,hide:hide,getCss:getCss,destroy:destroy}}}),define("tinymce/dom/Dimensions",["tinymce/util/Arr","tinymce/dom/NodeType","tinymce/geom/ClientRect"],function(Arr,NodeType,ClientRect){function getClientRects(node){function toArrayWithNode(clientRects){return Arr.map(clientRects,function(clientRect){return clientRect=ClientRect.clone(clientRect),clientRect.node=node,clientRect})}if(Arr.isArray(node))return Arr.reduce(node,function(result,node){return result.concat(getClientRects(node))},[]);if(NodeType.isElement(node))return toArrayWithNode(node.getClientRects());if(NodeType.isText(node)){var rng=node.ownerDocument.createRange();return rng.setStart(node,0),rng.setEnd(node,node.data.length),toArrayWithNode(rng.getClientRects())}}return{getClientRects:getClientRects}}),define("tinymce/caret/LineWalker",["tinymce/util/Fun","tinymce/util/Arr","tinymce/dom/Dimensions","tinymce/caret/CaretCandidate","tinymce/caret/CaretUtils","tinymce/caret/CaretWalker","tinymce/caret/CaretPosition","tinymce/geom/ClientRect"],function(Fun,Arr,Dimensions,CaretCandidate,CaretUtils,CaretWalker,CaretPosition,ClientRect){function findUntil(direction,rootNode,predicateFn,node){for(;node=CaretUtils.findNode(node,direction,CaretCandidate.isEditableCaretCandidate,rootNode);)if(predicateFn(node))return}function walkUntil(direction,isAboveFn,isBeflowFn,rootNode,predicateFn,caretPosition){function add(node){var i,clientRect,clientRects;for(clientRects=Dimensions.getClientRects(node),-1==direction&&(clientRects=clientRects.reverse()),i=0;i0&&isAboveFn(clientRect,Arr.last(result))&&line++,clientRect.line=line,predicateFn(clientRect))return!0;result.push(clientRect)}}var node,targetClientRect,line=0,result=[];return(targetClientRect=Arr.last(caretPosition.getClientRects()))?(node=caretPosition.getNode(),add(node),findUntil(direction,rootNode,add,node),result):result}function aboveLineNumber(lineNumber,clientRect){return clientRect.line>lineNumber}function isLine(lineNumber,clientRect){return clientRect.line===lineNumber}function positionsUntil(direction,rootNode,predicateFn,node){function getClientRect(caretPosition){return 1==direction?Arr.last(caretPosition.getClientRects()):Arr.last(caretPosition.getClientRects())}var walkFn,isBelowFn,isAboveFn,caretPosition,clientRect,targetClientRect,caretWalker=new CaretWalker(rootNode),result=[],line=0;1==direction?(walkFn=caretWalker.next,isBelowFn=ClientRect.isBelow,isAboveFn=ClientRect.isAbove,caretPosition=CaretPosition.after(node)):(walkFn=caretWalker.prev,isBelowFn=ClientRect.isAbove,isAboveFn=ClientRect.isBelow,caretPosition=CaretPosition.before(node)),targetClientRect=getClientRect(caretPosition);do if(caretPosition.isVisible()&&(clientRect=getClientRect(caretPosition),!isAboveFn(clientRect,targetClientRect))){if(result.length>0&&isBelowFn(clientRect,Arr.last(result))&&line++,clientRect=ClientRect.clone(clientRect),clientRect.position=caretPosition,clientRect.line=line,predicateFn(clientRect))return result;result.push(clientRect)}while(caretPosition=walkFn(caretPosition));return result}var curry=Fun.curry,upUntil=curry(walkUntil,-1,ClientRect.isAbove,ClientRect.isBelow),downUntil=curry(walkUntil,1,ClientRect.isBelow,ClientRect.isAbove);return{upUntil:upUntil,downUntil:downUntil,positionsUntil:positionsUntil,isAboveLine:curry(aboveLineNumber),isLine:curry(isLine)}}),define("tinymce/caret/LineUtils",["tinymce/util/Fun","tinymce/util/Arr","tinymce/dom/NodeType","tinymce/dom/Dimensions","tinymce/geom/ClientRect","tinymce/caret/CaretUtils","tinymce/caret/CaretCandidate"],function(Fun,Arr,NodeType,Dimensions,ClientRect,CaretUtils,CaretCandidate){function distanceToRectLeft(clientRect,clientX){return Math.abs(clientRect.left-clientX)}function distanceToRectRight(clientRect,clientX){return Math.abs(clientRect.right-clientX)}function findClosestClientRect(clientRects,clientX){function isInside(clientX,clientRect){return clientX>=clientRect.left&&clientX<=clientRect.right}return Arr.reduce(clientRects,function(oldClientRect,clientRect){var oldDistance,newDistance;return oldDistance=Math.min(distanceToRectLeft(oldClientRect,clientX),distanceToRectRight(oldClientRect,clientX)),newDistance=Math.min(distanceToRectLeft(clientRect,clientX),distanceToRectRight(clientRect,clientX)),isInside(clientX,clientRect)?clientRect:isInside(clientX,oldClientRect)?oldClientRect:newDistance==oldDistance&&isContentEditableFalse(clientRect.node)?clientRect:oldDistance>newDistance?clientRect:oldClientRect})}function walkUntil(direction,rootNode,predicateFn,node){for(;node=findNode(node,direction,CaretCandidate.isEditableCaretCandidate,rootNode);)if(predicateFn(node))return}function findLineNodeRects(rootNode,targetNodeRect){function collect(checkPosFn,node){var lineRects;return lineRects=Arr.filter(Dimensions.getClientRects(node),function(clientRect){return!checkPosFn(clientRect,targetNodeRect)}),clientRects=clientRects.concat(lineRects),0===lineRects.length}var clientRects=[];return clientRects.push(targetNodeRect),walkUntil(-1,rootNode,curry(collect,ClientRect.isAbove),targetNodeRect.node),walkUntil(1,rootNode,curry(collect,ClientRect.isBelow),targetNodeRect.node),clientRects}function getContentEditableFalseChildren(rootNode){return Arr.filter(Arr.toArray(rootNode.getElementsByTagName("*")),isContentEditableFalse)}function caretInfo(clientRect,clientX){return{node:clientRect.node,before:distanceToRectLeft(clientRect,clientX)=clientRect.top&&clientY<=clientRect.bottom}),closestNodeRect=findClosestClientRect(contentEditableFalseNodeRects,clientX),closestNodeRect&&(closestNodeRect=findClosestClientRect(findLineNodeRects(rootNode,closestNodeRect),clientX),closestNodeRect&&isContentEditableFalse(closestNodeRect.node))?caretInfo(closestNodeRect,clientX):null}var isContentEditableFalse=NodeType.isContentEditableFalse,findNode=CaretUtils.findNode,curry=Fun.curry;return{findClosestClientRect:findClosestClientRect,findLineNodeRects:findLineNodeRects,closestCaret:closestCaret}}),define("tinymce/DragDropOverrides",["tinymce/dom/NodeType","tinymce/util/Arr","tinymce/util/Fun"],function(NodeType,Arr,Fun){function init(editor){function isDraggable(elm){return isContentEditableFalse(elm)}function setBodyCursor(cursor){$(editor.getBody()).css("cursor",cursor)}function isValidDropTarget(elm){return elm==state.element||editor.dom.isChildOf(elm,state.element)?!1:!isContentEditableFalse(elm)}function move(e){var deltaX,deltaY,pos,viewPort,movement,clientX,clientY,rootClientRect,overflowX=0,overflowY=0;0===e.button&&(deltaX=e.screenX-state.screenX,deltaY=e.screenY-state.screenY,movement=Math.max(Math.abs(deltaX),Math.abs(deltaY)),!state.dragging&&movement>10&&(state.dragging=!0,setBodyCursor("default"),state.clone=state.element.cloneNode(!0),pos=dom.getPos(state.element),state.relX=state.clientX-pos.x,state.relY=state.clientY-pos.y,state.width=state.element.offsetWidth,state.height=state.element.offsetHeight,$(state.clone).css({width:state.width,height:state.height}).removeAttr("data-mce-selected"),state.ghost=$("
    ").css({position:"absolute",opacity:.5,overflow:"hidden",width:state.width,height:state.height}).attr({"data-mce-bogus":"all",unselectable:"on",contenteditable:"false"}).addClass("mce-drag-container mce-reset").append(state.clone).appendTo(editor.getBody())[0],viewPort=editor.dom.getViewPort(editor.getWin()),state.maxX=viewPort.w,state.maxY=viewPort.h),state.dragging&&(editor.selection.placeCaretAt(e.clientX,e.clientY),clientX=state.clientX+deltaX-state.relX,clientY=state.clientY+deltaY+5,clientX+state.width>state.maxX&&(overflowX=clientX+state.width-state.maxX),clientY+state.height>state.maxY&&(overflowY=clientY+state.height-state.maxY),rootClientRect="BODY"!=editor.getBody().nodeName?editor.getBody().getBoundingClientRect():{left:0,top:0},$(state.ghost).css({left:clientX-rootClientRect.left,top:clientY-rootClientRect.top,width:state.width-overflowX,height:state.height-overflowY})))}function drop(){state.dragging&&(editor.selection.setRng(editor.selection.getSel().getRangeAt(0)),isValidDropTarget(editor.selection.getNode())&&editor.undoManager.transact(function(){editor.insertContent(dom.getOuterHTML(state.element)),$(state.element).remove()})),stop()}function start(e){var ceElm;if(stop(),0===e.button&&(ceElm=Arr.find(editor.dom.getParents(e.target),Fun.or(isContentEditableFalse,isContentEditableTrue)),isDraggable(ceElm))){if(editor.fire("dragstart",{target:ceElm}).isDefaultPrevented())return;editor.on("mousemove",move),editor.on("mouseup",drop),rootDocument!=editableDoc&&(dom.bind(rootDocument,"mousemove",move),dom.bind(rootDocument,"mouseup",drop)),state={screenX:e.screenX,screenY:e.screenY,clientX:e.clientX,clientY:e.clientY,element:ceElm}}}function stop(){$(state.ghost).remove(),setBodyCursor(null),editor.off("mousemove",move),editor.off("mouseup",stop),rootDocument!=editableDoc&&(dom.unbind(rootDocument,"mousemove",move),dom.unbind(rootDocument,"mouseup",stop)),state={}}var $=editor.$,rootDocument=document,editableDoc=editor.getDoc(),dom=editor.dom,state={};editor.on("mousedown",start),editor.on("drop",function(e){var realTarget=editor.getDoc().elementFromPoint(e.clientX,e.clientY);(isContentEditableFalse(realTarget)||isContentEditableFalse(editor.dom.getContentEditableParent(realTarget)))&&e.preventDefault()})}var isContentEditableFalse=NodeType.isContentEditableFalse,isContentEditableTrue=NodeType.isContentEditableTrue;return{init:init}}),define("tinymce/SelectionOverrides",["tinymce/Env","tinymce/caret/CaretWalker","tinymce/caret/CaretPosition","tinymce/caret/CaretContainer","tinymce/caret/CaretUtils","tinymce/caret/FakeCaret","tinymce/caret/LineWalker","tinymce/caret/LineUtils","tinymce/dom/NodeType","tinymce/dom/RangeUtils","tinymce/geom/ClientRect","tinymce/util/VK","tinymce/util/Fun","tinymce/util/Arr","tinymce/util/Delay","tinymce/DragDropOverrides"],function(Env,CaretWalker,CaretPosition,CaretContainer,CaretUtils,FakeCaret,LineWalker,LineUtils,NodeType,RangeUtils,ClientRect,VK,Fun,Arr,Delay,DragDropOverrides){function getVisualCaretPosition(walkFn,caretPosition){for(;caretPosition=walkFn(caretPosition);)if(caretPosition.isVisible())return caretPosition;return caretPosition}function SelectionOverrides(editor){function isBlock(node){return editor.dom.isBlock(node)}function setRange(range){range&&editor.selection.setRng(range)}function getRange(){return editor.selection.getRng()}function scrollIntoView(node,alignToTop){editor.selection.scrollIntoView(node,alignToTop)}function showCaret(direction,node,before){var e;return e=editor.fire("ShowCaret",{target:node,direction:direction,before:before}),e.isDefaultPrevented()?null:(scrollIntoView(node,-1===direction),fakeCaret.show(before,node))}function selectNode(node){var e;return e=editor.fire("ObjectSelected",{target:node}),e.isDefaultPrevented()?null:(fakeCaret.hide(),getNodeRange(node))}function getNodeRange(node){var rng=node.ownerDocument.createRange();return rng.selectNode(node),rng}function isMoveInsideSameBlock(fromCaretPosition,toCaretPosition){var inSameBlock=CaretUtils.isInSameBlock(fromCaretPosition,toCaretPosition);return!inSameBlock&&NodeType.isBr(fromCaretPosition.getNode())?!0:inSameBlock}function getNormalizedRangeEndPoint(direction,range){return range=CaretUtils.normalizeRange(direction,rootNode,range),-1==direction?CaretPosition.fromRangeStart(range):CaretPosition.fromRangeEnd(range)}function isRangeInCaretContainerBlock(range){return CaretContainer.isCaretContainerBlock(range.startContainer)}function moveToCeFalseHorizontally(direction,getNextPosFn,isBeforeContentEditableFalseFn,range){var node,caretPosition,peekCaretPosition,rangeIsInContainerBlock;return!range.collapsed&&(node=getSelectedNode(range),isContentEditableFalse(node))?showCaret(direction,node,-1==direction):(rangeIsInContainerBlock=isRangeInCaretContainerBlock(range),caretPosition=getNormalizedRangeEndPoint(direction,range),isBeforeContentEditableFalseFn(caretPosition)?selectNode(caretPosition.getNode(-1==direction)):(caretPosition=getNextPosFn(caretPosition))?isBeforeContentEditableFalseFn(caretPosition)?showCaret(direction,caretPosition.getNode(-1==direction),1==direction):(peekCaretPosition=getNextPosFn(caretPosition),isBeforeContentEditableFalseFn(peekCaretPosition)&&isMoveInsideSameBlock(caretPosition,peekCaretPosition)?showCaret(direction,peekCaretPosition.getNode(-1==direction),1==direction):rangeIsInContainerBlock?renderRangeCaret(caretPosition.toRange()):null):rangeIsInContainerBlock?range:null)}function moveToCeFalseVertically(direction,walkerFn,range){var caretPosition,linePositions,nextLinePositions,closestNextLineRect,caretClientRect,clientX,dist1,dist2,contentEditableFalseNode;if(contentEditableFalseNode=getSelectedNode(range),caretPosition=getNormalizedRangeEndPoint(direction,range),linePositions=walkerFn(rootNode,LineWalker.isAboveLine(1),caretPosition),nextLinePositions=Arr.filter(linePositions,LineWalker.isLine(1)),caretClientRect=Arr.last(caretPosition.getClientRects()),isBeforeContentEditableFalse(caretPosition)&&(contentEditableFalseNode=caretPosition.getNode()),isAfterContentEditableFalse(caretPosition)&&(contentEditableFalseNode=caretPosition.getNode(!0)),!caretClientRect)return null;if(clientX=caretClientRect.left,closestNextLineRect=LineUtils.findClosestClientRect(nextLinePositions,clientX),closestNextLineRect&&isContentEditableFalse(closestNextLineRect.node))return dist1=Math.abs(clientX-closestNextLineRect.left),dist2=Math.abs(clientX-closestNextLineRect.right),showCaret(direction,closestNextLineRect.node,dist2>dist1);if(contentEditableFalseNode){var caretPositions=LineWalker.positionsUntil(direction,rootNode,LineWalker.isAboveLine(1),contentEditableFalseNode);if(closestNextLineRect=LineUtils.findClosestClientRect(Arr.filter(caretPositions,LineWalker.isLine(1)),clientX))return renderRangeCaret(closestNextLineRect.position.toRange());if(closestNextLineRect=Arr.last(Arr.filter(caretPositions,LineWalker.isLine(0))))return renderRangeCaret(closestNextLineRect.position.toRange())}}function exitPreBlock(direction,range){function createTextBlock(){var textBlock=editor.dom.create(editor.settings.forced_root_block);return(!Env.ie||Env.ie>=11)&&(textBlock.innerHTML='
    '),textBlock}var pre,caretPos,newBlock;if(range.collapsed&&editor.settings.forced_root_block){if(pre=editor.dom.getParent(range.startContainer,"PRE"),!pre)return;caretPos=1==direction?getNextVisualCaretPosition(CaretPosition.fromRangeStart(range)):getPrevVisualCaretPosition(CaretPosition.fromRangeStart(range)),caretPos||(newBlock=createTextBlock(),1==direction?editor.$(pre).after(newBlock):editor.$(pre).before(newBlock),editor.selection.select(newBlock,!0),editor.selection.collapse())}}function moveH(direction,getNextPosFn,isBeforeContentEditableFalseFn,range){var newRange;return(newRange=moveToCeFalseHorizontally(direction,getNextPosFn,isBeforeContentEditableFalseFn,range))?newRange:(newRange=exitPreBlock(direction,range),newRange?newRange:null)}function moveV(direction,walkerFn,range){var newRange;return(newRange=moveToCeFalseVertically(direction,walkerFn,range))?newRange:(newRange=exitPreBlock(direction,range),newRange?newRange:null)}function getBlockCaretContainer(){return $("*[data-mce-caret]")[0]}function showBlockCaretContainer(blockCaretContainer){blockCaretContainer=$(blockCaretContainer),blockCaretContainer.attr("data-mce-caret")&&(fakeCaret.hide(),blockCaretContainer.removeAttr("data-mce-caret"),blockCaretContainer.removeAttr("data-mce-bogus"),blockCaretContainer.removeAttr("style"),setRange(getRange()),scrollIntoView(blockCaretContainer[0]))}function renderCaretAtRange(range){var caretPosition;return range=CaretUtils.normalizeRange(1,rootNode,range),caretPosition=CaretPosition.fromRangeStart(range),isContentEditableFalse(caretPosition.getNode())?showCaret(1,caretPosition.getNode(),!caretPosition.isAtEnd()):isContentEditableFalse(caretPosition.getNode(!0))?showCaret(1,caretPosition.getNode(!0),!1):(fakeCaret.hide(),null)}function renderRangeCaret(range){var caretRange;return range&&range.collapsed?(caretRange=renderCaretAtRange(range),caretRange?caretRange:range):range}function deleteContentEditableNode(node){var nextCaretPosition,prevCaretPosition,prevCeFalseElm,nextElement;return isContentEditableFalse(node)?(isContentEditableFalse(node.previousSibling)&&(prevCeFalseElm=node.previousSibling),prevCaretPosition=getPrevVisualCaretPosition(CaretPosition.before(node)),prevCaretPosition||(nextCaretPosition=getNextVisualCaretPosition(CaretPosition.after(node))),nextCaretPosition&&isElement(nextCaretPosition.getNode())&&(nextElement=nextCaretPosition.getNode()),CaretContainer.remove(node.previousSibling),CaretContainer.remove(node.nextSibling),editor.dom.remove(node),clearContentEditableSelection(),editor.dom.isEmpty(editor.getBody())?(editor.setContent(""),void editor.focus()):prevCeFalseElm?CaretPosition.after(prevCeFalseElm).toRange():nextElement?CaretPosition.before(nextElement).toRange():prevCaretPosition?prevCaretPosition.toRange():nextCaretPosition?nextCaretPosition.toRange():null):null}function backspaceDelete(direction,beforeFn,range){var node,caretPosition;return!range.collapsed&&(node=getSelectedNode(range),isContentEditableFalse(node))?renderRangeCaret(deleteContentEditableNode(node)):(caretPosition=getNormalizedRangeEndPoint(direction,range),beforeFn(caretPosition)?renderRangeCaret(deleteContentEditableNode(caretPosition.getNode(-1==direction))):void 0)}function registerEvents(){function override(evt,moveFn){var range=moveFn(getRange());range&&!evt.isDefaultPrevented()&&(evt.preventDefault(),setRange(range))}function getContentEditableRoot(node){for(var root=editor.getBody();node&&node!=root;){if(isContentEditableTrue(node)||isContentEditableFalse(node))return node;node=node.parentNode}return null}function isXYWithinRange(clientX,clientY,range){return range.collapsed?!1:Arr.reduce(range.getClientRects(),function(state,rect){return state||ClientRect.containsXY(rect,clientX,clientY)},!1)}function paddEmptyContentEditableArea(){var br,ceRoot=getContentEditableRoot(editor.selection.getNode());isContentEditableTrue(ceRoot)&&isBlock(ceRoot)&&editor.dom.isEmpty(ceRoot)&&(br=editor.dom.create("br",{"data-mce-bogus":"1"}),editor.$(ceRoot).empty().append(br), +editor.selection.setRng(CaretPosition.before(br).toRange()))}function handleBlockContainer(e){var blockCaretContainer=getBlockCaretContainer();if(blockCaretContainer)return"compositionstart"==e.type?(e.preventDefault(),e.stopPropagation(),void showBlockCaretContainer(blockCaretContainer)):void(" "!=blockCaretContainer.innerHTML&&showBlockCaretContainer(blockCaretContainer))}function handleEmptyBackspaceDelete(e){var prevent;switch(e.keyCode){case VK.DELETE:prevent=paddEmptyContentEditableArea();break;case VK.BACKSPACE:prevent=paddEmptyContentEditableArea()}prevent&&e.preventDefault()}var right=curry(moveH,1,getNextVisualCaretPosition,isBeforeContentEditableFalse),left=curry(moveH,-1,getPrevVisualCaretPosition,isAfterContentEditableFalse),deleteForward=curry(backspaceDelete,1,isBeforeContentEditableFalse),backspace=curry(backspaceDelete,-1,isAfterContentEditableFalse),up=curry(moveV,-1,LineWalker.upUntil),down=curry(moveV,1,LineWalker.downUntil);editor.on("mouseup",function(){var range=getRange();range.collapsed&&setRange(renderCaretAtRange(range))}),editor.on("mousedown",function(e){var contentEditableRoot;if(contentEditableRoot=getContentEditableRoot(e.target))isContentEditableFalse(contentEditableRoot)?(e.preventDefault(),setContentEditableSelection(selectNode(contentEditableRoot),!1)):isXYWithinRange(e.clientX,e.clientY,editor.selection.getRng())||editor.selection.placeCaretAt(e.clientX,e.clientY);else{clearContentEditableSelection(),fakeCaret.hide();var caretInfo=LineUtils.closestCaret(rootNode,e.clientX,e.clientY);caretInfo&&(e.preventDefault(),editor.getBody().focus(),setRange(showCaret(1,caretInfo.node,caretInfo.before)))}}),editor.on("keydown",function(e){if(!VK.modifierPressed(e))switch(e.keyCode){case VK.RIGHT:override(e,right);break;case VK.DOWN:override(e,down);break;case VK.LEFT:override(e,left);break;case VK.UP:override(e,up);break;case VK.DELETE:override(e,deleteForward);break;case VK.BACKSPACE:override(e,backspace);break;default:isContentEditableFalse(editor.selection.getNode())&&e.preventDefault()}}),editor.on("keyup compositionstart",function(e){handleBlockContainer(e),handleEmptyBackspaceDelete(e)},!0),editor.on("cut",function(){var node=editor.selection.getNode();isContentEditableFalse(node)&&Delay.setEditorTimeout(editor,function(){setRange(renderRangeCaret(deleteContentEditableNode(node)))})}),editor.on("getSelectionRange",function(e){var rng=e.range;if(selectedContentEditableNode){if(!selectedContentEditableNode.parentNode)return void(selectedContentEditableNode=null);rng=rng.cloneRange(),rng.selectNode(selectedContentEditableNode),e.range=rng}}),editor.on("setSelectionRange",function(e){var rng;rng=setContentEditableSelection(e.range),rng&&(e.range=rng)}),editor.on("focus",function(){Delay.setEditorTimeout(editor,function(){editor.selection.setRng(renderRangeCaret(editor.selection.getRng()))})}),DragDropOverrides.init(editor)}function addCss(){var styles=editor.contentStyles,rootClass=".mce-content-body";styles.push(fakeCaret.getCss()),styles.push(rootClass+" .mce-offscreen-selection {position: absolute;left: -9999999999px;width: 100pxheight: 100px}"+rootClass+" *[contentEditable=false] {cursor: default;}"+rootClass+" *[contentEditable=true] {cursor: text;}")}function isRangeInCaretContainer(rng){return CaretContainer.isCaretContainer(rng.startContainer)||CaretContainer.isCaretContainer(rng.endContainer)}function setContentEditableSelection(range,fireEvent){var node,$realSelectionContainer,sel,startContainer,startOffset,endOffset,e,caretPosition,$=editor.$,dom=editor.dom;if(!range)return clearContentEditableSelection(),null;if(range.collapsed){if(clearContentEditableSelection(),!isRangeInCaretContainer(range)){if(caretPosition=getNormalizedRangeEndPoint(1,range),isContentEditableFalse(caretPosition.getNode()))return showCaret(1,caretPosition.getNode(),!caretPosition.isAtEnd());if(isContentEditableFalse(caretPosition.getNode(!0)))return showCaret(1,caretPosition.getNode(!0),!1)}return null}return startContainer=range.startContainer,startOffset=range.startOffset,endOffset=range.endOffset,3==startContainer.nodeType&&0==startOffset&&isContentEditableFalse(startContainer.parentNode)&&(startContainer=startContainer.parentNode,startOffset=dom.nodeIndex(startContainer),startContainer=startContainer.parentNode),1!=startContainer.nodeType?(clearContentEditableSelection(),null):(endOffset==startOffset+1&&(node=startContainer.childNodes[startOffset]),isContentEditableFalse(node)?fireEvent!==!1&&(e=editor.fire("ObjectSelected",{target:node}),e.isDefaultPrevented())?(clearContentEditableSelection(),null):($realSelectionContainer=$("#"+realSelectionId),0===$realSelectionContainer.length&&($realSelectionContainer=$('
    ').attr("id",realSelectionId),$realSelectionContainer.appendTo(editor.getBody())),$realSelectionContainer.empty().append(" ").append(node.cloneNode(!0)).append(" ").css({top:dom.getPos(node,editor.getBody()).y}),range=editor.dom.createRng(),range.setStart($realSelectionContainer[0].firstChild,1),range.setEnd($realSelectionContainer[0].lastChild,0),editor.getBody().focus(),$realSelectionContainer[0].focus(),sel=editor.selection.getSel(),sel.removeAllRanges(),sel.addRange(range),editor.$("*[data-mce-selected]").removeAttr("data-mce-selected"),node.setAttribute("data-mce-selected",1),selectedContentEditableNode=node,range):(clearContentEditableSelection(),null))}function clearContentEditableSelection(){selectedContentEditableNode&&(selectedContentEditableNode.removeAttribute("data-mce-selected"),editor.$("#"+realSelectionId).remove(),selectedContentEditableNode=null)}function destroy(){fakeCaret.destroy(),selectedContentEditableNode=null}var selectedContentEditableNode,rootNode=editor.getBody(),caretWalker=new CaretWalker(rootNode),getNextVisualCaretPosition=curry(getVisualCaretPosition,caretWalker.next),getPrevVisualCaretPosition=curry(getVisualCaretPosition,caretWalker.prev),fakeCaret=new FakeCaret(editor.getBody(),isBlock),realSelectionId="sel-"+editor.dom.uniqueId(),$=editor.$;return Env.ceFalse&&(registerEvents(),addCss()),{showBlockCaretContainer:showBlockCaretContainer,destroy:destroy}}var curry=Fun.curry,isContentEditableTrue=NodeType.isContentEditableTrue,isContentEditableFalse=NodeType.isContentEditableFalse,isElement=NodeType.isElement,isAfterContentEditableFalse=CaretUtils.isAfterContentEditableFalse,isBeforeContentEditableFalse=CaretUtils.isBeforeContentEditableFalse,getSelectedNode=RangeUtils.getSelectedNode;return SelectionOverrides}),define("tinymce/Editor",["tinymce/dom/DOMUtils","tinymce/dom/DomQuery","tinymce/AddOnManager","tinymce/NodeChange","tinymce/html/Node","tinymce/dom/Serializer","tinymce/html/Serializer","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EnterKey","tinymce/ForceBlocks","tinymce/EditorCommands","tinymce/util/URI","tinymce/dom/ScriptLoader","tinymce/dom/EventUtils","tinymce/WindowManager","tinymce/NotificationManager","tinymce/html/Schema","tinymce/html/DomParser","tinymce/util/Quirks","tinymce/Env","tinymce/util/Tools","tinymce/util/Delay","tinymce/EditorObservable","tinymce/Mode","tinymce/Shortcuts","tinymce/EditorUpload","tinymce/SelectionOverrides"],function(DOMUtils,DomQuery,AddOnManager,NodeChange,Node,DomSerializer,Serializer,Selection,Formatter,UndoManager,EnterKey,ForceBlocks,EditorCommands,URI,ScriptLoader,EventUtils,WindowManager,NotificationManager,Schema,DomParser,Quirks,Env,Tools,Delay,EditorObservable,Mode,Shortcuts,EditorUpload,SelectionOverrides){function Editor(id,settings,editorManager){var documentBaseUrl,baseUri,self=this;documentBaseUrl=self.documentBaseUrl=editorManager.documentBaseURL,baseUri=editorManager.baseURI,self.settings=settings=extend({id:id,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:documentBaseUrl,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:self.convertURL,url_converter_scope:self,ie7_compat:!0},editorManager.defaultSettings,settings),AddOnManager.language=settings.language||"en",AddOnManager.languageLoad=settings.language_load,AddOnManager.baseURL=editorManager.baseURL,self.id=settings.id=id,self.setDirty(!1),self.plugins={},self.documentBaseURI=new URI(settings.document_base_url||documentBaseUrl,{base_uri:baseUri}),self.baseURI=baseUri,self.contentCSS=[],self.contentStyles=[],self.shortcuts=new Shortcuts(self),self.loadedCSS={},self.editorCommands=new EditorCommands(self),settings.target&&(self.targetElm=settings.target),self.suffix=editorManager.suffix,self.editorManager=editorManager,self.inline=settings.inline,settings.cache_suffix&&(Env.cacheSuffix=settings.cache_suffix.replace(/^[\?\&]+/,"")),settings.override_viewport===!1&&(Env.overrideViewPort=!1),editorManager.fire("SetupEditor",self),self.execCallback("setup",self),self.$=DomQuery.overrideDefaults(function(){return{context:self.inline?self.getBody():self.getDoc(),element:self.getBody()}})}var DOM=DOMUtils.DOM,ThemeManager=AddOnManager.ThemeManager,PluginManager=AddOnManager.PluginManager,extend=Tools.extend,each=Tools.each,explode=Tools.explode,inArray=Tools.inArray,trim=Tools.trim,resolve=Tools.resolve,Event=EventUtils.Event,isGecko=Env.gecko,ie=Env.ie;return Editor.prototype={render:function(){function readyHandler(){DOM.unbind(window,"ready",readyHandler),self.render()}function loadScripts(){var scriptLoader=ScriptLoader.ScriptLoader;if(settings.language&&"en"!=settings.language&&!settings.language_url&&(settings.language_url=self.editorManager.baseURL+"/langs/"+settings.language+".js"),settings.language_url&&scriptLoader.add(settings.language_url),settings.theme&&"function"!=typeof settings.theme&&"-"!=settings.theme.charAt(0)&&!ThemeManager.urls[settings.theme]){var themeUrl=settings.theme_url;themeUrl=themeUrl?self.documentBaseURI.toAbsolute(themeUrl):"themes/"+settings.theme+"/theme"+suffix+".js",ThemeManager.load(settings.theme,themeUrl)}Tools.isArray(settings.plugins)&&(settings.plugins=settings.plugins.join(" ")),each(settings.external_plugins,function(url,name){PluginManager.load(name,url),settings.plugins+=" "+name}),each(settings.plugins.split(/[ ,]/),function(plugin){if(plugin=trim(plugin),plugin&&!PluginManager.urls[plugin])if("-"==plugin.charAt(0)){plugin=plugin.substr(1,plugin.length);var dependencies=PluginManager.dependencies(plugin);each(dependencies,function(dep){var defaultSettings={prefix:"plugins/",resource:dep,suffix:"/plugin"+suffix+".js"};dep=PluginManager.createUrl(defaultSettings,dep),PluginManager.load(dep.resource,dep)})}else PluginManager.load(plugin,{prefix:"plugins/",resource:plugin,suffix:"/plugin"+suffix+".js"})}),scriptLoader.loadQueue(function(){self.removed||self.init()})}var self=this,settings=self.settings,id=self.id,suffix=self.suffix;if(!Event.domLoaded)return void DOM.bind(window,"ready",readyHandler);if(self.getElement()&&Env.contentEditable){settings.inline?self.inline=!0:(self.orgVisibility=self.getElement().style.visibility,self.getElement().style.visibility="hidden");var form=self.getElement().form||DOM.getParent(id,"form");form&&(self.formElement=form,settings.hidden_input&&!/TEXTAREA|INPUT/i.test(self.getElement().nodeName)&&(DOM.insertAfter(DOM.create("input",{type:"hidden",name:id}),id),self.hasHiddenInput=!0),self.formEventDelegate=function(e){self.fire(e.type,e)},DOM.bind(form,"submit reset",self.formEventDelegate),self.on("reset",function(){self.setContent(self.startContent,{format:"raw"})}),!settings.submit_patch||form.submit.nodeType||form.submit.length||form._mceOldSubmit||(form._mceOldSubmit=form.submit,form.submit=function(){return self.editorManager.triggerSave(),self.setDirty(!1),form._mceOldSubmit(form)})),self.windowManager=new WindowManager(self),self.notificationManager=new NotificationManager(self),"xml"==settings.encoding&&self.on("GetContent",function(e){e.save&&(e.content=DOM.encode(e.content))}),settings.add_form_submit_trigger&&self.on("submit",function(){self.initialized&&self.save()}),settings.add_unload_trigger&&(self._beforeUnload=function(){!self.initialized||self.destroyed||self.isHidden()||self.save({format:"raw",no_events:!0,set_dirty:!1})},self.editorManager.on("BeforeUnload",self._beforeUnload)),loadScripts()}},init:function(){function initPlugin(plugin){var pluginUrl,pluginInstance,Plugin=PluginManager.get(plugin);if(pluginUrl=PluginManager.urls[plugin]||self.documentBaseUrl.replace(/\/$/,""),plugin=trim(plugin),Plugin&&-1===inArray(initializedPlugins,plugin)){if(each(PluginManager.dependencies(plugin),function(dep){initPlugin(dep)}),self.plugins[plugin])return;pluginInstance=new Plugin(self,pluginUrl,self.$),self.plugins[plugin]=pluginInstance,pluginInstance.init&&(pluginInstance.init(self,pluginUrl),initializedPlugins.push(plugin))}}var w,h,minHeight,n,o,Theme,url,bodyId,bodyClass,re,i,self=this,settings=self.settings,elm=self.getElement(),initializedPlugins=[];if(this.editorManager.i18n.setCode(settings.language),self.rtl=settings.rtl_ui||this.editorManager.i18n.rtl,self.editorManager.add(self),settings.aria_label=settings.aria_label||DOM.getAttrib(elm,"aria-label",self.getLang("aria.rich_text_area")),settings.theme&&("function"!=typeof settings.theme?(settings.theme=settings.theme.replace(/-/,""),Theme=ThemeManager.get(settings.theme),self.theme=new Theme(self,ThemeManager.urls[settings.theme]),self.theme.init&&self.theme.init(self,ThemeManager.urls[settings.theme]||self.documentBaseUrl.replace(/\/$/,""),self.$)):self.theme=settings.theme),each(settings.plugins.replace(/\-/g,"").split(/[ ,]/),initPlugin),settings.render_ui&&self.theme&&(self.orgDisplay=elm.style.display,"function"!=typeof settings.theme?(w=settings.width||elm.style.width||elm.offsetWidth,h=settings.height||elm.style.height||elm.offsetHeight,minHeight=settings.min_height||100,re=/^[0-9\.]+(|px)$/i,re.test(""+w)&&(w=Math.max(parseInt(w,10),100)),re.test(""+h)&&(h=Math.max(parseInt(h,10),minHeight)),o=self.theme.renderUI({targetNode:elm,width:w,height:h,deltaWidth:settings.delta_width,deltaHeight:settings.delta_height}),settings.content_editable||(h=(o.iframeHeight||h)+("number"==typeof h?o.deltaHeight||0:""),minHeight>h&&(h=minHeight))):(o=settings.theme(self,elm),o.editorContainer.nodeType&&(o.editorContainer=o.editorContainer.id=o.editorContainer.id||self.id+"_parent"),o.iframeContainer.nodeType&&(o.iframeContainer=o.iframeContainer.id=o.iframeContainer.id||self.id+"_iframecontainer"),h=o.iframeHeight||elm.offsetHeight),self.editorContainer=o.editorContainer),settings.content_css&&each(explode(settings.content_css),function(u){self.contentCSS.push(self.documentBaseURI.toAbsolute(u))}),settings.content_style&&self.contentStyles.push(settings.content_style),settings.content_editable)return elm=n=o=null,self.initContentBody();if(self.iframeHTML=settings.doctype+"",settings.document_base_url!=self.documentBaseUrl&&(self.iframeHTML+=''),!Env.caretAfter&&settings.ie7_compat&&(self.iframeHTML+=''),self.iframeHTML+='',!/#$/.test(document.location.href))for(i=0;i',self.loadedCSS[cssUrl]=!0}bodyId=settings.body_id||"tinymce",-1!=bodyId.indexOf("=")&&(bodyId=self.getParam("body_id","","hash"),bodyId=bodyId[self.id]||bodyId),bodyClass=settings.body_class||"",-1!=bodyClass.indexOf("=")&&(bodyClass=self.getParam("body_class","","hash"),bodyClass=bodyClass[self.id]||""),settings.content_security_policy&&(self.iframeHTML+=''),self.iframeHTML+='
    ';var domainRelaxUrl='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+self.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&Env.ie&&Env.ie<12&&(url=domainRelaxUrl);var ifr=DOM.create("iframe",{id:self.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:self.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:h,display:"block"}});if(ifr.onload=function(){ifr.onload=null,self.fire("load")},DOM.setAttrib(ifr,"src",url||'javascript:""'),self.contentAreaContainer=o.iframeContainer,self.iframeElement=ifr,n=DOM.add(o.iframeContainer,ifr),ie)try{self.getDoc()}catch(e){n.src=url=domainRelaxUrl}o.editorContainer&&(DOM.get(o.editorContainer).style.display=self.orgDisplay,self.hidden=DOM.isHidden(o.editorContainer)),self.getElement().style.display="none",DOM.setAttrib(self.id,"aria-hidden",!0),url||self.initContentBody(),elm=n=o=null},initContentBody:function(skipWrite){var body,contentCssText,self=this,settings=self.settings,targetElm=self.getElement(),doc=self.getDoc();settings.inline||(self.getElement().style.visibility=self.orgVisibility),skipWrite||settings.content_editable||(doc.open(),doc.write(self.iframeHTML),doc.close()),settings.content_editable&&(self.on("remove",function(){var bodyEl=this.getBody();DOM.removeClass(bodyEl,"mce-content-body"),DOM.removeClass(bodyEl,"mce-edit-focus"),DOM.setAttrib(bodyEl,"contentEditable",null)}),DOM.addClass(targetElm,"mce-content-body"),self.contentDocument=doc=settings.content_document||document,self.contentWindow=settings.content_window||window,self.bodyElement=targetElm,settings.content_document=settings.content_window=null,settings.root_name=targetElm.nodeName.toLowerCase()),body=self.getBody(),body.disabled=!0,self.readonly=settings.readonly,self.readonly||(self.inline&&"static"==DOM.getStyle(body,"position",!0)&&(body.style.position="relative"),body.contentEditable=self.getParam("content_editable_state",!0)),body.disabled=!1,self.editorUpload=new EditorUpload(self),self.schema=new Schema(settings),self.dom=new DOMUtils(doc,{keep_values:!0,url_converter:self.convertURL,url_converter_scope:self,hex_colors:settings.force_hex_style_colors,class_filter:settings.class_filter,update_styles:!0,root_element:self.inline?self.getBody():null,collect:settings.content_editable,schema:self.schema,onSetAttrib:function(e){self.fire("SetAttrib",e)}}),self.parser=new DomParser(settings,self.schema),self.parser.addAttributeFilter("src,href,style,tabindex",function(nodes,name){for(var node,value,internalName,i=nodes.length,dom=self.dom;i--;)if(node=nodes[i],value=node.attr(name),internalName="data-mce-"+name,!node.attributes.map[internalName]){if(0===value.indexOf("data:")||0===value.indexOf("blob:"))continue;"style"===name?(value=dom.serializeStyle(dom.parseStyle(value),node.name),value.length||(value=null),node.attr(internalName,value),node.attr(name,value)):"tabindex"===name?(node.attr(internalName,value),node.attr(name,null)):node.attr(internalName,self.convertURL(value,name,node.name))}}),self.parser.addNodeFilter("script",function(nodes){for(var node,type,i=nodes.length;i--;)node=nodes[i],type=node.attr("type")||"no/type",0!==type.indexOf("mce-")&&node.attr("type","mce-"+type)}),self.parser.addNodeFilter("#cdata",function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i],node.type=8,node.name="#comment",node.value="[CDATA["+node.value+"]]"}),self.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(nodes){for(var node,i=nodes.length,nonEmptyElements=self.schema.getNonEmptyElements();i--;)node=nodes[i],node.isEmpty(nonEmptyElements)&&(node.append(new Node("br",1)).shortEnded=!0)}),self.serializer=new DomSerializer(settings,self),self.selection=new Selection(self.dom,self.getWin(),self.serializer,self),self.formatter=new Formatter(self),self.undoManager=new UndoManager(self),self.forceBlocks=new ForceBlocks(self),self.enterKey=new EnterKey(self),self._nodeChangeDispatcher=new NodeChange(self),self._selectionOverrides=new SelectionOverrides(self),self.fire("PreInit"),settings.browser_spellcheck||settings.gecko_spellcheck||(doc.body.spellcheck=!1,DOM.setAttrib(body,"spellcheck","false")),self.fire("PostRender"),self.quirks=new Quirks(self),settings.directionality&&(body.dir=settings.directionality),settings.nowrap&&(body.style.whiteSpace="nowrap"),settings.protect&&self.on("BeforeSetContent",function(e){each(settings.protect,function(pattern){e.content=e.content.replace(pattern,function(str){return""})})}),self.on("SetContent",function(){self.addVisual(self.getBody())}),settings.padd_empty_editor&&self.on("PostProcess",function(e){e.content=e.content.replace(/^(]*>( | |\s|\u00a0|)<\/p>[\r\n]*|
    [\r\n]*)$/,"")}),self.load({initial:!0,format:"html"}),self.startContent=self.getContent({format:"raw"}),self.initialized=!0,self.bindPendingEventDelegates(),self.fire("init"),self.focus(!0),self.nodeChanged({initial:!0}),self.execCallback("init_instance_callback",self),self.contentStyles.length>0&&(contentCssText="",each(self.contentStyles,function(style){contentCssText+=style+"\r\n"}),self.dom.addStyle(contentCssText)),each(self.contentCSS,function(cssUrl){self.loadedCSS[cssUrl]||(self.dom.loadCSS(cssUrl),self.loadedCSS[cssUrl]=!0)}),settings.auto_focus&&Delay.setEditorTimeout(self,function(){var editor;editor=settings.auto_focus===!0?self:self.editorManager.get(settings.auto_focus),editor.destroyed||editor.focus()},100),targetElm=doc=body=null},focus:function(skipFocus){function getContentEditableHost(node){return self.dom.getParent(node,function(node){return"true"===self.dom.getContentEditable(node)})}var rng,controlElm,contentEditableHost,self=this,selection=self.selection,contentEditable=self.settings.content_editable,doc=self.getDoc(),body=self.getBody();if(!skipFocus){if(rng=selection.getRng(),rng.item&&(controlElm=rng.item(0)),self._refreshContentEditable(),contentEditableHost=getContentEditableHost(selection.getNode()),self.$.contains(body,contentEditableHost))return contentEditableHost.focus(),selection.normalize(),void self.editorManager.setActive(self);if(contentEditable||(Env.opera||self.getBody().focus(),self.getWin().focus()),isGecko||contentEditable){if(body.setActive)try{body.setActive()}catch(ex){body.focus()}else body.focus();contentEditable&&selection.normalize()}controlElm&&controlElm.ownerDocument==doc&&(rng=doc.body.createControlRange(),rng.addElement(controlElm),rng.select())}self.editorManager.setActive(self)},execCallback:function(name){var scope,self=this,callback=self.settings[name];if(callback)return self.callbackLookup&&(scope=self.callbackLookup[name])&&(callback=scope.func,scope=scope.scope),"string"==typeof callback&&(scope=callback.replace(/\.\w+$/,""),scope=scope?resolve(scope):0,callback=resolve(callback),self.callbackLookup=self.callbackLookup||{},self.callbackLookup[name]={func:callback,scope:scope}),callback.apply(scope||self,Array.prototype.slice.call(arguments,1))},translate:function(text){var lang=this.settings.language||"en",i18n=this.editorManager.i18n;return text?i18n.data[lang+"."+text]||text.replace(/\{\#([^\}]+)\}/g,function(a,b){return i18n.data[lang+"."+b]||"{#"+b+"}"}):""},getLang:function(name,defaultVal){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+name]||(defaultVal!==undefined?defaultVal:"{#"+name+"}")},getParam:function(name,defaultVal,type){var output,value=name in this.settings?this.settings[name]:defaultVal;return"hash"===type?(output={},"string"==typeof value?each(value.indexOf("=")>0?value.split(/[;,](?![^=;,]*(?:[;,]|$))/):value.split(","),function(value){value=value.split("="),value.length>1?output[trim(value[0])]=trim(value[1]):output[trim(value[0])]=trim(value)}):output=value,output):value},nodeChanged:function(args){this._nodeChangeDispatcher.nodeChanged(args)},addButton:function(name,settings){var self=this;settings.cmd&&(settings.onclick=function(){self.execCommand(settings.cmd)}),settings.text||settings.icon||(settings.icon=name),self.buttons=self.buttons||{},settings.tooltip=settings.tooltip||settings.title,self.buttons[name]=settings},addMenuItem:function(name,settings){var self=this;settings.cmd&&(settings.onclick=function(){self.execCommand(settings.cmd)}),self.menuItems=self.menuItems||{},self.menuItems[name]=settings},addContextToolbar:function(predicate,items){var selector,self=this;self.contextToolbars=self.contextToolbars||[],"string"==typeof predicate&&(selector=predicate,predicate=function(elm){return self.dom.is(elm,selector)}),self.contextToolbars.push({predicate:predicate,items:items})},addCommand:function(name,callback,scope){this.editorCommands.addCommand(name,callback,scope)},addQueryStateHandler:function(name,callback,scope){this.editorCommands.addQueryStateHandler(name,callback,scope)},addQueryValueHandler:function(name,callback,scope){this.editorCommands.addQueryValueHandler(name,callback,scope)},addShortcut:function(pattern,desc,cmdFunc,scope){this.shortcuts.add(pattern,desc,cmdFunc,scope)},execCommand:function(cmd,ui,value,args){return this.editorCommands.execCommand(cmd,ui,value,args)},queryCommandState:function(cmd){return this.editorCommands.queryCommandState(cmd)},queryCommandValue:function(cmd){return this.editorCommands.queryCommandValue(cmd)},queryCommandSupported:function(cmd){return this.editorCommands.queryCommandSupported(cmd)},show:function(){var self=this;self.hidden&&(self.hidden=!1,self.inline?self.getBody().contentEditable=!0:(DOM.show(self.getContainer()),DOM.hide(self.id)),self.load(),self.fire("show"))},hide:function(){var self=this,doc=self.getDoc();self.hidden||(ie&&doc&&!self.inline&&doc.execCommand("SelectAll"),self.save(),self.inline?(self.getBody().contentEditable=!1,self==self.editorManager.focusedEditor&&(self.editorManager.focusedEditor=null)):(DOM.hide(self.getContainer()),DOM.setStyle(self.id,"display",self.orgDisplay)),self.hidden=!0,self.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(state,time){this.fire("ProgressState",{state:state,time:time})},load:function(args){var html,self=this,elm=self.getElement();return elm?(args=args||{},args.load=!0,html=self.setContent(elm.value!==undefined?elm.value:elm.innerHTML,args),args.element=elm,args.no_events||self.fire("LoadContent",args),args.element=elm=null,html):void 0},save:function(args){var html,form,self=this,elm=self.getElement();if(elm&&self.initialized)return args=args||{},args.save=!0,args.element=elm,html=args.content=self.getContent(args),args.no_events||self.fire("SaveContent",args),"raw"==args.format&&self.fire("RawSaveContent",args),html=args.content,/TEXTAREA|INPUT/i.test(elm.nodeName)?elm.value=html:(self.inline||(elm.innerHTML=html),(form=DOM.getParent(self.id,"form"))&&each(form.elements,function(elm){return elm.name==self.id?(elm.value=html,!1):void 0})),args.element=elm=null,args.set_dirty!==!1&&self.setDirty(!1),html},setContent:function(content,args){var forcedRootBlockName,padd,self=this,body=self.getBody();return args=args||{},args.format=args.format||"html",args.set=!0,args.content=content,args.no_events||self.fire("BeforeSetContent",args),content=args.content,0===content.length||/^\s+$/.test(content)?(padd=ie&&11>ie?"":'
    ',"TABLE"==body.nodeName?content=""+padd+"":/^(UL|OL)$/.test(body.nodeName)&&(content="
  • "+padd+"
  • "),forcedRootBlockName=self.settings.forced_root_block,forcedRootBlockName&&self.schema.isValidChild(body.nodeName.toLowerCase(),forcedRootBlockName.toLowerCase())?(content=padd,content=self.dom.createHTML(forcedRootBlockName,self.settings.forced_root_block_attrs,content)):ie||content||(content='
    '),self.dom.setHTML(body,content),self.fire("SetContent",args)):("raw"!==args.format&&(content=new Serializer({validate:self.validate},self.schema).serialize(self.parser.parse(content,{isRootContent:!0}))),args.content=trim(content),self.dom.setHTML(body,args.content),args.no_events||self.fire("SetContent",args)),args.content},getContent:function(args){var content,self=this,body=self.getBody();return args=args||{},args.format=args.format||"html",args.get=!0,args.getInner=!0,args.no_events||self.fire("BeforeGetContent",args),content="raw"==args.format?self.serializer.getTrimmedContent():"text"==args.format?body.innerText||body.textContent:self.serializer.serialize(body,args),"text"!=args.format?args.content=trim(content):args.content=content,args.no_events||self.fire("GetContent",args),args.content},insertContent:function(content,args){args&&(content=extend({content:content},args)),this.execCommand("mceInsertContent",!1,content)},isDirty:function(){return!this.isNotDirty},setDirty:function(state){var oldState=!this.isNotDirty;this.isNotDirty=!state,state&&state!=oldState&&this.fire("dirty")},setMode:function(mode){Mode.setMode(this,mode)},getContainer:function(){var self=this;return self.container||(self.container=DOM.get(self.editorContainer||self.id+"_parent")),self.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=DOM.get(this.id)),this.targetElm},getWin:function(){var elm,self=this;return self.contentWindow||(elm=self.iframeElement,elm&&(self.contentWindow=elm.contentWindow)),self.contentWindow},getDoc:function(){var win,self=this;return self.contentDocument||(win=self.getWin(),win&&(self.contentDocument=win.document)),self.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(url,name,elm){var self=this,settings=self.settings;return settings.urlconverter_callback?self.execCallback("urlconverter_callback",url,elm,!0,name):!settings.convert_urls||elm&&"LINK"==elm.nodeName||0===url.indexOf("file:")||0===url.length?url:settings.relative_urls?self.documentBaseURI.toRelative(url):url=self.documentBaseURI.toAbsolute(url,settings.remove_script_host)},addVisual:function(elm){var cls,self=this,settings=self.settings,dom=self.dom;elm=elm||self.getBody(),self.hasVisual===undefined&&(self.hasVisual=settings.visual),each(dom.select("table,a",elm),function(elm){var value;switch(elm.nodeName){case"TABLE":return cls=settings.visual_table_class||"mce-item-table",value=dom.getAttrib(elm,"border"),void(value&&"0"!=value||!self.hasVisual?dom.removeClass(elm,cls):dom.addClass(elm,cls));case"A":return void(dom.getAttrib(elm,"href",!1)||(value=dom.getAttrib(elm,"name")||elm.id,cls=settings.visual_anchor_class||"mce-item-anchor",value&&self.hasVisual?dom.addClass(elm,cls):dom.removeClass(elm,cls)))}}),self.fire("VisualAid",{element:elm,hasVisual:self.hasVisual})},remove:function(){var self=this;self.removed||(self.save(),self.removed=1,self.unbindAllNativeEvents(),self.hasHiddenInput&&DOM.remove(self.getElement().nextSibling),self.inline||(ie&&10>ie&&self.getDoc().execCommand("SelectAll",!1,null),DOM.setStyle(self.id,"display",self.orgDisplay),self.getBody().onload=null),self.fire("remove"),self.editorManager.remove(self),DOM.remove(self.getContainer()),self._selectionOverrides.destroy(), +self.editorUpload.destroy(),self.destroy())},destroy:function(automatic){var form,self=this;if(!self.destroyed){if(!automatic&&!self.removed)return void self.remove();automatic||(self.editorManager.off("beforeunload",self._beforeUnload),self.theme&&self.theme.destroy&&self.theme.destroy(),self.selection.destroy(),self.dom.destroy()),form=self.formElement,form&&(form._mceOldSubmit&&(form.submit=form._mceOldSubmit,form._mceOldSubmit=null),DOM.unbind(form,"submit reset",self.formEventDelegate)),self.contentAreaContainer=self.formElement=self.container=self.editorContainer=null,self.bodyElement=self.contentDocument=self.contentWindow=null,self.iframeElement=self.targetElm=null,self.selection&&(self.selection=self.selection.win=self.selection.dom=self.selection.dom.doc=null),self.destroyed=1}},uploadImages:function(callback){return this.editorUpload.uploadImages(callback)},_scanForImages:function(){return this.editorUpload.scanForImages()},_refreshContentEditable:function(){var body,parent,self=this;self._isHidden()&&(body=self.getBody(),parent=body.parentNode,parent.removeChild(body),parent.appendChild(body),body.focus())},_isHidden:function(){var sel;return isGecko?(sel=this.selection.getSel(),!sel||!sel.rangeCount||0===sel.rangeCount):0}},extend(Editor.prototype,EditorObservable),Editor}),define("tinymce/util/I18n",[],function(){var data={},code="en";return{setCode:function(newCode){newCode&&(code=newCode,this.rtl=this.data[newCode]?"rtl"===this.data[newCode]._dir:!1)},getCode:function(){return code},rtl:!1,add:function(code,items){var langData=data[code];langData||(data[code]=langData={});for(var name in items)langData[name]=items[name];this.setCode(code)},translate:function(text){var langData;if(langData=data[code],langData||(langData={}),"undefined"==typeof text)return text;if("string"!=typeof text&&text.raw)return text.raw;if(text.push){var values=text.slice(1);text=(langData[text[0]]||text[0]).replace(/\{([0-9]+)\}/g,function(match1,match2){return values[match2]})}return(langData[text]||text).replace(/{context:\w+}$/,"")},data:data}}),define("tinymce/FocusManager",["tinymce/dom/DOMUtils","tinymce/util/Delay","tinymce/Env"],function(DOMUtils,Delay,Env){function FocusManager(editorManager){function getActiveElement(){try{return document.activeElement}catch(ex){return document.body}}function createBookmark(dom,rng){if(rng&&rng.startContainer){if(!dom.isChildOf(rng.startContainer,dom.getRoot())||!dom.isChildOf(rng.endContainer,dom.getRoot()))return;return{startContainer:rng.startContainer,startOffset:rng.startOffset,endContainer:rng.endContainer,endOffset:rng.endOffset}}return rng}function bookmarkToRng(editor,bookmark){var rng;return bookmark.startContainer?(rng=editor.getDoc().createRange(),rng.setStart(bookmark.startContainer,bookmark.startOffset),rng.setEnd(bookmark.endContainer,bookmark.endOffset)):rng=bookmark,rng}function isUIElement(elm){return!!DOM.getParent(elm,FocusManager.isEditorUIElement)}function registerEvents(e){var editor=e.editor;editor.on("init",function(){(editor.inline||Env.ie)&&("onbeforedeactivate"in document&&Env.ie<9?editor.dom.bind(editor.getBody(),"beforedeactivate",function(e){if(e.target==editor.getBody())try{editor.lastRng=editor.selection.getRng()}catch(ex){}}):editor.on("nodechange mouseup keyup",function(e){var node=getActiveElement();"nodechange"==e.type&&e.selectionChange||(node&&node.id==editor.id+"_ifr"&&(node=editor.getBody()),editor.dom.isChildOf(node,editor.getBody())&&(editor.lastRng=editor.selection.getRng()))}),Env.webkit&&!selectionChangeHandler&&(selectionChangeHandler=function(){var activeEditor=editorManager.activeEditor;if(activeEditor&&activeEditor.selection){var rng=activeEditor.selection.getRng();rng&&!rng.collapsed&&(editor.lastRng=rng)}},DOM.bind(document,"selectionchange",selectionChangeHandler)))}),editor.on("setcontent",function(){editor.lastRng=null}),editor.on("mousedown",function(){editor.selection.lastFocusBookmark=null}),editor.on("focusin",function(){var lastRng,focusedEditor=editorManager.focusedEditor;editor.selection.lastFocusBookmark&&(lastRng=bookmarkToRng(editor,editor.selection.lastFocusBookmark),editor.selection.lastFocusBookmark=null,editor.selection.setRng(lastRng)),focusedEditor!=editor&&(focusedEditor&&focusedEditor.fire("blur",{focusedEditor:editor}),editorManager.setActive(editor),editorManager.focusedEditor=editor,editor.fire("focus",{blurredEditor:focusedEditor}),editor.focus(!0)),editor.lastRng=null}),editor.on("focusout",function(){Delay.setEditorTimeout(editor,function(){var focusedEditor=editorManager.focusedEditor;isUIElement(getActiveElement())||focusedEditor!=editor||(editor.fire("blur",{focusedEditor:null}),editorManager.focusedEditor=null,editor.selection&&(editor.selection.lastFocusBookmark=null))})}),documentFocusInHandler||(documentFocusInHandler=function(e){var activeEditor=editorManager.activeEditor;activeEditor&&e.target.ownerDocument==document&&(activeEditor.selection&&e.target!=activeEditor.getBody()&&(activeEditor.selection.lastFocusBookmark=createBookmark(activeEditor.dom,activeEditor.lastRng)),e.target==document.body||isUIElement(e.target)||editorManager.focusedEditor!=activeEditor||(activeEditor.fire("blur",{focusedEditor:null}),editorManager.focusedEditor=null))},DOM.bind(document,"focusin",documentFocusInHandler)),editor.inline&&!documentMouseUpHandler&&(documentMouseUpHandler=function(e){var activeEditor=editorManager.activeEditor;if(activeEditor.inline&&!activeEditor.dom.isChildOf(e.target,activeEditor.getBody())){var rng=activeEditor.selection.getRng();rng.collapsed||(activeEditor.lastRng=rng)}},DOM.bind(document,"mouseup",documentMouseUpHandler))}function unregisterDocumentEvents(e){editorManager.focusedEditor==e.editor&&(editorManager.focusedEditor=null),editorManager.activeEditor||(DOM.unbind(document,"selectionchange",selectionChangeHandler),DOM.unbind(document,"focusin",documentFocusInHandler),DOM.unbind(document,"mouseup",documentMouseUpHandler),selectionChangeHandler=documentFocusInHandler=documentMouseUpHandler=null)}editorManager.on("AddEditor",registerEvents),editorManager.on("RemoveEditor",unregisterDocumentEvents)}var selectionChangeHandler,documentFocusInHandler,documentMouseUpHandler,DOM=DOMUtils.DOM;return FocusManager.isEditorUIElement=function(elm){return-1!==elm.className.toString().indexOf("mce-")},FocusManager}),define("tinymce/EditorManager",["tinymce/Editor","tinymce/dom/DomQuery","tinymce/dom/DOMUtils","tinymce/util/URI","tinymce/Env","tinymce/util/Tools","tinymce/util/Promise","tinymce/util/Observable","tinymce/util/I18n","tinymce/FocusManager"],function(Editor,$,DOMUtils,URI,Env,Tools,Promise,Observable,I18n,FocusManager){function globalEventDelegate(e){each(EditorManager.editors,function(editor){editor.fire("ResizeWindow",e)})}function toggleGlobalEvents(editors,state){state!==boundGlobalEvents&&(state?$(window).on("resize",globalEventDelegate):$(window).off("resize",globalEventDelegate),boundGlobalEvents=state)}function removeEditorFromList(editor){var removedFromList,editors=EditorManager.editors;delete editors[editor.id];for(var i=0;i0&&each(explode(l),function(id){var elm;(elm=DOM.get(id))?targets.push(elm):each(document.forms,function(f){each(f.elements,function(e){e.name===id&&(id="mce_editor_"+instanceCounter++,DOM.setAttrib(e,"id",id),targets.push(e))})})});break;case"textareas":case"specific_textareas":each(DOM.select("textarea"),function(elm){settings.editor_deselector&&hasClass(elm,settings.editor_deselector)||settings.editor_selector&&!hasClass(elm,settings.editor_selector)||targets.push(elm)})}return targets}function initEditors(resolve,readyHandler){function createEditor(id,settings,targetElm){if(!purgeDestroyedEditor(self.get(id))){var editor=new Editor(id,settings,self);editors.push(editor),editor.on("init",function(){++initCount===targets.length&&resolve(editors)}),editor.targetElm=editor.targetElm||targetElm,editor.render()}}var targets,initCount=0,editors=[];return DOM.unbind(window,"ready",readyHandler),execCallback("onpageload"),targets=findTargets(settings),settings.types?void each(settings.types,function(type){Tools.each(targets,function(elm){return DOM.is(elm,type.selector)?(createEditor(createId(elm),extend({},settings,type),elm),!1):!0})}):void each(targets,function(elm){createEditor(createId(elm),settings,elm)})}var self=this;return self.settings=settings,new Promise(function(resolve){var readyHandler=function(){initEditors(resolve,readyHandler)};DOM.bind(window,"ready",readyHandler)})},get:function(id){return arguments.length?id in this.editors?this.editors[id]:null:this.editors},add:function(editor){var self=this,editors=self.editors;return editors[editor.id]=editor,editors.push(editor),toggleGlobalEvents(editors,!0),self.activeEditor=editor,self.fire("AddEditor",{editor:editor}),beforeUnloadDelegate||(beforeUnloadDelegate=function(){self.fire("BeforeUnload")},DOM.bind(window,"beforeunload",beforeUnloadDelegate)),editor},createEditor:function(id,settings){return this.add(new Editor(id,settings,this))},remove:function(selector){var i,editor,self=this,editors=self.editors;{if(selector)return"string"==typeof selector?(selector=selector.selector||selector,void each(DOM.select(selector),function(elm){editor=editors[elm.id],editor&&self.remove(editor)})):(editor=selector,editors[editor.id]?(removeEditorFromList(editor)&&self.fire("RemoveEditor",{editor:editor}),editors.length||DOM.unbind(window,"beforeunload",beforeUnloadDelegate),editor.remove(),toggleGlobalEvents(editors,editors.length>0),editor):null);for(i=editors.length-1;i>=0;i--)self.remove(editors[i])}},execCommand:function(cmd,ui,value){var self=this,editor=self.get(value);switch(cmd){case"mceAddEditor":return self.get(value)||new Editor(value,self.settings,self).render(),!0;case"mceRemoveEditor":return editor&&editor.remove(),!0;case"mceToggleEditor":return editor?(editor.isHidden()?editor.show():editor.hide(),!0):(self.execCommand("mceAddEditor",0,value),!0)}return self.activeEditor?self.activeEditor.execCommand(cmd,ui,value):!1},triggerSave:function(){each(this.editors,function(editor){editor.save()})},addI18n:function(code,items){I18n.add(code,items)},translate:function(text){return I18n.translate(text)},setActive:function(editor){var activeEditor=this.activeEditor;this.activeEditor!=editor&&(activeEditor&&activeEditor.fire("deactivate",{relatedTarget:editor}),editor.fire("activate",{relatedTarget:activeEditor})),this.activeEditor=editor}},extend(EditorManager,Observable),EditorManager.setup(),window.tinymce=window.tinyMCE=EditorManager,EditorManager}),define("tinymce/LegacyInput",["tinymce/EditorManager","tinymce/util/Tools"],function(EditorManager,Tools){var each=Tools.each,explode=Tools.explode;EditorManager.on("AddEditor",function(e){var editor=e.editor;editor.on("preInit",function(){function replaceWithSpan(node,styles){each(styles,function(value,name){value&&dom.setStyle(node,name,value)}),dom.rename(node,"span")}function convert(e){dom=editor.dom,settings.convert_fonts_to_spans&&each(dom.select("font,u,strike",e.node),function(node){filters[node.nodeName.toLowerCase()](dom,node)})}var filters,fontSizes,dom,settings=editor.settings;settings.inline_styles&&(fontSizes=explode(settings.font_size_legacy_values),filters={font:function(dom,node){replaceWithSpan(node,{backgroundColor:node.style.backgroundColor,color:node.color,fontFamily:node.face,fontSize:fontSizes[parseInt(node.size,10)-1]})},u:function(dom,node){"html4"===editor.settings.schema&&replaceWithSpan(node,{textDecoration:"underline"})},strike:function(dom,node){replaceWithSpan(node,{textDecoration:"line-through"})}},editor.on("PreProcess SetContent",convert))})})}),define("tinymce/util/XHR",["tinymce/util/Observable","tinymce/util/Tools"],function(Observable,Tools){var XHR={send:function(settings){function ready(){!settings.async||4==xhr.readyState||count++>1e4?(settings.success&&1e4>count&&200==xhr.status?settings.success.call(settings.success_scope,""+xhr.responseText,xhr,settings):settings.error&&settings.error.call(settings.error_scope,count>1e4?"TIMED_OUT":"GENERAL",xhr,settings),xhr=null):setTimeout(ready,10)}var xhr,count=0;if(settings.scope=settings.scope||this,settings.success_scope=settings.success_scope||settings.scope,settings.error_scope=settings.error_scope||settings.scope,settings.async=settings.async!==!1,settings.data=settings.data||"",XHR.fire("beforeInitialize",{settings:settings}),xhr=new XMLHttpRequest){if(xhr.overrideMimeType&&xhr.overrideMimeType(settings.content_type),xhr.open(settings.type||(settings.data?"POST":"GET"),settings.url,settings.async),settings.crossDomain&&(xhr.withCredentials=!0),settings.content_type&&xhr.setRequestHeader("Content-Type",settings.content_type),settings.requestheaders&&Tools.each(settings.requestheaders,function(header){xhr.setRequestHeader(header.key,header.value)}),xhr.setRequestHeader("X-Requested-With","XMLHttpRequest"),xhr=XHR.fire("beforeSend",{xhr:xhr,settings:settings}).xhr,xhr.send(settings.data),!settings.async)return ready();setTimeout(ready,10)}}};return Tools.extend(XHR,Observable),XHR}),define("tinymce/util/JSON",[],function(){function serialize(o,quote){var i,v,t,name;if(quote=quote||'"',null===o)return"null";if(t=typeof o,"string"==t)return v="\bb t\nn\ff\rr\"\"''\\\\",quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){return'"'===quote&&"'"===a?a:(i=v.indexOf(b),i+1?"\\"+v.charAt(i+1):(a=b.charCodeAt().toString(16),"\\u"+"0000".substring(a.length)+a))})+quote;if("object"==t){if(o.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(o)){for(i=0,v="[";i0?",":"")+serialize(o[i],quote);return v+"]"}v="{";for(name in o)o.hasOwnProperty(name)&&(v+="function"!=typeof o[name]?(v.length>1?","+quote:quote)+name+quote+":"+serialize(o[name],quote):"");return v+"}"}return""+o}return{serialize:serialize,parse:function(text){try{return window[String.fromCharCode(101)+"val"]("("+text+")")}catch(ex){}}}}),define("tinymce/util/JSONRequest",["tinymce/util/JSON","tinymce/util/XHR","tinymce/util/Tools"],function(JSON,XHR,Tools){function JSONRequest(settings){this.settings=extend({},settings),this.count=0}var extend=Tools.extend;return JSONRequest.sendRPC=function(o){return(new JSONRequest).send(o)},JSONRequest.prototype={send:function(args){var ecb=args.error,scb=args.success;args=extend(this.settings,args),args.success=function(c,x){c=JSON.parse(c),"undefined"==typeof c&&(c={error:"JSON Parse error."}),c.error?ecb.call(args.error_scope||args.scope,c.error,x):scb.call(args.success_scope||args.scope,c.result)},args.error=function(ty,x){ecb&&ecb.call(args.error_scope||args.scope,ty,x)},args.data=JSON.serialize({id:args.id||"c"+this.count++,method:args.method,params:args.params}),args.content_type="application/json",XHR.send(args)}},JSONRequest}),define("tinymce/util/JSONP",["tinymce/dom/DOMUtils"],function(DOMUtils){return{callbacks:{},count:0,send:function(settings){var self=this,dom=DOMUtils.DOM,count=settings.count!==undefined?settings.count:self.count,id="tinymce_jsonp_"+count;self.callbacks[count]=function(json){dom.remove(id),delete self.callbacks[count],settings.callback(json)},dom.add(dom.doc.body,"script",{id:id,src:settings.url,type:"text/javascript"}),self.count++}}}),define("tinymce/util/LocalStorage",[],function(){function updateKeys(){keys=[];for(var key in items)keys.push(key);LocalStorage.length=keys.length}function load(){function next(end){var value,nextPos;return nextPos=end!==undefined?pos+end:data.indexOf(",",pos),-1===nextPos||nextPos>data.length?null:(value=data.substring(pos,nextPos),pos=nextPos+1,value)}var key,data,value,pos=0;if(items={},hasOldIEDataSupport){storageElm.load(userDataKey),data=storageElm.getAttribute(userDataKey)||"";do{var offset=next();if(null===offset)break;if(key=next(parseInt(offset,32)||0),null!==key){if(offset=next(),null===offset)break;value=next(parseInt(offset,32)||0),key&&(items[key]=value)}}while(null!==key);updateKeys()}}function save(){var value,data="";if(hasOldIEDataSupport){for(var key in items)value=items[key],data+=(data?",":"")+key.length.toString(32)+","+key+","+value.length.toString(32)+","+value;storageElm.setAttribute(userDataKey,data);try{storageElm.save(userDataKey)}catch(ex){}updateKeys()}}var LocalStorage,storageElm,items,keys,userDataKey,hasOldIEDataSupport;try{if(window.localStorage)return localStorage}catch(ex){}return userDataKey="tinymce",storageElm=document.documentElement,hasOldIEDataSupport=!!storageElm.addBehavior,hasOldIEDataSupport&&storageElm.addBehavior("#default#userData"),LocalStorage={key:function(index){return keys[index]},getItem:function(key){return key in items?items[key]:null},setItem:function(key,value){items[key]=""+value,save()},removeItem:function(key){delete items[key],save()},clear:function(){items={},save()}},load(),LocalStorage}),define("tinymce/Compat",["tinymce/dom/DOMUtils","tinymce/dom/EventUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/util/Tools","tinymce/Env"],function(DOMUtils,EventUtils,ScriptLoader,AddOnManager,Tools,Env){var tinymce=window.tinymce;return tinymce.DOM=DOMUtils.DOM,tinymce.ScriptLoader=ScriptLoader.ScriptLoader,tinymce.PluginManager=AddOnManager.PluginManager,tinymce.ThemeManager=AddOnManager.ThemeManager,tinymce.dom=tinymce.dom||{},tinymce.dom.Event=EventUtils.Event,Tools.each(Tools,function(func,key){tinymce[key]=func}),Tools.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(name){tinymce[name]=Env[name.substr(2).toLowerCase()]}),{}}),define("tinymce/ui/Layout",["tinymce/util/Class","tinymce/util/Tools"],function(Class,Tools){return Class.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(settings){this.settings=Tools.extend({},this.Defaults,settings)},preRender:function(container){container.bodyClasses.add(this.settings.containerClass)},applyClasses:function(items){var firstClass,lastClass,firstItem,lastItem,self=this,settings=self.settings;firstClass=settings.firstControlClass,lastClass=settings.lastControlClass,items.each(function(item){item.classes.remove(firstClass).remove(lastClass).add(settings.controlClass),item.visible()&&(firstItem||(firstItem=item),lastItem=item)}),firstItem&&firstItem.classes.add(firstClass),lastItem&&lastItem.classes.add(lastClass)},renderHtml:function(container){var self=this,html="";return self.applyClasses(container.items()),container.items().each(function(item){html+=item.renderHtml()}),html},recalc:function(){},postRender:function(){},isNative:function(){return!1}})}),define("tinymce/ui/AbsoluteLayout",["tinymce/ui/Layout"],function(Layout){return Layout.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(container){container.items().filter(":visible").each(function(ctrl){var settings=ctrl.settings;ctrl.layoutRect({x:settings.x,y:settings.y,w:settings.w,h:settings.h}),ctrl.recalc&&ctrl.recalc()})},renderHtml:function(container){return'
    '+this._super(container)}})}),define("tinymce/ui/Button",["tinymce/ui/Widget"],function(Widget){return Widget.extend({Defaults:{classes:"widget btn",role:"button"},init:function(settings){var size,self=this;self._super(settings),settings=self.settings,size=self.settings.size,self.on("click mousedown",function(e){e.preventDefault()}),self.on("touchstart",function(e){self.fire("click",e),e.preventDefault()}),settings.subtype&&self.classes.add(settings.subtype),size&&self.classes.add("btn-"+size),settings.icon&&self.icon(settings.icon)},icon:function(icon){return arguments.length?(this.state.set("icon",icon),this):this.state.get("icon")},repaint:function(){var btnStyle,btnElm=this.getEl().firstChild;btnElm&&(btnStyle=btnElm.style,btnStyle.width=btnStyle.height="100%"),this._super()},renderHtml:function(){var image,self=this,id=self._id,prefix=self.classPrefix,icon=self.state.get("icon"),text=self.state.get("text"),textHtml="";return image=self.settings.image,image?(icon="none","string"!=typeof image&&(image=window.getSelection?image[0]:image[1]),image=" style=\"background-image: url('"+image+"')\""):image="",text&&(self.classes.add("btn-has-text"),textHtml=''+self.encode(text)+""),icon=self.settings.icon?prefix+"ico "+prefix+"i-"+icon:"",'
    "},bindStates:function(){function setButtonText(text){var $span=$("span."+textCls,self.getEl());text?($span[0]||($("button:first",self.getEl()).append(''),$span=$("span."+textCls,self.getEl())),$span.html(self.encode(text))):$span.remove(),self.classes.toggle("btn-has-text",!!text)}var self=this,$=self.$,textCls=self.classPrefix+"txt";return self.state.on("change:text",function(e){setButtonText(e.value)}),self.state.on("change:icon",function(e){var icon=e.value,prefix=self.classPrefix;self.settings.icon=icon,icon=icon?prefix+"ico "+prefix+"i-"+self.settings.icon:"";var btnElm=self.getEl().firstChild,iconElm=btnElm.getElementsByTagName("i")[0];icon?(iconElm&&iconElm==btnElm.firstChild||(iconElm=document.createElement("i"),btnElm.insertBefore(iconElm,btnElm.firstChild)),iconElm.className=icon):iconElm&&btnElm.removeChild(iconElm),setButtonText(self.state.get("text"))}),self._super()}})}),define("tinymce/ui/ButtonGroup",["tinymce/ui/Container"],function(Container){return Container.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var self=this,layout=self._layout;return self.classes.add("btn-group"),self.preRender(),layout.preRender(self),'
    '+(self.settings.html||"")+layout.renderHtml(self)+"
    "}})}),define("tinymce/ui/Checkbox",["tinymce/ui/Widget"],function(Widget){return Widget.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(settings){var self=this;self._super(settings),self.on("click mousedown",function(e){e.preventDefault()}),self.on("click",function(e){e.preventDefault(),self.disabled()||self.checked(!self.checked())}),self.checked(self.settings.checked)},checked:function(state){return arguments.length?(this.state.set("checked",state),this):this.state.get("checked")},value:function(state){return arguments.length?this.checked(state):this.checked()},renderHtml:function(){var self=this,id=self._id,prefix=self.classPrefix;return'
    '+self.encode(self.state.get("text"))+"
    "},bindStates:function(){function checked(state){self.classes.toggle("checked",state),self.aria("checked",state)}var self=this;return self.state.on("change:text",function(e){self.getEl("al").firstChild.data=self.translate(e.value)}),self.state.on("change:checked change:value",function(e){self.fire("change"),checked(e.value)}),self.state.on("change:icon",function(e){var icon=e.value,prefix=self.classPrefix;if("undefined"==typeof icon)return self.settings.icon;self.settings.icon=icon,icon=icon?prefix+"ico "+prefix+"i-"+self.settings.icon:"";var btnElm=self.getEl().firstChild,iconElm=btnElm.getElementsByTagName("i")[0];icon?(iconElm&&iconElm==btnElm.firstChild||(iconElm=document.createElement("i"),btnElm.insertBefore(iconElm,btnElm.firstChild)),iconElm.className=icon):iconElm&&btnElm.removeChild(iconElm)}),self.state.get("checked")&&checked(!0),self._super()}})}),define("tinymce/ui/ComboBox",["tinymce/ui/Widget","tinymce/ui/Factory","tinymce/ui/DomUtils","tinymce/dom/DomQuery"],function(Widget,Factory,DomUtils,$){return Widget.extend({init:function(settings){var self=this;self._super(settings),settings=self.settings,self.classes.add("combobox"),self.subinput=!0,self.ariaTarget="inp",settings.menu=settings.menu||settings.values,settings.menu&&(settings.icon="caret"),self.on("click",function(e){var elm=e.target,root=self.getEl();if($.contains(root,elm)||elm==root)for(;elm&&elm!=root;)elm.id&&-1!=elm.id.indexOf("-open")&&(self.fire("action"),settings.menu&&(self.showMenu(),e.aria&&self.menu.items()[0].focus())),elm=elm.parentNode}),self.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&self.parents().reverse().each(function(ctrl){var stateValue=self.state.get("value"),inputValue=self.getEl("inp").value;return e.preventDefault(),self.state.set("value",inputValue),stateValue!=inputValue&&self.fire("change"),ctrl.hasEventListeners("submit")&&ctrl.toJSON?(ctrl.fire("submit",{data:ctrl.toJSON()}),!1):void 0})}),self.on("keyup",function(e){"INPUT"==e.target.nodeName&&self.state.set("value",e.target.value)})},showMenu:function(){var menu,self=this,settings=self.settings;self.menu||(menu=settings.menu||[],menu.length?menu={type:"menu",items:menu}:menu.type=menu.type||"menu",self.menu=Factory.create(menu).parent(self).renderTo(self.getContainerElm()),self.fire("createmenu"),self.menu.reflow(),self.menu.on("cancel",function(e){e.control===self.menu&&self.focus()}),self.menu.on("show hide",function(e){e.control.items().each(function(ctrl){ctrl.active(ctrl.value()==self.value())})}).fire("show"),self.menu.on("select",function(e){self.value(e.control.value())}),self.on("focusin",function(e){"INPUT"==e.target.tagName.toUpperCase()&&self.menu.hide()}),self.aria("expanded",!0)),self.menu.show(),self.menu.layoutRect({w:self.layoutRect().w}),self.menu.moveRel(self.getEl(),self.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var width,lineHeight,self=this,elm=self.getEl(),openElm=self.getEl("open"),rect=self.layoutRect();width=openElm?rect.w-DomUtils.getSize(openElm).width-10:rect.w-10;var doc=document;return doc.all&&(!doc.documentMode||doc.documentMode<=8)&&(lineHeight=self.layoutRect().h-2+"px"),$(elm.firstChild).css({width:width,lineHeight:lineHeight}),self._super(),self},postRender:function(){var self=this;return $(this.getEl("inp")).on("change",function(e){self.state.set("value",e.target.value),self.fire("change",e)}),self._super()},renderHtml:function(){var icon,text,self=this,id=self._id,settings=self.settings,prefix=self.classPrefix,value=self.state.get("value")||"",openBtnHtml="",extraAttrs="";return"spellcheck"in settings&&(extraAttrs+=' spellcheck="'+settings.spellcheck+'"'),settings.maxLength&&(extraAttrs+=' maxlength="'+settings.maxLength+'"'),settings.size&&(extraAttrs+=' size="'+settings.size+'"'),settings.subtype&&(extraAttrs+=' type="'+settings.subtype+'"'),self.disabled()&&(extraAttrs+=' disabled="disabled"'),icon=settings.icon,icon&&"caret"!=icon&&(icon=prefix+"ico "+prefix+"i-"+settings.icon),text=self.state.get("text"),(icon||text)&&(openBtnHtml='
    ",self.classes.add("has-open")),'
    '+openBtnHtml+"
    "},value:function(value){return arguments.length?(this.state.set("value",value),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value),this.state.get("value"))},bindStates:function(){var self=this;return self.state.on("change:value",function(e){self.getEl("inp").value!=e.value&&(self.getEl("inp").value=e.value)}),self.state.on("change:disabled",function(e){self.getEl("inp").disabled=e.value}),self._super()},remove:function(){$(this.getEl("inp")).off(),this._super()}})}),define("tinymce/ui/ColorBox",["tinymce/ui/ComboBox"],function(ComboBox){return ComboBox.extend({init:function(settings){var self=this;settings.spellcheck=!1,settings.onaction&&(settings.icon="none"),self._super(settings),self.classes.add("colorbox"),self.on("change keyup postrender",function(){self.repaintColor(self.value())})},repaintColor:function(value){var elm=this.getEl().getElementsByTagName("i")[0];if(elm)try{elm.style.background=value}catch(ex){}},bindStates:function(){var self=this;return self.state.on("change:value",function(e){self._rendered&&self.repaintColor(e.value)}),self._super()}})}),define("tinymce/ui/PanelButton",["tinymce/ui/Button","tinymce/ui/FloatPanel"],function(Button,FloatPanel){return Button.extend({showPanel:function(){var self=this,settings=self.settings;if(self.active(!0),self.panel)self.panel.show();else{var panelSettings=settings.panel;panelSettings.type&&(panelSettings={layout:"grid",items:panelSettings}),panelSettings.role=panelSettings.role||"dialog",panelSettings.popover=!0,panelSettings.autohide=!0,panelSettings.ariaRoot=!0,self.panel=new FloatPanel(panelSettings).on("hide",function(){self.active(!1)}).on("cancel",function(e){ +e.stopPropagation(),self.focus(),self.hidePanel()}).parent(self).renderTo(self.getContainerElm()),self.panel.fire("show"),self.panel.reflow()}self.panel.moveRel(self.getEl(),settings.popoverAlign||(self.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var self=this;self.panel&&self.panel.hide()},postRender:function(){var self=this;return self.aria("haspopup",!0),self.on("click",function(e){e.control===self&&(self.panel&&self.panel.visible()?self.hidePanel():(self.showPanel(),self.panel.focus(!!e.aria)))}),self._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),define("tinymce/ui/ColorButton",["tinymce/ui/PanelButton","tinymce/dom/DOMUtils"],function(PanelButton,DomUtils){var DOM=DomUtils.DOM;return PanelButton.extend({init:function(settings){this._super(settings),this.classes.add("colorbutton")},color:function(color){return color?(this._color=color,this.getEl("preview").style.backgroundColor=color,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var self=this,id=self._id,prefix=self.classPrefix,text=self.state.get("text"),icon=self.settings.icon?prefix+"ico "+prefix+"i-"+self.settings.icon:"",image=self.settings.image?" style=\"background-image: url('"+self.settings.image+"')\"":"",textHtml="";return text&&(self.classes.add("btn-has-text"),textHtml=''+self.encode(text)+""),'
    '},postRender:function(){var self=this,onClickHandler=self.settings.onclick;return self.on("click",function(e){e.aria&&"down"==e.aria.key||e.control!=self||DOM.getParent(e.target,"."+self.classPrefix+"open")||(e.stopImmediatePropagation(),onClickHandler.call(self,e))}),delete self.settings.onclick,self._super()}})}),define("tinymce/util/Color",[],function(){function Color(value){function rgb2hsv(r,g,b){var h,s,v,d,minRGB,maxRGB;return h=0,s=0,v=0,r/=255,g/=255,b/=255,minRGB=min(r,min(g,b)),maxRGB=max(r,max(g,b)),minRGB==maxRGB?(v=minRGB,{h:0,s:0,v:100*v}):(d=r==minRGB?g-b:b==minRGB?r-g:b-r,h=r==minRGB?3:b==minRGB?1:5,h=60*(h-d/(maxRGB-minRGB)),s=(maxRGB-minRGB)/maxRGB,v=maxRGB,{h:round(h),s:round(100*s),v:round(100*v)})}function hsvToRgb(hue,saturation,brightness){var side,chroma,x,match;if(hue=(parseInt(hue,10)||0)%360,saturation=parseInt(saturation,10)/100,brightness=parseInt(brightness,10)/100,saturation=max(0,min(saturation,1)),brightness=max(0,min(brightness,1)),0===saturation)return void(r=g=b=round(255*brightness));switch(side=hue/60,chroma=brightness*saturation,x=chroma*(1-Math.abs(side%2-1)),match=brightness-chroma,Math.floor(side)){case 0:r=chroma,g=x,b=0;break;case 1:r=x,g=chroma,b=0;break;case 2:r=0,g=chroma,b=x;break;case 3:r=0,g=x,b=chroma;break;case 4:r=x,g=0,b=chroma;break;case 5:r=chroma,g=0,b=x;break;default:r=g=b=0}r=round(255*(r+match)),g=round(255*(g+match)),b=round(255*(b+match))}function toHex(){function hex(val){return val=parseInt(val,10).toString(16),val.length>1?val:"0"+val}return"#"+hex(r)+hex(g)+hex(b)}function toRgb(){return{r:r,g:g,b:b}}function toHsv(){return rgb2hsv(r,g,b)}function parse(value){var matches;return"object"==typeof value?"r"in value?(r=value.r,g=value.g,b=value.b):"v"in value&&hsvToRgb(value.h,value.s,value.v):(matches=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(value))?(r=parseInt(matches[1],10),g=parseInt(matches[2],10),b=parseInt(matches[3],10)):(matches=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(value))?(r=parseInt(matches[1],16),g=parseInt(matches[2],16),b=parseInt(matches[3],16)):(matches=/#([0-F])([0-F])([0-F])/gi.exec(value))&&(r=parseInt(matches[1]+matches[1],16),g=parseInt(matches[2]+matches[2],16),b=parseInt(matches[3]+matches[3],16)),r=0>r?0:r>255?255:r,g=0>g?0:g>255?255:g,b=0>b?0:b>255?255:b,self}var self=this,r=0,g=0,b=0;value&&parse(value),self.toRgb=toRgb,self.toHsv=toHsv,self.toHex=toHex,self.parse=parse}var min=Math.min,max=Math.max,round=Math.round;return Color}),define("tinymce/ui/ColorPicker",["tinymce/ui/Widget","tinymce/ui/DragHelper","tinymce/ui/DomUtils","tinymce/util/Color"],function(Widget,DragHelper,DomUtils,Color){return Widget.extend({Defaults:{classes:"widget colorpicker"},init:function(settings){this._super(settings)},postRender:function(){function getPos(elm,event){var x,y,pos=DomUtils.getPos(elm);return x=event.pageX-pos.x,y=event.pageY-pos.y,x=Math.max(0,Math.min(x/elm.clientWidth,1)),y=Math.max(0,Math.min(y/elm.clientHeight,1)),{x:x,y:y}}function updateColor(hsv,hueUpdate){var hue=(360-hsv.h)/360;DomUtils.css(huePointElm,{top:100*hue+"%"}),hueUpdate||DomUtils.css(svPointElm,{left:hsv.s+"%",top:100-hsv.v+"%"}),svRootElm.style.background=new Color({s:100,v:100,h:hsv.h}).toHex(),self.color().parse({s:hsv.s,v:hsv.v,h:hsv.h})}function updateSaturationAndValue(e){var pos;pos=getPos(svRootElm,e),hsv.s=100*pos.x,hsv.v=100*(1-pos.y),updateColor(hsv),self.fire("change")}function updateHue(e){var pos;pos=getPos(hueRootElm,e),hsv=color.toHsv(),hsv.h=360*(1-pos.y),updateColor(hsv,!0),self.fire("change")}var hsv,hueRootElm,huePointElm,svRootElm,svPointElm,self=this,color=self.color();hueRootElm=self.getEl("h"),huePointElm=self.getEl("hp"),svRootElm=self.getEl("sv"),svPointElm=self.getEl("svp"),self._repaint=function(){hsv=color.toHsv(),updateColor(hsv)},self._super(),self._svdraghelper=new DragHelper(self._id+"-sv",{start:updateSaturationAndValue,drag:updateSaturationAndValue}),self._hdraghelper=new DragHelper(self._id+"-h",{start:updateHue,drag:updateHue}),self._repaint()},rgb:function(){return this.color().toRgb()},value:function(value){var self=this;return arguments.length?(self.color().parse(value),void(self._rendered&&self._repaint())):self.color().toHex()},color:function(){return this._color||(this._color=new Color),this._color},renderHtml:function(){function getOldIeFallbackHtml(){var i,l,gradientPrefix,stopsList,html="";for(gradientPrefix="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",stopsList=stops.split(","),i=0,l=stopsList.length-1;l>i;i++)html+='
    ';return html}var hueHtml,self=this,id=self._id,prefix=self.classPrefix,stops="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",gradientCssText="background: -ms-linear-gradient(top,"+stops+");background: linear-gradient(to bottom,"+stops+");";return hueHtml='
    '+getOldIeFallbackHtml()+'
    ','
    '+hueHtml+"
    "}})}),define("tinymce/ui/Path",["tinymce/ui/Widget"],function(Widget){return Widget.extend({init:function(settings){var self=this;settings.delimiter||(settings.delimiter="»"),self._super(settings),self.classes.add("path"),self.canFocus=!0,self.on("click",function(e){var index,target=e.target;(index=target.getAttribute("data-index"))&&self.fire("select",{value:self.row()[index],index:index})}),self.row(self.settings.row)},focus:function(){var self=this;return self.getEl().firstChild.focus(),self},row:function(row){return arguments.length?(this.state.set("row",row),this):this.state.get("row")},renderHtml:function(){var self=this;return'
    '+self._getDataPathHtml(self.state.get("row"))+"
    "},bindStates:function(){var self=this;return self.state.on("change:row",function(e){self.innerHtml(self._getDataPathHtml(e.value))}),self._super()},_getDataPathHtml:function(data){var i,l,self=this,parts=data||[],html="",prefix=self.classPrefix;for(i=0,l=parts.length;l>i;i++)html+=(i>0?'":"")+'
    '+parts[i].name+"
    ";return html||(html='
     
    '),html}})}),define("tinymce/ui/ElementPath",["tinymce/ui/Path","tinymce/EditorManager"],function(Path,EditorManager){return Path.extend({postRender:function(){function isHidden(elm){if(1===elm.nodeType){if("BR"==elm.nodeName||elm.getAttribute("data-mce-bogus"))return!0;if("bookmark"===elm.getAttribute("data-mce-type"))return!0}return!1}var self=this,editor=EditorManager.activeEditor;return editor.settings.elementpath!==!1&&(self.on("select",function(e){editor.focus(),editor.selection.select(this.row()[e.index].element),editor.nodeChanged()}),editor.on("nodeChange",function(e){for(var outParents=[],parents=e.parents,i=parents.length;i--;)if(1==parents[i].nodeType&&!isHidden(parents[i])){var args=editor.fire("ResolveName",{name:parents[i].nodeName.toLowerCase(),target:parents[i]});if(args.isDefaultPrevented()||outParents.push({name:args.name,element:parents[i]}),args.isPropagationStopped())break}self.row(outParents)})),self._super()}})}),define("tinymce/ui/FormItem",["tinymce/ui/Container"],function(Container){return Container.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var self=this,layout=self._layout,prefix=self.classPrefix;return self.classes.add("formitem"),layout.preRender(self),'
    '+(self.settings.title?'
    '+self.settings.title+"
    ":"")+'
    '+(self.settings.html||"")+layout.renderHtml(self)+"
    "}})}),define("tinymce/ui/Form",["tinymce/ui/Container","tinymce/ui/FormItem","tinymce/util/Tools"],function(Container,FormItem,Tools){return Container.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var self=this,items=self.items();self.settings.formItemDefaults||(self.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),items.each(function(ctrl){var formItem,label=ctrl.settings.label;label&&(formItem=new FormItem(Tools.extend({items:{type:"label",id:ctrl._id+"-l",text:label,flex:0,forId:ctrl._id,disabled:ctrl.disabled()}},self.settings.formItemDefaults)),formItem.type="formitem",ctrl.aria("labelledby",ctrl._id+"-l"),"undefined"==typeof ctrl.settings.flex&&(ctrl.settings.flex=1),self.replace(ctrl,formItem),formItem.add(ctrl))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var self=this;self._super(),self.fromJSON(self.settings.data)},bindStates:function(){function recalcLabels(){var i,labelGap,items,maxLabelWidth=0,labels=[];if(self.settings.labelGapCalc!==!1)for(items="children"==self.settings.labelGapCalc?self.find("formitem"):self.items(),items.filter("formitem").each(function(item){var labelCtrl=item.items()[0],labelWidth=labelCtrl.getEl().clientWidth;maxLabelWidth=labelWidth>maxLabelWidth?labelWidth:maxLabelWidth,labels.push(labelCtrl)}),labelGap=self.settings.labelGap||0,i=labels.length;i--;)labels[i].settings.minWidth=maxLabelWidth+labelGap}var self=this;self._super(),self.on("show",recalcLabels),recalcLabels()}})}),define("tinymce/ui/FieldSet",["tinymce/ui/Form"],function(Form){return Form.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var self=this,layout=self._layout,prefix=self.classPrefix;return self.preRender(),layout.preRender(self),'
    '+(self.settings.title?''+self.settings.title+"":"")+'
    '+(self.settings.html||"")+layout.renderHtml(self)+"
    "}})}),define("tinymce/ui/FilePicker",["tinymce/ui/ComboBox","tinymce/util/Tools"],function(ComboBox,Tools){return ComboBox.extend({init:function(settings){var actionCallback,fileBrowserCallback,fileBrowserCallbackTypes,self=this,editor=tinymce.activeEditor,editorSettings=editor.settings;settings.spellcheck=!1,fileBrowserCallbackTypes=editorSettings.file_picker_types||editorSettings.file_browser_callback_types,fileBrowserCallbackTypes&&(fileBrowserCallbackTypes=Tools.makeMap(fileBrowserCallbackTypes,/[, ]/)),fileBrowserCallbackTypes&&!fileBrowserCallbackTypes[settings.filetype]||(fileBrowserCallback=editorSettings.file_picker_callback,!fileBrowserCallback||fileBrowserCallbackTypes&&!fileBrowserCallbackTypes[settings.filetype]?(fileBrowserCallback=editorSettings.file_browser_callback,!fileBrowserCallback||fileBrowserCallbackTypes&&!fileBrowserCallbackTypes[settings.filetype]||(actionCallback=function(){fileBrowserCallback(self.getEl("inp").id,self.value(),settings.filetype,window)})):actionCallback=function(){var meta=self.fire("beforecall").meta;meta=Tools.extend({filetype:settings.filetype},meta),fileBrowserCallback.call(editor,function(value,meta){self.value(value).fire("change",{meta:meta})},self.value(),meta)}),actionCallback&&(settings.icon="browse",settings.onaction=actionCallback),self._super(settings)}})}),define("tinymce/ui/FitLayout",["tinymce/ui/AbsoluteLayout"],function(AbsoluteLayout){return AbsoluteLayout.extend({recalc:function(container){var contLayoutRect=container.layoutRect(),paddingBox=container.paddingBox;container.items().filter(":visible").each(function(ctrl){ctrl.layoutRect({x:paddingBox.left,y:paddingBox.top,w:contLayoutRect.innerW-paddingBox.right-paddingBox.left,h:contLayoutRect.innerH-paddingBox.top-paddingBox.bottom}),ctrl.recalc&&ctrl.recalc()})}})}),define("tinymce/ui/FlexLayout",["tinymce/ui/AbsoluteLayout"],function(AbsoluteLayout){return AbsoluteLayout.extend({recalc:function(container){var i,l,items,contLayoutRect,contPaddingBox,contSettings,align,pack,spacing,totalFlex,availableSpace,direction,ctrl,ctrlLayoutRect,ctrlSettings,flex,size,maxSize,ratio,rect,pos,maxAlignEndPos,sizeName,minSizeName,posName,maxSizeName,beforeName,innerSizeName,deltaSizeName,contentSizeName,alignAxisName,alignInnerSizeName,alignSizeName,alignMinSizeName,alignBeforeName,alignAfterName,alignDeltaSizeName,alignContentSizeName,maxSizeItems=[],max=Math.max,min=Math.min;for(items=container.items().filter(":visible"),contLayoutRect=container.layoutRect(),contPaddingBox=container.paddingBox,contSettings=container.settings,direction=container.isRtl()?contSettings.direction||"row-reversed":contSettings.direction,align=contSettings.align,pack=container.isRtl()?contSettings.pack||"end":contSettings.pack,spacing=contSettings.spacing||0,"row-reversed"!=direction&&"column-reverse"!=direction||(items=items.set(items.toArray().reverse()),direction=direction.split("-")[0]),"column"==direction?(posName="y",sizeName="h",minSizeName="minH",maxSizeName="maxH",innerSizeName="innerH",beforeName="top",deltaSizeName="deltaH",contentSizeName="contentH",alignBeforeName="left",alignSizeName="w",alignAxisName="x",alignInnerSizeName="innerW",alignMinSizeName="minW",alignAfterName="right",alignDeltaSizeName="deltaW",alignContentSizeName="contentW"):(posName="x",sizeName="w",minSizeName="minW",maxSizeName="maxW",innerSizeName="innerW",beforeName="left",deltaSizeName="deltaW",contentSizeName="contentW",alignBeforeName="top",alignSizeName="h",alignAxisName="y",alignInnerSizeName="innerH",alignMinSizeName="minH",alignAfterName="bottom",alignDeltaSizeName="deltaH",alignContentSizeName="contentH"),availableSpace=contLayoutRect[innerSizeName]-contPaddingBox[beforeName]-contPaddingBox[beforeName],maxAlignEndPos=totalFlex=0,i=0,l=items.length;l>i;i++)ctrl=items[i],ctrlLayoutRect=ctrl.layoutRect(),ctrlSettings=ctrl.settings,flex=ctrlSettings.flex,availableSpace-=l-1>i?spacing:0,flex>0&&(totalFlex+=flex,ctrlLayoutRect[maxSizeName]&&maxSizeItems.push(ctrl),ctrlLayoutRect.flex=flex),availableSpace-=ctrlLayoutRect[minSizeName],size=contPaddingBox[alignBeforeName]+ctrlLayoutRect[alignMinSizeName]+contPaddingBox[alignAfterName],size>maxAlignEndPos&&(maxAlignEndPos=size);if(rect={},0>availableSpace?rect[minSizeName]=contLayoutRect[minSizeName]-availableSpace+contLayoutRect[deltaSizeName]:rect[minSizeName]=contLayoutRect[innerSizeName]-availableSpace+contLayoutRect[deltaSizeName],rect[alignMinSizeName]=maxAlignEndPos+contLayoutRect[alignDeltaSizeName],rect[contentSizeName]=contLayoutRect[innerSizeName]-availableSpace,rect[alignContentSizeName]=maxAlignEndPos,rect.minW=min(rect.minW,contLayoutRect.maxW),rect.minH=min(rect.minH,contLayoutRect.maxH),rect.minW=max(rect.minW,contLayoutRect.startMinWidth),rect.minH=max(rect.minH,contLayoutRect.startMinHeight),!contLayoutRect.autoResize||rect.minW==contLayoutRect.minW&&rect.minH==contLayoutRect.minH){for(ratio=availableSpace/totalFlex,i=0,l=maxSizeItems.length;l>i;i++)ctrl=maxSizeItems[i],ctrlLayoutRect=ctrl.layoutRect(),maxSize=ctrlLayoutRect[maxSizeName],size=ctrlLayoutRect[minSizeName]+ctrlLayoutRect.flex*ratio,size>maxSize?(availableSpace-=ctrlLayoutRect[maxSizeName]-ctrlLayoutRect[minSizeName],totalFlex-=ctrlLayoutRect.flex,ctrlLayoutRect.flex=0,ctrlLayoutRect.maxFlexSize=maxSize):ctrlLayoutRect.maxFlexSize=0;for(ratio=availableSpace/totalFlex,pos=contPaddingBox[beforeName],rect={},0===totalFlex&&("end"==pack?pos=availableSpace+contPaddingBox[beforeName]:"center"==pack?(pos=Math.round(contLayoutRect[innerSizeName]/2-(contLayoutRect[innerSizeName]-availableSpace)/2)+contPaddingBox[beforeName],0>pos&&(pos=contPaddingBox[beforeName])):"justify"==pack&&(pos=contPaddingBox[beforeName],spacing=Math.floor(availableSpace/(items.length-1)))),rect[alignAxisName]=contPaddingBox[alignBeforeName],i=0,l=items.length;l>i;i++)ctrl=items[i],ctrlLayoutRect=ctrl.layoutRect(),size=ctrlLayoutRect.maxFlexSize||ctrlLayoutRect[minSizeName],"center"===align?rect[alignAxisName]=Math.round(contLayoutRect[alignInnerSizeName]/2-ctrlLayoutRect[alignSizeName]/2):"stretch"===align?(rect[alignSizeName]=max(ctrlLayoutRect[alignMinSizeName]||0,contLayoutRect[alignInnerSizeName]-contPaddingBox[alignBeforeName]-contPaddingBox[alignAfterName]),rect[alignAxisName]=contPaddingBox[alignBeforeName]):"end"===align&&(rect[alignAxisName]=contLayoutRect[alignInnerSizeName]-ctrlLayoutRect[alignSizeName]-contPaddingBox.top),ctrlLayoutRect.flex>0&&(size+=ctrlLayoutRect.flex*ratio),rect[sizeName]=size,rect[posName]=pos,ctrl.layoutRect(rect),ctrl.recalc&&ctrl.recalc(),pos+=size+spacing}else if(rect.w=rect.minW,rect.h=rect.minH,container.layoutRect(rect),this.recalc(container),null===container._lastRect){var parentCtrl=container.parent();parentCtrl&&(parentCtrl._lastRect=null,parentCtrl.recalc())}}})}),define("tinymce/ui/FlowLayout",["tinymce/ui/Layout"],function(Layout){return Layout.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(container){container.items().filter(":visible").each(function(ctrl){ctrl.recalc&&ctrl.recalc()})},isNative:function(){return!0}})}),define("tinymce/ui/FormatControls",["tinymce/ui/Control","tinymce/ui/Widget","tinymce/ui/FloatPanel","tinymce/util/Tools","tinymce/EditorManager","tinymce/Env"],function(Control,Widget,FloatPanel,Tools,EditorManager,Env){function registerControls(editor){function createListBoxChangeHandler(items,formatName){return function(){var self=this;editor.on("nodeChange",function(e){var formatter=editor.formatter,value=null;each(e.parents,function(node){return each(items,function(item){return formatName?formatter.matchNode(node,formatName,{value:item.value})&&(value=item.value):formatter.matchNode(node,item.value)&&(value=item.value),value?!1:void 0}),value?!1:void 0}),self.value(value)})}}function createFormats(formats){formats=formats.replace(/;$/,"").split(";");for(var i=formats.length;i--;)formats[i]=formats[i].split("=");return formats}function createFormatMenu(){function createMenu(formats){var menu=[];if(formats)return each(formats,function(format){var menuItem={text:format.title,icon:format.icon};if(format.items)menuItem.menu=createMenu(format.items);else{var formatName=format.format||"custom"+count++;format.format||(format.name=formatName,newFormats.push(format)),menuItem.format=formatName,menuItem.cmd=format.cmd}menu.push(menuItem)}),menu}function createStylesMenu(){var menu;return menu=createMenu(editor.settings.style_formats_merge?editor.settings.style_formats?defaultStyleFormats.concat(editor.settings.style_formats):defaultStyleFormats:editor.settings.style_formats||defaultStyleFormats)}var count=0,newFormats=[],defaultStyleFormats=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return editor.on("init",function(){each(newFormats,function(format){editor.formatter.register(format.name,format)})}),{type:"menu",items:createStylesMenu(),onPostRender:function(e){editor.fire("renderFormatsMenu",{control:e.control})},itemDefaults:{preview:!0,textStyle:function(){return this.settings.format?editor.formatter.getCssText(this.settings.format):void 0},onPostRender:function(){var self=this;self.parent().on("show",function(){var formatName,command;formatName=self.settings.format,formatName&&(self.disabled(!editor.formatter.canApply(formatName)),self.active(editor.formatter.match(formatName))),command=self.settings.cmd,command&&self.active(editor.queryCommandState(command))})},onclick:function(){this.settings.format&&toggleFormat(this.settings.format),this.settings.cmd&&editor.execCommand(this.settings.cmd)}}}}function initOnPostRender(name){return function(){var self=this;editor.formatter?editor.formatter.formatChanged(name,function(state){self.active(state)}):editor.on("init",function(){editor.formatter.formatChanged(name,function(state){self.active(state)})})}}function toggleUndoRedoState(type){return function(){function checkState(){return editor.undoManager?editor.undoManager[type]():!1}var self=this;type="redo"==type?"hasRedo":"hasUndo",self.disabled(!checkState()),editor.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){self.disabled(editor.readonly||!checkState())})}}function toggleVisualAidState(){var self=this;editor.on("VisualAid",function(e){self.active(e.hasVisual)}),self.active(editor.hasVisual)}function toggleFormat(fmt){fmt.control&&(fmt=fmt.control.value()),fmt&&editor.execCommand("mceToggleFormat",!1,fmt)}var formatMenu;formatMenu=createFormatMenu(),each({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(text,name){editor.addButton(name,{tooltip:text,onPostRender:initOnPostRender(name),onclick:function(){toggleFormat(name)}})}),each({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(item,name){editor.addButton(name,{tooltip:item[0],cmd:item[1]})}),each({blockquote:["Blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bullet list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(item,name){editor.addButton(name,{tooltip:item[0],cmd:item[1],onPostRender:initOnPostRender(name)})}),editor.addButton("undo",{tooltip:"Undo",onPostRender:toggleUndoRedoState("undo"),cmd:"undo"}),editor.addButton("redo",{tooltip:"Redo",onPostRender:toggleUndoRedoState("redo"),cmd:"redo"}),editor.addMenuItem("newdocument",{text:"New document",icon:"newdocument",cmd:"mceNewDocument"}),editor.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:toggleUndoRedoState("undo"),cmd:"undo"}),editor.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:toggleUndoRedoState("redo"),cmd:"redo"}),editor.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:toggleVisualAidState,cmd:"mceToggleVisualAid"}),editor.addButton("remove",{tooltip:"Remove",icon:"remove",cmd:"Delete"}),each({cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"],bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(item,name){editor.addMenuItem(name,{text:item[0],icon:name,shortcut:item[2],cmd:item[1]})}),editor.on("mousedown",function(){FloatPanel.hideAll()}),editor.addButton("styleselect",{type:"menubutton",text:"Formats",menu:formatMenu}),editor.addButton("formatselect",function(){var items=[],blocks=createFormats(editor.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");return each(blocks,function(block){items.push({text:block[0],value:block[1],textStyle:function(){return editor.formatter.getCssText(block[1])}})}),{type:"listbox",text:blocks[0][0],values:items,fixedWidth:!0,onselect:toggleFormat,onPostRender:createListBoxChangeHandler(items)}}),editor.addButton("fontselect",function(){var defaultFontsFormats="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",items=[],fonts=createFormats(editor.settings.font_formats||defaultFontsFormats);return each(fonts,function(font){items.push({text:{raw:font[0]},value:font[1],textStyle:-1==font[1].indexOf("dings")?"font-family:"+font[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:items,fixedWidth:!0,onPostRender:createListBoxChangeHandler(items,"fontname"),onselect:function(e){e.control.settings.value&&editor.execCommand("FontName",!1,e.control.settings.value)}}}),editor.addButton("fontsizeselect",function(){var items=[],defaultFontsizeFormats="8pt 10pt 12pt 14pt 18pt 24pt 36pt",fontsize_formats=editor.settings.fontsize_formats||defaultFontsizeFormats;return each(fontsize_formats.split(" "),function(item){var text=item,value=item,values=item.split("=");values.length>1&&(text=values[0],value=values[1]),items.push({text:text,value:value})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:items,fixedWidth:!0,onPostRender:createListBoxChangeHandler(items,"fontsize"),onclick:function(e){e.control.settings.value&&editor.execCommand("FontSize",!1,e.control.settings.value)}}}),editor.addMenuItem("formats",{text:"Formats",menu:formatMenu})}var each=Tools.each;EditorManager.on("AddEditor",function(e){e.editor.rtl&&(Control.rtl=!0),registerControls(e.editor)}),Control.translate=function(text){return EditorManager.translate(text)},Widget.tooltips=!Env.iOS}),define("tinymce/ui/GridLayout",["tinymce/ui/AbsoluteLayout"],function(AbsoluteLayout){return AbsoluteLayout.extend({recalc:function(container){var settings,rows,cols,items,contLayoutRect,width,height,rect,ctrlLayoutRect,ctrl,x,y,posX,posY,ctrlSettings,contPaddingBox,align,spacingH,spacingV,alignH,alignV,maxX,maxY,ctrlMinWidth,ctrlMinHeight,availableWidth,availableHeight,reverseRows,idx,colWidths=[],rowHeights=[];settings=container.settings,items=container.items().filter(":visible"),contLayoutRect=container.layoutRect(),cols=settings.columns||Math.ceil(Math.sqrt(items.length)),rows=Math.ceil(items.length/cols),spacingH=settings.spacingH||settings.spacing||0,spacingV=settings.spacingV||settings.spacing||0,alignH=settings.alignH||settings.align,alignV=settings.alignV||settings.align,contPaddingBox=container.paddingBox,reverseRows="reverseRows"in settings?settings.reverseRows:container.isRtl(),alignH&&"string"==typeof alignH&&(alignH=[alignH]),alignV&&"string"==typeof alignV&&(alignV=[alignV]);for(x=0;cols>x;x++)colWidths.push(0);for(y=0;rows>y;y++)rowHeights.push(0);for(y=0;rows>y;y++)for(x=0;cols>x&&(ctrl=items[y*cols+x],ctrl);x++)ctrlLayoutRect=ctrl.layoutRect(),ctrlMinWidth=ctrlLayoutRect.minW,ctrlMinHeight=ctrlLayoutRect.minH,colWidths[x]=ctrlMinWidth>colWidths[x]?ctrlMinWidth:colWidths[x],rowHeights[y]=ctrlMinHeight>rowHeights[y]?ctrlMinHeight:rowHeights[y];for(availableWidth=contLayoutRect.innerW-contPaddingBox.left-contPaddingBox.right,maxX=0,x=0;cols>x;x++)maxX+=colWidths[x]+(x>0?spacingH:0),availableWidth-=(x>0?spacingH:0)+colWidths[x];for(availableHeight=contLayoutRect.innerH-contPaddingBox.top-contPaddingBox.bottom,maxY=0,y=0;rows>y;y++)maxY+=rowHeights[y]+(y>0?spacingV:0),availableHeight-=(y>0?spacingV:0)+rowHeights[y];if(maxX+=contPaddingBox.left+contPaddingBox.right,maxY+=contPaddingBox.top+contPaddingBox.bottom,rect={},rect.minW=maxX+(contLayoutRect.w-contLayoutRect.innerW),rect.minH=maxY+(contLayoutRect.h-contLayoutRect.innerH),rect.contentW=rect.minW-contLayoutRect.deltaW,rect.contentH=rect.minH-contLayoutRect.deltaH,rect.minW=Math.min(rect.minW,contLayoutRect.maxW),rect.minH=Math.min(rect.minH,contLayoutRect.maxH),rect.minW=Math.max(rect.minW,contLayoutRect.startMinWidth),rect.minH=Math.max(rect.minH,contLayoutRect.startMinHeight),!contLayoutRect.autoResize||rect.minW==contLayoutRect.minW&&rect.minH==contLayoutRect.minH){contLayoutRect.autoResize&&(rect=container.layoutRect(rect),rect.contentW=rect.minW-contLayoutRect.deltaW,rect.contentH=rect.minH-contLayoutRect.deltaH);var flexV;flexV="start"==settings.packV?0:availableHeight>0?Math.floor(availableHeight/rows):0;var totalFlex=0,flexWidths=settings.flexWidths; +if(flexWidths)for(x=0;xx;x++)colWidths[x]+=flexWidths?flexWidths[x]*ratio:ratio;for(posY=contPaddingBox.top,y=0;rows>y;y++){for(posX=contPaddingBox.left,height=rowHeights[y]+flexV,x=0;cols>x&&(idx=reverseRows?y*cols+cols-1-x:y*cols+x,ctrl=items[idx],ctrl);x++)ctrlSettings=ctrl.settings,ctrlLayoutRect=ctrl.layoutRect(),width=Math.max(colWidths[x],ctrlLayoutRect.startMinWidth),ctrlLayoutRect.x=posX,ctrlLayoutRect.y=posY,align=ctrlSettings.alignH||(alignH?alignH[x]||alignH[0]:null),"center"==align?ctrlLayoutRect.x=posX+width/2-ctrlLayoutRect.w/2:"right"==align?ctrlLayoutRect.x=posX+width-ctrlLayoutRect.w:"stretch"==align&&(ctrlLayoutRect.w=width),align=ctrlSettings.alignV||(alignV?alignV[x]||alignV[0]:null),"center"==align?ctrlLayoutRect.y=posY+height/2-ctrlLayoutRect.h/2:"bottom"==align?ctrlLayoutRect.y=posY+height-ctrlLayoutRect.h:"stretch"==align&&(ctrlLayoutRect.h=height),ctrl.layoutRect(ctrlLayoutRect),posX+=width+spacingH,ctrl.recalc&&ctrl.recalc();posY+=height+spacingV}}else if(rect.w=rect.minW,rect.h=rect.minH,container.layoutRect(rect),this.recalc(container),null===container._lastRect){var parentCtrl=container.parent();parentCtrl&&(parentCtrl._lastRect=null,parentCtrl.recalc())}}})}),define("tinymce/ui/Iframe",["tinymce/ui/Widget","tinymce/util/Delay"],function(Widget,Delay){return Widget.extend({renderHtml:function(){var self=this;return self.classes.add("iframe"),self.canFocus=!1,''},src:function(src){this.getEl().src=src},html:function(html,callback){var self=this,body=this.getEl().contentWindow.document.body;return body?(body.innerHTML=html,callback&&callback()):Delay.setTimeout(function(){self.html(html)}),this}})}),define("tinymce/ui/Label",["tinymce/ui/Widget","tinymce/ui/DomUtils"],function(Widget,DomUtils){return Widget.extend({init:function(settings){var self=this;self._super(settings),self.classes.add("widget").add("label"),self.canFocus=!1,settings.multiline&&self.classes.add("autoscroll"),settings.strong&&self.classes.add("strong")},initLayoutRect:function(){var self=this,layoutRect=self._super();if(self.settings.multiline){var size=DomUtils.getSize(self.getEl());size.width>layoutRect.maxW&&(layoutRect.minW=layoutRect.maxW,self.classes.add("multiline")),self.getEl().style.width=layoutRect.minW+"px",layoutRect.startMinH=layoutRect.h=layoutRect.minH=Math.min(layoutRect.maxH,DomUtils.getSize(self.getEl()).height)}return layoutRect},repaint:function(){var self=this;return self.settings.multiline||(self.getEl().style.lineHeight=self.layoutRect().h+"px"),self._super()},renderHtml:function(){var self=this,forId=self.settings.forId;return'"},bindStates:function(){var self=this;return self.state.on("change:text",function(e){self.innerHtml(self.encode(e.value))}),self._super()}})}),define("tinymce/ui/Toolbar",["tinymce/ui/Container"],function(Container){return Container.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(settings){var self=this;self._super(settings),self.classes.add("toolbar")},postRender:function(){var self=this;return self.items().each(function(ctrl){ctrl.classes.add("toolbar-item")}),self._super()}})}),define("tinymce/ui/MenuBar",["tinymce/ui/Toolbar"],function(Toolbar){return Toolbar.extend({Defaults:{role:"menubar",containerCls:"menubar",ariaRoot:!0,defaults:{type:"menubutton"}}})}),define("tinymce/ui/MenuButton",["tinymce/ui/Button","tinymce/ui/Factory","tinymce/ui/MenuBar"],function(Button,Factory,MenuBar){function isChildOf(node,parent){for(;node;){if(parent===node)return!0;node=node.parentNode}return!1}var MenuButton=Button.extend({init:function(settings){var self=this;self._renderOpen=!0,self._super(settings),settings=self.settings,self.classes.add("menubtn"),settings.fixedWidth&&self.classes.add("fixed-width"),self.aria("haspopup",!0),self.state.set("menu",settings.menu||self.render())},showMenu:function(){var menu,self=this;return self.menu&&self.menu.visible()?self.hideMenu():(self.menu||(menu=self.state.get("menu")||[],menu.length?menu={type:"menu",items:menu}:menu.type=menu.type||"menu",menu.renderTo?self.menu=menu.parent(self).show().renderTo():self.menu=Factory.create(menu).parent(self).renderTo(),self.fire("createmenu"),self.menu.reflow(),self.menu.on("cancel",function(e){e.control.parent()===self.menu&&(e.stopPropagation(),self.focus(),self.hideMenu())}),self.menu.on("select",function(){self.focus()}),self.menu.on("show hide",function(e){e.control==self.menu&&self.activeMenu("show"==e.type),self.aria("expanded","show"==e.type)}).fire("show")),self.menu.show(),self.menu.layoutRect({w:self.layoutRect().w}),void self.menu.moveRel(self.getEl(),self.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"]))},hideMenu:function(){var self=this;self.menu&&(self.menu.items().each(function(item){item.hideMenu&&item.hideMenu()}),self.menu.hide())},activeMenu:function(state){this.classes.toggle("active",state)},renderHtml:function(){var image,self=this,id=self._id,prefix=self.classPrefix,icon=self.settings.icon,text=self.state.get("text"),textHtml="";return image=self.settings.image,image?(icon="none","string"!=typeof image&&(image=window.getSelection?image[0]:image[1]),image=" style=\"background-image: url('"+image+"')\""):image="",text&&(self.classes.add("btn-has-text"),textHtml=''+self.encode(text)+""),icon=self.settings.icon?prefix+"ico "+prefix+"i-"+icon:"",self.aria("role",self.parent()instanceof MenuBar?"menuitem":"button"),'
    '},postRender:function(){var self=this;return self.on("click",function(e){e.control===self&&isChildOf(e.target,self.getEl())&&(self.showMenu(),e.aria&&self.menu.items()[0].focus())}),self.on("mouseenter",function(e){var hasVisibleSiblingMenu,overCtrl=e.control,parent=self.parent();overCtrl&&parent&&overCtrl instanceof MenuButton&&overCtrl.parent()==parent&&(parent.items().filter("MenuButton").each(function(ctrl){ctrl.hideMenu&&ctrl!=overCtrl&&(ctrl.menu&&ctrl.menu.visible()&&(hasVisibleSiblingMenu=!0),ctrl.hideMenu())}),hasVisibleSiblingMenu&&(overCtrl.focus(),overCtrl.showMenu()))}),self._super()},bindStates:function(){var self=this;return self.state.on("change:menu",function(){self.menu&&self.menu.remove(),self.menu=null}),self._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}});return MenuButton}),define("tinymce/ui/MenuItem",["tinymce/ui/Widget","tinymce/ui/Factory","tinymce/Env","tinymce/util/Delay"],function(Widget,Factory,Env,Delay){return Widget.extend({Defaults:{border:0,role:"menuitem"},init:function(settings){var text,self=this;self._super(settings),settings=self.settings,self.classes.add("menu-item"),settings.menu&&self.classes.add("menu-item-expand"),settings.preview&&self.classes.add("menu-item-preview"),text=self.state.get("text"),"-"!==text&&"|"!==text||(self.classes.add("menu-item-sep"),self.aria("role","separator"),self.state.set("text","-")),settings.selectable&&(self.aria("role","menuitemcheckbox"),self.classes.add("menu-item-checkbox"),settings.icon="selected"),settings.preview||settings.selectable||self.classes.add("menu-item-normal"),self.on("mousedown",function(e){e.preventDefault()}),settings.menu&&!settings.ariaHideMenu&&self.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var menu,self=this,settings=self.settings,parent=self.parent();if(parent.items().each(function(ctrl){ctrl!==self&&ctrl.hideMenu()}),settings.menu){menu=self.menu,menu?menu.show():(menu=settings.menu,menu.length?menu={type:"menu",items:menu}:menu.type=menu.type||"menu",parent.settings.itemDefaults&&(menu.itemDefaults=parent.settings.itemDefaults),menu=self.menu=Factory.create(menu).parent(self).renderTo(),menu.reflow(),menu.on("cancel",function(e){e.stopPropagation(),self.focus(),menu.hide()}),menu.on("show hide",function(e){e.control.items().each(function(ctrl){ctrl.active(ctrl.settings.selected)})}).fire("show"),menu.on("hide",function(e){e.control===menu&&self.classes.remove("selected")}),menu.submenu=!0),menu._parentMenu=parent,menu.classes.add("menu-sub");var rel=menu.testMoveRel(self.getEl(),self.isRtl()?["tl-tr","bl-br","tr-tl","br-bl"]:["tr-tl","br-bl","tl-tr","bl-br"]);menu.moveRel(self.getEl(),rel),menu.rel=rel,rel="menu-sub-"+rel,menu.classes.remove(menu._lastRel).add(rel),menu._lastRel=rel,self.classes.add("selected"),self.aria("expanded",!0)}},hideMenu:function(){var self=this;return self.menu&&(self.menu.items().each(function(item){item.hideMenu&&item.hideMenu()}),self.menu.hide(),self.aria("expanded",!1)),self},renderHtml:function(){function convertShortcut(shortcut){var i,value,replace={};for(replace=Env.mac?{alt:"⌥",ctrl:"⌘",shift:"⇧",meta:"⌘"}:{meta:"Ctrl"},shortcut=shortcut.split("+"),i=0;i'+("-"!==text?' ":"")+("-"!==text?''+text+"":"")+(shortcut?'
    '+shortcut+"
    ":"")+(settings.menu?'
    ':"")+"
    "},postRender:function(){var self=this,settings=self.settings,textStyle=settings.textStyle;if("function"==typeof textStyle&&(textStyle=textStyle.call(this)),textStyle){var textElm=self.getEl("text");textElm&&textElm.setAttribute("style",textStyle)}return self.on("mouseenter click",function(e){e.control===self&&(settings.menu||"click"!==e.type?(self.showMenu(),e.aria&&self.menu.focus(!0)):(self.fire("select"),Delay.requestAnimationFrame(function(){self.parent().hideAll()})))}),self._super(),self},hover:function(){var self=this;return self.parent().items().each(function(ctrl){ctrl.classes.remove("selected")}),self.classes.toggle("selected",!0),self},active:function(state){return"undefined"!=typeof state&&this.aria("checked",state),this._super(state)},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),define("tinymce/ui/Throbber",["tinymce/dom/DomQuery","tinymce/ui/Control","tinymce/util/Delay"],function($,Control,Delay){return function(elm,inline){var state,timer,self=this,classPrefix=Control.classPrefix;self.show=function(time,callback){function render(){state&&($(elm).append('
    '),callback&&callback())}return self.hide(),state=!0,time?timer=Delay.setTimeout(render,time):render(),self},self.hide=function(){var child=elm.lastChild;return Delay.clearTimeout(timer),child&&-1!=child.className.indexOf("throbber")&&child.parentNode.removeChild(child),state=!1,self}}}),define("tinymce/ui/Menu",["tinymce/ui/FloatPanel","tinymce/ui/MenuItem","tinymce/ui/Throbber","tinymce/util/Tools"],function(FloatPanel,MenuItem,Throbber,Tools){return FloatPanel.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"application",bodyRole:"menu",ariaRoot:!0},init:function(settings){var self=this;if(settings.autohide=!0,settings.constrainToViewport=!0,"function"==typeof settings.items&&(settings.itemsFactory=settings.items,settings.items=[]),settings.itemDefaults)for(var items=settings.items,i=items.length;i--;)items[i]=Tools.extend({},settings.itemDefaults,items[i]);self._super(settings),self.classes.add("menu")},repaint:function(){return this.classes.toggle("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var self=this;self.hideAll(),self.fire("select")},load:function(){function hideThrobber(){self.throbber&&(self.throbber.hide(),self.throbber=null)}var time,factory,self=this;factory=self.settings.itemsFactory,factory&&(self.throbber||(self.throbber=new Throbber(self.getEl("body"),!0),0===self.items().length?(self.throbber.show(),self.fire("loading")):self.throbber.show(100,function(){self.items().remove(),self.fire("loading")}),self.on("hide close",hideThrobber)),self.requestTime=time=(new Date).getTime(),self.settings.itemsFactory(function(items){return 0===items.length?void self.hide():void(self.requestTime===time&&(self.getEl().style.width="",self.getEl("body").style.width="",hideThrobber(),self.items().remove(),self.getEl("body").innerHTML="",self.add(items),self.renderNew(),self.fire("loaded")))}))},hideAll:function(){var self=this;return this.find("menuitem").exec("hideMenu"),self._super()},preRender:function(){var self=this;return self.items().each(function(ctrl){var settings=ctrl.settings;return settings.icon||settings.image||settings.selectable?(self._hasIcons=!0,!1):void 0}),self.settings.itemsFactory&&self.on("postrender",function(){self.settings.itemsFactory&&self.load()}),self._super()}})}),define("tinymce/ui/ListBox",["tinymce/ui/MenuButton","tinymce/ui/Menu"],function(MenuButton,Menu){return MenuButton.extend({init:function(settings){function setSelected(menuValues){for(var i=0;i0&&(selectedText=values[0].text,self.state.set("value",values[0].value)),self.state.set("menu",values)),self.state.set("text",settings.text||selectedText),self.classes.add("listbox"),self.on("select",function(e){var ctrl=e.control;lastItemCtrl&&(e.lastControl=lastItemCtrl),settings.multiple?ctrl.active(!ctrl.active()):self.value(e.control.value()),lastItemCtrl=ctrl})},bindStates:function(){function activateMenuItemsByValue(menu,value){menu instanceof Menu&&menu.items().each(function(ctrl){ctrl.hasMenus()||ctrl.active(ctrl.value()===value)})}function getSelectedItem(menuValues,value){var selectedItem;if(menuValues)for(var i=0;i
    '},postRender:function(){var self=this;self._super(),self.resizeDragHelper=new DragHelper(this._id,{start:function(){self.fire("ResizeStart")},drag:function(e){"both"!=self.settings.direction&&(e.deltaX=0),self.fire("Resize",e)},stop:function(){self.fire("ResizeEnd")}})},remove:function(){return this.resizeDragHelper&&this.resizeDragHelper.destroy(),this._super()}})}),define("tinymce/ui/SelectBox",["tinymce/ui/Widget"],function(Widget){function createOptions(options){var strOptions="";if(options)for(var i=0;i'+options[i]+"";return strOptions}return Widget.extend({Defaults:{classes:"selectbox",role:"selectbox",options:[]},init:function(settings){var self=this;self._super(settings),self.settings.size&&(self.size=self.settings.size),self.settings.options&&(self._options=self.settings.options)},options:function(state){return arguments.length?(this.state.set("options",state),this):this.state.get("options")},renderHtml:function(){var options,self=this,size="";return options=createOptions(self._options),self.size&&(size=' size = "'+self.size+'"'),'"},bindStates:function(){var self=this;return self.state.on("change:options",function(e){self.getEl().innerHTML=createOptions(e.value)}),self._super()}})}),define("tinymce/ui/Slider",["tinymce/ui/Widget","tinymce/ui/DragHelper","tinymce/ui/DomUtils"],function(Widget,DragHelper,DomUtils){function constrain(value,minVal,maxVal){return minVal>value&&(value=minVal),value>maxVal&&(value=maxVal),value}function updateSliderHandle(ctrl,value){var maxHandlePos,shortSizeName,sizeName,stylePosName,styleValue;"v"==ctrl.settings.orientation?(stylePosName="top",sizeName="height",shortSizeName="h"):(stylePosName="left",sizeName="width",shortSizeName="w"),maxHandlePos=(ctrl.layoutRect()[shortSizeName]||100)-DomUtils.getSize(ctrl.getEl("handle"))[sizeName],styleValue=maxHandlePos*((value-ctrl._minValue)/(ctrl._maxValue-ctrl._minValue))+"px",ctrl.getEl("handle").style[stylePosName]=styleValue,ctrl.getEl("handle").style.height=ctrl.layoutRect().h+"px"}return Widget.extend({init:function(settings){var self=this;settings.previewFilter||(settings.previewFilter=function(value){return Math.round(100*value)/100}),self._super(settings),self.classes.add("slider"),"v"==settings.orientation&&self.classes.add("vertical"),self._minValue=settings.minValue||0,self._maxValue=settings.maxValue||100,self._initValue=self.state.get("value")},renderHtml:function(){var self=this,id=self._id,prefix=self.classPrefix;return'
    '},reset:function(){this.value(this._initValue).repaint()},postRender:function(){var startPos,startHandlePos,value,minValue,maxValue,maxHandlePos,screenCordName,stylePosName,sizeName,shortSizeName,self=this,handlePos=0;minValue=self._minValue,maxValue=self._maxValue,value=self.value(),"v"==self.settings.orientation?(screenCordName="screenY",stylePosName="top",sizeName="height",shortSizeName="h"):(screenCordName="screenX",stylePosName="left",sizeName="width",shortSizeName="w"),self._super(),self._dragHelper=new DragHelper(self._id,{handle:self._id+"-handle",start:function(e){startPos=e[screenCordName],startHandlePos=parseInt(self.getEl("handle").style[stylePosName],10),maxHandlePos=(self.layoutRect()[shortSizeName]||100)-DomUtils.getSize(self.getEl("handle"))[sizeName],self.fire("dragstart",{value:value})},drag:function(e){var delta=e[screenCordName]-startPos,handleEl=self.getEl("handle");handlePos=constrain(startHandlePos+delta,0,maxHandlePos),handleEl.style[stylePosName]=handlePos+"px",value=minValue+handlePos/maxHandlePos*(maxValue-minValue),self.value(value),self.tooltip().text(""+self.settings.previewFilter(value)).show().moveRel(handleEl,"bc tc"),self.fire("drag",{value:value})},stop:function(){self.tooltip().hide(),self.fire("dragend",{value:value})}})},repaint:function(){this._super(),updateSliderHandle(this,this.value())},bindStates:function(){var self=this;return self.state.on("change:value",function(e){updateSliderHandle(self,e.value)}),self._super()}})}),define("tinymce/ui/Spacer",["tinymce/ui/Widget"],function(Widget){return Widget.extend({renderHtml:function(){var self=this;return self.classes.add("spacer"),self.canFocus=!1,'
    '}})}),define("tinymce/ui/SplitButton",["tinymce/ui/MenuButton","tinymce/ui/DomUtils","tinymce/dom/DomQuery"],function(MenuButton,DomUtils,$){return MenuButton.extend({Defaults:{classes:"widget btn splitbtn",role:"button"},repaint:function(){var mainButtonElm,menuButtonElm,self=this,elm=self.getEl(),rect=self.layoutRect();return self._super(),mainButtonElm=elm.firstChild,menuButtonElm=elm.lastChild,$(mainButtonElm).css({width:rect.w-DomUtils.getSize(menuButtonElm).width,height:rect.h-2}),$(menuButtonElm).css({height:rect.h-2}),self},activeMenu:function(state){var self=this;$(self.getEl().lastChild).toggleClass(self.classPrefix+"active",state)},renderHtml:function(){var image,self=this,id=self._id,prefix=self.classPrefix,icon=self.state.get("icon"),text=self.state.get("text"),textHtml="";return image=self.settings.image,image?(icon="none","string"!=typeof image&&(image=window.getSelection?image[0]:image[1]),image=" style=\"background-image: url('"+image+"')\""):image="",icon=self.settings.icon?prefix+"ico "+prefix+"i-"+icon:"",text&&(self.classes.add("btn-has-text"),textHtml=''+self.encode(text)+""),'
    '},postRender:function(){var self=this,onClickHandler=self.settings.onclick;return self.on("click",function(e){var node=e.target;if(e.control==this)for(;node;){if(e.aria&&"down"!=e.aria.key||"BUTTON"==node.nodeName&&-1==node.className.indexOf("open"))return e.stopImmediatePropagation(),void(onClickHandler&&onClickHandler.call(this,e));node=node.parentNode}}),delete self.settings.onclick,self._super()}})}),define("tinymce/ui/StackLayout",["tinymce/ui/FlowLayout"],function(FlowLayout){return FlowLayout.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"},isNative:function(){return!0}})}),define("tinymce/ui/TabPanel",["tinymce/ui/Panel","tinymce/dom/DomQuery","tinymce/ui/DomUtils"],function(Panel,$,DomUtils){return Panel.extend({Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(idx){var activeTabElm;this.activeTabId&&(activeTabElm=this.getEl(this.activeTabId),$(activeTabElm).removeClass(this.classPrefix+"active"),activeTabElm.setAttribute("aria-selected","false")),this.activeTabId="t"+idx,activeTabElm=this.getEl("t"+idx),activeTabElm.setAttribute("aria-selected","true"),$(activeTabElm).addClass(this.classPrefix+"active"),this.items()[idx].show().fire("showtab"),this.reflow(),this.items().each(function(item,i){idx!=i&&item.hide()})},renderHtml:function(){var self=this,layout=self._layout,tabsHtml="",prefix=self.classPrefix;return self.preRender(),layout.preRender(self),self.items().each(function(ctrl,i){var id=self._id+"-t"+i;ctrl.aria("role","tabpanel"),ctrl.aria("labelledby",id),tabsHtml+='"}),'
    '+tabsHtml+'
    '+layout.renderHtml(self)+"
    "},postRender:function(){var self=this;self._super(),self.settings.activeTab=self.settings.activeTab||0,self.activateTab(self.settings.activeTab),this.on("click",function(e){var targetParent=e.target.parentNode;if(e.target.parentNode.id==self._id+"-head")for(var i=targetParent.childNodes.length;i--;)targetParent.childNodes[i]==e.target&&self.activateTab(i)})},initLayoutRect:function(){var rect,minW,minH,self=this;minW=DomUtils.getSize(self.getEl("head")).width,minW=0>minW?0:minW,minH=0,self.items().each(function(item){minW=Math.max(minW,item.layoutRect().minW),minH=Math.max(minH,item.layoutRect().minH)}),self.items().each(function(ctrl){ctrl.settings.x=0,ctrl.settings.y=0,ctrl.settings.w=minW,ctrl.settings.h=minH,ctrl.layoutRect({x:0,y:0,w:minW,h:minH})});var headH=DomUtils.getSize(self.getEl("head")).height;return self.settings.minWidth=minW,self.settings.minHeight=minH+headH,rect=self._super(),rect.deltaH+=headH,rect.innerH=rect.h-rect.deltaH,rect}})}),define("tinymce/ui/TextBox",["tinymce/ui/Widget"],function(Widget){return Widget.extend({init:function(settings){var self=this;self._super(settings),self.classes.add("textbox"),settings.multiline?self.classes.add("multiline"):(self.on("keydown",function(e){var rootControl;13==e.keyCode&&(e.preventDefault(),self.parents().reverse().each(function(ctrl){return ctrl.toJSON?(rootControl=ctrl,!1):void 0}),self.fire("submit",{data:rootControl.toJSON()}))}),self.on("keyup",function(e){self.state.set("value",e.target.value)}))},repaint:function(){var style,rect,borderBox,borderW,lastRepaintRect,self=this,borderH=0;style=self.getEl().style,rect=self._layoutRect,lastRepaintRect=self._lastRepaintRect||{};var doc=document;return!self.settings.multiline&&doc.all&&(!doc.documentMode||doc.documentMode<=8)&&(style.lineHeight=rect.h-borderH+"px"),borderBox=self.borderBox,borderW=borderBox.left+borderBox.right+8,borderH=borderBox.top+borderBox.bottom+(self.settings.multiline?8:0),rect.x!==lastRepaintRect.x&&(style.left=rect.x+"px",lastRepaintRect.x=rect.x),rect.y!==lastRepaintRect.y&&(style.top=rect.y+"px",lastRepaintRect.y=rect.y),rect.w!==lastRepaintRect.w&&(style.width=rect.w-borderW+"px",lastRepaintRect.w=rect.w),rect.h!==lastRepaintRect.h&&(style.height=rect.h-borderH+"px",lastRepaintRect.h=rect.h),self._lastRepaintRect=lastRepaintRect,self.fire("repaint",{},!1),self},renderHtml:function(){var self=this,id=self._id,settings=self.settings,value=self.encode(self.state.get("value"),!1),extraAttrs="";return"spellcheck"in settings&&(extraAttrs+=' spellcheck="'+settings.spellcheck+'"'),settings.maxLength&&(extraAttrs+=' maxlength="'+settings.maxLength+'"'),settings.size&&(extraAttrs+=' size="'+settings.size+'"'),settings.subtype&&(extraAttrs+=' type="'+settings.subtype+'"'),self.disabled()&&(extraAttrs+=' disabled="disabled"'),settings.multiline?'":'"},value:function(value){return arguments.length?(this.state.set("value",value),this):(this.state.get("rendered")&&this.state.set("value",this.getEl().value),this.state.get("value"))},postRender:function(){var self=this;self._super(),self.$el.on("change",function(e){self.state.set("value",e.target.value),self.fire("change",e)})},bindStates:function(){var self=this;return self.state.on("change:value",function(e){self.getEl().value!=e.value&&(self.getEl().value=e.value)}),self.state.on("change:disabled",function(e){self.getEl().disabled=e.value}),self._super()},remove:function(){this.$el.off(),this._super()}})}),expose(["tinymce/geom/Rect","tinymce/util/Promise","tinymce/util/Delay","tinymce/dom/EventUtils","tinymce/dom/Sizzle","tinymce/Env","tinymce/util/Tools","tinymce/dom/DomQuery","tinymce/html/Styles","tinymce/dom/TreeWalker","tinymce/html/Entities","tinymce/dom/DOMUtils","tinymce/dom/ScriptLoader","tinymce/AddOnManager","tinymce/dom/RangeUtils","tinymce/html/Node","tinymce/html/Schema","tinymce/html/SaxParser","tinymce/html/DomParser","tinymce/html/Writer","tinymce/html/Serializer","tinymce/dom/Serializer","tinymce/util/VK","tinymce/dom/ControlSelection","tinymce/dom/BookmarkManager","tinymce/dom/Selection","tinymce/Formatter","tinymce/UndoManager","tinymce/EditorCommands","tinymce/util/URI","tinymce/util/Class","tinymce/util/EventDispatcher","tinymce/util/Observable","tinymce/ui/Selector","tinymce/ui/Collection","tinymce/ui/ReflowQueue","tinymce/ui/Control","tinymce/ui/Factory","tinymce/ui/KeyboardNavigation","tinymce/ui/Container","tinymce/ui/DragHelper","tinymce/ui/Scrollable","tinymce/ui/Panel","tinymce/ui/Movable","tinymce/ui/Resizable","tinymce/ui/FloatPanel","tinymce/ui/Window","tinymce/ui/MessageBox","tinymce/WindowManager","tinymce/ui/Tooltip","tinymce/ui/Widget","tinymce/ui/Progress","tinymce/ui/Notification","tinymce/NotificationManager","tinymce/EditorObservable","tinymce/Shortcuts","tinymce/Editor","tinymce/util/I18n","tinymce/FocusManager","tinymce/EditorManager","tinymce/util/XHR","tinymce/util/JSON","tinymce/util/JSONRequest","tinymce/util/JSONP","tinymce/util/LocalStorage","tinymce/Compat","tinymce/ui/Layout","tinymce/ui/AbsoluteLayout","tinymce/ui/Button","tinymce/ui/ButtonGroup","tinymce/ui/Checkbox","tinymce/ui/ComboBox","tinymce/ui/ColorBox","tinymce/ui/PanelButton","tinymce/ui/ColorButton","tinymce/util/Color","tinymce/ui/ColorPicker","tinymce/ui/Path","tinymce/ui/ElementPath","tinymce/ui/FormItem","tinymce/ui/Form","tinymce/ui/FieldSet","tinymce/ui/FilePicker","tinymce/ui/FitLayout","tinymce/ui/FlexLayout","tinymce/ui/FlowLayout","tinymce/ui/FormatControls","tinymce/ui/GridLayout","tinymce/ui/Iframe","tinymce/ui/Label","tinymce/ui/Toolbar","tinymce/ui/MenuBar","tinymce/ui/MenuButton","tinymce/ui/MenuItem","tinymce/ui/Throbber","tinymce/ui/Menu","tinymce/ui/ListBox","tinymce/ui/Radio","tinymce/ui/ResizeHandle","tinymce/ui/SelectBox","tinymce/ui/Slider","tinymce/ui/Spacer","tinymce/ui/SplitButton","tinymce/ui/StackLayout","tinymce/ui/TabPanel","tinymce/ui/TextBox"])}(this),function(){return this.tinyMCE.DOM.events.domLoaded=!0,this.tinyMCE}.apply(this,arguments)||window.tinyMCE}.apply(root,arguments)})}(this),define("text",["module"],function(module){"use strict";var text,fs,Cc,Ci,xpcIsWindows,progIds=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],xmlRegExp=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,bodyRegExp=/]*>\s*([\s\S]+)\s*<\/body>/im,hasLocation="undefined"!=typeof location&&location.href,defaultProtocol=hasLocation&&location.protocol&&location.protocol.replace(/\:/,""),defaultHostName=hasLocation&&location.hostname,defaultPort=hasLocation&&(location.port||void 0),buildMap={},masterConfig=module.config&&module.config()||{};return text={version:"2.0.12",strip:function(content){if(content){content=content.replace(xmlRegExp,"");var matches=content.match(bodyRegExp);matches&&(content=matches[1])}else content="";return content},jsEscape:function(content){return content.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:masterConfig.createXhr||function(){var xhr,i,progId;if("undefined"!=typeof XMLHttpRequest)return new XMLHttpRequest;if("undefined"!=typeof ActiveXObject)for(i=0;3>i;i+=1){progId=progIds[i];try{xhr=new ActiveXObject(progId)}catch(e){}if(xhr){progIds=[progId];break}}return xhr},parseName:function(name){var modName,ext,temp,strip=!1,index=name.indexOf("."),isRelative=0===name.indexOf("./")||0===name.indexOf("../");return-1!==index&&(!isRelative||index>1)?(modName=name.substring(0,index),ext=name.substring(index+1,name.length)):modName=name,temp=ext||modName,index=temp.indexOf("!"),-1!==index&&(strip="strip"===temp.substring(index+1),temp=temp.substring(0,index),ext?ext=temp:modName=temp), +{moduleName:modName,ext:ext,strip:strip}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(url,protocol,hostname,port){var uProtocol,uHostName,uPort,match=text.xdRegExp.exec(url);return match?(uProtocol=match[2],uHostName=match[3],uHostName=uHostName.split(":"),uPort=uHostName[1],uHostName=uHostName[0],!(uProtocol&&uProtocol!==protocol||uHostName&&uHostName.toLowerCase()!==hostname.toLowerCase()||(uPort||uHostName)&&uPort!==port)):!0},finishLoad:function(name,strip,content,onLoad){content=strip?text.strip(content):content,masterConfig.isBuild&&(buildMap[name]=content),onLoad(content)},load:function(name,req,onLoad,config){if(config&&config.isBuild&&!config.inlineText)return void onLoad();masterConfig.isBuild=config&&config.isBuild;var parsed=text.parseName(name),nonStripName=parsed.moduleName+(parsed.ext?"."+parsed.ext:""),url=req.toUrl(nonStripName),useXhr=masterConfig.useXhr||text.useXhr;return 0===url.indexOf("empty:")?void onLoad():void(!hasLocation||useXhr(url,defaultProtocol,defaultHostName,defaultPort)?text.get(url,function(content){text.finishLoad(name,parsed.strip,content,onLoad)},function(err){onLoad.error&&onLoad.error(err)}):req([nonStripName],function(content){text.finishLoad(parsed.moduleName+"."+parsed.ext,parsed.strip,content,onLoad)}))},write:function(pluginName,moduleName,write,config){if(buildMap.hasOwnProperty(moduleName)){var content=text.jsEscape(buildMap[moduleName]);write.asModule(pluginName+"!"+moduleName,"define(function () { return '"+content+"';});\n")}},writeFile:function(pluginName,moduleName,req,write,config){var parsed=text.parseName(moduleName),extPart=parsed.ext?"."+parsed.ext:"",nonStripName=parsed.moduleName+extPart,fileName=req.toUrl(parsed.moduleName+extPart)+".js";text.load(nonStripName,req,function(value){var textWrite=function(contents){return write(fileName,contents)};textWrite.asModule=function(moduleName,contents){return write.asModule(moduleName,fileName,contents)},text.write(pluginName,nonStripName,textWrite,config)},config)}},"node"===masterConfig.env||!masterConfig.env&&"undefined"!=typeof process&&process.versions&&process.versions.node&&!process.versions["node-webkit"]?(fs=require.nodeRequire("fs"),text.get=function(url,callback,errback){try{var file=fs.readFileSync(url,"utf8");0===file.indexOf("\ufeff")&&(file=file.substring(1)),callback(file)}catch(e){errback&&errback(e)}}):"xhr"===masterConfig.env||!masterConfig.env&&text.createXhr()?text.get=function(url,callback,errback,headers){var header,xhr=text.createXhr();if(xhr.open("GET",url,!0),headers)for(header in headers)headers.hasOwnProperty(header)&&xhr.setRequestHeader(header.toLowerCase(),headers[header]);masterConfig.onXhr&&masterConfig.onXhr(xhr,url),xhr.onreadystatechange=function(evt){var status,err;4===xhr.readyState&&(status=xhr.status||0,status>399&&600>status?(err=new Error(url+" HTTP status: "+status),err.xhr=xhr,errback&&errback(err)):callback(xhr.responseText),masterConfig.onXhrComplete&&masterConfig.onXhrComplete(xhr,url))},xhr.send(null)}:"rhino"===masterConfig.env||!masterConfig.env&&"undefined"!=typeof Packages&&"undefined"!=typeof java?text.get=function(url,callback){var stringBuffer,line,encoding="utf-8",file=new java.io.File(url),lineSeparator=java.lang.System.getProperty("line.separator"),input=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file),encoding)),content="";try{for(stringBuffer=new java.lang.StringBuffer,line=input.readLine(),line&&line.length()&&65279===line.charAt(0)&&(line=line.substring(1)),null!==line&&stringBuffer.append(line);null!==(line=input.readLine());)stringBuffer.append(lineSeparator),stringBuffer.append(line);content=String(stringBuffer.toString())}finally{input.close()}callback(content)}:("xpconnect"===masterConfig.env||!masterConfig.env&&"undefined"!=typeof Components&&Components.classes&&Components.interfaces)&&(Cc=Components.classes,Ci=Components.interfaces,Components.utils["import"]("resource://gre/modules/FileUtils.jsm"),xpcIsWindows="@mozilla.org/windows-registry-key;1"in Cc,text.get=function(url,callback){var inStream,convertStream,fileObj,readData={};xpcIsWindows&&(url=url.replace(/\//g,"\\")),fileObj=new FileUtils.File(url);try{inStream=Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream),inStream.init(fileObj,1,0,!1),convertStream=Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream),convertStream.init(inStream,"utf-8",inStream.available(),Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER),convertStream.readString(inStream.available(),readData),convertStream.close(),inStream.close(),callback(readData.value)}catch(e){throw new Error((fileObj&&fileObj.path||"")+": "+e)}}),text}),define("text!mockup-patterns-tinymce-url/templates/result.xml",[],function(){return'\n'}),define("text!mockup-patterns-tinymce-url/templates/selection.xml",[],function(){return'\n \n \n \n <%= Title %>\n <%= path %>\n\'\n'}),define("text!mockup-patterns-tinymce-url/templates/link.xml",[],function(){return'
    \n
    \n

    <%- insertHeading %>

    \n <% if(upload){ %>\n

    Specify the object to link to. It can be on this site already ("Internal"), an object you upload ("Upload"), from an external site ("External"), an email address ("Email"), or an anchor on this page ("Anchor").

    \n <% } %>\n\n
    \n\n
    \n Internal\n
    \n
    \n \n \n
    \n
    \n
    \n\n <% if(upload){ %>\n
    \n Upload\n
    \n
    \n <% } %>\n\n
    \n External\n
    \n \n \n
    \n
    \n\n \n\n
    \n Anchor\n
    \n
    \n \n
    \n \n <% _.each(targetList, function(target){ %>\n \n <% }); %>\n \n
    \n
    \n \n \n
    \n
    \n\n \n \n
    \n
    \n'}),define("text!mockup-patterns-tinymce-url/templates/image.xml",[],function(){return'
    \n
    \n

    <%- insertHeading %>

    \n <% if(_.contains(linkTypes, \'uploadImage\')){ %>\n

    Specify an image. It can be on this site already ("Internal Image"), an image you upload ("Upload"), or from an external site ("External Image").

    \n <% } %>\n\n
    \n\n <% if(_.contains(linkTypes, \'image\')){ %>\n
    \n Internal Image\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n <% } %>\n\n <% if(_.contains(linkTypes, \'uploadImage\')){ %>\n
    \n Upload\n
    \n
    \n <% } %>\n\n <% if(_.contains(linkTypes, \'externalImage\')){ %>\n
    \n External Image\n
    \n
    \n \n \n
    \n
    \n
    \n <% } %>\n\n
    \n\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n\n \n \n\n
    \n
    \n'}),function(factory){"function"==typeof define&&define.amd?define("dropzone",["jquery"],factory):factory(jQuery)}(function(jQuery){var module={exports:{}};return function(){var Dropzone,Emitter,camelize,contentLoaded,detectVerticalSquash,drawImageIOSFix,noop,without,__slice=[].slice,__hasProp={}.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};noop=function(){},Emitter=function(){function Emitter(){}return Emitter.prototype.addEventListener=Emitter.prototype.on,Emitter.prototype.on=function(event,fn){return this._callbacks=this._callbacks||{},this._callbacks[event]||(this._callbacks[event]=[]),this._callbacks[event].push(fn),this},Emitter.prototype.emit=function(){var args,callback,callbacks,event,_i,_len;if(event=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],this._callbacks=this._callbacks||{},callbacks=this._callbacks[event])for(_i=0,_len=callbacks.length;_len>_i;_i++)callback=callbacks[_i],callback.apply(this,args);return this},Emitter.prototype.removeListener=Emitter.prototype.off,Emitter.prototype.removeAllListeners=Emitter.prototype.off,Emitter.prototype.removeEventListener=Emitter.prototype.off,Emitter.prototype.off=function(event,fn){var callback,callbacks,i,_i,_len;if(!this._callbacks||0===arguments.length)return this._callbacks={},this;if(callbacks=this._callbacks[event],!callbacks)return this;if(1===arguments.length)return delete this._callbacks[event],this;for(i=_i=0,_len=callbacks.length;_len>_i;i=++_i)if(callback=callbacks[i],callback===fn){callbacks.splice(i,1);break}return this},Emitter}(),Dropzone=function(_super){function Dropzone(element,options){var elementOptions,fallback,_ref;if(this.element=element,this.version=Dropzone.version,this.defaultOptions.previewTemplate=this.defaultOptions.previewTemplate.replace(/\n*/g,""),this.clickableElements=[],this.listeners=[],this.files=[],"string"==typeof this.element&&(this.element=document.querySelector(this.element)),!this.element||null==this.element.nodeType)throw new Error("Invalid dropzone element.");if(this.element.dropzone)throw new Error("Dropzone already attached.");if(Dropzone.instances.push(this),this.element.dropzone=this,elementOptions=null!=(_ref=Dropzone.optionsForElement(this.element))?_ref:{},this.options=extend({},this.defaultOptions,elementOptions,null!=options?options:{}),this.options.forceFallback||!Dropzone.isBrowserSupported())return this.options.fallback.call(this);if(null==this.options.url&&(this.options.url=this.element.getAttribute("action")),!this.options.url)throw new Error("No URL provided.");if(this.options.acceptedFiles&&this.options.acceptedMimeTypes)throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");this.options.acceptedMimeTypes&&(this.options.acceptedFiles=this.options.acceptedMimeTypes,delete this.options.acceptedMimeTypes),this.options.method=this.options.method.toUpperCase(),(fallback=this.getExistingFallback())&&fallback.parentNode&&fallback.parentNode.removeChild(fallback),this.options.previewsContainer!==!1&&(this.options.previewsContainer?this.previewsContainer=Dropzone.getElement(this.options.previewsContainer,"previewsContainer"):this.previewsContainer=this.element),this.options.clickable&&(this.options.clickable===!0?this.clickableElements=[this.element]:this.clickableElements=Dropzone.getElements(this.options.clickable,"clickable")),this.init()}var extend,resolveOption;return __extends(Dropzone,_super),Dropzone.prototype.Emitter=Emitter,Dropzone.prototype.events=["drop","dragstart","dragend","dragenter","dragover","dragleave","addedfile","removedfile","thumbnail","error","errormultiple","processing","processingmultiple","uploadprogress","totaluploadprogress","sending","sendingmultiple","success","successmultiple","canceled","canceledmultiple","complete","completemultiple","reset","maxfilesexceeded","maxfilesreached","queuecomplete"],Dropzone.prototype.defaultOptions={url:null,method:"post",withCredentials:!1,parallelUploads:2,uploadMultiple:!1,maxFilesize:256,paramName:"file",createImageThumbnails:!0,maxThumbnailFilesize:10,thumbnailWidth:120,thumbnailHeight:120,filesizeBase:1e3,maxFiles:null,filesizeBase:1e3,params:{},clickable:!0,ignoreHiddenFiles:!0,acceptedFiles:null,acceptedMimeTypes:null,autoProcessQueue:!0,autoQueue:!0,addRemoveLinks:!1,previewsContainer:null,capture:null,dictDefaultMessage:"Drop files here to upload",dictFallbackMessage:"Your browser does not support drag'n'drop file uploads.",dictFallbackText:"Please use the fallback form below to upload your files like in the olden days.",dictFileTooBig:"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.",dictInvalidFileType:"You can't upload files of this type.",dictResponseError:"Server responded with {{statusCode}} code.",dictCancelUpload:"Cancel upload",dictCancelUploadConfirmation:"Are you sure you want to cancel this upload?",dictRemoveFile:"Remove file",dictRemoveFileConfirmation:null,dictMaxFilesExceeded:"You can not upload any more files.",accept:function(file,done){return done()},init:function(){return noop},forceFallback:!1,fallback:function(){var child,messageElement,span,_i,_len,_ref;for(this.element.className=""+this.element.className+" dz-browser-not-supported",_ref=this.element.getElementsByTagName("div"),_i=0,_len=_ref.length;_len>_i;_i++)child=_ref[_i],/(^| )dz-message($| )/.test(child.className)&&(messageElement=child,child.className="dz-message");return messageElement||(messageElement=Dropzone.createElement('
    '),this.element.appendChild(messageElement)),span=messageElement.getElementsByTagName("span")[0],span&&(span.textContent=this.options.dictFallbackMessage),this.element.appendChild(this.getFallbackForm())},resize:function(file){var info,srcRatio,trgRatio;return info={srcX:0,srcY:0,srcWidth:file.width,srcHeight:file.height},srcRatio=file.width/file.height,info.optWidth=this.options.thumbnailWidth,info.optHeight=this.options.thumbnailHeight,null==info.optWidth&&null==info.optHeight?(info.optWidth=info.srcWidth,info.optHeight=info.srcHeight):null==info.optWidth?info.optWidth=srcRatio*info.optHeight:null==info.optHeight&&(info.optHeight=1/srcRatio*info.optWidth),trgRatio=info.optWidth/info.optHeight,file.heighttrgRatio?(info.srcHeight=file.height,info.srcWidth=info.srcHeight*trgRatio):(info.srcWidth=file.width,info.srcHeight=info.srcWidth/trgRatio),info.srcX=(file.width-info.srcWidth)/2,info.srcY=(file.height-info.srcHeight)/2,info},drop:function(e){return this.element.classList.remove("dz-drag-hover")},dragstart:noop,dragend:function(e){return this.element.classList.remove("dz-drag-hover")},dragenter:function(e){return this.element.classList.add("dz-drag-hover")},dragover:function(e){return this.element.classList.add("dz-drag-hover")},dragleave:function(e){return this.element.classList.remove("dz-drag-hover")},paste:noop,reset:function(){return this.element.classList.remove("dz-started")},addedfile:function(file){var node,removeFileEvent,removeLink,_i,_j,_k,_len,_len1,_len2,_ref,_ref1,_ref2,_results;if(this.element===this.previewsContainer&&this.element.classList.add("dz-started"),this.previewsContainer){for(file.previewElement=Dropzone.createElement(this.options.previewTemplate.trim()),file.previewTemplate=file.previewElement,this.previewsContainer.appendChild(file.previewElement),_ref=file.previewElement.querySelectorAll("[data-dz-name]"),_i=0,_len=_ref.length;_len>_i;_i++)node=_ref[_i],node.textContent=file.name;for(_ref1=file.previewElement.querySelectorAll("[data-dz-size]"),_j=0,_len1=_ref1.length;_len1>_j;_j++)node=_ref1[_j],node.innerHTML=this.filesize(file.size);for(this.options.addRemoveLinks&&(file._removeLink=Dropzone.createElement(''+this.options.dictRemoveFile+""),file.previewElement.appendChild(file._removeLink)),removeFileEvent=function(_this){return function(e){return e.preventDefault(),e.stopPropagation(),file.status===Dropzone.UPLOADING?Dropzone.confirm(_this.options.dictCancelUploadConfirmation,function(){return _this.removeFile(file)}):_this.options.dictRemoveFileConfirmation?Dropzone.confirm(_this.options.dictRemoveFileConfirmation,function(){return _this.removeFile(file)}):_this.removeFile(file)}}(this),_ref2=file.previewElement.querySelectorAll("[data-dz-remove]"),_results=[],_k=0,_len2=_ref2.length;_len2>_k;_k++)removeLink=_ref2[_k],_results.push(removeLink.addEventListener("click",removeFileEvent));return _results}},removedfile:function(file){var _ref;return file.previewElement&&null!=(_ref=file.previewElement)&&_ref.parentNode.removeChild(file.previewElement),this._updateMaxFilesReachedClass()},thumbnail:function(file,dataUrl){var thumbnailElement,_i,_len,_ref;if(file.previewElement){for(file.previewElement.classList.remove("dz-file-preview"),_ref=file.previewElement.querySelectorAll("[data-dz-thumbnail]"),_i=0,_len=_ref.length;_len>_i;_i++)thumbnailElement=_ref[_i],thumbnailElement.alt=file.name,thumbnailElement.src=dataUrl;return setTimeout(function(_this){return function(){return file.previewElement.classList.add("dz-image-preview")}}(this),1)}},error:function(file,message){var node,_i,_len,_ref,_results;if(file.previewElement){for(file.previewElement.classList.add("dz-error"),"String"!=typeof message&&message.error&&(message=message.error),_ref=file.previewElement.querySelectorAll("[data-dz-errormessage]"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)node=_ref[_i],_results.push(node.textContent=message);return _results}},errormultiple:noop,processing:function(file){return file.previewElement&&(file.previewElement.classList.add("dz-processing"),file._removeLink)?file._removeLink.textContent=this.options.dictCancelUpload:void 0},processingmultiple:noop,uploadprogress:function(file,progress,bytesSent){var node,_i,_len,_ref,_results;if(file.previewElement){for(_ref=file.previewElement.querySelectorAll("[data-dz-uploadprogress]"),_results=[],_i=0,_len=_ref.length;_len>_i;_i++)node=_ref[_i],"PROGRESS"===node.nodeName?_results.push(node.value=progress):_results.push(node.style.width=""+progress+"%");return _results}},totaluploadprogress:noop,sending:noop,sendingmultiple:noop,success:function(file){return file.previewElement?file.previewElement.classList.add("dz-success"):void 0},successmultiple:noop,canceled:function(file){return this.emit("error",file,"Upload canceled.")},canceledmultiple:noop,complete:function(file){return file._removeLink&&(file._removeLink.textContent=this.options.dictRemoveFile),file.previewElement?file.previewElement.classList.add("dz-complete"):void 0},completemultiple:noop,maxfilesexceeded:noop,maxfilesreached:noop,queuecomplete:noop,previewTemplate:'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n Check\n \n \n \n \n \n
    \n
    \n \n Error\n \n \n \n \n \n \n \n
    \n
    '},extend=function(){var key,object,objects,target,val,_i,_len;for(target=arguments[0],objects=2<=arguments.length?__slice.call(arguments,1):[],_i=0,_len=objects.length;_len>_i;_i++){object=objects[_i];for(key in object)val=object[key],target[key]=val}return target},Dropzone.prototype.getAcceptedFiles=function(){var file,_i,_len,_ref,_results;for(_ref=this.files,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],file.accepted&&_results.push(file);return _results},Dropzone.prototype.getRejectedFiles=function(){var file,_i,_len,_ref,_results;for(_ref=this.files,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],file.accepted||_results.push(file);return _results},Dropzone.prototype.getFilesWithStatus=function(status){var file,_i,_len,_ref,_results;for(_ref=this.files,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],file.status===status&&_results.push(file);return _results},Dropzone.prototype.getQueuedFiles=function(){return this.getFilesWithStatus(Dropzone.QUEUED)},Dropzone.prototype.getUploadingFiles=function(){return this.getFilesWithStatus(Dropzone.UPLOADING)},Dropzone.prototype.getActiveFiles=function(){var file,_i,_len,_ref,_results;for(_ref=this.files,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],file.status!==Dropzone.UPLOADING&&file.status!==Dropzone.QUEUED||_results.push(file);return _results},Dropzone.prototype.init=function(){var eventName,noPropagation,setupHiddenFileInput,_i,_len,_ref,_ref1;for("form"===this.element.tagName&&this.element.setAttribute("enctype","multipart/form-data"),this.element.classList.contains("dropzone")&&!this.element.querySelector(".dz-message")&&this.element.appendChild(Dropzone.createElement('
    '+this.options.dictDefaultMessage+"
    ")),this.clickableElements.length&&(setupHiddenFileInput=function(_this){return function(){return _this.hiddenFileInput&&document.body.removeChild(_this.hiddenFileInput),_this.hiddenFileInput=document.createElement("input"),_this.hiddenFileInput.setAttribute("type","file"),(null==_this.options.maxFiles||_this.options.maxFiles>1)&&_this.hiddenFileInput.setAttribute("multiple","multiple"),_this.hiddenFileInput.className="dz-hidden-input",null!=_this.options.acceptedFiles&&_this.hiddenFileInput.setAttribute("accept",_this.options.acceptedFiles),null!=_this.options.capture&&_this.hiddenFileInput.setAttribute("capture",_this.options.capture),_this.hiddenFileInput.style.visibility="hidden",_this.hiddenFileInput.style.position="absolute",_this.hiddenFileInput.style.top="0",_this.hiddenFileInput.style.left="0",_this.hiddenFileInput.style.height="0",_this.hiddenFileInput.style.width="0",document.body.appendChild(_this.hiddenFileInput),_this.hiddenFileInput.addEventListener("change",function(){var file,files,_i,_len;if(files=_this.hiddenFileInput.files,files.length)for(_i=0,_len=files.length;_len>_i;_i++)file=files[_i],_this.addFile(file);return setupHiddenFileInput()})}}(this))(),this.URL=null!=(_ref=window.URL)?_ref:window.webkitURL,_ref1=this.events,_i=0,_len=_ref1.length;_len>_i;_i++)eventName=_ref1[_i],this.on(eventName,this.options[eventName]);return this.on("uploadprogress",function(_this){return function(){return _this.updateTotalUploadProgress()}}(this)),this.on("removedfile",function(_this){return function(){return _this.updateTotalUploadProgress()}}(this)),this.on("canceled",function(_this){return function(file){return _this.emit("complete",file)}}(this)),this.on("complete",function(_this){return function(file){return 0===_this.getUploadingFiles().length&&0===_this.getQueuedFiles().length?setTimeout(function(){return _this.emit("queuecomplete")},0):void 0}}(this)),noPropagation=function(e){return e.stopPropagation(),e.preventDefault?e.preventDefault():e.returnValue=!1},this.listeners=[{element:this.element,events:{dragstart:function(_this){return function(e){return _this.emit("dragstart",e)}}(this),dragenter:function(_this){return function(e){return noPropagation(e),_this.emit("dragenter",e)}}(this),dragover:function(_this){return function(e){var efct;try{efct=e.dataTransfer.effectAllowed}catch(_error){}return e.dataTransfer.dropEffect="move"===efct||"linkMove"===efct?"move":"copy",noPropagation(e),_this.emit("dragover",e)}}(this),dragleave:function(_this){return function(e){return _this.emit("dragleave",e)}}(this),drop:function(_this){return function(e){return noPropagation(e),_this.drop(e)}}(this),dragend:function(_this){return function(e){return _this.emit("dragend",e)}}(this)}}],this.clickableElements.forEach(function(_this){return function(clickableElement){return _this.listeners.push({element:clickableElement,events:{click:function(evt){return clickableElement!==_this.element||evt.target===_this.element||Dropzone.elementInside(evt.target,_this.element.querySelector(".dz-message"))?_this.hiddenFileInput.click():void 0}}})}}(this)),this.enable(),this.options.init.call(this)},Dropzone.prototype.destroy=function(){var _ref;return this.disable(),this.removeAllFiles(!0),(null!=(_ref=this.hiddenFileInput)?_ref.parentNode:void 0)&&(this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput),this.hiddenFileInput=null),delete this.element.dropzone,Dropzone.instances.splice(Dropzone.instances.indexOf(this),1)},Dropzone.prototype.updateTotalUploadProgress=function(){var activeFiles,file,totalBytes,totalBytesSent,totalUploadProgress,_i,_len,_ref;if(totalBytesSent=0,totalBytes=0,activeFiles=this.getActiveFiles(),activeFiles.length){for(_ref=this.getActiveFiles(),_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],totalBytesSent+=file.upload.bytesSent,totalBytes+=file.upload.total;totalUploadProgress=100*totalBytesSent/totalBytes; +}else totalUploadProgress=100;return this.emit("totaluploadprogress",totalUploadProgress,totalBytes,totalBytesSent)},Dropzone.prototype._getParamName=function(n){return"function"==typeof this.options.paramName?this.options.paramName(n):""+this.options.paramName+(this.options.uploadMultiple?"["+n+"]":"")},Dropzone.prototype.getFallbackForm=function(){var existingFallback,fields,fieldsString,form;return(existingFallback=this.getExistingFallback())?existingFallback:(fieldsString='
    ',this.options.dictFallbackText&&(fieldsString+="

    "+this.options.dictFallbackText+"

    "),fieldsString+='
    ',fields=Dropzone.createElement(fieldsString),"FORM"!==this.element.tagName?(form=Dropzone.createElement('
    '),form.appendChild(fields)):(this.element.setAttribute("enctype","multipart/form-data"),this.element.setAttribute("method",this.options.method)),null!=form?form:fields)},Dropzone.prototype.getExistingFallback=function(){var fallback,getFallback,tagName,_i,_len,_ref;for(getFallback=function(elements){var el,_i,_len;for(_i=0,_len=elements.length;_len>_i;_i++)if(el=elements[_i],/(^| )fallback($| )/.test(el.className))return el},_ref=["div","form"],_i=0,_len=_ref.length;_len>_i;_i++)if(tagName=_ref[_i],fallback=getFallback(this.element.getElementsByTagName(tagName)))return fallback},Dropzone.prototype.setupEventListeners=function(){var elementListeners,event,listener,_i,_len,_ref,_results;for(_ref=this.listeners,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)elementListeners=_ref[_i],_results.push(function(){var _ref1,_results1;_ref1=elementListeners.events,_results1=[];for(event in _ref1)listener=_ref1[event],_results1.push(elementListeners.element.addEventListener(event,listener,!1));return _results1}());return _results},Dropzone.prototype.removeEventListeners=function(){var elementListeners,event,listener,_i,_len,_ref,_results;for(_ref=this.listeners,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)elementListeners=_ref[_i],_results.push(function(){var _ref1,_results1;_ref1=elementListeners.events,_results1=[];for(event in _ref1)listener=_ref1[event],_results1.push(elementListeners.element.removeEventListener(event,listener,!1));return _results1}());return _results},Dropzone.prototype.disable=function(){var file,_i,_len,_ref,_results;for(this.clickableElements.forEach(function(element){return element.classList.remove("dz-clickable")}),this.removeEventListeners(),_ref=this.files,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],_results.push(this.cancelUpload(file));return _results},Dropzone.prototype.enable=function(){return this.clickableElements.forEach(function(element){return element.classList.add("dz-clickable")}),this.setupEventListeners()},Dropzone.prototype.filesize=function(size){var cutoff,i,selectedSize,selectedUnit,unit,units,_i,_len;for(units=["TB","GB","MB","KB","b"],selectedSize=selectedUnit=null,i=_i=0,_len=units.length;_len>_i;i=++_i)if(unit=units[i],cutoff=Math.pow(this.options.filesizeBase,4-i)/10,size>=cutoff){selectedSize=size/Math.pow(this.options.filesizeBase,4-i),selectedUnit=unit;break}return selectedSize=Math.round(10*selectedSize)/10,""+selectedSize+" "+selectedUnit},Dropzone.prototype._updateMaxFilesReachedClass=function(){return null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(this.getAcceptedFiles().length===this.options.maxFiles&&this.emit("maxfilesreached",this.files),this.element.classList.add("dz-max-files-reached")):this.element.classList.remove("dz-max-files-reached")},Dropzone.prototype.drop=function(e){var files,items;e.dataTransfer&&(this.emit("drop",e),files=e.dataTransfer.files,files.length&&(items=e.dataTransfer.items,items&&items.length&&null!=items[0].webkitGetAsEntry?this._addFilesFromItems(items):this.handleFiles(files)))},Dropzone.prototype.paste=function(e){var items,_ref;if(null!=(null!=e&&null!=(_ref=e.clipboardData)?_ref.items:void 0))return this.emit("paste",e),items=e.clipboardData.items,items.length?this._addFilesFromItems(items):void 0},Dropzone.prototype.handleFiles=function(files){var file,_i,_len,_results;for(_results=[],_i=0,_len=files.length;_len>_i;_i++)file=files[_i],_results.push(this.addFile(file));return _results},Dropzone.prototype._addFilesFromItems=function(items){var entry,item,_i,_len,_results;for(_results=[],_i=0,_len=items.length;_len>_i;_i++)item=items[_i],null!=item.webkitGetAsEntry&&(entry=item.webkitGetAsEntry())?entry.isFile?_results.push(this.addFile(item.getAsFile())):entry.isDirectory?_results.push(this._addFilesFromDirectory(entry,entry.name)):_results.push(void 0):null!=item.getAsFile&&(null==item.kind||"file"===item.kind)?_results.push(this.addFile(item.getAsFile())):_results.push(void 0);return _results},Dropzone.prototype._addFilesFromDirectory=function(directory,path){var dirReader,entriesReader;return dirReader=directory.createReader(),entriesReader=function(_this){return function(entries){var entry,_i,_len;for(_i=0,_len=entries.length;_len>_i;_i++)entry=entries[_i],entry.isFile?entry.file(function(file){return _this.options.ignoreHiddenFiles&&"."===file.name.substring(0,1)?void 0:(file.fullPath=""+path+"/"+file.name,_this.addFile(file))}):entry.isDirectory&&_this._addFilesFromDirectory(entry,""+path+"/"+entry.name)}}(this),dirReader.readEntries(entriesReader,function(error){return"undefined"!=typeof console&&null!==console&&"function"==typeof console.log?console.log(error):void 0})},Dropzone.prototype.accept=function(file,done){return file.size>1024*this.options.maxFilesize*1024?done(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(file.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize)):Dropzone.isValidFile(file,this.options.acceptedFiles)?null!=this.options.maxFiles&&this.getAcceptedFiles().length>=this.options.maxFiles?(done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles)),this.emit("maxfilesexceeded",file)):this.options.accept.call(this,file,done):done(this.options.dictInvalidFileType)},Dropzone.prototype.addFile=function(file){return file.upload={progress:0,total:file.size,bytesSent:0},this.files.push(file),file.status=Dropzone.ADDED,this.emit("addedfile",file),this._enqueueThumbnail(file),this.accept(file,function(_this){return function(error){return error?(file.accepted=!1,_this._errorProcessing([file],error)):(file.accepted=!0,_this.options.autoQueue&&_this.enqueueFile(file)),_this._updateMaxFilesReachedClass()}}(this))},Dropzone.prototype.enqueueFiles=function(files){var file,_i,_len;for(_i=0,_len=files.length;_len>_i;_i++)file=files[_i],this.enqueueFile(file);return null},Dropzone.prototype.enqueueFile=function(file){if(file.status!==Dropzone.ADDED||file.accepted!==!0)throw new Error("This file can't be queued because it has already been processed or was rejected.");return file.status=Dropzone.QUEUED,this.options.autoProcessQueue?setTimeout(function(_this){return function(){return _this.processQueue()}}(this),0):void 0},Dropzone.prototype._thumbnailQueue=[],Dropzone.prototype._processingThumbnail=!1,Dropzone.prototype._enqueueThumbnail=function(file){return this.options.createImageThumbnails&&file.type.match(/image.*/)&&file.size<=1024*this.options.maxThumbnailFilesize*1024?(this._thumbnailQueue.push(file),setTimeout(function(_this){return function(){return _this._processThumbnailQueue()}}(this),0)):void 0},Dropzone.prototype._processThumbnailQueue=function(){return this._processingThumbnail||0===this._thumbnailQueue.length?void 0:(this._processingThumbnail=!0,this.createThumbnail(this._thumbnailQueue.shift(),function(_this){return function(){return _this._processingThumbnail=!1,_this._processThumbnailQueue()}}(this)))},Dropzone.prototype.removeFile=function(file){return file.status===Dropzone.UPLOADING&&this.cancelUpload(file),this.files=without(this.files,file),this.emit("removedfile",file),0===this.files.length?this.emit("reset"):void 0},Dropzone.prototype.removeAllFiles=function(cancelIfNecessary){var file,_i,_len,_ref;for(null==cancelIfNecessary&&(cancelIfNecessary=!1),_ref=this.files.slice(),_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],(file.status!==Dropzone.UPLOADING||cancelIfNecessary)&&this.removeFile(file);return null},Dropzone.prototype.createThumbnail=function(file,callback){var fileReader;return fileReader=new FileReader,fileReader.onload=function(_this){return function(){return"image/svg+xml"===file.type?(_this.emit("thumbnail",file,fileReader.result),void(null!=callback&&callback())):_this.createThumbnailFromUrl(file,fileReader.result,callback)}}(this),fileReader.readAsDataURL(file)},Dropzone.prototype.createThumbnailFromUrl=function(file,imageUrl,callback){var img;return img=document.createElement("img"),img.onload=function(_this){return function(){var canvas,ctx,resizeInfo,thumbnail,_ref,_ref1,_ref2,_ref3;return file.width=img.width,file.height=img.height,resizeInfo=_this.options.resize.call(_this,file),null==resizeInfo.trgWidth&&(resizeInfo.trgWidth=resizeInfo.optWidth),null==resizeInfo.trgHeight&&(resizeInfo.trgHeight=resizeInfo.optHeight),canvas=document.createElement("canvas"),ctx=canvas.getContext("2d"),canvas.width=resizeInfo.trgWidth,canvas.height=resizeInfo.trgHeight,drawImageIOSFix(ctx,img,null!=(_ref=resizeInfo.srcX)?_ref:0,null!=(_ref1=resizeInfo.srcY)?_ref1:0,resizeInfo.srcWidth,resizeInfo.srcHeight,null!=(_ref2=resizeInfo.trgX)?_ref2:0,null!=(_ref3=resizeInfo.trgY)?_ref3:0,resizeInfo.trgWidth,resizeInfo.trgHeight),thumbnail=canvas.toDataURL("image/png"),_this.emit("thumbnail",file,thumbnail),null!=callback?callback():void 0}}(this),null!=callback&&(img.onerror=callback),img.src=imageUrl},Dropzone.prototype.processQueue=function(){var i,parallelUploads,processingLength,queuedFiles;if(parallelUploads=this.options.parallelUploads,processingLength=this.getUploadingFiles().length,i=processingLength,!(processingLength>=parallelUploads)&&(queuedFiles=this.getQueuedFiles(),queuedFiles.length>0)){if(this.options.uploadMultiple)return this.processFiles(queuedFiles.slice(0,parallelUploads-processingLength));for(;parallelUploads>i;){if(!queuedFiles.length)return;this.processFile(queuedFiles.shift()),i++}}},Dropzone.prototype.processFile=function(file){return this.processFiles([file])},Dropzone.prototype.processFiles=function(files){var file,_i,_len;for(_i=0,_len=files.length;_len>_i;_i++)file=files[_i],file.processing=!0,file.status=Dropzone.UPLOADING,this.emit("processing",file);return this.options.uploadMultiple&&this.emit("processingmultiple",files),this.uploadFiles(files)},Dropzone.prototype._getFilesWithXhr=function(xhr){var file,files;return files=function(){var _i,_len,_ref,_results;for(_ref=this.files,_results=[],_i=0,_len=_ref.length;_len>_i;_i++)file=_ref[_i],file.xhr===xhr&&_results.push(file);return _results}.call(this)},Dropzone.prototype.cancelUpload=function(file){var groupedFile,groupedFiles,_i,_j,_len,_len1,_ref;if(file.status===Dropzone.UPLOADING){for(groupedFiles=this._getFilesWithXhr(file.xhr),_i=0,_len=groupedFiles.length;_len>_i;_i++)groupedFile=groupedFiles[_i],groupedFile.status=Dropzone.CANCELED;for(file.xhr.abort(),_j=0,_len1=groupedFiles.length;_len1>_j;_j++)groupedFile=groupedFiles[_j],this.emit("canceled",groupedFile);this.options.uploadMultiple&&this.emit("canceledmultiple",groupedFiles)}else(_ref=file.status)!==Dropzone.ADDED&&_ref!==Dropzone.QUEUED||(file.status=Dropzone.CANCELED,this.emit("canceled",file),this.options.uploadMultiple&&this.emit("canceledmultiple",[file]));return this.options.autoProcessQueue?this.processQueue():void 0},resolveOption=function(){var args,option;return option=arguments[0],args=2<=arguments.length?__slice.call(arguments,1):[],"function"==typeof option?option.apply(this,args):option},Dropzone.prototype.uploadFile=function(file){return this.uploadFiles([file])},Dropzone.prototype.uploadFiles=function(files){var file,formData,handleError,headerName,headerValue,headers,i,input,inputName,inputType,key,method,option,progressObj,response,updateProgress,url,value,xhr,_i,_j,_k,_l,_len,_len1,_len2,_len3,_m,_ref,_ref1,_ref2,_ref3,_ref4,_ref5;for(xhr=new XMLHttpRequest,_i=0,_len=files.length;_len>_i;_i++)file=files[_i],file.xhr=xhr;method=resolveOption(this.options.method,files),url=resolveOption(this.options.url,files),xhr.open(method,url,!0),xhr.withCredentials=!!this.options.withCredentials,response=null,handleError=function(_this){return function(){var _j,_len1,_results;for(_results=[],_j=0,_len1=files.length;_len1>_j;_j++)file=files[_j],_results.push(_this._errorProcessing(files,response||_this.options.dictResponseError.replace("{{statusCode}}",xhr.status),xhr));return _results}}(this),updateProgress=function(_this){return function(e){var allFilesFinished,progress,_j,_k,_l,_len1,_len2,_len3,_results;if(null!=e)for(progress=100*e.loaded/e.total,_j=0,_len1=files.length;_len1>_j;_j++)file=files[_j],file.upload={progress:progress,total:e.total,bytesSent:e.loaded};else{for(allFilesFinished=!0,progress=100,_k=0,_len2=files.length;_len2>_k;_k++)file=files[_k],100===file.upload.progress&&file.upload.bytesSent===file.upload.total||(allFilesFinished=!1),file.upload.progress=progress,file.upload.bytesSent=file.upload.total;if(allFilesFinished)return}for(_results=[],_l=0,_len3=files.length;_len3>_l;_l++)file=files[_l],_results.push(_this.emit("uploadprogress",file,progress,file.upload.bytesSent));return _results}}(this),xhr.onload=function(_this){return function(e){var _ref;if(files[0].status!==Dropzone.CANCELED&&4===xhr.readyState){if(response=xhr.responseText,xhr.getResponseHeader("content-type")&&~xhr.getResponseHeader("content-type").indexOf("application/json"))try{response=JSON.parse(response)}catch(_error){e=_error,response="Invalid JSON response from server."}return updateProgress(),200<=(_ref=xhr.status)&&300>_ref?_this._finished(files,response,e):handleError()}}}(this),xhr.onerror=function(_this){return function(){return files[0].status!==Dropzone.CANCELED?handleError():void 0}}(this),progressObj=null!=(_ref=xhr.upload)?_ref:xhr,progressObj.onprogress=updateProgress,headers={Accept:"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"},this.options.headers&&extend(headers,this.options.headers);for(headerName in headers)headerValue=headers[headerName],xhr.setRequestHeader(headerName,headerValue);if(formData=new FormData,this.options.params){_ref1=this.options.params;for(key in _ref1)value=_ref1[key],formData.append(key,value)}for(_j=0,_len1=files.length;_len1>_j;_j++)file=files[_j],this.emit("sending",file,xhr,formData);if(this.options.uploadMultiple&&this.emit("sendingmultiple",files,xhr,formData),"FORM"===this.element.tagName)for(_ref2=this.element.querySelectorAll("input, textarea, select, button"),_k=0,_len2=_ref2.length;_len2>_k;_k++)if(input=_ref2[_k],inputName=input.getAttribute("name"),inputType=input.getAttribute("type"),"SELECT"===input.tagName&&input.hasAttribute("multiple"))for(_ref3=input.options,_l=0,_len3=_ref3.length;_len3>_l;_l++)option=_ref3[_l],option.selected&&formData.append(inputName,option.value);else(!inputType||"checkbox"!==(_ref4=inputType.toLowerCase())&&"radio"!==_ref4||input.checked)&&formData.append(inputName,input.value);for(i=_m=0,_ref5=files.length-1;_ref5>=0?_ref5>=_m:_m>=_ref5;i=_ref5>=0?++_m:--_m)formData.append(this._getParamName(i),files[i],files[i].name);return xhr.send(formData)},Dropzone.prototype._finished=function(files,responseText,e){var file,_i,_len;for(_i=0,_len=files.length;_len>_i;_i++)file=files[_i],file.status=Dropzone.SUCCESS,this.emit("success",file,responseText,e),this.emit("complete",file);return this.options.uploadMultiple&&(this.emit("successmultiple",files,responseText,e),this.emit("completemultiple",files)),this.options.autoProcessQueue?this.processQueue():void 0},Dropzone.prototype._errorProcessing=function(files,message,xhr){var file,_i,_len;for(_i=0,_len=files.length;_len>_i;_i++)file=files[_i],file.status=Dropzone.ERROR,this.emit("error",file,message,xhr),this.emit("complete",file);return this.options.uploadMultiple&&(this.emit("errormultiple",files,message,xhr),this.emit("completemultiple",files)),this.options.autoProcessQueue?this.processQueue():void 0},Dropzone}(Emitter),Dropzone.version="4.0.1",Dropzone.options={},Dropzone.optionsForElement=function(element){return element.getAttribute("id")?Dropzone.options[camelize(element.getAttribute("id"))]:void 0},Dropzone.instances=[],Dropzone.forElement=function(element){if("string"==typeof element&&(element=document.querySelector(element)),null==(null!=element?element.dropzone:void 0))throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");return element.dropzone},Dropzone.autoDiscover=!0,Dropzone.discover=function(){var checkElements,dropzone,dropzones,_i,_len,_results;for(document.querySelectorAll?dropzones=document.querySelectorAll(".dropzone"):(dropzones=[],checkElements=function(elements){var el,_i,_len,_results;for(_results=[],_i=0,_len=elements.length;_len>_i;_i++)el=elements[_i],/(^| )dropzone($| )/.test(el.className)?_results.push(dropzones.push(el)):_results.push(void 0);return _results},checkElements(document.getElementsByTagName("div")),checkElements(document.getElementsByTagName("form"))),_results=[],_i=0,_len=dropzones.length;_len>_i;_i++)dropzone=dropzones[_i],Dropzone.optionsForElement(dropzone)!==!1?_results.push(new Dropzone(dropzone)):_results.push(void 0);return _results},Dropzone.blacklistedBrowsers=[/opera.*Macintosh.*version\/12/i],Dropzone.isBrowserSupported=function(){var capableBrowser,regex,_i,_len,_ref;if(capableBrowser=!0,window.File&&window.FileReader&&window.FileList&&window.Blob&&window.FormData&&document.querySelector)if("classList"in document.createElement("a"))for(_ref=Dropzone.blacklistedBrowsers,_i=0,_len=_ref.length;_len>_i;_i++)regex=_ref[_i],regex.test(navigator.userAgent)&&(capableBrowser=!1);else capableBrowser=!1;else capableBrowser=!1;return capableBrowser},without=function(list,rejectedItem){var item,_i,_len,_results;for(_results=[],_i=0,_len=list.length;_len>_i;_i++)item=list[_i],item!==rejectedItem&&_results.push(item);return _results},camelize=function(str){return str.replace(/[\-_](\w)/g,function(match){return match.charAt(1).toUpperCase()})},Dropzone.createElement=function(string){var div;return div=document.createElement("div"),div.innerHTML=string,div.childNodes[0]},Dropzone.elementInside=function(element,container){if(element===container)return!0;for(;element=element.parentNode;)if(element===container)return!0;return!1},Dropzone.getElement=function(el,name){var element;if("string"==typeof el?element=document.querySelector(el):null!=el.nodeType&&(element=el),null==element)throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector or a plain HTML element.");return element},Dropzone.getElements=function(els,name){var e,el,elements,_i,_j,_len,_len1,_ref;if(els instanceof Array){elements=[];try{for(_i=0,_len=els.length;_len>_i;_i++)el=els[_i],elements.push(this.getElement(el,name))}catch(_error){e=_error,elements=null}}else if("string"==typeof els)for(elements=[],_ref=document.querySelectorAll(els),_j=0,_len1=_ref.length;_len1>_j;_j++)el=_ref[_j],elements.push(el);else null!=els.nodeType&&(elements=[els]);if(null==elements||!elements.length)throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.");return elements},Dropzone.confirm=function(question,accepted,rejected){return window.confirm(question)?accepted():null!=rejected?rejected():void 0},Dropzone.isValidFile=function(file,acceptedFiles){var baseMimeType,mimeType,validType,_i,_len;if(!acceptedFiles)return!0;for(acceptedFiles=acceptedFiles.split(","),mimeType=file.type,baseMimeType=mimeType.replace(/\/.*$/,""),_i=0,_len=acceptedFiles.length;_len>_i;_i++)if(validType=acceptedFiles[_i],validType=validType.trim(),"."===validType.charAt(0)){if(-1!==file.name.toLowerCase().indexOf(validType.toLowerCase(),file.name.length-validType.length))return!0}else if(/\/\*$/.test(validType)){if(baseMimeType===validType.replace(/\/.*$/,""))return!0}else if(mimeType===validType)return!0;return!1},"undefined"!=typeof jQuery&&null!==jQuery&&(jQuery.fn.dropzone=function(options){return this.each(function(){return new Dropzone(this,options)})}),"undefined"!=typeof module&&null!==module?module.exports=Dropzone:window.Dropzone=Dropzone,Dropzone.ADDED="added",Dropzone.QUEUED="queued",Dropzone.ACCEPTED=Dropzone.QUEUED,Dropzone.UPLOADING="uploading",Dropzone.PROCESSING=Dropzone.UPLOADING,Dropzone.CANCELED="canceled",Dropzone.ERROR="error",Dropzone.SUCCESS="success",detectVerticalSquash=function(img){var alpha,canvas,ctx,data,ey,ih,iw,py,ratio,sy;for(iw=img.naturalWidth,ih=img.naturalHeight,canvas=document.createElement("canvas"),canvas.width=1,canvas.height=ih,ctx=canvas.getContext("2d"),ctx.drawImage(img,0,0),data=ctx.getImageData(0,0,1,ih).data,sy=0,ey=ih,py=ih;py>sy;)alpha=data[4*(py-1)+3],0===alpha?ey=py:sy=py,py=ey+sy>>1;return ratio=py/ih,0===ratio?1:ratio},drawImageIOSFix=function(ctx,img,sx,sy,sw,sh,dx,dy,dw,dh){var vertSquashRatio;return vertSquashRatio=detectVerticalSquash(img),ctx.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh/vertSquashRatio)},contentLoaded=function(win,fn){var add,doc,done,init,poll,pre,rem,root,top;if(done=!1,top=!0,doc=win.document,root=doc.documentElement,add=doc.addEventListener?"addEventListener":"attachEvent",rem=doc.addEventListener?"removeEventListener":"detachEvent",pre=doc.addEventListener?"":"on",init=function(e){return"readystatechange"!==e.type||"complete"===doc.readyState?(("load"===e.type?win:doc)[rem](pre+e.type,init,!1),!done&&(done=!0)?fn.call(win,e.type||e):void 0):void 0},poll=function(){var e;try{root.doScroll("left")}catch(_error){return e=_error,void setTimeout(poll,50)}return init("poll")},"complete"!==doc.readyState){if(doc.createEventObject&&root.doScroll){try{top=!win.frameElement}catch(_error){}top&&poll()}return doc[add](pre+"DOMContentLoaded",init,!1),doc[add](pre+"readystatechange",init,!1),win[add](pre+"load",init,!1)}},Dropzone._autoDiscoverFunction=function(){return Dropzone.autoDiscover?Dropzone.discover():void 0},contentLoaded(window,Dropzone._autoDiscoverFunction)}.call(this),module.exports}),define("text!mockup-patterns-upload-url/templates/upload.xml",[],function(){return'
    \n

    <%- _t("Upload here") %>

    \n

    \n <%- _t(\'Drag and drop files from your computer onto the area below or click the "Browse" button.\') %>\n

    \n
    \n
    \n \n
    \n

    <%-_t("Drop files here...")%>

    \n
    \n
    \n "\n disabled="disabled"\n />\n
    \n
    \n \n Browse\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n <%- _t("Select another destination folder or leave blank to add files to the current location.") %>\n

    \n \n
    \n
    \n
    \n
    \n
    \n 40% Complete (success)\n
    \n
    \n
    \n
    \n \n <%- _t("Upload") %>\n \n
    \n
    \n
    \n
    \n
    \n
    \n'}),define("text!mockup-patterns-upload-url/templates/preview.xml",[],function(){return'
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n'}),define("mockup-patterns-upload",["jquery","underscore","pat-base","mockup-patterns-relateditems","dropzone","text!mockup-patterns-upload-url/templates/upload.xml","text!mockup-patterns-upload-url/templates/preview.xml","translate"],function($,_,Base,RelatedItems,Dropzone,UploadTemplate,PreviewTemplate,_t){"use strict";Dropzone.autoDiscover=!1;var UploadPattern=Base.extend({name:"upload",trigger:".pat-upload",parser:"mockup",defaults:{showTitle:!0,url:null,className:"upload",wrap:!1,wrapperTemplate:'
    ',fileaddedClassName:"dropping",useTus:!1,container:"",ajaxUpload:!0,paramName:"file",addRemoveLinks:!1,autoCleanResults:!0,previewsContainer:".previews",previewTemplate:null,maxFiles:null,maxFilesize:99999999,relatedItems:{attributes:["UID","Title","Description","getURL","portal_type","path","ModificationDate"],batchSize:20,basePath:"/",vocabularyUrl:null,width:500,maximumSelectionSize:1,selectableTypes:["Folder"]}},init:function(){var self=this,template=UploadTemplate;$(document).bind("paste",function(e){var oe=e.originalEvent,items=oe.clipboardData.items;if(items)for(var i=0;i0){$controls.fadeIn("slow");var file=self.dropzone.files[0];$(".dz-error-message span",file.previewElement).html("")}else $controls.fadeOut("slow")},pathJoin:function(){var parts=[];return _.each(arguments,function(part){part&&("/"===part[0]&&(part=part.substring(1)),"/"===part[part.length-1]&&(part=part.substring(0,part.length-1)),parts.push(part))}),parts.join("/")},getUrl:function(){var self=this,url=self.options.url;if(!url)if(self.options.baseUrl&&self.options.relativePath)url=self.options.baseUrl,"/"!==url[url.length-1]&&(url+="/"),url+=self.pathJoin(self.currentPath,self.options.relativePath);else{var $form=self.$el.parents("form");url=$form.length>0?$form.attr("action"):window.location.href}return url},getDzoneOptions:function(){var self=this;self.options.clickable=!0;var options=$.extend({},self.options);if(options.url=self.getUrl(),options.uploadMultiple=!1,delete options.wrap,delete options.wrapperTemplate,delete options.resultTemplate,delete options.autoCleanResults,delete options.fileaddedClassName,delete options.useTus,self.options.previewsContainer){var $preview=self.$el.find(self.options.previewsContainer);$preview.length>0&&(options.previewsContainer=$preview[0])}return options.autoProcessQueue=!1,options.previewTemplate=PreviewTemplate,options},processUpload:function(options){function process(){processing=!0,0===self.dropzone.files.length&&(processing=!1); +var file=self.dropzone.files[0];return processing&&file.status===Dropzone.ERROR&&(file.status=Dropzone.QUEUED,processing=!1),processing?void(-1!==[Dropzone.SUCCESS,Dropzone.CANCELED].indexOf(file.status)?(self.dropzone.removeFile(file),process()):file.status!==Dropzone.UPLOADING?(useTus&&window.tus?self.handleTusUpload(file):(self.currentFile+=1,self.dropzone.processFile(file)),setTimeout(process,100)):setTimeout(process,100)):(self.$el.removeClass(fileaddedClassName),void(void 0!==finished&&"function"==typeof finished&&finished()))}options||(options={});var self=this,processing=!1,useTus=self.options.useTus,fileaddedClassName=self.options.fileaddedClassName,finished=options.finished;self.currentFile=0,process()},handleTusUpload:function(file){var self=this,chunkSize=($(file.previewElement),5242880);file.status=Dropzone.UPLOADING,window.tus.upload(file,{endpoint:self.dropzone.options.url,headers:{FILENAME:file.name},chunkSize:chunkSize}).fail(function(){window.DEBUG&&console.alert(_t("Error uploading with TUS resumable uploads")),file.status=Dropzone.ERROR}).progress(function(e,bytesUploaded,bytesTotal){var percentage=bytesUploaded/bytesTotal*100;self.$progress.attr("aria-valuenow",percentage).css("width",percentage+"%"),self.$progress.html(_t("uploading...")+"
    "+self.formatBytes(bytesUploaded)+" / "+self.formatBytes(bytesTotal))}).done(function(url,file){file.status=Dropzone.SUCCESS,self.dropzone.emit("success",file),self.dropzone.emit("complete",file)})},formatBytes:function(bytes){var kb=Math.round(bytes/1024);if(1024>kb)return kb+" KiB";var mb=Math.round(kb/1024);return 1024>mb?mb+" MB":Math.round(mb/1024)+" GB"},setPath:function(path){var self=this;self.currentPath=path,self.options.url=null,self.options.url=self.dropzone.options.url=self.getUrl()},setupRelatedItems:function($input){var self=this,options=self.options.relatedItems;self.options.initialFolder&&$input.attr("value",self.options.initialFolder);var ri=new RelatedItems($input,options);return ri.$el.on("change",function(){var result=$(this).select2("data"),path=null;result.length>0&&(path=result[0].path),self.setPath(path)}),ri}});return UploadPattern}),define("mockup-patterns-tinymce-url/js/links",["jquery","underscore","pat-registry","pat-base","tinymce","mockup-patterns-relateditems","text!mockup-patterns-tinymce-url/templates/link.xml","text!mockup-patterns-tinymce-url/templates/image.xml","mockup-patterns-upload"],function($,_,registry,Base,tinymce,RelatedItems,LinkTemplate,ImageTemplate){"use strict";var LinkType=Base.extend({defaults:{linkModal:null},init:function(){this.linkModal=this.options.linkModal,this.tinypattern=this.options.tinypattern,this.tiny=this.tinypattern.tiny,this.dom=this.tiny.dom},getEl:function(){return this.$el.find("input")},value:function(){return $.trim(this.getEl().val())},toUrl:function(){return this.value()},load:function(element){this.getEl().attr("value",this.tiny.dom.getAttrib(element,"data-val"))},set:function(val){var $el=this.getEl();$el.attr("value",val),$el.val(val)},attributes:function(){return{"data-val":this.value()}}}),ExternalLink=LinkType.extend({init:function(){LinkType.prototype.init.call(this),this.getEl().on("change",function(){var val=$(this).val();if(!new RegExp("https?://").test(val)){var domain=$(this).val().split("/")[0];-1!==domain.indexOf(".")&&$(this).val("http://"+val)}})}}),InternalLink=LinkType.extend({init:function(){LinkType.prototype.init.call(this),this.getEl().addClass("pat-relateditems"),this.createRelatedItems()},getEl:function(){return this.$el.find("input:not(.select2-input)")},createRelatedItems:function(){this.relatedItems=new RelatedItems(this.getEl(),this.linkModal.options.relatedItems)},value:function(){var val=this.getEl().select2("data");return val&&"object"==typeof val&&(val=val[0]),val},toUrl:function(){var value=this.value();return value?this.tinypattern.generateUrl(value):null},load:function(element){var val=this.tiny.dom.getAttrib(element,"data-val");val&&this.set(val)},set:function(val){var $el=this.getEl();$el.select2("destroy"),$el.removeData("pattern-relateditems"),$el.parent().replaceWith($el),$el.attr("value",val),$el.val(val),this.createRelatedItems()},attributes:function(){var val=this.value();return val?{"data-val":val.UID}:{}}}),UploadLink=LinkType.extend({getDelegatedLinkType:function(){return"uploadImage"===this.linkModal.linkType?this.linkModal.linkTypes.image:this.linkModal.linkTypes.internal},toUrl:function(){return this.getDelegatedLinkType().toUrl()},attributes:function(){return this.getDelegatedLinkType().attributes()},set:function(val){return this.getDelegatedLinkType().set(val)},load:function(element){return this.getDelegatedLinkType().load(element)},value:function(){return this.getDelegatedLinkType().value()}}),ImageLink=InternalLink.extend({toUrl:function(){var value=this.value();return this.tinypattern.generateImageUrl(value,this.linkModal.$scale.val())}}),EmailLink=LinkType.extend({toUrl:function(){var self=this,val=self.value();if(val){var subject=self.getSubject(),href="mailto:"+val;return subject&&(href+="?subject="+subject),href}return null},load:function(element){LinkType.prototype.load.apply(this,[element]),this.linkModal.$subject.val(this.tiny.dom.getAttrib(element,"data-subject"))},getSubject:function(){return this.linkModal.$subject.val()},attributes:function(){var attribs=LinkType.prototype.attributes.call(this);return attribs["data-subject"]=this.getSubject(),attribs}}),AnchorLink=LinkType.extend({init:function(){LinkType.prototype.init.call(this),this.$select=this.$el.find("select"),this.anchorNodes=[],this.anchorData=[],this.populate()},value:function(){var val=this.$select.select2("data");return val&&"object"==typeof val&&(val=val.id),val},populate:function(){var self=this;self.$select.find("option").remove(),self.anchorNodes=[],self.anchorData=[];var node,i,j,name,title,nodes=self.tiny.dom.select("a.mceItemAnchor,img.mceItemAnchor,a.mce-item-anchor,img.mce-item-anchor");for(i=0;i0)for(i=0;i0)for(i=0;i'+data.title+"")}else self.$select.append("")},getIndex:function(name){for(var i=0;i'+node.innerHTML),"#"+data.name}return null},set:function(val){var anchor=this.getIndex(val);this.$select.select2("data",""+anchor)}});tinymce.PluginManager.add("ploneimage",function(editor){editor.addButton("ploneimage",{icon:"image",tooltip:"Insert/edit image",onclick:editor.settings.addImageClicked,stateSelector:"img:not([data-mce-object])"}),editor.addMenuItem("ploneimage",{icon:"image",text:"Insert image",onclick:editor.settings.addImageClicked,context:"insert",prependToContext:!0})}),tinymce.PluginManager.add("plonelink",function(editor){editor.addButton("plonelink",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:editor.settings.addLinkClicked,stateSelector:"a[href]"}),editor.addButton("unlink",{icon:"unlink",tooltip:"Remove link(s)",cmd:"unlink",stateSelector:"a[href]"}),editor.addShortcut("Ctrl+K","",editor.settings.addLinkClicked),editor.addMenuItem("plonelink",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:editor.settings.addLinkClicked,stateSelector:"a[href]",context:"insert",prependToContext:!0})});var LinkModal=Base.extend({name:"linkmodal",trigger:".pat-linkmodal",defaults:{anchorSelector:"h1,h2,h3",linkTypes:[],initialLinkType:"internal",text:{insertHeading:"Insert Link"},linkTypeClassMapping:{internal:InternalLink,upload:UploadLink,external:ExternalLink,email:EmailLink,anchor:AnchorLink,image:ImageLink,uploadImage:UploadLink,externalImage:LinkType}},linkTypeTemplateMapping:{internal:LinkTemplate,upload:LinkTemplate,external:LinkTemplate,email:LinkTemplate,anchor:LinkTemplate,image:ImageTemplate,uploadImage:ImageTemplate,externalImage:ImageTemplate},template:function(data){return _.template(this.linkTypeTemplateMapping[this.linkType])(data)},init:function(){var self=this;self.tinypattern=self.options.tinypattern,self.tinypattern.options.anchorSelector&&(self.options.anchorSelector=self.tinypattern.options.anchorSelector),self.tiny=self.tinypattern.tiny,self.dom=self.tiny.dom,self.linkType=self.options.initialLinkType,self.linkTypes={},self.data={},self.initialText=null;var value;self.rng=self.tiny.selection.getRng(),self.selectedElm=self.tiny.selection.getNode(),self.anchorElm=self.tiny.dom.getParent(self.selectedElm,"a[href]"),self.onlyText=self.isOnlyTextSelected(),self.data.text=self.initialText=self.anchorElm?self.anchorElm.innerText||self.anchorElm.textContent:self.tiny.selection.getContent({format:"text"}),self.data.href=self.anchorElm?self.tiny.dom.getAttrib(self.anchorElm,"href"):"",self.anchorElm?self.data.target=self.tiny.dom.getAttrib(self.anchorElm,"target"):self.tiny.settings.default_link_target&&(self.data.target=self.tiny.settings.default_link_target),(value=self.tiny.dom.getAttrib(self.anchorElm,"rel"))&&(self.data.rel=value),(value=self.tiny.dom.getAttrib(self.anchorElm,"class"))&&(self.data["class"]=value),(value=self.tiny.dom.getAttrib(self.anchorElm,"title"))&&(self.data.title=value),self.modal=registry.patterns["plone-modal"].init(self.$el,{html:self.generateModalHtml(),content:null,buttons:".plone-btn"}),self.modal.on("shown",function(e){self.modalShown.apply(self,[e])})},isOnlyTextSelected:function(){var html=this.tiny.selection.getContent();if(/]+>[^<]+<\/a>$/.test(html)||-1===html.indexOf("href=")))return!1;if(this.anchorElm){var nodes=this.anchorElm.childNodes;if(0===nodes.length)return!1;for(var ii=nodes.length-1;ii>=0;ii--)if(3!==nodes[ii].nodeType)return!1}return!0},generateModalHtml:function(){return this.template({options:this.options,upload:this.options.upload,text:this.options.text,insertHeading:this.options.text.insertHeading,linkTypes:this.options.linkTypes,externalText:this.options.text.external,emailText:this.options.text.email,subjectText:this.options.text.subject,targetList:this.options.targetList,titleText:this.options.text.title,externalImageText:this.options.text.externalImage,altText:this.options.text.alt,imageAlignText:this.options.text.imageAlign,scaleText:this.options.text.scale,scales:this.options.scales,cancelBtn:this.options.text.cancelBtn,insertBtn:this.options.text.insertBtn})},isImageMode:function(){return-1!==["image","uploadImage","externalImage"].indexOf(this.linkType)},initElements:function(){var self=this;self.$target=$('select[name="target"]',self.modal.$modal),self.$button=$('.plone-modal-footer input[name="insert"]',self.modal.$modal),self.$title=$('input[name="title"]',self.modal.$modal),self.$subject=$('input[name="subject"]',self.modal.$modal),self.$alt=$('input[name="alt"]',self.modal.$modal),self.$align=$('select[name="align"]',self.modal.$modal),self.$scale=$('select[name="scale"]',self.modal.$modal),_.each(self.options.linkTypes,function(type){var $container=$(".linkType."+type+" .main",self.modal.$modal);self.linkTypes[type]=new self.options.linkTypeClassMapping[type]($container,{linkModal:self,tinypattern:self.tinypattern})}),$(".autotoc-nav a",self.modal.$modal).click(function(){var $fieldset=$("fieldset.linkType",self.modal.$modal).eq($(this).index()),classes=$fieldset[0].className.split(/\s+/);_.each(classes,function(val){-1!==_.indexOf(self.options.linkTypes,val)&&(self.linkType=val)})})},getLinkUrl:function(){return this.linkTypes[this.linkType].toUrl()},getValue:function(){return this.linkTypes[this.linkType].value()},updateAnchor:function(href){var self=this;self.tiny.focus(),self.tiny.selection.setRng(self.rng);var target=self.$target.val(),title=self.$title.val(),linkAttrs=$.extend(!0,self.data,{title:title?title:null,target:target?target:null,"data-linkType":self.linkType,href:href},self.linkTypes[self.linkType].attributes());self.anchorElm?(self.onlyText&&linkAttrs.text!==self.initialText&&("innerText"in self.anchorElm?self.anchorElm.innerText=self.data.text:self.anchorElm.textContent=self.data.text),self.tiny.dom.setAttribs(self.anchorElm,linkAttrs),self.tiny.selection.select(self.anchorElm),self.tiny.undoManager.add()):self.onlyText?self.tiny.insertContent(self.tiny.dom.createHTML("a",linkAttrs,self.tiny.dom.encode(self.data.text))):self.tiny.execCommand("mceInsertLink",!1,linkAttrs)},focusElement:function(elm){this.tiny.focus(),this.tiny.selection.select(elm),this.tiny.nodeChanged()},updateImage:function(src){function waitLoad(imgElm){imgElm.onload=imgElm.onerror=function(){imgElm.onload=imgElm.onerror=null,self.focusElement(imgElm)}}var self=this,title=self.$title.val();self.tiny.focus(),self.tiny.selection.setRng(self.rng);var data=$.extend(!0,{},{src:src,title:title?title:null,alt:self.$alt.val(),"class":"image-"+self.$align.val(),"data-linkType":self.linkType,"data-scale":self.$scale.val()},self.linkTypes[self.linkType].attributes());self.imgElm&&!self.imgElm.getAttribute("data-mce-object")?(data.width=self.dom.getAttrib(self.imgElm,"width"),data.height=self.dom.getAttrib(self.imgElm,"height")):self.imgElm=null,self.imgElm?self.dom.setAttribs(self.imgElm,data):(data.id="__mcenew",self.tiny.insertContent(self.dom.createHTML("img",data)),self.imgElm=self.dom.get("__mcenew"),self.dom.setAttrib(self.imgElm,"id",null)),waitLoad(self.imgElm),self.imgElm.complete&&self.focusElement(self.imgElm)},modalShown:function(e){var self=this;self.initElements(),self.initData(),self.options.upload&&(self.$upload=$(".uploadify-me",self.modal.$modal),self.options.upload.relatedItems=$.extend(!0,{},self.options.relatedItems),self.options.upload.relatedItems.selectableTypes=self.options.folderTypes,self.$upload.addClass("pat-upload").patternUpload(self.options.upload),self.$upload.on("uploadAllCompleted",function(evt,data){self.linkTypes.image?(self.linkTypes.image.set(data.data.UID),$("#"+$("#tinylink-image",self.modal.$modal).data("navref")).trigger("click")):(self.linkTypes.internal.set(data.data.UID),$("#"+$("#tinylink-internal",self.modal.$modal).data("navref")).trigger("click"))})),self.$button.off("click").on("click",function(e){if(e.preventDefault(),e.stopPropagation(),self.linkType=self.modal.$modal.find("fieldset.active").data("linktype"),"uploadImage"===self.linkType||"upload"===self.linkType){var patUpload=self.$upload.data().patternUpload;patUpload.dropzone.files.length>0&&(patUpload.processUpload(),self.$upload.on("uploadAllCompleted",function(evt,data){var counter=0,checkUpload=function(){if(5>counter&&!self.linkTypes[self.linkType].value())return counter+=1,void setTimeout(checkUpload,100);var href=self.getLinkUrl();self.updateImage(href),self.hide()};checkUpload()}))}var href;try{href=self.getLinkUrl()}catch(error){return}href&&(self.isImageMode()?self.updateImage(href):self.updateAnchor(href),self.hide())}),$('.plone-modal-footer input[name="cancel"]',self.modal.$modal).click(function(e){e.preventDefault(),self.hide()})},show:function(){this.modal.show()},hide:function(){this.modal.hide()},initData:function(){var self=this;self.selection=self.tiny.selection,self.tiny.focus();var selectedElm=self.imgElm=self.selection.getNode();self.anchorElm=self.dom.getParent(selectedElm,"a[href]");var linkType;if(self.isImageMode()){if("IMG"!==self.imgElm.nodeName&&self.anchorElm){var imgs=self.anchorElm.getElementsByTagName("img");imgs.length>0&&(self.imgElm=imgs[0],self.focusElement(self.imgElm))}if("IMG"!==self.imgElm.nodeName&&(self.imgElm=null),self.imgElm){var src=self.dom.getAttrib(self.imgElm,"src");if(self.$title.val(self.dom.getAttrib(self.imgElm,"title")),self.$alt.val(self.dom.getAttrib(self.imgElm,"alt")),linkType=self.dom.getAttrib(self.imgElm,"data-linktype")){self.linkType=linkType,self.linkTypes[self.linkType].load(self.imgElm);var scale=self.dom.getAttrib(self.imgElm,"data-scale");scale&&self.$scale.val(scale),$("#tinylink-"+self.linkType,self.modal.$modal).trigger("click")}else src&&self.guessImageLink(src);for(var className=self.dom.getAttrib(self.imgElm,"class"),klasses=className.split(" "),i=0;i1&&this.$subject.val(decodeURIComponent(split[1]))}else"#"===href[0]?(this.linkType="anchor",this.linkTypes.anchor.set(href.substring(1))):(this.linkType="external",this.linkTypes.external.set(href))},setSelectElement:function($el,val){$el.find("option:selected").prop("selected",!1),val&&$el.find('option[value="'+val+'"]').prop("selected",!0)},reinitialize:function(){this.modal.options.html=this.generateModalHtml()}});return LinkModal}),function(root){define("tinymce-modern-theme",["tinymce"],function(){return function(){tinymce.ThemeManager.add("modern",function(editor){function createToolbar(items,size){var buttonGroup,toolbarItems=[];if(items)return each(items.split(/[ ,]/),function(item){function bindSelectorChanged(){function setActiveItem(name){return function(state,args){for(var nodeName,i=args.parents.length;i--&&(nodeName=args.parents[i].nodeName,"OL"!=nodeName&&"UL"!=nodeName););item.active(state&&nodeName==name)}}var selection=editor.selection;"bullist"==itemName&&selection.selectorChanged("ul > li",setActiveItem("UL")),"numlist"==itemName&&selection.selectorChanged("ol > li",setActiveItem("OL")),item.settings.stateSelector&&selection.selectorChanged(item.settings.stateSelector,function(state){item.active(state)},!0),item.settings.disabledStateSelector&&selection.selectorChanged(item.settings.disabledStateSelector,function(state){item.disabled(state)})}var itemName;"|"==item?buttonGroup=null:Factory.has(item)?(item={type:item,size:size},toolbarItems.push(item),buttonGroup=null):(buttonGroup||(buttonGroup={type:"buttongroup",items:[]},toolbarItems.push(buttonGroup)),editor.buttons[item]&&(itemName=item,item=editor.buttons[itemName],"function"==typeof item&&(item=item()),item.type=item.type||"button",item.size=size,item=Factory.create(item),buttonGroup.items.push(item),editor.initialized?bindSelectorChanged():editor.on("init",bindSelectorChanged)))}),{type:"toolbar",layout:"flow",items:toolbarItems}}function createToolbars(size){function addToolbar(items){return items?(toolbars.push(createToolbar(items,size)),!0):void 0}var toolbars=[];if(tinymce.isArray(settings.toolbar)){if(0===settings.toolbar.length)return;tinymce.each(settings.toolbar,function(toolbar,i){settings["toolbar"+(i+1)]=toolbar}),delete settings.toolbar}for(var i=1;10>i&&addToolbar(settings["toolbar"+i]);i++);return toolbars.length||settings.toolbar===!1||addToolbar(settings.toolbar||defaultToolbar),toolbars.length?{type:"panel",layout:"stack",classes:"toolbar-grp",ariaRoot:!0,ariaRemember:!0,items:toolbars}:void 0}function createMenuButtons(){function createMenuItem(name){var menuItem;return"|"==name?{text:"|"}:menuItem=editor.menuItems[name]}function createMenu(context){var menuButton,menu,menuItems,isUserDefined,removedMenuItems;if(removedMenuItems=tinymce.makeMap((settings.removed_menuitems||"").split(/[ ,]/)),settings.menu?(menu=settings.menu[context],isUserDefined=!0):menu=defaultMenus[context],menu){menuButton={text:menu.title},menuItems=[],each((menu.items||"").split(/[ ,]/),function(item){var menuItem=createMenuItem(item);menuItem&&!removedMenuItems[item]&&menuItems.push(createMenuItem(item))}),isUserDefined||each(editor.menuItems,function(menuItem){menuItem.context==context&&("before"==menuItem.separator&&menuItems.push({text:"|"}),menuItem.prependToContext?menuItems.unshift(menuItem):menuItems.push(menuItem),"after"==menuItem.separator&&menuItems.push({text:"|"}))});for(var i=0;i=0;i--)for(y=toolbars.length-1;y>=0;y--)if(toolbars[y].predicate(parentsAndSelf[i]))return{toolbar:toolbars[y],element:parentsAndSelf[i]};return null}var scrollContainer;editor.on("click keyup setContent",function(e){("setcontent"!=e.type||e.selection)&&tinymce.util.Delay.setEditorTimeout(editor,function(){var match;match=findFrontMostMatch(editor.selection.getNode()),match?(hideAllContextToolbars(),showContextToolbar(match)):hideAllContextToolbars()})}),editor.on("blur hide",hideAllContextToolbars),editor.on("ObjectResizeStart",function(){var match=findFrontMostMatch(editor.selection.getNode());match&&match.toolbar.panel&&match.toolbar.panel.hide()}),editor.on("nodeChange ResizeEditor ResizeWindow",repositionHandler),editor.on("remove",function(){tinymce.each(getContextToolbars(),function(toolbar){toolbar.panel&&toolbar.panel.remove()}),editor.contextToolbars={}})}function renderInlineUI(args){function reposition(){if(panel&&panel.moveRel&&panel.visible()&&!panel._fixed){var scrollContainer=editor.selection.getScrollContainer(),body=editor.getBody(),deltaX=0,deltaY=0;if(scrollContainer){var bodyPos=DOM.getPos(body),scrollContainerPos=DOM.getPos(scrollContainer);deltaX=Math.max(0,scrollContainerPos.x-bodyPos.x),deltaY=Math.max(0,scrollContainerPos.y-bodyPos.y)}panel.fixed(!1).moveRel(body,editor.rtl?["tr-br","br-tr"]:["tl-bl","bl-tl","tr-br"]).moveBy(deltaX,deltaY)}}function show(){panel&&(panel.show(),reposition(),DOM.addClass(editor.getBody(),"mce-edit-focus"))}function hide(){panel&&(panel.hide(),FloatPanel.hideAll(),DOM.removeClass(editor.getBody(),"mce-edit-focus"))}function render(){return panel?void(panel.visible()||show()):(panel=self.panel=Factory.create({type:inlineToolbarContainer?"panel":"floatpanel",role:"application",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",align:"stretch",autohide:!1,autofix:!0,fixed:!!inlineToolbarContainer,border:1,items:[settings.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:createMenuButtons()},createToolbars(settings.toolbar_items_size)]}),editor.fire("BeforeRenderUI"),panel.renderTo(inlineToolbarContainer||document.body).reflow(),addAccessibilityKeys(panel),show(),addContextualToolbars(),editor.on("nodeChange",reposition),editor.on("activate",show),editor.on("deactivate",hide),void editor.nodeChanged())}var panel,inlineToolbarContainer;return settings.fixed_toolbar_container&&(inlineToolbarContainer=DOM.select(settings.fixed_toolbar_container)[0]),settings.content_editable=!0,editor.on("focus",function(){args.skinUiCss?tinymce.DOM.styleSheetLoader.load(args.skinUiCss,render,render):render()}),editor.on("blur hide",hide),editor.on("remove",function(){panel&&(panel.remove(),panel=null)}),args.skinUiCss&&tinymce.DOM.styleSheetLoader.load(args.skinUiCss,function(){editor.fire("SkinLoaded")}),{}}function renderIframeUI(args){function switchMode(){return function(e){"readonly"==e.mode?panel.find("*").disabled(!0):panel.find("*").disabled(!1)}}var panel,resizeHandleCtrl,startSize;return args.skinUiCss&&tinymce.DOM.styleSheetLoader.load(args.skinUiCss,function(){editor.fire("SkinLoaded")}),panel=self.panel=Factory.create({type:"panel",role:"application",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[settings.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:createMenuButtons()},createToolbars(settings.toolbar_items_size),{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),settings.resize!==!1&&(resizeHandleCtrl={type:"resizehandle",direction:settings.resize,onResizeStart:function(){var elm=editor.getContentAreaContainer().firstChild;startSize={width:elm.clientWidth,height:elm.clientHeight}},onResize:function(e){"both"==settings.resize?resizeTo(startSize.width+e.deltaX,startSize.height+e.deltaY):resizeTo(null,startSize.height+e.deltaY)}}),settings.statusbar!==!1&&panel.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",ariaRoot:!0,items:[{type:"elementpath"},resizeHandleCtrl]}),settings.readonly&&panel.find("*").disabled(!0),editor.fire("BeforeRenderUI"),editor.on("SwitchMode",switchMode()),panel.renderBefore(args.targetNode).reflow(),settings.width&&tinymce.DOM.setStyle(panel.getEl(),"width",settings.width),editor.on("remove",function(){panel.remove(),panel=null}),addAccessibilityKeys(panel),addContextualToolbars(),{iframeContainer:panel.find("#iframe")[0].getEl(),editorContainer:panel.getEl()}}var self=this,settings=editor.settings,Factory=tinymce.ui.Factory,each=tinymce.each,DOM=tinymce.DOM,Rect=tinymce.geom.Rect,FloatPanel=tinymce.ui.FloatPanel,defaultMenus={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste pastetext | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},defaultToolbar="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";self.renderUI=function(args){var skin=settings.skin!==!1?settings.skin||"lightgray":!1; +if(skin){var skinUrl=settings.skin_url;skinUrl=skinUrl?editor.documentBaseURI.toAbsolute(skinUrl):tinymce.baseURL+"/skins/"+skin,tinymce.Env.documentMode<=7?args.skinUiCss=skinUrl+"/skin.ie7.min.css":args.skinUiCss=skinUrl+"/skin.min.css",editor.contentCSS.push(skinUrl+"/content"+(editor.inline?".inline":"")+".min.css")}return editor.on("ProgressState",function(e){self.throbber=self.throbber||new tinymce.ui.Throbber(self.panel.getEl("body")),e.state?self.throbber.show(e.time):self.throbber.hide()}),settings.inline?renderInlineUI(args):renderIframeUI(args)},self.resizeTo=resizeTo,self.resizeBy=resizeBy})}.apply(root,arguments)})}(this),function(root){define("tinymce-advlist",["tinymce"],function(){return function(){tinymce.PluginManager.add("advlist",function(editor){function buildMenuItems(listName,styleValues){var items=[];return tinymce.each(styleValues.split(/[ ,]/),function(styleValue){items.push({text:styleValue.replace(/\-/g," ").replace(/\b\w/g,function(chr){return chr.toUpperCase()}),data:"default"==styleValue?"":styleValue})}),items}function applyListFormat(listName,styleValue){editor.undoManager.transact(function(){var list,dom=editor.dom,sel=editor.selection;list=dom.getParent(sel.getNode(),"ol,ul"),list&&list.nodeName==listName&&styleValue!==!1||editor.execCommand("UL"==listName?"InsertUnorderedList":"InsertOrderedList"),styleValue=styleValue===!1?lastStyles[listName]:styleValue,lastStyles[listName]=styleValue,list=dom.getParent(sel.getNode(),"ol,ul"),list&&(dom.setStyle(list,"listStyleType",styleValue?styleValue:null),list.removeAttribute("data-mce-style")),editor.focus()})}function updateSelection(e){var listStyleType=editor.dom.getStyle(editor.dom.getParent(editor.selection.getNode(),"ol,ul"),"listStyleType")||"";e.control.items().each(function(ctrl){ctrl.active(ctrl.settings.data===listStyleType)})}var olMenuItems,ulMenuItems,lastStyles={};olMenuItems=buildMenuItems("OL",editor.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),ulMenuItems=buildMenuItems("UL",editor.getParam("advlist_bullet_styles","default,circle,disc,square")),editor.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:olMenuItems,onshow:updateSelection,onselect:function(e){applyListFormat("OL",e.control.settings.data)},onclick:function(){applyListFormat("OL",!1)}}),editor.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:ulMenuItems,onshow:updateSelection,onselect:function(e){applyListFormat("UL",e.control.settings.data)},onclick:function(){applyListFormat("UL",!1)}})})}.apply(root,arguments)})}(this),function(root){define("tinymce-anchor",["tinymce"],function(){return function(){tinymce.PluginManager.add("anchor",function(editor){function showDialog(){var selectedNode=editor.selection.getNode(),name="",isAnchor="A"==selectedNode.tagName&&""===editor.dom.getAttrib(selectedNode,"href");isAnchor&&(name=selectedNode.name||selectedNode.id||""),editor.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:name},onsubmit:function(e){var id=e.data.name;isAnchor?selectedNode.id=id:(editor.selection.collapse(!0),editor.execCommand("mceInsertContent",!1,editor.dom.createHTML("a",{id:id})))}})}editor.addCommand("mceAnchor",showDialog),editor.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:showDialog,stateSelector:"a:not([href])"}),editor.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:showDialog})})}.apply(root,arguments)})}(this),function(root){define("tinymce-autolink",["tinymce"],function(){return function(){tinymce.PluginManager.add("autolink",function(editor){function handleEclipse(editor){parseCurrentLine(editor,-1,"(",!0)}function handleSpacebar(editor){parseCurrentLine(editor,0,"",!0)}function handleEnter(editor){parseCurrentLine(editor,-1,"",!1)}function parseCurrentLine(editor,end_offset,delimiter){function scopeIndex(container,index){if(0>index&&(index=0),3==container.nodeType){var len=container.data.length;index>len&&(index=len)}return index}function setStart(container,offset){1!=container.nodeType||container.hasChildNodes()?rng.setStart(container,scopeIndex(container,offset)):rng.setStartBefore(container)}function setEnd(container,offset){1!=container.nodeType||container.hasChildNodes()?rng.setEnd(container,scopeIndex(container,offset)):rng.setEndAfter(container)}var rng,end,start,endContainer,bookmark,text,matches,prev,len,rngText;if("A"!=editor.selection.getNode().tagName){if(rng=editor.selection.getRng(!0).cloneRange(),rng.startOffset<5){if(prev=rng.endContainer.previousSibling,!prev){if(!rng.endContainer.firstChild||!rng.endContainer.firstChild.nextSibling)return;prev=rng.endContainer.firstChild.nextSibling}if(len=prev.length,setStart(prev,len),setEnd(prev,len),rng.endOffset<5)return;end=rng.endOffset,endContainer=prev}else{if(endContainer=rng.endContainer,3!=endContainer.nodeType&&endContainer.firstChild){for(;3!=endContainer.nodeType&&endContainer.firstChild;)endContainer=endContainer.firstChild;3==endContainer.nodeType&&(setStart(endContainer,0),setEnd(endContainer,endContainer.nodeValue.length))}end=1==rng.endOffset?2:rng.endOffset-1-end_offset}start=end;do setStart(endContainer,end>=2?end-2:0),setEnd(endContainer,end>=1?end-1:0),end-=1,rngText=rng.toString();while(" "!=rngText&&""!==rngText&&160!=rngText.charCodeAt(0)&&end-2>=0&&rngText!=delimiter);rng.toString()==delimiter||160==rng.toString().charCodeAt(0)?(setStart(endContainer,end),setEnd(endContainer,start),end+=1):0===rng.startOffset?(setStart(endContainer,0),setEnd(endContainer,start)):(setStart(endContainer,end),setEnd(endContainer,start)),text=rng.toString(),"."==text.charAt(text.length-1)&&setEnd(endContainer,start-1),text=rng.toString(),matches=text.match(AutoLinkPattern),matches&&("www."==matches[1]?matches[1]="http://www.":/@$/.test(matches[1])&&!/^mailto:/.test(matches[1])&&(matches[1]="mailto:"+matches[1]),bookmark=editor.selection.getBookmark(),editor.selection.setRng(rng),editor.execCommand("createlink",!1,matches[1]+matches[2]),editor.selection.moveToBookmark(bookmark),editor.nodeChanged())}}var AutoUrlDetectState,AutoLinkPattern=/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i;return editor.settings.autolink_pattern&&(AutoLinkPattern=editor.settings.autolink_pattern),editor.on("keydown",function(e){return 13==e.keyCode?handleEnter(editor):void 0}),tinymce.Env.ie?void editor.on("focus",function(){if(!AutoUrlDetectState){AutoUrlDetectState=!0;try{editor.execCommand("AutoUrlDetect",!1,!0)}catch(ex){}}}):(editor.on("keypress",function(e){return 41==e.keyCode?handleEclipse(editor):void 0}),void editor.on("keyup",function(e){return 32==e.keyCode?handleSpacebar(editor):void 0}))})}.apply(root,arguments)})}(this),function(root){define("tinymce-autoresize",["tinymce"],function(){return function(){tinymce.PluginManager.add("autoresize",function(editor){function isFullscreen(){return editor.plugins.fullscreen&&editor.plugins.fullscreen.isFullscreen()}function resize(e){var deltaSize,doc,body,docElm,resizeHeight,myHeight,marginTop,marginBottom,paddingTop,paddingBottom,borderTop,borderBottom,DOM=tinymce.DOM;if(doc=editor.getDoc()){if(body=doc.body,docElm=doc.documentElement,resizeHeight=settings.autoresize_min_height,!body||e&&"setcontent"===e.type&&e.initial||isFullscreen())return void(body&&docElm&&(body.style.overflowY="auto",docElm.style.overflowY="auto"));marginTop=editor.dom.getStyle(body,"margin-top",!0),marginBottom=editor.dom.getStyle(body,"margin-bottom",!0),paddingTop=editor.dom.getStyle(body,"padding-top",!0),paddingBottom=editor.dom.getStyle(body,"padding-bottom",!0),borderTop=editor.dom.getStyle(body,"border-top-width",!0),borderBottom=editor.dom.getStyle(body,"border-bottom-width",!0),myHeight=body.offsetHeight+parseInt(marginTop,10)+parseInt(marginBottom,10)+parseInt(paddingTop,10)+parseInt(paddingBottom,10)+parseInt(borderTop,10)+parseInt(borderBottom,10),(isNaN(myHeight)||0>=myHeight)&&(myHeight=tinymce.Env.ie?body.scrollHeight:tinymce.Env.webkit&&0===body.clientHeight?0:body.offsetHeight),myHeight>settings.autoresize_min_height&&(resizeHeight=myHeight),settings.autoresize_max_height&&myHeight>settings.autoresize_max_height?(resizeHeight=settings.autoresize_max_height,body.style.overflowY="auto",docElm.style.overflowY="auto"):(body.style.overflowY="hidden",docElm.style.overflowY="hidden",body.scrollTop=0),resizeHeight!==oldSize&&(deltaSize=resizeHeight-oldSize,DOM.setStyle(editor.iframeElement,"height",resizeHeight+"px"),oldSize=resizeHeight,tinymce.isWebKit&&0>deltaSize&&resize(e))}}function wait(times,interval,callback){tinymce.util.Delay.setEditorTimeout(editor,function(){resize({}),times--?wait(times,interval,callback):callback&&callback()},interval)}var settings=editor.settings,oldSize=0;editor.settings.inline||(settings.autoresize_min_height=parseInt(editor.getParam("autoresize_min_height",editor.getElement().offsetHeight),10),settings.autoresize_max_height=parseInt(editor.getParam("autoresize_max_height",0),10),editor.on("init",function(){var overflowPadding,bottomMargin;overflowPadding=editor.getParam("autoresize_overflow_padding",1),bottomMargin=editor.getParam("autoresize_bottom_margin",50),overflowPadding!==!1&&editor.dom.setStyles(editor.getBody(),{paddingLeft:overflowPadding,paddingRight:overflowPadding}),bottomMargin!==!1&&editor.dom.setStyles(editor.getBody(),{paddingBottom:bottomMargin})}),editor.on("nodechange setcontent keyup FullscreenStateChanged",resize),editor.getParam("autoresize_on_init",!0)&&editor.on("init",function(){wait(20,100,function(){wait(5,1e3)})}),editor.addCommand("mceAutoResize",resize))})}.apply(root,arguments)})}(this),function(root){define("tinymce-autosave",["tinymce"],function(){return function(){tinymce._beforeUnloadHandler=function(){var msg;return tinymce.each(tinymce.editors,function(editor){editor.plugins.autosave&&editor.plugins.autosave.storeDraft(),!msg&&editor.isDirty()&&editor.getParam("autosave_ask_before_unload",!0)&&(msg=editor.translate("You have unsaved changes are you sure you want to navigate away?"))}),msg},tinymce.PluginManager.add("autosave",function(editor){function parseTime(time,defaultTime){var multipels={s:1e3,m:6e4};return time=/^(\d+)([ms]?)$/.exec(""+(time||defaultTime)),(time[2]?multipels[time[2]]:1)*parseInt(time,10)}function hasDraft(){var time=parseInt(LocalStorage.getItem(prefix+"time"),10)||0;return(new Date).getTime()-time>settings.autosave_retention?(removeDraft(!1),!1):!0}function removeDraft(fire){LocalStorage.removeItem(prefix+"draft"),LocalStorage.removeItem(prefix+"time"),fire!==!1&&editor.fire("RemoveDraft")}function storeDraft(){!isEmpty()&&editor.isDirty()&&(LocalStorage.setItem(prefix+"draft",editor.getContent({format:"raw",no_events:!0})),LocalStorage.setItem(prefix+"time",(new Date).getTime()),editor.fire("StoreDraft"))}function restoreDraft(){hasDraft()&&(editor.setContent(LocalStorage.getItem(prefix+"draft"),{format:"raw"}),editor.fire("RestoreDraft"))}function startStoreDraft(){started||(setInterval(function(){editor.removed||storeDraft()},settings.autosave_interval),started=!0)}function postRender(){var self=this;self.disabled(!hasDraft()),editor.on("StoreDraft RestoreDraft RemoveDraft",function(){self.disabled(!hasDraft())}),startStoreDraft()}function restoreLastDraft(){editor.undoManager.beforeChange(),restoreDraft(),removeDraft(),editor.undoManager.add()}function isEmpty(html){var forcedRootBlockName=editor.settings.forced_root_block;return html=tinymce.trim("undefined"==typeof html?editor.getBody().innerHTML:html),""===html||new RegExp("^<"+forcedRootBlockName+"[^>]*>(( | |[ ]|]*>)+?|)|
    $","i").test(html)}var prefix,started,settings=editor.settings,LocalStorage=tinymce.util.LocalStorage;prefix=settings.autosave_prefix||"tinymce-autosave-{path}{query}-{id}-",prefix=prefix.replace(/\{path\}/g,document.location.pathname),prefix=prefix.replace(/\{query\}/g,document.location.search),prefix=prefix.replace(/\{id\}/g,editor.id),settings.autosave_interval=parseTime(settings.autosave_interval,"30s"),settings.autosave_retention=parseTime(settings.autosave_retention,"20m"),editor.addButton("restoredraft",{title:"Restore last draft",onclick:restoreLastDraft,onPostRender:postRender}),editor.addMenuItem("restoredraft",{text:"Restore last draft",onclick:restoreLastDraft,onPostRender:postRender,context:"file"}),editor.settings.autosave_restore_when_empty!==!1&&(editor.on("init",function(){hasDraft()&&isEmpty()&&restoreDraft()}),editor.on("saveContent",function(){removeDraft()})),window.onbeforeunload=tinymce._beforeUnloadHandler,this.hasDraft=hasDraft,this.storeDraft=storeDraft,this.restoreDraft=restoreDraft,this.removeDraft=removeDraft,this.isEmpty=isEmpty})}.apply(root,arguments)})}(this),function(root){define("tinymce-bbcode",["tinymce"],function(){return function(){!function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(ed){var self=this,dialect=ed.getParam("bbcode_dialect","punbb").toLowerCase();ed.on("beforeSetContent",function(e){e.content=self["_"+dialect+"_bbcode2html"](e.content)}),ed.on("postProcess",function(e){e.set&&(e.content=self["_"+dialect+"_bbcode2html"](e.content)),e.get&&(e.content=self["_"+dialect+"_html2bbcode"](e.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Ephox Corp",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(s){function rep(re,str){s=s.replace(re,str)}return s=tinymce.trim(s),rep(/(.*?)<\/a>/gi,"[url=$1]$2[/url]"),rep(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),rep(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),rep(/(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),rep(/(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),rep(/(.*?)<\/span>/gi,"[color=$1]$2[/color]"),rep(/(.*?)<\/font>/gi,"[color=$1]$2[/color]"),rep(/(.*?)<\/span>/gi,"[size=$1]$2[/size]"),rep(/(.*?)<\/font>/gi,"$1"),rep(//gi,"[img]$1[/img]"),rep(/(.*?)<\/span>/gi,"[code]$1[/code]"),rep(/(.*?)<\/span>/gi,"[quote]$1[/quote]"),rep(/(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),rep(/(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),rep(/(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),rep(/(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),rep(/(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),rep(/(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),rep(/<\/(strong|b)>/gi,"[/b]"),rep(/<(strong|b)>/gi,"[b]"),rep(/<\/(em|i)>/gi,"[/i]"),rep(/<(em|i)>/gi,"[i]"),rep(/<\/u>/gi,"[/u]"),rep(/(.*?)<\/span>/gi,"[u]$1[/u]"),rep(//gi,"[u]"),rep(/]*>/gi,"[quote]"),rep(/<\/blockquote>/gi,"[/quote]"),rep(/
    /gi,"\n"),rep(//gi,"\n"),rep(/
    /gi,"\n"),rep(/

    /gi,""),rep(/<\/p>/gi,"\n"),rep(/ |\u00a0/gi," "),rep(/"/gi,'"'),rep(/</gi,"<"),rep(/>/gi,">"),rep(/&/gi,"&"),s},_punbb_bbcode2html:function(s){function rep(re,str){s=s.replace(re,str)}return s=tinymce.trim(s),rep(/\n/gi,"
    "),rep(/\[b\]/gi,""),rep(/\[\/b\]/gi,""),rep(/\[i\]/gi,""),rep(/\[\/i\]/gi,""),rep(/\[u\]/gi,""),rep(/\[\/u\]/gi,""),rep(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'$2'),rep(/\[url\](.*?)\[\/url\]/gi,'$1'),rep(/\[img\](.*?)\[\/img\]/gi,''),rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,'$2'),rep(/\[code\](.*?)\[\/code\]/gi,'$1 '),rep(/\[quote.*?\](.*?)\[\/quote\]/gi,'$1 '),s}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)}()}.apply(root,arguments)})}(this),function(root){define("tinymce-charmap",["tinymce"],function(){return function(){tinymce.PluginManager.add("charmap",function(editor){function getDefaultCharMap(){return[["160","no-break space"],["173","soft hyphen"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"]]}function charmapFilter(charmap){return tinymce.util.Tools.grep(charmap,function(item){return isArray(item)&&2==item.length})}function getCharsFromSetting(settingValue){return isArray(settingValue)?[].concat(charmapFilter(settingValue)):"function"==typeof settingValue?settingValue():[]}function extendCharMap(charmap){var settings=editor.settings;return settings.charmap&&(charmap=getCharsFromSetting(settings.charmap)),settings.charmap_append?[].concat(charmap).concat(getCharsFromSetting(settings.charmap_append)):charmap}function getCharMap(){return extendCharMap(getDefaultCharMap())}function insertChar(chr){editor.fire("insertCustomChar",{chr:chr}).chr,editor.execCommand("mceInsertContent",!1,chr)}function showDialog(){function getParentTd(elm){for(;elm;){if("TD"==elm.nodeName)return elm;elm=elm.parentNode}}var gridHtml,x,y,win;gridHtml='';var charmap=getCharMap(),width=Math.min(charmap.length,25),height=Math.ceil(charmap.length/width);for(y=0;height>y;y++){for(gridHtml+="",x=0;width>x;x++){var index=y*width+x;if(index
    '+(chr?String.fromCharCode(parseInt(chr[0],10)):" ")+"
    "}else gridHtml+="
    "}gridHtml+="";var charMapPanel={type:"container",html:gridHtml,onclick:function(e){var target=e.target;/^(TD|DIV)$/.test(target.nodeName)&&getParentTd(target).firstChild&&(insertChar(tinymce.trim(target.innerText||target.textContent)),e.ctrlKey||win.close())},onmouseover:function(e){var td=getParentTd(e.target);td&&td.firstChild?(win.find("#preview").text(td.firstChild.firstChild.data),win.find("#previewTitle").text(td.title)):(win.find("#preview").text(" "),win.find("#previewTitle").text(" "))}};win=editor.windowManager.open({title:"Special character",spacing:10,padding:10,items:[charMapPanel,{type:"container",layout:"flex",direction:"column",align:"center",spacing:5,minWidth:160,minHeight:160,items:[{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:140,minHeight:80},{type:"label",name:"previewTitle",text:" ",style:"text-align: center",border:1,minWidth:140,minHeight:80}]}],buttons:[{text:"Close",onclick:function(){win.close()}}]})}var isArray=tinymce.util.Tools.isArray;return editor.addCommand("mceShowCharmap",showDialog),editor.addButton("charmap",{icon:"charmap",tooltip:"Special character",cmd:"mceShowCharmap"}),editor.addMenuItem("charmap",{icon:"charmap",text:"Special character",cmd:"mceShowCharmap",context:"insert"}),{getCharMap:getCharMap,insertChar:insertChar}})}.apply(root,arguments)})}(this),function(root){define("tinymce-code",["tinymce"],function(){return function(){tinymce.PluginManager.add("code",function(editor){function showDialog(){var win=editor.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:editor.getParam("code_dialog_width",600),minHeight:editor.getParam("code_dialog_height",Math.min(tinymce.DOM.getViewPort().h-200,500)),spellcheck:!1,style:"direction: ltr; text-align: left"},onSubmit:function(e){editor.focus(),editor.undoManager.transact(function(){editor.setContent(e.data.code)}),editor.selection.setCursorLocation(),editor.nodeChanged()}});win.find("#code").value(editor.getContent({source_view:!0}))}editor.addCommand("mceCodeEditor",showDialog),editor.addButton("code",{icon:"code",tooltip:"Source code",onclick:showDialog}),editor.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:showDialog})})}.apply(root,arguments)})}(this),function(root){define("tinymce-colorpicker",["tinymce"],function(){return function(){tinymce.PluginManager.add("colorpicker",function(editor){function colorPickerCallback(callback,value){function setColor(value){var color=new tinymce.util.Color(value),rgb=color.toRgb();win.fromJSON({r:rgb.r,g:rgb.g,b:rgb.b,hex:color.toHex().substr(1)}),showPreview(color.toHex())}function showPreview(hexColor){win.find("#preview")[0].getEl().style.background=hexColor}var win=editor.windowManager.open({title:"Color",items:{type:"container",layout:"flex",direction:"row",align:"stretch",padding:5,spacing:10,items:[{type:"colorpicker",value:value,onchange:function(){var rgb=this.rgb();win&&(win.find("#r").value(rgb.r),win.find("#g").value(rgb.g),win.find("#b").value(rgb.b),win.find("#hex").value(this.value().substr(1)),showPreview(this.value()))}},{type:"form",padding:0,labelGap:5,defaults:{type:"textbox",size:7,value:"0",flex:1,spellcheck:!1,onchange:function(){var name,value,colorPickerCtrl=win.find("colorpicker")[0];return name=this.name(),value=this.value(),"hex"==name?(value="#"+value,setColor(value),void colorPickerCtrl.value(value)):(value={r:win.find("#r").value(),g:win.find("#g").value(),b:win.find("#b").value()},colorPickerCtrl.value(value),void setColor(value))}},items:[{name:"r",label:"R",autofocus:1},{name:"g",label:"G"},{name:"b",label:"B"},{name:"hex",label:"#",value:"000000"},{name:"preview",type:"container",border:1}]}]},onSubmit:function(){callback("#"+this.toJSON().hex)}});setColor(value)}editor.settings.color_picker_callback||(editor.settings.color_picker_callback=colorPickerCallback)})}.apply(root,arguments)})}(this),function(root){define("tinymce-contextmenu",["tinymce"],function(){return function(){tinymce.PluginManager.add("contextmenu",function(editor){var menu,contextmenuNeverUseNative=editor.settings.contextmenu_never_use_native;editor.on("contextmenu",function(e){var contextmenu,doc=editor.getDoc();if(!e.ctrlKey||contextmenuNeverUseNative){if(e.preventDefault(),tinymce.Env.mac&&tinymce.Env.webkit&&2==e.button&&doc.caretRangeFromPoint&&editor.selection.setRng(doc.caretRangeFromPoint(e.x,e.y)),contextmenu=editor.settings.contextmenu||"link image inserttable | cell row column deletetable",menu)menu.show();else{var items=[];tinymce.each(contextmenu.split(/[ ,]/),function(name){var item=editor.menuItems[name];"|"==name&&(item={text:name}),item&&(item.shortcut="",items.push(item))});for(var i=0;i'}),emoticonsHtml+=""}),emoticonsHtml+=""}var emoticons=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];editor.addButton("emoticons",{type:"panelbutton",panel:{role:"application",autohide:!0,html:getHtml,onclick:function(e){var linkElm=editor.dom.getParent(e.target,"a");linkElm&&(editor.insertContent(''+linkElm.getAttribute('),this.hide())}},tooltip:"Emoticons"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-fullpage",["tinymce"],function(){return function(){tinymce.PluginManager.add("fullpage",function(editor){function showDialog(){var data=htmlToData();editor.windowManager.open({title:"Document properties",data:data,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){dataToHtml(tinymce.extend(data,e.data))}})}function htmlToData(){function getAttr(elm,name){var value=elm.attr(name);return value||""}var elm,matches,headerFragment=parseHeader(),data={};return data.fontface=editor.getParam("fullpage_default_fontface",""),data.fontsize=editor.getParam("fullpage_default_fontsize",""),elm=headerFragment.firstChild,7==elm.type&&(data.xml_pi=!0,matches=/encoding="([^"]+)"/.exec(elm.value),matches&&(data.docencoding=matches[1])),elm=headerFragment.getAll("#doctype")[0], +elm&&(data.doctype=""),elm=headerFragment.getAll("title")[0],elm&&elm.firstChild&&(data.title=elm.firstChild.value),each(headerFragment.getAll("meta"),function(meta){var matches,name=meta.attr("name"),httpEquiv=meta.attr("http-equiv");name?data[name.toLowerCase()]=meta.attr("content"):"Content-Type"==httpEquiv&&(matches=/charset\s*=\s*(.*)\s*/gi.exec(meta.attr("content")),matches&&(data.docencoding=matches[1]))}),elm=headerFragment.getAll("html")[0],elm&&(data.langcode=getAttr(elm,"lang")||getAttr(elm,"xml:lang")),data.stylesheets=[],tinymce.each(headerFragment.getAll("link"),function(link){"stylesheet"==link.attr("rel")&&data.stylesheets.push(link.attr("href"))}),elm=headerFragment.getAll("body")[0],elm&&(data.langdir=getAttr(elm,"dir"),data.style=getAttr(elm,"style"),data.visited_color=getAttr(elm,"vlink"),data.link_color=getAttr(elm,"link"),data.active_color=getAttr(elm,"alink")),data}function dataToHtml(data){function setAttr(elm,name,value){elm.attr(name,value?value:void 0)}function addHeadNode(node){headElement.firstChild?headElement.insert(node,headElement.firstChild):headElement.append(node)}var headerFragment,headElement,html,elm,value,dom=editor.dom;headerFragment=parseHeader(),headElement=headerFragment.getAll("head")[0],headElement||(elm=headerFragment.getAll("html")[0],headElement=new Node("head",1),elm.firstChild?elm.insert(headElement,elm.firstChild,!0):elm.append(headElement)),elm=headerFragment.firstChild,data.xml_pi?(value='version="1.0"',data.docencoding&&(value+=' encoding="'+data.docencoding+'"'),7!=elm.type&&(elm=new Node("xml",7),headerFragment.insert(elm,headerFragment.firstChild,!0)),elm.value=value):elm&&7==elm.type&&elm.remove(),elm=headerFragment.getAll("#doctype")[0],data.doctype?(elm||(elm=new Node("#doctype",10),data.xml_pi?headerFragment.insert(elm,headerFragment.firstChild):addHeadNode(elm)),elm.value=data.doctype.substring(9,data.doctype.length-1)):elm&&elm.remove(),elm=null,each(headerFragment.getAll("meta"),function(meta){"Content-Type"==meta.attr("http-equiv")&&(elm=meta)}),data.docencoding?(elm||(elm=new Node("meta",1),elm.attr("http-equiv","Content-Type"),elm.shortEnded=!0,addHeadNode(elm)),elm.attr("content","text/html; charset="+data.docencoding)):elm&&elm.remove(),elm=headerFragment.getAll("title")[0],data.title?(elm?elm.empty():(elm=new Node("title",1),addHeadNode(elm)),elm.append(new Node("#text",3)).value=data.title):elm&&elm.remove(),each("keywords,description,author,copyright,robots".split(","),function(name){var i,meta,nodes=headerFragment.getAll("meta"),value=data[name];for(i=0;i"))}function parseHeader(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(head)}function setContent(evt){function low(s){return s.replace(/<\/?[A-Z]+/g,function(a){return a.toLowerCase()})}var startPos,endPos,headerFragment,elm,content=evt.content,styles="",dom=editor.dom;if(!evt.selection&&!("raw"==evt.format&&head||evt.source_view&&editor.getParam("fullpage_hide_in_source_view"))){0!==content.length||evt.source_view||(content=tinymce.trim(head)+"\n"+tinymce.trim(content)+"\n"+tinymce.trim(foot)),content=content.replace(/<(\/?)BODY/gi,"<$1body"),startPos=content.indexOf("",startPos),head=low(content.substring(0,startPos+1)),endPos=content.indexOf("\n"),headerFragment=parseHeader(),each(headerFragment.getAll("style"),function(node){node.firstChild&&(styles+=node.firstChild.value)}),elm=headerFragment.getAll("body")[0],elm&&dom.setAttribs(editor.getBody(),{style:elm.attr("style")||"",dir:elm.attr("dir")||"",vLink:elm.attr("vlink")||"",link:elm.attr("link")||"",aLink:elm.attr("alink")||""}),dom.remove("fullpage_styles");var headElm=editor.getDoc().getElementsByTagName("head")[0];styles&&(dom.add(headElm,"style",{id:"fullpage_styles"},styles),elm=dom.get("fullpage_styles"),elm.styleSheet&&(elm.styleSheet.cssText=styles));var currentStyleSheetsMap={};tinymce.each(headElm.getElementsByTagName("link"),function(stylesheet){"stylesheet"==stylesheet.rel&&stylesheet.getAttribute("data-mce-fullpage")&&(currentStyleSheetsMap[stylesheet.href]=stylesheet)}),tinymce.each(headerFragment.getAll("link"),function(stylesheet){var href=stylesheet.attr("href");currentStyleSheetsMap[href]||"stylesheet"!=stylesheet.attr("rel")||dom.add(headElm,"link",{rel:"stylesheet",text:"text/css",href:href,"data-mce-fullpage":"1"}),delete currentStyleSheetsMap[href]}),tinymce.each(currentStyleSheetsMap,function(stylesheet){stylesheet.parentNode.removeChild(stylesheet)})}}function getDefaultHeader(){var value,header="",styles="";return editor.getParam("fullpage_default_xml_pi")&&(header+='\n'),header+=editor.getParam("fullpage_default_doctype",""),header+="\n\n\n",(value=editor.getParam("fullpage_default_title"))&&(header+=""+value+"\n"),(value=editor.getParam("fullpage_default_encoding"))&&(header+='\n'),(value=editor.getParam("fullpage_default_font_family"))&&(styles+="font-family: "+value+";"),(value=editor.getParam("fullpage_default_font_size"))&&(styles+="font-size: "+value+";"),(value=editor.getParam("fullpage_default_text_color"))&&(styles+="color: "+value+";"),header+="\n\n"}function getContent(evt){evt.selection||evt.source_view&&editor.getParam("fullpage_hide_in_source_view")||(evt.content=tinymce.trim(head)+"\n"+tinymce.trim(evt.content)+"\n"+tinymce.trim(foot))}var head,foot,each=tinymce.each,Node=tinymce.html.Node;editor.addCommand("mceFullPageProperties",showDialog),editor.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),editor.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),editor.on("BeforeSetContent",setContent),editor.on("GetContent",getContent)})}.apply(root,arguments)})}(this),function(root){define("tinymce-fullscreen",["tinymce"],function(){return function(){tinymce.PluginManager.add("fullscreen",function(editor){function getWindowSize(){var w,h,win=window,doc=document,body=doc.body;return body.offsetWidth&&(w=body.offsetWidth,h=body.offsetHeight),win.innerWidth&&win.innerHeight&&(w=win.innerWidth,h=win.innerHeight),{w:w,h:h}}function getScrollPos(){var vp=tinymce.DOM.getViewPort();return{x:vp.x,y:vp.y}}function setScrollPos(pos){scrollTo(pos.x,pos.y)}function toggleFullscreen(){function resize(){DOM.setStyle(iframe,"height",getWindowSize().h-(editorContainer.clientHeight-iframe.clientHeight))}var editorContainerStyle,editorContainer,iframe,iframeStyle,body=document.body,documentElement=document.documentElement;fullscreenState=!fullscreenState,editorContainer=editor.getContainer(),editorContainerStyle=editorContainer.style,iframe=editor.getContentAreaContainer().firstChild,iframeStyle=iframe.style,fullscreenState?(scrollPos=getScrollPos(),iframeWidth=iframeStyle.width,iframeHeight=iframeStyle.height,iframeStyle.width=iframeStyle.height="100%",containerWidth=editorContainerStyle.width,containerHeight=editorContainerStyle.height,editorContainerStyle.width=editorContainerStyle.height="",DOM.addClass(body,"mce-fullscreen"),DOM.addClass(documentElement,"mce-fullscreen"),DOM.addClass(editorContainer,"mce-fullscreen"),DOM.bind(window,"resize",resize),resize(),resizeHandler=resize):(iframeStyle.width=iframeWidth,iframeStyle.height=iframeHeight,containerWidth&&(editorContainerStyle.width=containerWidth),containerHeight&&(editorContainerStyle.height=containerHeight),DOM.removeClass(body,"mce-fullscreen"),DOM.removeClass(documentElement,"mce-fullscreen"),DOM.removeClass(editorContainer,"mce-fullscreen"),DOM.unbind(window,"resize",resizeHandler),setScrollPos(scrollPos)),editor.fire("FullscreenStateChanged",{state:fullscreenState})}var iframeWidth,iframeHeight,resizeHandler,containerWidth,containerHeight,scrollPos,fullscreenState=!1,DOM=tinymce.DOM;return editor.settings.inline?void 0:(editor.on("init",function(){editor.addShortcut("Meta+Alt+F","",toggleFullscreen)}),editor.on("remove",function(){resizeHandler&&DOM.unbind(window,"resize",resizeHandler)}),editor.addCommand("mceFullScreen",toggleFullscreen),editor.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Meta+Alt+F",selectable:!0,onClick:toggleFullscreen,onPostRender:function(){var self=this;editor.on("FullscreenStateChanged",function(e){self.active(e.state)})},context:"view"}),editor.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Meta+Alt+F",onClick:toggleFullscreen,onPostRender:function(){var self=this;editor.on("FullscreenStateChanged",function(e){self.active(e.state)})}}),{isFullscreen:function(){return fullscreenState}})})}.apply(root,arguments)})}(this),function(root){define("tinymce-hr",["tinymce"],function(){return function(){tinymce.PluginManager.add("hr",function(editor){editor.addCommand("InsertHorizontalRule",function(){editor.execCommand("mceInsertContent",!1,"


    ")}),editor.addButton("hr",{icon:"hr",tooltip:"Horizontal line",cmd:"InsertHorizontalRule"}),editor.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-image",["tinymce"],function(){return function(){tinymce.PluginManager.add("image",function(editor){function getImageSize(url,callback){function done(width,height){img.parentNode&&img.parentNode.removeChild(img),callback({width:width,height:height})}var img=document.createElement("img");img.onload=function(){done(Math.max(img.width,img.clientWidth),Math.max(img.height,img.clientHeight))},img.onerror=function(){done()};var style=img.style;style.visibility="hidden",style.position="fixed",style.bottom=style.left=0,style.width=style.height="auto",document.body.appendChild(img),img.src=url}function buildListItems(inputList,itemCallback,startItems){function appendItems(values,output){return output=output||[],tinymce.each(values,function(item){var menuItem={text:item.text||item.title};item.menu?menuItem.menu=appendItems(item.menu):(menuItem.value=item.value,itemCallback(menuItem)),output.push(menuItem)}),output}return appendItems(inputList,startItems||[])}function createImageList(callback){return function(){var imageList=editor.settings.image_list;"string"==typeof imageList?tinymce.util.XHR.send({url:imageList,success:function(text){callback(tinymce.util.JSON.parse(text))}}):"function"==typeof imageList?imageList(callback):callback(imageList)}}function showDialog(imageList){function recalcSize(){var widthCtrl,heightCtrl,newWidth,newHeight;widthCtrl=win.find("#width")[0],heightCtrl=win.find("#height")[0],widthCtrl&&heightCtrl&&(newWidth=widthCtrl.value(),newHeight=heightCtrl.value(),win.find("#constrain")[0].checked()&&width&&height&&newWidth&&newHeight&&(width!=newWidth?(newHeight=Math.round(newWidth/width*newHeight),isNaN(newHeight)||heightCtrl.value(newHeight)):(newWidth=Math.round(newHeight/height*newWidth),isNaN(newWidth)||widthCtrl.value(newWidth))),width=newWidth,height=newHeight)}function onSubmitForm(){function waitLoad(imgElm){function selectImage(){imgElm.onload=imgElm.onerror=null,editor.selection&&(editor.selection.select(imgElm),editor.nodeChanged())}imgElm.onload=function(){data.width||data.height||!imageDimensions||dom.setAttribs(imgElm,{width:imgElm.clientWidth,height:imgElm.clientHeight}),selectImage()},imgElm.onerror=selectImage}var figureElm,oldImg;updateStyle(),recalcSize(),data=tinymce.extend(data,win.toJSON()),data.alt||(data.alt=""),data.title||(data.title=""),""===data.width&&(data.width=null),""===data.height&&(data.height=null),data.style||(data.style=null),data={src:data.src,alt:data.alt,title:data.title,width:data.width,height:data.height,style:data.style,caption:data.caption,"class":data["class"]},editor.undoManager.transact(function(){function isTextBlock(node){return editor.schema.getTextBlockElements()[node.nodeName]}if(!data.src)return void(imgElm&&(dom.remove(imgElm),editor.focus(),editor.nodeChanged()));if(""===data.title&&(data.title=null),imgElm?dom.setAttribs(imgElm,data):(data.id="__mcenew",editor.focus(),editor.selection.setContent(dom.createHTML("img",data)),imgElm=dom.get("__mcenew"),dom.setAttrib(imgElm,"id",null)),editor.editorUpload.uploadImagesAuto(),data.caption===!1&&dom.is(imgElm.parentNode,"figure.image")&&(figureElm=imgElm.parentNode,dom.insertAfter(imgElm,figureElm),dom.remove(figureElm)),data.caption!==!0)waitLoad(imgElm);else if(!dom.is(imgElm.parentNode,"figure.image")){oldImg=imgElm,imgElm=imgElm.cloneNode(!0),figureElm=dom.create("figure",{"class":"image"}),figureElm.appendChild(imgElm),figureElm.appendChild(dom.create("figcaption",{contentEditable:!0},"Caption")),figureElm.contentEditable=!1;var textBlock=dom.getParent(oldImg,isTextBlock);textBlock?dom.split(textBlock,oldImg,figureElm):dom.replace(figureElm,oldImg),editor.selection.select(figureElm)}})}function removePixelSuffix(value){return value&&(value=value.replace(/px$/,"")),value}function srcChange(e){var srcURL,prependURL,absoluteURLPattern,meta=e.meta||{};imageListCtrl&&imageListCtrl.value(editor.convertURL(this.value(),"src")),tinymce.each(meta,function(value,key){win.find("#"+key).value(value)}),meta.width||meta.height||(srcURL=editor.convertURL(this.value(),"src"),prependURL=editor.settings.image_prepend_url,absoluteURLPattern=new RegExp("^(?:[a-z]+:)?//","i"),prependURL&&!absoluteURLPattern.test(srcURL)&&srcURL.substring(0,prependURL.length)!==prependURL&&(srcURL=prependURL+srcURL),this.value(srcURL),getImageSize(editor.documentBaseURI.toAbsolute(this.value()),function(data){data.width&&data.height&&imageDimensions&&(width=data.width,height=data.height,win.find("#width").value(width),win.find("#height").value(height))}))}function mergeMargins(css){if(css.margin){var splitMargin=css.margin.split(" ");switch(splitMargin.length){case 1:css["margin-top"]=css["margin-top"]||splitMargin[0],css["margin-right"]=css["margin-right"]||splitMargin[0],css["margin-bottom"]=css["margin-bottom"]||splitMargin[0],css["margin-left"]=css["margin-left"]||splitMargin[0];break;case 2:css["margin-top"]=css["margin-top"]||splitMargin[0],css["margin-right"]=css["margin-right"]||splitMargin[1],css["margin-bottom"]=css["margin-bottom"]||splitMargin[0],css["margin-left"]=css["margin-left"]||splitMargin[1];break;case 3:css["margin-top"]=css["margin-top"]||splitMargin[0],css["margin-right"]=css["margin-right"]||splitMargin[1],css["margin-bottom"]=css["margin-bottom"]||splitMargin[2],css["margin-left"]=css["margin-left"]||splitMargin[1];break;case 4:css["margin-top"]=css["margin-top"]||splitMargin[0],css["margin-right"]=css["margin-right"]||splitMargin[1],css["margin-bottom"]=css["margin-bottom"]||splitMargin[2],css["margin-left"]=css["margin-left"]||splitMargin[3]}delete css.margin}return css}function updateStyle(){function addPixelSuffix(value){return value.length>0&&/^[0-9]+$/.test(value)&&(value+="px"),value}if(editor.settings.image_advtab){var data=win.toJSON(),css=dom.parseStyle(data.style);css=mergeMargins(css),data.vspace&&(css["margin-top"]=css["margin-bottom"]=addPixelSuffix(data.vspace)),data.hspace&&(css["margin-left"]=css["margin-right"]=addPixelSuffix(data.hspace)),data.border&&(css["border-width"]=addPixelSuffix(data.border)),win.find("#style").value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))))}}function updateVSpaceHSpaceBorder(){if(editor.settings.image_advtab){var data=win.toJSON(),css=dom.parseStyle(data.style);win.find("#vspace").value(""),win.find("#hspace").value(""),css=mergeMargins(css),(css["margin-top"]&&css["margin-bottom"]||css["margin-right"]&&css["margin-left"])&&(css["margin-top"]===css["margin-bottom"]?win.find("#vspace").value(removePixelSuffix(css["margin-top"])):win.find("#vspace").value(""),css["margin-right"]===css["margin-left"]?win.find("#hspace").value(removePixelSuffix(css["margin-right"])):win.find("#hspace").value("")),css["border-width"]&&win.find("#border").value(removePixelSuffix(css["border-width"])),win.find("#style").value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))))}}var win,imgElm,figureElm,width,height,imageListCtrl,classListCtrl,data={},dom=editor.dom,imageDimensions=editor.settings.image_dimensions!==!1;imgElm=editor.selection.getNode(),figureElm=dom.getParent(imgElm,"figure.image"),figureElm&&(imgElm=dom.select("img",figureElm)[0]),imgElm&&("IMG"!=imgElm.nodeName||imgElm.getAttribute("data-mce-object")||imgElm.getAttribute("data-mce-placeholder"))&&(imgElm=null),imgElm&&(width=dom.getAttrib(imgElm,"width"),height=dom.getAttrib(imgElm,"height"),data={src:dom.getAttrib(imgElm,"src"),alt:dom.getAttrib(imgElm,"alt"),title:dom.getAttrib(imgElm,"title"),"class":dom.getAttrib(imgElm,"class"),width:width,height:height,caption:!!figureElm}),imageList&&(imageListCtrl={type:"listbox",label:"Image list",values:buildListItems(imageList,function(item){item.value=editor.convertURL(item.value||item.url,"src")},[{text:"None",value:""}]),value:data.src&&editor.convertURL(data.src,"src"),onselect:function(e){var altCtrl=win.find("#alt");(!altCtrl.value()||e.lastControl&&altCtrl.value()==e.lastControl.text())&&altCtrl.value(e.control.text()),win.find("#src").value(e.control.value()).fire("change")},onPostRender:function(){imageListCtrl=this}}),editor.settings.image_class_list&&(classListCtrl={name:"class",type:"listbox",label:"Class",values:buildListItems(editor.settings.image_class_list,function(item){item.value&&(item.textStyle=function(){return editor.formatter.getCssText({inline:"img",classes:[item.value]})})})});var generalFormItems=[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0,onchange:srcChange},imageListCtrl];editor.settings.image_description!==!1&&generalFormItems.push({name:"alt",type:"textbox",label:"Image description"}),editor.settings.image_title&&generalFormItems.push({name:"title",type:"textbox",label:"Image Title"}),imageDimensions&&generalFormItems.push({type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:5,size:3,onchange:recalcSize,ariaLabel:"Width"},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:5,size:3,onchange:recalcSize,ariaLabel:"Height"},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}),generalFormItems.push(classListCtrl),editor.settings.image_caption&&tinymce.Env.ceFalse&&generalFormItems.push({name:"caption",type:"checkbox",label:"Caption"}),editor.settings.image_advtab?(imgElm&&(imgElm.style.marginLeft&&imgElm.style.marginRight&&imgElm.style.marginLeft===imgElm.style.marginRight&&(data.hspace=removePixelSuffix(imgElm.style.marginLeft)),imgElm.style.marginTop&&imgElm.style.marginBottom&&imgElm.style.marginTop===imgElm.style.marginBottom&&(data.vspace=removePixelSuffix(imgElm.style.marginTop)),imgElm.style.borderWidth&&(data.border=removePixelSuffix(imgElm.style.borderWidth)),data.style=editor.dom.serializeStyle(editor.dom.parseStyle(editor.dom.getAttrib(imgElm,"style")))),win=editor.windowManager.open({title:"Insert/edit image",data:data,bodyType:"tabpanel",body:[{title:"General",type:"form",items:generalFormItems},{title:"Advanced",type:"form",pack:"start",items:[{label:"Style",name:"style",type:"textbox",onchange:updateVSpaceHSpaceBorder},{type:"form",layout:"grid",packV:"start",columns:2,padding:0,alignH:["left","right"],defaults:{type:"textbox",maxWidth:50,onchange:updateStyle},items:[{label:"Vertical space",name:"vspace"},{label:"Horizontal space",name:"hspace"},{label:"Border",name:"border"}]}]}],onSubmit:onSubmitForm})):win=editor.windowManager.open({title:"Insert/edit image",data:data,body:generalFormItems,onSubmit:onSubmitForm})}editor.on("preInit",function(){function hasImageClass(node){var className=node.attr("class");return className&&/\bimage\b/.test(className)}function toggleContentEditableState(state){return function(nodes){function toggleContentEditable(node){node.attr("contenteditable",state?"true":null)}for(var node,i=nodes.length;i--;)node=nodes[i],hasImageClass(node)&&(node.attr("contenteditable",state?"false":null),tinymce.each(node.getAll("figcaption"),toggleContentEditable))}}editor.parser.addNodeFilter("figure",toggleContentEditableState(!0)),editor.serializer.addNodeFilter("figure",toggleContentEditableState(!1))}),editor.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:createImageList(showDialog),stateSelector:"img:not([data-mce-object],[data-mce-placeholder]),figure.image"}),editor.addMenuItem("image",{icon:"image",text:"Insert/edit image",onclick:createImageList(showDialog),context:"insert",prependToContext:!0}),editor.addCommand("mceImage",createImageList(showDialog))})}.apply(root,arguments)})}(this),function(root){define("tinymce-importcss",["tinymce"],function(){return function(){tinymce.PluginManager.add("importcss",function(editor){function removeCacheSuffix(url){var cacheSuffix=tinymce.Env.cacheSuffix;return"string"==typeof url&&(url=url.replace("?"+cacheSuffix,"").replace("&"+cacheSuffix,"")),url}function isSkinContentCss(href){var settings=editor.settings,skin=settings.skin!==!1?settings.skin||"lightgray":!1;if(skin){var skinUrl=settings.skin_url;return skinUrl=skinUrl?editor.documentBaseURI.toAbsolute(skinUrl):tinymce.baseURL+"/skins/"+skin,href===skinUrl+"/content"+(editor.inline?".inline":"")+".min.css"}return!1}function compileFilter(filter){return"string"==typeof filter?function(value){return-1!==value.indexOf(filter)}:filter instanceof RegExp?function(value){return filter.test(value)}:filter}function getSelectors(doc,fileFilter){function append(styleSheet,imported){var rules,href=styleSheet.href;if(href=removeCacheSuffix(href),href&&fileFilter(href,imported)&&!isSkinContentCss(href)){each(styleSheet.imports,function(styleSheet){append(styleSheet,!0)});try{rules=styleSheet.cssRules||styleSheet.rules}catch(e){}each(rules,function(cssRule){cssRule.styleSheet?append(cssRule.styleSheet,!0):cssRule.selectorText&&each(cssRule.selectorText.split(","),function(selector){selectors.push(tinymce.trim(selector))})})}}var selectors=[],contentCSSUrls={};each(editor.contentCSS,function(url){contentCSSUrls[url]=!0}),fileFilter||(fileFilter=function(href,imported){return imported||contentCSSUrls[href]});try{each(doc.styleSheets,function(styleSheet){append(styleSheet)})}catch(e){}return selectors}function convertSelectorToFormat(selectorText){var format,selector=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(selectorText);if(selector){var elementName=selector[1],classes=selector[2].substr(1).split(".").join(" "),inlineSelectorElements=tinymce.makeMap("a,img");return selector[1]?(format={title:selectorText},editor.schema.getTextBlockElements()[elementName]?format.block=elementName:editor.schema.getBlockElements()[elementName]||inlineSelectorElements[elementName.toLowerCase()]?format.selector=elementName:format.inline=elementName):selector[2]&&(format={inline:"span",title:selectorText.substr(1),classes:classes}),editor.settings.importcss_merge_classes!==!1?format.classes=classes:format.attributes={"class":classes},format}}var self=this,each=tinymce.each;editor.on("renderFormatsMenu",function(e){var settings=editor.settings,selectors={},selectorConverter=settings.importcss_selector_converter||convertSelectorToFormat,selectorFilter=compileFilter(settings.importcss_selector_filter),ctrl=e.control;editor.settings.importcss_append||ctrl.items().remove();var groups=[];tinymce.each(settings.importcss_groups,function(group){group=tinymce.extend({},group),group.filter=compileFilter(group.filter),groups.push(group)}),each(getSelectors(e.doc||editor.getDoc(),compileFilter(settings.importcss_file_filter)),function(selector){if(-1===selector.indexOf(".mce-")&&!selectors[selector]&&(!selectorFilter||selectorFilter(selector))){var menu,format=selectorConverter.call(self,selector);if(format){var formatName=format.name||tinymce.DOM.uniqueId();if(groups)for(var i=0;i'+html+"";var timeElm=editor.dom.getParent(editor.selection.getStart(),"time");if(timeElm)return void editor.dom.setOuterHTML(timeElm,html)}editor.insertContent(html)}var lastFormat,defaultButtonTimeFormat,daysShort="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),daysLong="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),monthsShort="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),monthsLong="January February March April May June July August September October November December".split(" "),menuItems=[];editor.addCommand("mceInsertDate",function(){insertDateTime(editor.getParam("insertdatetime_dateformat",editor.translate("%Y-%m-%d")))}),editor.addCommand("mceInsertTime",function(){insertDateTime(editor.getParam("insertdatetime_timeformat",editor.translate("%H:%M:%S")))}),editor.addButton("insertdatetime",{type:"splitbutton",title:"Insert date/time",onclick:function(){insertDateTime(lastFormat||defaultButtonTimeFormat)},menu:menuItems}),tinymce.each(editor.settings.insertdatetime_formats||["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(fmt){defaultButtonTimeFormat||(defaultButtonTimeFormat=fmt),menuItems.push({text:getDateTime(fmt),onclick:function(){lastFormat=fmt,insertDateTime(fmt)}})}),editor.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:menuItems,context:"insert"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-layer",["tinymce"],function(){return function(){tinymce.PluginManager.add("layer",function(editor){function getParentLayer(node){do if(node.className&&-1!=node.className.indexOf("mceItemLayer"))return node;while(node=node.parentNode)}function visualAid(e){var dom=editor.dom;tinymce.each(dom.select("div,p",e),function(e){/^(absolute|relative|fixed)$/i.test(e.style.position)&&(e.hasVisual?dom.addClass(e,"mceItemVisualAid"):dom.removeClass(e,"mceItemVisualAid"),dom.addClass(e,"mceItemLayer"))})}function move(d){var i,nl,z=[],le=getParentLayer(editor.selection.getNode()),ci=-1,fi=-1;for(nl=[],tinymce.walk(editor.getBody(),function(n){1==n.nodeType&&/^(absolute|relative|static)$/i.test(n.style.position)&&nl.push(n)},"childNodes"),i=0;ici&&nl[i]==le&&(ci=i);if(0>d){for(i=0;i-1?(nl[ci].style.zIndex=z[fi],nl[fi].style.zIndex=z[ci]):z[ci]>0&&(nl[ci].style.zIndex=z[ci]-1)}else{for(i=0;iz[ci]){fi=i;break}fi>-1?(nl[ci].style.zIndex=z[fi],nl[fi].style.zIndex=z[ci]):nl[ci].style.zIndex=z[ci]+1}editor.execCommand("mceRepaint")}function insertLayer(){var dom=editor.dom,p=dom.getPos(dom.getParent(editor.selection.getNode(),"*")),body=editor.getBody();editor.dom.add(body,"div",{style:{position:"absolute",left:p.x,top:p.y>20?p.y:20,width:100,height:100},"class":"mceItemVisualAid mceItemLayer"},editor.selection.getContent()||editor.getLang("layer.content")),tinymce.Env.ie&&dom.setHTML(body,body.innerHTML)}function toggleAbsolute(){var le=getParentLayer(editor.selection.getNode());le||(le=editor.dom.getParent(editor.selection.getNode(),"DIV,P,IMG")),le&&("absolute"==le.style.position.toLowerCase()?(editor.dom.setStyles(le,{position:"",left:"",top:"",width:"",height:""}),editor.dom.removeClass(le,"mceItemVisualAid"),editor.dom.removeClass(le,"mceItemLayer")):(le.style.left||(le.style.left="20px"),le.style.top||(le.style.top="20px"),le.style.width||(le.style.width=le.width?le.width+"px":"100px"),le.style.height||(le.style.height=le.height?le.height+"px":"100px"),le.style.position="absolute",editor.dom.setAttrib(le,"data-mce-style",""),editor.addVisual(editor.getBody())),editor.execCommand("mceRepaint"),editor.nodeChanged())}editor.addCommand("mceInsertLayer",insertLayer),editor.addCommand("mceMoveForward",function(){move(1)}),editor.addCommand("mceMoveBackward",function(){move(-1)}),editor.addCommand("mceMakeAbsolute",function(){toggleAbsolute()}),editor.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"}),editor.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"}),editor.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"}),editor.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"}),editor.on("init",function(){tinymce.Env.ie&&editor.getDoc().execCommand("2D-Position",!1,!0); +}),editor.on("mouseup",function(e){var layer=getParentLayer(e.target);layer&&editor.dom.setAttrib(layer,"data-mce-style","")}),editor.on("mousedown",function(e){var parent,node=e.target,doc=editor.getDoc();tinymce.Env.gecko&&(getParentLayer(node)?"on"!==doc.designMode&&(doc.designMode="on",node=doc.body,parent=node.parentNode,parent.removeChild(node),parent.appendChild(node)):"on"==doc.designMode&&(doc.designMode="off"))}),editor.on("NodeChange",visualAid)})}.apply(root,arguments)})}(this),function(root){define("tinymce-legacyoutput",["tinymce"],function(){return function(){!function(tinymce){tinymce.on("AddEditor",function(e){e.editor.settings.inline_styles=!1}),tinymce.PluginManager.add("legacyoutput",function(editor,url,$){editor.on("init",function(){var alignElements="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",fontSizes=tinymce.explode(editor.settings.font_size_style_values),schema=editor.schema;editor.formatter.register({alignleft:{selector:alignElements,attributes:{align:"left"}},aligncenter:{selector:alignElements,attributes:{align:"center"}},alignright:{selector:alignElements,attributes:{align:"right"}},alignjustify:{selector:alignElements,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(vars){return tinymce.inArray(fontSizes,vars.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),tinymce.each("b,i,u,strike".split(","),function(name){schema.addValidElements(name+"[*]")}),schema.getElementRule("font")||schema.addValidElements("font[face|size|color|style]"),tinymce.each(alignElements.split(","),function(name){var rule=schema.getElementRule(name);rule&&(rule.attributes.align||(rule.attributes.align={},rule.attributesOrder.push("align")))})}),editor.addButton("fontsizeselect",function(){var items=[],defaultFontsizeFormats="8pt=1 10pt=2 12pt=3 14pt=4 18pt=5 24pt=6 36pt=7",fontsize_formats=editor.settings.fontsize_formats||defaultFontsizeFormats;return editor.$.each(fontsize_formats.split(" "),function(i,item){var text=item,value=item,values=item.split("=");values.length>1&&(text=values[0],value=values[1]),items.push({text:text,value:value})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:items,fixedWidth:!0,onPostRender:function(){var self=this;editor.on("NodeChange",function(){var fontElm;fontElm=editor.dom.getParent(editor.selection.getNode(),"font"),fontElm?self.value(fontElm.size):self.value("")})},onclick:function(e){e.control.settings.value&&editor.execCommand("FontSize",!1,e.control.settings.value)}}}),editor.addButton("fontselect",function(){function createFormats(formats){formats=formats.replace(/;$/,"").split(";");for(var i=formats.length;i--;)formats[i]=formats[i].split("=");return formats}var defaultFontsFormats="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",items=[],fonts=createFormats(editor.settings.font_formats||defaultFontsFormats);return $.each(fonts,function(i,font){items.push({text:{raw:font[0]},value:font[1],textStyle:-1==font[1].indexOf("dings")?"font-family:"+font[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:items,fixedWidth:!0,onPostRender:function(){var self=this;editor.on("NodeChange",function(){var fontElm;fontElm=editor.dom.getParent(editor.selection.getNode(),"font"),fontElm?self.value(fontElm.face):self.value("")})},onselect:function(e){e.control.settings.value&&editor.execCommand("FontName",!1,e.control.settings.value)}}})})}(tinymce)}.apply(root,arguments)})}(this),function(root){define("tinymce-link",["tinymce"],function(){return function(){tinymce.PluginManager.add("link",function(editor){function createLinkList(callback){return function(){var linkList=editor.settings.link_list;"string"==typeof linkList?tinymce.util.XHR.send({url:linkList,success:function(text){callback(tinymce.util.JSON.parse(text))}}):"function"==typeof linkList?linkList(callback):callback(linkList)}}function buildListItems(inputList,itemCallback,startItems){function appendItems(values,output){return output=output||[],tinymce.each(values,function(item){var menuItem={text:item.text||item.title};item.menu?menuItem.menu=appendItems(item.menu):(menuItem.value=item.value,itemCallback&&itemCallback(menuItem)),output.push(menuItem)}),output}return appendItems(inputList,startItems||[])}function showDialog(linkList){function linkListChangeHandler(e){var textCtrl=win.find("#text");(!textCtrl.value()||e.lastControl&&textCtrl.value()==e.lastControl.text())&&textCtrl.value(e.control.text()),win.find("#href").value(e.control.value())}function buildAnchorListControl(url){var anchorList=[];return tinymce.each(editor.dom.select("a:not([href])"),function(anchor){var id=anchor.name||anchor.id;id&&anchorList.push({text:id,value:"#"+id,selected:-1!=url.indexOf("#"+id)})}),anchorList.length?(anchorList.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:anchorList,onselect:linkListChangeHandler}):void 0}function updateText(){!initialText&&0===data.text.length&&onlyText&&this.parent().parent().find("#text")[0].value(this.value())}function urlChange(e){var meta=e.meta||{};linkListCtrl&&linkListCtrl.value(editor.convertURL(this.value(),"href")),tinymce.each(e.meta,function(value,key){win.find("#"+key).value(value)}),meta.text||updateText.call(this)}function isOnlyTextSelected(anchorElm){var html=selection.getContent();if(/]+>[^<]+<\/a>$/.test(html)||-1==html.indexOf("href=")))return!1;if(anchorElm){var i,nodes=anchorElm.childNodes;if(0===nodes.length)return!1;for(i=nodes.length-1;i>=0;i--)if(3!=nodes[i].nodeType)return!1}return!0}var selectedElm,anchorElm,initialText,win,onlyText,textListCtrl,linkListCtrl,relListCtrl,targetListCtrl,classListCtrl,linkTitleCtrl,value,data={},selection=editor.selection,dom=editor.dom;selectedElm=selection.getNode(),anchorElm=dom.getParent(selectedElm,"a[href]"),onlyText=isOnlyTextSelected(),data.text=initialText=anchorElm?anchorElm.innerText||anchorElm.textContent:selection.getContent({format:"text"}),data.href=anchorElm?dom.getAttrib(anchorElm,"href"):"",anchorElm?data.target=dom.getAttrib(anchorElm,"target"):editor.settings.default_link_target&&(data.target=editor.settings.default_link_target),(value=dom.getAttrib(anchorElm,"rel"))&&(data.rel=value),(value=dom.getAttrib(anchorElm,"class"))&&(data["class"]=value),(value=dom.getAttrib(anchorElm,"title"))&&(data.title=value),onlyText&&(textListCtrl={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){data.text=this.value()}}),linkList&&(linkListCtrl={type:"listbox",label:"Link list",values:buildListItems(linkList,function(item){item.value=editor.convertURL(item.value||item.url,"href")},[{text:"None",value:""}]),onselect:linkListChangeHandler,value:editor.convertURL(data.href,"href"),onPostRender:function(){linkListCtrl=this}}),editor.settings.target_list!==!1&&(editor.settings.target_list||(editor.settings.target_list=[{text:"None",value:""},{text:"New window",value:"_blank"}]),targetListCtrl={name:"target",type:"listbox",label:"Target",values:buildListItems(editor.settings.target_list)}),editor.settings.rel_list&&(relListCtrl={name:"rel",type:"listbox",label:"Rel",values:buildListItems(editor.settings.rel_list)}),editor.settings.link_class_list&&(classListCtrl={name:"class",type:"listbox",label:"Class",values:buildListItems(editor.settings.link_class_list,function(item){item.value&&(item.textStyle=function(){return editor.formatter.getCssText({inline:"a",classes:[item.value]})})})}),editor.settings.link_title!==!1&&(linkTitleCtrl={name:"title",type:"textbox",label:"Title",value:data.title}),win=editor.windowManager.open({title:"Insert link",data:data,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:urlChange,onkeyup:updateText},textListCtrl,linkTitleCtrl,buildAnchorListControl(data.href),linkListCtrl,relListCtrl,targetListCtrl,classListCtrl],onSubmit:function(e){function delayedConfirm(message,callback){var rng=editor.selection.getRng();tinymce.util.Delay.setEditorTimeout(editor,function(){editor.windowManager.confirm(message,function(state){editor.selection.setRng(rng),callback(state)})})}function insertLink(){var linkAttrs={href:href,target:data.target?data.target:null,rel:data.rel?data.rel:null,"class":data["class"]?data["class"]:null,title:data.title?data.title:null};anchorElm?(editor.focus(),onlyText&&data.text!=initialText&&("innerText"in anchorElm?anchorElm.innerText=data.text:anchorElm.textContent=data.text),dom.setAttribs(anchorElm,linkAttrs),selection.select(anchorElm),editor.undoManager.add()):onlyText?editor.insertContent(dom.createHTML("a",linkAttrs,dom.encode(data.text))):editor.execCommand("mceInsertLink",!1,linkAttrs)}var href;return data=tinymce.extend(data,e.data),(href=data.href)?href.indexOf("@")>0&&-1==href.indexOf("//")&&-1==href.indexOf("mailto:")?void delayedConfirm("The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(state){state&&(href="mailto:"+href),insertLink()}):editor.settings.link_assume_external_targets&&!/^\w+:/i.test(href)||!editor.settings.link_assume_external_targets&&/^\s*www[\.|\d\.]/i.test(href)?void delayedConfirm("The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(state){state&&(href="http://"+href),insertLink()}):void insertLink():void editor.execCommand("unlink")}})}editor.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Meta+K",onclick:createLinkList(showDialog),stateSelector:"a[href]"}),editor.addButton("unlink",{icon:"unlink",tooltip:"Remove link",cmd:"unlink",stateSelector:"a[href]"}),editor.addShortcut("Meta+K","",createLinkList(showDialog)),editor.addCommand("mceLink",createLinkList(showDialog)),this.showDialog=showDialog,editor.addMenuItem("link",{icon:"link",text:"Insert/edit link",shortcut:"Meta+K",onclick:createLinkList(showDialog),stateSelector:"a[href]",context:"insert",prependToContext:!0})})}.apply(root,arguments)})}(this),function(root){define("tinymce-lists",["tinymce"],function(){return function(){tinymce.PluginManager.add("lists",function(editor){function isChildOfBody(elm){return editor.$.contains(editor.getBody(),elm)}function isBr(node){return node&&"BR"==node.nodeName}function isListNode(node){return node&&/^(OL|UL|DL)$/.test(node.nodeName)&&isChildOfBody(node)}function isFirstChild(node){return node.parentNode.firstChild==node}function isLastChild(node){return node.parentNode.lastChild==node}function isTextBlock(node){return node&&!!editor.schema.getTextBlockElements()[node.nodeName]}function isEditorBody(elm){return elm===editor.getBody()}var self=this;editor.on("init",function(){function isEmpty(elm,keepBookmarks){var empty=dom.isEmpty(elm);return keepBookmarks&&dom.select("span[data-mce-type=bookmark]").length>0?!1:empty}function createBookmark(rng){function setupEndPoint(start){var offsetNode,container,offset;container=rng[start?"startContainer":"endContainer"],offset=rng[start?"startOffset":"endOffset"],1==container.nodeType&&(offsetNode=dom.create("span",{"data-mce-type":"bookmark"}),container.hasChildNodes()?(offset=Math.min(offset,container.childNodes.length-1),start?container.insertBefore(offsetNode,container.childNodes[offset]):dom.insertAfter(offsetNode,container.childNodes[offset])):container.appendChild(offsetNode),container=offsetNode,offset=0),bookmark[start?"startContainer":"endContainer"]=container,bookmark[start?"startOffset":"endOffset"]=offset}var bookmark={};return setupEndPoint(!0),rng.collapsed||setupEndPoint(),bookmark}function moveToBookmark(bookmark){function restoreEndPoint(start){function nodeIndex(container){for(var node=container.parentNode.firstChild,idx=0;node;){if(node==container)return idx;1==node.nodeType&&"bookmark"==node.getAttribute("data-mce-type")||idx++,node=node.nextSibling}return-1}var container,offset,node;container=node=bookmark[start?"startContainer":"endContainer"],offset=bookmark[start?"startOffset":"endOffset"],container&&(1==container.nodeType&&(offset=nodeIndex(container),container=container.parentNode,dom.remove(node)),bookmark[start?"startContainer":"endContainer"]=container,bookmark[start?"startOffset":"endOffset"]=offset)}restoreEndPoint(!0),restoreEndPoint();var rng=dom.createRng();rng.setStart(bookmark.startContainer,bookmark.startOffset),bookmark.endContainer&&rng.setEnd(bookmark.endContainer,bookmark.endOffset),selection.setRng(rng)}function createNewTextBlock(contentNode,blockName){var node,textBlock,hasContentNode,fragment=dom.createFragment(),blockElements=editor.schema.getBlockElements();if(editor.settings.forced_root_block&&(blockName=blockName||editor.settings.forced_root_block),blockName&&(textBlock=dom.create(blockName),textBlock.tagName===editor.settings.forced_root_block&&dom.setAttribs(textBlock,editor.settings.forced_root_block_attrs),fragment.appendChild(textBlock)),contentNode)for(;node=contentNode.firstChild;){var nodeName=node.nodeName;hasContentNode||"SPAN"==nodeName&&"bookmark"==node.getAttribute("data-mce-type")||(hasContentNode=!0),blockElements[nodeName]?(fragment.appendChild(node),textBlock=null):blockName?(textBlock||(textBlock=dom.create(blockName),fragment.appendChild(textBlock)),textBlock.appendChild(node)):fragment.appendChild(node)}return editor.settings.forced_root_block?hasContentNode||tinymce.Env.ie&&!(tinymce.Env.ie>10)||textBlock.appendChild(dom.create("br",{"data-mce-bogus":"1"})):fragment.appendChild(dom.create("br")),fragment}function getSelectedListItems(){return tinymce.grep(selection.getSelectedBlocks(),function(block){return/^(LI|DT|DD)$/.test(block.nodeName)})}function splitList(ul,li,newBlock){function removeAndKeepBookmarks(targetNode){tinymce.each(bookmarks,function(node){targetNode.parentNode.insertBefore(node,li.parentNode)}),dom.remove(targetNode)}var tmpRng,fragment,bookmarks,node;for(bookmarks=dom.select('span[data-mce-type="bookmark"]',ul),newBlock=newBlock||createNewTextBlock(li),tmpRng=dom.createRng(),tmpRng.setStartAfter(li),tmpRng.setEndAfter(ul),fragment=tmpRng.extractContents(),node=fragment.firstChild;node;node=node.firstChild)if("LI"==node.nodeName&&dom.isEmpty(node)){dom.remove(node);break}dom.isEmpty(fragment)||dom.insertAfter(fragment,ul),dom.insertAfter(newBlock,ul),isEmpty(li.parentNode)&&removeAndKeepBookmarks(li.parentNode),dom.remove(li),isEmpty(ul)&&dom.remove(ul)}function mergeWithAdjacentLists(listBlock){var sibling,node;if(sibling=listBlock.nextSibling,sibling&&isListNode(sibling)&&sibling.nodeName==listBlock.nodeName){for(;node=sibling.firstChild;)listBlock.appendChild(node);dom.remove(sibling)}if(sibling=listBlock.previousSibling,sibling&&isListNode(sibling)&&sibling.nodeName==listBlock.nodeName){for(;node=sibling.firstChild;)listBlock.insertBefore(node,listBlock.firstChild);dom.remove(sibling)}}function normalizeList(element){tinymce.each(tinymce.grep(dom.select("ol,ul",element)),function(ul){var sibling,parentNode=ul.parentNode;"LI"==parentNode.nodeName&&parentNode.firstChild==ul&&(sibling=parentNode.previousSibling,sibling&&"LI"==sibling.nodeName&&(sibling.appendChild(ul),isEmpty(parentNode)&&dom.remove(parentNode))),isListNode(parentNode)&&(sibling=parentNode.previousSibling,sibling&&"LI"==sibling.nodeName&&sibling.appendChild(ul))})}function outdent(li){function removeEmptyLi(li){isEmpty(li)&&dom.remove(li)}var newBlock,ul=li.parentNode,ulParent=ul.parentNode;return isEditorBody(ul)?!0:"DD"==li.nodeName?(dom.rename(li,"DT"),!0):isFirstChild(li)&&isLastChild(li)?("LI"==ulParent.nodeName?(dom.insertAfter(li,ulParent),removeEmptyLi(ulParent),dom.remove(ul)):isListNode(ulParent)?dom.remove(ul,!0):(ulParent.insertBefore(createNewTextBlock(li),ul),dom.remove(ul)),!0):isFirstChild(li)?("LI"==ulParent.nodeName?(dom.insertAfter(li,ulParent),li.appendChild(ul),removeEmptyLi(ulParent)):isListNode(ulParent)?ulParent.insertBefore(li,ul):(ulParent.insertBefore(createNewTextBlock(li),ul),dom.remove(li)),!0):isLastChild(li)?("LI"==ulParent.nodeName?dom.insertAfter(li,ulParent):isListNode(ulParent)?dom.insertAfter(li,ul):(dom.insertAfter(createNewTextBlock(li),ul),dom.remove(li)),!0):("LI"==ulParent.nodeName?(ul=ulParent,newBlock=createNewTextBlock(li,"LI")):newBlock=isListNode(ulParent)?createNewTextBlock(li,"LI"):createNewTextBlock(li),splitList(ul,li,newBlock),normalizeList(ul.parentNode),!0)}function indent(li){function mergeLists(from,to){var node;if(isListNode(from)){for(;node=li.lastChild.firstChild;)to.appendChild(node);dom.remove(from)}}var sibling,newList;return"DT"==li.nodeName?(dom.rename(li,"DD"),!0):(sibling=li.previousSibling,sibling&&isListNode(sibling)?(sibling.appendChild(li),!0):sibling&&"LI"==sibling.nodeName&&isListNode(sibling.lastChild)?(sibling.lastChild.appendChild(li),mergeLists(li.lastChild,sibling.lastChild),!0):(sibling=li.nextSibling,sibling&&isListNode(sibling)?(sibling.insertBefore(li,sibling.firstChild),!0):sibling&&"LI"==sibling.nodeName&&isListNode(li.lastChild)?!1:(sibling=li.previousSibling,sibling&&"LI"==sibling.nodeName?(newList=dom.create(li.parentNode.nodeName),sibling.appendChild(newList),newList.appendChild(li),mergeLists(li.lastChild,newList),!0):!1)))}function indentSelection(){var listElements=getSelectedListItems();if(listElements.length){for(var bookmark=createBookmark(selection.getRng(!0)),i=0;i0))return node;for(nonEmptyBlocks=editor.schema.getNonEmptyElements(),walker=new tinymce.dom.TreeWalker(rng.startContainer,editor.getBody()),isForward&&isBogusBr(tinymce.dom.RangeUtils.getNode(rng.startContainer,rng.startOffset))&&walker.next();node=walker[isForward?"next":"prev2"]();){if("LI"==node.nodeName&&!node.hasChildNodes())return node;if(nonEmptyBlocks[node.nodeName])return node;if(3==node.nodeType&&node.data.length>0)return node}}function mergeLiElements(fromElm,toElm){var node,listNode,ul=fromElm.parentNode;if(isChildOfBody(fromElm)&&isChildOfBody(toElm)){if(isListNode(toElm.lastChild)&&(listNode=toElm.lastChild),ul==toElm.lastChild&&isBr(ul.previousSibling)&&dom.remove(ul.previousSibling),node=toElm.lastChild,node&&isBr(node)&&fromElm.hasChildNodes()&&dom.remove(node),isEmpty(toElm,!0)&&dom.$(toElm).empty(),!isEmpty(fromElm,!0))for(;node=fromElm.firstChild;)toElm.appendChild(node);listNode&&toElm.appendChild(listNode),dom.remove(fromElm),isEmpty(ul)&&!isEditorBody(ul)&&dom.remove(ul)}}if(selection.isCollapsed()){var ul,rng,otherLi,li=dom.getParent(selection.getStart(),"LI");if(li){if(ul=li.parentNode,isEditorBody(ul)&&dom.isEmpty(ul))return!0;if(rng=selection.getRng(!0),otherLi=dom.getParent(findNextCaretContainer(rng,isForward),"LI"),otherLi&&otherLi!=li){var bookmark=createBookmark(rng);return isForward?mergeLiElements(otherLi,li):mergeLiElements(li,otherLi),moveToBookmark(bookmark),!0}if(!otherLi&&!isForward&&removeList(ul.nodeName))return!0}}},editor.on("BeforeExecCommand",function(e){var isHandled,cmd=e.command.toLowerCase();return"indent"==cmd?indentSelection()&&(isHandled=!0):"outdent"==cmd&&outdentSelection()&&(isHandled=!0),isHandled?(editor.fire("ExecCommand",{command:e.command}),e.preventDefault(),!0):void 0}),editor.addCommand("InsertUnorderedList",function(){toggleList("UL")}),editor.addCommand("InsertOrderedList",function(){toggleList("OL")}),editor.addCommand("InsertDefinitionList",function(){toggleList("DL")}),editor.addQueryStateHandler("InsertUnorderedList",queryListCommandState("UL")),editor.addQueryStateHandler("InsertOrderedList",queryListCommandState("OL")),editor.addQueryStateHandler("InsertDefinitionList",queryListCommandState("DL")),editor.on("keydown",function(e){9!=e.keyCode||tinymce.util.VK.metaKeyPressed(e)||editor.dom.getParent(editor.selection.getStart(),"LI,DT,DD")&&(e.preventDefault(),e.shiftKey?outdentSelection():indentSelection())})}),editor.addButton("indent",{icon:"indent",title:"Increase indent",cmd:"Indent",onPostRender:function(){var ctrl=this;editor.on("nodechange",function(){for(var blocks=editor.selection.getSelectedBlocks(),disable=!1,i=0,l=blocks.length;!disable&&l>i;i++){var tag=blocks[i].nodeName;disable="LI"==tag&&isFirstChild(blocks[i])||"UL"==tag||"OL"==tag||"DD"==tag}ctrl.disabled(disable)})}}),editor.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?self.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&self.backspaceDelete(!0)&&e.preventDefault()})})}.apply(root,arguments)})}(this),function(root){define("tinymce-media",["tinymce"],function(){return function(){tinymce.PluginManager.add("media",function(editor,url){function guessMime(url){return url=url.toLowerCase(),-1!=url.indexOf(".mp3")?"audio/mpeg":-1!=url.indexOf(".wav")?"audio/wav":-1!=url.indexOf(".mp4")?"video/mp4":-1!=url.indexOf(".webm")?"video/webm":-1!=url.indexOf(".ogg")?"video/ogg":-1!=url.indexOf(".swf")?"application/x-shockwave-flash":""}function getVideoScriptMatch(src){var prefixes=editor.settings.media_scripts;if(prefixes)for(var i=0;i=0;y--)beforeObjects[i]==afterObjects[y]&&afterObjects.splice(y,1);editor.selection.select(afterObjects[0]),editor.nodeChanged()}})}function getSource(){var elm=editor.selection.getNode();return elm.getAttribute("data-mce-object")?editor.selection.getContent():void 0}function dataToHtml(data){var html="";if(!data.source1&&(tinymce.extend(data,htmlToData(data.embed)),!data.source1))return"";if(data.source2||(data.source2=""),data.poster||(data.poster=""),data.source1=editor.convertURL(data.source1,"source"),data.source2=editor.convertURL(data.source2,"source"),data.source1mime=guessMime(data.source1),data.source2mime=guessMime(data.source2),data.poster=editor.convertURL(data.poster,"poster"),data.flashPlayerUrl=editor.convertURL(url+"/moxieplayer.swf","movie"),tinymce.each(urlPatterns,function(pattern){var match,i,url;if(match=pattern.regex.exec(data.source1)){for(url=pattern.url,i=0;match[i];i++)url=url.replace("$"+i,function(){return match[i]});data.source1=url,data.type=pattern.type,data.allowFullscreen=pattern.allowFullscreen,data.width=data.width||pattern.w,data.height=data.height||pattern.h}}),data.embed)html=updateHtml(data.embed,data,!0);else{var videoScript=getVideoScriptMatch(data.source1);if(videoScript&&(data.type="script",data.width=videoScript.width,data.height=videoScript.height),data.width=data.width||300,data.height=data.height||150,tinymce.each(data,function(value,key){data[key]=editor.dom.encode(value)}),"iframe"==data.type){var allowFullscreen=data.allowFullscreen?' allowFullscreen="1"':"";html+='"}else"application/x-shockwave-flash"==data.source1mime?(html+='',data.poster&&(html+=''),html+=""):-1!=data.source1mime.indexOf("audio")?editor.settings.audio_template_callback?html=editor.settings.audio_template_callback(data):html+='":"script"==data.type?html+='':html=editor.settings.video_template_callback?editor.settings.video_template_callback(data):'"}return html}function htmlToData(html){var data={};return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!0,special:"script,noscript",start:function(name,attrs){if(data.source1||"param"!=name||(data.source1=attrs.map.movie),"iframe"!=name&&"object"!=name&&"embed"!=name&&"video"!=name&&"audio"!=name||(data.type||(data.type=name),data=tinymce.extend(attrs.map,data)),"script"==name){var videoScript=getVideoScriptMatch(attrs.map.src);if(!videoScript)return;data={type:"script",source1:attrs.map.src,width:videoScript.width,height:videoScript.height}}"source"==name&&(data.source1?data.source2||(data.source2=attrs.map.src):data.source1=attrs.map.src),"img"!=name||data.poster||(data.poster=attrs.map.src)}}).parse(html),data.source1=data.source1||data.src||data.data,data.source2=data.source2||"",data.poster=data.poster||"",data}function getData(element){ +return element.getAttribute("data-mce-object")?htmlToData(editor.serializer.serialize(element,{selection:!0})):{}}function sanitize(html){if(editor.settings.media_filter_html===!1)return html;var blocked,writer=new tinymce.html.Writer;return new tinymce.html.SaxParser({validate:!1,allow_conditional_comments:!1,special:"script,noscript",comment:function(text){writer.comment(text)},cdata:function(text){writer.cdata(text)},text:function(text,raw){writer.text(text,raw)},start:function(name,attrs,empty){if(blocked=!0,"script"!=name&&"noscript"!=name){for(var i=0;i=sourceCount&&(setAttributes(attrs,{src:data["source"+sourceCount],type:data["source"+sourceCount+"mime"]}),!data["source"+sourceCount]))return;break;case"img":if(!data.poster)return;hasImage=!0}writer.start(name,attrs,empty)},end:function(name){if("video"==name&&updateAll)for(var index=1;2>=index;index++)if(data["source"+index]){var attrs=[];attrs.map={},index>sourceCount&&(setAttributes(attrs,{src:data["source"+index],type:data["source"+index+"mime"]}),writer.start("source",attrs,!0))}if(data.poster&&"object"==name&&updateAll&&!hasImage){var imgAttrs=[];imgAttrs.map={},setAttributes(imgAttrs,{src:data.poster,width:data.width,height:data.height}),writer.start("img",imgAttrs,!0)}writer.end(name)}},new tinymce.html.Schema({})).parse(html),writer.getContent()}function retainAttributesAndInnerHtml(sourceNode,targetNode){var attrName,attrValue,attribs,ai,innerHtml;for(attribs=sourceNode.attributes,ai=attribs.length;ai--;)attrName=attribs[ai].name,attrValue=attribs[ai].value,"width"!==attrName&&"height"!==attrName&&"style"!==attrName&&("data"!=attrName&&"src"!=attrName||(attrValue=editor.convertURL(attrValue,attrName)),targetNode.attr("data-mce-p-"+attrName,attrValue));innerHtml=sourceNode.firstChild&&sourceNode.firstChild.value,innerHtml&&(targetNode.attr("data-mce-html",escape(innerHtml)),targetNode.firstChild=null)}function createPlaceholderNode(node){var placeHolder,name=node.name;return placeHolder=new tinymce.html.Node("img",1),placeHolder.shortEnded=!0,retainAttributesAndInnerHtml(node,placeHolder),placeHolder.attr({width:node.attr("width")||"300",height:node.attr("height")||("audio"==name?"30":"150"),style:node.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":name,"class":"mce-object mce-object-"+name}),placeHolder}function createPreviewNode(node){var previewWrapper,previewNode,shimNode,name=node.name;return previewWrapper=new tinymce.html.Node("span",1),previewWrapper.attr({contentEditable:"false",style:node.attr("style"),"data-mce-object":name,"class":"mce-preview-object mce-object-"+name}),retainAttributesAndInnerHtml(node,previewWrapper),previewNode=new tinymce.html.Node(name,1),previewNode.attr({src:node.attr("src"),allowfullscreen:node.attr("allowfullscreen"),width:node.attr("width")||"300",height:node.attr("height")||("audio"==name?"30":"150"),frameborder:"0"}),shimNode=new tinymce.html.Node("span",1),shimNode.attr("class","mce-shim"),previewWrapper.append(previewNode),previewWrapper.append(shimNode),previewWrapper}var urlPatterns=[{regex:/youtu\.be\/([\w\-.]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$2",allowFullscreen:!0},{regex:/youtube.com\/embed\/([a-z0-9\-_]+)/i,type:"iframe",w:560,h:314,url:"//www.youtube.com/embed/$1",allowFullscreen:!0},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc",allowfullscreen:!0},{regex:/vimeo\.com\/(.*)\/([0-9]+)/,type:"iframe",w:425,h:350,url:"//player.vimeo.com/video/$2?title=0&byline=0",allowfullscreen:!0},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'//maps.google.com/maps/ms?msid=$2&output=embed"',allowFullscreen:!1}],embedChange=tinymce.Env.ie&&tinymce.Env.ie<=8?"onChange":"onInput";editor.on("ResolveName",function(e){var name;1==e.target.nodeType&&(name=e.target.getAttribute("data-mce-object"))&&(e.name=name)}),editor.on("preInit",function(){var specialElements=editor.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(name){specialElements[name]=new RegExp("]*>","gi")});var boolAttrs=editor.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(name){boolAttrs[name]={}}),editor.parser.addNodeFilter("iframe,video,audio,object,embed,script",function(nodes){for(var node,placeHolder,videoScript,i=nodes.length;i--;)node=nodes[i],node.parent&&(node.parent.attr("data-mce-object")||("script"!=node.name||(videoScript=getVideoScriptMatch(node.attr("src"))))&&(videoScript&&(videoScript.width&&node.attr("width",videoScript.width.toString()),videoScript.height&&node.attr("height",videoScript.height.toString())),placeHolder="iframe"==node.name&&editor.settings.media_live_embeds!==!1&&tinymce.Env.ceFalse?createPreviewNode(node):createPlaceholderNode(node),node.replace(placeHolder)))}),editor.serializer.addAttributeFilter("data-mce-object",function(nodes,name){for(var node,realElm,ai,attribs,innerHtml,innerNode,realElmName,className,i=nodes.length;i--;)if(node=nodes[i],node.parent){for(realElmName=node.attr(name),realElm=new tinymce.html.Node(realElmName,1),"audio"!=realElmName&&"script"!=realElmName&&(className=node.attr("class"),className&&-1!==className.indexOf("mce-preview-object")?realElm.attr({width:node.firstChild.attr("width"),height:node.firstChild.attr("height")}):realElm.attr({width:node.attr("width"),height:node.attr("height")})),realElm.attr({style:node.attr("style")}),attribs=node.attributes,ai=attribs.length;ai--;){var attrName=attribs[ai].name;0===attrName.indexOf("data-mce-p-")&&realElm.attr(attrName.substr(11),attribs[ai].value)}"script"==realElmName&&realElm.attr("type","text/javascript"),innerHtml=node.attr("data-mce-html"),innerHtml&&(innerNode=new tinymce.html.Node("#text",3),innerNode.raw=!0,innerNode.value=sanitize(unescape(innerHtml)),realElm.append(innerNode)),node.replace(realElm)}})}),editor.on("ObjectSelected",function(e){var objectType=e.target.getAttribute("data-mce-object");"audio"!=objectType&&"script"!=objectType||e.preventDefault()}),editor.on("objectResized",function(e){var html,target=e.target;target.getAttribute("data-mce-object")&&(html=target.getAttribute("data-mce-html"),html&&(html=unescape(html),target.setAttribute("data-mce-html",escape(updateHtml(html,{width:e.width,height:e.height})))))}),editor.addButton("media",{tooltip:"Insert/edit video",onclick:showDialog,stateSelector:["img[data-mce-object]","span[data-mce-object]"]}),editor.addMenuItem("media",{icon:"media",text:"Insert/edit video",onclick:showDialog,context:"insert",prependToContext:!0}),editor.addCommand("mceMedia",showDialog),this.showDialog=showDialog})}.apply(root,arguments)})}(this),function(root){define("tinymce-nonbreaking",["tinymce"],function(){return function(){tinymce.PluginManager.add("nonbreaking",function(editor){var setting=editor.getParam("nonbreaking_force_tab");if(editor.addCommand("mceNonBreaking",function(){editor.insertContent(editor.plugins.visualchars&&editor.plugins.visualchars.state?' ':" "),editor.dom.setAttrib(editor.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),editor.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),editor.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),setting){var spaces=+setting>1?+setting:3;editor.on("keydown",function(e){if(9==e.keyCode){if(e.shiftKey)return;e.preventDefault();for(var i=0;spaces>i;i++)editor.execCommand("mceNonBreaking")}})}})}.apply(root,arguments)})}(this),function(root){define("tinymce-noneditable",["tinymce"],function(){return function(){tinymce.PluginManager.add("noneditable",function(editor){function hasClass(checkClassName){return function(node){return-1!==(" "+node.attr("class")+" ").indexOf(checkClassName)}}function convertRegExpsToNonEditable(e){function replaceMatchWithSpan(match){var args=arguments,index=args[args.length-2];return index>0&&'"'==content.charAt(index-1)?match:''+editor.dom.encode("string"==typeof args[1]?args[1]:args[0])+""}var i=nonEditableRegExps.length,content=e.content,cls=tinymce.trim(nonEditClass);if("raw"!=e.format){for(;i--;)content=content.replace(nonEditableRegExps[i],replaceMatchWithSpan);e.content=content}}var editClass,nonEditClass,nonEditableRegExps,contentEditableAttrName="contenteditable";editClass=" "+tinymce.trim(editor.getParam("noneditable_editable_class","mceEditable"))+" ",nonEditClass=" "+tinymce.trim(editor.getParam("noneditable_noneditable_class","mceNonEditable"))+" ";var hasEditClass=hasClass(editClass),hasNonEditClass=hasClass(nonEditClass);nonEditableRegExps=editor.getParam("noneditable_regexp"),nonEditableRegExps&&!nonEditableRegExps.length&&(nonEditableRegExps=[nonEditableRegExps]),editor.on("PreInit",function(){nonEditableRegExps&&editor.on("BeforeSetContent",convertRegExpsToNonEditable),editor.parser.addAttributeFilter("class",function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i],hasEditClass(node)?node.attr(contentEditableAttrName,"true"):hasNonEditClass(node)&&node.attr(contentEditableAttrName,"false")}),editor.serializer.addAttributeFilter(contentEditableAttrName,function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i],(hasEditClass(node)||hasNonEditClass(node))&&(nonEditableRegExps&&node.attr("data-mce-content")?(node.name="#text",node.type=3,node.raw=!0,node.value=node.attr("data-mce-content")):node.attr(contentEditableAttrName,null))})})})}.apply(root,arguments)})}(this),function(root){define("tinymce-pagebreak",["tinymce"],function(){return function(){tinymce.PluginManager.add("pagebreak",function(editor){var pageBreakClass="mce-pagebreak",separatorHtml=editor.getParam("pagebreak_separator",""),pageBreakSeparatorRegExp=new RegExp(separatorHtml.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(a){return"\\"+a}),"gi"),pageBreakPlaceHolderHtml='';editor.addCommand("mcePageBreak",function(){editor.settings.pagebreak_split_block?editor.insertContent("

    "+pageBreakPlaceHolderHtml+"

    "):editor.insertContent(pageBreakPlaceHolderHtml)}),editor.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),editor.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),editor.on("ResolveName",function(e){"IMG"==e.target.nodeName&&editor.dom.hasClass(e.target,pageBreakClass)&&(e.name="pagebreak")}),editor.on("click",function(e){e=e.target,"IMG"===e.nodeName&&editor.dom.hasClass(e,pageBreakClass)&&editor.selection.select(e)}),editor.on("BeforeSetContent",function(e){e.content=e.content.replace(pageBreakSeparatorRegExp,pageBreakPlaceHolderHtml)}),editor.on("PreInit",function(){editor.serializer.addNodeFilter("img",function(nodes){for(var node,className,i=nodes.length;i--;)if(node=nodes[i],className=node.attr("class"),className&&-1!==className.indexOf("mce-pagebreak")){var parentNode=node.parent;if(editor.schema.getBlockElements()[parentNode.name]&&editor.settings.pagebreak_split_block){parentNode.type=3,parentNode.value=separatorHtml,parentNode.raw=!0,node.remove();continue}node.type=3,node.value=separatorHtml,node.raw=!0}})})})}.apply(root,arguments)})}(this),function(root){define("tinymce-paste",["tinymce"],function(){return function(){!function(exports,undefined){"use strict";function require(ids,callback){for(var module,defs=[],i=0;i/g]),walk(domParser.parse(html)),text}function trimHtml(html){function trimSpaces(all,s1,s2){return s1||s2?" ":" "}return html=filter(html,[/^[\s\S]*]*>\s*|\s*<\/body[^>]*>[\s\S]*$/g,/|/g,[/( ?)\u00a0<\/span>( ?)/g,trimSpaces],/
    /g,/
    $/i])}return{filter:filter,innerText:innerText,trimHtml:trimHtml}}),define("tinymce/pasteplugin/Clipboard",["tinymce/Env","tinymce/dom/RangeUtils","tinymce/util/VK","tinymce/pasteplugin/Utils","tinymce/util/Delay"],function(Env,RangeUtils,VK,Utils,Delay){return function(editor){function pasteHtml(html){var args,dom=editor.dom;if(args=editor.fire("BeforePastePreProcess",{content:html}),args=editor.fire("PastePreProcess",args),html=args.content,!args.isDefaultPrevented()){if(editor.hasEventListeners("PastePostProcess")&&!args.isDefaultPrevented()){var tempBody=dom.add(editor.getBody(),"div",{style:"display:none"},html);args=editor.fire("PastePostProcess",{node:tempBody}),dom.remove(tempBody),html=args.node.innerHTML}args.isDefaultPrevented()||editor.insertContent(html,{merge:editor.settings.paste_merge_formats!==!1,data:{paste:!0}})}}function pasteText(text){text=editor.dom.encode(text).replace(/\r\n/g,"\n");var forcedRootBlockStartHtml,startBlock=editor.dom.getParent(editor.selection.getStart(),editor.dom.isBlock),forcedRootBlockName=editor.settings.forced_root_block;forcedRootBlockName&&(forcedRootBlockStartHtml=editor.dom.createHTML(forcedRootBlockName,editor.settings.forced_root_block_attrs),forcedRootBlockStartHtml=forcedRootBlockStartHtml.substr(0,forcedRootBlockStartHtml.length-3)+">"),startBlock&&/^(PRE|DIV)$/.test(startBlock.nodeName)||!forcedRootBlockName?text=Utils.filter(text,[[/\n/g,"
    "]]):(text=Utils.filter(text,[[/\n\n/g,"

    "+forcedRootBlockStartHtml],[/^(.*<\/p>)(

    )$/,forcedRootBlockStartHtml+"$1"],[/\n/g,"
    "]]),-1!=text.indexOf("

    ")&&(text=forcedRootBlockStartHtml+text)),pasteHtml(text)}function createPasteBin(){function getCaretRect(rng){var rects,textNode,node,container=rng.startContainer;if(rects=rng.getClientRects(),rects.length)return rects[0];if(rng.collapsed&&1==container.nodeType){for(node=container.childNodes[lastRng.startOffset];node&&3==node.nodeType&&!node.data.length;)node=node.nextSibling;if(node)return"BR"==node.tagName&&(textNode=dom.doc.createTextNode("\ufeff"),node.parentNode.insertBefore(textNode,node),rng=dom.createRng(),rng.setStartBefore(textNode),rng.setEndAfter(textNode),rects=rng.getClientRects(),dom.remove(textNode)),rects.length?rects[0]:void 0}}var scrollContainer,dom=editor.dom,body=editor.getBody(),viewport=editor.dom.getViewPort(editor.getWin()),scrollTop=viewport.y,top=20;if(lastRng=editor.selection.getRng(),editor.inline&&(scrollContainer=editor.selection.getScrollContainer(),scrollContainer&&scrollContainer.scrollTop>0&&(scrollTop=scrollContainer.scrollTop)),lastRng.getClientRects){var rect=getCaretRect(lastRng);if(rect)top=scrollTop+(rect.top-dom.getPos(body).y);else{top=scrollTop;var container=lastRng.startContainer;container&&(3==container.nodeType&&container.parentNode!=body&&(container=container.parentNode),1==container.nodeType&&(top=dom.getPos(container,scrollContainer||body).y))}}pasteBinElm=dom.add(editor.getBody(),"div",{id:"mcepastebin",contentEditable:!0,"data-mce-bogus":"all",style:"position: absolute; top: "+top+"px;width: 10px; height: 10px; overflow: hidden; opacity: 0"},pasteBinDefaultContent),(Env.ie||Env.gecko)&&dom.setStyle(pasteBinElm,"left","rtl"==dom.getStyle(body,"direction",!0)?65535:-65535),dom.bind(pasteBinElm,"beforedeactivate focusin focusout",function(e){e.stopPropagation()}),pasteBinElm.focus(),editor.selection.select(pasteBinElm,!0)}function removePasteBin(){if(pasteBinElm){for(var pasteBinClone;pasteBinClone=editor.dom.get("mcepastebin");)editor.dom.remove(pasteBinClone),editor.dom.unbind(pasteBinClone);lastRng&&editor.selection.setRng(lastRng)}pasteBinElm=lastRng=null}function getPasteBinHtml(){var pasteBinClones,i,clone,cloneHtml,html="";for(pasteBinClones=editor.dom.select("div[id=mcepastebin]"),i=0;i>8);return decodeURIComponent(escape(out))}function extractFragment(data){var idx,startFragment,endFragment;return startFragment="",idx=data.indexOf(startFragment),-1!==idx&&(data=data.substr(idx+startFragment.length)),endFragment="",idx=data.indexOf(endFragment),-1!==idx&&(data=data.substr(0,idx)),data}function getDataTransferItems(dataTransfer){var items={};if(dataTransfer){if(dataTransfer.getData){var legacyText=dataTransfer.getData("Text");legacyText&&legacyText.length>0&&-1==legacyText.indexOf(mceInternalUrlPrefix)&&(items["text/plain"]=legacyText)}if(dataTransfer.types)for(var i=0;i')}var i,item,reader,hadImage=!1;if(items)for(i=0;i0}function isKeyboardPasteEvent(e){return VK.metaKeyPressed(e)&&86==e.keyCode||e.shiftKey&&45==e.keyCode}function registerEventHandlers(){function insertClipboardContent(clipboardContent,isKeyBoardPaste,plainTextMode){var content;return hasContentType(clipboardContent,"text/html")?content=clipboardContent["text/html"]:(content=getPasteBinHtml(),content==pasteBinDefaultContent&&(plainTextMode=!0)),content=Utils.trimHtml(content),pasteBinElm&&pasteBinElm.firstChild&&"mcepastebin"===pasteBinElm.firstChild.id&&(plainTextMode=!0),removePasteBin(),content.length||(plainTextMode=!0),plainTextMode&&(content=hasContentType(clipboardContent,"text/plain")&&-1==content.indexOf("

    ")?clipboardContent["text/plain"]:Utils.innerText(content)),content==pasteBinDefaultContent?void(isKeyBoardPaste||editor.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")):void(plainTextMode?pasteText(content):pasteHtml(content))}editor.on("keydown",function(e){function removePasteBinOnKeyUp(e){isKeyboardPasteEvent(e)&&!e.isDefaultPrevented()&&removePasteBin()}if(isKeyboardPasteEvent(e)&&!e.isDefaultPrevented()){if(keyboardPastePlainTextState=e.shiftKey&&86==e.keyCode,keyboardPastePlainTextState&&Env.webkit&&-1!=navigator.userAgent.indexOf("Version/"))return;if(e.stopImmediatePropagation(),keyboardPasteTimeStamp=(new Date).getTime(),Env.ie&&keyboardPastePlainTextState)return e.preventDefault(),void editor.fire("paste",{ieFake:!0});removePasteBin(),createPasteBin(),editor.once("keyup",removePasteBinOnKeyUp),editor.once("paste",function(){editor.off("keyup",removePasteBinOnKeyUp)})}}),editor.on("paste",function(e){var clipboardTimer=(new Date).getTime(),clipboardContent=getClipboardContent(e),clipboardDelay=(new Date).getTime()-clipboardTimer,isKeyBoardPaste=(new Date).getTime()-keyboardPasteTimeStamp-clipboardDelay<1e3,plainTextMode="text"==self.pasteFormat||keyboardPastePlainTextState;return keyboardPastePlainTextState=!1,e.isDefaultPrevented()||isBrokenAndroidClipboardEvent(e)?void removePasteBin():pasteImageData(e)?void removePasteBin():(isKeyBoardPaste||e.preventDefault(),!Env.ie||isKeyBoardPaste&&!e.ieFake||(createPasteBin(),editor.dom.bind(pasteBinElm,"paste",function(e){e.stopPropagation()}),editor.getDoc().execCommand("Paste",!1,null),clipboardContent["text/html"]=getPasteBinHtml()),void(hasContentType(clipboardContent,"text/html")?(e.preventDefault(),insertClipboardContent(clipboardContent,isKeyBoardPaste,plainTextMode)):Delay.setEditorTimeout(editor,function(){insertClipboardContent(clipboardContent,isKeyBoardPaste,plainTextMode)},0)))}),editor.on("dragstart dragend",function(e){draggingInternally="dragstart"==e.type}),editor.on("drop",function(e){var rng=getCaretRangeFromEvent(e);if(!e.isDefaultPrevented()&&!draggingInternally&&!pasteImageData(e,rng)&&rng&&editor.settings.paste_filter_drop!==!1){var dropContent=getDataTransferItems(e.dataTransfer),content=dropContent["mce-internal"]||dropContent["text/html"]||dropContent["text/plain"];content&&(e.preventDefault(),editor.undoManager.transact(function(){dropContent["mce-internal"]&&editor.execCommand("Delete"),editor.selection.setRng(rng),content=Utils.trimHtml(content),dropContent["text/html"]?pasteHtml(content):pasteText(content)}))}}),editor.on("dragover dragend",function(e){editor.settings.paste_data_images&&e.preventDefault()})}var pasteBinElm,lastRng,keyboardPastePlainTextState,self=this,keyboardPasteTimeStamp=0,draggingInternally=!1,pasteBinDefaultContent="%MCEPASTEBIN%",mceInternalUrlPrefix="data:text/mce-internal,";self.pasteHtml=pasteHtml,self.pasteText=pasteText,editor.on("preInit",function(){registerEventHandlers(),editor.parser.addNodeFilter("img",function(nodes,name,args){function isPasteInsert(args){return args.data&&args.data.paste===!0}function remove(node){node.attr("data-mce-object")||src===Env.transparentSrc||node.remove()}function isWebKitFakeUrl(src){return 0===src.indexOf("webkit-fake-url")}function isDataUri(src){return 0===src.indexOf("data:")}if(!editor.settings.paste_data_images&&isPasteInsert(args))for(var i=nodes.length;i--;){var src=nodes[i].attributes.map.src;src&&(isWebKitFakeUrl(src)?remove(nodes[i]):!editor.settings.allow_html_data_urls&&isDataUri(src)&&remove(nodes[i]))}})})}}),define("tinymce/pasteplugin/WordFilter",["tinymce/util/Tools","tinymce/html/DomParser","tinymce/html/Schema","tinymce/html/Serializer","tinymce/html/Node","tinymce/pasteplugin/Utils"],function(Tools,DomParser,Schema,Serializer,Node,Utils){function isWordContent(content){return/level?currentListNode&&(currentListNode=currentListNode.parent.parent):(prevListNode=currentListNode,currentListNode=null)),currentListNode&¤tListNode.name==listName?currentListNode.append(paragraphNode):(prevListNode=prevListNode||currentListNode,currentListNode=new Node(listName,1),start>1&¤tListNode.attr("start",""+start),paragraphNode.wrap(currentListNode)),paragraphNode.name="li",level>lastLevel&&prevListNode&&prevListNode.lastChild.append(currentListNode),lastLevel=level,removeIgnoredNodes(paragraphNode),trimListStart(paragraphNode,/^\u00a0+/),trimListStart(paragraphNode,/^\s*([\u2022\u00b7\u00a7\u25CF]|\w+\.)/),trimListStart(paragraphNode,/^\u00a0+/)}for(var currentListNode,prevListNode,lastLevel=1,elements=[],child=node.firstChild;"undefined"!=typeof child&&null!==child;)if(elements.push(child),child=child.walk(),null!==child)for(;"undefined"!=typeof child&&child.parent!==node;)child=child.walk();for(var i=0;i]+id="?docs-internal-[^>]*>/gi,""),content=content.replace(/
    /gi,""),retainStyleProperties=settings.paste_retain_style_properties,retainStyleProperties&&(validStyles=Tools.makeMap(retainStyleProperties.split(/[, ]/))),settings.paste_enable_default_filters!==!1&&isWordContent(e.content)){e.wordContent=!0,content=Utils.filter(content,[//gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi," "],[/([\s\u00a0]*)<\/span>/gi,function(str,spaces){return spaces.length>0?spaces.replace(/./," ").slice(Math.floor(spaces.length/2)).split("").join(" "):""}]]);var validElements=settings.paste_word_valid_elements;validElements||(validElements="-strong/b,-em/i,-u,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-p/div,-a[href|name],sub,sup,strike,br,del,table[width],tr,td[colspan|rowspan|width],th[colspan|rowspan|width],thead,tfoot,tbody"); +var schema=new Schema({valid_elements:validElements,valid_children:"-li[p]"});Tools.each(schema.elements,function(rule){rule.attributes["class"]||(rule.attributes["class"]={},rule.attributesOrder.push("class")),rule.attributes.style||(rule.attributes.style={},rule.attributesOrder.push("style"))});var domParser=new DomParser({},schema);domParser.addAttributeFilter("style",function(nodes){for(var node,i=nodes.length;i--;)node=nodes[i],node.attr("style",filterStyles(node,node.attr("style"))),"span"==node.name&&node.parent&&!node.attributes.length&&node.unwrap()}),domParser.addAttributeFilter("class",function(nodes){for(var node,className,i=nodes.length;i--;)node=nodes[i],className=node.attr("class"),/^(MsoCommentReference|MsoCommentText|msoDel)$/i.test(className)&&node.remove(),node.attr("class",null)}),domParser.addNodeFilter("del",function(nodes){for(var i=nodes.length;i--;)nodes[i].remove()}),domParser.addNodeFilter("a",function(nodes){for(var node,href,name,i=nodes.length;i--;)if(node=nodes[i],href=node.attr("href"),name=node.attr("name"),href&&-1!=href.indexOf("#_msocom_"))node.remove();else if(href&&0===href.indexOf("file://")&&(href=href.split("#")[1],href&&(href="#"+href)),href||name){if(name&&!/^_?(?:toc|edn|ftn)/i.test(name)){node.unwrap();continue}node.attr({href:href,name:name})}else node.unwrap()});var rootNode=domParser.parse(content);settings.paste_convert_word_fake_lists!==!1&&convertFakeListsToProperLists(rootNode),e.content=new Serializer({validate:settings.validate},schema).serialize(rootNode)}})}return WordFilter.isWordContent=isWordContent,WordFilter}),define("tinymce/pasteplugin/Quirks",["tinymce/Env","tinymce/util/Tools","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Utils"],function(Env,Tools,WordFilter,Utils){return function(editor){function addPreProcessFilter(filterFunc){editor.on("BeforePastePreProcess",function(e){e.content=filterFunc(e.content)})}function removeExplorerBrElementsAfterBlocks(html){if(!WordFilter.isWordContent(html))return html;var blockElements=[];Tools.each(editor.schema.getBlockElements(),function(block,blockName){blockElements.push(blockName)});var explorerBlocksRegExp=new RegExp("(?:
     [\\s\\r\\n]+|
    )*(<\\/?("+blockElements.join("|")+")[^>]*>)(?:
     [\\s\\r\\n]+|
    )*","g");return html=Utils.filter(html,[[explorerBlocksRegExp,"$1"]]),html=Utils.filter(html,[[/

    /g,"

    "],[/
    /g," "],[/

    /g,"
    "]])}function removeWebKitStyles(content){if(WordFilter.isWordContent(content))return content;var webKitStyles=editor.settings.paste_webkit_styles;if(editor.settings.paste_remove_styles_if_webkit===!1||"all"==webKitStyles)return content;if(webKitStyles&&(webKitStyles=webKitStyles.split(/[, ]/)),webKitStyles){var dom=editor.dom,node=editor.selection.getNode();content=content.replace(/(<[^>]+) style="([^"]*)"([^>]*>)/gi,function(all,before,value,after){var inputStyles=dom.parseStyle(value,"span"),outputStyles={};if("none"===webKitStyles)return before+after;for(var i=0;i]+) style="([^"]*)"([^>]*>)/gi,"$1$3");return content=content.replace(/(<[^>]+) data-mce-style="([^"]+)"([^>]*>)/gi,function(all,before,value,after){return before+' style="'+value+'"'+after})}Env.webkit&&addPreProcessFilter(removeWebKitStyles),Env.ie&&addPreProcessFilter(removeExplorerBrElementsAfterBlocks)}}),define("tinymce/pasteplugin/Plugin",["tinymce/PluginManager","tinymce/pasteplugin/Clipboard","tinymce/pasteplugin/WordFilter","tinymce/pasteplugin/Quirks"],function(PluginManager,Clipboard,WordFilter,Quirks){var userIsInformed;PluginManager.add("paste",function(editor){function togglePlainTextPaste(){if("text"==clipboard.pasteFormat)this.active(!1),clipboard.pasteFormat="html";else if(clipboard.pasteFormat="text",this.active(!0),!userIsInformed){var message=editor.translate("Paste is now in plain text mode. Contents will now be pasted as plain text until you toggle this option off.");editor.notificationManager.open({text:message,type:"info"}),userIsInformed=!0}}var clipboard,self=this,settings=editor.settings;self.clipboard=clipboard=new Clipboard(editor),self.quirks=new Quirks(editor),self.wordFilter=new WordFilter(editor),editor.settings.paste_as_text&&(self.clipboard.pasteFormat="text"),settings.paste_preprocess&&editor.on("PastePreProcess",function(e){settings.paste_preprocess.call(self,self,e)}),settings.paste_postprocess&&editor.on("PastePostProcess",function(e){settings.paste_postprocess.call(self,self,e)}),editor.addCommand("mceInsertClipboardContent",function(ui,value){value.content&&self.clipboard.pasteHtml(value.content),value.text&&self.clipboard.pasteText(value.text)}),editor.paste_block_drop&&editor.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),editor.settings.paste_data_images||editor.on("drop",function(e){var dataTransfer=e.dataTransfer;dataTransfer&&dataTransfer.files&&dataTransfer.files.length>0&&e.preventDefault()}),editor.addButton("pastetext",{icon:"pastetext",tooltip:"Paste as text",onclick:togglePlainTextPaste,active:"text"==self.clipboard.pasteFormat}),editor.addMenuItem("pastetext",{text:"Paste as text",selectable:!0,active:clipboard.pasteFormat,onclick:togglePlainTextPaste})})}),expose(["tinymce/pasteplugin/Utils"])}(this)}.apply(root,arguments)})}(this),function(root){define("tinymce-preview",["tinymce"],function(){return function(){tinymce.PluginManager.add("preview",function(editor){var settings=editor.settings,sandbox=!tinymce.Env.ie;editor.addCommand("mcePreview",function(){editor.windowManager.open({title:"Preview",width:parseInt(editor.getParam("plugin_preview_width","650"),10),height:parseInt(editor.getParam("plugin_preview_height","500"),10),html:'",buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var previewHtml,headHtml="";headHtml+='',tinymce.each(editor.contentCSS,function(url){headHtml+=''});var bodyId=settings.body_id||"tinymce";-1!=bodyId.indexOf("=")&&(bodyId=editor.getParam("body_id","","hash"),bodyId=bodyId[editor.id]||bodyId);var bodyClass=settings.body_class||"";-1!=bodyClass.indexOf("=")&&(bodyClass=editor.getParam("body_class","","hash"),bodyClass=bodyClass[editor.id]||"");var dirAttr=editor.settings.directionality?' dir="'+editor.settings.directionality+'"':"";if(previewHtml=""+headHtml+'"+editor.getContent()+"",sandbox)this.getEl("body").firstChild.src="data:text/html;charset=utf-8,"+encodeURIComponent(previewHtml);else{var doc=this.getEl("body").firstChild.contentWindow.document;doc.open(),doc.write(previewHtml),doc.close()}}})}),editor.addButton("preview",{title:"Preview",cmd:"mcePreview"}),editor.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-print",["tinymce"],function(){return function(){tinymce.PluginManager.add("print",function(editor){editor.addCommand("mcePrint",function(){editor.getWin().print()}),editor.addButton("print",{title:"Print",cmd:"mcePrint"}),editor.addShortcut("Meta+P","","mcePrint"),editor.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Meta+P",context:"file"})})}.apply(root,arguments)})}(this),function(root){define("tinymce-save",["tinymce"],function(){return function(){tinymce.PluginManager.add("save",function(editor){function save(){var formObj;return formObj=tinymce.DOM.getParent(editor.id,"form"),!editor.getParam("save_enablewhendirty",!0)||editor.isDirty()?(tinymce.triggerSave(),editor.getParam("save_onsavecallback")?(editor.execCallback("save_onsavecallback",editor),void editor.nodeChanged()):void(formObj?(editor.setDirty(!1),formObj.onsubmit&&!formObj.onsubmit()||("function"==typeof formObj.submit?formObj.submit():displayErrorMessage(editor.translate("Error: Form submit field collision."))),editor.nodeChanged()):displayErrorMessage(editor.translate("Error: No form element found.")))):void 0}function displayErrorMessage(message){editor.notificationManager.open({text:message,type:"error"})}function cancel(){var h=tinymce.trim(editor.startContent);return editor.getParam("save_oncancelcallback")?void editor.execCallback("save_oncancelcallback",editor):(editor.setContent(h),editor.undoManager.clear(),void editor.nodeChanged())}function stateToggle(){var self=this;editor.on("nodeChange dirty",function(){self.disabled(editor.getParam("save_enablewhendirty",!0)&&!editor.isDirty())})}editor.addCommand("mceSave",save),editor.addCommand("mceCancel",cancel),editor.addButton("save",{icon:"save",text:"Save",cmd:"mceSave",disabled:!0,onPostRender:stateToggle}),editor.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:stateToggle}),editor.addShortcut("Meta+S","","mceSave")})}.apply(root,arguments)})}(this),function(root){define("tinymce-searchreplace",["tinymce"],function(){return function(){!function(){function isContentEditableFalse(node){return node&&1==node.nodeType&&"false"===node.contentEditable}function findAndReplaceDOMText(regex,node,replacementNode,captureGroup,schema){function getMatchIndexes(m,captureGroup){if(captureGroup=captureGroup||0,!m[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var index=m.index;if(captureGroup>0){var cg=m[captureGroup];if(!cg)throw"Invalid capture group";index+=m[0].indexOf(cg),m[0]=cg}return[index,index+m[0].length,[m[0]]]}function getText(node){var txt;if(3===node.nodeType)return node.data;if(hiddenTextElementsMap[node.nodeName]&&!blockElementsMap[node.nodeName])return"";if(txt="",isContentEditableFalse(node))return"\n";if((blockElementsMap[node.nodeName]||shortEndedElementsMap[node.nodeName])&&(txt+="\n"),node=node.firstChild)do txt+=getText(node);while(node=node.nextSibling);return txt}function stepThroughMatches(node,matches,replaceFn){var startNode,endNode,startNodeIndex,endNodeIndex,innerNodes=[],atIndex=0,curNode=node,matchLocation=matches.shift(),matchIndex=0;out:for(;;){if((blockElementsMap[curNode.nodeName]||shortEndedElementsMap[curNode.nodeName]||isContentEditableFalse(curNode))&&atIndex++,3===curNode.nodeType&&(!endNode&&curNode.length+atIndex>=matchLocation[1]?(endNode=curNode,endNodeIndex=matchLocation[1]-atIndex):startNode&&innerNodes.push(curNode),!startNode&&curNode.length+atIndex>matchLocation[0]&&(startNode=curNode,startNodeIndex=matchLocation[0]-atIndex),atIndex+=curNode.length),startNode&&endNode){if(curNode=replaceFn({startNode:startNode,startNodeIndex:startNodeIndex,endNode:endNode,endNodeIndex:endNodeIndex,innerNodes:innerNodes,match:matchLocation[2],matchIndex:matchIndex}),atIndex-=endNode.length-endNodeIndex,startNode=null,endNode=null,innerNodes=[],matchLocation=matches.shift(),matchIndex++,!matchLocation)break}else if(hiddenTextElementsMap[curNode.nodeName]&&!blockElementsMap[curNode.nodeName]||!curNode.firstChild){if(curNode.nextSibling){curNode=curNode.nextSibling;continue}}else if(!isContentEditableFalse(curNode)){curNode=curNode.firstChild;continue}for(;;){if(curNode.nextSibling){curNode=curNode.nextSibling;break}if(curNode.parentNode===node)break out;curNode=curNode.parentNode}}}function genReplacer(nodeName){var makeReplacementNode;if("function"!=typeof nodeName){var stencilNode=nodeName.nodeType?nodeName:doc.createElement(nodeName);makeReplacementNode=function(fill,matchIndex){var clone=stencilNode.cloneNode(!1);return clone.setAttribute("data-mce-index",matchIndex),fill&&clone.appendChild(doc.createTextNode(fill)),clone}}else makeReplacementNode=nodeName;return function(range){var before,after,parentNode,startNode=range.startNode,endNode=range.endNode,matchIndex=range.matchIndex;if(startNode===endNode){var node=startNode;parentNode=node.parentNode,range.startNodeIndex>0&&(before=doc.createTextNode(node.data.substring(0,range.startNodeIndex)),parentNode.insertBefore(before,node));var el=makeReplacementNode(range.match[0],matchIndex);return parentNode.insertBefore(el,node),range.endNodeIndexi;++i){var innerNode=range.innerNodes[i],innerEl=makeReplacementNode(innerNode.data,matchIndex);innerNode.parentNode.replaceChild(innerEl,innerNode),innerEls.push(innerEl)}var elB=makeReplacementNode(endNode.data.substring(0,range.endNodeIndex),matchIndex);return parentNode=startNode.parentNode,parentNode.insertBefore(before,startNode),parentNode.insertBefore(elA,startNode),parentNode.removeChild(startNode),parentNode=endNode.parentNode,parentNode.insertBefore(elB,endNode),parentNode.insertBefore(after,endNode),parentNode.removeChild(endNode),elB}}var m,text,doc,blockElementsMap,hiddenTextElementsMap,shortEndedElementsMap,matches=[],count=0;if(doc=node.ownerDocument,blockElementsMap=schema.getBlockElements(),hiddenTextElementsMap=schema.getWhiteSpaceElements(),shortEndedElementsMap=schema.getShortEndedElements(),text=getText(node)){if(regex.global)for(;m=regex.exec(text);)matches.push(getMatchIndexes(m,captureGroup));else m=text.match(regex),matches.push(getMatchIndexes(m,captureGroup));return matches.length&&(count=matches.length,stepThroughMatches(node,matches,genReplacer(replacementNode))),count}}function Plugin(editor){function showDialog(){function updateButtonStates(){win.statusbar.find("#next").disabled(!findSpansByIndex(currentIndex+1).length),win.statusbar.find("#prev").disabled(!findSpansByIndex(currentIndex-1).length)}function notFoundAlert(){editor.windowManager.alert("Could not find the specified string.",function(){win.find("#find")[0].focus()})}var selectedText,last={};selectedText=tinymce.trim(editor.selection.getContent({format:"text"}));var win=editor.windowManager.open({layout:"flex",pack:"center",align:"center",onClose:function(){editor.focus(),self.done()},onSubmit:function(e){var count,caseState,text,wholeWord;return e.preventDefault(),caseState=win.find("#case").checked(),wholeWord=win.find("#words").checked(),text=win.find("#find").value(),text.length?last.text==text&&last.caseState==caseState&&last.wholeWord==wholeWord?0===findSpansByIndex(currentIndex+1).length?void notFoundAlert():(self.next(),void updateButtonStates()):(count=self.find(text,caseState,wholeWord),count||notFoundAlert(),win.statusbar.items().slice(1).disabled(0===count),updateButtonStates(),void(last={text:text,caseState:caseState,wholeWord:wholeWord})):(self.done(!1),void win.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){win.submit()}},{text:"Replace",disabled:!0,onclick:function(){self.replace(win.find("#replace").value())||(win.statusbar.items().slice(1).disabled(!0),currentIndex=-1,last={})}},{text:"Replace all",disabled:!0,onclick:function(){self.replace(win.find("#replace").value(),!0,!0),win.statusbar.items().slice(1).disabled(!0),last={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){self.prev(),updateButtonStates()}},{text:"Next",name:"next",disabled:!0,onclick:function(){self.next(),updateButtonStates()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:selectedText},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}})}function getElmIndex(elm){var value=elm.getAttribute("data-mce-index");return"number"==typeof value?""+value:value}function markAllMatches(regex){var node,marker;return marker=editor.dom.create("span",{"data-mce-bogus":1}),marker.className="mce-match-marker",node=editor.getBody(),self.done(!1),findAndReplaceDOMText(regex,node,marker,!1,editor.schema)}function unwrap(node){var parentNode=node.parentNode;node.firstChild&&parentNode.insertBefore(node.firstChild,node),node.parentNode.removeChild(node)}function findSpansByIndex(index){var nodes,spans=[];if(nodes=tinymce.toArray(editor.getBody().getElementsByTagName("span")),nodes.length)for(var i=0;i0}var self=this,currentIndex=-1;self.init=function(ed){ed.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:showDialog,separator:"before",context:"edit"}),ed.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Meta+F",onclick:showDialog}),ed.addCommand("SearchReplace",showDialog),ed.shortcuts.add("Meta+F","",showDialog)},self.find=function(text,matchCase,wholeWord){text=text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),text=wholeWord?"\\b"+text+"\\b":text;var count=markAllMatches(new RegExp(text,matchCase?"g":"gi"));return count&&(currentIndex=-1,currentIndex=moveSelection(!0)),count},self.next=function(){var index=moveSelection(!0);-1!==index&&(currentIndex=index)},self.prev=function(){var index=moveSelection(!1);-1!==index&&(currentIndex=index)},self.replace=function(text,forward,all){var i,nodes,node,matchIndex,currentMatchIndex,hasMore,nextIndex=currentIndex;for(forward=forward!==!1,node=editor.getBody(),nodes=tinymce.grep(tinymce.toArray(node.getElementsByTagName("span")),isMatchSpan),i=0;icurrentIndex&&nodes[i].setAttribute("data-mce-index",currentMatchIndex-1)}return editor.undoManager.add(),currentIndex=nextIndex,forward?(hasMore=findSpansByIndex(nextIndex+1).length>0,self.next()):(hasMore=findSpansByIndex(nextIndex-1).length>0,self.prev()),!all&&hasMore},self.done=function(keepEditorSelection){var i,nodes,startContainer,endContainer;for(nodes=tinymce.toArray(editor.getBody().getElementsByTagName("span")),i=0;i=matchLocation.end?(endNode=curNode,endNodeIndex=matchLocation.end-atIndex):startNode&&innerNodes.push(curNode),!startNode&&curNode.length+atIndex>matchLocation.start&&(startNode=curNode,startNodeIndex=matchLocation.start-atIndex),atIndex+=curNode.length),startNode&&endNode){if(curNode=replaceFn({startNode:startNode,startNodeIndex:startNodeIndex,endNode:endNode,endNodeIndex:endNodeIndex,innerNodes:innerNodes,match:matchLocation.text,matchIndex:matchIndex}),atIndex-=endNode.length-endNodeIndex,startNode=null,endNode=null,innerNodes=[],matchLocation=matches.shift(),matchIndex++,!matchLocation)break}else if(hiddenTextElementsMap[curNode.nodeName]&&!blockElementsMap[curNode.nodeName]||!curNode.firstChild){if(curNode.nextSibling){curNode=curNode.nextSibling;continue}}else if(!isContentEditableFalse(curNode)){curNode=curNode.firstChild;continue}for(;;){if(curNode.nextSibling){curNode=curNode.nextSibling;break}if(curNode.parentNode===node)break out;curNode=curNode.parentNode}}}function genReplacer(callback){function makeReplacementNode(fill,matchIndex){var match=matches[matchIndex];match.stencil||(match.stencil=callback(match));var clone=match.stencil.cloneNode(!1);return clone.setAttribute("data-mce-index",matchIndex),fill&&clone.appendChild(dom.doc.createTextNode(fill)),clone}return function(range){var before,after,parentNode,startNode=range.startNode,endNode=range.endNode,matchIndex=range.matchIndex,doc=dom.doc;if(startNode===endNode){var node=startNode;parentNode=node.parentNode,range.startNodeIndex>0&&(before=doc.createTextNode(node.data.substring(0,range.startNodeIndex)),parentNode.insertBefore(before,node));var el=makeReplacementNode(range.match,matchIndex);return parentNode.insertBefore(el,node),range.endNodeIndexi;++i){var innerNode=range.innerNodes[i],innerEl=makeReplacementNode(innerNode.data,matchIndex);innerNode.parentNode.replaceChild(innerEl,innerNode),innerEls.push(innerEl)}var elB=makeReplacementNode(endNode.data.substring(0,range.endNodeIndex),matchIndex);return parentNode=startNode.parentNode,parentNode.insertBefore(before,startNode),parentNode.insertBefore(elA,startNode),parentNode.removeChild(startNode),parentNode=endNode.parentNode,parentNode.insertBefore(elB,endNode),parentNode.insertBefore(after,endNode),parentNode.removeChild(endNode),elB}}function unwrapElement(element){var parentNode=element.parentNode;parentNode.insertBefore(element.firstChild,element),element.parentNode.removeChild(element)}function getWrappersByIndex(index){var elements=node.getElementsByTagName("*"),wrappers=[];index="number"==typeof index?""+index:null;for(var i=0;ii&&callback(matches[i],i)!==!1;i++);return this}function wrap(callback){return matches.length&&stepThroughMatches(node,matches,genReplacer(callback)),this}function find(regex,data){if(text&®ex.global)for(;m=regex.exec(text);)matches.push(createMatch(m,data));return this}function unwrap(match){var i,elements=getWrappersByIndex(match?indexOf(match):null);for(i=elements.length;i--;)unwrapElement(elements[i]);return this}function matchFromElement(element){return matches[element.getAttribute("data-mce-index")]}function elementFromMatch(match){return getWrappersByIndex(indexOf(match))[0]}function add(start,length,data){return matches.push({start:start,end:start+length,text:text.substr(start,length),data:data}),this}function rangeFromMatch(match){var wrappers=getWrappersByIndex(indexOf(match)),rng=editor.dom.createRng();return rng.setStartBefore(wrappers[0]),rng.setEndAfter(wrappers[wrappers.length-1]),rng}function replace(match,text){var rng=rangeFromMatch(match);return rng.deleteContents(),text.length>0&&rng.insertNode(editor.dom.doc.createTextNode(text)),rng}function reset(){return matches.splice(0,matches.length),unwrap(),this}var m,text,blockElementsMap,hiddenTextElementsMap,shortEndedElementsMap,matches=[],dom=editor.dom;return blockElementsMap=editor.schema.getBlockElements(),hiddenTextElementsMap=editor.schema.getWhiteSpaceElements(),shortEndedElementsMap=editor.schema.getShortEndedElements(),text=getText(node),{text:text,matches:matches,each:each,filter:filter,reset:reset,matchFromElement:matchFromElement,elementFromMatch:elementFromMatch,find:find,add:add,wrap:wrap,unwrap:unwrap,replace:replace,rangeFromMatch:rangeFromMatch,indexOf:indexOf}}}),define("tinymce/spellcheckerplugin/Plugin",["tinymce/spellcheckerplugin/DomTextMatcher","tinymce/PluginManager","tinymce/util/Tools","tinymce/ui/Menu","tinymce/dom/DOMUtils","tinymce/util/XHR","tinymce/util/URI","tinymce/util/JSON"],function(DomTextMatcher,PluginManager,Tools,Menu,DOMUtils,XHR,URI,JSON){PluginManager.add("spellchecker",function(editor,url){function getTextMatcher(){return self.textMatcher||(self.textMatcher=new DomTextMatcher(editor.getBody(),editor)),self.textMatcher}function buildMenuItems(listName,languageValues){var items=[];return Tools.each(languageValues,function(languageValue){items.push({selectable:!0,text:languageValue.name,data:languageValue.value})}),items}function isEmpty(obj){for(var name in obj)return!1;return!0}function showSuggestions(word,spans){var items=[],suggestions=lastSuggestions[word];Tools.each(suggestions,function(suggestion){items.push({text:suggestion,onclick:function(){editor.insertContent(editor.dom.encode(suggestion)),editor.dom.remove(spans),checkIfFinished()}})}),items.push({text:"-"}),hasDictionarySupport&&items.push({text:"Add to Dictionary",onclick:function(){addToDictionary(word,spans)}}),items.push.apply(items,[{text:"Ignore",onclick:function(){ignoreWord(word,spans)}},{text:"Ignore all",onclick:function(){ignoreWord(word,spans,!0)}}]),suggestionsMenu=new Menu({items:items,context:"contextmenu",onautohide:function(e){-1!=e.target.className.indexOf("spellchecker")&&e.preventDefault()},onhide:function(){suggestionsMenu.remove(),suggestionsMenu=null}}),suggestionsMenu.renderTo(document.body);var pos=DOMUtils.DOM.getPos(editor.getContentAreaContainer()),targetPos=editor.dom.getPos(spans[0]),root=editor.dom.getRoot();"BODY"==root.nodeName?(targetPos.x-=root.ownerDocument.documentElement.scrollLeft||root.scrollLeft,targetPos.y-=root.ownerDocument.documentElement.scrollTop||root.scrollTop):(targetPos.x-=root.scrollLeft,targetPos.y-=root.scrollTop),pos.x+=targetPos.x,pos.y+=targetPos.y,suggestionsMenu.moveTo(pos.x,pos.y+spans[0].offsetHeight)}function getWordCharPattern(){return editor.getParam("spellchecker_wordchar_pattern")||new RegExp('[^\\s!"#$%&()*+,-./:;<=>?@[\\]^_{|}`§©«®±¶·¸»¼½¾¿×÷¤”“„    ]+',"g")}function defaultSpellcheckCallback(method,text,doneCallback,errorCallback){var data={method:method},postData="";"spellcheck"==method&&(data.text=text,data.lang=settings.spellchecker_language),"addToDictionary"==method&&(data.word=text),Tools.each(data,function(value,key){postData&&(postData+="&"),postData+=key+"="+encodeURIComponent(value)}),XHR.send({url:new URI(url).toAbsolute(settings.spellchecker_rpc_url),type:"post",content_type:"application/x-www-form-urlencoded",data:postData,success:function(result){if(result=JSON.parse(result))result.error?errorCallback(result.error):doneCallback(result);else{var message=editor.translate("Server response wasn't proper JSON.");errorCallback(message)}},error:function(){var message=editor.translate("The spelling service was not found: (")+settings.spellchecker_rpc_url+editor.translate(")");errorCallback(message)}})}function sendRpcCall(name,data,successCallback,errorCallback){var spellCheckCallback=settings.spellchecker_callback||defaultSpellcheckCallback;spellCheckCallback.call(self,name,data,successCallback,errorCallback)}function spellcheck(){function errorCallback(message){editor.notificationManager.open({text:message,type:"error"}),editor.setProgressState(!1),finish()}finish()||(editor.setProgressState(!0),sendRpcCall("spellcheck",getTextMatcher().text,markErrors,errorCallback),editor.focus())}function checkIfFinished(){editor.dom.select("span.mce-spellchecker-word").length||finish()}function addToDictionary(word,spans){editor.setProgressState(!0),sendRpcCall("addToDictionary",word,function(){editor.setProgressState(!1),editor.dom.remove(spans,!0),checkIfFinished(); +},function(message){editor.notificationManager.open({text:message,type:"error"}),editor.setProgressState(!1)})}function ignoreWord(word,spans,all){editor.selection.collapse(),all?Tools.each(editor.dom.select("span.mce-spellchecker-word"),function(span){span.getAttribute("data-mce-word")==word&&editor.dom.remove(span,!0)}):editor.dom.remove(spans,!0),checkIfFinished()}function finish(){return getTextMatcher().reset(),self.textMatcher=null,started?(started=!1,editor.fire("SpellcheckEnd"),!0):void 0}function getElmIndex(elm){var value=elm.getAttribute("data-mce-index");return"number"==typeof value?""+value:value}function findSpansByIndex(index){var nodes,spans=[];if(nodes=Tools.toArray(editor.getBody().getElementsByTagName("span")),nodes.length)for(var i=0;i0){var rng=editor.dom.createRng();rng.setStartBefore(spans[0]),rng.setEndAfter(spans[spans.length-1]),editor.selection.setRng(rng),showSuggestions(target.getAttribute("data-mce-word"),spans)}}}),editor.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:spellcheck,selectable:!0,onPostRender:function(){var self=this;self.active(started),editor.on("SpellcheckStart SpellcheckEnd",function(){self.active(started)})}});var buttonArgs={tooltip:"Spellcheck",onclick:spellcheck,onPostRender:function(){var self=this;editor.on("SpellcheckStart SpellcheckEnd",function(){self.active(started)})}};languageMenuItems.length>1&&(buttonArgs.type="splitbutton",buttonArgs.menu=languageMenuItems,buttonArgs.onshow=updateSelection,buttonArgs.onselect=function(e){settings.spellchecker_language=e.control.settings.data}),editor.addButton("spellchecker",buttonArgs),editor.addCommand("mceSpellCheck",spellcheck),editor.on("remove",function(){suggestionsMenu&&(suggestionsMenu.remove(),suggestionsMenu=null)}),editor.on("change",checkIfFinished),this.getTextMatcher=getTextMatcher,this.getWordCharPattern=getWordCharPattern,this.markErrors=markErrors,this.getLanguage=function(){return settings.spellchecker_language},settings.spellchecker_language=settings.spellchecker_language||settings.language||"en"})}),expose(["tinymce/spellcheckerplugin/DomTextMatcher"])}(this)}.apply(root,arguments)})}(this),function(root){define("tinymce-tabfocus",["tinymce"],function(){return function(){tinymce.PluginManager.add("tabfocus",function(editor){function tabCancel(e){9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.preventDefault()}function tabHandler(e){function find(direction){function canSelectRecursive(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&canSelectRecursive(e.parentNode)}function canSelect(el){return/INPUT|TEXTAREA|BUTTON/.test(el.tagName)&&tinymce.get(e.id)&&-1!=el.tabIndex&&canSelectRecursive(el)}if(el=DOM.select(":input:enabled,*[tabindex]:not(iframe)"),each(el,function(e,i){return e.id==editor.id?(x=i,!1):void 0}),direction>0){for(i=x+1;i=0;i--)if(canSelect(el[i]))return el[i];return null}var x,el,v,i;if(!(9!==e.keyCode||e.ctrlKey||e.altKey||e.metaKey||e.isDefaultPrevented())&&(v=explode(editor.getParam("tab_focus",editor.getParam("tabfocus_elements",":prev,:next"))),1==v.length&&(v[1]=v[0],v[0]=":prev"),el=e.shiftKey?":prev"==v[0]?find(-1):DOM.get(v[0]):":next"==v[1]?find(1):DOM.get(v[1]))){var focusEditor=tinymce.get(el.id||el.name);el.id&&focusEditor?focusEditor.focus():tinymce.util.Delay.setTimeout(function(){tinymce.Env.webkit||window.focus(),el.focus()},10),e.preventDefault()}}var DOM=tinymce.DOM,each=tinymce.each,explode=tinymce.explode;editor.on("init",function(){editor.inline&&tinymce.DOM.setAttrib(editor.getBody(),"tabIndex",null),editor.on("keyup",tabCancel),tinymce.Env.gecko?editor.on("keypress keydown",tabHandler):editor.on("keydown",tabHandler)})})}.apply(root,arguments)})}(this),function(root){define("tinymce-table",["tinymce"],function(){return function(){!function(exports,undefined){"use strict";function require(ids,callback){for(var module,defs=[],i=0;i9)&&(cell.hasChildNodes()||(cell.innerHTML='
    '))}return{getSpanVal:getSpanVal,paddCell:paddCell}}),define("tinymce/tableplugin/TableGrid",["tinymce/util/Tools","tinymce/Env","tinymce/tableplugin/Utils"],function(Tools,Env,Utils){var each=Tools.each,getSpanVal=Utils.getSpanVal;return function(editor,table,selectedCell){function removeCellSelection(){editor.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected")}function isEditorBody(node){return node===editor.getBody()}function getChildrenByName(node,names){return node?(names=Tools.map(names.split(","),function(name){return name.toLowerCase()}),Tools.grep(node.childNodes,function(node){return-1!==Tools.inArray(names,node.nodeName.toLowerCase())})):[]}function buildGrid(){var startY=0;grid=[],gridWidth=0,each(["thead","tbody","tfoot"],function(part){var partElm=getChildrenByName(table,part)[0],rows=getChildrenByName(partElm,"tr");each(rows,function(tr,y){y+=startY,each(getChildrenByName(tr,"td,th"),function(td,x){var x2,y2,rowspan,colspan;if(grid[y])for(;grid[y][x];)x++;for(rowspan=getSpanVal(td,"rowspan"),colspan=getSpanVal(td,"colspan"),y2=y;y+rowspan>y2;y2++)for(grid[y2]||(grid[y2]=[]),x2=x;x+colspan>x2;x2++)grid[y2][x2]={part:part,real:y2==y&&x2==x,elm:td,rowspan:rowspan,colspan:colspan};gridWidth=Math.max(gridWidth,x+1)})}),startY+=rows.length})}function fireNewRow(node){return editor.fire("newrow",{node:node}),node}function fireNewCell(node){return editor.fire("newcell",{node:node}),node}function cloneNode(node,children){return node=node.cloneNode(children),node.removeAttribute("id"),node}function getCell(x,y){var row;return row=grid[y],row?row[x]:void 0}function setSpanVal(td,name,val){td&&(val=parseInt(val,10),1===val?td.removeAttribute(name,1):td.setAttribute(name,val,1))}function isCellSelected(cell){return cell&&(!!dom.getAttrib(cell.elm,"data-mce-selected")||cell==selectedCell)}function getSelectedRows(){var rows=[];return each(table.rows,function(row){each(row.cells,function(cell){return dom.getAttrib(cell,"data-mce-selected")||selectedCell&&cell==selectedCell.elm?(rows.push(row),!1):void 0})}),rows}function deleteTable(){var rng=dom.createRng();isEditorBody(table)||(rng.setStartAfter(table),rng.setEndAfter(table),selection.setRng(rng),dom.remove(table))}function cloneCell(cell){var formatNode,cloneFormats={};return editor.settings.table_clone_elements!==!1&&(cloneFormats=Tools.makeMap((editor.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),Tools.walk(cell,function(node){var curNode;return 3==node.nodeType?(each(dom.getParents(node.parentNode,null,cell).reverse(),function(node){cloneFormats[node.nodeName]&&(node=cloneNode(node,!1),formatNode?curNode&&curNode.appendChild(node):formatNode=curNode=node,curNode=node)}),curNode&&(curNode.innerHTML=Env.ie&&Env.ie<10?" ":'
    '),!1):void 0},"childNodes"),cell=cloneNode(cell,!1),fireNewCell(cell),setSpanVal(cell,"rowSpan",1),setSpanVal(cell,"colSpan",1),formatNode?cell.appendChild(formatNode):Utils.paddCell(cell),cell}function cleanup(){var row,rng=dom.createRng();return each(dom.select("tr",table),function(tr){0===tr.cells.length&&dom.remove(tr)}),0===dom.select("tr",table).length?(rng.setStartBefore(table),rng.setEndBefore(table),selection.setRng(rng),void dom.remove(table)):(each(dom.select("thead,tbody,tfoot",table),function(part){0===part.rows.length&&dom.remove(part)}),buildGrid(),void(startPos&&(row=grid[Math.min(grid.length-1,startPos.y)],row&&(selection.select(row[Math.min(row.length-1,startPos.x)].elm,!0),selection.collapse(!0)))))}function fillLeftDown(x,y,rows,cols){var tr,x2,r,c,cell;for(tr=grid[y][x].elm.parentNode,r=1;rows>=r;r++)if(tr=dom.getNext(tr,"tr")){for(x2=x;x2>=0;x2--)if(cell=grid[y+r][x2].elm,cell.parentNode==tr){for(c=1;cols>=c;c++)dom.insertAfter(cloneCell(cell),cell);break}if(-1==x2)for(c=1;cols>=c;c++)tr.insertBefore(cloneCell(tr.cells[0]),tr.cells[0])}}function split(){each(grid,function(row,y){each(row,function(cell,x){var colSpan,rowSpan,i;if(isCellSelected(cell)&&(cell=cell.elm,colSpan=getSpanVal(cell,"colspan"),rowSpan=getSpanVal(cell,"rowspan"),colSpan>1||rowSpan>1)){for(setSpanVal(cell,"rowSpan",1),setSpanVal(cell,"colSpan",1),i=0;colSpan-1>i;i++)dom.insertAfter(cloneCell(cell),cell);fillLeftDown(x,y,rowSpan-1,colSpan)}})})}function merge(cell,cols,rows){var pos,startX,startY,endX,endY,x,y,startCell,endCell,children,count;if(cell?(pos=getPos(cell),startX=pos.x,startY=pos.y,endX=startX+(cols-1),endY=startY+(rows-1)):(startPos=endPos=null,each(grid,function(row,y){each(row,function(cell,x){isCellSelected(cell)&&(startPos||(startPos={x:x,y:y}),endPos={x:x,y:y})})}),startPos&&(startX=startPos.x,startY=startPos.y,endX=endPos.x,endY=endPos.y)),startCell=getCell(startX,startY),endCell=getCell(endX,endY),startCell&&endCell&&startCell.part==endCell.part){for(split(),buildGrid(),startCell=getCell(startX,startY).elm,setSpanVal(startCell,"colSpan",endX-startX+1),setSpanVal(startCell,"rowSpan",endY-startY+1),y=startY;endY>=y;y++)for(x=startX;endX>=x;x++)grid[y]&&grid[y][x]&&(cell=grid[y][x].elm,cell!=startCell&&(children=Tools.grep(cell.childNodes),each(children,function(node){startCell.appendChild(node)}),children.length&&(children=Tools.grep(startCell.childNodes),count=0,each(children,function(node){"BR"==node.nodeName&&count++0&&grid[posY-1][x]&&(otherCell=grid[posY-1][x].elm,rowSpan=getSpanVal(otherCell,"rowSpan"),rowSpan>1)){setSpanVal(otherCell,"rowSpan",rowSpan+1);continue}}else if(rowSpan=getSpanVal(cell,"rowspan"),rowSpan>1){setSpanVal(cell,"rowSpan",rowSpan+1);continue}newCell=cloneCell(cell),setSpanVal(newCell,"colSpan",cell.colSpan),newRow.appendChild(newCell),lastCell=cell}newRow.hasChildNodes()&&(before?rowElm.parentNode.insertBefore(newRow,rowElm):dom.insertAfter(newRow,rowElm))}}function insertCol(before){var posX,lastCell;each(grid,function(row){return each(row,function(cell,x){return isCellSelected(cell)&&(posX=x,before)?!1:void 0}),before?!posX:void 0}),each(grid,function(row,y){var cell,rowSpan,colSpan;row[posX]&&(cell=row[posX].elm,cell!=lastCell&&(colSpan=getSpanVal(cell,"colspan"),rowSpan=getSpanVal(cell,"rowspan"),1==colSpan?before?(cell.parentNode.insertBefore(cloneCell(cell),cell),fillLeftDown(posX,y,rowSpan-1,colSpan)):(dom.insertAfter(cloneCell(cell),cell),fillLeftDown(posX,y,rowSpan-1,colSpan)):setSpanVal(cell,"colSpan",cell.colSpan+1),lastCell=cell))})}function getSelectedCells(grid){return Tools.grep(getAllCells(grid),isCellSelected)}function getAllCells(grid){var cells=[];return each(grid,function(row){each(row,function(cell){cells.push(cell)})}),cells}function deleteCols(){var cols=[];if(isEditorBody(table)){if(1==grid[0].length)return;if(getSelectedCells(grid).length==getAllCells(grid).length)return}each(grid,function(row){each(row,function(cell,x){isCellSelected(cell)&&-1===Tools.inArray(cols,x)&&(each(grid,function(row){var colSpan,cell=row[x].elm;colSpan=getSpanVal(cell,"colSpan"),colSpan>1?setSpanVal(cell,"colSpan",colSpan-1):dom.remove(cell)}),cols.push(x))})}),cleanup()}function deleteRows(){function deleteRow(tr){var pos,lastCell;each(tr.cells,function(cell){var rowSpan=getSpanVal(cell,"rowSpan");rowSpan>1&&(setSpanVal(cell,"rowSpan",rowSpan-1),pos=getPos(cell),fillLeftDown(pos.x,pos.y,1,1))}),pos=getPos(tr.cells[0]),each(grid[pos.y],function(cell){var rowSpan;cell=cell.elm,cell!=lastCell&&(rowSpan=getSpanVal(cell,"rowSpan"),1>=rowSpan?dom.remove(cell):setSpanVal(cell,"rowSpan",rowSpan-1),lastCell=cell)})}var rows;rows=getSelectedRows(),isEditorBody(table)&&rows.length==table.rows.length||(each(rows.reverse(),function(tr){deleteRow(tr)}),cleanup())}function cutRows(){var rows=getSelectedRows();if(!isEditorBody(table)||rows.length!=table.rows.length)return dom.remove(rows),cleanup(),rows}function copyRows(){var rows=getSelectedRows();return each(rows,function(row,i){rows[i]=cloneNode(row,!0)}),rows}function pasteRows(rows,before){var selectedRows=getSelectedRows(),targetRow=selectedRows[before?0:selectedRows.length-1],targetCellCount=targetRow.cells.length;rows&&(each(grid,function(row){var match;return targetCellCount=0,each(row,function(cell){cell.real&&(targetCellCount+=cell.colspan),cell.elm.parentNode==targetRow&&(match=1)}),match?!1:void 0}),before||rows.reverse(),each(rows,function(row){var i,cell,cellCount=row.cells.length;for(fireNewRow(row),i=0;cellCount>i;i++)cell=row.cells[i],fireNewCell(cell),setSpanVal(cell,"colSpan",1),setSpanVal(cell,"rowSpan",1);for(i=cellCount;targetCellCount>i;i++)row.appendChild(fireNewCell(cloneCell(row.cells[cellCount-1])));for(i=targetCellCount;cellCount>i;i++)dom.remove(row.cells[i]);before?targetRow.parentNode.insertBefore(row,targetRow):dom.insertAfter(row,targetRow)}),removeCellSelection())}function getPos(target){var pos;return each(grid,function(row,y){return each(row,function(cell,x){return cell.elm==target?(pos={x:x,y:y},!1):void 0}),!pos}),pos}function setStartCell(cell){startPos=getPos(cell)}function findEndPos(){var maxX,maxY;return maxX=maxY=0,each(grid,function(row,y){each(row,function(cell,x){var colSpan,rowSpan;isCellSelected(cell)&&(cell=grid[y][x],x>maxX&&(maxX=x),y>maxY&&(maxY=y),cell.real&&(colSpan=cell.colspan-1,rowSpan=cell.rowspan-1,colSpan&&x+colSpan>maxX&&(maxX=x+colSpan),rowSpan&&y+rowSpan>maxY&&(maxY=y+rowSpan)))})}),{x:maxX,y:maxY}}function setEndCell(cell){var startX,startY,endX,endY,maxX,maxY,colSpan,rowSpan,x,y;if(endPos=getPos(cell),startPos&&endPos){for(startX=Math.min(startPos.x,endPos.x),startY=Math.min(startPos.y,endPos.y),endX=Math.max(startPos.x,endPos.x),endY=Math.max(startPos.y,endPos.y),maxX=endX,maxY=endY,y=startY;maxY>=y;y++)cell=grid[y][startX],cell.real||startX-(cell.colspan-1)=x;x++)cell=grid[startY][x],cell.real||startY-(cell.rowspan-1)=y;y++)for(x=startX;endX>=x;x++)cell=grid[y][x],cell.real&&(colSpan=cell.colspan-1,rowSpan=cell.rowspan-1,colSpan&&x+colSpan>maxX&&(maxX=x+colSpan),rowSpan&&y+rowSpan>maxY&&(maxY=y+rowSpan));for(removeCellSelection(),y=startY;maxY>=y;y++)for(x=startX;maxX>=x;x++)grid[y][x]&&dom.setAttrib(grid[y][x].elm,"data-mce-selected","1")}}function moveRelIdx(cellElm,delta){var pos,index,cell;pos=getPos(cellElm),index=pos.y*gridWidth+pos.x;do{if(index+=delta,cell=getCell(index%gridWidth,Math.floor(index/gridWidth)),!cell)break;if(cell.elm!=cellElm)return selection.select(cell.elm,!0),dom.isEmpty(cell.elm)&&selection.collapse(!0),!0}while(cell.elm==cellElm);return!1}var grid,gridWidth,startPos,endPos,selection=editor.selection,dom=selection.dom;table=table||dom.getParent(selection.getStart(!0),"table"),buildGrid(),selectedCell=selectedCell||dom.getParent(selection.getStart(!0),"th,td"),selectedCell&&(startPos=getPos(selectedCell),endPos=findEndPos(),selectedCell=getCell(startPos.x,startPos.y)),Tools.extend(this,{deleteTable:deleteTable,split:split,merge:merge,insertRow:insertRow,insertCol:insertCol,deleteCols:deleteCols,deleteRows:deleteRows,cutRows:cutRows,copyRows:copyRows,pasteRows:pasteRows,getPos:getPos,setStartCell:setStartCell,setEndCell:setEndCell,moveRelIdx:moveRelIdx,refresh:buildGrid})}}),define("tinymce/tableplugin/Quirks",["tinymce/util/VK","tinymce/util/Delay","tinymce/Env","tinymce/util/Tools","tinymce/tableplugin/Utils"],function(VK,Delay,Env,Tools,Utils){var each=Tools.each,getSpanVal=Utils.getSpanVal;return function(editor){function moveWebKitSelection(){function eventHandler(e){function handle(upBool,sourceNode){var siblingDirection=upBool?"previousSibling":"nextSibling",currentRow=editor.dom.getParent(sourceNode,"tr"),siblingRow=currentRow[siblingDirection];if(siblingRow)return moveCursorToRow(editor,sourceNode,siblingRow,upBool),e.preventDefault(),!0;var tableNode=editor.dom.getParent(currentRow,"table"),middleNode=currentRow.parentNode,parentNodeName=middleNode.nodeName.toLowerCase();if("tbody"===parentNodeName||parentNodeName===(upBool?"tfoot":"thead")){var targetParent=getTargetParent(upBool,tableNode,middleNode,"tbody");if(null!==targetParent)return moveToRowInTarget(upBool,targetParent,sourceNode)}return escapeTable(upBool,currentRow,siblingDirection,tableNode)}function getTargetParent(upBool,topNode,secondNode,nodeName){var tbodies=editor.dom.select(">"+nodeName,topNode),position=tbodies.indexOf(secondNode);if(upBool&&0===position||!upBool&&position===tbodies.length-1)return getFirstHeadOrFoot(upBool,topNode);if(-1===position){var topOrBottom="thead"===secondNode.tagName.toLowerCase()?0:tbodies.length-1;return tbodies[topOrBottom]}return tbodies[position+(upBool?-1:1)]}function getFirstHeadOrFoot(upBool,parent){var tagName=upBool?"thead":"tfoot",headOrFoot=editor.dom.select(">"+tagName,parent);return 0!==headOrFoot.length?headOrFoot[0]:null}function moveToRowInTarget(upBool,targetParent,sourceNode){var targetRow=getChildForDirection(targetParent,upBool);return targetRow&&moveCursorToRow(editor,sourceNode,targetRow,upBool),e.preventDefault(),!0}function escapeTable(upBool,currentRow,siblingDirection,table){var tableSibling=table[siblingDirection];if(tableSibling)return moveCursorToStartOfElement(tableSibling),!0;var parentCell=editor.dom.getParent(table,"td,th");if(parentCell)return handle(upBool,parentCell,e);var backUpSibling=getChildForDirection(currentRow,!upBool);return moveCursorToStartOfElement(backUpSibling),e.preventDefault(),!1}function getChildForDirection(parent,up){var child=parent&&parent[up?"lastChild":"firstChild"];return child&&"BR"===child.nodeName?editor.dom.getParent(child,"td,th"):child}function moveCursorToStartOfElement(n){editor.selection.setCursorLocation(n,0)}function isVerticalMovement(){return key==VK.UP||key==VK.DOWN}function isInTable(editor){var node=editor.selection.getNode(),currentRow=editor.dom.getParent(node,"tr");return null!==currentRow}function columnIndex(column){for(var colIndex=0,c=column;c.previousSibling;)c=c.previousSibling,colIndex+=getSpanVal(c,"colspan");return colIndex}function findColumn(rowElement,columnIndex){var c=0,r=0;return each(rowElement.children,function(cell,i){return c+=getSpanVal(cell,"colspan"),r=i,c>columnIndex?!1:void 0}),r}function moveCursorToRow(ed,node,row,upBool){var srcColumnIndex=columnIndex(editor.dom.getParent(node,"td,th")),tgtColumnIndex=findColumn(row,srcColumnIndex),tgtNode=row.childNodes[tgtColumnIndex],rowCellTarget=getChildForDirection(tgtNode,upBool);moveCursorToStartOfElement(rowCellTarget||tgtNode)}function shouldFixCaret(preBrowserNode){var newNode=editor.selection.getNode(),newParent=editor.dom.getParent(newNode,"td,th"),oldParent=editor.dom.getParent(preBrowserNode,"td,th");return newParent&&newParent!==oldParent&&checkSameParentTable(newParent,oldParent)}function checkSameParentTable(nodeOne,NodeTwo){return editor.dom.getParent(nodeOne,"TABLE")===editor.dom.getParent(NodeTwo,"TABLE")}var key=e.keyCode;if(isVerticalMovement()&&isInTable(editor)){var preBrowserNode=editor.selection.getNode();Delay.setEditorTimeout(editor,function(){shouldFixCaret(preBrowserNode)&&handle(!e.shiftKey&&key===VK.UP,preBrowserNode,e)},0)}}editor.on("KeyDown",function(e){eventHandler(e)})}function fixBeforeTableCaretBug(){function isAtStart(rng,par){var elm,doc=par.ownerDocument,rng2=doc.createRange();return rng2.setStartBefore(par),rng2.setEnd(rng.endContainer,rng.endOffset),elm=doc.createElement("body"),elm.appendChild(rng2.cloneContents()),0===elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}editor.on("KeyDown",function(e){var rng,table,dom=editor.dom;37!=e.keyCode&&38!=e.keyCode||(rng=editor.selection.getRng(),table=dom.getParent(rng.startContainer,"table"),table&&editor.getBody().firstChild==table&&isAtStart(rng,table)&&(rng=dom.createRng(),rng.setStartBefore(table),rng.setEndBefore(table),editor.selection.setRng(rng),e.preventDefault()))})}function fixTableCaretPos(){editor.on("KeyDown SetContent VisualAid",function(){var last;for(last=editor.getBody().lastChild;last;last=last.previousSibling)if(3==last.nodeType){if(last.nodeValue.length>0)break}else if(1==last.nodeType&&("BR"==last.tagName||!last.getAttribute("data-mce-bogus")))break;last&&"TABLE"==last.nodeName&&(editor.settings.forced_root_block?editor.dom.add(editor.getBody(),editor.settings.forced_root_block,editor.settings.forced_root_block_attrs,Env.ie&&Env.ie<10?" ":'
    '):editor.dom.add(editor.getBody(),"br",{"data-mce-bogus":"1"}))}),editor.on("PreProcess",function(o){var last=o.node.lastChild;last&&("BR"==last.nodeName||1==last.childNodes.length&&("BR"==last.firstChild.nodeName||" "==last.firstChild.nodeValue))&&last.previousSibling&&"TABLE"==last.previousSibling.nodeName&&editor.dom.remove(last)})}function fixTableCellSelection(){function tableCellSelected(ed,rng,n,currentCell){var tableParent,allOfCellSelected,tableCellSelection,TEXT_NODE=3,table=ed.dom.getParent(rng.startContainer,"TABLE");return table&&(tableParent=table.parentNode),allOfCellSelected=rng.startContainer.nodeType==TEXT_NODE&&0===rng.startOffset&&0===rng.endOffset&¤tCell&&("TR"==n.nodeName||n==tableParent),tableCellSelection=("TD"==n.nodeName||"TH"==n.nodeName)&&!currentCell,allOfCellSelected||tableCellSelection}function fixSelection(){var rng=editor.selection.getRng(),n=editor.selection.getNode(),currentCell=editor.dom.getParent(rng.startContainer,"TD,TH");if(tableCellSelected(editor,rng,n,currentCell)){currentCell||(currentCell=n);for(var end=currentCell.lastChild;end.lastChild;)end=end.lastChild;3==end.nodeType&&(rng.setEnd(end,end.data.length),editor.selection.setRng(rng))}}editor.on("KeyDown",function(){fixSelection()}),editor.on("MouseDown",function(e){2!=e.button&&fixSelection()})}function deleteTable(){function placeCaretInCell(cell){editor.selection.select(cell,!0),editor.selection.collapse(!0)}function clearCell(cell){editor.$(cell).empty(),Utils.paddCell(cell)}editor.on("keydown",function(e){if((e.keyCode==VK.DELETE||e.keyCode==VK.BACKSPACE)&&!e.isDefaultPrevented()){var table,tableCells,selectedTableCells,cell;if(table=editor.dom.getParent(editor.selection.getStart(),"table")){if(tableCells=editor.dom.select("td,th",table),selectedTableCells=Tools.grep(tableCells,function(cell){return!!editor.dom.getAttrib(cell,"data-mce-selected")}),0===selectedTableCells.length)return cell=editor.dom.getParent(editor.selection.getStart(),"td,th"),void(editor.selection.isCollapsed()&&cell&&editor.dom.isEmpty(cell)&&(e.preventDefault(),clearCell(cell),placeCaretInCell(cell)));e.preventDefault(),editor.undoManager.transact(function(){tableCells.length==selectedTableCells.length?editor.execCommand("mceTableDelete"):(Tools.each(selectedTableCells,clearCell),placeCaretInCell(selectedTableCells[0]))})}}})}deleteTable(),Env.webkit&&(moveWebKitSelection(),fixTableCellSelection()),Env.gecko&&(fixBeforeTableCaretBug(),fixTableCaretPos()),Env.ie>9&&(fixBeforeTableCaretBug(),fixTableCaretPos())}}),define("tinymce/tableplugin/CellSelection",["tinymce/tableplugin/TableGrid","tinymce/dom/TreeWalker","tinymce/util/Tools"],function(TableGrid,TreeWalker,Tools){return function(editor){function clear(force){editor.getBody().style.webkitUserSelect="",(force||hasCellSelection)&&(editor.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected"),hasCellSelection=!1)}function isCellInTable(table,cell){return table&&cell?table===dom.getParent(cell,"table"):!1}function cellSelectionHandler(e){var sel,currentCell,target=e.target;if(!resizing&&target!==lastMouseOverTarget&&(lastMouseOverTarget=target,startTable&&startCell&&(currentCell=dom.getParent(target,"td,th"),isCellInTable(startTable,currentCell)||(currentCell=dom.getParent(startTable,"td,th")),isCellInTable(startTable,currentCell)))){e.preventDefault(),tableGrid||(tableGrid=new TableGrid(editor,startTable,startCell),editor.getBody().style.webkitUserSelect="none"),tableGrid.setEndCell(currentCell),hasCellSelection=!0,sel=editor.selection.getSel();try{sel.removeAllRanges?sel.removeAllRanges():sel.empty()}catch(ex){}}}var tableGrid,startCell,startTable,lastMouseOverTarget,resizing,dom=editor.dom,hasCellSelection=!0;return editor.on("SelectionChange",function(e){hasCellSelection&&e.stopImmediatePropagation()},!0),editor.on("MouseDown",function(e){2==e.button||resizing||(clear(),startCell=dom.getParent(e.target,"td,th"),startTable=dom.getParent(startCell,"table"))}),editor.on("mouseover",cellSelectionHandler),editor.on("remove",function(){dom.unbind(editor.getDoc(),"mouseover",cellSelectionHandler),clear()}),editor.on("MouseUp",function(){function setPoint(node,start){var walker=new TreeWalker(node,node);do{if(3==node.nodeType&&0!==Tools.trim(node.nodeValue).length)return void(start?rng.setStart(node,0):rng.setEnd(node,node.nodeValue.length));if("BR"==node.nodeName)return void(start?rng.setStartBefore(node):rng.setEndBefore(node))}while(node=start?walker.next():walker.prev())}var rng,selectedCells,walker,node,lastNode,sel=editor.selection;if(startCell){if(tableGrid&&(editor.getBody().style.webkitUserSelect=""),selectedCells=dom.select("td[data-mce-selected],th[data-mce-selected]"),selectedCells.length>0){rng=dom.createRng(),node=selectedCells[0],rng.setStartBefore(node),rng.setEndAfter(node),setPoint(node,1),walker=new TreeWalker(node,dom.getParent(selectedCells[0],"table"));do if("TD"==node.nodeName||"TH"==node.nodeName){if(!dom.getAttrib(node,"data-mce-selected"))break;lastNode=node}while(node=walker.next());setPoint(lastNode),sel.setRng(rng)}editor.nodeChanged(),startCell=tableGrid=startTable=lastMouseOverTarget=null}}),editor.on("KeyUp Drop SetContent",function(e){clear("setcontent"==e.type),startCell=tableGrid=startTable=lastMouseOverTarget=null,resizing=!1}),editor.on("ObjectResizeStart ObjectResized",function(e){resizing="objectresized"!=e.type}),{clear:clear}}}),define("tinymce/tableplugin/Dialogs",["tinymce/util/Tools","tinymce/Env"],function(Tools,Env){var each=Tools.each;return function(editor){function createColorPickAction(){var colorPickerCallback=editor.settings.color_picker_callback;return colorPickerCallback?function(){var self=this;colorPickerCallback.call(editor,function(value){self.value(value).fire("change")},self.value())}:void 0}function createStyleForm(dom){return{title:"Advanced",type:"form",defaults:{onchange:function(){updateStyle(dom,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:createColorPickAction()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:createColorPickAction()}]}]}}function removePxSuffix(size){return size?size.replace(/px$/,""):""}function addSizeSuffix(size){return/^[0-9]+$/.test(size)&&(size+="px"),size}function unApplyAlign(elm){each("left center right".split(" "),function(name){editor.formatter.remove("align"+name,{},elm)})}function unApplyVAlign(elm){each("top middle bottom".split(" "),function(name){editor.formatter.remove("valign"+name,{},elm)})}function buildListItems(inputList,itemCallback,startItems){function appendItems(values,output){return output=output||[],Tools.each(values,function(item){var menuItem={text:item.text||item.title};item.menu?menuItem.menu=appendItems(item.menu):(menuItem.value=item.value,itemCallback&&itemCallback(menuItem)),output.push(menuItem)}),output}return appendItems(inputList,startItems||[])}function updateStyle(dom,win,isStyleCtrl){var data=win.toJSON(),css=dom.parseStyle(data.style);isStyleCtrl?(win.find("#borderColor").value(css["border-color"]||"")[0].fire("change"),win.find("#backgroundColor").value(css["background-color"]||"")[0].fire("change")):(css["border-color"]=data.borderColor,css["background-color"]=data.backgroundColor),win.find("#style").value(dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))))}function appendStylesToData(dom,data,elm){var css=dom.parseStyle(dom.getAttrib(elm,"style"));css["border-color"]&&(data.borderColor=css["border-color"]),css["background-color"]&&(data.backgroundColor=css["background-color"]),data.style=dom.serializeStyle(css)}function mergeStyles(dom,elm,styles){var css=dom.parseStyle(dom.getAttrib(elm,"style"));each(styles,function(style){css[style.name]=style.value}),dom.setAttrib(elm,"style",dom.serializeStyle(dom.parseStyle(dom.serializeStyle(css))))}var self=this;self.tableProps=function(){self.table(!0)},self.table=function(isProps){function onSubmitTableForm(){function styleTDTH(elm,name,value){if("TD"===elm.tagName||"TH"===elm.tagName)dom.setStyle(elm,name,value);else if(elm.children)for(var i=0;i',tableElm.insertBefore(captionElm,tableElm.firstChild)),unApplyAlign(tableElm),data.align&&editor.formatter.apply("align"+data.align,{},tableElm),editor.focus(),editor.addVisual()})}function getTDTHOverallStyle(elm,name){function checkChildren(firstChildStyle,elms){for(var i=0;ii;i++)r.push(i);return r}function decide(getBlock,isSingle,getFallback){for(var singleInBlock,inBlock=getBlock(),i=0;i0?findPositions(getTopEdge,getBottomEdge,rows):[],colPositions=cols.length>0?findPositions(getInnerEdge,getOuterEdge,cols):[];drawRows(rowPositions,table.offsetWidth,tablePosition),drawCols(colPositions,table.offsetHeight,tablePosition)}function deduceSize(deducables,index,isPercentageBased,table){if(0>index||index>=deducables.length-1)return"";var current=deducables[index];if(current)current={value:current,delta:0};else for(var reversedUpToIndex=deducables.slice(0,index).reverse(),i=0;i0?widthNumber:getWidthFallback}function getWidths(tableGrid,isPercentageBased,table){for(var cols=getColumnBlocks(tableGrid),backups=Tools.map(cols,function(col){return getInnerEdge(col.colIndex,col.element).x}),widths=[],i=0;i1?deduceSize(backups,i):getWidth(cols[i].element,isPercentageBased,table);width=width?width:RESIZE_MINIMUM_WIDTH,widths.push(width)}return widths}function getPixelHeight(element){var heightString=getStyleOrAttrib(element,"height"),heightNumber=parseInt(heightString,10);return isPercentageBasedSize(heightString)&&(heightNumber=0),!isNaN(heightNumber)&&heightNumber>0?heightNumber:getComputedStyleSize(element,"height")}function getPixelHeights(tableGrid){for(var rows=getRowBlocks(tableGrid),backups=Tools.map(rows,function(row){return getTopEdge(row.rowIndex,row.element).y}),heights=[],i=0;i1?deduceSize(backups,i):getPixelHeight(rows[i].element);height=height?height:RESIZE_MINIMUM_HEIGHT,heights.push(height)}return heights}function determineDeltas(sizes,column,step,min,isPercentageBased){function generateZeros(array){return Tools.map(array,function(){return 0})}function onOneColumn(){var deltas;if(isPercentageBased)deltas=[100-result[0]];else{var newNext=Math.max(min,result[0]+step);deltas=[newNext-result[0]]}return deltas}function onLeftOrMiddle(index,next){var deltas,startZeros=generateZeros(result.slice(0,index)),endZeros=generateZeros(result.slice(next+1));if(step>=0){var newNext=Math.max(min,result[next]-step);deltas=startZeros.concat([step,newNext-result[next]]).concat(endZeros)}else{var newThis=Math.max(min,result[index]+step),diffx=result[index]-newThis;deltas=startZeros.concat([newThis-result[index],diffx]).concat(endZeros)}return deltas}function onRight(previous,index){var deltas,startZeros=generateZeros(result.slice(0,index));if(step>=0)deltas=startZeros.concat([step]);else{var size=Math.max(min,result[index]+step);deltas=startZeros.concat([size-result[index]])}return deltas}var deltas,result=sizes.slice(0);return deltas=0===sizes.length?[]:1===sizes.length?onOneColumn():0===column?onLeftOrMiddle(0,1):column>0&&columni;i++)r+=measures[i];return r}function recalculateWidths(tableGrid,widths){var allCells=tableGrid.getAllCells();return Tools.map(allCells,function(cell){var width=total(cell.colIndex,cell.colIndex+cell.colspan,widths);return{element:cell.element,width:width,colspan:cell.colspan}})}function recalculateCellHeights(tableGrid,heights){var allCells=tableGrid.getAllCells();return Tools.map(allCells,function(cell){var height=total(cell.rowIndex,cell.rowIndex+cell.rowspan,heights);return{element:cell.element,height:height,rowspan:cell.rowspan}})}function recalculateRowHeights(tableGrid,heights){var allRows=tableGrid.getAllRows();return Tools.map(allRows,function(row,i){return{element:row.element,height:heights[i]}})}function isPercentageBasedSize(size){return percentageBasedSizeRegex.test(size)}function isPixelBasedSize(size){return pixelBasedSizeRegex.test(size)}function adjustWidth(table,delta,index){function setSizes(newSizes,styleExtension){Tools.each(newSizes,function(cell){editor.dom.setStyle(cell.element,"width",cell.width+styleExtension),editor.dom.setAttrib(cell.element,"width",null)})}function getNewTablePercentWidth(){return indexy;y++){for(html+="",x=0;cols>x;x++)html+=""+(Env.ie&&Env.ie<10?" ":"
    ")+"";html+=""}return html+="",editor.undoManager.transact(function(){editor.insertContent(html),tableElm=editor.dom.get("__mce"),editor.dom.setAttrib(tableElm,"id",null),editor.$("tr",tableElm).each(function(index,row){editor.fire("newrow",{node:row}),editor.$("th,td",row).each(function(index,cell){editor.fire("newcell",{node:cell})})}),editor.dom.setAttribs(tableElm,editor.settings.table_default_attributes||{}),editor.dom.setStyles(tableElm,editor.settings.table_default_styles||{})}),tableElm}function handleDisabledState(ctrl,selector,sameParts){function bindStateListener(){var selectedElm,selectedCells,state,parts={},sum=0;selectedCells=editor.dom.select("td[data-mce-selected],th[data-mce-selected]"),selectedElm=selectedCells[0],selectedElm||(selectedElm=editor.selection.getStart()),sameParts&&selectedCells.length>0?(each(selectedCells,function(cell){return parts[cell.parentNode.parentNode.nodeName]=1}),each(parts,function(value){sum+=value}),state=1!==sum):state=!editor.dom.getParent(selectedElm,selector),ctrl.disabled(state),editor.selection.selectorChanged(selector,function(state){ctrl.disabled(!state)})}editor.initialized?bindStateListener():editor.on("init",bindStateListener)}function postRender(){handleDisabledState(this,"table")}function postRenderCell(){handleDisabledState(this,"td,th")}function postRenderMergeCell(){handleDisabledState(this,"td,th",!0)}function generateTableGrid(){var html="";html='';for(var y=0;10>y;y++){html+="";for(var x=0;10>x;x++)html+='';html+=""}return html+="
    ",html+=''}function selectGrid(tx,ty,control){var x,y,focusCell,cell,active,table=control.getEl().getElementsByTagName("table")[0],rtl=control.isRtl()||"tl-tr"==control.parent().rel; +for(table.nextSibling.innerHTML=tx+1+" x "+(ty+1),rtl&&(tx=9-tx),y=0;10>y;y++)for(x=0;10>x;x++)cell=table.rows[y].childNodes[x].firstChild,active=(rtl?x>=tx:tx>=x)&&ty>=y,editor.dom.toggleClass(cell,"mce-active",active),active&&(focusCell=cell);return focusCell.parentNode}function addButtons(){editor.addButton("tableprops",{title:"Table properties",onclick:dialogs.tableProps,icon:"table"}),editor.addButton("tabledelete",{title:"Delete table",onclick:cmd("mceTableDelete")}),editor.addButton("tablecellprops",{title:"Cell properties",onclick:cmd("mceTableCellProps")}),editor.addButton("tablemergecells",{title:"Merge cells",onclick:cmd("mceTableMergeCells")}),editor.addButton("tablesplitcells",{title:"Split cell",onclick:cmd("mceTableSplitCells")}),editor.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:cmd("mceTableInsertRowBefore")}),editor.addButton("tableinsertrowafter",{title:"Insert row after",onclick:cmd("mceTableInsertRowAfter")}),editor.addButton("tabledeleterow",{title:"Delete row",onclick:cmd("mceTableDeleteRow")}),editor.addButton("tablerowprops",{title:"Row properties",onclick:cmd("mceTableRowProps")}),editor.addButton("tablecutrow",{title:"Cut row",onclick:cmd("mceTableCutRow")}),editor.addButton("tablecopyrow",{title:"Copy row",onclick:cmd("mceTableCopyRow")}),editor.addButton("tablepasterowbefore",{title:"Paste row before",onclick:cmd("mceTablePasteRowBefore")}),editor.addButton("tablepasterowafter",{title:"Paste row after",onclick:cmd("mceTablePasteRowAfter")}),editor.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:cmd("mceTableInsertColBefore")}),editor.addButton("tableinsertcolafter",{title:"Insert column after",onclick:cmd("mceTableInsertColAfter")}),editor.addButton("tabledeletecol",{title:"Delete column",onclick:cmd("mceTableDeleteCol")})}function isTable(table){var selectorMatched=editor.dom.is(table,"table")&&editor.getBody().contains(table);return selectorMatched}function addToolbars(){var toolbarItems=editor.settings.table_toolbar;""!==toolbarItems&&toolbarItems!==!1&&(toolbarItems||(toolbarItems="tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"),editor.addContextToolbar(isTable,toolbarItems))}var clipboardRows,resizeBars,self=this,dialogs=new Dialogs(editor);!editor.settings.object_resizing||editor.settings.table_resize_bars===!1||editor.settings.object_resizing!==!0&&"table"!==editor.settings.object_resizing||(resizeBars=ResizeBars(editor)),editor.settings.table_grid===!1?editor.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onclick:dialogs.table}):editor.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(e){e.aria&&(this.parent().hideAll(),e.stopImmediatePropagation(),dialogs.table())},onshow:function(){selectGrid(0,0,this.menu.items()[0])},onhide:function(){var elements=this.menu.items()[0].getEl().getElementsByTagName("a");editor.dom.removeClass(elements,"mce-active"),editor.dom.addClass(elements[0],"mce-active")},menu:[{type:"container",html:generateTableGrid(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(e){var x,y,target=e.target;"A"==target.tagName.toUpperCase()&&(x=parseInt(target.getAttribute("data-mce-x"),10),y=parseInt(target.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(x=9-x),x===this.lastX&&y===this.lastY||(selectGrid(x,y,e.control),this.lastX=x,this.lastY=y))},onclick:function(e){var self=this;"A"==e.target.tagName.toUpperCase()&&(e.preventDefault(),e.stopPropagation(),self.parent().cancel(),editor.undoManager.transact(function(){insertTable(self.lastX+1,self.lastY+1)}),editor.addVisual())}}]}),editor.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:postRender,onclick:dialogs.tableProps}),editor.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:postRender,cmd:"mceTableDelete"}),editor.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:cmd("mceTableCellProps"),onPostRender:postRenderCell},{text:"Merge cells",onclick:cmd("mceTableMergeCells"),onPostRender:postRenderMergeCell},{text:"Split cell",onclick:cmd("mceTableSplitCells"),onPostRender:postRenderCell}]}),editor.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:cmd("mceTableInsertRowBefore"),onPostRender:postRenderCell},{text:"Insert row after",onclick:cmd("mceTableInsertRowAfter"),onPostRender:postRenderCell},{text:"Delete row",onclick:cmd("mceTableDeleteRow"),onPostRender:postRenderCell},{text:"Row properties",onclick:cmd("mceTableRowProps"),onPostRender:postRenderCell},{text:"-"},{text:"Cut row",onclick:cmd("mceTableCutRow"),onPostRender:postRenderCell},{text:"Copy row",onclick:cmd("mceTableCopyRow"),onPostRender:postRenderCell},{text:"Paste row before",onclick:cmd("mceTablePasteRowBefore"),onPostRender:postRenderCell},{text:"Paste row after",onclick:cmd("mceTablePasteRowAfter"),onPostRender:postRenderCell}]}),editor.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:cmd("mceTableInsertColBefore"),onPostRender:postRenderCell},{text:"Insert column after",onclick:cmd("mceTableInsertColAfter"),onPostRender:postRenderCell},{text:"Delete column",onclick:cmd("mceTableDeleteCol"),onPostRender:postRenderCell}]});var menuItems=[];each("inserttable tableprops deletetable | cell row column".split(" "),function(name){"|"==name?menuItems.push({text:"-"}):menuItems.push(editor.menuItems[name])}),editor.addButton("table",{type:"menubutton",title:"Table",menu:menuItems}),Env.isIE||editor.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(editor.selection.select(e),editor.nodeChanged())}),self.quirks=new Quirks(editor),editor.on("Init",function(){self.cellSelection=new CellSelection(editor),self.resizeBars=resizeBars}),editor.on("PreInit",function(){editor.serializer.addAttributeFilter("data-mce-cell-padding,data-mce-border,data-mce-border-color",function(nodes,name){for(var i=nodes.length;i--;)nodes[i].attr(name,null)})}),each({mceTableSplitCells:function(grid){grid.split()},mceTableMergeCells:function(grid){var cell;cell=editor.dom.getParent(editor.selection.getStart(),"th,td"),editor.dom.select("td[data-mce-selected],th[data-mce-selected]").length?grid.merge():dialogs.merge(grid,cell)},mceTableInsertRowBefore:function(grid){grid.insertRow(!0)},mceTableInsertRowAfter:function(grid){grid.insertRow()},mceTableInsertColBefore:function(grid){grid.insertCol(!0)},mceTableInsertColAfter:function(grid){grid.insertCol()},mceTableDeleteCol:function(grid){grid.deleteCols()},mceTableDeleteRow:function(grid){grid.deleteRows()},mceTableCutRow:function(grid){clipboardRows=grid.cutRows()},mceTableCopyRow:function(grid){clipboardRows=grid.copyRows()},mceTablePasteRowBefore:function(grid){grid.pasteRows(clipboardRows,!0)},mceTablePasteRowAfter:function(grid){grid.pasteRows(clipboardRows)},mceTableDelete:function(grid){resizeBars&&resizeBars.clearBars(),grid.deleteTable()}},function(func,name){editor.addCommand(name,function(){var grid=new TableGrid(editor);grid&&(func(grid),editor.execCommand("mceRepaint"),self.cellSelection.clear())})}),each({mceInsertTable:dialogs.table,mceTableProps:function(){dialogs.table(!0)},mceTableRowProps:dialogs.row,mceTableCellProps:dialogs.cell},function(func,name){editor.addCommand(name,function(ui,val){func(val)})}),addButtons(),addToolbars(),editor.settings.table_tab_navigation!==!1&&editor.on("keydown",function(e){var cellElm,grid,delta;9==e.keyCode&&(cellElm=editor.dom.getParent(editor.selection.getStart(),"th,td"),cellElm&&(e.preventDefault(),grid=new TableGrid(editor),delta=e.shiftKey?-1:1,editor.undoManager.transact(function(){!grid.moveRelIdx(cellElm,delta)&&delta>0&&(grid.insertRow(),grid.refresh(),grid.moveRelIdx(cellElm,delta))})))}),self.insertTable=insertTable}var each=Tools.each;PluginManager.add("table",Plugin)})}(this)}.apply(root,arguments)})}(this),function(root){define("tinymce-template",["tinymce"],function(){return function(){tinymce.PluginManager.add("template",function(editor){function createTemplateList(callback){return function(){var templateList=editor.settings.templates;return"function"==typeof templateList?void templateList(callback):void("string"==typeof templateList?tinymce.util.XHR.send({url:templateList,success:function(text){callback(tinymce.util.JSON.parse(text))}}):callback(templateList))}}function showDialog(templateList){function onSelectTemplate(e){function insertIframeHtml(html){if(-1==html.indexOf("")){var contentCssLinks="";tinymce.each(editor.contentCSS,function(url){contentCssLinks+=''}),html=""+contentCssLinks+""+html+""}html=replaceTemplateValues(html,"template_preview_replace_values");var doc=win.find("iframe")[0].getEl().contentWindow.document;doc.open(),doc.write(html),doc.close()}var value=e.control.value();value.url?tinymce.util.XHR.send({url:value.url,success:function(html){templateHtml=html,insertIframeHtml(templateHtml)}}):(templateHtml=value.content,insertIframeHtml(templateHtml)),win.find("#description")[0].text(e.control.value().description)}var win,templateHtml,values=[];if(!templateList||0===templateList.length){var message=editor.translate("No templates defined.");return void editor.notificationManager.open({text:message,type:"info"})}tinymce.each(templateList,function(template){values.push({selected:!values.length,text:template.title,value:{url:template.url,content:template.content,description:template.description}})}),win=editor.windowManager.open({title:"Insert template",layout:"flex",direction:"column",align:"stretch",padding:15,spacing:10,items:[{type:"form",flex:0,padding:0,items:[{type:"container",label:"Templates",items:{type:"listbox",label:"Templates",name:"template",values:values,onselect:onSelectTemplate}}]},{type:"label",name:"description",label:"Description",text:" "},{type:"iframe",flex:1,border:1}],onsubmit:function(){insertTemplate(!1,templateHtml)},width:editor.getParam("template_popup_width",600),height:editor.getParam("template_popup_height",500)}),win.find("listbox")[0].fire("select")}function getDateTime(fmt,date){function addZeros(value,len){if(value=""+value,value.length0&&(el=dom.create("div",null),el.appendChild(n[0].cloneNode(!0))),each(dom.select("*",el),function(n){hasClass(n,editor.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(n.innerHTML=getDateTime(editor.getParam("template_cdate_format",editor.getLang("template.cdate_format")))),hasClass(n,editor.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(n.innerHTML=getDateTime(editor.getParam("template_mdate_format",editor.getLang("template.mdate_format")))),hasClass(n,editor.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(n.innerHTML=sel)}),replaceVals(el),editor.execCommand("mceInsertContent",!1,el.innerHTML),editor.addVisual()}var each=tinymce.each;editor.addCommand("mceInsertTemplate",insertTemplate),editor.addButton("template",{title:"Insert template",onclick:createTemplateList(showDialog)}),editor.addMenuItem("template",{text:"Insert template",onclick:createTemplateList(showDialog),context:"insert"}),editor.on("PreProcess",function(o){var dom=editor.dom;each(dom.select("div",o.node),function(e){dom.hasClass(e,"mceTmpl")&&(each(dom.select("*",e),function(e){dom.hasClass(e,editor.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(e.innerHTML=getDateTime(editor.getParam("template_mdate_format",editor.getLang("template.mdate_format"))))}),replaceVals(e))})})})}.apply(root,arguments)})}(this),function(root){define("tinymce-textcolor",["tinymce"],function(){return function(){tinymce.PluginManager.add("textcolor",function(editor){function getCurrentColor(format){var color;return editor.dom.getParents(editor.selection.getStart(),function(elm){var value;(value=elm.style["forecolor"==format?"color":"background-color"])&&(color=value)}),color}function mapColors(){var i,colorMap,colors=[];for(colorMap=editor.settings.textcolor_map||["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Red violet","FFFFFF","White","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum"],i=0;i
    '+(isNoColor?"×":"")+"
    "}var colors,color,html,last,x,y,i,ctrl=this,id=ctrl._id,count=0;for(colors=mapColors(),colors.push({text:tinymce.translate("No color"),color:"transparent"}),html='',last=colors.length-1,y=0;rows>y;y++){for(html+="",x=0;cols>x;x++)i=y*cols+x,i>last?html+="":(color=colors[i],html+=getColorCellHtml(color.color,color.text));html+=""}if(editor.settings.color_picker_callback){for(html+='",html+="",x=0;cols>x;x++)html+=getColorCellHtml("","Custom color");html+=""}return html+="
    "}function applyFormat(format,value){editor.undoManager.transact(function(){editor.focus(),editor.formatter.apply(format,{value:value}),editor.nodeChanged()})}function removeFormat(format){editor.undoManager.transact(function(){editor.focus(),editor.formatter.remove(format,{value:null},null,!0),editor.nodeChanged()})}function onPanelClick(e){function selectColor(value){buttonCtrl.hidePanel(),buttonCtrl.color(value),applyFormat(buttonCtrl.settings.format,value)}function resetColor(){buttonCtrl.hidePanel(),buttonCtrl.resetColor(),removeFormat(buttonCtrl.settings.format)}function setDivColor(div,value){div.style.background=value,div.setAttribute("data-mce-color",value)}var value,buttonCtrl=this.parent();tinymce.DOM.getParent(e.target,".mce-custom-color-btn")&&(buttonCtrl.hidePanel(),editor.settings.color_picker_callback.call(editor,function(value){var customColorCells,div,i,tableElm=buttonCtrl.panel.getEl().getElementsByTagName("table")[0];for(customColorCells=tinymce.map(tableElm.rows[tableElm.rows.length-1].childNodes,function(elm){return elm.firstChild}),i=0;ii;i++)setDivColor(customColorCells[i],customColorCells[i+1].getAttribute("data-mce-color"));setDivColor(div,value),selectColor(value)},getCurrentColor(buttonCtrl.settings.format))),value=e.target.getAttribute("data-mce-color"),value?(this.lastId&&document.getElementById(this.lastId).setAttribute("aria-selected",!1),e.target.setAttribute("aria-selected",!0),this.lastId=e.target.id,"transparent"==value?resetColor():selectColor(value)):null!==value&&buttonCtrl.hidePanel()}function onButtonClick(){var self=this;self._color?applyFormat(self.settings.format,self._color):removeFormat(self.settings.format)}var cols,rows;rows=editor.settings.textcolor_rows||5,cols=editor.settings.textcolor_cols||8,editor.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",format:"forecolor",panel:{role:"application",ariaRemember:!0,html:renderColorPicker,onclick:onPanelClick},onclick:onButtonClick}),editor.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",format:"hilitecolor",panel:{role:"application",ariaRemember:!0,html:renderColorPicker,onclick:onPanelClick},onclick:onButtonClick})})}.apply(root,arguments)})}(this),function(root){define("tinymce-textpattern",["tinymce"],function(){return function(){tinymce.PluginManager.add("textpattern",function(editor){function getPatterns(){return isPatternsDirty&&(patterns.sort(function(a,b){return a.start.length>b.start.length?-1:a.start.length'+value+"
    "}function compileCharMapToRegExp(){var key,regExp="";for(key in charMap)regExp+=key;return new RegExp("["+regExp+"]","g")}function compileCharMapToCssSelector(){var key,selector="";for(key in charMap)selector&&(selector+=","),selector+="span.mce-"+charMap[key];return selector}var node,nodeList,i,nodeValue,div,bookmark,charMap,visualCharsRegExp,body=editor.getBody(),selection=editor.selection;if(charMap={" ":"nbsp","­":"shy"},state=!state,self.state=state,editor.fire("VisualChars",{state:state}),visualCharsRegExp=compileCharMapToRegExp(),addBookmark&&(bookmark=selection.getBookmark()),state)for(nodeList=[],tinymce.walk(body,function(n){3==n.nodeType&&n.nodeValue&&visualCharsRegExp.test(n.nodeValue)&&nodeList.push(n)},"childNodes"),i=0;i=0;i--)editor.dom.remove(nodeList[i],1);selection.moveToBookmark(bookmark)}function toggleActiveState(){var self=this;editor.on("VisualChars",function(e){self.active(e.state)})}var state,self=this;editor.addCommand("mceVisualChars",toggleVisualChars),editor.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars",onPostRender:toggleActiveState}),editor.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:toggleActiveState,selectable:!0,context:"view",prependToContext:!0}),editor.on("beforegetcontent",function(e){state&&"raw"!=e.format&&!e.draft&&(state=!0,toggleVisualChars(!1))})})}.apply(root,arguments)})}(this),function(root){define("tinymce-wordcount",["tinymce"],function(){return function(){tinymce.PluginManager.add("wordcount",function(editor){function update(){editor.theme.panel.find("#wordcount").text(["Words: {0}",self.getCount()])}var countre,cleanre,self=this;countre=editor.getParam("wordcount_countregex",/[\w\u2019\x27\-\u00C0-\u1FFF]+/g),cleanre=editor.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),editor.on("init",function(){var statusbar=editor.theme.panel&&editor.theme.panel.find("#statusbar")[0];statusbar&&tinymce.util.Delay.setEditorTimeout(editor,function(){statusbar.insert({type:"label",name:"wordcount",text:["Words: {0}",self.getCount()],classes:"wordcount",disabled:editor.settings.readonly},0),editor.on("setcontent beforeaddundo",update),editor.on("keyup",function(e){32==e.keyCode&&update()})},0)}),self.getCount=function(){var tx=editor.getContent({format:"raw"}),tc=0;if(tx){tx=tx.replace(/\.\.\./g," "),tx=tx.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," "),tx=tx.replace(/(\w+)(&#?[a-z0-9]+;)+(\w+)/i,"$1$3").replace(/&.+?;/g," "),tx=tx.replace(cleanre,"");var wordArray=tx.match(countre);wordArray&&(tc=wordArray.length)}return tc}})}.apply(root,arguments)})}(this),function(root){define("tinymce-compat3x",["tinymce"],function(){return function(){!function(tinymce){function noop(){}function log(apiCall){!reported&&window&&window.console&&(reported=!0,console.log("Deprecated TinyMCE API call: "+apiCall))}function Dispatcher(target,newEventName,argsMap,defaultScope){return target=target||this,newEventName?(this.add=function(callback,scope,prepend){function patchedEventCallback(e){var callbackArgs=[];if("string"==typeof argsMap&&(argsMap=argsMap.split(" ")),argsMap&&"function"!=typeof argsMap)for(var i=0;i.on"+newEventName+".add(..)"),target.on(newEventName,patchedEventCallback,prepend),patchedEventCallback},this.addToTop=function(callback,scope){this.add(callback,scope,!0)},this.remove=function(callback){return target.off(newEventName,callback)},void(this.dispatch=function(){return target.fire(newEventName),!0})):void(this.add=this.addToTop=this.remove=this.dispatch=noop)}function patchEditor(editor){function patchEditorEvents(oldEventNames,argsMap){tinymce.each(oldEventNames.split(" "),function(oldName){editor["on"+oldName]=new Dispatcher(editor,oldName,argsMap)})}function convertUndoEventArgs(type,event,target){return[event.level,target]}function filterSelectionEvents(needsSelection){return function(type,e){return!e.selection&&!needsSelection||e.selection==needsSelection?[e]:void 0}}function cmNoop(){function _noop(){return cmNoop()}var obj={},methods="add addMenu addSeparator collapse createMenu destroy displayColor expand focus getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex setActive setAriaProperty setColor setDisabled setSelected setState showMenu update";return log("editor.controlManager.*"),tinymce.each(methods.split(" "),function(method){obj[method]=_noop}),obj}if(!editor.controlManager){editor.controlManager={buttons:{},setDisabled:function(name,state){log("controlManager.setDisabled(..)"),this.buttons[name]&&this.buttons[name].disabled(state)},setActive:function(name,state){log("controlManager.setActive(..)"),this.buttons[name]&&this.buttons[name].active(state)},onAdd:new Dispatcher,onPostRender:new Dispatcher,add:function(obj){return obj},createButton:cmNoop,createColorSplitButton:cmNoop,createControl:cmNoop,createDropMenu:cmNoop,createListBox:cmNoop,createMenuButton:cmNoop,createSeparator:cmNoop,createSplitButton:cmNoop,createToolbar:cmNoop,createToolbarGroup:cmNoop,destroy:noop,get:noop,setControlType:cmNoop},patchEditorEvents("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate","editor"),patchEditorEvents("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset"),patchEditorEvents("BeforeExecCommand ExecCommand","command ui value args"),patchEditorEvents("PreProcess PostProcess LoadContent SaveContent Change"),patchEditorEvents("BeforeSetContent BeforeGetContent SetContent GetContent",filterSelectionEvents(!1)),patchEditorEvents("SetProgressState","state time"),patchEditorEvents("VisualAid","element hasVisual"),patchEditorEvents("Undo Redo",convertUndoEventArgs),patchEditorEvents("NodeChange",function(type,e){return[editor.controlManager,e.element,editor.selection.isCollapsed(),e]});var originalAddButton=editor.addButton;editor.addButton=function(name,settings){ +function patchedPostRender(){return editor.controlManager.buttons[name]=this,originalOnPostRender?originalOnPostRender.call(this):void 0}var originalOnPostRender;for(var key in settings)"onpostrender"===key.toLowerCase()&&(originalOnPostRender=settings[key],settings.onPostRender=patchedPostRender);return originalOnPostRender||(settings.onPostRender=patchedPostRender),settings.title&&(settings.title=tinymce.i18n.translate((editor.settings.language||"en")+"."+settings.title)),originalAddButton.call(this,name,settings)},editor.on("init",function(){var undoManager=editor.undoManager,selection=editor.selection;undoManager.onUndo=new Dispatcher(editor,"Undo",convertUndoEventArgs,null,undoManager),undoManager.onRedo=new Dispatcher(editor,"Redo",convertUndoEventArgs,null,undoManager),undoManager.onBeforeAdd=new Dispatcher(editor,"BeforeAddUndo",null,undoManager),undoManager.onAdd=new Dispatcher(editor,"AddUndo",null,undoManager),selection.onBeforeGetContent=new Dispatcher(editor,"BeforeGetContent",filterSelectionEvents(!0),selection),selection.onGetContent=new Dispatcher(editor,"GetContent",filterSelectionEvents(!0),selection),selection.onBeforeSetContent=new Dispatcher(editor,"BeforeSetContent",filterSelectionEvents(!0),selection),selection.onSetContent=new Dispatcher(editor,"SetContent",filterSelectionEvents(!0),selection)}),editor.on("BeforeRenderUI",function(){var windowManager=editor.windowManager;windowManager.onOpen=new Dispatcher,windowManager.onClose=new Dispatcher,windowManager.createInstance=function(className,a,b,c,d,e){log("windowManager.createInstance(..)");var constr=tinymce.resolve(className);return new constr(a,b,c,d,e)}})}}var reported;tinymce.util.Dispatcher=Dispatcher,tinymce.onBeforeUnload=new Dispatcher(tinymce,"BeforeUnload"),tinymce.onAddEditor=new Dispatcher(tinymce,"AddEditor","editor"),tinymce.onRemoveEditor=new Dispatcher(tinymce,"RemoveEditor","editor"),tinymce.util.Cookie={get:noop,getHash:noop,remove:noop,set:noop,setHash:noop},tinymce.on("SetupEditor",patchEditor),tinymce.PluginManager.add("compat3x",patchEditor),tinymce.addI18n=function(prefix,o){var I18n=tinymce.util.I18n,each=tinymce.each;return"string"==typeof prefix&&-1===prefix.indexOf(".")?void I18n.add(prefix,o):void(tinymce.is(prefix,"string")?each(o,function(o,k){I18n.data[prefix+"."+k]=o}):each(prefix,function(o,lc){each(o,function(o,g){each(o,function(o,k){"common"===g?I18n.data[lc+"."+k]=o:I18n.data[lc+"."+g+"."+k]=o})})}))}}(tinymce)}.apply(root,arguments)})}(this),define("mockup-patterns-tinymce",["jquery","underscore","pat-base","tinymce","text!mockup-patterns-tinymce-url/templates/result.xml","text!mockup-patterns-tinymce-url/templates/selection.xml","mockup-utils","mockup-patterns-tinymce-url/js/links","mockup-i18n","translate","tinymce-modern-theme","tinymce-advlist","tinymce-anchor","tinymce-autolink","tinymce-autoresize","tinymce-autosave","tinymce-bbcode","tinymce-charmap","tinymce-code","tinymce-colorpicker","tinymce-contextmenu","tinymce-directionality","tinymce-emoticons","tinymce-fullpage","tinymce-fullscreen","tinymce-hr","tinymce-image","tinymce-importcss","tinymce-insertdatetime","tinymce-layer","tinymce-legacyoutput","tinymce-link","tinymce-lists","tinymce-media","tinymce-nonbreaking","tinymce-noneditable","tinymce-pagebreak","tinymce-paste","tinymce-preview","tinymce-print","tinymce-save","tinymce-searchreplace","tinymce-spellchecker","tinymce-tabfocus","tinymce-table","tinymce-template","tinymce-textcolor","tinymce-textpattern","tinymce-visualblocks","tinymce-visualchars","tinymce-wordcount","tinymce-compat3x"],function($,_,Base,tinymce,ResultTemplate,SelectionTemplate,utils,LinkModal,I18n,_t){"use strict";var TinyMCE=Base.extend({name:"tinymce",trigger:".pat-tinymce",parser:"mockup",defaults:{upload:{uploadMultiple:!1,maxFiles:1,showTitle:!1},relatedItems:{attributes:["UID","Title","portal_type","path","getURL","getIcon","is_folderish","review_state"],batchSize:20,basePath:"/",vocabularyUrl:null,width:500,maximumSelectionSize:1,placeholder:_t("Search for item on site...")},text:{insertBtn:_t("Insert"),cancelBtn:_t("Cancel"),insertHeading:_t("Insert link"),title:_t("Title"),internal:_t("Internal"),external:_t("External URL (can be relative within this site or absolute if it starts with http:// or https://)"),email:_t("Email Address"),anchor:_t("Anchor"),subject:_t("Email Subject (optional)"),image:_t("Image"),imageAlign:_t("Align"),scale:_t("Size"),alt:_t("Alternative Text"),externalImage:_t("External Image URL (can be relative within this site or absolute if it starts with http:// or https://)")},loadingBaseUrl:"../../../bower_components/tinymce-builded/js/tinymce/",prependToUrl:"",appendToUrl:"",linkAttribute:"path",prependToScalePart:"/imagescale/",appendToScalePart:"",appendToOriginalScalePart:"",defaultScale:"large",scales:_t("Listing (16x16):listing,Icon (32x32):icon,Tile (64x64):tile,Thumb (128x128):thumb,Mini (200x200):mini,Preview (400x400):preview,Large (768x768):large"),targetList:[{text:_t("Open in this window / frame"),value:""},{text:_t("Open in new window"),value:"_blank"},{text:_t("Open in parent window / frame"),value:"_parent"},{text:_t("Open in top frame (replaces all frames)"),value:"_top"}],imageTypes:["Image"],folderTypes:["Folder","Plone Site"],tiny:{content_css:"++resource++plone.app.widgets-tinymce-content.min.css",theme:"-modern",plugins:["advlist","autolink","lists","charmap","print","preview","anchor","searchreplace","visualblocks","code","fullscreen","insertdatetime","media","table","contextmenu","paste","plonelink","ploneimage"],menubar:"edit table format tools view insert",toolbar:"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | unlink plonelink ploneimage",height:400},inline:!1},addLinkClicked:function(){var self=this;if(null===self.linkModal){var $el=$("
    ").insertAfter(self.$el),linkTypes=["internal","upload","external","email","anchor"];self.options.upload||linkTypes.splice(1,1),self.linkModal=new LinkModal($el,$.extend(!0,{},self.options,{tinypattern:self,linkTypes:linkTypes})),self.linkModal.show()}else self.linkModal.reinitialize(),self.linkModal.show()},addImageClicked:function(){var self=this;if(null===self.imageModal){var linkTypes=["image","uploadImage","externalImage"];self.options.upload||linkTypes.splice(1,1);var options=$.extend(!0,{},self.options,{tinypattern:self,linkTypes:linkTypes,initialLinkType:"image",text:{insertHeading:_t("Insert Image")},relatedItems:{baseCriteria:[{i:"portal_type",o:"plone.app.querystring.operation.list.contains",v:self.options.imageTypes.concat(self.options.folderTypes)}],selectableTypes:self.options.imageTypes,resultTemplate:ResultTemplate,selectionTemplate:SelectionTemplate}}),$el=$("
    ").insertAfter(self.$el);self.imageModal=new LinkModal($el,options),self.imageModal.show()}else self.imageModal.reinitialize(),self.imageModal.show()},generateUrl:function(data){var self=this,part=data[self.options.linkAttribute];return self.options.prependToUrl+part+self.options.appendToUrl},generateImageUrl:function(data,scale_name){var self=this,url=self.generateUrl(data);if(""!==scale_name){for(var part=scale_name,i=0;i1?lang.split("_")[0]:lang.split("-")>1?lang.split("-")[0]:lang+"_"+lang.toUpperCase(),$.ajax({url:tinymce.baseURL+"/langs/"+lang+".js",method:"GET",cache:"true",success:function(){self.options.tiny.language=lang,call_back()},error:function(){call_back()}})}})):call_back()},init:function(){var self=this;self.linkModal=self.imageModal=self.uploadModal=self.pasteModal=null;var id=utils.setId(self.$el),tinyOptions=self.options.tiny;self.options.inline===!0&&(self.options.tiny.inline=!0),self.tinyId=self.options.inline?id+"-editable":id,tinyOptions.selector="#"+self.tinyId,tinyOptions.addLinkClicked=function(){self.addLinkClicked.apply(self,[])},tinyOptions.addImageClicked=function(file){self.addImageClicked.apply(self,[file])},tinyOptions.skin=!1,self.options.relatedItems.generateImageUrl=function(data,scale){return self.generateImageUrl.apply(self,[data,scale])},tinyOptions.init_instance_callback=function(editor){void 0!==self.tiny&&null!==self.tiny||(self.tiny=editor)},self.initLanguage(function(){if("string"==typeof self.options.scales&&(self.options.scales=_.map(self.options.scales.split(","),function(scale){var scale=scale.split(":");return{part:scale[1],name:scale[1],label:scale[0]}})),"string"==typeof self.options.folderTypes&&(self.options.folderTypes=self.options.folderTypes.split(",")),"string"==typeof self.options.imageTypes&&(self.options.imageTypes=self.options.imageTypes.split(",")),self.options.inline===!0&&(self.$el.after('
    '+self.$el.val()+"
    "),self.$el.hide()),tinyOptions.importcss_file_filter&&-1!==tinyOptions.importcss_file_filter.indexOf(",")){var files=tinyOptions.importcss_file_filter.split(",");tinyOptions.importcss_file_filter=function(value){for(var i=0;i"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","has","innerText","lang","elemLang","hash","root","focus","hasFocus","href","tabIndex","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","text script","scriptCharset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","size","andSelf","_jQuery","_$","$","noConflict","Registry","patterns","warn","DEBUG","getOptions","$el","patternName","elOptions","tmpOptions","item","scan","$content","substr","register","Pattern","jqueryPlugin","Base","defaults","eventCallback","NewPattern","Constructor","Surrogate","__super__","each2","c","reinsertElement","element","placeholder","stripDiacritics","DIACRITICS","array","equal","measureScrollbar","$template","MEASURE_SCROLLBAR_TEMPLATE","dim","clientWidth","clientHeight","splitVal","separator","getSideBorderPadding","outerWidth","installKeyUpChangeEvent","installFilteredMouseMove","lastpos","lastMousePosition","x","y","debounce","quietMillis","installDebouncedScroll","threshold","range","isVisible","setSelectionRange","createTextRange","collapse","getCursorInfo","selectionStart","selectionEnd","createRange","moveStart","killEvent","killEventImmediately","measureTextWidth","sizer","fontSize","fontFamily","fontStyle","textTransform","whiteSpace","syncCssClasses","adapter","adapted","replacements","markMatch","term","markup","escapeMarkup","tl","defaultEscapeMarkup","replace_map","\\","&","<","\"","'","/","ajaxUrl","query","select2","ajaxDefaults","deprecated","page","textStatus","errorThrown","hasError","local","dataText","dataItem","process","filtered","datum","group","childDatum","tags","isFunc","isObject","checkFormatter","formatter","formatterName","evaluate","countResults","defaultTokenizer","selectCallback","dupe","createSearchChoice","tokenSeparators","cleanupJQueryElements","SuperClass","methods","Select2","KEY","AbstractSelect2","SingleSelect2","MultiSelect2","nextUid","$document","scrollBarDimensions","TAB","ENTER","ESC","SPACE","LEFT","UP","RIGHT","DOWN","SHIFT","CTRL","ALT","PAGE_UP","PAGE_DOWN","HOME","END","BACKSPACE","DELETE","isArrow","k","isControl","isFunctionKey","Ⓐ","A","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","B","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","C","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","D","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","E","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","F","Ḟ","Ƒ","Ꝼ","Ⓖ","G","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","H","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","I","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","J","Ĵ","Ɉ","Ⓚ","K","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","L","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","M","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","N","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","O","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Ƣ","Ꝏ","Ȣ","Ⓟ","P","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","Q","Ꝗ","Ꝙ","Ɋ","Ⓡ","R","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","Ꝛ","Ꞧ","Ꞃ","Ⓢ","S","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","T","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","U","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","V","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","W","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","X","Ẋ","Ẍ","Ⓨ","Y","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","Z","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","a","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","b","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","c","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","d","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","e","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","f","ḟ","ƒ","ꝼ","ⓖ","g","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","h","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","i","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","j","ĵ","ǰ","ɉ","ⓚ","k","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","l","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","m","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","n","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","o","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","ƣ","ȣ","ꝏ","ⓟ","p","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","q","ɋ","ꝗ","ꝙ","ⓡ","r","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","s","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","t","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","u","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","v","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","w","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","x","ẋ","ẍ","ⓨ","y","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","z","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ω","ς","counter","search","resultsSelector","prepareOpts","destroy","createContainer","liveRegion","role","aria-live","containerId","containerEventName","adaptContainerCssClass","containerCss","containerCssClass","elementTabIndex","dropdown","adaptDropdownCssClass","dropdownCssClass","queryCount","resultsPage","initContainer","highlightUnderEvent","_touchEvent","touchMoved","clearTouchMoved","selectHighlighted","loadMoreIfNeeded","mousewheel","delta","deltaX","deltaY","updateResults","nextSearchTerm","initSelection","monitorSource","maximumInputLength","readonly","autofocus","searchInputPlaceholder","_sync","propertyObserver","disconnect","optionToData","idKey","tagName","populateResults","populate","selectable","compound","label","innerContainer","formatted","sortResults","formatResultCssClass","formatResult","formatMatches","placeholderOption","more","elm","getPlaceholder","getPlaceholderOption","createSearchChoicePosition","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","mutations","observe","subtree","triggerSelect","choice","triggerChange","details","blurOnChange","isInterfaceEnabled","enabledInterface","enableInterface","_enabled","_readonly","opened","positionDropdown","bodyOffset","above","changeDirection","resultsListNode","$dropdown","outerHeight","dropHeight","$window","windowWidth","windowHeight","viewPortRight","viewportBottom","dropTop","dropLeft","enoughRoomBelow","enoughRoomAbove","dropWidth","enoughRoomOnRight","aboveNow","focusSearch","dropdownAutoWidth","bottom","dropdownCss","shouldOpen","clearDropdownAlignmentPreference","opening","mask","cid","scroll","resize","orient","selectOnBlur","noFocus","that","clearSearch","externalSearch","getMaximumSelectionSize","maximumSelectionSize","ensureHighlightVisible","child","hb","rb","topOffset","highlight","findHighlightableChoices","moveHighlight","choices","removeHighlight","_touchMoved","countSelectableResults","below","loadMorePadding","postprocessResults","formatLoadMore","items","initial","postRender","render","queryNumber","lastTerm","showSearchInput","maxSelSize","formatSelectionTooBig","minimumInputLength","formatInputTooShort","showSearch","formatInputTooLong","formatSearching","def","formatAjaxError","formatNoMatches","cancel","highlighted","onSelect","firstOption","initContainerWidth","resolveContainerWidth","focusser","minimumResultsForSearch","shouldFocusInput","isFocused","elementLabel","idSuffix","originalTitle","openOnEnter","altKey","ctrlKey","shiftKey","allowClear","clear","setPlaceholder","removed","isPlaceholderOptionSelected","updateSelection","is_match","noHighlightUpdate","min","added","cssClass","formatSelection","formatSelectionCssClass","ordered","selectChoice","searchContainer","_this","keydowns","selectedChoice","unselect","resizeSearch","clearPlaceholder","getMaxSearchWidth","getVal","addSelectedChoice","tokenizer","closeOnSelect","enableChoice","enabledItem","disabledItem","setVal","minimumWidth","containerLeft","searchWidth","sideBorderPadding","floor","buildChangeDetails","onSortStart","onSortEnd","multiple","allowedMethods","valueMethods","propertyMethods","methodsMap","multi","single","selectedObject","currentSearchTerm","instance","supportsTouchEvents","msMaxTouchPoints","locales","limit","pageNumber","util","abstract","drag","$event","$special","distance","drop","datakey","dontstart","textselect","touched","dd","propagates","mousedown","interactions","interaction","dragging","hijack","flatten","live","droppable","pow","ia","mode","isNaN","cancelled","subject","update","startX","startY","originalX","originalY","offsetX","offsetY","available","member","unselectable","locate","$dispatch","touchHooks","touchstart","touchmove","touchend","touchcancel","touches","changedTouches","draginit","dragstart","dragend","Infinity","tolerance","anyactive","winner","$targets","tolerate","$elem","posi","right","modes","intersect","overlap","fit","middle","drp","drg","xy","dropinit","dropstart","dropend","initializeValues","initialValues","seldefaults","initializeTags","allowNewItems","initializeOrdering","orderable","$container","initializeSelect2","$select2","vocabularyUrl","queryTerm","page_limit","dataIds","haveResult","vals","o","$hidden","$orig","loadScript","jsDiv","PasswordStrength","zxcvbn","setLevel","score","$pwfield","inp","$pwmeter","timeoutId","Picker","PickerConstructor","ELEMENT","NAME","COMPONENT","OPTIONS","createWrappedComponent","P","component","STATE","CLASSES","frame","holder","prepareElement","$ELEMENT","SETTINGS","format","focusToOpen","editable","keycode","isKeycodeDelete","aria","haspopup","owns","_hidden","prepareElementRoot","$root","focused","mousedown click","$target","targetData","targetDisabled","navDisabled","nav","isInteger","pick","prepareElementHidden","hiddenPrefix","hiddenSuffix","formatSubmit","abs","klasses","klass","PickerInstance","$node","readOnly","picker","onStart","onRender","onStop","onOpen","onClose","onSet","entireComponent","dontGiveFocus","keycodeToMove","go","giveFocus","thing","thingItem","thingValue","thingIsObject","thingObject","muted","formats","thingName","thingMethod","names","namesCount","methodList","attribute","ariaSet","ariaAttr","attrVal","groupObject","loopObjectScope","nodesList","wrapper","lead","number","scope","digits","isDate","getDate","Component","action","componentData","$this","DatePicker","calendar","elementValue","elementDataValue","valueString","formatString","isRTL","direction","view","collectionDisabled","fromValue",40,38,39,37,"timeChange","highlightedObject","targetDate","year","month","date","getFullYear","getMonth","selectMonth","selectYear","DAYS_IN_WEEK","WEEKS_IN_CALENDAR","calendarItem","create","isInfiniteValue","day","getDay","from","createDate","withinRange","dateUnit","overlapRanges","two","rel","setDate","navigate","targetDateObject","targetYear","targetMonth","isTargetArray","isTargetObject","viewsetObject","setHours","measure","viewset","dateObject","validate","hasEnabledBeforeTarget","hasEnabledAfterTarget","reachedMin","reachedMax","originalDateObject","isFlippedBase","minLimitObject","maxLimitObject","hasEnabledWeekdays","dateTime","dateToVerify","isDisabledMatch","dateToDisable","firstDay","inverted","monthIndex","parsingObject","formattingLabel","formatLength","yyyy","yy","mm","d","getWordLengthFromCollection","word","getFirstWordLength","ddd","weekdaysShort","dddd","weekdaysFull","mmm","monthsShort","mmmm","monthsFull","itemObject","isDateExact","isDateOverlap","flipEnable","deactivate","datesToDisable","disabledItems","unitToDisable","matchFound","activate","datesToEnable","disabledItemsCount","unitToEnable","disabledUnit","isExactRange","isOpen","nowObject","disabledCollection","tableHead","weekdays","showWeekdaysFull","createMonthNav","createMonthLabel","monthsCollection","selectMonths","loopedMonth","createYearLabel","focusedYear","numberYears","selectYears","minYear","maxYear","lowestYear","highestYear","availableYears","neededYears","loopedYear","showMonthsShort","rowCounter","shiftDateBy","isSelected","isHighlighted","isDisabled","infocus","outfocus","controls","activedescendant","table","today","buttonToday","buttonClear","footer","navPrev","navNext","TimePicker","clock","$pickerHolder","$viewset","HOURS_IN_DAY","MINUTES_IN_HOUR","HOURS_TO_NOON","MINUTES_IN_DAY","clockItem","getHours","getMinutes","hour","mins","createTime","timeUnit","isBelowInterval","nowMinutes","isValueInteger","minTime","timeObject","timeToVerify","timeToDisable","minLimit","maxLimit","minutes","isPM","parseValue","h","hh","H","HH","A","isTimeExact","isTimeOverlap","timesToDisable","timesToEnable","isRangeMatched","loopedTime","timeMinutes","formatLabel","listItem","I18N","currentLanguage","storage","catalogs","ttl","valueOf","localStorage","_setCatalog","domain","language","catalog","_storeCatalog","setItem","stringify","getUrl","loadCatalog","getItem","MessageFactory","msgid","keywords","msgstr","regexp","keyword","i18n","PickerDate","PickerTime","_t","PickADate","timezone","classWrapperName","classSeparatorName","classDateName","classDateWrapperName","classTimeName","classTimeWrapperName","classTimezoneName","classTimezoneWrapperName","classClearName","placeholderDate","placeholderTime","placeholderTimezone","isFalse","dateValue","timeValue","$wrapper","$date","pickadate","$time","updateValue","$separator","pickatime","$timezone","patternSelect2","defaultTimezone","isInList","forEach","$clear","formatDate","formatTime","baseIndexOf","fromIndex","compareAscending","ac","criteria","bc","other","escapeStringChar","stringEscapes","lodash","lodashWrapper","chainAll","__chain__","__wrapped__","baseBind","bindData","bound","partialArgs","thisBinding","baseCreate","thisArg","nativeCreate","baseCreateCallback","argCount","identity","accumulator","baseCreateWrapper","isBind","partialRightArgs","isCurry","arity","bitmask","isCurryBound","isBindKey","baseDifference","getIndexOf","baseFlatten","isShallow","isStrict","isArguments","valIndex","valLength","resIndex","baseIsEqual","stackA","stackB","otherType","objectTypes","otherClass","boolClass","dateClass","numberClass","regexpClass","stringClass","isArr","arrayClass","aWrapped","bWrapped","objectClass","ctorA","ctorB","forIn","indicatorObject","baseRandom","nativeRandom","baseUniq","isSorted","seen","createAggregator","createCallback","forOwn","createWrapper","isPartial","isPartialRight","TypeError","creater","escapeHtmlChar","htmlEscapes","isNative","reNative","unescapeHtmlChar","htmlUnescapes","argsClass","assign","argsIndex","argsLength","iterable","functions","isBoolean","isElement","isEmpty","isString","isEqual","isFinite","nativeIsFinite","nativeIsNaN","isNumber","isNull","isRegExp","isUndefined","omit","pairs","every","findWhere","where","forEachRight","invoke","methodName","reduce","noaccum","reduceRight","sample","guard","shuffle","nativeMin","nativeMax","rand","some","sortBy","compact","difference","sortedIndex","intersection","outer","ceil","rest","low","mid","union","uniq","without","zip","pluck","zipObject","bindAll","funcs","compose","maxTimeoutId","stamp","trailingCall","lastCalled","maxWait","trailing","leading","delayed","isCalled","maxDelayed","leadingCall","memoize","resolver","keyPrefix","ran","partial","throttle","property","escape","reUnescapedHtml","oldDash","template","templateSettings","variable","reDelimiters","reNoMatch","interpolate","escapeValue","interpolateValue","evaluateValue","reUnescapedString","times","unescape","reEscapedHtml","uniqueId","idCounter","chain","tap","interceptor","wrapperChain","wrapperValueOf","reInterpolate","funcClass","boolean","function","\n","\r","\t","
","
","freeExports","freeModule","moduleExports","freeGlobal","arrayRef","objectProto","propertyIsEnumerable","nativeIsArray","nativeKeys","0","spliceObjects","shimKeys","countBy","groupBy","indexBy","collect","tail","any","detect","foldl","foldr","include","inject","take","VERSION","QueryHelper","searchParam","batchSize","baseCriteria","pathDepth","browsing","basePath","valid","getCurrentPath","currentPath","path","getCriterias","useBaseCriteria","additionalCriterias","criterias","getBatch","selectAjax","getQueryData","total","batch","operation","Loading","backdrop","closable","closeOnClick","closeOnEsc","generateId","parseBodyTag","txt","setId","getAuthenticator","BorderDropHint","DragAndDropHandler","DragElement","ElementsRenderer","FolderElement","GhostDropHint","HitAreasGenerator","JqTreeWidget","KeyHandler","MouseWidget","Node","NodeElement","Position","SaveStateHandler","ScrollHandler","SelectNodeHandler","SimpleWidget","VisibleNodeIterator","get_json_stringify_function","html_escape","isInt","__version__","_indexOf","__slice","__hasProp","__extends","ctor","_deinit","_init","widget_class","widget_name","callFunction","createWidget","destroyWidget","getDataKey","getWidgetData","data_key","widget","existing_widget","_i","_len","_results","function_name","widget_function","argument1","_super","is_mouse_handled","_mouseDown","_touchStart","is_mouse_started","mouse_delay","_mouse_delay_timer","_is_mouse_delay_met","mouse_down_info","_handleMouseDown","_getPositionInfo","position_info","_handleMouseUp","_mouseCapture","_handleStartMouse","_mouseMove","_touchMove","_mouseUp","_touchEnd","_startMouseDelayTimer","_handleMouseMove","_mouseDrag","_mouseStart","page_x","page_y","original_event","_mouseStop","setMouseDelay","touch","Tree","getName","strings","nameToIndex","_ref","BEFORE","AFTER","INSIDE","NONE","is_root","node_class","setData","id_mapping","tree","initFromData","addChildren","addNode","node_data","children_data","addChild","loadFromData","removeChildren","_setParent","addChildAtPosition","addNodeToIndex","_removeChild","getChildIndex","removeNodeFromIndex","hasChildren","isFolder","load_on_demand","iterate","_iterate","level","moveNode","moved_node","target_node","isParentOf","getData","getDataFromNodes","tmp_node","getNodeByName","addAfter","node_info","child_index","addBefore","addParent","new_parent","original_parent","getLevel","getNodeById","node_id","getPreviousSibling","previous_index","getNextSibling","next_index","getNodesByProperty","f","tree_widget","opened_icon_element","createButtonElement","openedIcon","closed_icon_element","closedIcon","from_node","renderFromNode","renderFromRoot","renderNode","li","parent_node_element","previous_node","createLi","attachNodeData","getUl","$element","createDomElements","node_element","_getNodeElementForNode","is_root_node","is_open","ul","createUl","class_string","createFolderLi","createNodeLi","onCreateLi","button_classes","button_link","escaped_name","folder_classes","icon_element","title_span","getButtonClasses","getFolderClasses","escapeIfNecessary","li_classes","select_node_handler","isNodeSelected","autoEscape","autoOpen","saveState","dragAndDrop","useContextMenu","onCanSelectNode","onSetStateFromStorage","onGetStateFromStorage","onIsMoveHandle","onCanMove","onCanMoveTo","onLoadFailed","dataUrl","slide","nodeClass","keyboardSupport","openFolderDelay","closeNode","openNode","getTree","selectNode","_selectNode","must_toggle","canSelect","deselected_node","openParents","save_state_handler","_deselectCurrentNode","_triggerEvent","getSelectedNode","addToSelection","toJson","loadData","parent_node","_loadData","loadDataFromUrl","on_finished","_loadDataFromUrl","reload","url_info","addLoadingClass","handeLoadData","loadDataFromUrlInfo","parseUrlInfo","removeLoadingClass","folder_element","getLi","_getDataUrlInfo","selected_nodes_under_parent","tree_data","getSelectedNodesUnder","removeFromSelection","_refreshElements","_initTree","isDragging","dnd_handler","refresh","_openNode","doOpenNode","_node","_slide","_on_finished","_loadFolderOnDemand","_saveState","is_dragging","refreshHitAreas","addNodeAfter","new_node_info","existing_node","new_node","addNodeBefore","addParentNode","removeNode","appendNode","is_already_folder_node","prependNode","updateNode","id_is_changed","renderer","_selectCurrentNode","position_index","getStateFromStorage","getSelectedNodes","deselect","scrollToNode","scroll_handler","getState","setState","setOption","getVersion","is_initialized","key_handler","_initData","_click","dblclick","_dblclick","_contextmenu","deinit","data_url","getUrlFromString","selected_node_id","_getNodeIdToBeSelected","selected_node","getNodeIdToBeSelected","_openNodes","max_level","restoreState","click_target","_getClickTarget","click_event","$button","_getNode","$li","_getNodeElement","$div","mouseCapture","mouseStart","mouseDrag","checkScrolling","mouseStop","event_name","testGenerateHitAreas","moving_node","current_item","generateHitAreas","hit_areas","getSpan","addDropHint","doOpen","getButton","doClose","json_escapable","json_meta","json_quote","json_str","\b","\f","charCodeAt","supportsLocalStorage","getCookieName","cookie","json_data","_loadFromStorage","_parseState","getOpenNodeIds","getSelectedNodeIds","open_nodes","selected_node_ids","testSupport","sessionStorage","removeItem","_error","_supportsLocalStorage","selected_nodes","selected_single_node","include_children","hovered_area","$ghost","mustCaptureElement","drag_element","can_move_to","move","findHoveredArea","canMoveToArea","stopOpenFolderTimer","mustOpenFolderTimer","startOpenFolderTimer","updateDropHint","removeHover","removeDropHint","position_name","moveItem","removeHitAreas","previous_ghost","hit_areas_generator","getTreeDimensions","generate","dimensions","folder","openFolder","open_folder_timer","doMove","previous_parent","move_info","do_move","is_first_node","_iterateNode","next_node","children_length","must_iterate_inside","handleFirstNode","handleOpenFolder","handleClosedFolder","handleNode","handleAfterOpenFolder","current_node","tree_bottom","positions","last_top","getTop","addPosition","previous_top","generateHitAreasForGroup","positions_in_group","area_height","area_top","position_count","round","offset_x","offset_y","$tree","moveAfter","moveBefore","moveInsideOpenFolder","moveInside","$hint","_initScrollParent","$scroll_parent","getParentWithOverflow","setDocumentAsScrollParent","css_values","hasOverFlow","css_value","scroll_parent_top","_handleScrollingWithScrollParent","_handleScrollingWithDocument","distance_bottom","distance_top","tree_top","isScrolledIntoView","element_bottom","element_top","view_bottom","view_top","handleKeyDown","moveDown","moveLeft","moveRight","moveUp","getNextNode","getPreviousNode","next_sibling","previous_sibling","getLastChild","last_child","utils","onLoad","optionKey","moved","RelatedItems","rootPath","searchText","searchAllText","homeText","folderTypes","selectableTypes","resultTemplate","resultTemplateSelector","selectionTemplate","selectionTemplateSelector","breadCrumbsTemplate","breadCrumbsTemplateSelector","breadCrumbTemplate","breadCrumbTemplateSelector","setupAjax","applyTemplate","tpl","_item","activateBrowsing","setBreadCrumbs","deactivateBrowsing","browseTo","itemPath","itemsHtml","$crumbs","$treeSelect","$treeContainer","selectedNode","treePattern","Title","UID","_loaded","treeQuery","$browsePath","selectItem","deselectItem","isSelectable","Type","folderish","$parent","uid","browseText","Criteria","indexWidth","days","betweendt","classBetweenDtName","classIndexName","classOperatorName","classValueName","classRemoveName","classResultsName","indexes","indexGroups","$remove","$index","title","removeValue","createOperator","createClear","removeOperator","$operator","operators","createValue","$value","patternPickadate","startwrap","startdt","endwrap","enddt","removeClear","buildQueryPart","ival","istr","oval","ostr","vstrbase","vstrlistbase","vstr","getJSONListStr","varr","vval","QueryString","indexOptionsUrl","previewURL","previewCountURL","sorttxt","reversetxt","previewTitle","previewDescription","classSortLabelName","classSortReverseName","classSortReverseLabelName","classPreviewCountWrapperName","classPreviewResultsWrapperName","classPreviewWrapperName","classPreviewName","classPreviewTitleName","classPreviewDescriptionName","classSortWrapperName","showPreviews","initialized","$criteriaWrapper","$sortWrapper","$previewWrapper","createCriteria","createSort","refreshPreviewEvent","doupdates","existingSortOn","existingSortOrder","$sortOn","$sortOrder","reversed","sortOn","_previewXhr","$previewPane","querypart","stat","criteriastrs","jsonstr","Backdrop","classActiveName","$backdrop","Backbone","Zepto","ender","previousBackbone","emulateHTTP","emulateJSON","Events","eventsApi","_events","_callback","retain","ev","allEvents","triggerEvents","stopListening","listeningTo","_listeningTo","_listenId","eventSplitter","a1","a2","a3","listenMethods","listenTo","listenToOnce","implementation","Model","changed","initialize","validationError","idAttribute","sync","unset","changes","silent","changing","_validate","_changing","_previousAttributes","_pending","hasChanged","changedAttributes","previous","previousAttributes","model","resp","wrapError","save","serverAttrs","isNew","patch","urlError","isValid","modelMethods","Collection","models","comparator","_reset","setOptions","addOptions","singular","_byId","_removeReference","existing","at","targetModel","sortable","sortAttr","toAdd","toRemove","modelMap","_prepareModel","_addReference","orderedModels","previousModels","_onModelEvent","attributeMethods","iterator","View","viewOptions","_ensureElement","delegateEvents","delegateEventSplitter","setElement","undelegateEvents","methodMap","_method","noXhrPatch","dispatchEvent","delete","read","Router","routes","_bindRoutes","optionalParam","namedParam","splatParam","escapeRegExp","route","_routeToRegExp","router","history","_extractParameters","execute","decodeURIComponent","History","routeStripper","rootStripper","isExplorer","trailingSlash","pathStripper","started","atRoot","pathname","getHash","getFragment","forcePushState","_hasPushState","_wantsHashChange","decodeURI","hashChange","_wantsPushState","pushState","docMode","documentMode","oldIE","userAgent","checkUrl","_checkUrlInterval","loc","replaceState","loadUrl","_updateHash","protoProps","staticProps","regexEscape","actions","redirects","addRoute","pathExp","expReplace","regex","addRedirect","destination","handleRoute","redirect","newPath","_changeLocation","doAjaxSubmit","ajaxSubmit","captureSubmittingElement","clk","clk_x","clk_y","offsetLeft","offsetTop","log","debug","postError","feature","fileapi","files","formdata","FormData","attr2","deepSerialize","extraData","serialized","fileUploadXhr","serializedData","uploadProgress","upload","loaded","lengthComputable","formData","fileUploadIframe","getDoc","doSubmit","checkState","io","SERVER_ABORT","timeoutHandle","$form","skipEncodingOverride","encoding","timedOut","CLIENT_TIMEOUT_ABORT","extraInputs","iframeTarget","$io","submitFn","aborted","callbackProcessed","iframeSrc","errMsg","isXml","XMLDocument","domCheckCount","docRoot","responseXML","content-type","Number","dt","scr","textarea","ta","pre","toXml","httpData","sub","execCommand","csrf_token","csrf_param","forceSync","veto","beforeSerialize","qx","formToArray","semantic","beforeSubmit","q","callbacks","resetForm","clearForm","includeHidden","oldSuccess","replaceTarget","oldError","oldComplete","fileInputs","hasFileInputs","mp","multipart","fileAPI","jqxhr","shouldUseFrame","closeKeepAlive","ajaxForm","delegation","ajaxFormUnbind","jmax","fieldValue","required","$input","formSerialize","fieldSerialize","successful","ops","clearFields","clearInputs","re","$sel","Modal","createModal","$model","triggers","backdropOptions","titleSelector","buttons","automaticallyAddButtonActions","loadLinksWithinModal","prependContent","templateOptions","classDialog","classModal","classHeaderName","classBodyName","classFooterName","classWrapperInnerName","classPrependName","classContentName","actionOptions","eventType","modalFunction","isForm","displayInModal","reloadWindowOnClose","formFieldError","onSuccess","onFormError","onTimeout","redirectOnResponse","redirectToUrl","$action","reg","routerOptions","$modal","actionKeys","patternKeys","patternOptions","loading","handleFormAction","handleLinkAction","errorStatus","redraw","reloadWindow","$raw","tplObject","$title","$modalDialog","$modalContent","positionModal","$wrapperInner","z-index","overflow-y","modalInitialized","initModal","createAjaxModal","ajaxXHR","ajaxType","_show","createTargetModal","createBasicModal","createHtmlModal","findPosition","horpos","vertpos","modalWidth","modalHeight","wrapperInnerWidth","wrapperInnerHeight","absTop","absBottom","absLeft","absRight","returnpos","posopt","_suppressHide","confirm","defs","modules","dependencies","definition","fragments","fi","expose","addEvent","capture","mouseEventRe","bindOnReady","eventUtils","readyHandler","domLoaded","waitForDomLoaded","tryScroll","ex","EventUtils","executeHandlers","callbackList","hasFocusIn","hasMouseEnterLeave","mouseEnterLeave","eventExpandoPrefix","defaultNativeHandler","fakeName","nativeHandler","ci","eventMap","clean","keyLocation","layerX","layerY","whiteSpaceRegExp","makeMap","delim","sp","ns","cn","scn","de","createNS","onCreate","walk","explode","webkit","ie","ie11","gecko","mac","iDevice","buildNumber","appName","contentEditable","iOS","transparentSrc","caretAfter","getSelection","Tools","Env","isDefined","createFragment","fragDoc","frag","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","lastParent","newWrapper","out","siblingName","firstSibling","appendHooks","targetHooks","numericCssMap","booleanMap","cssFix","hook","camel","dashed","removeProperty","existingClassName","classState","docElm","overrideDefaults","maxlength","maxLength","schema","toHex","hex","encodingItems","validStyles","invalidStyles","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","getValidStyles","getInvalidStyles","color","compress","noJoin","canCompress","compress2","encode","isEncoded","decode","keep_slashes","processUrl","url2","url3","str2","allow_script_urls","scriptUrl","allow_svg_data_urls","urlConverter","urlConverterScope","url_converter","url_converter_scope","elementName","serializeStyles","styleList","styleMap","startNode","rootNode","findSibling","startName","shallow","Range","dom","setStart","_setEndPoint","TRUE","setEnd","FALSE","setStartBefore","setStartAfter","setEndBefore","setEndAfter","ts","END_CONTAINER","START_CONTAINER","END_OFFSET","START_OFFSET","collapsed","selectNodeContents","compareBoundaryPoints","sc","so","ec","eo","rsc","startContainer","rso","startOffset","rec","endContainer","reo","endOffset","_compareBoundaryPoints","deleteContents","_traverse","extractContents","EXTRACT","cloneContents","CLONE","insertNode","nn","splitText","surroundContents","cloneRange","commonAncestorContainer","_getSelectedNode","_isCollapsed","containerA","offsetA","containerB","offsetB","offsetC","cmnRoot","childA","childB","findCommonAncestor","st","how","depthDiff","endNode","ep","endContainerDepth","startContainerDepth","_traverseSameContainer","_traverseCommonStartContainer","_traverseCommonEndContainer","_traverseCommonAncestors","cnt","xferNode","deleteData","_traverseFullySelected","endAncestor","endIdx","_traverseRightBoundary","previousSibling","startAncestor","startIdx","_traverseLeftBoundary","clonedParent","prevSibling","clonedChild","clonedGrandParent","isFullySelected","_traverseNode","isLeft","txtValue","newNodeValue","oldNodeValue","newNode","toStringIE","outerText","START_TO_START","START_TO_END","END_TO_END","END_TO_START","nativeDecode","buildEntitiesLookup","radix","chr","entity","lookup","baseEntities","namedEntities","reverseEntities","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap",128,130,131,132,133,134,135,136,137,138,139,140,142,145,146,147,148,149,150,151,152,153,154,155,156,158,159,"`","<",">","&",""","'","Entities","encodeRaw","encodeAllRaw","encodeNumeric","encodeNamed","entities","getEncodeFunc","encodeNamedAndNumeric","encodeCustomNamed","named","numeric","appendToHead","loadedCallback","errorCallback","passed","failed","isOldWebKit","webKitChunks","testCallback","waitCallback","maxLoadTime","waitForWebKitLinkLoaded","styleSheet","owner","styleSheets","ownerNode","owningElement","link","waitForGeckoLinkLoaded","cssRules","sheet","loadedStates","idCount","onerror","Styles","TreeWalker","StyleSheetLoader","setupAttrHooks","domUtils","keepUrlHook","keepValues","keep_values","$elm","serializeStyle","parseStyle","DOMUtils","blockElementsMap","stdMode","isIE","boxModel","compatMode","styleSheetLoader","boundEvents","fixDoc","ownEvents","getBlockElements","getRoot","isBlock","simpleSelectorRe","$$","getCustomElements","getAttribs","setAttrib","getAttrib","root_element","getViewPort","rootElm","innerWidth","innerHeight","getRect","getPos","getSize","getStyle","getParent","getParents","selectorVal","getNext","_findSib","getPrev","elms","parentElm","newElm","setAttribs","setHTML","createHTML","outHtml","keepChildren","setStyle","update_styles","setStyles","removeAllAttribs","removeAttributeNode","originalValue","onSetAttrib","attrElm","attrName","attrValue","defaultVal","addStyle","styleElm","DOM","addedStyles","loadCSS","recalc","cls","canHaveHTML","getOuterHTML","setOuterHTML","referenceNode","oldElm","rename","attrNode","pe","ps","rgbVal","attrRegExp","walker","brCount","getNonEmptyElements","createRng","normalized","lastNodeType","splitElm","replacementElm","trimNode","surroundedBySpans","previousIsSpan","nextIsSpan","trimmedLength","bef","aft","pa","getContentEditable","getContentEditableParent","isChildOf","dumpRng","ScriptLoader","QUEUED","LOADING","LOADED","states","scriptLoadedCallbacks","queueLoadedCallbacks","isDone","markDone","loadQueue","loadScripts","execScriptLoadedCallbacks","loadingScripts","AddOnManager","urls","requireLangPack","languages","languageLoad","addOn","createUrl","resource","addComponents","pluginName","pluginUrl","addOnUrl","loadDependencies","newUrl","baseURL","PluginManager","ThemeManager","getEndChild","RangeUtils","rng","exclude","collectSiblings","end_node","findEndPoint","walkBoundary","start_node","ancestor","startPoint","endPoint","hasChildNodes","normalizeEndPoint","hasBrBeforeAfter","isPrevNode","findTextNodeRelative","lastInlineElement","parentBlockContainer","isAfterNode","nonEmptyElementsMap","directionLeft","compareRanges","rng1","rng2","duplicate","editor","isSameElementPath","startElm","getBody","lastPath","lastRng","nativeRng","fakeRng","getRng","getStart","isCollapsed","nodeChanged","selectionChange","disable_nodechange","root_node","typeLookup","#text","#comment","#cdata","#pi","#doctype","#document-fragment","selfAttrs","selfAttr","cloneAttrs","shortEnded","ref_node","compileSchema","arrayToMap","ni","attributesOrder","globalAttributes","dummyObj","addAttrs","schemaItem","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","mapCache","compileElementMap","createLookupTable","default_value","extendWith","patternToRegExp","addValidElements","validElements","ei","ai","al","attrData","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","patternElements","setValidElements","schemaItems","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","rule","inline","cloneName","customElementsMap","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","getElementRule","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","validClasses","textBlockElementsMap","textInlineElementsMap","specialElements","verify_html","valid_elements","valid_styles","invalid_styles","valid_classes","img","custom_elements","valid_children","extended_valid_elements","invalid_elements","getValidClasses","getBoolAttrs","getTextBlockElements","getTextInlineElements","getShortEndedElements","getSelfClosingElements","getWhiteSpaceElements","getSpecialElements","isValidChild","attrPatterns","Schema","findEndTag","startIndex","tokenRegExp","shortEndedElements","SaxParser","fix_self_closing","processEndTag","parseAttribute","val2","val3","attrRule","trimRegExp","fillAttrsMap","isInternalElement","validAttributesMap","validAttributePatterns","filteredUrlAttrs","scriptUriRegExp","allow_html_data_urls","dataUriRegExp","attrList","endRegExp","removeInternalElements","isShortEnded","elementRule","isValidElement","attribsValue","anyAttributesRequired","selfClosing","fixSelfClosing","self_closing_elements","remove_internals","allow_conditional_comments","comment","cdata","doctype","pi","fixInvalidChildren","newParent","currentNode","tempNode","childNode","nonEmptyElements","nonSplitableElements","textBlockElements","nextNode","fixed","filterNode","nodeFilters","attributeFilters","matchedNodes","matchedAttributes","root_name","addNodeFilter","addAttributeFilter","addRootBlocks","rootBlockNode","startWhiteSpaceRegExp","endWhiteSpaceRegExp","rootBlockName","blockElements","forced_root_block_attrs","removeWhitespaceBefore","textNode","textVal","cloneAndExcludeBlocks","output","parser","fl","isInWhiteSpacePreservedElement","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","whiteSpaceElements","invalidChildren","forced_root_block","attrFiltersLen","invalid","isRootContent","remove_trailing_brs","prevName","allow_html_in_named_anchor","classList","classValue","validClassesMap","indent","indentBefore","indentAfter","htmlOutput","indent_before","indent_after","entity_encoding","element_format","getContent","Writer","writer","sortedAttrs",3,8,7,10,4,11,"inner","DomParser","Serializer","htmlParser","internalName","cleanup","fix_list_elements","impl","oldDoc","htmlSerializer","createHTMLDocument","importNode","no_events","onPreProcess","getInner","onPostProcess","addRules","rules","setRules","Selection","getPosition","checkRng","endIndex","inside","parentElement","moveToElementText","compareEndPoints","getRange","ieRange","textNodeOffset","domRange","tmpRange","element2","bookmark","getBookmark","moveToBookmark","getIndexes","getBookmarkEndPoint","ctrl","resolveIndexes","setBookmarkEndPoint","moveRng","setEndPoint","createControlRange","addElement","addRange","marker","tmpRng","ieRng","ctrlRng","ctrlElm","getRangeAt","SPACEBAR","modifierPressed","metaKeyPressed","VK","isResizable","object_resizing","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","screenX","screenY","selectedHandle","startW","startH","selectedElm","resize_img_proportional","ratio","selectedElmGhost","startPos","resizeHelper","selectedElmX","selectedElmY","rootElement","scrollWidth","startScrollWidth","startScrollHeight","resizeStarted","endGhostResize","setSizeProp","editableDoc","rootDocument","showResizeRect","targetElm","mouseDownHandleName","mouseDownEvent","targetWidth","targetHeight","rect","unbindResizeHandleEvents","detachResizeStartListener","resizeHandles","startDrag","unSelectabe","data-mce-bogus","handleElm","handlerContainerElm","hideResizeRect","updateResizeRect","isChildOrEqual","controlElm","getNode","disableGeckoResize","getEnd","resizeNativeStart","corner","cornerX","cornerY","relativeX","relativeY","lastMouseDownEvent","nativeControlSelect","controlSelect","nw","ne","se","sw","rootClass","contentStyles","BookmarkManager","findIndex","normalizeTableCellSelection","moveEndPoint","getLocation","getPoint","point","tridentSel","pasteHTML","data-mce-type","keep","restoreEndPoint","appendData","addBogus","setRng","isBookmarkNode","TridentSelection","ControlSelection","serializer","bookmarkManager","controlSelection","setCursorLocation","_moveEndPoint","whiteSpaceBefore","whiteSpaceAfter","tmpElm","getSel","htmlText","setContent","caretNode","createContextualFragment","real","startElement","endElement","lastFocusBookmark","toStart","w3c","tryCompareBoundaryPoints","sourceRange","destinationRange","rangeCount","selectedRange","explicitRange","removeAllRanges","setNode","skipEmptyTextNodes","forwards","getSelectedBlocks","endElm","selectedBlocks","isForward","anchorRange","focusRange","anchorNode","focusNode","anchorOffset","focusOffset","selectorChanged","currentSelectors","selectorChangedData","matchedSelectors","getScrollContainer","scrollContainer","scrollIntoView","viewPort","viewPortY","viewPortH","getWin","placeCaretAt","caretPositionFromPoint","offsetNode","caretRangeFromPoint","moveToPoint","ElementUtils","node1","node2","attribs","compareObjects","obj1","obj2","getCssText","removeVars","previewElm","parentFontSize","previewStyles","previewCss","preview_styles","block","Preview","ed","isTextBlock","isCaretNode","defaultFormats","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","textAlign","defaultBlock","aligncenter","marginLeft","alignright","alignjustify","bold","italic","underline","textDecoration","exact","strikethrough","forecolor","links","remove_similar","hilitecolor","backgroundColor","fontname","fontsize","fontsize_class","blockquote","subscript","superscript","onmatch","onformat","fmt","vars","removeformat","block_expand","addKeyboardShortcuts","addShortcut","mixed","unregister","getTextDecoration","decoration","processUnderlineAndColor","setElementFormat","replaceVars","styleVal","adjustSelectionToVisibleSelection","findSelectionEnd","newEnd","applyRngStyle","node_specific","wrapName","wrapElm","newWrappers","rangeUtils","hasContentEditableState","lastContentEditable","isEq","currentWrapElm","matchNode","formatList","getChildCount","isWhiteSpaceNode","mergeStyles","matchName","childCount","removeFormat","merge_with_parents","merge_siblings","mergeSiblings","getNonWhiteSpaceSibling","expandRng","performCaretAction","curSelNode","forcedRootBlock","similar","findFormatRoot","formatRoot","wrapAndSplit","lastClone","firstClone","formatRootParent","splitToFormatRoot","removeRngStyle","getContainer","matchItems","item_name","normalizeStyleValue","matchParents","matchAll","matchedFormatNames","checkedMap","canApply","formatChanged","currentFormats","formatChangeData","matchedFormats","str1","findParentContainer","isBogusBr","findLeaf","findParentContentEditable","findWordEndPoint","findSpace","pos2","lastTextNode","findSelectorEndPoint","sibling_name","curFormat","findBlockEndPoint","lastIdx","leaf","isColorFormatAndAnchor","compare_node","stylesModified","valueOut","MCE_ATTR_RE","inc","rootBlockElm","list_block","findElementSibling","tmpSibling","elementUtils","createCaretContainer","fill","caretContainer","caretContainerId","INVISIBLE_CHAR","isCaretContainerEmpty","getParentCaretContainer","findFirstTextNode","removeCaretContainer","move_caret","applyCaretFormat","removeCaretFormat","hasContentAfter","formatNode","unmarkBogusCaretParents","caret_debug","_hasCaretEvents","markCaretContainersBogus","disableCaretContainer","isAtEndOfText","tmpNode","trimContentRegExp","endTagIndex","matchLength","bogusAllRegExp","addNonTypingUndoLevel","typing","beforeBookmark","isFirstTypedCharacter","locks","cmd","command","beforeChange","isDirty","isNotDirty","lastLevel","custom_undo_redo_levels","undo","redo","hasUndo","hasRedo","transact","handleEnterKey","canSplitBlock","renderBlockOnIE","oldRng","trimInlineElementsOnLeftSideOfBlock","firstChilds","moveToCaretPosition","firstNonWhiteSpaceNodeSibling","tempElm","lastNode","parentBlock","setForcedBlockAttrs","forcedRootBlockName","createNewBlock","clonedNode","textInlineElements","parentBlockName","newBlockName","keep_styles","isCaretAtStartOrEndOfBlock","isAfterLastNodeInContainer","wrapSelfAndSiblingsInDefaultBlock","newBlock","blockName","editableRoot","handleEmptyListItem","isFirstOrLastLi","containerBlock","getContainerBlock","containerBlockParent","containerBlockParentName","undoManager","insertBr","trimLeadingLineBreaks","getEditableRoot","addBrToBlockIfNeeded","containerBlockName","force_p_newlines","br_in_pre","end_container_on_empty_block","wrapped","restoreSelection","rootNodeName","moveEnd","isGecko","isOldIE","ui","commands","queryCommandState","queryCommandValue","addCommands","command_list","execNativeCommand","isFormatMatch","toggleFormat","storeSelection","mceResetDesignMode,mceBeginUndoLevel","mceEndUndoLevel,mceAddUndoLevel","Cut,Copy,Paste","queryCommandSupported","translate","windowManager","alert","unlink","JustifyLeft,JustifyCenter,JustifyRight,JustifyFull","align","InsertUnorderedList,InsertOrderedList","listElm","listParent","Bold,Italic,Underline,Strikethrough,Superscript,Subscript","ForeColor,HiliteColor,FontName","FontSize","fontClasses","fontSizes","font_size_style_values","font_size_classes","RemoveFormat","mceBlockQuote","FormatBlock","mceCleanup","mceRemoveNode","mceSelectNodeDepth","mceSelectNode","mceInsertContent","trimOrPaddLeftRight","hasSiblingText","markInlineFormatElements","reduceInlineTextElements","testNode","bookmarkHtml","caretElement","parserArgs","addVisual","mceInsertRawHTML","mceToggleFormat","mceSetContent","Indent,Outdent","intentValue","indentUnit","indentation","indentStyleName","getParam","mceRepaint","selectAllChildren","InsertHorizontalRule","mceToggleVisualAid","hasVisual","mceReplaceContent","mceInsertLink","anchor","selectAll","mceNewDocument","InsertLineBreak","hasRightSideContent","brElm","extraBr","isControlKey","Outdent","inline_styles","paddingLeft","FontSize,FontName","Undo","Redo","URI","baseUri","base_url","base_uri","isProtocolRelative","protocol","directory","toAbsPath","queryParts","userInfo","port","host","DEFAULT_PORTS","ftp","http","https","mailto","setPath","getURI","toRelative","tu","uu","toRelPath","toAbsolute","noHost","isSameOrigin","defaultPort","breakPoint","outPath","nb","noProtoHost","Class","extendClass","initializing","mixins","Mixins","dummy","createMethod","Methods","Properties","fieldName","Statics","Defaults","Dispatcher","beforeFire","bindings","toggleEvent","bindingName","hi","nativeEvents","uniqueItems","__checked","expression","chunker","Selector","compileNameFilter","compileIdFilter","_name","compileClassesFilter","compileAttrFilter","cmp","compilePsuedoFilter","notSelectors","parseChunks","direct","psuedo","_selectors","control","si","sl","proto","getWindowSize","getRuntimeStyle","innerHtml","EventDispatcher","DomUtils","getEventDispatcher","_eventDispatcher","_nativeEvents","_rendered","bindPendingEvents","hasMouseWheelEventSupport","hasWheelEventSupport","classPrefix","Control","isRtl","rtl","_id","_text","_width","_height","_aria","_elmCache","_classes","_borderBox","parseBox","_paddingBox","_marginBox","getContainerElm","getParentCtrl","controlIdLookup","borderBox","paddingBox","marginBox","measureBox","getSide","initLayoutRect","layoutRect","minHeight","autoResize","startMinWidth","startMinHeight","initialSize","getEl","deltaW","deltaH","maxW","maxH","maxHeight","_layoutRect","contentW","contentH","innerW","innerH","minW","minH","scrollW","_lastLayoutRect","newRect","lastLayoutRect","deltaWidth","deltaHeight","repaintControls","curRect","repaint","bodyStyle","lastRepaintRect","borderW","borderH","_lastRepaintRect","_hasBody","resolveCallbackName","parentsAndSelf","hasEventListeners","parentControls","ctrl1","ctrl2","parentCtrl","_visible","_lastRect","ariaTarget","newItems","_eventsRoot","renderBefore","renderHtml","renderTo","parentEventsRoot","border-top-width","border-right-width","border-bottom-width","border-left-width","getOffset","parentWidth","parentHeight","mouseLeaveHandler","eventRootCtrl","_lastHoverCtrl","mouseEnterHandler","lastParents","lastCtrl","fixWheelEvent","wheelDelta","wheelDeltaX","detail","eventRootDelegates","_delegates","_hasMouseEnter","rootControl","reflow","namespaceInit","typeClass","ControlType","tinymce","getRole","focusedElement","getParentRole","getAriaProp","isTextInputElement","canFocus","getFocusElements","getNavigationRoot","targetControl","navigationRoot","focusedControl","ariaRoot","focusFirst","focusElements","ariaRemember","moveFocusToIndex","lastAriaIndex","moveFocus","parentRole","submenu","enter","up","down","tab","handleNonTabOrEscEvent","Factory","KeyboardNavigation","selectorCache","layout","innerClass","_fixed","_items","containerCls","_layout","keyboard","focusCtrl","keyboardNav","statusbar","oldItem","newItem","ctrlItems","defaultType","renderNew","containerElm","applyClasses","curItems","beforeItems","afterItems","fromJSON","preRender","lastRect","getDocumentSize","getHandleElm","eventOverlayElm","downButton","cursor","docSize","DragHelper","renderScroll","repaintScroll","repaintAxis","axisName","posName","sizeName","contentSizeName","hasScroll","ax","scrollBarElm","scrollThumbElm","containerSize","scrollSize","posNameLower","sizeNameLower","hasScrollH","hasScrollV","bodyElm","addScroll","addScrollAxis","deltaPosName","scrollStart","axisId","draghelper","autoScroll","_hasScroll","bodyEl","Container","Scrollable","_preBodyHtml","calculateRelativePosition","selfW","selfH","targetW","targetH","viewport","testMoveRel","rels","viewPortRect","moveRel","moveTo","moveBy","dx","dy","contrain","constrainToViewport","resizeToContent","resizeTo","resizeBy","dw","dh","Panel","Movable","Resizable","bindDocumentClickHandler","documentClickHandler","visiblePanels","panel","clickCtrl","autohide","bindDocumentScrollHandler","documentScrollHandler","repositionPanel","bindWindowResizeHandler","windowResizeHandler","FloatPanel","hideAll","toggleFixedChildPanels","scrollY","autofix","_autoFixY","addRemove","topModal","zOrder","modal","modalBlockEl","hasModal","currentZIndex","removeVisiblePanel","popover","bodyRole","Window","spacing","pack","describedBy","_fullscreen","needsRecalc","headerW","headEl","headerH","headerHtml","footerHtml","fullscreen","slowRendering","_timer","_initial","dragHelper","getContentWindow","ifr","MessageBox","multiline","OK","OK_CANCEL","YES_NO","YES_NO_CANCEL","msgBox","createButton","primary","subtype","onClick","onPostRender","onCancel","getTopMostWindow","windows","editorManager","setActive","bodyType","onclick","features","message","getParams","setParams","getWindows","setEditorCommandState","getDocumentMode","cleanupStylesWhenDeleting","customDelete","mutationObserver","hasAttribute","childList","attributeFilter","takeRecords","record","attributeName","oldValue","addedNodes","span","olderWebKit","dragStartRng","urlPrefix","nodeInsert","relatedNode","records","attrModified","isMeta","modify","addCommand","selectionHtml","dataTransfer","internalContent","pointRng","insertContent","clipboardData","clearData","emptyEditorWhenDeleting","serializeRng","allContentsSelected","bodyRng","allRng","allSelection","shortcuts","inputMethodFocus","content_editable","removeHrOnBackspace","focusBody","getClientRects","selectControlElements","setBaseAndExtent","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","isSelectionAcrossElements","applyAttributes","ensureBodyHasRoleApplication","disableBackspaceIntoATable","addNewLinesBeforeBrInPre","brNodes","removePreSerializedStylesWhenSelectingControls","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","_refreshContentEditable","addBrAfterLastLinks","fixLinks","setDefaultBlockType","removeGhostSelection","deleteControlItemOnBackSpace","renderEmptyBlocksFix","emptyBlocksCSS","keepNoScriptContents","fixCaretSelectionOfDocumentElementOnIe","rngFromPoint","startRng","endSelection","htmlElm","normalizeSelection","showBrokenImageIcon","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","disableAutoUrlDetect","doubleTrailingBrElements","br","tapLinksAndImages","touchClickEvent","startTouch","endTouch","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","isWebKit","toggleNativeEvent","Observable","getEventTarget","event_root","eventRoot","bindEventDelegate","eventRootElm","delegates","customEventRootDelegates","activeEditor","editors","EditorObservable","bindPendingEventDelegates","_pendingNativeEvents","unbindAllNativeEvents","keyCodeLookup","f9","f10","f11","shortcut","alt","desc","cmdFunc","NodeChange","DomSerializer","Formatter","UndoManager","EnterKey","ForceBlocks","EditorCommands","WindowManager","Quirks","Shortcuts","Editor","documentBaseUrl","documentBaseURL","baseURI","theme","delta_width","delta_height","popup_css","plugins","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","visual","font_size_legacy_values","hidden_input","padd_empty_editor","render_ui","convert_fonts_to_spans","convertURL","ie7_compat","language_load","documentBaseURI","contentCSS","execCommands","queryStateCommands","queryValueCommands","loadedCSS","execCallback","scriptLoader","language_url","themeUrl","theme_url","external_plugins","defaultSettings","getElement","orgVisibility","formElement","hasHiddenInput","formEventDelegate","startContent","_mceOldSubmit","triggerSave","_beforeUnload","destroyed","set_dirty","initPlugin","pluginInstance","Plugin","initializedPlugins","Theme","bodyId","bodyClass","aria_label","getLang","orgDisplay","min_height","renderUI","targetNode","iframeHeight","editorContainer","iframeContainer","content_css","u","content_style","initContentBody","iframeHTML","cssUrl","body_id","body_class","content_security_policy","domainRelaxUrl","hostname","frameBorder","allowTransparency","contentAreaContainer","iframeElement","skipWrite","contentCssText","content_document","content_window","bodyElement","hex_colors","force_hex_style_colors","class_filter","forceBlocks","enterKey","editorCommands","_nodeChangeDispatcher","browser_spellcheck","gecko_spellcheck","spellcheck","quirks","directionality","nowrap","protect","auto_focus","skipFocus","callbackLookup","addButton","icon","tooltip","addMenuItem","menuItems","addQueryStateHandler","addQueryValueHandler","cmdItem","skip_focus","queryItem","returnVal","_isHidden","focusedEditor","setProgressState","getContentAreaContainer","urlconverter_callback","visual_table_class","visual_anchor_class","automatic","_dir","match1","match2","FocusManager","getActiveElement","createBookmark","bookmarkToRng","isUIElement","isEditorUIElement","registerEvents","selectionChangeHandler","blurredEditor","documentFocusInHandler","documentMouseUpHandler","unregisterDocumentEvents","I18n","removeEditorFromList","removedFromList","EditorManager","purgeDestroyedEditor","beforeUnloadDelegate","instanceCounter","majorVersion","minorVersion","releaseDate","preInit","tinyMCEPreInit","currentScript","focusManager","createId","createEditor","co","forms","editor_deselector","editor_selector","oninit","addI18n","tinyMCE","replaceWithSpan","convert","font","face","strike","XHR","success_scope","error_scope","content_type","withCredentials","quote","JSONRequest","sendRPC","ecb","scb","ty","updateKeys","LocalStorage","nextPos","hasOldIEDataSupport","storageElm","userDataKey","addBehavior","firstControlClass","lastControlClass","containerClass","firstClass","lastClass","controlClass","Layout","_value","Tooltip","Widget","tooltips","ariaLabel","btnElm","iconElm","btnStyle","_checked","subinput","menu","showMenu","_hasOnChange","openElm","openBtnHtml","extraAttrs","ComboBox","onaction","repaintColor","background","Button","showPanel","panelSettings","hidePanel","popoverAlign","PanelButton","_color","onClickHandler","Color","rgb2hsv","minRGB","maxRGB","hsvToRgb","hue","saturation","brightness","side","chroma","toRgb","toHsv","updateColor","hsv","hueUpdate","huePointElm","svPointElm","svRootElm","updateSaturationAndValue","updateHue","hueRootElm","_repaint","_svdraghelper","_hdraghelper","rgb","getOldIeFallbackHtml","gradientPrefix","stopsList","stops","hueHtml","gradientCssText","delimiter","_getPathHtml","Path","outParents","flex","FormItem","labelGap","formItemDefaults","formItem","forId","recalcLabels","maxLabelWidth","labels","labelGapCalc","labelCtrl","labelWidth","Form","actionCallback","fileBrowserCallback","fileBrowserCallbackTypes","editorSettings","file_picker_types","file_browser_callback_types","filetype","file_picker_callback","file_browser_callback","meta","AbsoluteLayout","contLayoutRect","contPaddingBox","contSettings","totalFlex","availableSpace","ctrlLayoutRect","ctrlSettings","maxSize","maxAlignEndPos","minSizeName","maxSizeName","beforeName","innerSizeName","deltaSizeName","alignAxisName","alignInnerSizeName","alignSizeName","alignMinSizeName","alignBeforeName","alignAfterName","alignDeltaSizeName","alignContentSizeName","maxSizeItems","maxFlexSize","endClass","registerControls","createListBoxChangeHandler","formatName","createFormats","createFormatMenu","createMenu","menuItem","newFormats","createStylesMenu","style_formats_merge","style_formats","defaultStyleFormats","itemDefaults","preview","textStyle","toggleUndoRedoState","toggleVisualAidState","formatMenu","outdent","cut","paste","help","selectall","visualaid","newdocument","numlist","bullist","blocks","block_formats","fixedWidth","onselect","defaultFontsFormats","fonts","font_formats","defaultFontsizeFormats","fontsize_formats","rows","cols","posX","posY","spacingH","spacingV","alignH","alignV","maxX","maxY","ctrlMinWidth","ctrlMinHeight","availableWidth","availableHeight","reverseRows","colWidths","rowHeights","columns","sqrt","flexV","packV","flexWidths","strong","startMinH","Toolbar","MenuBar","MenuButton","_renderOpen","hasPopup","hideMenu","activeMenu","hasVisibleSiblingMenu","overCtrl","setSelected","menuValues","selectedText","lastItemCtrl","_values","lastControl","activateByValue","setActiveValues","ariaHideMenu","hasMenus","_parentMenu","_lastRel","textElm","MenuItem","Menu","_hasIcons","Checkbox","resizeDragHelper","mainButtonElm","menuButtonElm","_menuBtnText","FlowLayout","activateTab","activeTabElm","activeTabId","tabsHtml","activeTab","targetParent","headH","AutoTOC","section","levels","IDPrefix","classTOCName","classSectionName","classLevelPrefixName","scrollDuration","scrollEasing","$toc","asTabs","$level","elementLevel","levelSelector","fs","Cc","Ci","xpcIsWindows","progIds","xmlRegExp","bodyRegExp","hasLocation","defaultProtocol","defaultHostName","buildMap","masterConfig","strip","jsEscape","createXhr","progId","parseName","modName","xdRegExp","useXhr","uProtocol","uHostName","uPort","finishLoad","isBuild","inlineText","nonStripName","asModule","writeFile","extPart","fileName","textWrite","env","versions","nodeRequire","readFileSync","onXhr","onXhrComplete","Packages","java","stringBuffer","line","File","lineSeparator","System","getProperty","BufferedReader","InputStreamReader","FileInputStream","StringBuffer","readLine","Components","interfaces","inStream","convertStream","fileObj","readData","FileUtils","createInstance","nsIFileInputStream","nsIConverterInputStream","DEFAULT_REPLACEMENT_CHARACTER","readString","Emitter","_callbacks","removeAllListeners","listeners","hasListeners","Dropzone","Em","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","elementOptions","fallback","defaultOptions","previewTemplate","clickableElements","querySelector","dropzone","instances","optionsForElement","forceFallback","isBrowserSupported","acceptedFiles","acceptedMimeTypes","getExistingFallback","previewsContainer","clickable","getElements","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","maxFiles","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","accept","messageElement","getFallbackForm","info","srcRatio","trgRatio","srcX","srcY","srcWidth","srcHeight","optWidth","optHeight","trgHeight","trgWidth","dragenter","dragover","dragleave","addedfile","removeFileEvent","removeLink","_j","_k","_len1","_len2","_ref1","_ref2","previewElement","filesize","_removeLink","UPLOADING","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","thumbnailElement","errormultiple","processing","processingmultiple","uploadprogress","bytesSent","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","objects","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","getUploadingFiles","getActiveFiles","noPropagation","setupHiddenFileInput","hiddenFileInput","addFile","URL","webkitURL","updateTotalUploadProgress","efct","effectAllowed","dropEffect","clickableElement","elementInside","removeAllFiles","activeFiles","totalBytes","totalBytesSent","totalUploadProgress","_getParamName","existingFallback","fields","fieldsString","getFallback","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","webkitGetAsEntry","_addFilesFromItems","handleFiles","entry","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","dirReader","entriesReader","createReader","entries","fullPath","readEntries","isValidFile","ADDED","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","cancelIfNecessary","fileReader","FileReader","canvas","resizeInfo","_ref3","getContext","trgX","trgY","toDataURL","readAsDataURL","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","groupedFile","groupedFiles","CANCELED","uploadFile","handleError","headerName","headerValue","inputName","inputType","progressObj","updateProgress","_l","_len3","_m","_ref4","_ref5","allFilesFinished","_finished","onprogress","Accept","Cache-Control","X-Requested-With","SUCCESS","ERROR","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","FileList","Blob","rejectedItem","question","rejected","baseMimeType","validType","ACCEPTED","PROCESSING","alpha","ey","ih","iw","py","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sh","vertSquashRatio","poll","rem","createEventObject","_autoDiscoverFunction","UploadTemplate","PreviewTemplate","UploadPattern","showTitle","wrapperTemplate","fileaddedClassName","useTus","ajaxUpload","autoCleanResults","relatedItems","numFiles","currentFile","$progress","relativePath","$pathInput","setupRelatedItems","$dropzone","dzoneOptions","getDzoneOptions","showControls","hideControls","pct","processUpload","finished","pathJoin","$preview","tus","handleTusUpload","chunkSize","endpoint","FILENAME","bytesUploaded","bytesTotal","percentage","formatBytes","bytes","kb","mb","initialFolder","ri","Upload","LinkTemplate","ImageTemplate","LinkType","linkModal","tinypattern","tiny","data-val","InternalLink","createRelatedItems","generateUrl","UploadLink","filename","ImageLink","generateImageUrl","$scale","EmailLink","getSubject","$subject","AnchorLink","$select","anchorNodes","anchorData","anchorSelector","anode","newAnchor","getIndex","addImageClicked","stateSelector","prependToContext","addLinkClicked","LinkModal","linkTypes","initialLinkType","insertHeading","linkTypeClassMapping","internal","external","email","uploadImage","externalImage","linkTypeTemplateMapping","linkType","generateModalHtml","modalShown","externalText","emailText","subjectText","targetList","titleText","externalImageText","altText","imageAlignText","imageAlign","scaleText","scales","cancelBtn","insertBtn","isImageMode","initElements","$alt","$align","$fieldset","getLinkUrl","getValue","updateAnchor","data-linkType","focusElement","updateImage","waitLoad","imgElm","data-scale","initData","$upload","patternUpload","data-filename","data-path","anchorElm","imgs","guessImageLink","guessAnchorLink","prependToScalePart","getScaleFromUrl","stripGeneratedUrl","prependToUrl","setRaw","setSelectElement","reinitialize","createToolbars","addToolbar","buttonGroup","toolbarItems","bindSelectorChanged","itemName","disabledStateSelector","toolbar_items_size","toolbars","toolbar","defaultToolbar","createMenuButtons","createMenuItem","menuButton","isUserDefined","removedMenuItems","removed_menuitems","defaultMenus","menuButtons","defaultMenuBar","enabledMenuNames","menubar","addAccessibilityKeys","iframeElm","iframeSize","min_width","max_width","max_height","renderInlineUI","reposition","bodyPos","scrollContainerPos","inlineToolbarContainer","fixed_toolbar_container","skinUiCss","renderIframeUI","resizeHandleCtrl","startSize","onResizeStart","onResize","edit","tools","skin","skinUrl","skin_url","throbber","Throbber","buildMenuItems","listName","styleValues","styleValue","applyListFormat","lastStyles","listStyleType","olMenuItems","ulMenuItems","onshow","showDialog","onsubmit","handleEclipse","parseCurrentLine","handleSpacebar","handleEnter","end_offset","scopeIndex","rngText","AutoUrlDetectState","isFullscreen","deltaSize","resizeHeight","myHeight","marginTop","marginBottom","paddingTop","paddingBottom","borderTop","borderBottom","autoresize_min_height","autoresize_max_height","oldSize","overflowPadding","paddingRight","_beforeUnloadHandler","autosave","storeDraft","parseTime","defaultTime","multipels","hasDraft","autosave_retention","removeDraft","restoreDraft","startStoreDraft","autosave_interval","restoreLastDraft","autosave_prefix","autosave_restore_when_empty","onbeforeunload","dialect","getInfo","longname","author","authorurl","infourl","_punbb_html2bbcode","rep","_punbb_bbcode2html","BBCodePlugin","getParentTd","gridHtml","charmap","charMapPanel","onmouseover","onSubmit","source_view","colorPickerCallback","setColor","showPreview","hexColor","onchange","colorPickerCtrl","color_picker_callback","contextmenuNeverUseNative","contextmenu_never_use_native","contextmenu","setDir","curDir","generateSelector","getHtml","emoticonsHtml","emoticons","row","emoticonUrl","linkElm","htmlToData","dataToHtml","getAttr","headerFragment","parseHeader","fontface","xml_pi","docencoding","httpEquiv","langcode","stylesheets","langdir","visited_color","link_color","active_color","setAttr","addHeadNode","headElement","currentStyleSheetsMap","stylesheet","vLink","aLink","apply_source_formatting","endPos","foot","getDefaultHeader","headElm","data-mce-fullpage","toggleFullscreen","editorContainerStyle","iframeStyle","fullscreenState","iframeWidth","containerWidth","containerHeight","resizeHandler","getImageSize","buildListItems","inputList","itemCallback","startItems","appendItems","createImageList","imageList","image_list","recalcSize","widthCtrl","heightCtrl","newWidth","newHeight","onSubmitForm","selectImage","imageDimensions","updateStyle","removePixelSuffix","srcChange","imageListCtrl","addPixelSuffix","image_advtab","vspace","hspace","classListCtrl","image_dimensions","altCtrl","image_class_list","generalFormItems","image_description","borderWidth","compileFilter","getSelectors","fileFilter","imported","imports","cssRule","selectorText","contentCSSUrls","convertSelectorToFormat","inlineSelectorElements","importcss_merge_classes","selectorConverter","importcss_selector_converter","selectorFilter","importcss_selector_filter","importcss_append","importcss_groups","importcss_file_filter","getDateTime","addZeros","getYear","getSeconds","monthsLong","daysLong","daysShort","insertDateTime","insertdatetime_element","computerTime","timeElm","lastFormat","defaultButtonTimeFormat","insertdatetime_formats","getParentLayer","visualAid","nl","z","le","insertLayer","toggleAbsolute","layer","designMode","alignElements","fontElm","createLinkList","linkList","link_list","linkListChangeHandler","textCtrl","buildAnchorListControl","anchorList","updateText","initialText","onlyText","urlChange","linkListCtrl","isOnlyTextSelected","textListCtrl","relListCtrl","targetListCtrl","linkTitleCtrl","default_link_target","target_list","rel_list","link_class_list","link_title","onkeyup","delayedConfirm","insertLink","linkAttrs","isListNode","isFirstChild","isLastChild","setupEndPoint","createNewTextBlock","contentNode","textBlock","hasContentNode","getSelectedListItems","splitList","bookmarks","mergeWithAdjacentLists","listBlock","normalizeList","removeEmptyLi","ulParent","mergeLists","newList","indentSelection","listElements","outdentSelection","applyList","getSelectedTextBlocks","getEndPointNode","textBlocks","listItemName","removeList","rootList","toggleList","parentList","queryListCommandState","backspaceDelete","findNextCaretContainer","nonEmptyBlocks","mergeLiElements","fromElm","toElm","listNode","otherLi","guessMime","getVideoScriptMatch","prefixes","media_scripts","updateValueOnChange","media_alt_source","media_poster","media_dimensions","embedTextBox","getSource","embedChange","onShowTab","beforeObjects","afterObjects","source1","embed","source2","poster","source1mime","source2mime","flashPlayerUrl","urlPatterns","updateHtml","videoScript","audio_template_callback","video_template_callback","movie","sanitize","media_filter_html","updateAll","setAttributes","updatedAttrs","hasImage","sourceCount","imgAttrs","boolAttrs","placeHolder","data-mce-object","realElm","innerNode","realElmName","objectType","setting","visualchars","spaces","getNonEditableParent","handleContentEditableSelection","insertCaretContainerOrExpandToBlock","currentCaretContainer","lastContainer","moveSelection","hasSideContent","nonEditableStart","nonEditableEnd","handleKey","getNonEmptyTextNodeSibling","positionCaretOnElement","canDelete","backspace","removeNodeIfNotParent","isNextPrevTreeNodeNonEditable","nonEditableParent","isMac","targetElement","convertRegExpsToNonEditable","nonEditableRegExps","nonEditClass","editClass","externalName","pageBreakClass","separatorHtml","pageBreakSeparatorRegExp","pageBreakPlaceHolderHtml","pagebreak_split_block","ignoreElements","domParser","trimHtml","trimSpaces","s1","s2","Utils","pasteHtml","tempBody","paste_merge_formats","pasteText","forcedRootBlockStartHtml","startBlock","createPasteBin","getCaretRect","rects","pasteBinElm","pasteBinDefaultContent","removePasteBin","pasteBinClone","getPasteBinHtml","pasteBinClones","cloneHtml","getDataTransferItems","legacyText","getClipboardContent","clipboardEvent","pasteImageData","processItems","pasteImage","reader","paste_data_images","isBrokenAndroidClipboardEvent","getCaretRangeFromEvent","hasContentType","clipboardContent","isKeyboardPasteEvent","registerEventHandlers","removePasteBinOnKeyUp","keyboardPastePlainTextState","keyboardPasteTimeStamp","ieFake","clipboardTimer","clipboardDelay","isKeyBoardPaste","plainTextMode","pasteFormat","draggingInternally","paste_filter_drop","dropContent","isWordContent","isNumericList","isBulletList","WordFilter","convertFakeListsToProperLists","trimListStart","regExp","removeIgnoredNodes","_listIgnore","convertParagraphToLi","paragraphNode","_listLevel","currentListNode","prevListNode","nodeText","filterStyles","outputStyles","retainStyleProperties","paste_retain_style_properties","paste_enable_default_filters","wordContent","paste_word_valid_elements","addPreProcessFilter","filterFunc","removeExplorerBrElementsAfterBlocks","explorerBlocksRegExp","removeWebKitStyles","webKitStyles","paste_webkit_styles","paste_remove_styles_if_webkit","inputStyles","inputValue","currentValue","Clipboard","userIsInformed","togglePlainTextPaste","clipboard","wordFilter","paste_as_text","paste_preprocess","paste_postprocess","paste_block_drop","sandbox","previewHtml","headHtml","dirAttr","print","formObj","stateToggle","findAndReplaceDOMText","replacementNode","captureGroup","getMatchIndexes","cg","hiddenTextElementsMap","stepThroughMatches","replaceFn","startNodeIndex","endNodeIndex","innerNodes","atIndex","curNode","matchLocation","matchIndex","genReplacer","makeReplacementNode","stencilNode","elA","innerEls","innerEl","elB","updateButtonStates","findSpansByIndex","currentIndex","notFoundAlert","caseState","wholeWord","getElmIndex","markAllMatches","spans","testIndex","matchCase","currentMatchIndex","hasMore","nextIndex","keepEditorSelection","createMatch","stencil","unwrapElement","getWrappersByIndex","wrappers","dataIndex","filteredMatches","matchFromElement","elementFromMatch","rangeFromMatch","DomTextMatcher","getTextMatcher","textMatcher","languageValues","languageValue","showSuggestions","suggestions","lastSuggestions","suggestion","checkIfFinished","hasDictionarySupport","addToDictionary","ignoreWord","suggestionsMenu","onautohide","onhide","targetPos","getWordCharPattern","defaultSpellcheckCallback","doneCallback","postData","spellchecker_language","spellchecker_rpc_url","sendRpcCall","successCallback","spellCheckCallback","spellchecker_callback","markErrors","selectedLanguage","words","dictionary","data-mce-word","languageMenuItems","languagesString","spellchecker_languages","langPair","buttonArgs","getLanguage","tabCancel","tabHandler","canSelectRecursive","focusEditor","getSpanVal","buildGrid","grid","gridWidth","x2","y2","rowspan","colspan","getCell","setSpanVal","isCellSelected","cell","selectedCell","getSelectedRows","cells","deleteTable","cloneCell","cloneFormats","table_clone_elements","fillLeftDown","colSpan","rowSpan","endX","endY","startCell","endCell","insertRow","lastCell","rowElm","newRow","newCell","otherCell","insertCol","deleteCols","deleteRows","deleteRow","cutRows","copyRows","pasteRows","selectedRows","targetRow","targetCellCount","cellCount","setStartCell","findEndPos","setEndCell","moveRelIdx","cellElm","moveWebKitSelection","eventHandler","upBool","sourceNode","siblingDirection","currentRow","siblingRow","moveCursorToRow","tableNode","middleNode","parentNodeName","getTargetParent","moveToRowInTarget","escapeTable","topNode","secondNode","tbodies","getFirstHeadOrFoot","topOrBottom","headOrFoot","getChildForDirection","tableSibling","moveCursorToStartOfElement","parentCell","backUpSibling","isVerticalMovement","isInTable","columnIndex","column","colIndex","findColumn","rowElement","srcColumnIndex","tgtColumnIndex","tgtNode","rowCellTarget","shouldFixCaret","preBrowserNode","oldParent","checkSameParentTable","nodeOne","NodeTwo","fixBeforeTableCaretBug","isAtStart","par","fixTableCaretPos","fixTableCellSelection","tableCellSelected","currentCell","tableParent","allOfCellSelected","tableCellSelection","TEXT_NODE","fixSelection","TableGrid","webkitUserSelect","hasCellSelection","cellSelectionHandler","resizing","tableGrid","startTable","setPoint","selectedCells","createColorPickAction","createStyleForm","removePxSuffix","addSizeSuffix","unApplyAlign","unApplyVAlign","isStyleCtrl","borderColor","appendStylesToData","tableProps","isProps","onSubmitTableForm","captionElm","tableElm","insertTable","cellspacing","cellpadding","colsCtrl","rowsCtrl","generalTableForm","table_class_list","table_advtab","onSubmitCellForm","valign","table_cell_class_list","generalCellForm","table_cell_advtab","onSubmitRowForm","oldParentElm","toType","generalRowForm","table_row_class_list","table_row_advtab","CellSelection","Dialogs","table_default_attributes","table_default_styles","handleDisabledState","bindStateListener","postRenderCell","generateTableGrid","selectGrid","tx","focusCell","clipboardRows","dialogs","table_grid","lastX","lastY","onmousemove","cellSelection","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutRow","mceTableCopyRow","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","mceInsertTable","mceTableProps","mceTableRowProps","mceTableCellProps","table_tab_navigation","createTemplateList","templateList","templates","onSelectTemplate","insertIframeHtml","contentCssLinks","replaceTemplateValues","templateHtml","description","insertTemplate","replaceVals","vl","templateValuesOptionName","getCurrentColor","mapColors","colorMap","colors","textcolor_map","renderColorPicker","getColorCellHtml","isNoColor","applyFormat","onPanelClick","selectColor","buttonCtrl","setDivColor","customColorCells","lastId","onButtonClick","textcolor_rows","textcolor_cols","getPatterns","isPatternsDirty","findPattern","findEndPattern","applyInlineFormat","space","splitContainer","patternRng","applyBlockFormat","firstTextNode","textBlockElm","wrappedTextNode","handleSpace","lastChar","lastCharNode","textpattern_patterns","setPatterns","newPatterns","toggleActiveState","cssId","visualBlocksMenuItem","NodeList","visualblocks_default_state","toggleVisualChars","addBookmark","nodeList","draft","getCount","countre","cleanre","tc","wordArray","ResultTemplate","SelectionTemplate","TinyMCE","loadingBaseUrl","appendToUrl","linkAttribute","appendToScalePart","imageTypes","linkableTypes","imageModal","uploadModal","tinyOptions","init_instance_callback","TextareaMimetypeSelector","currentWidget","textareaName","widgets","text/html","initTextarea","mimetype","patternConfig","PloneWidgets"],"mappings":"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S,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC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","file":"widgets.min.js"} \ No newline at end of file +{"version":3,"sources":["widgets.js"],"names":["requirejs","require","define","global","isFunction","it","ostring","call","isArray","each","ary","func","i","length","eachReverse","hasProp","obj","prop","hasOwn","getOwn","eachProp","mixin","target","source","force","deepStringMixin","value","RegExp","bind","fn","apply","arguments","scripts","document","getElementsByTagName","defaultOnError","err","getGlobal","g","split","part","makeError","id","msg","requireModules","e","Error","requireType","originalError","newContext","contextName","trimDots","splice","normalize","name","baseName","applyMap","pkgMain","mapValue","nameParts","j","nameSegment","lastIndex","foundMap","foundI","foundStarMap","starI","normalizedBaseParts","baseParts","map","config","starMap","nodeIdCompat","jsSuffixRegExp","test","replace","charAt","slice","concat","join","outerLoop","pkgs","removeScript","isBrowser","scriptNode","getAttribute","context","parentNode","removeChild","hasPathFallback","pathConfig","paths","shift","undef","makeRequire","skipMap","splitPrefix","prefix","index","indexOf","substring","makeModuleMap","parentModuleMap","isNormalized","url","pluginModule","suffix","parentName","originalName","isDefine","normalizedName","requireCounter","defined","nameToUrl","unnormalizedCounter","parentMap","unnormalized","getModule","depMap","mod","registry","Module","on","defineEmitComplete","error","onError","errback","ids","notified","events","emit","req","takeGlobalQueue","globalDefQueue","queueItem","defQueueMap","defQueue","push","cleanRegistry","enabledRegistry","breakCycle","traced","processed","depMaps","depId","dep","depMatched","defineDep","check","checkLoaded","usingPathFallback","waitInterval","waitSeconds","expired","startTime","Date","getTime","noLoads","reqCalls","stillLoading","needCycleCheck","inCheckLoaded","modId","enabled","inited","fetched","isWebWorker","checkLoadedTimeoutId","setTimeout","callGetModule","args","init","removeListener","node","ieName","detachEvent","isOpera","removeEventListener","getScriptData","evt","currentTarget","srcElement","onScriptLoad","onScriptError","intakeDefines","handlers","baseUrl","bundles","shim","undefEvents","urlFetched","bundlesMap","exports","usingExports","module","uri","this","depExports","pluginMaps","depCount","prototype","factory","options","ignore","enable","fetch","enableBuildCallback","deps","callPlugin","load","enabling","cjsModule","defining","execCb","undefined","requireMap","console","onResourceLoad","resLoadMaps","normalizedMap","defineEmitted","pluginMap","plugin","normalizedMod","bundleId","localRequire","fromText","text","textAlt","moduleName","moduleMap","hasInteractive","useInteractive","exec","completeLoad","handler","undefed","cb","cbs","nextTick","configure","cfg","objs","v","exportsFn","makeShimExports","packages","pkgObj","location","main","currDirRegExp","callback","ret","relMap","requireMod","__requireJsBuild","get","toUrl","moduleNamePlusExt","ext","lastIndexOf","segment","isRelative","specified","found","shExports","enforceDefine","skipExt","syms","parentModule","parentPath","jsExtRegExp","match","urlArgs","type","readyRegExp","readyState","interactiveScript","data","parents","key","getInteractiveScript","script","s","head","baseElement","dataMain","src","currentlyAddingScript","mainScript","subPath","version","commentRegExp","cjsRequireRegExp","op","Object","toString","hasOwnProperty","ap","Array","window","navigator","importScripts","platform","defContextName","opera","contexts","optional","ctx","createNode","xhtml","createElementNS","createElement","scriptType","charset","async","onNodeCreated","setAttribute","attachEvent","addEventListener","insertBefore","appendChild","skipDataMain","pop","amd","jQuery","eval","w","noGlobal","isArraylike","isWindow","nodeType","winnow","elements","qualifier","not","grep","elem","risSimple","filter","inArray","sibling","cur","dir","createOptions","object","optionsCache","rnotwhite","_","flag","detach","completed","event","ready","dataAttr","rmultiDash","toLowerCase","rbrace","parseJSON","isEmptyDataObject","isEmptyObject","internalData","pvt","acceptData","thisCache","internalKey","expando","isNode","cache","deletedIds","guid","toJSON","noop","extend","camelCase","internalRemoveData","cleanData","support","deleteExpando","returnTrue","returnFalse","safeActiveElement","activeElement","createSafeFragment","list","nodeNames","safeFrag","createDocumentFragment","getAll","tag","elems","strundefined","querySelectorAll","childNodes","nodeName","merge","fixDefaultChecked","rcheckableType","defaultChecked","checked","manipulationTarget","content","firstChild","ownerDocument","disableScript","find","attr","restoreScript","rscriptTypeMasked","removeAttribute","setGlobalEval","refElements","_data","cloneCopyEvent","dest","hasData","l","oldData","curData","handle","add","fixCloneNodeIssues","noCloneEvent","removeEvent","outerHTML","html5Clone","innerHTML","trim","defaultSelected","selected","defaultValue","actualDisplay","doc","style","appendTo","body","display","getDefaultComputedStyle","css","defaultDisplay","elemdisplay","iframe","documentElement","contentWindow","contentDocument","write","close","addGetHookIf","conditionFn","hookFn","condition","vendorPropName","capName","toUpperCase","origName","cssPrefixes","showHide","show","hidden","values","isHidden","setPositiveNumber","subtract","matches","rnumsplit","Math","max","augmentWidthOrHeight","extra","isBorderBox","styles","val","cssExpand","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","getStyles","boxSizing","curCSS","rnumnonpx","boxSizingReliable","parseFloat","Tween","end","easing","createFxNow","fxNow","now","genFx","includeWidth","which","attrs","height","opacity","width","createTween","animation","tween","collection","tweeners","defaultPrefilter","props","opts","toggle","hooks","oldfire","checkDisplay","anim","orig","dataShow","queue","_queueHooks","unqueued","empty","fire","always","overflow","overflowX","overflowY","inlineBlockNeedsLayout","zoom","shrinkWrapBlocks","rfxtypes","done","hide","_removeData","start","propFilter","specialEasing","cssHooks","expand","Animation","properties","result","stopped","animationPrefilters","deferred","Deferred","tick","currentTime","remaining","duration","temp","percent","tweens","run","notifyWith","resolveWith","promise","originalProperties","originalOptions","stop","gotoEnd","rejectWith","fx","timer","progress","complete","fail","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","unshift","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","prefilterOrFactory","dataTypeOrTransport","seekingTransport","transports","ajaxExtend","deep","flatOptions","ajaxSettings","ajaxHandleResponses","responses","firstDataType","ct","finalDataType","contents","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","tmp","prev","responseFields","dataFilter","state","buildParams","traditional","rbracket","createStandardXHR","XMLHttpRequest","createActiveXHR","ActiveXObject","getWindow","defaultView","parentWindow","class2type","selector","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","jquery","constructor","toArray","num","pushStack","prevObject","first","eq","last","len","sort","copyIsArray","copy","clone","isPlainObject","random","isReady","isNumeric","ownLast","globalEval","execScript","string","makeArray","arr","results","second","invert","callbackInverse","callbackExpect","arg","proxy","Sizzle","seed","m","groups","old","nid","newSelector","preferredDoc","setDocument","documentIsHTML","rquickExpr","getElementById","contains","getElementsByClassName","qsa","rbuggyQSA","tokenize","rescape","toSelector","rsibling","testContext","qsaError","select","createCache","keys","Expr","cacheLength","markFunction","assert","div","addHandle","attrHandle","siblingCheck","a","b","diff","sourceIndex","MAX_NEGATIVE","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","setFilters","tokens","addCombinator","matcher","combinator","base","checkNonElements","doneName","xml","oldCache","outerCache","newCache","dirruns","elementMatcher","matchers","multipleContexts","condense","unmatched","newUnmatched","mapped","setMatcher","preFilter","postFilter","postFinder","postSelector","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","relative","implicitRelative","matchContext","matchAnyContext","outermostContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","uniqueSort","getText","isXML","compile","sortInput","hasDuplicate","docElem","rbuggyMatches","classCache","tokenCache","compilerCache","sortOrder","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","runescape","funescape","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","els","hasCompare","parent","top","className","createComment","getById","getElementsByName","attrId","getAttributeNode","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","bp","expr","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo",">"," ","+","~","excess","unquoted","nodeNameSelector","pattern","operator","what","simple","forward","ofType","nodeIndex","useCache","lastChild","pseudo","idx","matched","has","innerText","lang","elemLang","hash","root","focus","hasFocus","href","tabIndex","disabled","selectedIndex","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","soFar","preFilters","cached","token","compiled","div1","unique","isXMLDoc","rneedsContext","rsingleTag","self","is","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","children","next","until","n","r","targets","closest","pos","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","siblings","reverse","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","stack","once","stopOnFalse","disable","remove","lock","locked","fireWith","tuples","then","fns","newDefer","tuple","returned","resolve","reject","notify","pipe","stateString","when","subordinate","progressValues","progressContexts","resolveContexts","resolveValues","updateFunc","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","frameElement","doScroll","doScrollCheck","container","cssText","noData","applet ","embed ","object ","removeData","dequeue","startLength","setter","clearQueue","count","defer","pnum","el","access","chainable","emptyGet","raw","bulk","fragment","leadingWhitespace","tbody","htmlSerialize","cloneNode","appendChecked","noCloneChecked","checkClone","click","eventName","change","focusin","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","types","t","handleObjIn","special","eventHandle","handleObj","namespaces","origType","elemData","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","trigger","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","metaKey","original","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","one","origFn","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","rchecked","rscriptType","rcleanScript","wrapMap","option","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","dataAndEvents","deepDataAndEvents","destElements","srcElements","inPage","buildFragment","selection","wrap","safe","nodes","createTextNode","append","domManip","prepend","before","after","keepData","html","replaceWith","replaceChild","hasScripts","set","iNoClone","_evalUrl","prependTo","insertAfter","replaceAll","insert","shrinkWrapBlocksVal","rmargin","rposition","getComputedStyle","opener","computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","computeStyleTests","pixelPositionVal","boxSizingReliableVal","reliableMarginRightVal","marginRight","reliableHiddenOffsetsVal","cssFloat","backgroundClip","clearCloneStyle","MozBoxSizing","WebkitBoxSizing","reliableHiddenOffsets","pixelPosition","reliableMarginRight","swap","ralpha","ropacity","rdisplayswap","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","cssProps","float","$1","margin","padding","border","expanded","parts","unit","propHooks","eased","step","linear","p","swing","cos","PI","timerId","rfxnum","rrun","*","scale","maxIterations","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","getSetAttribute","hrefNormalized","checkOn","optSelected","enctype","optDisabled","radioValue","rreturn","valHooks","optionSet","scrollHeight","nodeHook","boolHook","ruseDefault","getSetInput","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","setAttributeNode","createAttribute","coords","contenteditable","rfocusable","rclickable","removeProp","for","class","notxml","tabindex","parseInt","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","hover","fnOver","fnOut","unbind","delegate","undelegate","nonce","rquery","rvalidtokens","JSON","parse","requireNonComma","depth","str","comma","open","Function","parseXML","DOMParser","parseFromString","loadXML","ajaxLocParts","ajaxLocation","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","allTypes","active","lastModified","etag","isLocal","processData","contentType","accepts","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","status","nativeStatusText","headers","success","modified","statusText","timeoutTimer","transport","responseHeadersString","ifModified","cacheURL","callbackContext","statusCode","fireGlobals","globalEventContext","completeDeferred","responseHeaders","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","code","abort","finalText","method","crossDomain","hasContent","beforeSend","send","getJSON","getScript","throws","wrapAll","wrapInner","unwrap","visible","r20","rCRLF","rsubmitterTypes","rsubmittable","encodeURIComponent","serialize","serializeArray","xhr","xhrId","xhrCallbacks","xhrSupported","cors","username","xhrFields","isAbort","onreadystatechange","responseText","text script","scriptCharset","onload","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","size","andSelf","_jQuery","_$","$","noConflict","createReduce","iterator","iteratee","memo","currentKey","optimizeCb","isArrayLike","createPredicateIndexFinder","array","predicate","getLength","createIndexFinder","predicateFind","sortedIndex","item","min","isNaN","collectNonEnumProps","nonEnumIdx","nonEnumerableProps","proto","ObjProto","previousUnderscore","ArrayProto","FuncProto","nativeIsArray","nativeKeys","nativeBind","nativeCreate","create","Ctor","_wrapped","VERSION","argCount","other","accumulator","identity","isObject","property","Infinity","createAssigner","keysFunc","undefinedOnly","baseCreate","MAX_ARRAY_INDEX","pow","forEach","collect","reduce","foldl","inject","reduceRight","foldr","detect","findIndex","findKey","negate","every","some","any","includes","include","fromIndex","guard","invoke","isFunc","pluck","where","findWhere","lastComputed","shuffle","rand","shuffled","sample","sortBy","criteria","right","group","behavior","groupBy","indexBy","countBy","partition","pass","take","initial","rest","tail","drop","compact","flatten","shallow","strict","startIndex","output","isArguments","without","difference","uniq","isSorted","isBoolean","seen","union","intersection","argsLength","zip","unzip","findLastIndex","low","mid","floor","range","ceil","executeBound","sourceFunc","boundFunc","callingContext","TypeError","bound","partial","boundArgs","bindAll","memoize","hasher","address","throttle","previous","later","leading","trailing","debounce","immediate","timestamp","callNow","wrapper","compose","times","hasEnumBug","propertyIsEnumerable","allKeys","mapObject","pairs","functions","methods","names","extendOwn","assign","pick","oiteratee","omit","defaults","tap","interceptor","isMatch","aStack","bStack","areArrays","aCtor","bCtor","isEqual","isEmpty","isString","isElement","Int8Array","isFinite","isNumber","isNull","isUndefined","constant","propertyOf","accum","escapeMap","&","<","\"","'","`","unescapeMap","createEscaper","escaper","testRegexp","replaceRegexp","escape","unescape","fallback","idCounter","uniqueId","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","
","
","escapeChar","template","oldSettings","variable","render","chain","instance","_chain","valueOf","IEConsoleWriter","ConsoleWriter","Logger","_loggers","_parent","_enabled","_level","Level","WARN","getWriter","writer","setWriter","oThis","aArgs","fToBind","fNOP","fBound","DEBUG","INFO","ERROR","FATAL","log_name","level","messages","log","message","info","level_name","warn","getLogger","path","route","entry","_getFlag","setEnabled","isEnabled","setLevel","getLevel","debug","fatal","logconfig","search","logger","api","logging","rebaseURL","findLabel","$label","label","tagName","elementInViewport","rect","docEl","vWidth","innerWidth","clientWidth","vHeight","innerHeight","clientHeight","bottom","escapeRegExp","removeWildcardClass","$targets","$this","ok","hideOrShow","$slave","pattern_name","transition","effect","onComplete","transitions","addURLQueryParameter","fullURL","qstring","newURL","safeClone","$clone","browser","msie","findInclusive","$item","thisArg","T","k","O","kValue","singleBoundJQueryPlugin","pat","$el","pluralBoundJQueryPlugin","jqueryPlugin","none","fade","slide","utils","fun","thisp","res","searchElement","Number","abs","A","mappedValue","curr","callbackfn","_hasOwnProperty","hasDontEnumBug","dontEnums","dontEnumsLength","initialTime","exceptionAreas","lastEvent","trueTime","untouched","inExceptionArea","mouseMoved","live","enteredException","leftException","destroy","startTimer","scrollable","element","vertically_scrollable","horizontally_scrollable","scrollWidth","makeVisibleInScroll","parent_id","absoluteParent","elemTop","elemBottom","viewTop","viewBottom","setPositionAbsolute","offsettop","offsetleft","thiswidth","setleft","settop","z-index","marginLeft","marginTop","positionAncestor","$ancestor","$child","childMarginEdgeLeft","childMarginEdgeTop","ancestorPaddingEdgeLeft","ancestorPaddingEdgeTop","startsWith","endsWith","simplePlaceholder","placeholder_class","hide_placeholder","show_placeholder","prevent_placeholder_submit","placeholder","slideIn","slideOut","Contains","scopedFind","TEXT_NODE","COMMENT_NODE","disable_re","dont_catch_re","dont_catch","patterns","initialized","scan","clear","transformPattern","transform","initPattern","plog","orderPatterns","$match","acc","register","plugin_name","jquery_plugin","p1","ev","trigger_el","injected_el","parser","getOptions","patternName","elOptions","tmpOptions","Registry","mockupParser","initBasePattern","Base","eventCallback","patternProps","child","Surrogate","__super__","each2","c","reinsertElement","stripDiacritics","DIACRITICS","equal","measureScrollbar","$template","MEASURE_SCROLLBAR_TEMPLATE","dim","splitVal","separator","getSideBorderPadding","outerWidth","installKeyUpChangeEvent","installFilteredMouseMove","lastpos","lastMousePosition","x","y","quietMillis","installDebouncedScroll","threshold","isVisible","setSelectionRange","createTextRange","collapse","getCursorInfo","selectionStart","selectionEnd","createRange","moveStart","killEvent","killEventImmediately","measureTextWidth","sizer","fontSize","fontFamily","fontStyle","textTransform","whiteSpace","syncCssClasses","adapter","adapted","replacements","markMatch","term","markup","escapeMarkup","tl","defaultEscapeMarkup","replace_map","/","ajaxUrl","query","select2","ajaxDefaults","deprecated","page","textStatus","errorThrown","hasError","local","dataText","dataItem","process","filtered","datum","childDatum","tags","checkFormatter","formatter","formatterName","countResults","defaultTokenizer","selectCallback","dupe","createSearchChoice","tokenSeparators","cleanupJQueryElements","SuperClass","Select2","KEY","AbstractSelect2","SingleSelect2","MultiSelect2","nextUid","$document","scrollBarDimensions","TAB","ENTER","ESC","SPACE","LEFT","UP","RIGHT","DOWN","SHIFT","CTRL","ALT","PAGE_UP","PAGE_DOWN","HOME","END","BACKSPACE","DELETE","isArrow","isControl","isFunctionKey","Ⓐ","A","À","Á","Â","Ầ","Ấ","Ẫ","Ẩ","Ã","Ā","Ă","Ằ","Ắ","Ẵ","Ẳ","Ȧ","Ǡ","Ä","Ǟ","Ả","Å","Ǻ","Ǎ","Ȁ","Ȃ","Ạ","Ậ","Ặ","Ḁ","Ą","Ⱥ","Ɐ","Ꜳ","Æ","Ǽ","Ǣ","Ꜵ","Ꜷ","Ꜹ","Ꜻ","Ꜽ","Ⓑ","B","Ḃ","Ḅ","Ḇ","Ƀ","Ƃ","Ɓ","Ⓒ","C","Ć","Ĉ","Ċ","Č","Ç","Ḉ","Ƈ","Ȼ","Ꜿ","Ⓓ","D","Ḋ","Ď","Ḍ","Ḑ","Ḓ","Ḏ","Đ","Ƌ","Ɗ","Ɖ","Ꝺ","DZ","DŽ","Dz","Dž","Ⓔ","E","È","É","Ê","Ề","Ế","Ễ","Ể","Ẽ","Ē","Ḕ","Ḗ","Ĕ","Ė","Ë","Ẻ","Ě","Ȅ","Ȇ","Ẹ","Ệ","Ȩ","Ḝ","Ę","Ḙ","Ḛ","Ɛ","Ǝ","Ⓕ","F","Ḟ","Ƒ","Ꝼ","Ⓖ","G","Ǵ","Ĝ","Ḡ","Ğ","Ġ","Ǧ","Ģ","Ǥ","Ɠ","Ꞡ","Ᵹ","Ꝿ","Ⓗ","H","Ĥ","Ḣ","Ḧ","Ȟ","Ḥ","Ḩ","Ḫ","Ħ","Ⱨ","Ⱶ","Ɥ","Ⓘ","I","Ì","Í","Î","Ĩ","Ī","Ĭ","İ","Ï","Ḯ","Ỉ","Ǐ","Ȉ","Ȋ","Ị","Į","Ḭ","Ɨ","Ⓙ","J","Ĵ","Ɉ","Ⓚ","K","Ḱ","Ǩ","Ḳ","Ķ","Ḵ","Ƙ","Ⱪ","Ꝁ","Ꝃ","Ꝅ","Ꞣ","Ⓛ","L","Ŀ","Ĺ","Ľ","Ḷ","Ḹ","Ļ","Ḽ","Ḻ","Ł","Ƚ","Ɫ","Ⱡ","Ꝉ","Ꝇ","Ꞁ","LJ","Lj","Ⓜ","M","Ḿ","Ṁ","Ṃ","Ɱ","Ɯ","Ⓝ","N","Ǹ","Ń","Ñ","Ṅ","Ň","Ṇ","Ņ","Ṋ","Ṉ","Ƞ","Ɲ","Ꞑ","Ꞥ","NJ","Nj","Ⓞ","O","Ò","Ó","Ô","Ồ","Ố","Ỗ","Ổ","Õ","Ṍ","Ȭ","Ṏ","Ō","Ṑ","Ṓ","Ŏ","Ȯ","Ȱ","Ö","Ȫ","Ỏ","Ő","Ǒ","Ȍ","Ȏ","Ơ","Ờ","Ớ","Ỡ","Ở","Ợ","Ọ","Ộ","Ǫ","Ǭ","Ø","Ǿ","Ɔ","Ɵ","Ꝋ","Ꝍ","Ƣ","Ꝏ","Ȣ","Ⓟ","P","Ṕ","Ṗ","Ƥ","Ᵽ","Ꝑ","Ꝓ","Ꝕ","Ⓠ","Q","Ꝗ","Ꝙ","Ɋ","Ⓡ","R","Ŕ","Ṙ","Ř","Ȑ","Ȓ","Ṛ","Ṝ","Ŗ","Ṟ","Ɍ","Ɽ","Ꝛ","Ꞧ","Ꞃ","Ⓢ","S","ẞ","Ś","Ṥ","Ŝ","Ṡ","Š","Ṧ","Ṣ","Ṩ","Ș","Ş","Ȿ","Ꞩ","Ꞅ","Ⓣ","T","Ṫ","Ť","Ṭ","Ț","Ţ","Ṱ","Ṯ","Ŧ","Ƭ","Ʈ","Ⱦ","Ꞇ","Ꜩ","Ⓤ","U","Ù","Ú","Û","Ũ","Ṹ","Ū","Ṻ","Ŭ","Ü","Ǜ","Ǘ","Ǖ","Ǚ","Ủ","Ů","Ű","Ǔ","Ȕ","Ȗ","Ư","Ừ","Ứ","Ữ","Ử","Ự","Ụ","Ṳ","Ų","Ṷ","Ṵ","Ʉ","Ⓥ","V","Ṽ","Ṿ","Ʋ","Ꝟ","Ʌ","Ꝡ","Ⓦ","W","Ẁ","Ẃ","Ŵ","Ẇ","Ẅ","Ẉ","Ⱳ","Ⓧ","X","Ẋ","Ẍ","Ⓨ","Y","Ỳ","Ý","Ŷ","Ỹ","Ȳ","Ẏ","Ÿ","Ỷ","Ỵ","Ƴ","Ɏ","Ỿ","Ⓩ","Z","Ź","Ẑ","Ż","Ž","Ẓ","Ẕ","Ƶ","Ȥ","Ɀ","Ⱬ","Ꝣ","ⓐ","a","ẚ","à","á","â","ầ","ấ","ẫ","ẩ","ã","ā","ă","ằ","ắ","ẵ","ẳ","ȧ","ǡ","ä","ǟ","ả","å","ǻ","ǎ","ȁ","ȃ","ạ","ậ","ặ","ḁ","ą","ⱥ","ɐ","ꜳ","æ","ǽ","ǣ","ꜵ","ꜷ","ꜹ","ꜻ","ꜽ","ⓑ","b","ḃ","ḅ","ḇ","ƀ","ƃ","ɓ","ⓒ","c","ć","ĉ","ċ","č","ç","ḉ","ƈ","ȼ","ꜿ","ↄ","ⓓ","d","ḋ","ď","ḍ","ḑ","ḓ","ḏ","đ","ƌ","ɖ","ɗ","ꝺ","dz","dž","ⓔ","e","è","é","ê","ề","ế","ễ","ể","ẽ","ē","ḕ","ḗ","ĕ","ė","ë","ẻ","ě","ȅ","ȇ","ẹ","ệ","ȩ","ḝ","ę","ḙ","ḛ","ɇ","ɛ","ǝ","ⓕ","f","ḟ","ƒ","ꝼ","ⓖ","g","ǵ","ĝ","ḡ","ğ","ġ","ǧ","ģ","ǥ","ɠ","ꞡ","ᵹ","ꝿ","ⓗ","h","ĥ","ḣ","ḧ","ȟ","ḥ","ḩ","ḫ","ẖ","ħ","ⱨ","ⱶ","ɥ","ƕ","ⓘ","i","ì","í","î","ĩ","ī","ĭ","ï","ḯ","ỉ","ǐ","ȉ","ȋ","ị","į","ḭ","ɨ","ı","ⓙ","j","ĵ","ǰ","ɉ","ⓚ","k","ḱ","ǩ","ḳ","ķ","ḵ","ƙ","ⱪ","ꝁ","ꝃ","ꝅ","ꞣ","ⓛ","l","ŀ","ĺ","ľ","ḷ","ḹ","ļ","ḽ","ḻ","ſ","ł","ƚ","ɫ","ⱡ","ꝉ","ꞁ","ꝇ","lj","ⓜ","m","ḿ","ṁ","ṃ","ɱ","ɯ","ⓝ","n","ǹ","ń","ñ","ṅ","ň","ṇ","ņ","ṋ","ṉ","ƞ","ɲ","ʼn","ꞑ","ꞥ","nj","ⓞ","o","ò","ó","ô","ồ","ố","ỗ","ổ","õ","ṍ","ȭ","ṏ","ō","ṑ","ṓ","ŏ","ȯ","ȱ","ö","ȫ","ỏ","ő","ǒ","ȍ","ȏ","ơ","ờ","ớ","ỡ","ở","ợ","ọ","ộ","ǫ","ǭ","ø","ǿ","ɔ","ꝋ","ꝍ","ɵ","ƣ","ȣ","ꝏ","ⓟ","p","ṕ","ṗ","ƥ","ᵽ","ꝑ","ꝓ","ꝕ","ⓠ","q","ɋ","ꝗ","ꝙ","ⓡ","r","ŕ","ṙ","ř","ȑ","ȓ","ṛ","ṝ","ŗ","ṟ","ɍ","ɽ","ꝛ","ꞧ","ꞃ","ⓢ","s","ß","ś","ṥ","ŝ","ṡ","š","ṧ","ṣ","ṩ","ș","ş","ȿ","ꞩ","ꞅ","ẛ","ⓣ","t","ṫ","ẗ","ť","ṭ","ț","ţ","ṱ","ṯ","ŧ","ƭ","ʈ","ⱦ","ꞇ","ꜩ","ⓤ","u","ù","ú","û","ũ","ṹ","ū","ṻ","ŭ","ü","ǜ","ǘ","ǖ","ǚ","ủ","ů","ű","ǔ","ȕ","ȗ","ư","ừ","ứ","ữ","ử","ự","ụ","ṳ","ų","ṷ","ṵ","ʉ","ⓥ","v","ṽ","ṿ","ʋ","ꝟ","ʌ","ꝡ","ⓦ","w","ẁ","ẃ","ŵ","ẇ","ẅ","ẘ","ẉ","ⱳ","ⓧ","x","ẋ","ẍ","ⓨ","y","ỳ","ý","ŷ","ỹ","ȳ","ẏ","ÿ","ỷ","ẙ","ỵ","ƴ","ɏ","ỿ","ⓩ","z","ź","ẑ","ż","ž","ẓ","ẕ","ƶ","ȥ","ɀ","ⱬ","ꝣ","Ά","Έ","Ή","Ί","Ϊ","Ό","Ύ","Ϋ","Ώ","ά","έ","ή","ί","ϊ","ΐ","ό","ύ","ϋ","ΰ","ω","ς","counter","resultsSelector","prepareOpts","createContainer","liveRegion","role","aria-live","containerId","containerEventName","adaptContainerCssClass","containerCss","containerCssClass","elementTabIndex","dropdown","adaptDropdownCssClass","dropdownCssClass","queryCount","resultsPage","initContainer","highlightUnderEvent","_touchEvent","touchMoved","clearTouchMoved","selectHighlighted","loadMoreIfNeeded","mousewheel","delta","deltaX","deltaY","updateResults","nextSearchTerm","initSelection","monitorSource","maximumInputLength","readonly","autofocus","searchInputPlaceholder","_sync","propertyObserver","disconnect","optionToData","idKey","populateResults","populate","selectable","compound","innerContainer","formatted","sortResults","formatResultCssClass","formatResult","formatMatches","placeholderOption","more","elm","getPlaceholder","getPlaceholderOption","createSearchChoicePosition","observer","MutationObserver","WebKitMutationObserver","MozMutationObserver","mutations","observe","subtree","triggerSelect","choice","triggerChange","details","blurOnChange","isInterfaceEnabled","enabledInterface","enableInterface","_readonly","opened","positionDropdown","bodyOffset","above","changeDirection","resultsListNode","$dropdown","outerHeight","dropHeight","$window","windowWidth","windowHeight","viewPortRight","viewportBottom","dropTop","dropLeft","enoughRoomBelow","enoughRoomAbove","dropWidth","enoughRoomOnRight","aboveNow","focusSearch","dropdownAutoWidth","dropdownCss","shouldOpen","clearDropdownAlignmentPreference","opening","mask","cid","scroll","resize","orient","selectOnBlur","noFocus","that","clearSearch","externalSearch","getMaximumSelectionSize","maximumSelectionSize","ensureHighlightVisible","hb","rb","topOffset","highlight","findHighlightableChoices","moveHighlight","choices","removeHighlight","_touchMoved","countSelectableResults","below","loadMorePadding","postprocessResults","formatLoadMore","items","postRender","queryNumber","lastTerm","showSearchInput","maxSelSize","formatSelectionTooBig","minimumInputLength","formatInputTooShort","showSearch","formatInputTooLong","formatSearching","def","formatAjaxError","formatNoMatches","cancel","highlighted","onSelect","firstOption","initContainerWidth","resolveContainerWidth","focusser","minimumResultsForSearch","shouldFocusInput","isFocused","elementLabel","idSuffix","originalTitle","openOnEnter","altKey","ctrlKey","shiftKey","allowClear","setPlaceholder","removed","isPlaceholderOptionSelected","updateSelection","is_match","noHighlightUpdate","added","cssClass","formatSelection","formatSelectionCssClass","ordered","selectChoice","searchContainer","_this","keydowns","selectedChoice","unselect","resizeSearch","clearPlaceholder","getMaxSearchWidth","getVal","addSelectedChoice","tokenizer","closeOnSelect","enableChoice","enabledItem","disabledItem","setVal","minimumWidth","containerLeft","searchWidth","sideBorderPadding","buildChangeDetails","onSortStart","onSortEnd","multiple","allowedMethods","valueMethods","propertyMethods","methodsMap","multi","single","selectedObject","currentSearchTerm","supportsTouchEvents","msMaxTouchPoints","locales","limit","pageNumber","util","abstract","drag","$event","$special","distance","datakey","dontstart","textselect","touched","dd","propagates","mousedown","interactions","interaction","dragging","hijack","droppable","ia","mode","cancelled","subject","update","startX","startY","originalX","originalY","offsetX","offsetY","available","member","unselectable","locate","$dispatch","touchHooks","touchstart","touchmove","touchend","touchcancel","touches","changedTouches","draginit","dragstart","dragend","tolerance","anyactive","winner","tolerate","$elem","posi","modes","intersect","overlap","fit","middle","drp","drg","xy","dropinit","dropstart","dropend","initializeValues","initialValues","seldefaults","initializeTags","substr","allowNewItems","initializeOrdering","orderable","$container","initializeSelect2","$select2","vocabularyUrl","queryTerm","page_limit","dataIds","haveResult","vals","o","$hidden","$orig","loadScript","jsDiv","PasswordStrength","zxcvbn","score","$pwfield","inp","$pwmeter","timeoutId","I18N","currentLanguage","storage","catalogs","ttl","localStorage","_setCatalog","domain","language","catalog","_storeCatalog","setItem","stringify","getUrl","loadCatalog","getItem","MessageFactory","msgid","keywords","msgstr","regexp","keyword","_t","i18n","Picker","PickerConstructor","ELEMENT","NAME","COMPONENT","OPTIONS","createWrappedComponent","P","component","STATE","CLASSES","frame","holder","prepareElement","$ELEMENT","SETTINGS","format","editable","handleKeydownEvent","aria","haspopup","owns","prepareElementRoot","$root","prepareElementHolder","$holder","keydown","focus.toOpen","handleFocusToOpenEvent","focused","mousedown click","$target","targetData","targetDisabled","navDisabled","getActiveElement","nav","closeOnClear","prepareElementHidden","hiddenName","hiddenPrefix","hiddenSuffix","_hidden","formatSubmit","focusPickerOnceOpened","IS_DEFAULT_THEME","supportsTransitions","keycode","isKeycodeDelete","klasses","klass","PickerInstance","$node","readOnly","picker","containerHidden","onStart","onRender","onStop","onOpen","onClose","onSet","isUsingDefaultTheme","entireComponent","dontGiveFocus","$html","getScrollbarWidth","keycodeToMove","go","giveFocus","thing","thingItem","thingValue","thingIsObject","thingObject","muted","formats","internal","thingName","thingMethod","namesCount","_trigger","methodList","theme","$outer","widthWithoutScroll","$inner","widthWithScroll","attribute","ariaSet","ariaAttr","attrVal","groupObject","loopObjectScope","nodesList","lead","number","scope","digits","isDate","isInteger","getDate","Component","action","componentData","DatePicker","calendar","elementValue","elementDataValue","valueString","formatString","isRTL","direction","view","collectionDisabled",40,38,39,37,"timeChange","highlightedObject","targetDate","year","month","date","selectMonth","selectYear","includeToday","buttonToday","DAYS_IN_WEEK","WEEKS_IN_CALENDAR","calendarItem","isInfiniteValue","getFullYear","getMonth","day","getDay","from","createDate","withinRange","dateUnit","overlapRanges","two","rel","setDate","navigate","targetDateObject","targetYear","targetMonth","isTargetArray","isTargetObject","viewsetObject","setHours","measure","viewset","dateObject","validate","hasEnabledBeforeTarget","hasEnabledAfterTarget","reachedMin","reachedMax","originalDateObject","isFlippedBase","minLimitObject","maxLimitObject","hasEnabledWeekdays","dateTime","dateToVerify","isDisabledMatch","dateToDisable","firstDay","inverted","parsingObject","formattingLabel","formatLength","yyyy","yy","mm","d","getWordLengthFromCollection","word","getFirstWordLength","ddd","weekdaysShort","dddd","weekdaysFull","mmm","monthsShort","mmmm","monthsFull","itemObject","isDateExact","isDateOverlap","flipEnable","deactivate","datesToDisable","disabledItems","unitToDisable","matchFound","activate","datesToEnable","disabledItemsCount","unitToEnable","disabledUnit","isExactRange","isOpen","nowObject","disabledCollection","tableHead","fullCollection","weekdays","showWeekdaysFull","createMonthNav","controls","labelMonthNext","labelMonthPrev","createMonthLabel","monthsCollection","showMonthsShort","selectMonths","loopedMonth","labelMonthSelect","createYearLabel","focusedYear","numberYears","selectYears","minYear","maxYear","lowestYear","highestYear","availableYears","neededYears","loopedYear","labelYearSelect","rowCounter","shiftDateBy","isSelected","isHighlighted","isDisabled","formattedDate","infocus","outfocus","activedescendant","table","today","buttonClear","buttonClose","footer","navPrev","navNext","TimePicker","clock","$pickerHolder","$viewset","vendors","vendor","animations","HOURS_IN_DAY","MINUTES_IN_HOUR","HOURS_TO_NOON","MINUTES_IN_DAY","clockItem","getHours","getMinutes","hour","mins","createTime","timeUnit","isBelowInterval","nowMinutes","isValueInteger","minTime","timeObject","timeToVerify","timeToDisable","minLimit","maxLimit","minutes","isPM","parseValue","h","hh","H","HH","isTimeExact","isTimeOverlap","timesToDisable","timesToEnable","isRangeMatched","loopedTime","timeMinutes","formattedTime","formatLabel","listItem","PickADate","timezone","classWrapperName","classSeparatorName","classDateName","classDateWrapperName","classTimeName","classTimeWrapperName","classTimezoneName","classTimezoneWrapperName","classClearName","placeholderDate","placeholderTime","placeholderTimezone","isFalse","dateValue","timeValue","$wrapper","$date","pickadate","$time","updateValue","$separator","pickatime","$timezone","patternSelect2","defaultTimezone","isInList","$clear","formatDate","formatTime","Overlay","conf","closers","overlay","maskConf","tools","expose","uid","color","closeOnClick","closeOnEsc","jq","isOpened","eff","effects","oneInstance","instances","oWidth","oHeight","getMask","getOverlay","getTrigger","getClosers","getConf","addEffect","loadFn","closeFn","closeSpeed","fixed","userAgent","appVersion","onLoad","onBeforeLoad","Scrollable","itemWrap","vertical","circular","getIndex","getSize","getItems","getNaviButtons","getRoot","getItemWrap","clonedClass","move","seekTo","begin","addItem","cloned1","cloned2","onBeforeSeek","hidden_parents","disabledClass","initialIndex","wheelSpeed","touch","ontouchstart","ontouchmove","keyboard","activeClass","Tabs","paneSelector","tabs","panes","tab","firstRender","rotate","initialEffect","getTabs","getPanes","getCurrentPane","getCurrentTab","history","onBeforeClick","onClick","slideUpSpeed","slideDownSpeed","animating","default","fadeOutSpeed","fadeInSpeed","nextPane","currentPane","setIframeLocation","links","idoc","viewport","tool","maskId","loadSpeed","startOpacity","exposed","loaded","overlayIndex","onBeforeClose","isLoaded","fully","getExposed","getPosition","tip","Tooltip","shown","pretimer","title","tipAttr","isInput","isWidget","predelay","cancelDefault","layout","tipClass","isShown","tooltip","getTip","fadeIE","widget","hideFn","dayAm","zeropad","D","flags","LABELS","shortDays","days","shortMonths","months","formatters","tmpTag","integer","isSameDay","d1","d2","parseDate","Dateinput","currYear","currMonth","currDay","onShow","KEYS","weeks","addMonth","pm","nm","yearNow","labels","yearRange","monthSelector","yearSelector","setValue","week","prevDays","sunday","beg","setMin","setMax","addDay","amount","daysInTargetMonth","targetDay","addYear","getInput","getCalendar","getValue","dateFormat","dateinput","addFormatter","localize","$0","newTmplItem","parentItem","newItem","_wrap","tmpl","calls","tiCalls","nest","tiNest","tiWrap","tiHtml","tiUpdate","_ctnt","itemKey","wrappedItems","newTmplItems","build","tmplItem","nested","frag","tmplItmAtt","storeTmplItems","unencode","buildTmplFn","slash","fnargs","parens","exprAutoFnDetect","$2","updateWrapped","wrapped","htmlExpr","outerHtml","processItemKey","cloneTmplItem","keySuffix","newClonedItems","pntKey","pntItem","pntNode","cloneIndex","textOnly","coll","appendToTmplItems","oldManip","topTmplItem","tmplItems","dmArgs","fragClone","afterManip","topLevel","encode","if","else","=","!","fmt","shortWeekdays","Re","widgetSaveToRfc5545","tz","field","i18nweekdays","yearlyType","occurrences","rtemplate","rrule","human","fields","dailyInterval2","weeklyInterval2","weeklyWeekdaysHuman","monthlyInterval2","monthlyType","monthlyDayOfMonth1Human","monthlyDayOfMonth2","monthlyWeekdayOfMonth1Human","orderIndexes","monthlyWeekdayOfMonth2","yearlyInterval2","yearlyDayOfMonth1Human","yearlyWeekdayOfMonth1Human","yearlyWeekdayOfMonth2","yearlyWeekdayOfMonth3","yearlyWeekdayOfMonth4","rangeType","rangeByOccurrences1Human","rangeByOccurrences2","rangeByEndDateHuman","longDateFormat","ical","RDATE","including","EXDATE","except","description","parseLine","icalline","parameters","cleanDates","dates","splitDates","parseIcal","icaldata","nextline","lines","line","widgetLoadFromRfc5545","matchIndex","radiobutton","byday","bymonth","bymonthday","weekday","unsupportedFeatures","RRULE","noRule","bysetpos","noTemplateMatch","multipleDayOfMonth","messagearea","RecurrenceInput","textarea","displayFields","occurrenceExclude","occurrenceInclude","occurrenceDelete","occurrenceAdd","datevalue","errorarea","additionalDate","alreadyAdded","loadOccurrences","startdate","rfc5545","occurrenceDiv","dict","ajaxURL","ajaxContentType","occurrence","alert","getField","realField","findStartDate","startField","startFieldYear","startFieldMonth","startFieldDay","findEndDate","endField","enddate","findIntField","fieldName","loadData","dayindex","recurrenceOn","RFC5545","displayActivate","edit_rules","recurrenceOff","displayUnactivate","add_rules","checkFields","startDate","endDate","noRepeatEvery","noRepeatOn","noEndAfterNOccurrences","noEndDate","pastEndDate","save","updateOccurances","orderedWeekdays","formOverlay","shortDateFormat","recurrenceinput","ributtonExtraClass","hasRepeatForeverButton","daily","mondayfriday","weekly","monthly","yearly","setTemplates","templates","titles","delete_rules","refresh","preview","addDate","recurrenceType","dailyInterval1","weeklyInterval1","weeklyWeekdays","monthlyInterval1","monthlyDayOfMonth1","monthlyDayOfMonth3","monthlyWeekdayOfMonth1","monthlyWeekdayOfMonth3","monthlyRepeatOn","yearlyInterval1","yearlyDayOfMonth1","yearlyDayOfMonth2","yearlyDayOfMonth3","yearlyWeekdayOfMonth1","yearlyRepeatOn","rangeNoEnd","rangeByOccurrences1","rangeByEndDate","recurrenceStart","exclude","OCCURRENCETMPL","DISPLAYTMPL","FORMTMPL","Recurrence","localization","configuration","QueryHelper","searchParam","batchSize","baseCriteria","sort_on","sort_order","pathDepth","browsing","basePath","valid","getCurrentPath","currentPath","getCriterias","useBaseCriteria","additionalCriterias","criterias","searchPath","getBatch","selectAjax","getQueryData","total","batch","operation","Loading","backdrop","closable","generateId","parseBodyTag","txt","setId","loading","getAuthenticator","featureSupport","dragAndDrop","fileApi","FileReader","pushState","BorderDropHint","DragAndDropHandler","DragElement","ElementsRenderer","FolderElement","GhostDropHint","HitAreasGenerator","JqTreeWidget","KeyHandler","MouseWidget","Node","NodeElement","Position","SaveStateHandler","ScrollHandler","SelectNodeHandler","SimpleWidget","VisibleNodeIterator","get_json_stringify_function","html_escape","isInt","__version__","_indexOf","__slice","__hasProp","__extends","ctor","_deinit","_init","widget_class","widget_name","callFunction","createWidget","destroyWidget","getDataKey","getWidgetData","data_key","existing_widget","_i","_len","_results","function_name","widget_function","argument1","_super","is_mouse_handled","_mouseDown","_touchStart","is_mouse_started","mouse_delay","_mouse_delay_timer","_is_mouse_delay_met","mouse_down_info","_handleMouseDown","_getPositionInfo","position_info","_handleMouseUp","_mouseCapture","_handleStartMouse","_mouseMove","_touchMove","_mouseUp","_touchEnd","_startMouseDelayTimer","_handleMouseMove","_mouseDrag","_mouseStart","page_x","page_y","original_event","_mouseStop","setMouseDelay","Tree","getName","strings","nameToIndex","_ref","BEFORE","AFTER","INSIDE","NONE","is_root","node_class","setData","id_mapping","tree","initFromData","addChildren","addNode","node_data","children_data","addChild","loadFromData","removeChildren","_setParent","addChildAtPosition","addNodeToIndex","_removeChild","getChildIndex","removeNodeFromIndex","hasChildren","isFolder","load_on_demand","iterate","_iterate","moveNode","moved_node","target_node","isParentOf","getData","getDataFromNodes","tmp_node","getNodeByName","addAfter","node_info","child_index","addBefore","addParent","new_parent","original_parent","getNodeById","node_id","getPreviousSibling","previous_index","getNextSibling","next_index","getNodesByProperty","f","tree_widget","opened_icon_element","createButtonElement","openedIcon","closed_icon_element","closedIcon","from_node","renderFromNode","renderFromRoot","renderNode","li","parent_node_element","previous_node","createLi","attachNodeData","getUl","$element","createDomElements","node_element","_getNodeElementForNode","is_root_node","is_open","ul","createUl","class_string","createFolderLi","createNodeLi","onCreateLi","button_classes","button_link","escaped_name","folder_classes","icon_element","title_span","getButtonClasses","getFolderClasses","escapeIfNecessary","li_classes","select_node_handler","isNodeSelected","autoEscape","autoOpen","saveState","useContextMenu","onCanSelectNode","onSetStateFromStorage","onGetStateFromStorage","onIsMoveHandle","onCanMove","onCanMoveTo","onLoadFailed","dataUrl","nodeClass","keyboardSupport","openFolderDelay","closeNode","openNode","getTree","selectNode","_selectNode","must_toggle","canSelect","deselected_node","openParents","save_state_handler","_deselectCurrentNode","_triggerEvent","getSelectedNode","addToSelection","toJson","parent_node","_loadData","loadDataFromUrl","on_finished","_loadDataFromUrl","reload","url_info","addLoadingClass","handeLoadData","loadDataFromUrlInfo","parseUrlInfo","removeLoadingClass","folder_element","getLi","_getDataUrlInfo","selected_nodes_under_parent","tree_data","getSelectedNodesUnder","removeFromSelection","_refreshElements","_initTree","isDragging","dnd_handler","_openNode","doOpenNode","_node","_slide","_on_finished","_loadFolderOnDemand","_saveState","is_dragging","refreshHitAreas","addNodeAfter","new_node_info","existing_node","new_node","addNodeBefore","addParentNode","removeNode","appendNode","is_already_folder_node","prependNode","updateNode","id_is_changed","renderer","_selectCurrentNode","position_index","getStateFromStorage","getSelectedNodes","deselect","scrollToNode","scroll_handler","getState","setState","setOption","getVersion","is_initialized","key_handler","_initData","_click","dblclick","_dblclick","_contextmenu","deinit","data_url","getUrlFromString","selected_node_id","_getNodeIdToBeSelected","selected_node","getNodeIdToBeSelected","_openNodes","max_level","restoreState","click_target","_getClickTarget","click_event","$button","_getNode","$li","_getNodeElement","$div","mouseCapture","mouseStart","mouseDrag","checkScrolling","mouseStop","event_name","testGenerateHitAreas","moving_node","current_item","generateHitAreas","hit_areas","getSpan","addDropHint","doOpen","getButton","doClose","json_escapable","json_meta","json_quote","json_str","\b","\t","\f","charCodeAt","supportsLocalStorage","getCookieName","cookie","json_data","_loadFromStorage","_parseState","getOpenNodeIds","getSelectedNodeIds","open_nodes","selected_node_ids","testSupport","sessionStorage","removeItem","_error","_supportsLocalStorage","selected_nodes","selected_single_node","include_children","hovered_area","$ghost","mustCaptureElement","drag_element","can_move_to","findHoveredArea","canMoveToArea","stopOpenFolderTimer","mustOpenFolderTimer","startOpenFolderTimer","updateDropHint","removeHover","removeDropHint","position_name","moveItem","removeHitAreas","previous_ghost","hit_areas_generator","getTreeDimensions","generate","dimensions","folder","openFolder","open_folder_timer","doMove","previous_parent","move_info","do_move","is_first_node","_iterateNode","next_node","children_length","must_iterate_inside","handleFirstNode","handleOpenFolder","handleClosedFolder","handleNode","handleAfterOpenFolder","current_node","tree_bottom","positions","last_top","getTop","addPosition","previous_top","generateHitAreasForGroup","positions_in_group","area_height","area_top","position_count","round","offset_x","offset_y","$tree","moveAfter","moveBefore","moveInsideOpenFolder","moveInside","$hint","_initScrollParent","$scroll_parent","getParentWithOverflow","setDocumentAsScrollParent","css_values","hasOverFlow","css_value","scroll_parent_top","_handleScrollingWithScrollParent","_handleScrollingWithDocument","distance_bottom","distance_top","tree_top","isScrolledIntoView","element_bottom","element_top","view_bottom","view_top","handleKeyDown","moveDown","moveLeft","moveRight","moveUp","getNextNode","getPreviousNode","next_sibling","previous_sibling","getLastChild","last_child","optionKey","moved","RelatedItems","rootPath","homeText","selectableTypes","treeVocabularyUrl","resultTemplate","resultTemplateSelector","selectionTemplate","selectionTemplateSelector","breadCrumbsTemplate","breadCrumbsTemplateSelector","breadCrumbTemplate","breadCrumbTemplateSelector","setupAjax","applyTemplate","tpl","_item","activateBrowsing","setBreadCrumbs","deactivateBrowsing","browseTo","searchText","itemPath","itemsHtml","$crumbs","$treeSelect","$treeContainer","selectedNode","treePattern","Title","UID","is_folderish","_loaded","treeQuery","$browsePath","selectItem","deselectItem","isSelectable","portal_type","folderish","$parent","relatedItems","Criteria","indexWidth","classBetweenDtName","classIndexName","classOperatorName","classValueName","classRemoveName","classResultsName","classDepthName","indexes","indexGroups","advanced","$remove","$index","removeValue","createOperator","createClear","appendOperators","$operator","operations","operators","createValue","convertPathOperators","oval","createPathOperators","resetPathOperators","newOperator","removeOperator","createDepthSelect","$value","patternPickadate","startwrap","val1","val2","startdt","endwrap","enddt","pathAndDepth","patternRelateditems","folderTypes","trimmedValue","removeClear","buildQueryPart","ival","istr","ostr","vstrbase","vstrlistbase","vstr","getDepthString","getJSONListStr","varr","vval","out","QueryString","indexOptionsUrl","previewURL","previewCountURL","classSortLabelName","classSortReverseName","classSortReverseLabelName","classPreviewCountWrapperName","classPreviewResultsWrapperName","classPreviewWrapperName","classPreviewName","classPreviewTitleName","classPreviewDescriptionName","classSortWrapperName","showPreviews","$criteriaWrapper","$sortWrapper","$previewWrapper","createCriteria","createSort","refreshPreviewEvent","_doupdates","_updateTimeout","doupdates","existingSortOn","existingSortOrder","$sortOn","$sortOrder","reversed","sortOn","_previewXhr","$previewPane","querypart","stat","criteriastrs","jsonstr","defs","modules","dependencies","definition","fragments","fi","privateModules","AMDLC_TESTS","relativePosition","targetRect","targetW","targetH","findBestRelativePosition","constrainRect","rels","inflate","cropRect","x1","y1","x2","y2","clamp","clampRect","fixedSize","underflowX1","underflowY1","overflowX2","overflowY2","cx2","cy2","fromClientRect","clientRect","Promise","_state","_value","_deferreds","doResolve","me","asap","onFulfilled","onRejected","newValue","finale","Handler","reason","ex","immediateFn","setImmediate","race","requestAnimationFrame","featurefill","requestAnimationFrameFunc","wrappedSetTimeout","wrappedSetInterval","wrappedClearTimeout","wrappedClearInterval","requestAnimationFramePromise","setEditorTimeout","editor","setEditorInterval","Delay","addEvent","capture","deepPath","mouseEventRe","bindOnReady","eventUtils","readyHandler","domLoaded","waitForDomLoaded","tryScroll","EventUtils","executeHandlers","callbackList","hasFocusIn","hasMouseEnterLeave","mouseEnterLeave","eventExpandoPrefix","defaultNativeHandler","fakeName","nativeHandler","ci","eventMap","clean","keyLocation","layerX","layerY","webkitMovementX","webkitMovementY","matchMediaQuery","matchMedia","webkit","ie","ie11","ie12","gecko","mac","iDevice","android","phone","tablet","windowsPhone","buildNumber","appName","URL","createObjectURL","contentEditable","iOS","transparentSrc","caretAfter","getSelection","documentMode","ceFalse","desktop","Env","Arr","whiteSpaceRegExp","makeMap","delim","sp","ns","cn","scn","de","createNS","onCreate","walk","explode","_addCacheSuffix","cacheSuffix","Tools","isDefined","createFragment","fragDoc","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","lastParent","newWrapper","siblingName","firstSibling","appendHooks","targetHooks","skipUniques","numericCssMap","booleanMap","cssFix","hook","camel","dashed","removeProperty","host","existingClassName","classState","docElm","overrideDefaults","sub","maxlength","maxLength","schema","toHex","hex","encodingItems","validStyles","invalidStyles","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","getValidStyles","getInvalidStyles","compress","noJoin","canCompress","compress2","isEncoded","decode","keep_slashes","processUrl","url2","url3","str2","allow_script_urls","scriptUrl","allow_svg_data_urls","urlConverter","urlConverterScope","url_converter","url_converter_scope","elementName","serializeStyles","styleList","isValid","styleMap","startNode","rootNode","findSibling","startName","findPreviousNode","prev2","Range","dom","setStart","_setEndPoint","TRUE","setEnd","FALSE","setStartBefore","setStartAfter","setEndBefore","setEndAfter","ts","END_CONTAINER","START_CONTAINER","END_OFFSET","START_OFFSET","collapsed","selectNodeContents","compareBoundaryPoints","sc","so","ec","eo","rsc","startContainer","rso","startOffset","rec","endContainer","reo","endOffset","_compareBoundaryPoints","deleteContents","_traverse","extractContents","EXTRACT","cloneContents","CLONE","insertNode","nn","splitText","surroundContents","cloneRange","commonAncestorContainer","_getSelectedNode","_isCollapsed","containerA","offsetA","containerB","offsetB","offsetC","cmnRoot","childA","childB","findCommonAncestor","st","how","depthDiff","endNode","ep","endContainerDepth","startContainerDepth","_traverseSameContainer","_traverseCommonStartContainer","_traverseCommonEndContainer","_traverseCommonAncestors","cnt","xferNode","deleteData","_traverseFullySelected","endAncestor","endIdx","_traverseRightBoundary","previousSibling","startAncestor","startIdx","_traverseLeftBoundary","clonedParent","prevSibling","clonedChild","clonedGrandParent","isFullySelected","_traverseNode","isLeft","txtValue","newNodeValue","oldNodeValue","newNode","toStringIE","outerText","START_TO_START","START_TO_END","END_TO_END","END_TO_START","nativeDecode","buildEntitiesLookup","radix","chr","entity","lookup","baseEntities","namedEntities","reverseEntities","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap",128,130,131,132,133,134,135,136,137,138,139,140,142,145,146,147,148,149,150,151,152,153,154,155,156,158,159,"<",">","&",""","'","Entities","encodeRaw","encodeAllRaw","encodeNumeric","encodeNamed","entities","getEncodeFunc","encodeNamedAndNumeric","encodeCustomNamed","named","numeric","appendToHead","loadedCallback","errorCallback","passed","callbacks","failed","isOldWebKit","webKitChunks","testCallback","waitCallback","maxLoadTime","waitForWebKitLinkLoaded","styleSheet","owner","styleSheets","ownerNode","owningElement","link","waitForGeckoLinkLoaded","cssRules","sheet","loadedStates","idCount","onerror","Styles","TreeWalker","StyleSheetLoader","setupAttrHooks","domUtils","keepUrlHook","keepValues","keep_values","$elm","serializeStyle","parseStyle","updateInternalStyleAttr","normalized","lastNodeType","DOMUtils","blockElementsMap","files","stdMode","isIE","boxModel","compatMode","styleSheetLoader","boundEvents","fixDoc","ownEvents","getBlockElements","isBlock","simpleSelectorRe","$$","getCustomElements","getAttribs","setAttrib","getAttrib","root_element","getViewPort","rootElm","getRect","getPos","getStyle","getParent","getParents","selectorVal","getNext","_findSib","getPrev","elms","parentElm","newElm","setAttribs","setHTML","createHTML","outHtml","keepChildren","setStyle","update_styles","setStyles","removeAllAttribs","removeAttributeNode","originalValue","onSetAttrib","attrElm","attrName","attrValue","defaultVal","offsetLeft","offsetTop","addStyle","styleElm","DOM","addedStyles","loadCSS","recalc","cls","canHaveHTML","getOuterHTML","setOuterHTML","referenceNode","oldElm","rename","attrNode","pe","ps","rgbVal","attrRegExp","walker","brCount","getNonEmptyElements","createRng","splitElm","replacementElm","trimNode","surroundedBySpans","previousIsSpan","nextIsSpan","trimmedLength","bef","aft","pa","getContentEditable","getContentEditableParent","isChildOf","dumpRng","ScriptLoader","QUEUED","LOADING","LOADED","states","scriptLoadedCallbacks","queueLoadedCallbacks","isDone","markDone","loadQueue","loadScripts","execScriptLoadedCallbacks","loadingScripts","AddOnManager","urls","requireLangPack","languages","languageLoad","addOn","createUrl","resource","addComponents","pluginName","pluginUrl","addOnUrl","loadDependencies","newUrl","baseURL","PluginManager","ThemeManager","isNodeType","matchNodeNames","matchStyleValues","cssValue","hasPropValue","propValue","hasAttributeValue","isBogus","hasAttribute","hasContentEditableState","isText","isComment","isBr","isContentEditableTrue","isContentEditableFalse","isZwsp","ZWSP","NodeType","Zwsp","isCaretContainerBlock","isCaretContainerInline","isCaretContainer","insertInline","textNode","endsWithCaretContainer","startsWithCaretContainer","insertBlock","blockName","blockNode","caretContainerNode","CaretContainer","getEndChild","RangeUtils","rng","collectSiblings","end_node","findEndPoint","walkBoundary","start_node","ancestor","startPoint","endPoint","hasChildNodes","normalizeEndPoint","isTableCell","hasBrBeforeAfter","hasContentEditableFalseParent","isPrevNode","findTextNodeRelative","lastInlineElement","parentBlockContainer","isAfterNode","nonEmptyElementsMap","directionLeft","findClosestIeRange","rects","elementFromPoint","moveToElementText","getClientRects","moveToPoint","compareRanges","rng1","rng2","duplicate","getCaretRangeFromPoint","point","caretPositionFromPoint","offsetNode","caretRangeFromPoint","getNode","isSameElementPath","startElm","getBody","lastPath","lastRng","getDoc","nativeRng","fakeRng","getRng","getStart","isCollapsed","nodeChanged","selectionChange","disable_nodechange","root_node","typeLookup","#text","#comment","#cdata","#pi","#doctype","#document-fragment","selfAttrs","selfAttr","cloneAttrs","shortEnded","ref_node","compileSchema","arrayToMap","ni","attributesOrder","globalAttributes","dummyObj","addAttrs","schemaItem","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","mapCache","compileElementMap","createLookupTable","default_value","extendWith","patternToRegExp","addValidElements","validElements","ei","ai","al","attrData","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","required","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","patternElements","setValidElements","schemaItems","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","rule","inline","cloneName","customElementsMap","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","getElementRule","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","validClasses","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","textInlineElementsMap","specialElements","verify_html","valid_elements","valid_styles","invalid_styles","valid_classes","img","custom_elements","valid_children","extended_valid_elements","invalid_elements","getValidClasses","getBoolAttrs","getTextBlockElements","getTextInlineElements","getShortEndedElements","getSelfClosingElements","getMoveCaretBeforeOnEnterElements","getWhiteSpaceElements","getSpecialElements","isValidChild","attrPatterns","Schema","findEndTag","tokenRegExp","shortEndedElements","SaxParser","fix_self_closing","processEndTag","parseAttribute","val3","attrRule","trimRegExp","fillAttrsMap","isInternalElement","validAttributesMap","validAttributePatterns","filteredUrlAttrs","decodeURIComponent","scriptUriRegExp","allow_html_data_urls","dataUriRegExp","attrList","endRegExp","removeInternalElements","isShortEnded","elementRule","isValidElement","attribsValue","anyAttributesRequired","selfClosing","fixSelfClosing","self_closing_elements","remove_internals","allow_conditional_comments","comment","cdata","doctype","pi","fixInvalidChildren","newParent","currentNode","tempNode","childNode","nonEmptyElements","nonSplitableElements","textBlockElements","nextNode","filterNode","nodeFilters","attributeFilters","matchedNodes","matchedAttributes","root_name","addNodeFilter","addAttributeFilter","addRootBlocks","rootBlockNode","startWhiteSpaceRegExp","endWhiteSpaceRegExp","rootBlockName","blockElements","forced_root_block_attrs","removeWhitespaceBefore","textNodeNext","textVal","cloneAndExcludeBlocks","fl","isInWhiteSpacePreservedElement","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","whiteSpaceElements","invalidChildren","forced_root_block","attrFiltersLen","invalid","isRootContent","remove_trailing_brs","prevName","allow_html_in_named_anchor","classList","classValue","validClassesMap","indent","indentBefore","indentAfter","htmlOutput","indent_before","indent_after","entity_encoding","element_format","getContent","Writer","sortedAttrs",3,8,7,10,4,11,"inner","DomParser","Serializer","trimTrailingBr","brNode1","brNode2","tempAttrs","trimHtml","trimContentRegExp","getTrimmedContent","endTagIndex","matchLength","bogusAllRegExp","addTempAttr","htmlParser","internalName","cleanup","fix_list_elements","impl","oldDoc","htmlSerializer","implementation","createHTMLDocument","importNode","no_events","onPreProcess","getInner","onPostProcess","addRules","rules","setRules","Selection","checkRng","endIndex","inside","parentElement","compareEndPoints","getRange","ieRange","textNodeOffset","domRange","tmpRange","element2","bookmark","getBookmark","moveToBookmark","getIndexes","getBookmarkEndPoint","ctrl","resolveIndexes","setBookmarkEndPoint","moveRng","setEndPoint","createControlRange","addElement","addRange","marker","tmpRng","ieRng","ctrlRng","ctrlElm","getRangeAt","SPACEBAR","modifierPressed","metaKeyPressed","VK","isResizable","object_resizing","resizeGhostElement","proportional","resizeHelperX","resizeHelperY","screenX","screenY","selectedHandle","startW","startH","selectedElm","resize_img_proportional","ratio","selectedElmGhost","startPos","resizeHelper","selectedElmX","selectedElmY","rootElement","startScrollWidth","startScrollHeight","resizeStarted","endGhostResize","setSizeProp","editableDoc","rootDocument","showResizeRect","targetElm","mouseDownHandleName","mouseDownEvent","targetWidth","targetHeight","hideResizeRect","unbindResizeHandleEvents","detachResizeStartListener","resizeHandles","startDrag","unSelectabe","data-mce-bogus","handleElm","updateResizeRect","isChildOrEqual","controlElm","disableGeckoResize","getEnd","resizeNativeStart","corner","cornerX","cornerY","relativeX","relativeY","lastMouseDownEvent","nativeControlSelect","execCommand","controlSelect","nw","ne","se","sw","rootClass","contentStyles","delayedSelect","throttledUpdateResizeRect","or","and","curry","tempArgs","isCaretCandidate","isInvalidTextElement","isAtomicInline","isTable","isInEditable","isAtomicContentEditableFalse","isAtomic","isEditableCaretCandidate","toStart","rect1","rect2","isValidOverflow","clientRect1","clientRect2","isAbove","isBelow","isRight","containsXY","isExtendingChar","ch","extendingChars","Fun","CaretCandidate","ClientRect","ExtendingChar","isWhiteSpace","isHiddenWhiteSpaceRange","isNotPre","getCaretPositionClientRects","caretPosition","getBrClientRect","brNode","nbsp","clientRects","collapseAndInflateWidth","addUniqueAndValidRect","addCharacterOffset","beforeNode","isAtEnd","resolveIndex","isValidElementCaretCandidate","CaretPosition","isAtStart","toRange","isFloated","fromRangeStart","fromRangeEnd","DomUtils","normalizedParent","getChildNodes","normalizedTextOffset","targetValue","normalizedNodeIndex","numTextFragments","createPathItem","outputOffset","resolvePathItem","findTextPosition","dataLen","targetOffset","CaretBookmark","BookmarkManager","normalizeTableCellSelection","moveEndPoint","getLocation","getPoint","findAdjacentContentEditableFalseElm","tridentSel","pasteHTML","data-mce-type","keep","restoreEndPoint","appendData","addBogus","resolveCaretPositionBookmark","setRng","isBookmarkNode","TridentSelection","ControlSelection","serializer","bookmarkManager","controlSelection","setCursorLocation","_moveEndPoint","whiteSpaceBefore","whiteSpaceAfter","tmpElm","getSel","htmlText","setContent","caretNode","createContextualFragment","real","startElement","endElement","lastFocusBookmark","w3c","tryCompareBoundaryPoints","sourceRange","destinationRange","rangeCount","selectedRange","explicitRange","removeAllRanges","setBaseAndExtent","setNode","skipEmptyTextNodes","forwards","getSelectedBlocks","endElm","selectedBlocks","isForward","anchorRange","focusRange","anchorNode","focusNode","anchorOffset","focusOffset","selectorChanged","currentSelectors","selectorChangedData","matchedSelectors","getScrollContainer","scrollContainer","scrollIntoView","alignToTop","viewPort","viewPortY","viewPortH","getWin","placeCaretAt","ElementUtils","node1","node2","attribs","compareObjects","obj1","obj2","getCssText","removeVars","previewElm","parentFontSize","previewStyles","previewCss","preview_styles","block","addPostProcessHook","postProcessHooks","postProcess","hasPreSibling","pre","isPre","blocks","joinPre","pre1","pre2","Preview","Hooks","ed","isTextBlock","isInlineBlock","isCaretNode","defaultFormats","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","ceFalseOverride","textAlign","defaultBlock","aligncenter","alignright","alignjustify","bold","italic","underline","textDecoration","exact","strikethrough","forecolor","remove_similar","hilitecolor","backgroundColor","fontname","fontsize","fontsize_class","blockquote","subscript","superscript","onmatch","onformat","vars","removeformat","block_expand","addKeyboardShortcuts","addShortcut","mixed","unregister","getTextDecoration","decoration","processUnderlineAndColor","setElementFormat","replaceVars","styleVal","adjustSelectionToVisibleSelection","findSelectionEnd","newEnd","applyRngStyle","node_specific","wrapName","wrapElm","newWrappers","rangeUtils","lastContentEditable","isEq","currentWrapElm","matchNode","formatList","getChildCount","isWhiteSpaceNode","mergeStyles","matchName","childCount","removeFormat","merge_with_parents","merge_siblings","mergeSiblings","getNonWhiteSpaceSibling","expandRng","performCaretAction","curSelNode","forcedRootBlock","similar","findFormatRoot","formatRoot","wrapAndSplit","lastClone","firstClone","formatRootParent","splitToFormatRoot","removeRngStyle","getContainer","matchItems","item_name","normalizeStyleValue","matchParents","matchAll","matchedFormatNames","checkedMap","canApply","formatChanged","currentFormats","formatChangeData","matchedFormats","str1","findParentContainer","isBogusBr","findLeaf","findParentContentEditable","findWordEndPoint","findSpace","pos2","lastTextNode","findSelectorEndPoint","sibling_name","curFormat","findBlockEndPoint","lastIdx","leaf","isColorFormatAndAnchor","compare_node","stylesModified","valueOut","MCE_ATTR_RE","inc","rootBlockElm","list_block","findElementSibling","tmpSibling","elementUtils","createCaretContainer","fill","caretContainer","caretContainerId","INVISIBLE_CHAR","isCaretContainerEmpty","getParentCaretContainer","findFirstTextNode","removeCaretContainer","move_caret","applyCaretFormat","removeCaretFormat","hasContentAfter","formatNode","unmarkBogusCaretParents","caret_debug","_hasCaretEvents","markCaretContainersBogus","disableCaretContainer","isAtEndOfText","tmpNode","setDirty","addNonTypingUndoLevel","typing","beforeBookmark","isFirstTypedCharacter","locks","cmd","command","beforeChange","isDirty","lastLevel","modKey","custom_undo_redo_levels","undo","redo","hasUndo","hasRedo","transact","handleEnterKey","canSplitBlock","renderBlockOnIE","oldRng","trimInlineElementsOnLeftSideOfBlock","firstChilds","moveToCaretPosition","firstNonWhiteSpaceNodeSibling","tempElm","lastNode","parentBlock","setForcedBlockAttrs","forcedRootBlockName","emptyBlock","createNewBlock","clonedNode","textInlineElements","parentBlockName","newBlockName","keep_styles","isCaretAtStartOrEndOfBlock","isAfterLastNodeInContainer","wrapSelfAndSiblingsInDefaultBlock","newBlock","editableRoot","handleEmptyListItem","isFirstOrLastLi","containerBlock","getContainerBlock","containerBlockParent","containerBlockParentName","undoManager","insertBr","trimLeadingLineBreaks","getEditableRoot","addBrToBlockIfNeeded","insertNewBlockAfter","containerBlockName","end_container_on_empty_block","force_p_newlines","br_in_pre","restoreSelection","rootNodeName","moveEnd","isOldIE","ui","customCommand","skip_focus","commands","plugins","queryCommandState","_isHidden","queryCommandValue","addCommands","command_list","addCommand","queryCommandSupported","addQueryStateHandler","addQueryValueHandler","hasCustomCommand","execNativeCommand","isFormatMatch","toggleFormat","storeSelection","mceResetDesignMode,mceBeginUndoLevel","mceEndUndoLevel,mceAddUndoLevel","Cut,Copy,Paste","translate","notificationManager","unlink","JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone","align","InsertUnorderedList,InsertOrderedList","listElm","listParent","Bold,Italic,Underline,Strikethrough,Superscript,Subscript","ForeColor,HiliteColor,FontName","FontSize","fontClasses","fontSizes","font_size_style_values","font_size_classes","RemoveFormat","mceBlockQuote","FormatBlock","mceCleanup","mceRemoveNode","mceSelectNodeDepth","mceSelectNode","mceInsertContent","trimOrPaddLeftRight","hasSiblingText","trimNbspAfterDeleteAndPaddValue","markInlineFormatElements","reduceInlineTextElements","testNode","moveSelectionToMarker","getContentEditableFalseParent","parentEditableFalseElm","bookmarkHtml","caretElement","parserArgs","_selectionOverrides","showBlockCaretContainer","addVisual","mceInsertRawHTML","mceToggleFormat","mceSetContent","Indent,Outdent","intentValue","indentUnit","indentation","indentStyleName","getParam","mceRepaint","InsertHorizontalRule","mceToggleVisualAid","hasVisual","mceReplaceContent","mceInsertLink","anchor","selectAll","delete","mceNewDocument","InsertLineBreak","hasRightSideContent","brElm","extraBr","isControlKey","JustifyLeft,JustifyCenter,JustifyRight,JustifyFull","Outdent","inline_styles","paddingLeft","FontSize,FontName","Undo","Redo","URI","baseUri","base_url","base_uri","isProtocolRelative","protocol","directory","toAbsPath","queryParts","userInfo","port","DEFAULT_PORTS","ftp","http","https","mailto","setPath","getURI","toRelative","tu","uu","toRelPath","toAbsolute","noHost","isSameOrigin","defaultPort","breakPoint","outPath","nb","noProtoHost","parseDataUri","Class","extendClass","initializing","mixins","Mixins","dummy","createMethod","Methods","Properties","Statics","Defaults","Dispatcher","beforeFire","bindings","toggleEvent","bindingName","hi","nativeEvents","isNative","Binding","model","otherModel","otherName","fromSelfToOther","fromOtherToSelf","_bindings","EventDispatcher","getEventDispatcher","_eventDispatcher","toggleNativeEvent","hasEventListeners","Observable","oldValue","uniqueItems","__checked","Collection","expression","chunker","Selector","compileNameFilter","compileIdFilter","_name","compileClassesFilter","compileAttrFilter","cmp","compilePsuedoFilter","notSelectors","parseChunks","direct","_selectors","control","si","sl","getWindowSize","getRuntimeStyle","innerHtml","parseBox","measureBox","getSide","ClassList","onchange","_map","_change","curState","clsValue","animationFrameRequested","dirtyCtrls","_layout","_id","reflow","ObservableObject","BoxUtils","ReflowQueue","_nativeEvents","bindPendingEvents","eventCtrl","getParentCtrl","mouseLeaveHandler","eventRootCtrl","_lastHoverCtrl","getEl","mouseEnterHandler","lastParents","lastCtrl","fixWheelEvent","wheelDelta","wheelDeltaX","detail","_eventsRoot","eventRootDelegates","_delegates","hasWheelEventSupport","_hasMouseEnter","hasMouseWheelEventSupport","Control","classPrefix","isRtl","rtl","applyClasses","defaultClasses","_aria","_elmCache","borderBox","paddingBox","marginBox","getContainerElm","controlIdLookup","initLayoutRect","layoutRect","minHeight","autoResize","startMinWidth","startMinHeight","initialSize","deltaW","deltaH","maxW","maxH","maxHeight","_layoutRect","contentW","contentH","innerW","innerH","minW","minH","scrollW","_lastLayoutRect","newRect","lastLayoutRect","deltaWidth","deltaHeight","repaintControls","curRect","repaint","bodyStyle","bodyElm","borderW","borderH","lastRepaintRect","_lastRepaintRect","_hasBody","resolveCallbackName","parentsAndSelf","parentControls","ariaTarget","newItems","_lastRect","renderBefore","renderHtml","renderTo","preRender","parentEventsRoot","border-top-width","border-right-width","border-bottom-width","border-left-width","bindStates","parentCtrl","getOffset","parentWidth","parentHeight","rootControl","namespaceInit","typeClass","ControlType","tinymce","getRole","focusedElement","getParentRole","getAriaProp","isTextInputElement","canFocus","getFocusElements","getNavigationRoot","targetControl","navigationRoot","focusedControl","ariaRoot","focusFirst","focusElements","ariaRemember","moveFocusToIndex","lastAriaIndex","moveFocus","parentRole","submenu","enter","up","down","handleNonTabOrEscEvent","Factory","KeyboardNavigation","selectorCache","_items","bodyClasses","containerCls","focusCtrl","keyboardNav","statusbar","oldItem","ctrlItems","defaultType","renderNew","containerElm","curItems","beforeItems","afterItems","fromJSON","lastRect","getDocumentSize","updateWithTouchData","getHandleElm","$eventOverlay","downButton","cursor","docSize","DragHelper","renderScroll","repaintScroll","repaintAxis","axisName","posName","sizeName","contentSizeName","hasScroll","ax","scrollBarElm","scrollThumbElm","containerSize","scrollSize","posNameLower","sizeNameLower","hasScrollH","hasScrollV","addScroll","addScrollAxis","deltaPosName","scrollStart","axisId","draghelper","autoScroll","_hasScroll","bodyEl","Container","_preBodyHtml","calculateRelativePosition","selfW","selfH","testMoveRel","viewPortRect","moveRel","moveTo","moveBy","dx","dy","constrain","constrainToViewport","resizeToContent","resizeTo","resizeBy","dw","dh","Panel","Movable","Resizable","skipOrHidePanels","visiblePanels","panel","clickCtrl","autohide","bindDocumentClickHandler","documentClickHandler","bindDocumentScrollHandler","documentScrollHandler","repositionPanel","bindWindowResizeHandler","windowResizeHandler","FloatPanel","hideAll","toggleFixedChildPanels","scrollY","autofix","_autoFixY","addRemove","topModal","zOrder","modal","modalBlockEl","hasModal","currentZIndex","removeVisiblePanel","$modalBlockEl","popover","bodyRole","toggleFullScreenState","contentValue","noScaleMetaValue","overrideViewPort","oldMetaValue","toggleBodyFullScreenClasses","windows","_fullscreen","handleWindowResize","reposition","lastSize","Window","buttons","spacing","pack","describedBy","needsRecalc","headerW","headEl","headerH","headerHtml","footerHtml","fullscreen","slowRendering","_timer","_initial","dragHelper","getContentWindow","ifr","MessageBox","multiline","OK","OK_CANCEL","YES_NO","YES_NO_CANCEL","msgBox","createButton","primary","subtype","onPostRender","onCancel","confirm","getTopMostWindow","fireOpenEvent","fireCloseEvent","editorManager","setActive","bodyType","onclick","features","getParams","setParams","getWindows","Widget","tooltips","ariaLabel","Progress","icon","closeButton","progressBar","notificationStyle","Notification","getLastNotification","notifications","resizeWindowEvent","prePositionNotifications","positionNotifications","firstItem","getElement","getContentAreaContainer","notif","getNotifications","serviceMessage","service_message","targetNode","NodePath","setEditorCommandState","getDocumentMode","setMceInteralContent","selectionHtml","internalContent","dataTransfer","mceInternalUrlPrefix","mceInternalDataType","getMceInternalContent","insertClipboardContents","cleanupStylesWhenDeleting","isTrailingBr","isSiblingsIgnoreWhiteSpace","findCaretNode","deleteRangeBetweenTextBlocks","startBlock","endBlock","caretNodeBefore","caretNodeAfter","expandBetweenBlocks","targetCaretNode","textBlock","targetTextBlock","handleTextBlockMergeDelete","handleLastBlockCharacterDelete","cloneTextBlockWithFormats","blockElm","currentFormatNodes","newBlockElm","br","clonedBlockElm","customDelete","mutationObserver","childList","attributeFilter","takeRecords","record","attributeName","addedNodes","span","olderWebKit","dragStartRng","nodeInsert","relatedNode","records","attrModified","isMetaOrCtrl","modify","fragmentNode","blockParent","charText","pointRng","clipboardData","clearData","emptyEditorWhenDeleting","serializeRng","allContentsSelected","bodyRng","allRng","allSelection","shortcuts","inputMethodFocus","content_editable","removeHrOnBackspace","focusBody","selectControlElements","removeStylesWhenDeletingAcrossBlockElements","getAttributeApplyFunction","isSelectionAcrossElements","applyAttributes","ensureBodyHasRoleApplication","disableBackspaceIntoATable","addNewLinesBeforeBrInPre","brNodes","removePreSerializedStylesWhenSelectingControls","removeBlockQuoteOnBackSpace","setGeckoEditingOptions","setOpts","_refreshContentEditable","addBrAfterLastLinks","fixLinks","setDefaultBlockType","deleteControlItemOnBackSpace","renderEmptyBlocksFix","emptyBlocksCSS","keepNoScriptContents","fixCaretSelectionOfDocumentElementOnIe","rngFromPoint","startRng","endSelection","started","htmlElm","normalizeSelection","showBrokenImageIcon","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","disableAutoUrlDetect","tapLinksAndImages","blockFormSubmitInsideEditor","removeAppleInterchangeBrs","ieInternalDragAndDrop","isGecko","isWebKit","getEventTarget","event_root","eventRoot","bindEventDelegate","isListening","eventRootElm","delegates","customEventRootDelegates","activeEditor","editors","EditorObservable","bindPendingEventDelegates","_pendingNativeEvents","unbindAllNativeEvents","setMode","currentMode","keyCodeLookup","f9","f10","f11","modifierNames","createShortcut","desc","cmdFunc","shortcut","alt","meta","fileName","blobInfo","extensions","image/jpeg","image/jpg","image/gif","image/png","blob","pathJoin","path1","path2","blobInfoToData","base64","filename","defaultHandler","failure","openNotification","formData","notification","withCredentials","credentials","upload","onprogress","percentLoaded","FormData","noUpload","interpretResult","registerPromise","cachedPromises","collectUploads","blobInfos","uploadBlobInfo","uploadBlobs","promises","blobUriToBlob","responseType","dataUriToBlob","atob","Blob","Uint8Array","uriToBlob","blobToDataUri","reader","onloadend","readAsDataURL","Conversions","blobCache","findAll","imageToBlobInfo","getByUri","findFirst","cachedBlobInfo","blobInfoId","images","newPromise","imageInfo","blobUri","revokeObjectURL","Uploader","ImageScanner","BlobCache","aliveGuard","replaceString","replaceImageUrl","targetUrl","replacementUrl","replaceUrlInUndoStack","uploadImages","uploader","images_upload_url","images_upload_base_path","images_upload_credentials","images_upload_handler","scanForImages","imageInfos","uploadInfo","data-mce-src","convertURL","uploadImagesAuto","automatic_uploads","imageScanner","images_dataimg_filter","resultItem","replaceBlobWithBase64","editorUpload","source_view","isForwards","isBackwards","findNode","predicateFn","getEditingHost","getParentBlock","isBlockLike","isInSameBlock","caretPosition1","caretPosition2","isInSameEditingHost","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","isNodesInSameBlock","lean","normalizeRange","leanLeft","leanRight","isNextToContentEditableFalse","isBeforeContentEditableFalse","isAfterContentEditableFalse","CaretUtils","nodeAtIndex","getCaretCandidatePosition","findCaretPosition","startCaretPosition","innerNode","rootContentEditableFalseElm","getAbsoluteClientRect","scrollX","rootRect","trimInlineCaretContainers","contentEditableFalseNodes","$lastVisualCaret","startBlink","cursorInterval","getCss","toArrayWithNode","Dimensions","CaretWalker","findUntil","walkUntil","isAboveFn","isBeflowFn","targetClientRect","aboveLineNumber","lineNumber","isLine","positionsUntil","getClientRect","walkFn","isBelowFn","caretWalker","upUntil","downUntil","isAboveLine","distanceToRectLeft","distanceToRectRight","findClosestClientRect","isInside","oldClientRect","oldDistance","newDistance","findLineNodeRects","targetNodeRect","checkPosFn","lineRects","getContentEditableFalseChildren","caretInfo","closestCaret","contentEditableFalseNodeRects","closestNodeRect","isDraggable","setBodyCursor","isValidDropTarget","movement","rootClientRect","relX","relY","ghost","maxX","maxY","insertContent","ceElm","realTarget","FakeCaret","LineWalker","LineUtils","DragDropOverrides","getVisualCaretPosition","SelectionOverrides","setRange","showCaret","fakeCaret","getNodeRange","isMoveInsideSameBlock","fromCaretPosition","toCaretPosition","inSameBlock","getNormalizedRangeEndPoint","isRangeInCaretContainerBlock","moveToCeFalseHorizontally","getNextPosFn","isBeforeContentEditableFalseFn","peekCaretPosition","rangeIsInContainerBlock","renderRangeCaret","moveToCeFalseVertically","walkerFn","linePositions","nextLinePositions","closestNextLineRect","caretClientRect","dist1","dist2","contentEditableFalseNode","caretPositions","exitPreBlock","createTextBlock","caretPos","getNextVisualCaretPosition","getPrevVisualCaretPosition","moveH","newRange","moveV","getBlockCaretContainer","blockCaretContainer","renderCaretAtRange","caretRange","deleteContentEditableNode","nextCaretPosition","prevCaretPosition","prevCeFalseElm","nextElement","clearContentEditableSelection","backspaceDelete","beforeFn","registerEvents","override","moveFn","getContentEditableRoot","isXYWithinRange","paddEmptyContentEditableArea","ceRoot","handleBlockContainer","handleEmptyBackspaceDelete","prevent","deleteForward","backspace","contentEditableRoot","setContentEditableSelection","selectedContentEditableNode","addCss","isRangeInCaretContainer","fireEvent","$realSelectionContainer","realSelectionId","NodeChange","DomSerializer","Formatter","UndoManager","EnterKey","ForceBlocks","EditorCommands","WindowManager","NotificationManager","Quirks","Mode","Shortcuts","EditorUpload","Editor","documentBaseUrl","documentBaseURL","baseURI","delta_width","delta_height","popup_css","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","visual","font_size_legacy_values","hidden_input","padd_empty_editor","render_ui","convert_fonts_to_spans","ie7_compat","defaultSettings","language_load","documentBaseURI","contentCSS","loadedCSS","editorCommands","cache_suffix","override_viewport","execCallback","scriptLoader","language_url","themeUrl","theme_url","external_plugins","orgVisibility","formElement","hasHiddenInput","formEventDelegate","startContent","_mceOldSubmit","triggerSave","windowManager","encoding","_beforeUnload","destroyed","set_dirty","initPlugin","pluginInstance","Plugin","initializedPlugins","Theme","bodyId","bodyClass","re","setCode","rtl_ui","aria_label","getLang","orgDisplay","min_height","renderUI","iframeHeight","editorContainer","iframeContainer","content_css","u","content_style","initContentBody","iframeHTML","cssUrl","body_id","body_class","content_security_policy","domainRelaxUrl","hostname","frameBorder","allowTransparency","contentAreaContainer","iframeElement","skipWrite","contentCssText","content_document","content_window","bodyElement","hex_colors","force_hex_style_colors","class_filter","forceBlocks","enterKey","_nodeChangeDispatcher","browser_spellcheck","gecko_spellcheck","spellcheck","quirks","directionality","nowrap","protect","auto_focus","skipFocus","getContentEditableHost","contentEditableHost","callbackLookup","addButton","addMenuItem","menuItems","addContextToolbar","contextToolbars","focusedEditor","setProgressState","padd","isNotDirty","oldState","urlconverter_callback","visual_table_class","visual_anchor_class","automatic","_scanForImages","newCode","_dir","getCode","langData","match1","match2","FocusManager","createBookmark","bookmarkToRng","isUIElement","isEditorUIElement","selectionChangeHandler","blurredEditor","documentFocusInHandler","documentMouseUpHandler","unregisterDocumentEvents","I18n","globalEventDelegate","EditorManager","toggleGlobalEvents","boundGlobalEvents","removeEditorFromList","removedFromList","purgeDestroyedEditor","beforeUnloadDelegate","instanceCounter","majorVersion","minorVersion","releaseDate","preInit","tinyMCEPreInit","srcScript","currentScript","focusManager","createId","findTargets","forms","editor_deselector","editor_selector","initEditors","createEditor","initCount","addI18n","tinyMCE","replaceWithSpan","convert","font","face","strike","XHR","success_scope","error_scope","content_type","requestheaders","quote","JSONRequest","sendRPC","ecb","scb","ty","updateKeys","LocalStorage","nextPos","hasOldIEDataSupport","storageElm","userDataKey","addBehavior","firstControlClass","lastControlClass","containerClass","firstClass","lastClass","lastItem","controlClass","Layout","btnStyle","btnElm","textHtml","setButtonText","$span","textCls","iconElm","subinput","menu","showMenu","stateValue","inputValue","openElm","openBtnHtml","extraAttrs","ComboBox","onaction","repaintColor","background","_rendered","Button","showPanel","panelSettings","hidePanel","popoverAlign","PanelButton","_color","resetColor","onClickHandler","Color","rgb2hsv","minRGB","maxRGB","hsvToRgb","hue","saturation","brightness","side","chroma","toRgb","toHsv","updateColor","hsv","hueUpdate","huePointElm","svPointElm","svRootElm","updateSaturationAndValue","updateHue","hueRootElm","_repaint","_svdraghelper","_hdraghelper","rgb","getOldIeFallbackHtml","gradientPrefix","stopsList","stops","hueHtml","gradientCssText","delimiter","row","_getDataPathHtml","Path","elementpath","outParents","flex","FormItem","labelGap","formItemDefaults","formItem","forId","recalcLabels","maxLabelWidth","labelGapCalc","labelCtrl","labelWidth","Form","actionCallback","fileBrowserCallback","fileBrowserCallbackTypes","editorSettings","file_picker_types","file_browser_callback_types","filetype","file_picker_callback","file_browser_callback","AbsoluteLayout","contLayoutRect","contPaddingBox","contSettings","totalFlex","availableSpace","ctrlLayoutRect","ctrlSettings","maxSize","maxAlignEndPos","minSizeName","maxSizeName","beforeName","innerSizeName","deltaSizeName","alignAxisName","alignInnerSizeName","alignSizeName","alignMinSizeName","alignBeforeName","alignAfterName","alignDeltaSizeName","alignContentSizeName","maxSizeItems","maxFlexSize","endClass","registerControls","createListBoxChangeHandler","formatName","createFormats","createFormatMenu","createMenu","menuItem","newFormats","createStylesMenu","style_formats_merge","style_formats","defaultStyleFormats","itemDefaults","textStyle","initOnPostRender","toggleUndoRedoState","checkState","toggleVisualAidState","formatMenu","outdent","cut","paste","help","selectall","visualaid","newdocument","numlist","bullist","alignnone","block_formats","fixedWidth","onselect","defaultFontsFormats","fonts","font_formats","defaultFontsizeFormats","fontsize_formats","rows","cols","posX","posY","spacingH","spacingV","alignH","alignV","ctrlMinWidth","ctrlMinHeight","availableWidth","availableHeight","reverseRows","colWidths","rowHeights","columns","sqrt","flexV","packV","flexWidths","strong","startMinH","Toolbar","MenuBar","MenuButton","_renderOpen","hideMenu","activeMenu","hasVisibleSiblingMenu","overCtrl","ariaHideMenu","hasMenus","_parentMenu","_lastRel","convertShortcut","textElm","MenuItem","Throbber","itemsFactory","hideThrobber","throbber","requestTime","_hasIcons","Menu","setSelected","menuValues","selectedText","lastItemCtrl","_values","lastControl","activateMenuItemsByValue","getSelectedItem","selectedItem","Checkbox","resizeDragHelper","strOptions","_options","minVal","maxVal","updateSliderHandle","maxHandlePos","shortSizeName","stylePosName","styleValue","orientation","_minValue","_maxValue","previewFilter","minValue","maxValue","_initValue","startHandlePos","screenCordName","handlePos","_dragHelper","handleEl","mainButtonElm","menuButtonElm","_menuBtnText","FlowLayout","activateTab","activeTabElm","activeTabId","tabsHtml","activeTab","targetParent","headH","fs","Cc","Ci","xpcIsWindows","progIds","xmlRegExp","bodyRegExp","hasLocation","defaultProtocol","defaultHostName","buildMap","masterConfig","strip","jsEscape","createXhr","progId","parseName","modName","xdRegExp","useXhr","uProtocol","uHostName","uPort","finishLoad","isBuild","inlineText","nonStripName","asModule","writeFile","extPart","textWrite","env","versions","nodeRequire","readFileSync","onXhr","onXhrComplete","Packages","java","stringBuffer","io","File","lineSeparator","System","getProperty","BufferedReader","InputStreamReader","FileInputStream","StringBuffer","readLine","Components","interfaces","inStream","convertStream","fileObj","readData","FileUtils","createInstance","nsIFileInputStream","nsIConverterInputStream","DEFAULT_REPLACEMENT_CHARACTER","readString","Dropzone","Emitter","camelize","contentLoaded","detectVerticalSquash","drawImageIOSFix","_callbacks","removeAllListeners","elementOptions","defaultOptions","previewTemplate","clickableElements","listeners","querySelector","dropzone","optionsForElement","forceFallback","isBrowserSupported","acceptedFiles","acceptedMimeTypes","getExistingFallback","previewsContainer","clickable","getElements","resolveOption","parallelUploads","uploadMultiple","maxFilesize","paramName","createImageThumbnails","maxThumbnailFilesize","thumbnailWidth","thumbnailHeight","filesizeBase","maxFiles","ignoreHiddenFiles","autoProcessQueue","autoQueue","addRemoveLinks","dictDefaultMessage","dictFallbackMessage","dictFallbackText","dictFileTooBig","dictInvalidFileType","dictResponseError","dictCancelUpload","dictCancelUploadConfirmation","dictRemoveFile","dictRemoveFileConfirmation","dictMaxFilesExceeded","accept","messageElement","getFallbackForm","srcRatio","trgRatio","srcX","srcY","srcWidth","srcHeight","optWidth","optHeight","trgHeight","trgWidth","dragenter","dragover","dragleave","addedfile","removeFileEvent","removeLink","_j","_k","_len1","_len2","_ref1","_ref2","previewElement","filesize","_removeLink","UPLOADING","removeFile","removedfile","_updateMaxFilesReachedClass","thumbnail","thumbnailElement","errormultiple","processing","processingmultiple","uploadprogress","bytesSent","totaluploadprogress","sending","sendingmultiple","successmultiple","canceled","canceledmultiple","completemultiple","maxfilesexceeded","maxfilesreached","queuecomplete","objects","getAcceptedFiles","accepted","getRejectedFiles","getFilesWithStatus","getQueuedFiles","getUploadingFiles","getActiveFiles","noPropagation","setupHiddenFileInput","hiddenFileInput","addFile","webkitURL","updateTotalUploadProgress","efct","effectAllowed","dropEffect","clickableElement","elementInside","removeAllFiles","activeFiles","totalBytes","totalBytesSent","totalUploadProgress","_getParamName","existingFallback","fieldsString","getFallback","setupEventListeners","elementListeners","listener","_results1","removeEventListeners","cancelUpload","cutoff","selectedSize","selectedUnit","units","webkitGetAsEntry","_addFilesFromItems","handleFiles","isFile","getAsFile","isDirectory","_addFilesFromDirectory","kind","dirReader","entriesReader","createReader","entries","fullPath","readEntries","isValidFile","ADDED","_enqueueThumbnail","_errorProcessing","enqueueFile","enqueueFiles","processQueue","_thumbnailQueue","_processingThumbnail","_processThumbnailQueue","createThumbnail","cancelIfNecessary","fileReader","createThumbnailFromUrl","imageUrl","canvas","resizeInfo","_ref3","getContext","trgX","trgY","toDataURL","processingLength","queuedFiles","processFiles","processFile","uploadFiles","_getFilesWithXhr","groupedFile","groupedFiles","CANCELED","uploadFile","handleError","headerName","headerValue","inputName","inputType","progressObj","updateProgress","_l","_len3","_m","_ref4","_ref5","allFilesFinished","_finished","Accept","Cache-Control","X-Requested-With","SUCCESS","forElement","autoDiscover","discover","checkElements","dropzones","blacklistedBrowsers","capableBrowser","regex","FileList","rejectedItem","question","rejected","baseMimeType","validType","ACCEPTED","PROCESSING","alpha","ey","ih","iw","py","sy","naturalWidth","naturalHeight","drawImage","getImageData","sx","sh","vertSquashRatio","poll","rem","createEventObject","_autoDiscoverFunction","UploadTemplate","PreviewTemplate","UploadPattern","showTitle","wrapperTemplate","fileaddedClassName","useTus","ajaxUpload","autoCleanResults","oe","currentFile","$progress","relativePath","$pathInput","setupRelatedItems","$dropzone","dzoneOptions","getDzoneOptions","showHideControls","path_uid","xmlhr","pct","processUpload","finished","clipboardfile","_showHideTimeout","_showHideControls","$controls","$browse","$input","$form","$preview","tus","handleTusUpload","chunkSize","endpoint","FILENAME","bytesUploaded","bytesTotal","percentage","formatBytes","bytes","kb","mb","initialFolder","ri","LinkTemplate","ImageTemplate","LinkType","linkModal","tinypattern","tiny","data-val","ExternalLink","InternalLink","createRelatedItems","generateUrl","UploadLink","getDelegatedLinkType","linkType","linkTypes","ImageLink","generateImageUrl","$scale","EmailLink","getSubject","$subject","AnchorLink","$select","anchorNodes","anchorData","anchorSelector","anode","newAnchor","addImageClicked","stateSelector","prependToContext","addLinkClicked","LinkModal","initialLinkType","insertHeading","linkTypeClassMapping","external","email","uploadImage","externalImage","linkTypeTemplateMapping","initialText","anchorElm","onlyText","isOnlyTextSelected","default_link_target","generateModalHtml","modalShown","ii","externalText","emailText","subjectText","targetList","titleText","externalImageText","altText","imageAlignText","imageAlign","scaleText","scales","cancelBtn","insertBtn","isImageMode","initElements","$modal","$title","$alt","$align","$fieldset","getLinkUrl","updateAnchor","linkAttrs","data-linkType","focusElement","updateImage","waitLoad","imgElm","data-scale","initData","$upload","patternUpload","patUpload","checkUpload","imgs","guessImageLink","guessAnchorLink","prependToScalePart","getScaleFromUrl","stripGeneratedUrl","prependToUrl","setSelectElement","reinitialize","createToolbar","buttonGroup","toolbarItems","bindSelectorChanged","setActiveItem","itemName","disabledStateSelector","createToolbars","addToolbar","toolbars","toolbar","defaultToolbar","createMenuButtons","createMenuItem","menuButton","isUserDefined","removedMenuItems","removed_menuitems","defaultMenus","menuButtons","defaultMenuBar","enabledMenuNames","menubar","addAccessibilityKeys","iframeElm","iframeSize","min_width","max_width","max_height","addContextualToolbars","getContextToolbars","getElementRect","hideAllFloatingPanels","relPos","panelRect","elementRect","contentAreaRect","relRect","testPositions","Rect","repositionHandler","execute","findFrontMostMatch","bindScrollEvent","showContextToolbar","hideAllContextToolbars","renderInlineUI","_fixed","bodyPos","scrollContainerPos","inlineToolbarContainer","toolbar_items_size","fixed_toolbar_container","skinUiCss","renderIframeUI","switchMode","resizeHandleCtrl","startSize","onResizeStart","onResize","geom","edit","skin","skinUrl","skin_url","buildMenuItems","listName","styleValues","applyListFormat","lastStyles","listStyleType","olMenuItems","ulMenuItems","onshow","showDialog","isAnchor","onsubmit","handleEclipse","parseCurrentLine","handleSpacebar","handleEnter","end_offset","scopeIndex","rngText","AutoLinkPattern","AutoUrlDetectState","autolink_pattern","isFullscreen","deltaSize","resizeHeight","myHeight","marginBottom","paddingTop","paddingBottom","borderTop","borderBottom","autoresize_min_height","autoresize_max_height","oldSize","overflowPadding","bottomMargin","paddingRight","_beforeUnloadHandler","autosave","storeDraft","parseTime","defaultTime","multipels","hasDraft","autosave_retention","removeDraft","restoreDraft","startStoreDraft","autosave_interval","restoreLastDraft","autosave_prefix","pathname","autosave_restore_when_empty","onbeforeunload","dialect","getInfo","longname","author","authorurl","infourl","_punbb_html2bbcode","rep","_punbb_bbcode2html","BBCodePlugin","getDefaultCharMap","charmapFilter","charmap","getCharsFromSetting","settingValue","extendCharMap","charmap_append","getCharMap","insertChar","getParentTd","gridHtml","charMapPanel","onmouseover","onSubmit","colorPickerCallback","setColor","showPreview","hexColor","colorPickerCtrl","color_picker_callback","contextmenuNeverUseNative","contextmenu_never_use_native","contextmenu","setDir","curDir","generateSelector","getHtml","emoticonsHtml","emoticons","emoticonUrl","linkElm","htmlToData","dataToHtml","getAttr","headerFragment","parseHeader","fontface","xml_pi","docencoding","httpEquiv","langcode","stylesheets","langdir","visited_color","link_color","active_color","setAttr","addHeadNode","headElement","currentStyleSheetsMap","stylesheet","vLink","aLink","apply_source_formatting","endPos","foot","getDefaultHeader","headElm","data-mce-fullpage","getScrollPos","vp","setScrollPos","toggleFullscreen","editorContainerStyle","iframeStyle","fullscreenState","scrollPos","iframeWidth","containerWidth","containerHeight","resizeHandler","getImageSize","buildListItems","inputList","itemCallback","startItems","appendItems","createImageList","imageList","image_list","recalcSize","widthCtrl","heightCtrl","newWidth","newHeight","onSubmitForm","selectImage","imageDimensions","figureElm","oldImg","updateStyle","removePixelSuffix","srcChange","srcURL","prependURL","absoluteURLPattern","imageListCtrl","image_prepend_url","mergeMargins","splitMargin","addPixelSuffix","image_advtab","vspace","hspace","updateVSpaceHSpaceBorder","classListCtrl","image_dimensions","altCtrl","image_class_list","generalFormItems","image_description","image_title","image_caption","borderWidth","hasImageClass","toggleContentEditableState","toggleContentEditable","removeCacheSuffix","isSkinContentCss","compileFilter","getSelectors","fileFilter","imported","imports","cssRule","selectorText","contentCSSUrls","convertSelectorToFormat","inlineSelectorElements","importcss_merge_classes","selectorConverter","importcss_selector_converter","selectorFilter","importcss_selector_filter","importcss_append","importcss_groups","importcss_file_filter","getDateTime","addZeros","getYear","getSeconds","monthsLong","daysLong","daysShort","insertDateTime","insertdatetime_element","computerTime","timeElm","lastFormat","defaultButtonTimeFormat","insertdatetime_formats","getParentLayer","visualAid","nl","z","le","insertLayer","toggleAbsolute","layer","designMode","alignElements","fontElm","createLinkList","linkList","link_list","linkListChangeHandler","textCtrl","buildAnchorListControl","anchorList","updateText","urlChange","linkListCtrl","textListCtrl","relListCtrl","targetListCtrl","linkTitleCtrl","target_list","rel_list","link_class_list","link_title","onkeyup","delayedConfirm","insertLink","link_assume_external_targets","isChildOfBody","isListNode","isFirstChild","isLastChild","isEditorBody","keepBookmarks","setupEndPoint","createNewTextBlock","contentNode","hasContentNode","getSelectedListItems","splitList","removeAndKeepBookmarks","bookmarks","mergeWithAdjacentLists","listBlock","normalizeList","removeEmptyLi","ulParent","mergeLists","newList","indentSelection","listElements","outdentSelection","applyList","getSelectedTextBlocks","getEndPointNode","textBlocks","listItemName","removeList","rootList","toggleList","parentList","queryListCommandState","findNextCaretContainer","nonEmptyBlocks","mergeLiElements","fromElm","toElm","listNode","otherLi","isHandled","guessMime","getVideoScriptMatch","prefixes","media_scripts","updateValueOnChange","media_alt_source","media_poster","media_dimensions","embedTextBox","getSource","embedChange","onShowTab","beforeObjects","afterObjects","source1","embed","source2","poster","source1mime","source2mime","flashPlayerUrl","urlPatterns","allowFullscreen","updateHtml","videoScript","audio_template_callback","video_template_callback","movie","sanitize","media_filter_html","blocked","updateAll","setAttributes","updatedAttrs","hasImage","sourceCount","imgAttrs","retainAttributesAndInnerHtml","sourceNode","createPlaceholderNode","placeHolder","data-mce-object","createPreviewNode","previewWrapper","previewNode","shimNode","allowfullscreen","frameborder","boolAttrs","media_live_embeds","realElm","realElmName","objectType","setting","visualchars","spaces","checkClassName","convertRegExpsToNonEditable","replaceMatchWithSpan","nonEditableRegExps","nonEditClass","editClass","contentEditableAttrName","hasEditClass","hasNonEditClass","pageBreakClass","separatorHtml","pageBreakSeparatorRegExp","pageBreakPlaceHolderHtml","pagebreak_split_block","ignoreElements","domParser","trimSpaces","s1","s2","Utils","pasteHtml","tempBody","paste_merge_formats","pasteText","forcedRootBlockStartHtml","createPasteBin","getCaretRect","pasteBinElm","pasteBinDefaultContent","removePasteBin","pasteBinClone","getPasteBinHtml","pasteBinClones","cloneHtml","decodeEdgeData","fingerprint","extractFragment","startFragment","endFragment","getDataTransferItems","legacyText","getClipboardContent","clipboardEvent","pasteImageData","processItems","pasteImage","hadImage","paste_data_images","isBrokenAndroidClipboardEvent","getCaretRangeFromEvent","hasContentType","clipboardContent","isKeyboardPasteEvent","registerEventHandlers","insertClipboardContent","isKeyBoardPaste","plainTextMode","removePasteBinOnKeyUp","keyboardPastePlainTextState","keyboardPasteTimeStamp","ieFake","clipboardTimer","clipboardDelay","pasteFormat","draggingInternally","paste_filter_drop","dropContent","isPasteInsert","isWebKitFakeUrl","isDataUri","isWordContent","isNumericList","isBulletList","WordFilter","convertFakeListsToProperLists","trimListStart","regExp","removeIgnoredNodes","_listIgnore","convertParagraphToLi","paragraphNode","_listLevel","currentListNode","prevListNode","nodeText","filterStyles","outputStyles","retainStyleProperties","paste_retain_style_properties","paste_enable_default_filters","wordContent","paste_word_valid_elements","paste_convert_word_fake_lists","addPreProcessFilter","filterFunc","removeExplorerBrElementsAfterBlocks","explorerBlocksRegExp","removeWebKitStyles","webKitStyles","paste_webkit_styles","paste_remove_styles_if_webkit","inputStyles","currentValue","Clipboard","userIsInformed","togglePlainTextPaste","clipboard","wordFilter","paste_as_text","paste_preprocess","paste_postprocess","paste_block_drop","sandbox","previewHtml","headHtml","dirAttr","print","formObj","displayErrorMessage","stateToggle","findAndReplaceDOMText","replacementNode","captureGroup","getMatchIndexes","cg","hiddenTextElementsMap","stepThroughMatches","replaceFn","startNodeIndex","endNodeIndex","innerNodes","atIndex","curNode","matchLocation","genReplacer","makeReplacementNode","stencilNode","elA","innerEls","innerEl","elB","updateButtonStates","findSpansByIndex","currentIndex","notFoundAlert","caseState","wholeWord","getElmIndex","markAllMatches","spans","moveSelection","testIndex","isMatchSpan","matchCase","currentMatchIndex","hasMore","nextIndex","keepEditorSelection","createMatch","stencil","unwrapElement","getWrappersByIndex","wrappers","dataIndex","filteredMatches","matchFromElement","elementFromMatch","rangeFromMatch","DomTextMatcher","getTextMatcher","textMatcher","languageValues","languageValue","showSuggestions","suggestions","lastSuggestions","suggestion","checkIfFinished","hasDictionarySupport","addToDictionary","ignoreWord","suggestionsMenu","onautohide","onhide","targetPos","getWordCharPattern","defaultSpellcheckCallback","doneCallback","postData","spellchecker_language","spellchecker_rpc_url","sendRpcCall","successCallback","spellCheckCallback","spellchecker_callback","markErrors","selectedLanguage","words","dictionary","data-mce-word","languageMenuItems","languagesString","spellchecker_languages","langPair","buttonArgs","getLanguage","tabCancel","tabHandler","canSelectRecursive","focusEditor","getSpanVal","paddCell","cell","selectedCell","removeCellSelection","getChildrenByName","buildGrid","grid","gridWidth","partElm","rowspan","colspan","fireNewRow","fireNewCell","getCell","setSpanVal","isCellSelected","getSelectedRows","cells","deleteTable","cloneCell","cloneFormats","table_clone_elements","fillLeftDown","colSpan","rowSpan","endX","endY","startCell","endCell","insertRow","lastCell","rowElm","newRow","newCell","otherCell","insertCol","getSelectedCells","getAllCells","deleteCols","deleteRows","deleteRow","cutRows","copyRows","pasteRows","selectedRows","targetRow","targetCellCount","cellCount","setStartCell","findEndPos","setEndCell","moveRelIdx","cellElm","moveWebKitSelection","eventHandler","upBool","siblingDirection","currentRow","siblingRow","moveCursorToRow","tableNode","middleNode","parentNodeName","getTargetParent","moveToRowInTarget","escapeTable","topNode","secondNode","tbodies","getFirstHeadOrFoot","topOrBottom","headOrFoot","getChildForDirection","tableSibling","moveCursorToStartOfElement","parentCell","backUpSibling","isVerticalMovement","isInTable","columnIndex","column","colIndex","findColumn","rowElement","srcColumnIndex","tgtColumnIndex","tgtNode","rowCellTarget","shouldFixCaret","preBrowserNode","oldParent","checkSameParentTable","nodeOne","NodeTwo","fixBeforeTableCaretBug","par","fixTableCaretPos","fixTableCellSelection","tableCellSelected","currentCell","tableParent","allOfCellSelected","tableCellSelection","fixSelection","placeCaretInCell","clearCell","tableCells","selectedTableCells","TableGrid","webkitUserSelect","hasCellSelection","isCellInTable","cellSelectionHandler","resizing","lastMouseOverTarget","startTable","tableGrid","setPoint","selectedCells","createColorPickAction","createStyleForm","removePxSuffix","addSizeSuffix","unApplyAlign","unApplyVAlign","isStyleCtrl","borderColor","appendStylesToData","tableProps","isProps","onSubmitTableForm","styleTDTH","captionElm","tableElm","insertTable","table_style_by_css","stylesToMerge","cellspacing","data-mce-border-color","data-mce-cell-padding","cellpadding","data-mce-border","getTDTHOverallStyle","checkChildren","firstChildStyle","colsCtrl","rowsCtrl","generalTableForm","table_class_list","table_appearance_options","table_advtab","onSubmitCellForm","valign","table_cell_class_list","generalCellForm","table_cell_advtab","onSubmitRowForm","oldParentElm","toType","generalRowForm","table_row_class_list","table_row_advtab","hoverTable","getTopEdge","getBottomEdge","getLeftEdge","getRightEdge","isInline","getInnerEdge","getOuterEdge","getPercentageWidthFallback","getComputedStyleSize","widthString","getCurrentTablePercentWidth","tableWidth","tableParentWidth","getCellPercentDelta","getTablePercentDelta","findPositions","getOuter","thingsToMeasure","tablePositions","lastTableLineToMake","clearBars","bars","RESIZE_BAR_CLASS","bar","refreshBars","tableElement","drawBars","generateBar","classToAdd","indexAttr","data-mce-resize","drawRows","rowPositions","tablePosition","rowPosition","RESIZE_BAR_THICKNESS","RESIZE_BAR_ROW_CLASS","RESIZE_BAR_ROW_CURSOR_STYLE","RESIZE_BAR_ROW_DATA_ATTRIBUTE","drawCols","cellPositions","tableHeight","cellPosition","RESIZE_BAR_COL_CLASS","RESIZE_BAR_COL_CURSOR_STYLE","RESIZE_BAR_COL_DATA_ATTRIBUTE","getTableDetails","getTableGrid","tableDetails","rowIndex","getAt","allCells","getAllRows","maxRows","maxCols","cr","cc","decide","getBlock","isSingle","singleInBlock","inBlock","getColumnBlocks","getRowBlocks","colPositions","deduceSize","deducables","isPercentageBased","reversedUpToIndex","extras","pixelWidth","getStyleOrAttrib","sizeString","getWidth","widthNumber","getWidthFallback","isPercentageBasedSize","isPixelBasedSize","getWidths","backups","widths","RESIZE_MINIMUM_WIDTH","getPixelHeight","heightString","heightNumber","getPixelHeights","heights","RESIZE_MINIMUM_HEIGHT","determineDeltas","sizes","generateZeros","onOneColumn","deltas","newNext","onLeftOrMiddle","startZeros","endZeros","newThis","diffx","onRight","measures","recalculateWidths","recalculateCellHeights","recalculateRowHeights","allRows","percentageBasedSizeRegex","pixelBasedSizeRegex","adjustWidth","setSizes","newSizes","styleExtension","getNewTablePercentWidth","getNewTablePixelWidth","setTableSize","newTableWidth","isPercentBased","percentageBased","newWidths","adjustHeight","newHeights","newTotalHeight","newCellSizes","newRowSizes","scheduleDelayedDropEvent","delayDrop","cancelDelayedDropEvent","getBlockerElement","blocker","bindBlockerEvents","dragHandler","blockerElement","dragBar","RESIZE_BAR_DRAGGING_CLASS","isCol","initialLeft","RESIZE_BAR_COL_DATA_INITIAL_LEFT_ATTRIBUTE","newLeft","isRow","initialTop","RESIZE_BAR_ROW_DATA_INITIAL_TOP_ATTRIBUTE","newTop","setupBaseDrag","colDragHandler","lastX","oldLeft","rowDragHandler","lastY","oldTop","setupColDrag","setupRowDrag","mouseDownHandler","newCellSize","CellSelection","Dialogs","ResizeBars","table_default_attributes","table_default_styles","handleDisabledState","sameParts","bindStateListener","sum","postRenderCell","postRenderMergeCell","generateTableGrid","selectGrid","tx","focusCell","addButtons","dialogs","selectorMatched","addToolbars","table_toolbar","clipboardRows","resizeBars","table_resize_bars","table_grid","onmousemove","cellSelection","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutRow","mceTableCopyRow","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","mceInsertTable","mceTableProps","mceTableRowProps","mceTableCellProps","table_tab_navigation","createTemplateList","templateList","onSelectTemplate","insertIframeHtml","contentCssLinks","replaceTemplateValues","templateHtml","insertTemplate","replaceVals","vl","templateValuesOptionName","getCurrentColor","mapColors","colorMap","colors","textcolor_map","renderColorPicker","getColorCellHtml","isNoColor","applyFormat","onPanelClick","selectColor","buttonCtrl","setDivColor","customColorCells","lastId","onButtonClick","textcolor_rows","textcolor_cols","getPatterns","isPatternsDirty","findPattern","findEndPattern","applyInlineFormat","space","splitContainer","patternRng","applyBlockFormat","firstTextNode","textBlockElm","wrappedTextNode","handleSpace","lastChar","lastCharNode","textpattern_patterns","setPatterns","newPatterns","toggleActiveState","cssId","visualBlocksMenuItem","NodeList","visualblocks_default_state","toggleVisualChars","addBookmark","wrapCharWithSpan","charMap","compileCharMapToRegExp","compileCharMapToCssSelector","nodeList","visualCharsRegExp"," ","­","draft","getCount","countre","cleanre","tc","wordArray","apiCall","reported","newEventName","argsMap","defaultScope","patchedEventCallback","callbackArgs","addToTop","patchEditor","patchEditorEvents","oldEventNames","oldName","convertUndoEventArgs","filterSelectionEvents","needsSelection","cmNoop","_noop","controlManager","setDisabled","onAdd","createColorSplitButton","createControl","createDropMenu","createListBox","createMenuButton","createSeparator","createSplitButton","createToolbarGroup","setControlType","originalAddButton","patchedPostRender","originalOnPostRender","onUndo","onRedo","onBeforeAdd","onBeforeGetContent","onGetContent","onBeforeSetContent","onSetContent","constr","onBeforeUnload","onAddEditor","onRemoveEditor","Cookie","getHash","setHash","lc","ResultTemplate","SelectionTemplate","TinyMCE","loadingBaseUrl","appendToUrl","linkAttribute","appendToScalePart","appendToOriginalScalePart","defaultScale","imageTypes","imageModal","scale_name","initLanguage","call_back","uploadModal","pasteModal","tinyOptions","tinyId","init_instance_callback","TextareaMimetypeSelector","currentWidget","textareaName","widgets","text/html","patternOptions","initTextarea","mimetype","patternConfig","PloneWidgets"],"mappings":"AAUA,GAAIA,WAAWC,QAASC,QACvB,SAAUC,QA4BP,QAASC,YAAWC,IAChB,MAA4B,sBAArBC,QAAQC,KAAKF,IAGxB,QAASG,SAAQH,IACb,MAA4B,mBAArBC,QAAQC,KAAKF,IAOxB,QAASI,MAAKC,IAAKC,MACf,GAAID,IAAK,CACL,GAAIE,EACJ,KAAKA,EAAI,EAAGA,EAAIF,IAAIG,UACZH,IAAIE,KAAMD,KAAKD,IAAIE,GAAIA,EAAGF,MADNE,GAAK,KAYzC,QAASE,aAAYJ,IAAKC,MACtB,GAAID,IAAK,CACL,GAAIE,EACJ,KAAKA,EAAIF,IAAIG,OAAS,EAAGD,EAAI,MACrBF,IAAIE,KAAMD,KAAKD,IAAIE,GAAIA,EAAGF,MADDE,GAAK,KAQ9C,QAASG,SAAQC,IAAKC,MAClB,MAAOC,QAAOX,KAAKS,IAAKC,MAG5B,QAASE,QAAOH,IAAKC,MACjB,MAAOF,SAAQC,IAAKC,OAASD,IAAIC,MAQrC,QAASG,UAASJ,IAAKL,MACnB,GAAIM,KACJ,KAAKA,OAAQD,KACT,GAAID,QAAQC,IAAKC,OACTN,KAAKK,IAAIC,MAAOA,MAChB,MAUhB,QAASI,OAAMC,OAAQC,OAAQC,MAAOC,iBAkBlC,MAjBIF,SACAH,SAASG,OAAQ,SAAUG,MAAOT,OAC1BO,OAAUT,QAAQO,OAAQL,SACtBQ,iBAAoC,gBAAVC,SAAsBA,OAC/ClB,QAAQkB,QAAWtB,WAAWsB,QAC7BA,gBAAiBC,QAOnBL,OAAOL,MAAQS,OALVJ,OAAOL,QACRK,OAAOL,UAEXI,MAAMC,OAAOL,MAAOS,MAAOF,MAAOC,qBAO3CH,OAKX,QAASM,MAAKZ,IAAKa,IACf,MAAO,YACH,MAAOA,IAAGC,MAAMd,IAAKe,YAI7B,QAASC,WACL,MAAOC,UAASC,qBAAqB,UAGzC,QAASC,gBAAeC,KACpB,KAAMA,KAKV,QAASC,WAAUX,OACf,IAAKA,MACD,MAAOA,MAEX,IAAIY,GAAInC,MAIR,OAHAM,MAAKiB,MAAMa,MAAM,KAAM,SAAUC,MAC7BF,EAAIA,EAAEE,QAEHF,EAWX,QAASG,WAAUC,GAAIC,IAAKP,IAAKQ,gBAC7B,GAAIC,GAAI,GAAIC,OAAMH,IAAM,2CAA6CD,GAMrE,OALAG,GAAEE,YAAcL,GAChBG,EAAED,eAAiBA,eACfR,MACAS,EAAEG,cAAgBZ,KAEfS,EAyBX,QAASI,YAAWC,aAqChB,QAASC,UAASzC,KACd,GAAIE,GAAG4B,IACP,KAAK5B,EAAI,EAAGA,EAAIF,IAAIG,OAAQD,IAExB,GADA4B,KAAO9B,IAAIE,GACE,MAAT4B,KACA9B,IAAI0C,OAAOxC,EAAG,GACdA,GAAK,MACF,IAAa,OAAT4B,KAAe,CAMtB,GAAU,IAAN5B,GAAkB,IAANA,GAAsB,OAAXF,IAAI,IAA+B,OAAfA,IAAIE,EAAI,GACnD,QACOA,GAAI,IACXF,IAAI0C,OAAOxC,EAAI,EAAG,GAClBA,GAAK,IAgBrB,QAASyC,WAAUC,KAAMC,SAAUC,UAC/B,GAAIC,SAASC,SAAUC,UAAW/C,EAAGgD,EAAGC,YAAaC,UACjDC,SAAUC,OAAQC,aAAcC,MAAOC,oBACvCC,UAAab,UAAYA,SAAShB,MAAM,KACxC8B,IAAMC,OAAOD,IACbE,QAAUF,KAAOA,IAAI,IA+BzB,IA5BIf,OACAA,KAAOA,KAAKf,MAAM,KAClBuB,UAAYR,KAAKzC,OAAS,EAMtByD,OAAOE,cAAgBC,eAAeC,KAAKpB,KAAKQ,cAChDR,KAAKQ,WAAaR,KAAKQ,WAAWa,QAAQF,eAAgB,KAIpC,MAAtBnB,KAAK,GAAGsB,OAAO,IAAcR,YAM7BD,oBAAsBC,UAAUS,MAAM,EAAGT,UAAUvD,OAAS,GAC5DyC,KAAOa,oBAAoBW,OAAOxB,OAGtCH,SAASG,MACTA,KAAOA,KAAKyB,KAAK,MAIjBvB,UAAYa,MAAQD,WAAaG,SAAU,CAC3CZ,UAAYL,KAAKf,MAAM,IAEvByC,WAAW,IAAKpE,EAAI+C,UAAU9C,OAAQD,EAAI,EAAGA,GAAK,EAAG,CAGjD,GAFAiD,YAAcF,UAAUkB,MAAM,EAAGjE,GAAGmE,KAAK,KAErCX,UAGA,IAAKR,EAAIQ,UAAUvD,OAAQ+C,EAAI,EAAGA,GAAK,EAKnC,GAJAF,SAAWvC,OAAOkD,IAAKD,UAAUS,MAAM,EAAGjB,GAAGmB,KAAK,MAI9CrB,WACAA,SAAWvC,OAAOuC,SAAUG,cACd,CAEVE,SAAWL,SACXM,OAASpD,CACT,MAAMoE,YASjBf,cAAgBM,SAAWpD,OAAOoD,QAASV,eAC5CI,aAAe9C,OAAOoD,QAASV,aAC/BK,MAAQtD,IAIXmD,UAAYE,eACbF,SAAWE,aACXD,OAASE,OAGTH,WACAJ,UAAUP,OAAO,EAAGY,OAAQD,UAC5BT,KAAOK,UAAUoB,KAAK,MAQ9B,MAFAtB,SAAUtC,OAAOmD,OAAOW,KAAM3B,MAEvBG,QAAUA,QAAUH,KAG/B,QAAS4B,cAAa5B,MACd6B,WACA1E,KAAKuB,UAAW,SAAUoD,YACtB,MAAIA,YAAWC,aAAa,wBAA0B/B,MAC9C8B,WAAWC,aAAa,yBAA2BC,QAAQpC,aAC/DkC,WAAWG,WAAWC,YAAYJ,aAC3B,GAHX,SASZ,QAASK,iBAAgB/C,IACrB,GAAIgD,YAAavE,OAAOmD,OAAOqB,MAAOjD,GACtC,OAAIgD,aAAclF,QAAQkF,aAAeA,WAAW7E,OAAS,GAGzD6E,WAAWE,QACXN,QAAQrF,QAAQ4F,MAAMnD,IAItB4C,QAAQQ,YAAY,MAChBC,SAAS,KACTrD,MAEG,GAZX,OAmBJ,QAASsD,aAAY1C,MACjB,GAAI2C,QACAC,MAAQ5C,KAAOA,KAAK6C,QAAQ,KAAO,EAKvC,OAJID,OAAQ,KACRD,OAAS3C,KAAK8C,UAAU,EAAGF,OAC3B5C,KAAOA,KAAK8C,UAAUF,MAAQ,EAAG5C,KAAKzC,UAElCoF,OAAQ3C,MAkBpB,QAAS+C,eAAc/C,KAAMgD,gBAAiBC,aAAc/C,UACxD,GAAIgD,KAAKC,aAAcC,OAAQ/C,UAC3BsC,OAAS,KACTU,WAAaL,gBAAkBA,gBAAgBhD,KAAO,KACtDsD,aAAetD,KACfuD,UAAW,EACXC,eAAiB,EA6DrB,OAzDKxD,QACDuD,UAAW,EACXvD,KAAO,OAASyD,gBAAkB,IAGtCpD,UAAYqC,YAAY1C,MACxB2C,OAAStC,UAAU,GACnBL,KAAOK,UAAU,GAEbsC,SACAA,OAAS5C,UAAU4C,OAAQU,WAAYnD,UACvCiD,aAAetF,OAAO6F,QAASf,SAI/B3C,OACI2C,OAGIa,eAFAL,cAAgBA,aAAapD,UAEZoD,aAAapD,UAAUC,KAAM,SAAUA,MACpD,MAAOD,WAAUC,KAAMqD,WAAYnD,YAUA,KAAtBF,KAAK6C,QAAQ,KACb9C,UAAUC,KAAMqD,WAAYnD,UAC5BF,MAIrBwD,eAAiBzD,UAAUC,KAAMqD,WAAYnD,UAK7CG,UAAYqC,YAAYc,gBACxBb,OAAStC,UAAU,GACnBmD,eAAiBnD,UAAU,GAC3B4C,cAAe,EAEfC,IAAMlB,QAAQ2B,UAAUH,kBAOhCJ,QAAST,QAAWQ,cAAiBF,aAE5B,GADA,iBAAmBW,qBAAuB,IAI/CjB,OAAQA,OACR3C,KAAMwD,eACNK,UAAWb,gBACXc,eAAgBV,OAChBF,IAAKA,IACLI,aAAcA,aACdC,SAAUA,SACVnE,IAAKuD,OACGA,OAAS,IAAMa,eACfA,gBAAkBJ,QAIlC,QAASW,WAAUC,QACf,GAAI5E,IAAK4E,OAAO5E,GACZ6E,IAAMpG,OAAOqG,SAAU9E,GAM3B,OAJK6E,OACDA,IAAMC,SAAS9E,IAAM,GAAI4C,SAAQmC,OAAOH,SAGrCC,IAGX,QAASG,IAAGJ,OAAQhE,KAAMzB,IACtB,GAAIa,IAAK4E,OAAO5E,GACZ6E,IAAMpG,OAAOqG,SAAU9E,KAEvB3B,QAAQiG,QAAStE,KACX6E,MAAOA,IAAII,oBAKjBJ,IAAMF,UAAUC,QACZC,IAAIK,OAAkB,UAATtE,KACbzB,GAAG0F,IAAIK,OAEPL,IAAIG,GAAGpE,KAAMzB,KARJ,YAATyB,MACAzB,GAAGmF,QAAQtE,KAYvB,QAASmF,SAAQzF,IAAK0F,SAClB,GAAIC,KAAM3F,IAAIQ,eACVoF,UAAW,CAEXF,SACAA,QAAQ1F,MAER3B,KAAKsH,IAAK,SAAUrF,IAChB,GAAI6E,KAAMpG,OAAOqG,SAAU9E,GACvB6E,OAEAA,IAAIK,MAAQxF,IACRmF,IAAIU,OAAOL,QACXI,UAAW,EACXT,IAAIW,KAAK,QAAS9F,SAKzB4F,UACDG,IAAIN,QAAQzF,MASxB,QAASgG,mBAEDC,eAAexH,SACfJ,KAAK4H,eAAgB,SAASC,WAC1B,GAAI5F,IAAK4F,UAAU,EACD,iBAAP5F,MACP4C,QAAQiD,YAAY7F,KAAM,GAE9B8F,SAASC,KAAKH,aAElBD,mBAsCR,QAASK,eAAchG,UAEZ8E,UAAS9E,UACTiG,iBAAgBjG,IAG3B,QAASkG,YAAWrB,IAAKsB,OAAQC,WAC7B,GAAIpG,IAAK6E,IAAIlD,IAAI3B,EAEb6E,KAAIK,MACJL,IAAIW,KAAK,QAASX,IAAIK,QAEtBiB,OAAOnG,KAAM,EACbjC,KAAK8G,IAAIwB,QAAS,SAAUzB,OAAQ1G,GAChC,GAAIoI,OAAQ1B,OAAO5E,GACfuG,IAAM9H,OAAOqG,SAAUwB,QAMvBC,KAAQ1B,IAAI2B,WAAWtI,IAAOkI,UAAUE,SACpC7H,OAAO0H,OAAQG,QACfzB,IAAI4B,UAAUvI,EAAGoG,QAAQgC,QACzBzB,IAAI6B,SAEJR,WAAWK,IAAKJ,OAAQC,cAIpCA,UAAUpG,KAAM,GAIxB,QAAS2G,eACL,GAAIjH,KAAKkH,kBACLC,aAAoC,IAArBjF,OAAOkF,YAEtBC,QAAUF,cAAiBjE,QAAQoE,UAAYH,cAAgB,GAAII,OAAOC,UAC1EC,WACAC,YACAC,cAAe,EACfC,gBAAiB,CAGrB,KAAIC,cAAJ,CA6CA,GAzCAA,eAAgB,EAGhB7I,SAASuH,gBAAiB,SAAUpB,KAChC,GAAIlD,KAAMkD,IAAIlD,IACV6F,MAAQ7F,IAAI3B,EAGhB,IAAK6E,IAAI4C,UAIJ9F,IAAIwC,UACLiD,SAASrB,KAAKlB,MAGbA,IAAIK,OAGL,IAAKL,IAAI6C,QAAUX,QACXhE,gBAAgByE,QAChBZ,mBAAoB,EACpBS,cAAe,IAEfF,QAAQpB,KAAKyB,OACbhF,aAAagF,YAEd,KAAK3C,IAAI6C,QAAU7C,IAAI8C,SAAWhG,IAAIwC,WACzCkD,cAAe,GACV1F,IAAI4B,QAML,MAAQ+D,iBAAiB,IAMrCP,SAAWI,QAAQhJ,OAInB,MAFAuB,KAAMK,UAAU,UAAW,6BAA+BoH,QAAS,KAAMA,SACzEzH,IAAIc,YAAcoC,QAAQpC,YACnB2E,QAAQzF,IAIf4H,iBACAvJ,KAAKqJ,SAAU,SAAUvC,KACrBqB,WAAWrB,aAObkC,UAAWH,oBAAsBS,eAG9B5E,YAAamF,aAAiBC,uBAC/BA,qBAAuBC,WAAW,WAC9BD,qBAAuB,EACvBlB,eACD,KAIXY,eAAgB,GAkepB,QAASQ,eAAcC,MAEd3J,QAAQiG,QAAS0D,KAAK,KACvBrD,UAAUhB,cAAcqE,KAAK,GAAI,MAAM,IAAOC,KAAKD,KAAK,GAAIA,KAAK,IAIzE,QAASE,gBAAeC,KAAMlK,KAAM2C,KAAMwH,QAIlCD,KAAKE,cAAgBC,QAGjBF,QACAD,KAAKE,YAAYD,OAAQnK,MAG7BkK,KAAKI,oBAAoB3H,KAAM3C,MAAM,GAU7C,QAASuK,eAAcC,KAInB,GAAIN,MAAOM,IAAIC,eAAiBD,IAAIE,UAMpC,OAHAT,gBAAeC,KAAMvF,QAAQgG,aAAc,OAAQ,sBACnDV,eAAeC,KAAMvF,QAAQiG,cAAe,UAGxCV,KAAMA,KACNnI,GAAImI,MAAQA,KAAKxF,aAAa,uBAItC,QAASmG,iBACL,GAAId,KAMJ,KAHAtC,kBAGOI,SAAS3H,QAAQ,CAEpB,GADA6J,KAAOlC,SAAS5C,QACA,OAAZ8E,KAAK,GACL,MAAO7C,SAAQpF,UAAU,WAAY,yCACjCiI,KAAKA,KAAK7J,OAAS,IAIvB4J,eAAcC,MAGtBpF,QAAQiD,eA1iCZ,GAAI0B,eAAexC,OAAQnC,QAASmG,SAChClB,qBACAjG,QAIIkF,YAAa,EACbkC,QAAS,KACT/F,SACAgG,WACA1G,QACA2G,QACAtH,WAEJkD,YAIAmB,mBACAkD,eACArD,YACAxB,WACA8E,cACAC,cACAhF,eAAiB,EACjBG,oBAAsB,CA++C1B,OAtpCAuE,WACIxL,QAAW,SAAUsH,KACjB,MAAIA,KAAItH,QACGsH,IAAItH,QAEHsH,IAAItH,QAAUqF,QAAQQ,YAAYyB,IAAIlD,MAGtD2H,QAAW,SAAUzE,KAEjB,MADAA,KAAI0E,cAAe,EACf1E,IAAIlD,IAAIwC,SACJU,IAAIyE,QACIhF,QAAQO,IAAIlD,IAAI3B,IAAM6E,IAAIyE,QAE1BzE,IAAIyE,QAAUhF,QAAQO,IAAIlD,IAAI3B,OAJ9C,QAQJwJ,OAAU,SAAU3E,KAChB,MAAIA,KAAI2E,OACG3E,IAAI2E,OAEH3E,IAAI2E,QACRxJ,GAAI6E,IAAIlD,IAAI3B,GACZyJ,IAAK5E,IAAIlD,IAAImC,IACblC,OAAQ,WACJ,MAAOnD,QAAOmD,OAAOA,OAAQiD,IAAIlD,IAAI3B,SAEzCsJ,QAASzE,IAAIyE,UAAYzE,IAAIyE,eA+H7CvE,OAAS,SAAUpD,KACf+H,KAAKnE,OAAS9G,OAAO0K,YAAaxH,IAAI3B,QACtC0J,KAAK/H,IAAMA,IACX+H,KAAKR,KAAOzK,OAAOmD,OAAOsH,KAAMvH,IAAI3B,IACpC0J,KAAKC,cACLD,KAAKrD,WACLqD,KAAKlD,cACLkD,KAAKE,cACLF,KAAKG,SAAW,GAQpB9E,OAAO+E,WACH7B,KAAM,SAAU5B,QAAS0D,QAAS3E,QAAS4E,SACvCA,QAAUA,YAKNN,KAAKhC,SAITgC,KAAKK,QAAUA,QAEX3E,QAEAsE,KAAK1E,GAAG,QAASI,SACVsE,KAAKnE,OAAOL,QAGnBE,QAAUlG,KAAKwK,KAAM,SAAUhK,KAC3BgK,KAAKlE,KAAK,QAAS9F,QAS3BgK,KAAKrD,QAAUA,SAAWA,QAAQlE,MAAM,GAExCuH,KAAKtE,QAAUA,QAGfsE,KAAKhC,QAAS,EAEdgC,KAAKO,OAASD,QAAQC,OAMlBD,QAAQvC,SAAWiC,KAAKjC,QAGxBiC,KAAKQ,SAELR,KAAKhD,UAIbD,UAAW,SAAUvI,EAAGyL,YAGfD,KAAKlD,WAAWtI,KACjBwL,KAAKlD,WAAWtI,IAAK,EACrBwL,KAAKG,UAAY,EACjBH,KAAKC,WAAWzL,GAAKyL,aAI7BQ,MAAO,WACH,IAAIT,KAAK/B,QAAT,CAGA+B,KAAK/B,SAAU,EAEf/E,QAAQoE,WAAY,GAAKC,OAAQC,SAEjC,IAAIvF,KAAM+H,KAAK/H,GAIf,OAAI+H,MAAKR,SACLtG,SAAQQ,YAAYsG,KAAK/H,KACrByI,qBAAqB,IACtBV,KAAKR,KAAKmB,SAAYnL,KAAKwK,KAAM,WAChC,MAAO/H,KAAI4B,OAASmG,KAAKY,aAAeZ,KAAKa,UAI1C5I,IAAI4B,OAASmG,KAAKY,aAAeZ,KAAKa,SAIrDA,KAAM,WACF,GAAIzG,KAAM4F,KAAK/H,IAAImC,GAGdsF,YAAWtF,OACZsF,WAAWtF,MAAO,EAClBlB,QAAQ2H,KAAKb,KAAK/H,IAAI3B,GAAI8D,OAQlC4C,MAAO,WACH,GAAKgD,KAAKjC,UAAWiC,KAAKc,SAA1B,CAIA,GAAI9K,KAAK+K,UACLzK,GAAK0J,KAAK/H,IAAI3B,GACd2J,WAAaD,KAAKC,WAClBL,QAAUI,KAAKJ,QACfS,QAAUL,KAAKK,OAEnB,IAAKL,KAAKhC,QAKH,GAAIgC,KAAKxE,MACZwE,KAAKlE,KAAK,QAASkE,KAAKxE,WACrB,KAAKwE,KAAKgB,SAAU,CAOvB,GAFAhB,KAAKgB,UAAW,EAEZhB,KAAKG,SAAW,IAAMH,KAAKpF,QAAS,CACpC,GAAI5G,WAAWqM,SAAU,CACrB,IACIT,QAAU1G,QAAQ+H,OAAO3K,GAAI+J,QAASJ,WAAYL,SACpD,MAAOnJ,GACLT,IAAMS,EAgBV,GAVIuJ,KAAK/H,IAAIwC,UAAwByG,SAAZtB,UACrBmB,UAAYf,KAAKF,OACbiB,UACAnB,QAAUmB,UAAUnB,QACbI,KAAKH,eAEZD,QAAUI,KAAKJ,UAInB5J,IAAK,CAOL,GAAKgK,KAAKnE,OAAOL,OAASwE,KAAK/H,IAAIwC,UAC/BsB,IAAIN,UAAY1F,eAIhB,MAHAC,KAAImL,WAAanB,KAAK/H,IACtBjC,IAAIQ,eAAiBwJ,KAAK/H,IAAIwC,UAAYuF,KAAK/H,IAAI3B,IAAM,KACzDN,IAAIW,YAAcqJ,KAAK/H,IAAIwC,SAAW,SAAW,UAC1CgB,QAASuE,KAAKxE,MAAQxF,IACH,oBAAZoL,UACPA,QAAQ5F,MAGf4F,QAAQ5F,MAAMxF,KAKd+F,IAAIN,QAAQzF,UAKpB4J,SAAUS,OAKd,IAFAL,KAAKJ,QAAUA,QAEXI,KAAK/H,IAAIwC,WAAauF,KAAKO,SAC3B3F,QAAQtE,IAAMsJ,QAEV7D,IAAIsF,gBAAgB,CACpB,GAAIC,eACJjN,MAAK2L,KAAKrD,QAAS,SAAUzB,QACzBoG,YAAYjF,KAAKnB,OAAOqG,eAAiBrG,UAE7Ca,IAAIsF,eAAenI,QAAS8G,KAAK/H,IAAKqJ,aAK9ChF,cAAchG,IAEd0J,KAAKpF,SAAU,EAMnBoF,KAAKgB,UAAW,EAEZhB,KAAKpF,UAAYoF,KAAKwB,gBACtBxB,KAAKwB,eAAgB,EACrBxB,KAAKlE,KAAK,UAAWkE,KAAKJ,SAC1BI,KAAKzE,oBAAqB,QA3FzB5G,SAAQuE,QAAQiD,YAAa7F,KAC9B0J,KAAKS,UAgGjBG,WAAY,WACR,GAAI3I,KAAM+H,KAAK/H,IACX3B,GAAK2B,IAAI3B,GAETmL,UAAYxH,cAAchC,IAAI4B,OAIlCmG,MAAKrD,QAAQN,KAAKoF,WAElBnG,GAAGmG,UAAW,UAAWjM,KAAKwK,KAAM,SAAU0B,QAC1C,GAAIb,MAAMU,cAAeI,cACrBC,SAAW7M,OAAO4K,WAAYK,KAAK/H,IAAI3B,IACvCY,KAAO8I,KAAK/H,IAAIf,KAChBqD,WAAayF,KAAK/H,IAAI8C,UAAYiF,KAAK/H,IAAI8C,UAAU7D,KAAO,KAC5D2K,aAAe3I,QAAQQ,YAAYzB,IAAI8C,WACnC2F,qBAAqB,GAK7B,OAAIV,MAAK/H,IAAI+C,cAEL0G,OAAOzK,YACPC,KAAOwK,OAAOzK,UAAUC,KAAM,SAAUA,MACpC,MAAOD,WAAUC,KAAMqD,YAAY,MACjC,IAKVgH,cAAgBtH,cAAchC,IAAI4B,OAAS,IAAM3C,KACnB8I,KAAK/H,IAAI8C,WACvCO,GAAGiG,cACC,UAAW/L,KAAKwK,KAAM,SAAU1K,OAC5B0K,KAAK/H,IAAIsJ,cAAgBA,cACzBvB,KAAKzB,QAAS,WAAc,MAAOjJ,QAAU,MACzCyI,SAAS,EACTwC,QAAQ,OAIpBoB,cAAgB5M,OAAOqG,SAAUmG,cAAcjL,SAC3CqL,gBAGA3B,KAAKrD,QAAQN,KAAKkF,eAEdvB,KAAKnE,OAAOL,OACZmG,cAAcrG,GAAG,QAAS9F,KAAKwK,KAAM,SAAUhK,KAC3CgK,KAAKlE,KAAK,QAAS9F,QAG3B2L,cAAcnB,YAQlBoB,UACA5B,KAAK/H,IAAImC,IAAMlB,QAAQ2B,UAAU+G,cACjC5B,MAAKa,SAITA,KAAOrL,KAAKwK,KAAM,SAAU1K,OACxB0K,KAAKzB,QAAS,WAAc,MAAOjJ,QAAU,MACzCyI,SAAS,MAIjB8C,KAAKrF,MAAQhG,KAAKwK,KAAM,SAAUhK,KAC9BgK,KAAKhC,QAAS,EACdgC,KAAKxE,MAAQxF,IACbA,IAAIQ,gBAAkBF,IAItBtB,SAASoG,SAAU,SAAUD,KACwB,IAA7CA,IAAIlD,IAAI3B,GAAGyD,QAAQzD,GAAK,kBACxBgG,cAAcnB,IAAIlD,IAAI3B,MAI9BmF,QAAQzF,OAKZ6K,KAAKiB,SAAWtM,KAAKwK,KAAM,SAAU+B,KAAMC,SAEvC,GAAIC,YAAahK,IAAIf,KACjBgL,UAAYjI,cAAcgI,YAC1BE,eAAiBC,cAMjBJ,WACAD,KAAOC,SAKPG,iBACAC,gBAAiB,GAKrBnH,UAAUiH,WAGNvN,QAAQuD,OAAOA,OAAQ5B,MACvB4B,OAAOA,OAAO+J,YAAc/J,OAAOA,OAAO5B,IAG9C,KACIyF,IAAIsG,KAAKN,MACX,MAAOtL,GACL,MAAOgF,SAAQpF,UAAU,eACR,qBAAuBC,GACxB,YAAcG,EACbA,GACCH,MAGlB6L,iBACAC,gBAAiB,GAKrBpC,KAAKrD,QAAQN,KAAK6F,WAGlBhJ,QAAQoJ,aAAaL,YAIrBJ,cAAcI,YAAapB,YAM/Ba,QAAOb,KAAK5I,IAAIf,KAAM2K,aAAchB,KAAM3I,YAG9CgB,QAAQsH,OAAOiB,UAAWzB,MAC1BA,KAAKE,WAAWuB,UAAUnL,IAAMmL,WAGpCjB,OAAQ,WACJjE,gBAAgByD,KAAK/H,IAAI3B,IAAM0J,KAC/BA,KAAKjC,SAAU,EAMfiC,KAAKc,UAAW,EAGhBzM,KAAK2L,KAAKrD,QAASnH,KAAKwK,KAAM,SAAU9E,OAAQ1G,GAC5C,GAAI8B,IAAI6E,IAAKoH,OAEb,IAAsB,gBAAXrH,QAAqB,CAW5B,GARAA,OAASjB,cAAciB,OACC8E,KAAK/H,IAAIwC,SAAWuF,KAAK/H,IAAM+H,KAAK/H,IAAI8C,WACzC,GACCiF,KAAKrG,SAC7BqG,KAAKrD,QAAQnI,GAAK0G,OAElBqH,QAAUxN,OAAOsK,SAAUnE,OAAO5E,IAI9B,YADA0J,KAAKC,WAAWzL,GAAK+N,QAAQvC,MAIjCA,MAAKG,UAAY,EAEjB7E,GAAGJ,OAAQ,UAAW1F,KAAKwK,KAAM,SAAUC,YACnCD,KAAKwC,UAGTxC,KAAKjD,UAAUvI,EAAGyL,YAClBD,KAAKhD,YAGLgD,KAAKtE,QACLJ,GAAGJ,OAAQ,QAAS1F,KAAKwK,KAAMA,KAAKtE,UAC7BsE,KAAKnE,OAAOL,OAInBF,GAAGJ,OAAQ,QAAS1F,KAAKwK,KAAM,SAAShK,KACpCgK,KAAKlE,KAAK,QAAS9F,QAK/BM,GAAK4E,OAAO5E,GACZ6E,IAAMC,SAAS9E,IAKV3B,QAAQ0K,SAAU/I,MAAO6E,KAAQA,IAAI4C,SACtC7E,QAAQsH,OAAOtF,OAAQ8E,SAM/BhL,SAASgL,KAAKE,WAAY1K,KAAKwK,KAAM,SAAUyB,WAC3C,GAAItG,KAAMpG,OAAOqG,SAAUqG,UAAUnL,GACjC6E,OAAQA,IAAI4C,SACZ7E,QAAQsH,OAAOiB,UAAWzB,SAIlCA,KAAKc,UAAW,EAEhBd,KAAKhD,SAGT1B,GAAI,SAAUpE,KAAMuL,IAChB,GAAIC,KAAM1C,KAAKnE,OAAO3E,KACjBwL,OACDA,IAAM1C,KAAKnE,OAAO3E,UAEtBwL,IAAIrG,KAAKoG,KAGb3G,KAAM,SAAU5E,KAAM6H,KAClB1K,KAAK2L,KAAKnE,OAAO3E,MAAO,SAAUuL,IAC9BA,GAAG1D,OAEM,UAAT7H,YAIO8I,MAAKnE,OAAO3E,QAsE/BgC,SACIhB,OAAQA,OACRpB,YAAaA,YACbsE,SAAUA,SACVR,QAASA,QACT8E,WAAYA,WACZtD,SAAUA,SACVD,eACAd,OAAQA,OACRpB,cAAeA,cACf0I,SAAU5G,IAAI4G,SACdlH,QAASA,QAMTmH,UAAW,SAAUC,KAEbA,IAAIvD,SAC+C,MAA/CuD,IAAIvD,QAAQ9G,OAAOqK,IAAIvD,QAAQ7K,OAAS,KACxCoO,IAAIvD,SAAW,IAMvB,IAAIE,MAAOtH,OAAOsH,KACdsD,MACIvJ,OAAO,EACPgG,SAAS,EACTrH,QAAQ,EACRD,KAAK,EAGbjD,UAAS6N,IAAK,SAAUvN,MAAOT,MACvBiO,KAAKjO,OACAqD,OAAOrD,QACRqD,OAAOrD,UAEXI,MAAMiD,OAAOrD,MAAOS,OAAO,GAAM,IAEjC4C,OAAOrD,MAAQS,QAKnBuN,IAAItD,SACJvK,SAAS6N,IAAItD,QAAS,SAAUjK,MAAOT,MACnCR,KAAKiB,MAAO,SAAUyN,GACdA,IAAMlO,OACN8K,WAAWoD,GAAKlO,UAO5BgO,IAAIrD,OACJxK,SAAS6N,IAAIrD,KAAM,SAAUlK,MAAOgB,IAE5BlC,QAAQkB,SACRA,OACIqL,KAAMrL,SAGTA,MAAMsK,UAAWtK,MAAMiJ,MAAUjJ,MAAM0N,YACxC1N,MAAM0N,UAAY9J,QAAQ+J,gBAAgB3N,QAE9CkK,KAAKlJ,IAAMhB,QAEf4C,OAAOsH,KAAOA,MAIdqD,IAAIK,UACJ7O,KAAKwO,IAAIK,SAAU,SAAUC,QACzB,GAAIC,UAAUlM,IAEdiM,QAA2B,gBAAXA,SAAuBjM,KAAMiM,QAAUA,OAEvDjM,KAAOiM,OAAOjM,KACdkM,SAAWD,OAAOC,SACdA,WACAlL,OAAOqB,MAAMrC,MAAQiM,OAAOC,UAQhClL,OAAOW,KAAK3B,MAAQiM,OAAOjM,KAAO,KAAOiM,OAAOE,MAAQ,QAC1C9K,QAAQ+K,cAAe,IACvB/K,QAAQF,eAAgB,MAO9CrD,SAASoG,SAAU,SAAUD,IAAK7E,IAIzB6E,IAAI6C,QAAW7C,IAAIlD,IAAI+C,eACxBG,IAAIlD,IAAMgC,cAAc3D,GAAI,MAAM,OAOtCuM,IAAIlC,MAAQkC,IAAIU,WAChBrK,QAAQrF,QAAQgP,IAAIlC,SAAYkC,IAAIU,WAI5CN,gBAAiB,SAAU3N,OACvB,QAASG,MACL,GAAI+N,IAIJ,OAHIlO,OAAMiJ,OACNiF,IAAMlO,MAAMiJ,KAAK7I,MAAM3B,OAAQ4B,YAE5B6N,KAAQlO,MAAMsK,SAAW3J,UAAUX,MAAMsK,SAEpD,MAAOnK,KAGXiE,YAAa,SAAU+J,OAAQnD,SAG3B,QAASuB,cAAalB,KAAM4C,SAAU7H,SAClC,GAAIpF,IAAI2B,IAAKyL,UAMb,OAJIpD,SAAQI,qBAAuB6C,UAAYvP,WAAWuP,YACtDA,SAASI,kBAAmB,GAGZ,gBAAThD,MACH3M,WAAWuP,UAEJ9H,QAAQpF,UAAU,cAAe,wBAAyBqF,SAMjE+H,QAAU9O,QAAQ0K,SAAUsB,MACrBtB,SAASsB,MAAMvF,SAASqI,OAAOnN,KAKtCyF,IAAI6H,IACG7H,IAAI6H,IAAI1K,QAASyH,KAAM8C,OAAQ5B,eAI1C5J,IAAMgC,cAAc0G,KAAM8C,QAAQ,GAAO,GACzCnN,GAAK2B,IAAI3B,GAEJ3B,QAAQiG,QAAStE,IAOfsE,QAAQtE,IANJmF,QAAQpF,UAAU,YAAa,gBAC1BC,GACA,0CACAQ,aACC2M,OAAS,GAAK,yBAMnCrE,gBAGAlG,QAAQyJ,SAAS,WAGbvD,gBAEAsE,WAAazI,UAAUhB,cAAc,KAAMwJ,SAI3CC,WAAW/J,QAAU2G,QAAQ3G,QAE7B+J,WAAWnF,KAAKoC,KAAM4C,SAAU7H,SAC5BqC,SAAS,IAGbd,gBAGG4E,cA8EX,MA9IAvB,SAAUA,YAmEVrL,MAAM4M,cACF9I,UAAWA,UAOX8K,MAAO,SAAUC,mBACb,GAAIC,KACAjK,MAAQgK,kBAAkBE,YAAY,KACtCC,QAAUH,kBAAkB3N,MAAM,KAAK,GACvC+N,WAAyB,MAAZD,SAA+B,OAAZA,OASpC,OALc,KAAVnK,SAAkBoK,YAAcpK,MAAQ,KACxCiK,IAAMD,kBAAkB9J,UAAUF,MAAOgK,kBAAkBrP,QAC3DqP,kBAAoBA,kBAAkB9J,UAAU,EAAGF,QAGhDZ,QAAQ2B,UAAU5D,UAAU6M,kBACXL,QAAUA,OAAOnN,IAAI,GAAOyN,KAAM,IAG9DnJ,QAAS,SAAUtE,IACf,MAAO3B,SAAQiG,QAASX,cAAc3D,GAAImN,QAAQ,GAAO,GAAMnN,KAGnE6N,UAAW,SAAU7N,IAEjB,MADAA,IAAK2D,cAAc3D,GAAImN,QAAQ,GAAO,GAAMnN,GACrC3B,QAAQiG,QAAStE,KAAO3B,QAAQyG,SAAU9E,OAKpDmN,SACD5B,aAAapI,MAAQ,SAAUnD,IAG3B0F,iBAEA,IAAI/D,KAAMgC,cAAc3D,GAAImN,QAAQ,GAChCtI,IAAMpG,OAAOqG,SAAU9E,GAE3B6E,KAAIqH,SAAU,EACd1J,aAAaxC,UAENsE,SAAQtE,UACRoJ,YAAWzH,IAAImC,WACfqF,aAAYnJ,IAKnB5B,YAAY0H,SAAU,SAASkC,KAAM9J,GAC7B8J,KAAK,KAAOhI,IACZ8F,SAASpF,OAAOxC,EAAG,WAGpB0E,SAAQiD,YAAY7F,IAEvB6E,MAIIA,IAAIU,OAAOjB,UACX6E,YAAYnJ,IAAM6E,IAAIU,QAG1BS,cAAchG,OAKnBuL,cASXrB,OAAQ,SAAUtF,QACd,GAAIC,KAAMpG,OAAOqG,SAAUF,OAAO5E,GAC9B6E,MACAF,UAAUC,QAAQsF,UAU1B8B,aAAc,SAAUL,YACpB,GAAImC,OAAO9F,KAAMnD,IACbqE,KAAOzK,OAAOmD,OAAOsH,KAAMyC,gBAC3BoC,UAAY7E,KAAKI,OAIrB,KAFA5D,kBAEOI,SAAS3H,QAAQ,CAEpB,GADA6J,KAAOlC,SAAS5C,QACA,OAAZ8E,KAAK,GAAa,CAKlB,GAJAA,KAAK,GAAK2D,WAINmC,MACA,KAEJA,QAAQ,MACD9F,MAAK,KAAO2D,aAEnBmC,OAAQ,EAGZ/F,eAAcC,MAQlB,GANApF,QAAQiD,eAIRhB,IAAMpG,OAAOqG,SAAU6G,aAElBmC,QAAUzP,QAAQiG,QAASqH,aAAe9G,MAAQA,IAAI6C,OAAQ,CAC/D,MAAI9F,OAAOoM,eAAmBD,WAAcpO,UAAUoO,YAClD,MAAIhL,iBAAgB4I,YAChB,OAEOxG,QAAQpF,UAAU,WACR,sBAAwB4L,WACxB,MACCA,aAKtB5D,gBAAe4D,WAAazC,KAAKmB,SAAanB,KAAKwD,YAI3D/F,eAUJpC,UAAW,SAAUoH,WAAY8B,IAAKQ,SAClC,GAAIhL,OAAOiL,KAAMhQ,EAAGiQ,aAAcrK,IAC9BsK,WAAY9C,SACZvK,QAAUtC,OAAOmD,OAAOW,KAAMoJ,WAQlC,IANI5K,UACA4K,WAAa5K,SAGjBuK,SAAW7M,OAAO4K,WAAYsC,YAG1B,MAAO/I,SAAQ2B,UAAU+G,SAAUmC,IAAKQ,QAO5C,IAAIxI,IAAI4I,YAAYrM,KAAK2J,YAIrB7H,IAAM6H,YAAc8B,KAAO,QACxB,CAQH,IANAxK,MAAQrB,OAAOqB,MAEfiL,KAAOvC,WAAW9L,MAAM,KAInB3B,EAAIgQ,KAAK/P,OAAQD,EAAI,EAAGA,GAAK,EAI9B,GAHAiQ,aAAeD,KAAK/L,MAAM,EAAGjE,GAAGmE,KAAK,KAErC+L,WAAa3P,OAAOwE,MAAOkL,cACX,CAGRrQ,QAAQsQ,cACRA,WAAaA,WAAW,IAE5BF,KAAKxN,OAAO,EAAGxC,EAAGkQ,WAClB,OAKRtK,IAAMoK,KAAK7L,KAAK,KAChByB,KAAQ2J,MAAQ,aAAazL,KAAK8B,MAAQmK,QAAU,GAAK,OACzDnK,KAAyB,MAAlBA,IAAI5B,OAAO,IAAc4B,IAAIwK,MAAM,iBAAmB,GAAK1M,OAAOoH,SAAWlF,IAGxF,MAAOlC,QAAO2M,QAAUzK,MACuB,KAArBA,IAAIL,QAAQ,KAAc,IAAM,KACjC7B,OAAO2M,SAAWzK,KAK/CyG,KAAM,SAAUvK,GAAI8D,KAChB2B,IAAI8E,KAAK3H,QAAS5C,GAAI8D,MAU1B6G,OAAQ,SAAU/J,KAAMqM,SAAUjF,KAAMsB,SACpC,MAAO2D,UAAS7N,MAAMkK,QAAStB,OASnCY,aAAc,SAAUH,KAIpB,GAAiB,SAAbA,IAAI+F,MACCC,YAAYzM,MAAMyG,IAAIC,eAAiBD,IAAIE,YAAY+F,YAAc,CAG1EC,kBAAoB,IAGpB,IAAIC,MAAOpG,cAAcC,IACzB7F,SAAQoJ,aAAa4C,KAAK5O,MAOlC6I,cAAe,SAAUJ,KACrB,GAAImG,MAAOpG,cAAcC,IACzB,KAAK1F,gBAAgB6L,KAAK5O,IAAK,CAC3B,GAAI6O,WAWJ,OAVAnQ,UAASoG,SAAU,SAAS9F,MAAO8P,KACJ,IAAvBA,IAAIrL,QAAQ,QACZ1F,KAAKiB,MAAMqH,QAAS,SAASzB,QAIzB,MAHIA,QAAO5E,KAAO4O,KAAK5O,IACnB6O,QAAQ9I,KAAK+I,MAEV,MAIZ3J,QAAQpF,UAAU,cAAe,qBAAuB6O,KAAK5O,IAC1C6O,QAAQ1Q,OACT,iBAAmB0Q,QAAQxM,KAAK,MAChC,KAAMoG,KAAMmG,KAAK5O,SAKtD4C,QAAQrF,QAAUqF,QAAQQ,cACnBR,QA8OX,QAASmM,wBACL,MAAIJ,oBAAsD,gBAAjCA,kBAAkBD,WAChCC,mBAGXvQ,YAAYkB,UAAW,SAAU0P,QAC7B,MAA0B,gBAAtBA,OAAON,WACCC,kBAAoBK,OADhC,SAIGL,mBAx7DX,GAAIlJ,KAAKwJ,EAAGC,KAAMC,YAAaC,SAAUC,IACrCV,kBAAmBW,sBAAuBC,WAAYC,QACtDC,QAAU,SACVC,cAAgB,2CAChBC,iBAAmB,iDACnB5N,eAAiB,QACjBiL,cAAgB,QAChB4C,GAAKC,OAAO/F,UACZlM,QAAUgS,GAAGE,SACbtR,OAASoR,GAAGG,eACZC,GAAKC,MAAMnG,UACXrH,YAAiC,mBAAXyN,SAA+C,mBAAdC,aAA6BD,OAAO3Q,UAC3FqI,aAAenF,WAAsC,mBAAlB2N,eAKnC3B,YAAchM,WAAoC,kBAAvB0N,UAAUE,SACvB,aAAe,sBAC7BC,eAAiB,IAEjBhI,QAA2B,mBAAViI,QAA8C,mBAArBA,MAAMT,WAChDU,YACAjE,OACA5G,kBACAmG,gBAAiB,CAwIrB,IAAsB,mBAAXtO,QAAX,CAMA,GAAyB,mBAAdF,WAA2B,CAClC,GAAII,WAAWJ,WAEX,MAEJiP,KAAMjP,UACNA,UAAYsN,OAIO,mBAAZrN,UAA4BG,WAAWH,WAE9CgP,IAAMhP,QACNA,QAAUqN,QA6hDdnF,IAAMnI,UAAY,SAAU+M,KAAM4C,SAAU7H,QAASqL,UAGjD,GAAI7N,SAAShB,OACTpB,YAAc8P,cA6BlB,OA1BKxS,SAAQuM,OAAyB,gBAATA,QAEzBzI,OAASyI,KACLvM,QAAQmP,WAER5C,KAAO4C,SACPA,SAAW7H,QACXA,QAAUqL,UAEVpG,SAIJzI,QAAUA,OAAOgB,UACjBpC,YAAcoB,OAAOgB,SAGzBA,QAAUnE,OAAO+R,SAAUhQ,aACtBoC,UACDA,QAAU4N,SAAShQ,aAAeiF,IAAIwJ,EAAE1O,WAAWC,cAGnDoB,QACAgB,QAAQ0J,UAAU1K,QAGfgB,QAAQrF,QAAQ8M,KAAM4C,SAAU7H,UAO3CK,IAAI7D,OAAS,SAAUA,QACnB,MAAO6D,KAAI7D,SASf6D,IAAI4G,SAAiC,mBAAfvE,YAA6B,SAAU3I,IACzD2I,WAAW3I,GAAI,IACf,SAAUA,IAAMA,MAKf5B,UACDA,QAAUkI,KAGdA,IAAIgK,QAAUA,QAGdhK,IAAI4I,YAAc,iBAClB5I,IAAIhD,UAAYA,UAChBwM,EAAIxJ,IAAIwJ,GACJuB,SAAUA,SACVjQ,WAAYA,YAIhBkF,QAGA1H,MACI,QACA,QACA,UACA,aACD,SAAUQ,MAITkH,IAAIlH,MAAQ,WACR,GAAImS,KAAMF,SAASF,eACnB,OAAOI,KAAInT,QAAQgB,MAAMa,MAAMsR,IAAKrR,cAIxCoD,YACAyM,KAAOD,EAAEC,KAAO3P,SAASC,qBAAqB,QAAQ,GAItD2P,YAAc5P,SAASC,qBAAqB,QAAQ,GAChD2P,cACAD,KAAOD,EAAEC,KAAOC,YAAYtM,aASpC4C,IAAIN,QAAU1F,eAKdgG,IAAIkL,WAAa,SAAU/O,OAAQ+J,WAAY7H,KAC3C,GAAIqE,MAAOvG,OAAOgP,MACVrR,SAASsR,gBAAgB,+BAAgC,eACzDtR,SAASuR,cAAc,SAI/B,OAHA3I,MAAKqG,KAAO5M,OAAOmP,YAAc,kBACjC5I,KAAK6I,QAAU,QACf7I,KAAK8I,OAAQ,EACN9I,MAYX1C,IAAI8E,KAAO,SAAU3H,QAAS+I,WAAY7H,KACtC,GACIqE,MADAvG,OAAUgB,SAAWA,QAAQhB,UAEjC,IAAIa,UAiEA,MA/DA0F,MAAO1C,IAAIkL,WAAW/O,OAAQ+J,WAAY7H,KACtClC,OAAOsP,eACPtP,OAAOsP,cAAc/I,KAAMvG,OAAQ+J,WAAY7H,KAGnDqE,KAAKgJ,aAAa,sBAAuBvO,QAAQpC,aACjD2H,KAAKgJ,aAAa,qBAAsBxF,aAUpCxD,KAAKiJ,aAQCjJ,KAAKiJ,YAAYtB,UAAY3H,KAAKiJ,YAAYtB,WAAWrM,QAAQ,gBAAkB,GACpF6E,SAqBLH,KAAKkJ,iBAAiB,OAAQzO,QAAQgG,cAAc,GACpDT,KAAKkJ,iBAAiB,QAASzO,QAAQiG,eAAe,KAhBtDiD,gBAAiB,EAEjB3D,KAAKiJ,YAAY,qBAAsBxO,QAAQgG,eAgBnDT,KAAKkH,IAAMvL,IAMXwL,sBAAwBnH,KACpBgH,YACAD,KAAKoC,aAAanJ,KAAMgH,aAExBD,KAAKqC,YAAYpJ,MAErBmH,sBAAwB,KAEjBnH,IACJ,IAAIP,YACP,IAOIwI,cAActM,KAGdlB,QAAQoJ,aAAaL,YACvB,MAAOxL,GACLyC,QAAQuC,QAAQpF,UAAU,gBACV,4BACI4L,WAAa,OAAS7H,IAC1B3D,GACCwL,gBAmBzBlJ,YAAc8J,IAAIiF,cAElBpT,YAAYkB,UAAW,SAAU0P,QAW7B,MARKE,QACDA,KAAOF,OAAOnM,YAMlBuM,SAAWJ,OAAOrM,aAAa,aAC3ByM,UAEAG,WAAaH,SAGR7C,IAAIvD,UAGLqG,IAAME,WAAW1P,MAAM,KACvB0P,WAAaF,IAAIoC,MACjBjC,QAAUH,IAAIlR,OAASkR,IAAIhN,KAAK,KAAQ,IAAM,KAE9CkK,IAAIvD,QAAUwG,SAKlBD,WAAaA,WAAWtN,QAAQF,eAAgB,IAG5C0D,IAAI4I,YAAYrM,KAAKuN,cACrBA,WAAaH,UAIjB7C,IAAIlC,KAAOkC,IAAIlC,KAAOkC,IAAIlC,KAAKjI,OAAOmN,aAAeA,aAE9C,GA3BX,SAuCR/R,OAAS,SAAUoD,KAAMyJ,KAAM4C,UAC3B,GAAI9E,MAAMvF,OAGU,iBAAThC,QAEPqM,SAAW5C,KACXA,KAAOzJ,KACPA,KAAO,MAIN9C,QAAQuM,QACT4C,SAAW5C,KACXA,KAAO,OAKNA,MAAQ3M,WAAWuP,YACpB5C,QAII4C,SAAS9O,SACT8O,SACK6C,WACA7N,QAAQyN,cAAe,IACvBzN,QAAQ0N,iBAAkB,SAAUrB,MAAO/H,KACxC8D,KAAKtE,KAAKQ,OAQlB8D,MAA4B,IAApB4C,SAAS9O,QAAgB,YAAc,UAAW,UAAW,WAAWiE,OAAOiI,QAM3FyB,iBACA3D,KAAOmH,uBAAyBP,uBAC5B5G,OACKvH,OACDA,KAAOuH,KAAKxF,aAAa,uBAE7BC,QAAU4N,SAASrI,KAAKxF,aAAa,0BAUzCC,SACAA,QAAQkD,SAASC,MAAMnF,KAAMyJ,KAAM4C,WACnCrK,QAAQiD,YAAYjF,OAAQ,GAE5B+E,eAAeI,MAAMnF,KAAMyJ,KAAM4C,YAIzCzP,OAAOkU,KACHC,QAAQ,GASZlM,IAAIsG,KAAO,SAAUN,MAEjB,MAAOmG,MAAKnG,OAIhBhG,IAAI8G,OACN7C,MAEFlM,OAAO,oCAAqC,cAgB3C,SAAUC,OAAQsM,SAEK,gBAAXP,SAAiD,gBAAnBA,QAAOF,QAQhDE,OAAOF,QAAU7L,OAAO8B,SACvBwK,QAAStM,QAAQ,GACjB,SAAUoU,GACT,IAAMA,EAAEtS,SACP,KAAM,IAAIa,OAAO,2CAElB,OAAO2J,SAAS8H,IAGlB9H,QAAStM,SAIS,mBAAXyS,QAAyBA,OAASxG,KAAM,SAAUwG,OAAQ4B,UAqhBnE,QAASC,aAAazT,KAMrB,GAAIH,QAAS,UAAYG,MAAOA,IAAIH,OACnCqQ,KAAOmD,OAAOnD,KAAMlQ,IAErB,OAAc,aAATkQ,MAAuBmD,OAAOK,SAAU1T,MACrC,EAGc,IAAjBA,IAAI2T,UAAkB9T,QACnB,EAGQ,UAATqQ,MAA+B,IAAXrQ,QACR,gBAAXA,SAAuBA,OAAS,GAAOA,OAAS,IAAOG,KAmiEhE,QAAS4T,QAAQC,SAAUC,UAAWC,KACrC,GAAKV,OAAOjU,WAAY0U,WACvB,MAAOT,QAAOW,KAAMH,SAAU,SAAUI,KAAMrU,GAE7C,QAASkU,UAAUvU,KAAM0U,KAAMrU,EAAGqU,QAAWF,KAK/C,IAAKD,UAAUH,SACd,MAAON,QAAOW,KAAMH,SAAU,SAAUI,MACvC,MAASA,QAASH,YAAgBC,KAKpC,IAA0B,gBAAdD,WAAyB,CACpC,GAAKI,UAAUxQ,KAAMoQ,WACpB,MAAOT,QAAOc,OAAQL,UAAWD,SAAUE,IAG5CD,WAAYT,OAAOc,OAAQL,UAAWD,UAGvC,MAAOR,QAAOW,KAAMH,SAAU,SAAUI,MACvC,MAASZ,QAAOe,QAASH,KAAMH,YAAe,IAAQC,MAiTxD,QAASM,SAASC,IAAKC,KACtB,EACCD,KAAMA,IAAKC,WACFD,KAAwB,IAAjBA,IAAIX,SAErB,OAAOW,KA8ER,QAASE,eAAe9I,SACvB,GAAI+I,QAASC,aAAchJ,WAI3B,OAHA2H,QAAO5T,KAAMiM,QAAQsE,MAAO2E,eAAmB,SAAUC,EAAGC,MAC3DJ,OAAQI,OAAS,IAEXJ,OA2YR,QAASK,UACH7T,SAAS8R,kBACb9R,SAASgJ,oBAAqB,mBAAoB8K,WAAW,GAC7DnD,OAAO3H,oBAAqB,OAAQ8K,WAAW,KAG/C9T,SAAS8I,YAAa,qBAAsBgL,WAC5CnD,OAAO7H,YAAa,SAAUgL,YAOhC,QAASA,cAEH9T,SAAS8R,kBAAmC,SAAfiC,MAAM9E,MAA2C,aAAxBjP,SAASmP,cACnE0E,SACAzB,OAAO4B,SA+JT,QAASC,UAAUjB,KAAMzD,IAAKF,MAG7B,GAAchE,SAATgE,MAAwC,IAAlB2D,KAAKN,SAAiB,CAEhD,GAAIrR,MAAO,QAAUkO,IAAI7M,QAASwR,WAAY,OAAQC,aAItD,IAFA9E,KAAO2D,KAAK5P,aAAc/B,MAEL,gBAATgO,MAAoB,CAC/B,IACCA,KAAgB,SAATA,MAAkB,EACf,UAATA,MAAmB,EACV,SAATA,KAAkB,MAEjBA,KAAO,KAAOA,MAAQA,KACvB+E,OAAO3R,KAAM4M,MAAS+C,OAAOiC,UAAWhF,MACxCA,KACA,MAAOzO,IAGTwR,OAAO/C,KAAM2D,KAAMzD,IAAKF,UAGxBA,MAAOhE,OAIT,MAAOgE,MAIR,QAASiF,mBAAmBvV,KAC3B,GAAIsC,KACJ,KAAMA,OAAQtC,KAGb,IAAc,SAATsC,OAAmB+Q,OAAOmC,cAAexV,IAAIsC,SAGpC,WAATA,KACJ,OAAO,CAIT,QAAO,EAGR,QAASmT,cAAcxB,KAAM3R,KAAMgO,KAAMoF,KACxC,GAAMrC,OAAOsC,WAAY1B,MAAzB,CAIA,GAAIrF,KAAKgH,UACRC,YAAcxC,OAAOyC,QAIrBC,OAAS9B,KAAKN,SAIdqC,MAAQD,OAAS1C,OAAO2C,MAAQ/B,KAIhCvS,GAAKqU,OAAS9B,KAAM4B,aAAgB5B,KAAM4B,cAAiBA,WAI5D,IAAOnU,IAAOsU,MAAMtU,MAASgU,KAAQM,MAAMtU,IAAI4O,OAAmBhE,SAATgE,MAAsC,gBAAThO,MAgEtF,MA5DMZ,MAIJA,GADIqU,OACC9B,KAAM4B,aAAgBI,WAAW9C,OAASE,OAAO6C,OAEjDL,aAIDG,MAAOtU,MAGZsU,MAAOtU,IAAOqU,WAAgBI,OAAQ9C,OAAO+C,OAKzB,gBAAT9T,OAAqC,kBAATA,QAClCoT,IACJM,MAAOtU,IAAO2R,OAAOgD,OAAQL,MAAOtU,IAAMY,MAE1C0T,MAAOtU,IAAK4O,KAAO+C,OAAOgD,OAAQL,MAAOtU,IAAK4O,KAAMhO,OAItDsT,UAAYI,MAAOtU,IAKbgU,MACCE,UAAUtF,OACfsF,UAAUtF,SAGXsF,UAAYA,UAAUtF,MAGThE,SAATgE,OACJsF,UAAWvC,OAAOiD,UAAWhU,OAAWgO,MAKpB,gBAAThO,OAGXsM,IAAMgH,UAAWtT,MAGL,MAAPsM,MAGJA,IAAMgH,UAAWvC,OAAOiD,UAAWhU,SAGpCsM,IAAMgH,UAGAhH,KAGR,QAAS2H,oBAAoBtC,KAAM3R,KAAMoT,KACxC,GAAMrC,OAAOsC,WAAY1B,MAAzB,CAIA,GAAI2B,WAAWhW,EACdmW,OAAS9B,KAAKN,SAGdqC,MAAQD,OAAS1C,OAAO2C,MAAQ/B,KAChCvS,GAAKqU,OAAS9B,KAAMZ,OAAOyC,SAAYzC,OAAOyC,OAI/C,IAAME,MAAOtU,IAAb,CAIA,GAAKY,OAEJsT,UAAYF,IAAMM,MAAOtU,IAAOsU,MAAOtU,IAAK4O,MAE3B,CAGV+C,OAAO7T,QAAS8C,MAsBrBA,KAAOA,KAAKwB,OAAQuP,OAAOhQ,IAAKf,KAAM+Q,OAAOiD,YAnBxChU,OAAQsT,WACZtT,MAASA,OAITA,KAAO+Q,OAAOiD,UAAWhU,MAExBA,KADIA,OAAQsT,YACHtT,MAEFA,KAAKf,MAAM,MAarB3B,EAAI0C,KAAKzC,MACT,MAAQD,WACAgW,WAAWtT,KAAK1C,GAKxB,IAAK8V,KAAOH,kBAAkBK,YAAcvC,OAAOmC,cAAcI,WAChE,QAMGF,YACEM,OAAOtU,IAAK4O,KAIbiF,kBAAmBS,MAAOtU,SAM5BqU,OACJ1C,OAAOmD,WAAavC,OAAQ,GAIjBwC,QAAQC,eAAiBV,OAASA,MAAMpE,aAE5CoE,OAAOtU,IAIdsU,MAAOtU,IAAO,QA+YhB,QAASiV,cACR,OAAO,EAGR,QAASC,eACR,OAAO,EAGR,QAASC,qBACR,IACC,MAAO5V,UAAS6V,cACf,MAAQ1V,OA8+BX,QAAS2V,oBAAoB9V,UAC5B,GAAI+V,MAAOC,UAAU1V,MAAO,KAC3B2V,SAAWjW,SAASkW,wBAErB,IAAKD,SAAS1E,cACb,KAAQwE,KAAKnX,QACZqX,SAAS1E,cACRwE,KAAK7D,MAIR,OAAO+D,UAyCR,QAASE,QAAQ9S,QAAS+S,KACzB,GAAIC,OAAOrD,KACVrU,EAAI,EACJ4P,YAAelL,SAAQpD,uBAAyBqW,aAAejT,QAAQpD,qBAAsBmW,KAAO,WAC5F/S,SAAQkT,mBAAqBD,aAAejT,QAAQkT,iBAAkBH,KAAO,KACpF/K,MAEF,KAAMkD,MACL,IAAMA,SAAY8H,MAAQhT,QAAQmT,YAAcnT,QAA8B,OAApB2P,KAAOqD,MAAM1X,IAAaA,KAC7EyX,KAAOhE,OAAOqE,SAAUzD,KAAMoD,KACnC7H,MAAM/H,KAAMwM,MAEZZ,OAAOsE,MAAOnI,MAAO4H,OAAQnD,KAAMoD,KAKtC,OAAe/K,UAAR+K,KAAqBA,KAAOhE,OAAOqE,SAAUpT,QAAS+S,KAC5DhE,OAAOsE,OAASrT,SAAWkL,OAC3BA,MAIF,QAASoI,mBAAmB3D,MACtB4D,eAAenU,KAAMuQ,KAAK/D,QAC9B+D,KAAK6D,eAAiB7D,KAAK8D,SAM7B,QAASC,oBAAoB/D,KAAMgE,SAClC,MAAO5E,QAAOqE,SAAUzD,KAAM,UAC7BZ,OAAOqE,SAA+B,KAArBO,QAAQtE,SAAkBsE,QAAUA,QAAQC,WAAY,MAEzEjE,KAAK/S,qBAAqB,SAAS,IAClC+S,KAAKhB,YAAagB,KAAKkE,cAAc3F,cAAc,UACpDyB,KAIF,QAASmE,eAAenE,MAEvB,MADAA,MAAK/D,MAA6C,OAArCmD,OAAOgF,KAAKC,KAAMrE,KAAM,SAAqB,IAAMA,KAAK/D,KAC9D+D,KAER,QAASsE,eAAetE,MACvB,GAAIjE,OAAQwI,kBAAkB/K,KAAMwG,KAAK/D,KAMzC,OALKF,OACJiE,KAAK/D,KAAOF,MAAM,GAElBiE,KAAKwE,gBAAgB,QAEfxE,KAIR,QAASyE,eAAepB,MAAOqB,aAG9B,IAFA,GAAI1E,MACHrU,EAAI,EACwB,OAApBqU,KAAOqD,MAAM1X,IAAaA,IAClCyT,OAAOuF,MAAO3E,KAAM,cAAe0E,aAAetF,OAAOuF,MAAOD,YAAY/Y,GAAI,eAIlF,QAASiZ,gBAAgB9H,IAAK+H,MAE7B,GAAuB,IAAlBA,KAAKnF,UAAmBN,OAAO0F,QAAShI,KAA7C,CAIA,GAAIb,MAAMtQ,EAAGoZ,EACZC,QAAU5F,OAAOuF,MAAO7H,KACxBmI,QAAU7F,OAAOuF,MAAOE,KAAMG,SAC9BhS,OAASgS,QAAQhS,MAElB,IAAKA,OAAS,OACNiS,SAAQC,OACfD,QAAQjS,SAER,KAAMiJ,OAAQjJ,QACb,IAAMrH,EAAI,EAAGoZ,EAAI/R,OAAQiJ,MAAOrQ,OAAYmZ,EAAJpZ,EAAOA,IAC9CyT,OAAO2B,MAAMoE,IAAKN,KAAM5I,KAAMjJ,OAAQiJ,MAAQtQ,IAM5CsZ,QAAQ5I,OACZ4I,QAAQ5I,KAAO+C,OAAOgD,UAAY6C,QAAQ5I,QAI5C,QAAS+I,oBAAoBtI,IAAK+H,MACjC,GAAIpB,UAAU7V,EAAGyO,IAGjB,IAAuB,IAAlBwI,KAAKnF,SAAV,CAOA,GAHA+D,SAAWoB,KAAKpB,SAAStC,eAGnBqB,QAAQ6C,cAAgBR,KAAMzF,OAAOyC,SAAY,CACtDxF,KAAO+C,OAAOuF,MAAOE,KAErB,KAAMjX,IAAKyO,MAAKrJ,OACfoM,OAAOkG,YAAaT,KAAMjX,EAAGyO,KAAK6I,OAInCL,MAAKL,gBAAiBpF,OAAOyC,SAIZ,WAAb4B,UAAyBoB,KAAK3L,OAAS4D,IAAI5D,MAC/CiL,cAAeU,MAAO3L,KAAO4D,IAAI5D,KACjCoL,cAAeO,OAIS,WAAbpB,UACNoB,KAAKvU,aACTuU,KAAKU,UAAYzI,IAAIyI,WAOjB/C,QAAQgD,YAAgB1I,IAAI2I,YAAcrG,OAAOsG,KAAKb,KAAKY,aAC/DZ,KAAKY,UAAY3I,IAAI2I,YAGE,UAAbhC,UAAwBG,eAAenU,KAAMqN,IAAIb,OAK5D4I,KAAKhB,eAAiBgB,KAAKf,QAAUhH,IAAIgH,QAIpCe,KAAKpY,QAAUqQ,IAAIrQ,QACvBoY,KAAKpY,MAAQqQ,IAAIrQ,QAKM,WAAbgX,SACXoB,KAAKc,gBAAkBd,KAAKe,SAAW9I,IAAI6I,gBAInB,UAAblC,UAAqC,aAAbA,WACnCoB,KAAKgB,aAAe/I,IAAI+I,eAghB1B,QAASC,eAAezX,KAAM0X,KAC7B,GAAIC,OACHhG,KAAOZ,OAAQ2G,IAAIxH,cAAelQ,OAAS4X,SAAUF,IAAIG,MAGzDC,QAAUxI,OAAOyI,0BAA6BJ,MAAQrI,OAAOyI,wBAAyBpG,KAAM,KAI3FgG,MAAMG,QAAU/G,OAAOiH,IAAKrG,KAAM,GAAK,UAMzC,OAFAA,MAAKa,SAEEsF,QAOR,QAASG,gBAAgB7C,UACxB,GAAIsC,KAAM/Y,SACTmZ,QAAUI,YAAa9C,SA0BxB,OAxBM0C,WACLA,QAAUL,cAAerC,SAAUsC,KAGlB,SAAZI,SAAuBA,UAG3BK,QAAUA,QAAUpH,OAAQ,mDAAoD6G,SAAUF,IAAIU;AAG9FV,KAAQS,OAAQ,GAAIE,eAAiBF,OAAQ,GAAIG,iBAAkB3Z,SAGnE+Y,IAAIa,QACJb,IAAIc,QAEJV,QAAUL,cAAerC,SAAUsC,KACnCS,OAAO3F,UAIR0F,YAAa9C,UAAa0C,SAGpBA,QA2KR,QAASW,cAAcC,YAAaC,QAEnC,OACCjM,IAAK,WACJ,GAAIkM,WAAYF,aAEhB,IAAkB,MAAbE,UAML,MAAKA,sBAIG9P,MAAK4D,KAML5D,KAAK4D,IAAMiM,QAAQna,MAAOsK,KAAMrK,aAgM3C,QAASoa,gBAAgBlB,MAAO3X,MAG/B,GAAKA,OAAQ2X,OACZ,MAAO3X,KAQR,KAJA,GAAI8Y,SAAU9Y,KAAKsB,OAAO,GAAGyX,cAAgB/Y,KAAKuB,MAAM,GACvDyX,SAAWhZ,KACX1C,EAAI2b,YAAY1b,OAETD,KAEP,GADA0C,KAAOiZ,YAAa3b,GAAMwb,QACrB9Y,OAAQ2X,OACZ,MAAO3X,KAIT,OAAOgZ,UAGR,QAASE,UAAU3H,SAAU4H,MAM5B,IALA,GAAIrB,SAASnG,KAAMyH,OAClBC,UACAzW,MAAQ,EACRrF,OAASgU,SAAShU,OAEHA,OAARqF,MAAgBA,QACvB+O,KAAOJ,SAAU3O,OACX+O,KAAKgG,QAIX0B,OAAQzW,OAAUmO,OAAOuF,MAAO3E,KAAM,cACtCmG,QAAUnG,KAAKgG,MAAMG,QAChBqB,MAGEE,OAAQzW,QAAuB,SAAZkV,UACxBnG,KAAKgG,MAAMG,QAAU,IAMM,KAAvBnG,KAAKgG,MAAMG,SAAkBwB,SAAU3H,QAC3C0H,OAAQzW,OAAUmO,OAAOuF,MAAO3E,KAAM,aAAcsG,eAAetG,KAAKyD,cAGzEgE,OAASE,SAAU3H,OAEdmG,SAAuB,SAAZA,UAAuBsB,SACtCrI,OAAOuF,MAAO3E,KAAM,aAAcyH,OAAStB,QAAU/G,OAAOiH,IAAKrG,KAAM,aAO1E,KAAM/O,MAAQ,EAAWrF,OAARqF,MAAgBA,QAChC+O,KAAOJ,SAAU3O,OACX+O,KAAKgG,QAGLwB,MAA+B,SAAvBxH,KAAKgG,MAAMG,SAA6C,KAAvBnG,KAAKgG,MAAMG,UACzDnG,KAAKgG,MAAMG,QAAUqB,KAAOE,OAAQzW,QAAW,GAAK,QAItD,OAAO2O,UAGR,QAASgI,mBAAmB5H,KAAMvT,MAAOob,UACxC,GAAIC,SAAUC,UAAUvO,KAAM/M,MAC9B,OAAOqb,SAENE,KAAKC,IAAK,EAAGH,QAAS,IAAQD,UAAY,KAAUC,QAAS,IAAO,MACpErb,MAGF,QAASyb,sBAAsBlI,KAAM3R,KAAM8Z,MAAOC,YAAaC,QAS9D,IARA,GAAI1c,GAAIwc,SAAYC,YAAc,SAAW,WAE5C,EAES,UAAT/Z,KAAmB,EAAI,EAEvBia,IAAM,EAEK,EAAJ3c,EAAOA,GAAK,EAEJ,WAAVwc,QACJG,KAAOlJ,OAAOiH,IAAKrG,KAAMmI,MAAQI,UAAW5c,IAAK,EAAM0c,SAGnDD,aAEW,YAAVD,QACJG,KAAOlJ,OAAOiH,IAAKrG,KAAM,UAAYuI,UAAW5c,IAAK,EAAM0c,SAI7C,WAAVF,QACJG,KAAOlJ,OAAOiH,IAAKrG,KAAM,SAAWuI,UAAW5c,GAAM,SAAS,EAAM0c,WAIrEC,KAAOlJ,OAAOiH,IAAKrG,KAAM,UAAYuI,UAAW5c,IAAK,EAAM0c,QAG5C,YAAVF,QACJG,KAAOlJ,OAAOiH,IAAKrG,KAAM,SAAWuI,UAAW5c,GAAM,SAAS,EAAM0c,SAKvE,OAAOC,KAGR,QAASE,kBAAkBxI,KAAM3R,KAAM8Z,OAGtC,GAAIM,mBAAmB,EACtBH,IAAe,UAATja,KAAmB2R,KAAK0I,YAAc1I,KAAK2I,aACjDN,OAASO,UAAW5I,MACpBoI,YAAc5F,QAAQqG,WAAgE,eAAnDzJ,OAAOiH,IAAKrG,KAAM,aAAa,EAAOqI,OAK1E,IAAY,GAAPC,KAAmB,MAAPA,IAAc,CAQ9B,GANAA,IAAMQ,OAAQ9I,KAAM3R,KAAMga,SACf,EAANC,KAAkB,MAAPA,OACfA,IAAMtI,KAAKgG,MAAO3X,OAId0a,UAAUtZ,KAAK6Y,KACnB,MAAOA,IAKRG,kBAAmBL,cAAiB5F,QAAQwG,qBAAuBV,MAAQtI,KAAKgG,MAAO3X,OAGvFia,IAAMW,WAAYX,MAAS,EAI5B,MAASA,KACRJ,qBACClI,KACA3R,KACA8Z,QAAWC,YAAc,SAAW,WACpCK,iBACAJ,QAEE,KA2SL,QAASa,OAAOlJ,KAAMvI,QAASzL,KAAMmd,IAAKC,QACzC,MAAO,IAAIF,OAAM3R,UAAU7B,KAAMsK,KAAMvI,QAASzL,KAAMmd,IAAKC,QAwK5D,QAASC,eAIR,MAHA9T,YAAW,WACV+T,MAAQjR,SAEAiR,MAAQlK,OAAOmK,MAIzB,QAASC,OAAOvN,KAAMwN,cACrB,GAAIC,OACHC,OAAUC,OAAQ3N,MAClBtQ,EAAI,CAKL,KADA8d,aAAeA,aAAe,EAAI,EACtB,EAAJ9d,EAAQA,GAAK,EAAI8d,aACxBC,MAAQnB,UAAW5c,GACnBge,MAAO,SAAWD,OAAUC,MAAO,UAAYD,OAAUzN,IAO1D,OAJKwN,gBACJE,MAAME,QAAUF,MAAMG,MAAQ7N,MAGxB0N,MAGR,QAASI,aAAatd,MAAOT,KAAMge,WAKlC,IAJA,GAAIC,OACHC,YAAeC,SAAUne,WAAe6D,OAAQsa,SAAU,MAC1DlZ,MAAQ,EACRrF,OAASse,WAAWte,OACLA,OAARqF,MAAgBA,QACvB,GAAMgZ,MAAQC,WAAYjZ,OAAQ3F,KAAM0e,UAAWhe,KAAMS,OAGxD,MAAOwd,OAKV,QAASG,kBAAkBpK,KAAMqK,MAAOC,MAEvC,GAAIte,MAAMS,MAAO8d,OAAQN,MAAOO,MAAOC,QAAStE,QAASuE,aACxDC,KAAOxT,KACPyT,QACA5E,MAAQhG,KAAKgG,MACbyB,OAASzH,KAAKN,UAAYiI,SAAU3H,MACpC6K,SAAWzL,OAAOuF,MAAO3E,KAAM,SAG1BsK,MAAKQ,QACVN,MAAQpL,OAAO2L,YAAa/K,KAAM,MACX,MAAlBwK,MAAMQ,WACVR,MAAMQ,SAAW,EACjBP,QAAUD,MAAMS,MAAMC,KACtBV,MAAMS,MAAMC,KAAO,WACZV,MAAMQ,UACXP,YAIHD,MAAMQ,WAENL,KAAKQ,OAAO,WAGXR,KAAKQ,OAAO,WACXX,MAAMQ,WACA5L,OAAO0L,MAAO9K,KAAM,MAAOpU,QAChC4e,MAAMS,MAAMC,YAOO,IAAlBlL,KAAKN,WAAoB,UAAY2K,QAAS,SAAWA,UAK7DC,KAAKc,UAAapF,MAAMoF,SAAUpF,MAAMqF,UAAWrF,MAAMsF,WAIzDnF,QAAU/G,OAAOiH,IAAKrG,KAAM,WAG5B0K,aAA2B,SAAZvE,QACd/G,OAAOuF,MAAO3E,KAAM,eAAkBsG,eAAgBtG,KAAKyD,UAAa0C,QAEnD,WAAjBuE,cAA6D,SAAhCtL,OAAOiH,IAAKrG,KAAM,WAI7CwC,QAAQ+I,wBAA8D,WAApCjF,eAAgBtG,KAAKyD,UAG5DuC,MAAMwF,KAAO,EAFbxF,MAAMG,QAAU,iBAOdmE,KAAKc,WACTpF,MAAMoF,SAAW,SACX5I,QAAQiJ,oBACbd,KAAKQ,OAAO,WACXnF,MAAMoF,SAAWd,KAAKc,SAAU,GAChCpF,MAAMqF,UAAYf,KAAKc,SAAU,GACjCpF,MAAMsF,UAAYhB,KAAKc,SAAU,KAMpC,KAAMpf,OAAQqe,OAEb,GADA5d,MAAQ4d,MAAOre,MACV0f,SAASlS,KAAM/M,OAAU,CAG7B,SAFO4d,OAAOre,MACdue,OAASA,QAAoB,WAAV9d,MACdA,SAAYgb,OAAS,OAAS,QAAW,CAG7C,GAAe,SAAVhb,QAAoBoe,UAAiCxS,SAArBwS,SAAU7e,MAG9C,QAFAyb,SAAS,EAKXmD,KAAM5e,MAAS6e,UAAYA,SAAU7e,OAAUoT,OAAO4G,MAAOhG,KAAMhU,UAInEma,SAAU9N,MAIZ,IAAM+G,OAAOmC,cAAeqJ,MAwCqD,YAAxD,SAAZzE,QAAqBG,eAAgBtG,KAAKyD,UAAa0C,WACnEH,MAAMG,QAAUA,aAzCoB,CAC/B0E,SACC,UAAYA,YAChBpD,OAASoD,SAASpD,QAGnBoD,SAAWzL,OAAOuF,MAAO3E,KAAM,aAI3BuK,SACJM,SAASpD,QAAUA,QAEfA,OACJrI,OAAQY,MAAOwH,OAEfmD,KAAKgB,KAAK,WACTvM,OAAQY,MAAO4L,SAGjBjB,KAAKgB,KAAK,WACT,GAAI3f,KACJoT,QAAOyM,YAAa7L,KAAM,SAC1B,KAAMhU,OAAQ4e,MACbxL,OAAO4G,MAAOhG,KAAMhU,KAAM4e,KAAM5e,QAGlC,KAAMA,OAAQ4e,MACbX,MAAQF,YAAatC,OAASoD,SAAU7e,MAAS,EAAGA,KAAM2e,MAElD3e,OAAQ6e,YACfA,SAAU7e,MAASie,MAAM6B,MACpBrE,SACJwC,MAAMd,IAAMc,MAAM6B,MAClB7B,MAAM6B,MAAiB,UAAT9f,MAA6B,WAATA,KAAoB,EAAI,KAW/D,QAAS+f,YAAY1B,MAAO2B,eAC3B,GAAI/a,OAAO5C,KAAM+a,OAAQ3c,MAAO+d,KAGhC,KAAMvZ,QAASoZ,OAed,GAdAhc,KAAO+Q,OAAOiD,UAAWpR,OACzBmY,OAAS4C,cAAe3d,MACxB5B,MAAQ4d,MAAOpZ,OACVmO,OAAO7T,QAASkB,SACpB2c,OAAS3c,MAAO,GAChBA,MAAQ4d,MAAOpZ,OAAUxE,MAAO,IAG5BwE,QAAU5C,OACdgc,MAAOhc,MAAS5B,YACT4d,OAAOpZ,QAGfuZ,MAAQpL,OAAO6M,SAAU5d,MACpBmc,OAAS,UAAYA,OAAQ,CACjC/d,MAAQ+d,MAAM0B,OAAQzf,aACf4d,OAAOhc,KAId,KAAM4C,QAASxE,OACNwE,QAASoZ,SAChBA,MAAOpZ,OAAUxE,MAAOwE,OACxB+a,cAAe/a,OAAUmY,YAI3B4C,eAAe3d,MAAS+a,OAK3B,QAAS+C,WAAWnM,KAAMoM,WAAY3U,SACrC,GAAI4U,QACHC,QACArb,MAAQ,EACRrF,OAAS2gB,oBAAoB3gB,OAC7B4gB,SAAWpN,OAAOqN,WAAWtB,OAAQ,iBAE7BuB,MAAK1M,OAEb0M,KAAO,WACN,GAAKJ,QACJ,OAAO,CAUR,KARA,GAAIK,aAAcrD,OAASD,cAC1BuD,UAAY5E,KAAKC,IAAK,EAAG+B,UAAUvV,UAAYuV,UAAU6C,SAAWF,aAEpEG,KAAOF,UAAY5C,UAAU6C,UAAY,EACzCE,QAAU,EAAID,KACd7b,MAAQ,EACRrF,OAASoe,UAAUgD,OAAOphB,OAEXA,OAARqF,MAAiBA,QACxB+Y,UAAUgD,OAAQ/b,OAAQgc,IAAKF,QAKhC,OAFAP,UAASU,WAAYlN,MAAQgK,UAAW+C,QAASH,YAElC,EAAVG,SAAenhB,OACZghB,WAEPJ,SAASW,YAAanN,MAAQgK,aACvB,IAGTA,UAAYwC,SAASY,SACpBpN,KAAMA,KACNqK,MAAOjL,OAAOgD,UAAYgK,YAC1B9B,KAAMlL,OAAOgD,QAAQ,GAAQ4J,kBAAqBvU,SAClD4V,mBAAoBjB,WACpBkB,gBAAiB7V,QACjBhD,UAAW6U,OAASD,cACpBwD,SAAUpV,QAAQoV,SAClBG,UACAjD,YAAa,SAAU/d,KAAMmd,KAC5B,GAAIc,OAAQ7K,OAAO8J,MAAOlJ,KAAMgK,UAAUM,KAAMte,KAAMmd,IACpDa,UAAUM,KAAK0B,cAAehgB,OAAUge,UAAUM,KAAKlB,OAEzD,OADAY,WAAUgD,OAAOxZ,KAAMyW,OAChBA,OAERsD,KAAM,SAAUC,SACf,GAAIvc,OAAQ,EAGXrF,OAAS4hB,QAAUxD,UAAUgD,OAAOphB,OAAS,CAC9C,IAAK0gB,QACJ,MAAOnV,KAGR,KADAmV,SAAU,EACM1gB,OAARqF,MAAiBA,QACxB+Y,UAAUgD,OAAQ/b,OAAQgc,IAAK,EAUhC,OALKO,SACJhB,SAASW,YAAanN,MAAQgK,UAAWwD,UAEzChB,SAASiB,WAAYzN,MAAQgK,UAAWwD,UAElCrW,QAGTkT,MAAQL,UAAUK,KAInB,KAFA0B,WAAY1B,MAAOL,UAAUM,KAAK0B,eAElBpgB,OAARqF,MAAiBA,QAExB,GADAob,OAASE,oBAAqBtb,OAAQ3F,KAAM0e,UAAWhK,KAAMqK,MAAOL,UAAUM,MAE7E,MAAO+B,OAmBT,OAfAjN,QAAOhQ,IAAKib,MAAON,YAAaC,WAE3B5K,OAAOjU,WAAY6e,UAAUM,KAAKwB,QACtC9B,UAAUM,KAAKwB,MAAMxgB,KAAM0U,KAAMgK,WAGlC5K,OAAOsO,GAAGC,MACTvO,OAAOgD,OAAQsK,MACd1M,KAAMA,KACN2K,KAAMX,UACNc,MAAOd,UAAUM,KAAKQ,SAKjBd,UAAU4D,SAAU5D,UAAUM,KAAKsD,UACxCjC,KAAM3B,UAAUM,KAAKqB,KAAM3B,UAAUM,KAAKuD,UAC1CC,KAAM9D,UAAUM,KAAKwD,MACrB3C,OAAQnB,UAAUM,KAAKa,QA6rC1B,QAAS4C,6BAA6BC,WAGrC,MAAO,UAAUC,mBAAoBviB,MAED,gBAAvBuiB,sBACXviB,KAAOuiB,mBACPA,mBAAqB,IAGtB,IAAIC,UACHviB,EAAI,EACJwiB,UAAYF,mBAAmB9M,cAAcpF,MAAO2E,cAErD,IAAKtB,OAAOjU,WAAYO,MAEvB,KAASwiB,SAAWC,UAAUxiB,MAEC,MAAzBuiB,SAASve,OAAQ,IACrBue,SAAWA,SAASte,MAAO,IAAO,KACjCoe,UAAWE,UAAaF,UAAWE,eAAkBE,QAAS1iB,QAI9DsiB,UAAWE,UAAaF,UAAWE,eAAkB1a,KAAM9H,OAQjE,QAAS2iB,+BAA+BL,UAAWvW,QAAS6V,gBAAiBgB,OAK5E,QAASC,SAASL,UACjB,GAAItI,SAYJ,OAXA4I,WAAWN,WAAa,EACxB9O,OAAO5T,KAAMwiB,UAAWE,cAAkB,SAAUvN,EAAG8N,oBACtD,GAAIC,qBAAsBD,mBAAoBhX,QAAS6V,gBAAiBgB,MACxE,OAAoC,gBAAxBI,sBAAqCC,kBAAqBH,UAAWE,qBAIrEC,mBACD/I,SAAW8I,qBADf,QAHNjX,QAAQ0W,UAAUC,QAASM,qBAC3BH,QAASG,sBACF,KAKF9I,SAhBR,GAAI4I,cACHG,iBAAqBX,YAAcY,UAkBpC,OAAOL,SAAS9W,QAAQ0W,UAAW,MAAUK,UAAW,MAASD,QAAS,KAM3E,QAASM,YAAYxiB,OAAQyQ,KAC5B,GAAIgS,MAAMvS,IACTwS,YAAc3P,OAAO4P,aAAaD,eAEnC,KAAMxS,MAAOO,KACQzE,SAAfyE,IAAKP,QACPwS,YAAaxS,KAAQlQ,OAAWyiB,OAASA,UAAgBvS,KAAQO,IAAKP,KAO1E,OAJKuS,OACJ1P,OAAOgD,QAAQ,EAAM/V,OAAQyiB,MAGvBziB,OAOR,QAAS4iB,qBAAqBvS,EAAG4R,MAAOY,WAMvC,IALA,GAAIC,eAAeC,GAAIC,cAAepT,KACrCqT,SAAW5S,EAAE4S,SACbnB,UAAYzR,EAAEyR,UAGY,MAAnBA,UAAW,IAClBA,UAAUxd,QACE0H,SAAP+W,KACJA,GAAK1S,EAAE6S,UAAYjB,MAAMkB,kBAAkB,gBAK7C,IAAKJ,GACJ,IAAMnT,OAAQqT,UACb,GAAKA,SAAUrT,OAAUqT,SAAUrT,MAAOxM,KAAM2f,IAAO,CACtDjB,UAAUC,QAASnS,KACnB,OAMH,GAAKkS,UAAW,IAAOe,WACtBG,cAAgBlB,UAAW,OACrB,CAEN,IAAMlS,OAAQiT,WAAY,CACzB,IAAMf,UAAW,IAAOzR,EAAE+S,WAAYxT,KAAO,IAAMkS,UAAU,IAAO,CACnEkB,cAAgBpT,IAChB,OAEKkT,gBACLA,cAAgBlT,MAIlBoT,cAAgBA,eAAiBF,cAMlC,MAAKE,gBACCA,gBAAkBlB,UAAW,IACjCA,UAAUC,QAASiB,eAEbH,UAAWG,gBAJnB,OAWD,QAASK,aAAahT,EAAGiT,SAAUrB,MAAOsB,WACzC,GAAIC,OAAOC,QAASC,KAAMC,IAAKC,KAC9BR,cAEAtB,UAAYzR,EAAEyR,UAAUve,OAGzB,IAAKue,UAAW,GACf,IAAM4B,OAAQrT,GAAE+S,WACfA,WAAYM,KAAK5O,eAAkBzE,EAAE+S,WAAYM,KAOnD,KAHAD,QAAU3B,UAAUxd,QAGZmf,SAcP,GAZKpT,EAAEwT,eAAgBJ,WACtBxB,MAAO5R,EAAEwT,eAAgBJ,UAAcH,WAIlCM,MAAQL,WAAalT,EAAEyT,aAC5BR,SAAWjT,EAAEyT,WAAYR,SAAUjT,EAAEwR,WAGtC+B,KAAOH,QACPA,QAAU3B,UAAUxd,QAKnB,GAAiB,MAAZmf,QAEJA,QAAUG,SAGJ,IAAc,MAATA,MAAgBA,OAASH,QAAU,CAM9C,GAHAC,KAAON,WAAYQ,KAAO,IAAMH,UAAaL,WAAY,KAAOK,UAG1DC,KACL,IAAMF,QAASJ,YAId,GADAO,IAAMH,MAAMviB,MAAO,KACd0iB,IAAK,KAAQF,UAGjBC,KAAON,WAAYQ,KAAO,IAAMD,IAAK,KACpCP,WAAY,KAAOO,IAAK,KACb,CAEND,QAAS,EACbA,KAAON,WAAYI,OAGRJ,WAAYI,UAAY,IACnCC,QAAUE,IAAK,GACf7B,UAAUC,QAAS4B,IAAK,IAEzB,OAOJ,GAAKD,QAAS,EAGb,GAAKA,MAAQrT,EAAG,UACfiT,SAAWI,KAAMJ,cAEjB,KACCA,SAAWI,KAAMJ,UAChB,MAAQ/hB,GACT,OAASwiB,MAAO,cAAezd,MAAOod,KAAOniB,EAAI,sBAAwBqiB,KAAO,OAASH,UAQ/F,OAASM,MAAO,UAAW/T,KAAMsT,UAymBlC,QAASU,aAAarf,OAAQjF,IAAKukB,YAAanL,KAC/C,GAAI9W,KAEJ,IAAK+Q,OAAO7T,QAASQ,KAEpBqT,OAAO5T,KAAMO,IAAK,SAAUJ,EAAGuO,GACzBoW,aAAeC,SAAS9gB,KAAMuB,QAElCmU,IAAKnU,OAAQkJ,GAIbmW,YAAarf,OAAS,KAAqB,gBAANkJ,GAAiBvO,EAAI,IAAO,IAAKuO,EAAGoW,YAAanL,WAIlF,IAAMmL,aAAsC,WAAvBlR,OAAOnD,KAAMlQ,KAQxCoZ,IAAKnU,OAAQjF,SANb,KAAMsC,OAAQtC,KACbskB,YAAarf,OAAS,IAAM3C,KAAO,IAAKtC,IAAKsC,MAAQiiB,YAAanL,KA8PrE,QAASqL,qBACR,IACC,MAAO,IAAI7S,QAAO8S,eACjB,MAAO7iB,KAGV,QAAS8iB,mBACR,IACC,MAAO,IAAI/S,QAAOgT,cAAe,qBAChC,MAAO/iB,KA8SV,QAASgjB,WAAW5Q,MACnB,MAAOZ,QAAOK,SAAUO,MACvBA,KACkB,IAAlBA,KAAKN,SACJM,KAAK6Q,aAAe7Q,KAAK8Q,cACzB,EAhyTH,GAAI9O,eAEApS,MAAQoS,WAAWpS,MAEnBC,OAASmS,WAAWnS,OAEpB2D,KAAOwO,WAAWxO,KAElBtC,QAAU8Q,WAAW9Q,QAErB6f,cAEAxT,SAAWwT,WAAWxT,SAEtBtR,OAAS8kB,WAAWvT,eAEpBgF,WAKHtF,QAAU,SAGVkC,OAAS,SAAU4R,SAAU3gB,SAG5B,MAAO,IAAI+O,QAAOxS,GAAG8I,KAAMsb,SAAU3gB,UAKtC4gB,MAAQ,qCAGRC,UAAY,QACZC,WAAa,eAGbC,WAAa,SAAUC,IAAKC,QAC3B,MAAOA,QAAOlK,cAGhBhI,QAAOxS,GAAKwS,OAAO7H,WAElBga,OAAQrU,QAERsU,YAAapS,OAGb4R,SAAU,GAGVplB,OAAQ,EAER6lB,QAAS,WACR,MAAO7hB,OAAMtE,KAAM6L,OAKpB4D,IAAK,SAAU2W,KACd,MAAc,OAAPA,IAGE,EAANA,IAAUva,KAAMua,IAAMva,KAAKvL,QAAWuL,KAAMua,KAG9C9hB,MAAMtE,KAAM6L,OAKdwa,UAAW,SAAUtO,OAGpB,GAAI1I,KAAMyE,OAAOsE,MAAOvM,KAAKqa,cAAenO,MAO5C,OAJA1I,KAAIiX,WAAaza,KACjBwD,IAAItK,QAAU8G,KAAK9G,QAGZsK,KAMRnP,KAAM,SAAUkP,SAAUjF,MACzB,MAAO2J,QAAO5T,KAAM2L,KAAMuD,SAAUjF,OAGrCrG,IAAK,SAAUsL,UACd,MAAOvD,MAAKwa,UAAWvS,OAAOhQ,IAAI+H,KAAM,SAAU6I,KAAMrU,GACvD,MAAO+O,UAASpP,KAAM0U,KAAMrU,EAAGqU,UAIjCpQ,MAAO,WACN,MAAOuH,MAAKwa,UAAW/hB,MAAM/C,MAAOsK,KAAMrK,aAG3C+kB,MAAO,WACN,MAAO1a,MAAK2a,GAAI,IAGjBC,KAAM,WACL,MAAO5a,MAAK2a,GAAI,KAGjBA,GAAI,SAAUnmB,GACb,GAAIqmB,KAAM7a,KAAKvL,OACd+C,GAAKhD,GAAU,EAAJA,EAAQqmB,IAAM,EAC1B,OAAO7a,MAAKwa,UAAWhjB,GAAK,GAASqjB,IAAJrjB,GAAYwI,KAAKxI,SAGnDwa,IAAK,WACJ,MAAOhS,MAAKya,YAAcza,KAAKqa,YAAY,OAK5Che,KAAMA,KACNye,KAAMjQ,WAAWiQ,KACjB9jB,OAAQ6T,WAAW7T,QAGpBiR,OAAOgD,OAAShD,OAAOxS,GAAGwV,OAAS,WAClC,GAAItF,KAAKoV,YAAaC,KAAM9jB,KAAMoJ,QAAS2a,MAC1C/lB,OAASS,UAAU,OACnBnB,EAAI,EACJC,OAASkB,UAAUlB,OACnBkjB,MAAO,CAsBR,KAnBuB,iBAAXziB,UACXyiB,KAAOziB,OAGPA,OAASS,UAAWnB,OACpBA,KAIsB,gBAAXU,SAAwB+S,OAAOjU,WAAWkB,UACrDA,WAIIV,IAAMC,SACVS,OAAS8K,KACTxL,KAGWC,OAAJD,EAAYA,IAEnB,GAAmC,OAA7B8L,QAAU3K,UAAWnB,IAE1B,IAAM0C,OAAQoJ,SACbqF,IAAMzQ,OAAQgC,MACd8jB,KAAO1a,QAASpJ,MAGXhC,SAAW8lB,OAKXrD,MAAQqD,OAAU/S,OAAOiT,cAAcF,QAAUD,YAAc9S,OAAO7T,QAAQ4mB,SAC7ED,aACJA,aAAc,EACdE,MAAQtV,KAAOsC,OAAO7T,QAAQuR,KAAOA,QAGrCsV,MAAQtV,KAAOsC,OAAOiT,cAAcvV,KAAOA,OAI5CzQ,OAAQgC,MAAS+Q,OAAOgD,OAAQ0M,KAAMsD,MAAOD,OAGzB9Z,SAAT8Z,OACX9lB,OAAQgC,MAAS8jB,MAOrB,OAAO9lB,SAGR+S,OAAOgD,QAENP,QAAS,UAAa3E,QAAU8K,KAAKsK,UAAW5iB,QAAS,MAAO,IAGhE6iB,SAAS,EAET5f,MAAO,SAAUjF,KAChB,KAAM,IAAIG,OAAOH,MAGlByU,KAAM,aAKNhX,WAAY,SAAUY,KACrB,MAA4B,aAArBqT,OAAOnD,KAAKlQ,MAGpBR,QAASmS,MAAMnS,SAAW,SAAUQ,KACnC,MAA4B,UAArBqT,OAAOnD,KAAKlQ,MAGpB0T,SAAU,SAAU1T,KAEnB,MAAc,OAAPA,KAAeA,KAAOA,IAAI4R,QAGlC6U,UAAW,SAAUzmB,KAKpB,OAAQqT,OAAO7T,QAASQ,MAAUA,IAAMkd,WAAYld,KAAQ,GAAM,GAGnEwV,cAAe,SAAUxV,KACxB,GAAIsC,KACJ,KAAMA,OAAQtC,KACb,OAAO,CAER,QAAO,GAGRsmB,cAAe,SAAUtmB,KACxB,GAAIwQ,IAKJ,KAAMxQ,KAA4B,WAArBqT,OAAOnD,KAAKlQ,MAAqBA,IAAI2T,UAAYN,OAAOK,SAAU1T,KAC9E,OAAO,CAGR,KAEC,GAAKA,IAAIylB,cACPvlB,OAAOX,KAAKS,IAAK,iBACjBE,OAAOX,KAAKS,IAAIylB,YAAYja,UAAW,iBACxC,OAAO,EAEP,MAAQ3J,GAET,OAAO,EAKR,GAAK4U,QAAQiQ,QACZ,IAAMlW,MAAOxQ,KACZ,MAAOE,QAAOX,KAAMS,IAAKwQ,IAM3B,KAAMA,MAAOxQ,MAEb,MAAesM,UAARkE,KAAqBtQ,OAAOX,KAAMS,IAAKwQ,MAG/CN,KAAM,SAAUlQ,KACf,MAAY,OAAPA,IACGA,IAAM,GAEQ,gBAARA,MAAmC,kBAARA,KACxCglB,WAAYxT,SAASjS,KAAKS,OAAU,eAC7BA,MAMT2mB,WAAY,SAAUrW,MAChBA,MAAQ+C,OAAOsG,KAAMrJ,QAIvBsB,OAAOgV,YAAc,SAAUtW,MAChCsB,OAAe,KAAErS,KAAMqS,OAAQtB,QAC3BA,OAMPgG,UAAW,SAAUuQ,QACpB,MAAOA,QAAOljB,QAASwhB,UAAW,OAAQxhB,QAASyhB,WAAYC,aAGhE3N,SAAU,SAAUzD,KAAM3R,MACzB,MAAO2R,MAAKyD,UAAYzD,KAAKyD,SAAStC,gBAAkB9S,KAAK8S,eAI9D3V,KAAM,SAAUO,IAAK2O,SAAUjF,MAC9B,GAAIhJ,OACHd,EAAI,EACJC,OAASG,IAAIH,OACbL,QAAUiU,YAAazT,IAExB,IAAK0J,MACJ,GAAKlK,QACJ,KAAYK,OAAJD,IACPc,MAAQiO,SAAS7N,MAAOd,IAAKJ,GAAK8J,MAE7BhJ,SAAU,GAHId,SAQpB,KAAMA,IAAKI,KAGV,GAFAU,MAAQiO,SAAS7N,MAAOd,IAAKJ,GAAK8J,MAE7BhJ,SAAU,EACd,UAOH,IAAKlB,QACJ,KAAYK,OAAJD,IACPc,MAAQiO,SAASpP,KAAMS,IAAKJ,GAAKA,EAAGI,IAAKJ,IAEpCc,SAAU,GAHId,SAQpB,KAAMA,IAAKI,KAGV,GAFAU,MAAQiO,SAASpP,KAAMS,IAAKJ,GAAKA,EAAGI,IAAKJ,IAEpCc,SAAU,EACd,KAMJ,OAAOV,MAIR2Z,KAAM,SAAUxM,MACf,MAAe,OAARA,KACN,IACEA,KAAO,IAAKxJ,QAASuhB,MAAO,KAIhC4B,UAAW,SAAUC,IAAKC,SACzB,GAAIpY,KAAMoY,WAaV,OAXY,OAAPD,MACCtT,YAAalC,OAAOwV,MACxB1T,OAAOsE,MAAO/I,IACE,gBAARmY,MACLA,KAAQA,KAGXtf,KAAKlI,KAAMqP,IAAKmY,MAIXnY,KAGRwF,QAAS,SAAUH,KAAM8S,IAAKnnB,GAC7B,GAAIqmB,IAEJ,IAAKc,IAAM,CACV,GAAK5hB,QACJ,MAAOA,SAAQ5F,KAAMwnB,IAAK9S,KAAMrU,EAMjC,KAHAqmB,IAAMc,IAAIlnB,OACVD,EAAIA,EAAQ,EAAJA,EAAQqc,KAAKC,IAAK,EAAG+J,IAAMrmB,GAAMA,EAAI,EAEjCqmB,IAAJrmB,EAASA,IAEhB,GAAKA,IAAKmnB,MAAOA,IAAKnnB,KAAQqU,KAC7B,MAAOrU,GAKV,MAAO,IAGR+X,MAAO,SAAUmO,MAAOmB,QAKvB,IAJA,GAAIhB,MAAOgB,OAAOpnB,OACjB+C,EAAI,EACJhD,EAAIkmB,MAAMjmB,OAEComB,IAAJrjB,GACPkjB,MAAOlmB,KAAQqnB,OAAQrkB,IAKxB,IAAKqjB,MAAQA,IACZ,KAAsB3Z,SAAd2a,OAAOrkB,IACdkjB,MAAOlmB,KAAQqnB,OAAQrkB,IAMzB,OAFAkjB,OAAMjmB,OAASD,EAERkmB,OAGR9R,KAAM,SAAUsD,MAAO3I,SAAUuY,QAShC,IARA,GAAIC,iBACHpL,WACAnc,EAAI,EACJC,OAASyX,MAAMzX,OACfunB,gBAAkBF,OAIPrnB,OAAJD,EAAYA,IACnBunB,iBAAmBxY,SAAU2I,MAAO1X,GAAKA,GACpCunB,kBAAoBC,gBACxBrL,QAAQtU,KAAM6P,MAAO1X,GAIvB,OAAOmc,UAIR1Y,IAAK,SAAUiU,MAAO3I,SAAU0Y,KAC/B,GAAI3mB,OACHd,EAAI,EACJC,OAASyX,MAAMzX,OACfL,QAAUiU,YAAa6D,OACvB1I,MAGD,IAAKpP,QACJ,KAAYK,OAAJD,EAAYA,IACnBc,MAAQiO,SAAU2I,MAAO1X,GAAKA,EAAGynB,KAEnB,MAAT3mB,OACJkO,IAAInH,KAAM/G,WAMZ,KAAMd,IAAK0X,OACV5W,MAAQiO,SAAU2I,MAAO1X,GAAKA,EAAGynB,KAEnB,MAAT3mB,OACJkO,IAAInH,KAAM/G,MAMb,OAAOoD,QAAOhD,SAAW8N,MAI1BsH,KAAM,EAINoR,MAAO,SAAUzmB,GAAIyD,SACpB,GAAIoF,MAAM4d,MAAOrD,GAUjB,OARwB,gBAAZ3f,WACX2f,IAAMpjB,GAAIyD,SACVA,QAAUzD,GACVA,GAAKojB,KAKA5Q,OAAOjU,WAAYyB,KAKzB6I,KAAO7F,MAAMtE,KAAMwB,UAAW,GAC9BumB,MAAQ,WACP,MAAOzmB,IAAGC,MAAOwD,SAAW8G,KAAM1B,KAAK5F,OAAQD,MAAMtE,KAAMwB,cAI5DumB,MAAMpR,KAAOrV,GAAGqV,KAAOrV,GAAGqV,MAAQ7C,OAAO6C,OAElCoR,OAbP,QAgBD9J,IAAK,WACJ,OAAQ,GAAM7U,OAKf8N,QAASA,UAIVpD,OAAO5T,KAAK,gEAAgE8B,MAAM,KAAM,SAAS3B,EAAG0C,MACnG0iB,WAAY,WAAa1iB,KAAO,KAAQA,KAAK8S,eAuB9C,IAAImS,QAWJ,SAAW3V,QA0LX,QAAS2V,QAAQtC,SAAU3gB,QAAS0iB,QAASQ,MAC5C,GAAIxX,OAAOiE,KAAMwT,EAAG9T,SAEnB/T,EAAG8nB,OAAQC,IAAKC,IAAK3lB,WAAY4lB,WAUlC,KAROvjB,QAAUA,QAAQ6T,eAAiB7T,QAAUwjB,gBAAmB7mB,UACtE8mB,YAAazjB,SAGdA,QAAUA,SAAWrD,SACrB+lB,QAAUA,YACVrT,SAAWrP,QAAQqP,SAEM,gBAAbsR,YAA0BA,UACxB,IAAbtR,UAA+B,IAAbA,UAA+B,KAAbA,SAEpC,MAAOqT,QAGR,KAAMQ,MAAQQ,eAAiB,CAG9B,GAAkB,KAAbrU,WAAoB3D,MAAQiY,WAAWxa,KAAMwX,WAEjD,GAAMwC,EAAIzX,MAAM,IACf,GAAkB,IAAb2D,SAAiB,CAIrB,GAHAM,KAAO3P,QAAQ4jB,eAAgBT,IAG1BxT,OAAQA,KAAK1P,WAQjB,MAAOyiB,QALP,IAAK/S,KAAKvS,KAAO+lB,EAEhB,MADAT,SAAQvf,KAAMwM,MACP+S,YAOT,IAAK1iB,QAAQ6T,gBAAkBlE,KAAO3P,QAAQ6T,cAAc+P,eAAgBT,KAC3EU,SAAU7jB,QAAS2P,OAAUA,KAAKvS,KAAO+lB,EAEzC,MADAT,SAAQvf,KAAMwM,MACP+S,YAKH,CAAA,GAAKhX,MAAM,GAEjB,MADAvI,MAAK3G,MAAOkmB,QAAS1iB,QAAQpD,qBAAsB+jB,WAC5C+B,OAGD,KAAMS,EAAIzX,MAAM,KAAOyG,QAAQ2R,uBAErC,MADA3gB,MAAK3G,MAAOkmB,QAAS1iB,QAAQ8jB,uBAAwBX,IAC9CT,QAKT,GAAKvQ,QAAQ4R,OAASC,YAAcA,UAAU5kB,KAAMuhB,WAAc,CASjE,GARA2C,IAAMD,IAAM7R,QACZ7T,WAAaqC,QACbujB,YAA2B,IAAblU,UAAkBsR,SAMd,IAAbtR,UAAqD,WAAnCrP,QAAQoT,SAAStC,cAA6B,CAWpE,IAVAsS,OAASa,SAAUtD,WAEb0C,IAAMrjB,QAAQD,aAAa,OAChCujB,IAAMD,IAAIhkB,QAAS6kB,QAAS,QAE5BlkB,QAAQuO,aAAc,KAAM+U,KAE7BA,IAAM,QAAUA,IAAM,MAEtBhoB,EAAI8nB,OAAO7nB,OACHD,KACP8nB,OAAO9nB,GAAKgoB,IAAMa,WAAYf,OAAO9nB,GAEtCqC,YAAaymB,SAAShlB,KAAMuhB,WAAc0D,YAAarkB,QAAQC,aAAgBD,QAC/EujB,YAAcH,OAAO3jB,KAAK,KAG3B,GAAK8jB,YACJ,IAIC,MAHApgB,MAAK3G,MAAOkmB,QACX/kB,WAAWuV,iBAAkBqQ,cAEvBb,QACN,MAAM4B,WACN,QACKjB,KACLrjB,QAAQmU,gBAAgB,QAQ7B,MAAOoQ,QAAQ5D,SAASthB,QAASuhB,MAAO,MAAQ5gB,QAAS0iB,QAASQ,MASnE,QAASsB,eAGR,QAAS9S,OAAOxF,IAAK9P,OAMpB,MAJKqoB,MAAKthB,KAAM+I,IAAM,KAAQwY,KAAKC,mBAE3BjT,OAAO+S,KAAKnkB,SAEZoR,MAAOxF,IAAM,KAAQ9P,MAR9B,GAAIqoB,QAUJ,OAAO/S,OAOR,QAASkT,cAAcroB,IAEtB,MADAA,IAAIiV,UAAY,EACTjV,GAOR,QAASsoB,QAAQtoB,IAChB,GAAIuoB,KAAMnoB,SAASuR,cAAc,MAEjC,KACC,QAAS3R,GAAIuoB,KACZ,MAAOvnB,GACR,OAAO,EACN,QAEIunB,IAAI7kB,YACR6kB,IAAI7kB,WAAWC,YAAa4kB,KAG7BA,IAAM,MASR,QAASC,WAAWzL,MAAOjQ,SAI1B,IAHA,GAAIoZ,KAAMnJ,MAAMrc,MAAM,KACrB3B,EAAIge,MAAM/d,OAEHD,KACPopB,KAAKM,WAAYvC,IAAInnB,IAAO+N,QAU9B,QAAS4b,cAAcC,EAAGC,GACzB,GAAInV,KAAMmV,GAAKD,EACdE,KAAOpV,KAAsB,IAAfkV,EAAE7V,UAAiC,IAAf8V,EAAE9V,YAChC8V,EAAEE,aAAeC,gBACjBJ,EAAEG,aAAeC,aAGtB,IAAKF,KACJ,MAAOA,KAIR,IAAKpV,IACJ,KAASA,IAAMA,IAAIuV,aAClB,GAAKvV,MAAQmV,EACZ,MAAO,EAKV,OAAOD,GAAI,EAAI,GAOhB,QAASM,mBAAmB5Z,MAC3B,MAAO,UAAU+D,MAChB,GAAI3R,MAAO2R,KAAKyD,SAAStC,aACzB,OAAgB,UAAT9S,MAAoB2R,KAAK/D,OAASA,MAQ3C,QAAS6Z,oBAAoB7Z,MAC5B,MAAO,UAAU+D,MAChB,GAAI3R,MAAO2R,KAAKyD,SAAStC,aACzB,QAAiB,UAAT9S,MAA6B,WAATA,OAAsB2R,KAAK/D,OAASA,MAQlE,QAAS8Z,wBAAwBnpB,IAChC,MAAOqoB,cAAa,SAAUe,UAE7B,MADAA,WAAYA,SACLf,aAAa,SAAU1B,KAAMzL,SAMnC,IALA,GAAInZ,GACHsnB,aAAerpB,MAAQ2mB,KAAK3nB,OAAQoqB,UACpCrqB,EAAIsqB,aAAarqB,OAGVD,KACF4nB,KAAO5kB,EAAIsnB,aAAatqB,MAC5B4nB,KAAK5kB,KAAOmZ,QAAQnZ,GAAK4kB,KAAK5kB,SAYnC,QAAS+lB,aAAarkB,SACrB,MAAOA,UAAmD,mBAAjCA,SAAQpD,sBAAwCoD,QAg/B1E,QAAS6lB,eAuET,QAAS1B,YAAY2B,QAIpB,IAHA,GAAIxqB,GAAI,EACPqmB,IAAMmE,OAAOvqB,OACbolB,SAAW,GACAgB,IAAJrmB,EAASA,IAChBqlB,UAAYmF,OAAOxqB,GAAGc,KAEvB,OAAOukB,UAGR,QAASoF,eAAeC,QAASC,WAAYC,MAC5C,GAAIjW,KAAMgW,WAAWhW,IACpBkW,iBAAmBD,MAAgB,eAARjW,IAC3BmW,SAAW9K,MAEZ,OAAO2K,YAAWzE,MAEjB,SAAU7R,KAAM3P,QAASqmB,KACxB,KAAS1W,KAAOA,KAAMM,MACrB,GAAuB,IAAlBN,KAAKN,UAAkB8W,iBAC3B,MAAOH,SAASrW,KAAM3P,QAASqmB,MAMlC,SAAU1W,KAAM3P,QAASqmB,KACxB,GAAIC,UAAUC,WACbC,UAAaC,QAASL,SAGvB,IAAKC,KACJ,KAAS1W,KAAOA,KAAMM,MACrB,IAAuB,IAAlBN,KAAKN,UAAkB8W,mBACtBH,QAASrW,KAAM3P,QAASqmB,KAC5B,OAAO,MAKV,MAAS1W,KAAOA,KAAMM,MACrB,GAAuB,IAAlBN,KAAKN,UAAkB8W,iBAAmB,CAE9C,GADAI,WAAa5W,KAAM6B,WAAc7B,KAAM6B,cACjC8U,SAAWC,WAAYtW,OAC5BqW,SAAU,KAAQG,SAAWH,SAAU,KAAQF,SAG/C,MAAQI,UAAU,GAAMF,SAAU,EAMlC,IAHAC,WAAYtW,KAAQuW,SAGdA,SAAU,GAAMR,QAASrW,KAAM3P,QAASqmB,KAC7C,OAAO,IASf,QAASK,gBAAgBC,UACxB,MAAOA,UAASprB,OAAS,EACxB,SAAUoU,KAAM3P,QAASqmB,KAExB,IADA,GAAI/qB,GAAIqrB,SAASprB,OACTD,KACP,IAAMqrB,SAASrrB,GAAIqU,KAAM3P,QAASqmB,KACjC,OAAO,CAGT,QAAO,GAERM,SAAS,GAGX,QAASC,kBAAkBjG,SAAU/S,SAAU8U,SAG9C,IAFA,GAAIpnB,GAAI,EACPqmB,IAAM/T,SAASrS,OACJomB,IAAJrmB,EAASA,IAChB2nB,OAAQtC,SAAU/S,SAAStS,GAAIonB,QAEhC,OAAOA,SAGR,QAASmE,UAAUC,UAAW/nB,IAAK8Q,OAAQ7P,QAASqmB,KAOnD,IANA,GAAI1W,MACHoX,gBACAzrB,EAAI,EACJqmB,IAAMmF,UAAUvrB,OAChByrB,OAAgB,MAAPjoB,IAEE4iB,IAAJrmB,EAASA,KACVqU,KAAOmX,UAAUxrB,MAChBuU,SAAUA,OAAQF,KAAM3P,QAASqmB,OACtCU,aAAa5jB,KAAMwM,MACdqX,QACJjoB,IAAIoE,KAAM7H,IAMd,OAAOyrB,cAGR,QAASE,YAAYC,UAAWvG,SAAUqF,QAASmB,WAAYC,WAAYC,cAO1E,MANKF,cAAeA,WAAY3V,WAC/B2V,WAAaF,WAAYE,aAErBC,aAAeA,WAAY5V,WAC/B4V,WAAaH,WAAYG,WAAYC,eAE/BzC,aAAa,SAAU1B,KAAMR,QAAS1iB,QAASqmB,KACrD,GAAI5J,MAAMnhB,EAAGqU,KACZ2X,UACAC,WACAC,YAAc9E,QAAQnnB,OAGtByX,MAAQkQ,MAAQ0D,iBAAkBjG,UAAY,IAAK3gB,QAAQqP,UAAarP,SAAYA,YAGpFynB,WAAYP,YAAehE,MAASvC,SAEnC3N,MADA6T,SAAU7T,MAAOsU,OAAQJ,UAAWlnB,QAASqmB,KAG9CqB,WAAa1B,QAEZoB,aAAgBlE,KAAOgE,UAAYM,aAAeL,eAMjDzE,QACD+E,SAQF,IALKzB,SACJA,QAASyB,UAAWC,WAAY1nB,QAASqmB,KAIrCc,WAMJ,IALA1K,KAAOoK,SAAUa,WAAYH,SAC7BJ,WAAY1K,QAAUzc,QAASqmB,KAG/B/qB,EAAImhB,KAAKlhB,OACDD,MACDqU,KAAO8M,KAAKnhB,MACjBosB,WAAYH,QAAQjsB,MAASmsB,UAAWF,QAAQjsB,IAAOqU,MAK1D,IAAKuT,MACJ,GAAKkE,YAAcF,UAAY,CAC9B,GAAKE,WAAa,CAIjB,IAFA3K,QACAnhB,EAAIosB,WAAWnsB,OACPD,MACDqU,KAAO+X,WAAWpsB,KAEvBmhB,KAAKtZ,KAAOskB,UAAUnsB,GAAKqU,KAG7ByX,YAAY,KAAOM,cAAkBjL,KAAM4J,KAK5C,IADA/qB,EAAIosB,WAAWnsB,OACPD,MACDqU,KAAO+X,WAAWpsB,MACtBmhB,KAAO2K,WAAavmB,QAASqiB,KAAMvT,MAAS2X,OAAOhsB,IAAM,KAE1D4nB,KAAKzG,QAAUiG,QAAQjG,MAAQ9M,YAOlC+X,YAAab,SACZa,aAAehF,QACdgF,WAAW5pB,OAAQ0pB,YAAaE,WAAWnsB,QAC3CmsB,YAEGN,WACJA,WAAY,KAAM1E,QAASgF,WAAYrB,KAEvCljB,KAAK3G,MAAOkmB,QAASgF,cAMzB,QAASC,mBAAmB7B,QAwB3B,IAvBA,GAAI8B,cAAc5B,QAAS1nB,EAC1BqjB,IAAMmE,OAAOvqB,OACbssB,gBAAkBnD,KAAKoD,SAAUhC,OAAO,GAAGla,MAC3Cmc,iBAAmBF,iBAAmBnD,KAAKoD,SAAS,KACpDxsB,EAAIusB,gBAAkB,EAAI,EAG1BG,aAAejC,cAAe,SAAUpW,MACvC,MAAOA,QAASiY,cACdG,kBAAkB,GACrBE,gBAAkBlC,cAAe,SAAUpW,MAC1C,MAAO9O,SAAS+mB,aAAcjY,MAAS,IACrCoY,kBAAkB,GACrBpB,UAAa,SAAUhX,KAAM3P,QAASqmB,KACrC,GAAI/b,MAASud,kBAAqBxB,KAAOrmB,UAAYkoB,qBACnDN,aAAe5nB,SAASqP,SACxB2Y,aAAcrY,KAAM3P,QAASqmB,KAC7B4B,gBAAiBtY,KAAM3P,QAASqmB,KAGlC,OADAuB,cAAe,KACRtd,MAGGqX,IAAJrmB,EAASA,IAChB,GAAM0qB,QAAUtB,KAAKoD,SAAUhC,OAAOxqB,GAAGsQ,MACxC+a,UAAaZ,cAAcW,eAAgBC,UAAYX,cACjD,CAIN,GAHAA,QAAUtB,KAAK7U,OAAQiW,OAAOxqB,GAAGsQ,MAAOpP,MAAO,KAAMspB,OAAOxqB,GAAGmc,SAG1DuO,QAASxU,SAAY,CAGzB,IADAlT,IAAMhD,EACMqmB,IAAJrjB,IACFomB,KAAKoD,SAAUhC,OAAOxnB,GAAGsN,MADdtN,KAKjB,MAAO2oB,YACN3rB,EAAI,GAAKorB,eAAgBC,UACzBrrB,EAAI,GAAK6oB,WAER2B,OAAOvmB,MAAO,EAAGjE,EAAI,GAAIkE,QAASpD,MAAgC,MAAzB0pB,OAAQxqB,EAAI,GAAIsQ,KAAe,IAAM,MAC7EvM,QAASuhB,MAAO,MAClBoF,QACI1nB,EAAJhD,GAASqsB,kBAAmB7B,OAAOvmB,MAAOjE,EAAGgD,IACzCqjB,IAAJrjB,GAAWqpB,kBAAoB7B,OAASA,OAAOvmB,MAAOjB,IAClDqjB,IAAJrjB,GAAW6lB,WAAY2B,SAGzBa,SAASxjB,KAAM6iB,SAIjB,MAAOU,gBAAgBC,UAGxB,QAASwB,0BAA0BC,gBAAiBC,aACnD,GAAIC,OAAQD,YAAY9sB,OAAS,EAChCgtB,UAAYH,gBAAgB7sB,OAAS,EACrCitB,aAAe,SAAUtF,KAAMljB,QAASqmB,IAAK3D,QAAS+F,WACrD,GAAI9Y,MAAMrR,EAAG0nB,QACZ0C,aAAe,EACfptB,EAAI,IACJwrB,UAAY5D,SACZyF,cACAC,cAAgBV,iBAEhBlV,MAAQkQ,MAAQqF,WAAa7D,KAAK3Q,KAAU,IAAG,IAAK0U,WAEpDI,cAAiBpC,SAA4B,MAAjBmC,cAAwB,EAAIjR,KAAKsK,UAAY,GACzEN,IAAM3O,MAAMzX,MAUb,KARKktB,YACJP,iBAAmBloB,UAAYrD,UAAYqD,SAOpC1E,IAAMqmB,KAA4B,OAApBhS,KAAOqD,MAAM1X,IAAaA,IAAM,CACrD,GAAKitB,WAAa5Y,KAAO,CAExB,IADArR,EAAI,EACK0nB,QAAUoC,gBAAgB9pB,MAClC,GAAK0nB,QAASrW,KAAM3P,QAASqmB,KAAQ,CACpC3D,QAAQvf,KAAMwM,KACd,OAGG8Y,YACJhC,QAAUoC,eAKPP,SAEE3Y,MAAQqW,SAAWrW,OACxB+Y,eAIIxF,MACJ4D,UAAU3jB,KAAMwM,OAOnB,GADA+Y,cAAgBptB,EACXgtB,OAAShtB,IAAMotB,aAAe,CAElC,IADApqB,EAAI,EACK0nB,QAAUqC,YAAY/pB,MAC9B0nB,QAASc,UAAW6B,WAAY3oB,QAASqmB,IAG1C,IAAKnD,KAAO,CAEX,GAAKwF,aAAe,EACnB,KAAQptB,KACAwrB,UAAUxrB,IAAMqtB,WAAWrtB,KACjCqtB,WAAWrtB,GAAKuT,IAAI5T,KAAMynB,SAM7BiG,YAAa9B,SAAU8B,YAIxBxlB,KAAK3G,MAAOkmB,QAASiG,YAGhBF,YAAcvF,MAAQyF,WAAWptB,OAAS,GAC5CmtB,aAAeL,YAAY9sB,OAAW,GAExC0nB,OAAO6F,WAAYpG,SAUrB,MALK+F,aACJhC,QAAUoC,cACVX,iBAAmBU,eAGb9B,UAGT,OAAOwB,OACN1D,aAAc4D,cACdA,aA50DF,GAAIltB,GACH6W,QACAuS,KACAqE,QACAC,MACA/E,SACAgF,QACA1E,OACA2D,iBACAgB,UACAC,aAGA1F,YACA9mB,SACAysB,QACA1F,eACAM,UACAqF,cACA5R,QACAoM,SAGArS,QAAU,SAAW,EAAI,GAAInN,MAC7Bmf,aAAelW,OAAO3Q,SACtB8pB,QAAU,EACVnL,KAAO,EACPgO,WAAa9E,cACb+E,WAAa/E,cACbgF,cAAgBhF,cAChBiF,UAAY,SAAUvE,EAAGC,GAIxB,MAHKD,KAAMC,IACVgE,cAAe,GAET,GAIR7D,aAAe,GAAK,GAGpB1pB,UAAcuR,eACdsV,OACA5T,IAAM4T,IAAI5T,IACV6a,YAAcjH,IAAItf,KAClBA,KAAOsf,IAAItf,KACX5D,MAAQkjB,IAAIljB,MAGZsB,QAAU,SAAU6R,KAAM/C,MAGzB,IAFA,GAAIrU,GAAI,EACPqmB,IAAMjP,KAAKnX,OACAomB,IAAJrmB,EAASA,IAChB,GAAKoX,KAAKpX,KAAOqU,KAChB,MAAOrU,EAGT,OAAO,IAGRquB,SAAW,6HAKXC,WAAa,sBAEbC,kBAAoB,mCAKpBC,WAAaD,kBAAkBxqB,QAAS,IAAK,MAG7C0qB,WAAa,MAAQH,WAAa,KAAOC,kBAAoB,OAASD,WAErE,gBAAkBA,WAElB,2DAA6DE,WAAa,OAASF,WACnF,OAEDI,QAAU,KAAOH,kBAAoB,wFAKPE,WAAa,eAM3CE,YAAc,GAAI5tB,QAAQutB,WAAa,IAAK,KAC5ChJ,MAAQ,GAAIvkB,QAAQ,IAAMutB,WAAa,8BAAgCA,WAAa,KAAM,KAE1FM,OAAS,GAAI7tB,QAAQ,IAAMutB,WAAa,KAAOA,WAAa,KAC5DO,aAAe,GAAI9tB,QAAQ,IAAMutB,WAAa,WAAaA,WAAa,IAAMA,WAAa,KAE3FQ,iBAAmB,GAAI/tB,QAAQ,IAAMutB,WAAa,iBAAmBA,WAAa,OAAQ,KAE1FS,QAAU,GAAIhuB,QAAQ2tB,SACtBM,YAAc,GAAIjuB,QAAQ,IAAMytB,WAAa,KAE7CS,WACCC,GAAM,GAAInuB,QAAQ,MAAQwtB,kBAAoB,KAC9CY,MAAS,GAAIpuB,QAAQ,QAAUwtB,kBAAoB,KACnDa,IAAO,GAAIruB,QAAQ,KAAOwtB,kBAAkBxqB,QAAS,IAAK,MAAS,KACnEsrB,KAAQ,GAAItuB,QAAQ,IAAM0tB,YAC1Ba,OAAU,GAAIvuB,QAAQ,IAAM2tB,SAC5Ba,MAAS,GAAIxuB,QAAQ,yDAA2DutB,WAC/E,+BAAiCA,WAAa,cAAgBA,WAC9D,aAAeA,WAAa,SAAU,KACvCkB,KAAQ,GAAIzuB,QAAQ,OAASstB,SAAW,KAAM,KAG9CoB,aAAgB,GAAI1uB,QAAQ,IAAMutB,WAAa,mDAC9CA,WAAa,mBAAqBA,WAAa,mBAAoB,MAGrEoB,QAAU,sCACVC,QAAU,SAEVC,QAAU,yBAGVvH,WAAa,mCAEbS,SAAW,OACXF,QAAU,QAGViH,UAAY,GAAI9uB,QAAQ,qBAAuButB,WAAa,MAAQA,WAAa,OAAQ,MACzFwB,UAAY,SAAU9a,EAAG+a,QAASC,mBACjC,GAAIC,MAAO,KAAOF,QAAU,KAI5B,OAAOE,QAASA,MAAQD,kBACvBD,QACO,EAAPE,KAECC,OAAOC,aAAcF,KAAO,OAE5BC,OAAOC,aAAcF,MAAQ,GAAK,MAAe,KAAPA,KAAe,QAO5DG,cAAgB,WACfjI,cAIF,KACCtgB,KAAK3G,MACHimB,IAAMljB,MAAMtE,KAAMuoB,aAAarQ,YAChCqQ,aAAarQ,YAIdsP,IAAKe,aAAarQ,WAAW5X,QAAS8T,SACrC,MAAQ9R,GACT4F,MAAS3G,MAAOimB,IAAIlnB,OAGnB,SAAUS,OAAQ2vB,KACjBjC,YAAYltB,MAAOR,OAAQuD,MAAMtE,KAAK0wB,OAKvC,SAAU3vB,OAAQ2vB,KAIjB,IAHA,GAAIrtB,GAAItC,OAAOT,OACdD,EAAI,EAEIU,OAAOsC,KAAOqtB,IAAIrwB,OAC3BU,OAAOT,OAAS+C,EAAI,IAoQvB6T,QAAU8Q,OAAO9Q,WAOjB6W,MAAQ/F,OAAO+F,MAAQ,SAAUrZ,MAGhC,GAAIyG,iBAAkBzG,OAASA,KAAKkE,eAAiBlE,MAAMyG,eAC3D,OAAOA,iBAA+C,SAA7BA,gBAAgBhD,UAAsB,GAQhEqQ,YAAcR,OAAOQ,YAAc,SAAUle,MAC5C,GAAIqmB,YAAYC,OACfnW,IAAMnQ,KAAOA,KAAKsO,eAAiBtO,KAAOie,YAG3C,OAAK9N,OAAQ/Y,UAA6B,IAAjB+Y,IAAIrG,UAAmBqG,IAAIU,iBAKpDzZ,SAAW+Y,IACX0T,QAAU1T,IAAIU,gBACdyV,OAASnW,IAAI8K,YAMRqL,QAAUA,SAAWA,OAAOC,MAE3BD,OAAOpd,iBACXod,OAAOpd,iBAAkB,SAAUid,eAAe,GACvCG,OAAOrd,aAClBqd,OAAOrd,YAAa,WAAYkd,gBAMlChI,gBAAkBsF,MAAOtT,KAQzBvD,QAAQ4X,WAAalF,OAAO,SAAUC,KAErC,MADAA,KAAIiH,UAAY,KACRjH,IAAI/kB,aAAa,eAO1BoS,QAAQvV,qBAAuBioB,OAAO,SAAUC,KAE/C,MADAA,KAAInW,YAAa+G,IAAIsW,cAAc,MAC3BlH,IAAIloB,qBAAqB,KAAKrB,SAIvC4W,QAAQ2R,uBAAyBoH,QAAQ9rB,KAAMsW,IAAIoO,wBAMnD3R,QAAQ8Z,QAAUpH,OAAO,SAAUC,KAElC,MADAsE,SAAQza,YAAamW,KAAM1nB,GAAKoU,SACxBkE,IAAIwW,oBAAsBxW,IAAIwW,kBAAmB1a,SAAUjW,SAI/D4W,QAAQ8Z,SACZvH,KAAK3Q,KAAS,GAAI,SAAU3W,GAAI4C,SAC/B,GAAuC,mBAA3BA,SAAQ4jB,gBAAkCF,eAAiB,CACtE,GAAIP,GAAInjB,QAAQ4jB,eAAgBxmB,GAGhC,OAAO+lB,IAAKA,EAAEljB,YAAekjB,QAG/BuB,KAAK7U,OAAW,GAAI,SAAUzS,IAC7B,GAAI+uB,QAAS/uB,GAAGiC,QAAS8rB,UAAWC,UACpC,OAAO,UAAUzb,MAChB,MAAOA,MAAK5P,aAAa,QAAUosB,iBAM9BzH,MAAK3Q,KAAS,GAErB2Q,KAAK7U,OAAW,GAAK,SAAUzS,IAC9B,GAAI+uB,QAAS/uB,GAAGiC,QAAS8rB,UAAWC,UACpC,OAAO,UAAUzb,MAChB,GAAIpK,MAAwC,mBAA1BoK,MAAKyc,kBAAoCzc,KAAKyc,iBAAiB,KACjF,OAAO7mB,OAAQA,KAAKnJ,QAAU+vB,UAMjCzH,KAAK3Q,KAAU,IAAI5B,QAAQvV,qBAC1B,SAAUmW,IAAK/S,SACd,MAA6C,mBAAjCA,SAAQpD,qBACZoD,QAAQpD,qBAAsBmW,KAG1BZ,QAAQ4R,IACZ/jB,QAAQkT,iBAAkBH,KAD3B,QAKR,SAAUA,IAAK/S,SACd,GAAI2P,MACHgQ,OACArkB,EAAI,EAEJonB,QAAU1iB,QAAQpD,qBAAsBmW,IAGzC,IAAa,MAARA,IAAc,CAClB,KAASpD,KAAO+S,QAAQpnB,MACA,IAAlBqU,KAAKN,UACTsQ,IAAIxc,KAAMwM,KAIZ,OAAOgQ,KAER,MAAO+C,UAITgC,KAAK3Q,KAAY,MAAI5B,QAAQ2R,wBAA0B,SAAUiI,UAAW/rB,SAC3E,MAAK0jB,gBACG1jB,QAAQ8jB,uBAAwBiI,WADxC,QAWD1C,iBAOArF,cAEM7R,QAAQ4R,IAAMmH,QAAQ9rB,KAAMsW,IAAIxC,qBAGrC2R,OAAO,SAAUC,KAMhBsE,QAAQza,YAAamW,KAAM1P,UAAY,UAAY5D,QAAU,qBAC3CA,QAAU,iEAOvBsT,IAAI5R,iBAAiB,wBAAwB3X,QACjDyoB,UAAU7gB,KAAM,SAAWymB,WAAa,gBAKnC9E,IAAI5R,iBAAiB,cAAc3X,QACxCyoB,UAAU7gB,KAAM,MAAQymB,WAAa,aAAeD,SAAW,KAI1D7E,IAAI5R,iBAAkB,QAAU1B,QAAU,MAAOjW,QACtDyoB,UAAU7gB,KAAK,MAMV2hB,IAAI5R,iBAAiB,YAAY3X,QACtCyoB,UAAU7gB,KAAK,YAMV2hB,IAAI5R,iBAAkB,KAAO1B,QAAU,MAAOjW,QACnDyoB,UAAU7gB,KAAK,cAIjB0hB,OAAO,SAAUC,KAGhB,GAAIuH,OAAQ3W,IAAIxH,cAAc,QAC9Bme,OAAM9d,aAAc,OAAQ,UAC5BuW,IAAInW,YAAa0d,OAAQ9d,aAAc,OAAQ,KAI1CuW,IAAI5R,iBAAiB,YAAY3X,QACrCyoB,UAAU7gB,KAAM,OAASymB,WAAa,eAKjC9E,IAAI5R,iBAAiB,YAAY3X,QACtCyoB,UAAU7gB,KAAM,WAAY,aAI7B2hB,IAAI5R,iBAAiB,QACrB8Q,UAAU7gB,KAAK,YAIXgP,QAAQma,gBAAkBpB,QAAQ9rB,KAAOqY,QAAU2R,QAAQ3R,SAChE2R,QAAQmD,uBACRnD,QAAQoD,oBACRpD,QAAQqD,kBACRrD,QAAQsD,qBAER7H,OAAO,SAAUC,KAGhB3S,QAAQwa,kBAAoBlV,QAAQxc,KAAM6pB,IAAK;AAI/CrN,QAAQxc,KAAM6pB,IAAK,aACnBuE,cAAclmB,KAAM,KAAM6mB,WAI5BhG,UAAYA,UAAUzoB,QAAU,GAAIc,QAAQ2nB,UAAUvkB,KAAK,MAC3D4pB,cAAgBA,cAAc9tB,QAAU,GAAIc,QAAQgtB,cAAc5pB,KAAK,MAIvEmsB,WAAaV,QAAQ9rB,KAAMgqB,QAAQwD,yBAKnC/I,SAAW+H,YAAcV,QAAQ9rB,KAAMgqB,QAAQvF,UAC9C,SAAUqB,EAAGC,GACZ,GAAI0H,OAAuB,IAAf3H,EAAE7V,SAAiB6V,EAAE9O,gBAAkB8O,EAClD4H,IAAM3H,GAAKA,EAAEllB,UACd,OAAOilB,KAAM4H,QAAWA,KAAwB,IAAjBA,IAAIzd,YAClCwd,MAAMhJ,SACLgJ,MAAMhJ,SAAUiJ,KAChB5H,EAAE0H,yBAA8D,GAAnC1H,EAAE0H,wBAAyBE,QAG3D,SAAU5H,EAAGC,GACZ,GAAKA,EACJ,KAASA,EAAIA,EAAEllB,YACd,GAAKklB,IAAMD,EACV,OAAO,CAIV,QAAO,GAOTuE,UAAYmC,WACZ,SAAU1G,EAAGC,GAGZ,GAAKD,IAAMC,EAEV,MADAgE,eAAe,EACR,CAIR,IAAI4D,UAAW7H,EAAE0H,yBAA2BzH,EAAEyH,uBAC9C,OAAKG,SACGA,SAIRA,SAAY7H,EAAErR,eAAiBqR,MAAUC,EAAEtR,eAAiBsR,GAC3DD,EAAE0H,wBAAyBzH,GAG3B,EAGc,EAAV4H,UACF5a,QAAQ6a,cAAgB7H,EAAEyH,wBAAyB1H,KAAQ6H,QAGxD7H,IAAMxP,KAAOwP,EAAErR,gBAAkB2P,cAAgBK,SAASL,aAAc0B,GACrE,GAEHC,IAAMzP,KAAOyP,EAAEtR,gBAAkB2P,cAAgBK,SAASL,aAAc2B,GACrE,EAID+D,UACJroB,QAASqoB,UAAWhE,GAAMrkB,QAASqoB,UAAW/D,GAChD,EAGe,EAAV4H,QAAc,GAAK,IAE3B,SAAU7H,EAAGC,GAEZ,GAAKD,IAAMC,EAEV,MADAgE,eAAe,EACR,CAGR,IAAInZ,KACH1U,EAAI,EACJ2xB,IAAM/H,EAAEjlB,WACR6sB,IAAM3H,EAAEllB,WACRmN,IAAO8X,GACPgI,IAAO/H,EAGR,KAAM8H,MAAQH,IACb,MAAO5H,KAAMxP,IAAM,GAClByP,IAAMzP,IAAM,EACZuX,IAAM,GACNH,IAAM,EACN5D,UACEroB,QAASqoB,UAAWhE,GAAMrkB,QAASqoB,UAAW/D,GAChD,CAGK,IAAK8H,MAAQH,IACnB,MAAO7H,cAAcC,EAAGC,EAKzB,KADAnV,IAAMkV,EACGlV,IAAMA,IAAI/P,YAClBmN,GAAG2Q,QAAS/N,IAGb,KADAA,IAAMmV,EACGnV,IAAMA,IAAI/P,YAClBitB,GAAGnP,QAAS/N,IAIb,MAAQ5C,GAAG9R,KAAO4xB,GAAG5xB,IACpBA,GAGD,OAAOA,GAEN2pB,aAAc7X,GAAG9R,GAAI4xB,GAAG5xB,IAGxB8R,GAAG9R,KAAOkoB,aAAe,GACzB0J,GAAG5xB,KAAOkoB,aAAe,EACzB,GAGK9N,KA1WC/Y,UA6WTsmB,OAAOxL,QAAU,SAAU0V,KAAM5d,UAChC,MAAO0T,QAAQkK,KAAM,KAAM,KAAM5d,WAGlC0T,OAAOqJ,gBAAkB,SAAU3c,KAAMwd,MASxC,IAPOxd,KAAKkE,eAAiBlE,QAAWhT,UACvC8mB,YAAa9T,MAIdwd,KAAOA,KAAK9tB,QAAS+qB,iBAAkB,UAElCjY,QAAQma,iBAAmB5I,kBAC5B2F,gBAAkBA,cAAcjqB,KAAM+tB,UACtCnJ,YAAkBA,UAAU5kB,KAAM+tB,OAErC,IACC,GAAI7iB,KAAMmN,QAAQxc,KAAM0U,KAAMwd,KAG9B,IAAK7iB,KAAO6H,QAAQwa,mBAGlBhd,KAAKhT,UAAuC,KAA3BgT,KAAKhT,SAAS0S,SAChC,MAAO/E,KAEP,MAAO/M,IAGV,MAAO0lB,QAAQkK,KAAMxwB,SAAU,MAAQgT,OAASpU,OAAS,GAG1D0nB,OAAOY,SAAW,SAAU7jB,QAAS2P,MAKpC,OAHO3P,QAAQ6T,eAAiB7T,WAAcrD,UAC7C8mB,YAAazjB,SAEP6jB,SAAU7jB,QAAS2P,OAG3BsT,OAAOjP,KAAO,SAAUrE,KAAM3R,OAEtB2R,KAAKkE,eAAiBlE,QAAWhT,UACvC8mB,YAAa9T,KAGd,IAAIpT,IAAKmoB,KAAKM,WAAYhnB,KAAK8S,eAE9BmH,IAAM1b,IAAMX,OAAOX,KAAMypB,KAAKM,WAAYhnB,KAAK8S,eAC9CvU,GAAIoT,KAAM3R,MAAO0lB,gBACjB1b,MAEF,OAAeA,UAARiQ,IACNA,IACA9F,QAAQ4X,aAAerG,eACtB/T,KAAK5P,aAAc/B,OAClBia,IAAMtI,KAAKyc,iBAAiBpuB,QAAUia,IAAIhN,UAC1CgN,IAAI7b,MACJ,MAGJ6mB,OAAO3gB,MAAQ,SAAUjF,KACxB,KAAM,IAAIG,OAAO,0CAA4CH,MAO9D4lB,OAAO6F,WAAa,SAAUpG,SAC7B,GAAI/S,MACHyd,cACA9uB,EAAI,EACJhD,EAAI,CAOL,IAJA6tB,cAAgBhX,QAAQkb,iBACxBnE,WAAa/W,QAAQmb,YAAc5K,QAAQnjB,MAAO,GAClDmjB,QAAQd,KAAM6H,WAETN,aAAe,CACnB,KAASxZ,KAAO+S,QAAQpnB,MAClBqU,OAAS+S,QAASpnB,KACtBgD,EAAI8uB,WAAWjqB,KAAM7H,GAGvB,MAAQgD,KACPokB,QAAQ5kB,OAAQsvB,WAAY9uB,GAAK,GAQnC,MAFA4qB,WAAY,KAELxG,SAORqG,QAAU9F,OAAO8F,QAAU,SAAUpZ,MACpC,GAAIpK,MACH+E,IAAM,GACNhP,EAAI,EACJ+T,SAAWM,KAAKN,QAEjB,IAAMA,UAMC,GAAkB,IAAbA,UAA+B,IAAbA,UAA+B,KAAbA,SAAkB,CAGjE,GAAiC,gBAArBM,MAAK4d,YAChB,MAAO5d,MAAK4d,WAGZ,KAAM5d,KAAOA,KAAKiE,WAAYjE,KAAMA,KAAOA,KAAK4V,YAC/Cjb,KAAOye,QAASpZ,UAGZ,IAAkB,IAAbN,UAA+B,IAAbA,SAC7B,MAAOM,MAAK6d,cAhBZ,MAASjoB,KAAOoK,KAAKrU,MAEpBgP,KAAOye,QAASxjB,KAkBlB,OAAO+E,MAGRoa,KAAOzB,OAAOwK,WAGb9I,YAAa,GAEb+I,aAAc9I,aAEdlZ,MAAO6e,UAEPvF,cAEAjR,QAEA+T,UACC6F,KAAO1d,IAAK,aAAcuR,OAAO,GACjCoM,KAAO3d,IAAK,cACZ4d,KAAO5d,IAAK,kBAAmBuR,OAAO,GACtCsM,KAAO7d,IAAK,oBAGbiX,WACCyD,KAAQ,SAAUjf,OAUjB,MATAA,OAAM,GAAKA,MAAM,GAAGrM,QAAS8rB,UAAWC,WAGxC1f,MAAM,IAAOA,MAAM,IAAMA,MAAM,IAAMA,MAAM,IAAM,IAAKrM,QAAS8rB,UAAWC,WAExD,OAAb1f,MAAM,KACVA,MAAM,GAAK,IAAMA,MAAM,GAAK,KAGtBA,MAAMnM,MAAO,EAAG,IAGxBsrB,MAAS,SAAUnf,OA6BlB,MAlBAA,OAAM,GAAKA,MAAM,GAAGoF,cAEY,QAA3BpF,MAAM,GAAGnM,MAAO,EAAG,IAEjBmM,MAAM,IACXuX,OAAO3gB,MAAOoJ,MAAM,IAKrBA,MAAM,KAAQA,MAAM,GAAKA,MAAM,IAAMA,MAAM,IAAM,GAAK,GAAmB,SAAbA,MAAM,IAA8B,QAAbA,MAAM,KACzFA,MAAM,KAAUA,MAAM,GAAKA,MAAM,IAAqB,QAAbA,MAAM,KAGpCA,MAAM,IACjBuX,OAAO3gB,MAAOoJ,MAAM,IAGdA,OAGRkf,OAAU,SAAUlf,OACnB,GAAIqiB,QACHC,UAAYtiB,MAAM,IAAMA,MAAM,EAE/B,OAAK6e,WAAiB,MAAEnrB,KAAMsM,MAAM,IAC5B,MAIHA,MAAM,GACVA,MAAM,GAAKA,MAAM,IAAMA,MAAM,IAAM,GAGxBsiB,UAAY3D,QAAQjrB,KAAM4uB,YAEpCD,OAAS9J,SAAU+J,UAAU,MAE7BD,OAASC,SAASntB,QAAS,IAAKmtB,SAASzyB,OAASwyB,QAAWC,SAASzyB,UAGvEmQ,MAAM,GAAKA,MAAM,GAAGnM,MAAO,EAAGwuB,QAC9BriB,MAAM,GAAKsiB,SAASzuB,MAAO,EAAGwuB,SAIxBriB,MAAMnM,MAAO,EAAG,MAIzBsQ,QAEC6a,IAAO,SAAUuD,kBAChB,GAAI7a,UAAW6a,iBAAiB5uB,QAAS8rB,UAAWC,WAAYta,aAChE,OAA4B,MAArBmd,iBACN,WAAa,OAAO,GACpB,SAAUte,MACT,MAAOA,MAAKyD,UAAYzD,KAAKyD,SAAStC,gBAAkBsC,WAI3DqX,MAAS,SAAUsB,WAClB,GAAImC,SAAU5E,WAAYyC,UAAY,IAEtC,OAAOmC,WACLA,QAAU,GAAI7xB,QAAQ,MAAQutB,WAAa,IAAMmC,UAAY,IAAMnC,WAAa,SACjFN,WAAYyC,UAAW,SAAUpc,MAChC,MAAOue,SAAQ9uB,KAAgC,gBAAnBuQ,MAAKoc,WAA0Bpc,KAAKoc,WAA0C,mBAAtBpc,MAAK5P,cAAgC4P,KAAK5P,aAAa,UAAY,OAI1J4qB,KAAQ,SAAU3sB,KAAMmwB,SAAUrqB,OACjC,MAAO,UAAU6L,MAChB,GAAIqM,QAASiH,OAAOjP,KAAMrE,KAAM3R,KAEhC,OAAe,OAAVge,OACgB,OAAbmS,SAEFA,UAINnS,QAAU,GAEU,MAAbmS,SAAmBnS,SAAWlY,MACvB,OAAbqqB,SAAoBnS,SAAWlY,MAClB,OAAbqqB,SAAoBrqB,OAAqC,IAA5BkY,OAAOnb,QAASiD,OAChC,OAAbqqB,SAAoBrqB,OAASkY,OAAOnb,QAASiD,OAAU,GAC1C,OAAbqqB,SAAoBrqB,OAASkY,OAAOzc,OAAQuE,MAAMvI,UAAauI,MAClD,OAAbqqB,UAAsB,IAAMnS,OAAO3c,QAAS4qB,YAAa,KAAQ,KAAMppB,QAASiD,OAAU,GAC7E,OAAbqqB,SAAoBnS,SAAWlY,OAASkY,OAAOzc,MAAO,EAAGuE,MAAMvI,OAAS,KAAQuI,MAAQ,KACxF,IAZO,IAgBV+mB,MAAS,SAAUjf,KAAMwiB,KAAMzI,SAAUnE,MAAOE,MAC/C,GAAI2M,QAAgC,QAAvBziB,KAAKrM,MAAO,EAAG,GAC3B+uB,QAA+B,SAArB1iB,KAAKrM,MAAO,IACtBgvB,OAAkB,YAATH,IAEV,OAAiB,KAAV5M,OAAwB,IAATE,KAGrB,SAAU/R,MACT,QAASA,KAAK1P,YAGf,SAAU0P,KAAM3P,QAASqmB,KACxB,GAAI3U,OAAO6U,WAAYhhB,KAAM6f,KAAMoJ,UAAW/S,MAC7CxL,IAAMoe,SAAWC,QAAU,cAAgB,kBAC3CzC,OAASlc,KAAK1P,WACdjC,KAAOuwB,QAAU5e,KAAKyD,SAAStC,cAC/B2d,UAAYpI,MAAQkI,MAErB,IAAK1C,OAAS,CAGb,GAAKwC,OAAS,CACb,KAAQpe,KAAM,CAEb,IADA1K,KAAOoK,KACEpK,KAAOA,KAAM0K,MACrB,GAAKse,OAAShpB,KAAK6N,SAAStC,gBAAkB9S,KAAyB,IAAlBuH,KAAK8J,SACzD,OAAO,CAIToM,OAAQxL,IAAe,SAATrE,OAAoB6P,OAAS,cAE5C,OAAO,EAMR,GAHAA,OAAU6S,QAAUzC,OAAOjY,WAAaiY,OAAO6C,WAG1CJ,SAAWG,UAQf,IANAlI,WAAasF,OAAQra,WAAcqa,OAAQra,aAC3CE,MAAQ6U,WAAY3a,UACpB4iB,UAAY9c,MAAM,KAAO+U,SAAW/U,MAAM,GAC1C0T,KAAO1T,MAAM,KAAO+U,SAAW/U,MAAM,GACrCnM,KAAOipB,WAAa3C,OAAO1Y,WAAYqb,WAE9BjpB,OAASipB,WAAajpB,MAAQA,KAAM0K,OAG3CmV,KAAOoJ,UAAY,IAAM/S,MAAM5M,OAGhC,GAAuB,IAAlBtJ,KAAK8J,YAAoB+V,MAAQ7f,OAASoK,KAAO,CACrD4W,WAAY3a,OAAW6a,QAAS+H,UAAWpJ,KAC3C,YAKI,IAAKqJ,WAAa/c,OAAS/B,KAAM6B,WAAc7B,KAAM6B,cAAkB5F,QAAW8F,MAAM,KAAO+U,QACrGrB,KAAO1T,MAAM,OAKb,OAASnM,OAASipB,WAAajpB,MAAQA,KAAM0K,OAC3CmV,KAAOoJ,UAAY,IAAM/S,MAAM5M,UAEzB0f,OAAShpB,KAAK6N,SAAStC,gBAAkB9S,KAAyB,IAAlBuH,KAAK8J,cAAsB+V,OAE5EqJ,YACHlpB,KAAMiM,WAAcjM,KAAMiM,cAAkB5F,OAAW6a,QAASrB,OAG7D7f,OAASoK,SASjB,MADAyV,OAAQ1D,KACD0D,OAAS5D,OAAW4D,KAAO5D,QAAU,GAAK4D,KAAO5D,OAAS,KAKrEoJ,OAAU,SAAU+D,OAAQhJ,UAK3B,GAAIvgB,MACH7I,GAAKmoB,KAAKsF,QAAS2E,SAAYjK,KAAKmB,WAAY8I,OAAO7d,gBACtDmS,OAAO3gB,MAAO,uBAAyBqsB,OAKzC,OAAKpyB,IAAIiV,SACDjV,GAAIopB,UAIPppB,GAAGhB,OAAS,GAChB6J,MAASupB,OAAQA,OAAQ,GAAIhJ,UACtBjB,KAAKmB,WAAW1Y,eAAgBwhB,OAAO7d,eAC7C8T,aAAa,SAAU1B,KAAMzL,SAI5B,IAHA,GAAImX,KACHC,QAAUtyB,GAAI2mB,KAAMyC,UACpBrqB,EAAIuzB,QAAQtzB,OACLD,KACPszB,IAAM/tB,QAASqiB,KAAM2L,QAAQvzB,IAC7B4nB,KAAM0L,OAAWnX,QAASmX,KAAQC,QAAQvzB,MAG5C,SAAUqU,MACT,MAAOpT,IAAIoT,KAAM,EAAGvK,QAIhB7I,KAITytB,SAECva,IAAOmV,aAAa,SAAUjE,UAI7B,GAAI0L,UACH3J,WACAsD,QAAUiD,QAAStI,SAASthB,QAASuhB,MAAO,MAE7C,OAAOoF,SAASxU,SACfoT,aAAa,SAAU1B,KAAMzL,QAASzX,QAASqmB,KAM9C,IALA,GAAI1W,MACHmX,UAAYd,QAAS9C,KAAM,KAAMmD,QACjC/qB,EAAI4nB,KAAK3nB,OAGFD,MACDqU,KAAOmX,UAAUxrB,MACtB4nB,KAAK5nB,KAAOmc,QAAQnc,GAAKqU,SAI5B,SAAUA,KAAM3P,QAASqmB,KAKxB,MAJAgG,OAAM,GAAK1c,KACXqW,QAASqG,MAAO,KAAMhG,IAAK3D,SAE3B2J,MAAM,GAAK,MACH3J,QAAQ7T,SAInBigB,IAAOlK,aAAa,SAAUjE,UAC7B,MAAO,UAAUhR,MAChB,MAAOsT,QAAQtC,SAAUhR,MAAOpU,OAAS,KAI3CsoB,SAAYe,aAAa,SAAU/b,MAElC,MADAA,MAAOA,KAAKxJ,QAAS8rB,UAAWC,WACzB,SAAUzb,MAChB,OAASA,KAAK4d,aAAe5d,KAAKof,WAAahG,QAASpZ,OAAS9O,QAASgI,MAAS,MAWrFmmB,KAAQpK,aAAc,SAAUoK,MAM/B,MAJM1E,aAAYlrB,KAAK4vB,MAAQ,KAC9B/L,OAAO3gB,MAAO,qBAAuB0sB,MAEtCA,KAAOA,KAAK3vB,QAAS8rB,UAAWC,WAAYta,cACrC,SAAUnB,MAChB,GAAIsf,SACJ,GACC,IAAMA,SAAWvL,eAChB/T,KAAKqf,KACLrf,KAAK5P,aAAa,aAAe4P,KAAK5P,aAAa,QAGnD,MADAkvB,UAAWA,SAASne,cACbme,WAAaD,MAA2C,IAAnCC,SAASpuB,QAASmuB,KAAO,YAE5Crf,KAAOA,KAAK1P,aAAiC,IAAlB0P,KAAKN,SAC3C,QAAO,KAKTrT,OAAU,SAAU2T,MACnB,GAAIuf,MAAO5hB,OAAOpD,UAAYoD,OAAOpD,SAASglB,IAC9C,OAAOA,OAAQA,KAAK3vB,MAAO,KAAQoQ,KAAKvS,IAGzC+xB,KAAQ,SAAUxf,MACjB,MAAOA,QAASyZ,SAGjBgG,MAAS,SAAUzf,MAClB,MAAOA,QAAShT,SAAS6V,iBAAmB7V,SAAS0yB,UAAY1yB,SAAS0yB,gBAAkB1f,KAAK/D,MAAQ+D,KAAK2f,OAAS3f,KAAK4f,WAI7H1qB,QAAW,SAAU8K,MACpB,MAAOA,MAAK6f,YAAa,GAG1BA,SAAY,SAAU7f,MACrB,MAAOA,MAAK6f,YAAa,GAG1B/b,QAAW,SAAU9D,MAGpB,GAAIyD,UAAWzD,KAAKyD,SAAStC,aAC7B,OAAqB,UAAbsC,YAA0BzD,KAAK8D,SAA0B,WAAbL,YAA2BzD,KAAK4F,UAGrFA,SAAY,SAAU5F,MAOrB,MAJKA,MAAK1P,YACT0P,KAAK1P,WAAWwvB,cAGV9f,KAAK4F,YAAa,GAI1BqF,MAAS,SAAUjL,MAKlB,IAAMA,KAAOA,KAAKiE,WAAYjE,KAAMA,KAAOA,KAAK4V,YAC/C,GAAK5V,KAAKN,SAAW,EACpB,OAAO,CAGT,QAAO,GAGRwc,OAAU,SAAUlc,MACnB,OAAQ+U,KAAKsF,QAAe,MAAGra,OAIhC+f,OAAU,SAAU/f,MACnB,MAAOsb,SAAQ7rB,KAAMuQ,KAAKyD,WAG3BiZ,MAAS,SAAU1c,MAClB,MAAOqb,SAAQ5rB,KAAMuQ,KAAKyD,WAG3Buc,OAAU,SAAUhgB,MACnB,GAAI3R,MAAO2R,KAAKyD,SAAStC,aACzB,OAAgB,UAAT9S,MAAkC,WAAd2R,KAAK/D,MAA8B,WAAT5N,MAGtD6K,KAAQ,SAAU8G,MACjB,GAAIqE,KACJ,OAAuC,UAAhCrE,KAAKyD,SAAStC,eACN,SAAdnB,KAAK/D,OAImC,OAArCoI,KAAOrE,KAAK5P,aAAa,UAA2C,SAAvBiU,KAAKlD,gBAIvD0Q,MAASkE,uBAAuB,WAC/B,OAAS,KAGVhE,KAAQgE,uBAAuB,SAAUE,aAAcrqB,QACtD,OAASA,OAAS,KAGnBkmB,GAAMiE,uBAAuB,SAAUE,aAAcrqB,OAAQoqB,UAC5D,OAAoB,EAAXA,SAAeA,SAAWpqB,OAASoqB,YAG7CiK,KAAQlK,uBAAuB,SAAUE,aAAcrqB,QAEtD,IADA,GAAID,GAAI,EACIC,OAAJD,EAAYA,GAAK,EACxBsqB,aAAaziB,KAAM7H,EAEpB,OAAOsqB,gBAGRiK,IAAOnK,uBAAuB,SAAUE,aAAcrqB,QAErD,IADA,GAAID,GAAI,EACIC,OAAJD,EAAYA,GAAK,EACxBsqB,aAAaziB,KAAM7H,EAEpB,OAAOsqB,gBAGRkK,GAAMpK,uBAAuB,SAAUE,aAAcrqB,OAAQoqB,UAE5D,IADA,GAAIrqB,GAAe,EAAXqqB,SAAeA,SAAWpqB,OAASoqB,WACjCrqB,GAAK,GACdsqB,aAAaziB,KAAM7H,EAEpB,OAAOsqB,gBAGRmK,GAAMrK,uBAAuB,SAAUE,aAAcrqB,OAAQoqB,UAE5D,IADA,GAAIrqB,GAAe,EAAXqqB,SAAeA,SAAWpqB,OAASoqB,WACjCrqB,EAAIC,QACbqqB,aAAaziB,KAAM7H,EAEpB,OAAOsqB,kBAKVlB,KAAKsF,QAAa,IAAItF,KAAKsF,QAAY,EAGvC,KAAM1uB,KAAO00B,OAAO,EAAMC,UAAU,EAAMC,MAAM,EAAMC,UAAU,EAAMC,OAAO,GAC5E1L,KAAKsF,QAAS1uB,GAAMkqB,kBAAmBlqB,EAExC,KAAMA,KAAO+0B,QAAQ,EAAMC,OAAO,GACjC5L,KAAKsF,QAAS1uB,GAAMmqB,mBAAoBnqB,EA4lBzC,OAvlBAuqB,YAAW3e,UAAYwd,KAAK6L,QAAU7L,KAAKsF,QAC3CtF,KAAKmB,WAAa,GAAIA,YAEtB5B,SAAWhB,OAAOgB,SAAW,SAAUtD,SAAU6P,WAChD,GAAI3B,SAASnjB,MAAOoa,OAAQla,KAC3B6kB,MAAOrN,OAAQsN,WACfC,OAASpH,WAAY5I,SAAW,IAEjC,IAAKgQ,OACJ,MAAOH,WAAY,EAAIG,OAAOpxB,MAAO,EAOtC,KAJAkxB,MAAQ9P,SACRyC,UACAsN,WAAahM,KAAKwC,UAEVuJ,OAAQ,CAGT5B,WAAYnjB,MAAQwe,OAAO/gB,KAAMsnB,UACjC/kB,QAEJ+kB,MAAQA,MAAMlxB,MAAOmM,MAAM,GAAGnQ,SAAYk1B,OAE3CrN,OAAOjgB,KAAO2iB,YAGf+I,SAAU,GAGJnjB,MAAQye,aAAahhB,KAAMsnB,UAChC5B,QAAUnjB,MAAMpL,QAChBwlB,OAAO3iB,MACN/G,MAAOyyB,QAEPjjB,KAAMF,MAAM,GAAGrM,QAASuhB,MAAO,OAEhC6P,MAAQA,MAAMlxB,MAAOsvB,QAAQtzB,QAI9B,KAAMqQ,OAAQ8Y,MAAK7U,SACZnE,MAAQ6e,UAAW3e,MAAOzC,KAAMsnB,SAAcC,WAAY9kB,SAC9DF,MAAQglB,WAAY9kB,MAAQF,UAC7BmjB,QAAUnjB,MAAMpL,QAChBwlB,OAAO3iB,MACN/G,MAAOyyB,QACPjjB,KAAMA,KACN6L,QAAS/L,QAEV+kB,MAAQA,MAAMlxB,MAAOsvB,QAAQtzB,QAI/B,KAAMszB,QACL,MAOF,MAAO2B,WACNC,MAAMl1B,OACNk1B,MACCxN,OAAO3gB,MAAOqe,UAEd4I,WAAY5I,SAAUyC,QAAS7jB,MAAO,IAwWzC0pB,QAAUhG,OAAOgG,QAAU,SAAUtI,SAAUjV,OAC9C,GAAIpQ,GACH+sB,eACAD,mBACAuI,OAASnH,cAAe7I,SAAW,IAEpC,KAAMgQ,OAAS,CAMd,IAJMjlB,QACLA,MAAQuY,SAAUtD,WAEnBrlB,EAAIoQ,MAAMnQ,OACFD,KACPq1B,OAAShJ,kBAAmBjc,MAAMpQ,IAC7Bq1B,OAAQnf,SACZ6W,YAAYllB,KAAMwtB,QAElBvI,gBAAgBjlB,KAAMwtB,OAKxBA,QAASnH,cAAe7I,SAAUwH,yBAA0BC,gBAAiBC,cAG7EsI,OAAOhQ,SAAWA,SAEnB,MAAOgQ,SAYRpM,OAAStB,OAAOsB,OAAS,SAAU5D,SAAU3gB,QAAS0iB,QAASQ,MAC9D,GAAI5nB,GAAGwqB,OAAQ8K,MAAOhlB,KAAMmI,KAC3B8c,SAA+B,kBAAblQ,WAA2BA,SAC7CjV,OAASwX,MAAQe,SAAWtD,SAAWkQ,SAASlQ,UAAYA,SAK7D,IAHA+B,QAAUA,YAGY,IAAjBhX,MAAMnQ,OAAe,CAIzB,GADAuqB,OAASpa,MAAM,GAAKA,MAAM,GAAGnM,MAAO,GAC/BumB,OAAOvqB,OAAS,GAAkC,QAA5Bq1B,MAAQ9K,OAAO,IAAIla,MAC5CuG,QAAQ8Z,SAAgC,IAArBjsB,QAAQqP,UAAkBqU,gBAC7CgB,KAAKoD,SAAUhC,OAAO,GAAGla,MAAS,CAGnC,GADA5L,SAAY0kB,KAAK3Q,KAAS,GAAG6c,MAAMnZ,QAAQ,GAAGpY,QAAQ8rB,UAAWC,WAAYprB,cAAkB,IACzFA,QACL,MAAO0iB,QAGImO,YACX7wB,QAAUA,QAAQC,YAGnB0gB,SAAWA,SAASphB,MAAOumB,OAAOxlB,QAAQlE,MAAMb,QAKjD,IADAD,EAAIivB,UAAwB,aAAEnrB,KAAMuhB,UAAa,EAAImF,OAAOvqB,OACpDD,MACPs1B,MAAQ9K,OAAOxqB,IAGVopB,KAAKoD,SAAWlc,KAAOglB,MAAMhlB,QAGlC,IAAMmI,KAAO2Q,KAAK3Q,KAAMnI,SAEjBsX,KAAOnP,KACZ6c,MAAMnZ,QAAQ,GAAGpY,QAAS8rB,UAAWC,WACrChH,SAAShlB,KAAM0mB,OAAO,GAAGla,OAAUyY,YAAarkB,QAAQC,aAAgBD,UACpE,CAKJ,GAFA8lB,OAAOhoB,OAAQxC,EAAG,GAClBqlB,SAAWuC,KAAK3nB,QAAU4oB,WAAY2B,SAChCnF,SAEL,MADAxd,MAAK3G,MAAOkmB,QAASQ,MACdR,OAGR,QAeJ,OAPEmO,UAAY5H,QAAStI,SAAUjV,QAChCwX,KACAljB,SACC0jB,eACDhB,QACA0B,SAAShlB,KAAMuhB,WAAc0D,YAAarkB,QAAQC,aAAgBD,SAE5D0iB,SAMRvQ,QAAQmb,WAAa9b,QAAQvU,MAAM,IAAI2kB,KAAM6H,WAAYhqB,KAAK,MAAQ+R,QAItEW,QAAQkb,mBAAqBlE,aAG7B1F,cAIAtR,QAAQ6a,aAAenI,OAAO,SAAUiM,MAEvC,MAAuE,GAAhEA,KAAKlE,wBAAyBjwB,SAASuR,cAAc,UAMvD2W,OAAO,SAAUC,KAEtB,MADAA,KAAI1P,UAAY,mBAC+B,MAAxC0P,IAAIlR,WAAW7T,aAAa,WAEnCglB,UAAW,yBAA0B,SAAUpV,KAAM3R,KAAMgrB,OAC1D,MAAMA,OAAN,OACQrZ,KAAK5P,aAAc/B,KAA6B,SAAvBA,KAAK8S,cAA2B,EAAI,KAOjEqB,QAAQ4X,YAAelF,OAAO,SAAUC,KAG7C,MAFAA,KAAI1P,UAAY,WAChB0P,IAAIlR,WAAWrF,aAAc,QAAS,IACY,KAA3CuW,IAAIlR,WAAW7T,aAAc,YAEpCglB,UAAW,QAAS,SAAUpV,KAAM3R,KAAMgrB,OACzC,MAAMA,QAAyC,UAAhCrZ,KAAKyD,SAAStC,cAA7B,OACQnB,KAAK6F,eAOTqP,OAAO,SAAUC,KACtB,MAAuC,OAAhCA,IAAI/kB,aAAa,eAExBglB,UAAW4E,SAAU,SAAUha,KAAM3R,KAAMgrB,OAC1C,GAAI/Q,IACJ,OAAM+Q,OAAN,OACQrZ,KAAM3R,SAAW,EAAOA,KAAK8S,eACjCmH,IAAMtI,KAAKyc,iBAAkBpuB,QAAWia,IAAIhN,UAC7CgN,IAAI7b,MACL,OAKG6mB,QAEH3V,OAIJyB,QAAOgF,KAAOkP,OACdlU,OAAOoe,KAAOlK,OAAOwK,UACrB1e,OAAOoe,KAAK,KAAOpe,OAAOoe,KAAKnD,QAC/Bjb,OAAOgiB,OAAS9N,OAAO6F,WACvB/Z,OAAOlG,KAAOoa,OAAO8F,QACrBha,OAAOiiB,SAAW/N,OAAO+F,MACzBja,OAAO8U,SAAWZ,OAAOY,QAIzB,IAAIoN,eAAgBliB,OAAOoe,KAAKzhB,MAAMqf,aAElCmG,WAAa,6BAIbthB,UAAY,gBAgChBb,QAAOc,OAAS,SAAUsd,KAAMna,MAAOvD,KACtC,GAAIE,MAAOqD,MAAO,EAMlB,OAJKvD,OACJ0d,KAAO,QAAUA,KAAO,KAGD,IAAjBna,MAAMzX,QAAkC,IAAlBoU,KAAKN,SACjCN,OAAOgF,KAAKuY,gBAAiB3c,KAAMwd,OAAWxd,SAC9CZ,OAAOgF,KAAK0D,QAAS0V,KAAMpe,OAAOW,KAAMsD,MAAO,SAAUrD,MACxD,MAAyB,KAAlBA,KAAKN,aAIfN,OAAOxS,GAAGwV,QACTgC,KAAM,SAAU4M,UACf,GAAIrlB,GACHgP,OACA6mB,KAAOrqB,KACP6a,IAAMwP,KAAK51B,MAEZ,IAAyB,gBAAbolB,UACX,MAAO7Z,MAAKwa,UAAWvS,OAAQ4R,UAAW9Q,OAAO,WAChD,IAAMvU,EAAI,EAAOqmB,IAAJrmB,EAASA,IACrB,GAAKyT,OAAO8U,SAAUsN,KAAM71B,GAAKwL,MAChC,OAAO,IAMX,KAAMxL,EAAI,EAAOqmB,IAAJrmB,EAASA,IACrByT,OAAOgF,KAAM4M,SAAUwQ,KAAM71B,GAAKgP,IAMnC,OAFAA,KAAMxD,KAAKwa,UAAWK,IAAM,EAAI5S,OAAOgiB,OAAQzmB,KAAQA,KACvDA,IAAIqW,SAAW7Z,KAAK6Z,SAAW7Z,KAAK6Z,SAAW,IAAMA,SAAWA,SACzDrW,KAERuF,OAAQ,SAAU8Q,UACjB,MAAO7Z,MAAKwa,UAAWhS,OAAOxI,KAAM6Z,cAAgB,KAErDlR,IAAK,SAAUkR,UACd,MAAO7Z,MAAKwa,UAAWhS,OAAOxI,KAAM6Z,cAAgB,KAErDyQ,GAAI,SAAUzQ,UACb,QAASrR,OACRxI,KAIoB,gBAAb6Z,WAAyBsQ,cAAc7xB,KAAMuhB,UACnD5R,OAAQ4R,UACRA,cACD,GACCplB,SASJ,IAAI81B,YAGH10B,SAAW2Q,OAAO3Q,SAKlBgnB,WAAa,sCAEbte,KAAO0J,OAAOxS,GAAG8I,KAAO,SAAUsb,SAAU3gB,SAC3C,GAAI0L,OAAOiE,IAGX,KAAMgR,SACL,MAAO7Z,KAIR,IAAyB,gBAAb6Z,UAAwB,CAUnC,GAPCjV,MAF2B,MAAvBiV,SAASrhB,OAAO,IAAyD,MAA3CqhB,SAASrhB,OAAQqhB,SAASplB,OAAS,IAAeolB,SAASplB,QAAU,GAE7F,KAAMolB,SAAU,MAGlBgD,WAAWxa,KAAMwX,WAIrBjV,QAAUA,MAAM,IAAO1L,QAsDrB,OAAMA,SAAWA,QAAQkhB,QACtBlhB,SAAWqxB,YAAatd,KAAM4M,UAKhC7Z,KAAKqa,YAAanhB,SAAU+T,KAAM4M,SAzDzC,IAAKjV,MAAM,GAAK,CAYf,GAXA1L,QAAUA,kBAAmB+O,QAAS/O,QAAQ,GAAKA,QAInD+O,OAAOsE,MAAOvM,KAAMiI,OAAOuiB,UAC1B5lB,MAAM,GACN1L,SAAWA,QAAQqP,SAAWrP,QAAQ6T,eAAiB7T,QAAUrD,UACjE,IAIIu0B,WAAW9xB,KAAMsM,MAAM,KAAQqD,OAAOiT,cAAehiB,SACzD,IAAM0L,QAAS1L,SAET+O,OAAOjU,WAAYgM,KAAM4E,QAC7B5E,KAAM4E,OAAS1L,QAAS0L,QAIxB5E,KAAKkN,KAAMtI,MAAO1L,QAAS0L,OAK9B,OAAO5E,MAQP,GAJA6I,KAAOhT,SAASinB,eAAgBlY,MAAM,IAIjCiE,MAAQA,KAAK1P,WAAa,CAG9B,GAAK0P,KAAKvS,KAAOsO,MAAM,GACtB,MAAO2lB,YAAWtd,KAAM4M,SAIzB7Z,MAAKvL,OAAS,EACduL,KAAK,GAAK6I,KAKX,MAFA7I,MAAK9G,QAAUrD,SACfmK,KAAK6Z,SAAWA,SACT7Z,KAcH,MAAK6Z,UAAStR,UACpBvI,KAAK9G,QAAU8G,KAAK,GAAK6Z,SACzB7Z,KAAKvL,OAAS,EACPuL,MAIIiI,OAAOjU,WAAY6lB,UACK,mBAArB0Q,YAAW1gB,MACxB0gB,WAAW1gB,MAAOgQ,UAElBA,SAAU5R,SAGe/G,SAAtB2Y,SAASA,WACb7Z,KAAK6Z,SAAWA,SAASA,SACzB7Z,KAAK9G,QAAU2gB,SAAS3gB,SAGlB+O,OAAOyT,UAAW7B,SAAU7Z,OAIrCzB,MAAK6B,UAAY6H,OAAOxS,GAGxB80B,WAAatiB,OAAQpS,SAGrB,IAAI40B,cAAe,iCAElBC,kBACCC,UAAU,EACVxS,UAAU,EACVyS,MAAM,EACN9R,MAAM,EAGR7Q,QAAOgD,QACN9B,IAAK,SAAUN,KAAMM,IAAK0hB,OAIzB,IAHA,GAAI9C,YACH7e,IAAML,KAAMM,KAELD,KAAwB,IAAjBA,IAAIX,WAA6BrH,SAAV2pB,OAAwC,IAAjB3hB,IAAIX,WAAmBN,OAAQiB,KAAMohB,GAAIO,SAC/E,IAAjB3hB,IAAIX,UACRwf,QAAQ1rB,KAAM6M,KAEfA,IAAMA,IAAIC,IAEX,OAAO4e,UAGR9e,QAAS,SAAU6hB,EAAGjiB,MAGrB,IAFA,GAAIkiB,MAEID,EAAGA,EAAIA,EAAErM,YACI,IAAfqM,EAAEviB,UAAkBuiB,IAAMjiB,MAC9BkiB,EAAE1uB,KAAMyuB,EAIV,OAAOC,MAIT9iB,OAAOxS,GAAGwV,QACT+c,IAAK,SAAU9yB,QACd,GAAIV,GACHw2B,QAAU/iB,OAAQ/S,OAAQ8K,MAC1B6a,IAAMmQ,QAAQv2B,MAEf,OAAOuL,MAAK+I,OAAO,WAClB,IAAMvU,EAAI,EAAOqmB,IAAJrmB,EAASA,IACrB,GAAKyT,OAAO8U,SAAU/c,KAAMgrB,QAAQx2B,IACnC,OAAO,KAMXy2B,QAAS,SAAUtE,UAAWztB,SAS7B,IARA,GAAIgQ,KACH1U,EAAI,EACJoZ,EAAI5N,KAAKvL,OACTszB,WACAmD,IAAMf,cAAc7xB,KAAMquB,YAAoC,gBAAdA,WAC/C1e,OAAQ0e,UAAWztB,SAAW8G,KAAK9G,SACnC,EAEU0U,EAAJpZ,EAAOA,IACd,IAAM0U,IAAMlJ,KAAKxL,GAAI0U,KAAOA,MAAQhQ,QAASgQ,IAAMA,IAAI/P,WAEtD,GAAK+P,IAAIX,SAAW,KAAO2iB,IAC1BA,IAAIpxB,MAAMoP,KAAO,GAGA,IAAjBA,IAAIX,UACHN,OAAOgF,KAAKuY,gBAAgBtc,IAAKyd,YAAc,CAEhDoB,QAAQ1rB,KAAM6M,IACd,OAKH,MAAOlJ,MAAKwa,UAAWuN,QAAQtzB,OAAS,EAAIwT,OAAOgiB,OAAQlC,SAAYA,UAKxEjuB,MAAO,SAAU+O,MAGhB,MAAMA,MAKe,gBAATA,MACJZ,OAAOe,QAAShJ,KAAK,GAAIiI,OAAQY,OAIlCZ,OAAOe,QAEbH,KAAKuR,OAASvR,KAAK,GAAKA,KAAM7I,MAXrBA,KAAK,IAAMA,KAAK,GAAG7G,WAAe6G,KAAK0a,QAAQyQ,UAAU12B,OAAS,IAc7EuZ,IAAK,SAAU6L,SAAU3gB,SACxB,MAAO8G,MAAKwa,UACXvS,OAAOgiB,OACNhiB,OAAOsE,MAAOvM,KAAK4D,MAAOqE,OAAQ4R,SAAU3gB,aAK/CkyB,QAAS,SAAUvR,UAClB,MAAO7Z,MAAKgO,IAAiB,MAAZ6L,SAChB7Z,KAAKya,WAAaza,KAAKya,WAAW1R,OAAO8Q,cAa5C5R,OAAO5T,MACN0wB,OAAQ,SAAUlc,MACjB,GAAIkc,QAASlc,KAAK1P,UAClB,OAAO4rB,SAA8B,KAApBA,OAAOxc,SAAkBwc,OAAS,MAEpD5f,QAAS,SAAU0D,MAClB,MAAOZ,QAAOkB,IAAKN,KAAM,eAE1BwiB,aAAc,SAAUxiB,KAAMrU,EAAGq2B,OAChC,MAAO5iB,QAAOkB,IAAKN,KAAM,aAAcgiB,QAExCD,KAAM,SAAU/hB,MACf,MAAOI,SAASJ,KAAM,gBAEvBiQ,KAAM,SAAUjQ,MACf,MAAOI,SAASJ,KAAM,oBAEvByiB,QAAS,SAAUziB,MAClB,MAAOZ,QAAOkB,IAAKN,KAAM,gBAE1BsiB,QAAS,SAAUtiB,MAClB,MAAOZ,QAAOkB,IAAKN,KAAM,oBAE1B0iB,UAAW,SAAU1iB,KAAMrU,EAAGq2B,OAC7B,MAAO5iB,QAAOkB,IAAKN,KAAM,cAAegiB,QAEzCW,UAAW,SAAU3iB,KAAMrU,EAAGq2B,OAC7B,MAAO5iB,QAAOkB,IAAKN,KAAM,kBAAmBgiB,QAE7CY,SAAU,SAAU5iB,MACnB,MAAOZ,QAAOgB,SAAWJ,KAAK1P,gBAAmB2T,WAAYjE,OAE9D8hB,SAAU,SAAU9hB,MACnB,MAAOZ,QAAOgB,QAASJ,KAAKiE,aAE7BqL,SAAU,SAAUtP,MACnB,MAAOZ,QAAOqE,SAAUzD,KAAM,UAC7BA,KAAK2G,iBAAmB3G,KAAK0G,cAAc1Z,SAC3CoS,OAAOsE,SAAW1D,KAAKwD,cAEvB,SAAUnV,KAAMzB,IAClBwS,OAAOxS,GAAIyB,MAAS,SAAU2zB,MAAOhR,UACpC,GAAIrW,KAAMyE,OAAOhQ,IAAK+H,KAAMvK,GAAIo1B,MAsBhC,OApB0B,UAArB3zB,KAAKuB,MAAO,MAChBohB,SAAWgR,OAGPhR,UAAgC,gBAAbA,YACvBrW,IAAMyE,OAAOc,OAAQ8Q,SAAUrW,MAG3BxD,KAAKvL,OAAS,IAEZi2B,iBAAkBxzB,QACvBsM,IAAMyE,OAAOgiB,OAAQzmB,MAIjBinB,aAAanyB,KAAMpB,QACvBsM,IAAMA,IAAIkoB,YAIL1rB,KAAKwa,UAAWhX,OAGzB,IAAI+F,WAAY,OAKZD,eAiCJrB,QAAO0jB,UAAY,SAAUrrB,SAI5BA,QAA6B,gBAAZA,SACdgJ,aAAchJ,UAAa8I,cAAe9I,SAC5C2H,OAAOgD,UAAY3K,QAEpB,IACCsrB,QAEAC,OAEAC,MAEAC,aAEAC,YAEAC,YAEArgB,QAEAsgB,OAAS5rB,QAAQ6rB,SAEjBpY,KAAO,SAAU7O,MAOhB,IANA2mB,OAASvrB,QAAQurB,QAAU3mB,KAC3B4mB,OAAQ,EACRE,YAAcC,aAAe,EAC7BA,YAAc,EACdF,aAAengB,KAAKnX,OACpBm3B,QAAS,EACDhgB,MAAsBmgB,aAAdC,YAA4BA,cAC3C,GAAKpgB,KAAMogB,aAAct2B,MAAOwP,KAAM,GAAKA,KAAM,OAAU,GAAS5E,QAAQ8rB,YAAc,CACzFP,QAAS,CACT,OAGFD,QAAS,EACJhgB,OACCsgB,MACCA,MAAMz3B,QACVsf,KAAMmY,MAAM1yB,SAEFqyB,OACXjgB,QAEAye,KAAKgC,YAKRhC,MAECrc,IAAK,WACJ,GAAKpC,KAAO,CAEX,GAAI+I,OAAQ/I,KAAKnX,QACjB,QAAUuZ,KAAK1P,MACd2J,OAAO5T,KAAMiK,KAAM,SAAUkL,EAAGyS,KAC/B,GAAInX,MAAOmD,OAAOnD,KAAMmX,IACV,cAATnX,KACExE,QAAQ2pB,QAAWI,KAAKrC,IAAK/L,MAClCrQ,KAAKvP,KAAM4f,KAEDA,KAAOA,IAAIxnB,QAAmB,WAATqQ,MAEhCkJ,IAAKiO,QAGJtmB,WAGCi2B,OACJG,aAAengB,KAAKnX,OAGTo3B,SACXI,YAActX,MACdZ,KAAM8X,SAGR,MAAO7rB,OAGRssB,OAAQ,WAkBP,MAjBK1gB,OACJ3D,OAAO5T,KAAMsB,UAAW,SAAU6T,EAAGyS,KAEpC,IADA,GAAIniB,QACMA,MAAQmO,OAAOe,QAASiT,IAAKrQ,KAAM9R,QAAY,IACxD8R,KAAK5U,OAAQ8C,MAAO,GAEf8xB,SACUG,cAATjyB,OACJiyB,eAEaC,aAATlyB,OACJkyB,iBAMEhsB,MAIRgoB,IAAK,SAAUvyB,IACd,MAAOA,IAAKwS,OAAOe,QAASvT,GAAImW,MAAS,MAASA,OAAQA,KAAKnX,SAGhEqf,MAAO,WAGN,MAFAlI,SACAmgB,aAAe,EACR/rB,MAGRqsB,QAAS,WAER,MADAzgB,MAAOsgB,MAAQL,OAAS3qB,OACjBlB,MAGR0oB,SAAU,WACT,OAAQ9c,MAGT2gB,KAAM,WAKL,MAJAL,OAAQhrB,OACF2qB,QACLxB,KAAKgC,UAECrsB,MAGRwsB,OAAQ,WACP,OAAQN,OAGTO,SAAU,SAAUvzB,QAASoF,MAU5B,OATKsN,MAAWkgB,QAASI,QACxB5tB,KAAOA,SACPA,MAASpF,QAASoF,KAAK7F,MAAQ6F,KAAK7F,QAAU6F,MACzCstB,OACJM,MAAM7vB,KAAMiC,MAEZyV,KAAMzV,OAGD0B,MAGR+T,KAAM,WAEL,MADAsW,MAAKoC,SAAUzsB,KAAMrK,WACdqK,MAGR8rB,MAAO,WACN,QAASA,OAIZ,OAAOzB,OAIRpiB,OAAOgD,QAENqK,SAAU,SAAU/gB,MACnB,GAAIm4B,UAEA,UAAW,OAAQzkB,OAAO0jB,UAAU,eAAgB,aACpD,SAAU,OAAQ1jB,OAAO0jB,UAAU,eAAgB,aACnD,SAAU,WAAY1jB,OAAO0jB,UAAU,YAE1C1S,MAAQ,UACRhD,SACCgD,MAAO,WACN,MAAOA,QAERjF,OAAQ,WAEP,MADAqB,UAASb,KAAM7e,WAAYghB,KAAMhhB,WAC1BqK,MAER2sB,KAAM,WACL,GAAIC,KAAMj3B,SACV,OAAOsS,QAAOqN,SAAS,SAAUuX,UAChC5kB,OAAO5T,KAAMq4B,OAAQ,SAAUl4B,EAAGs4B,OACjC,GAAIr3B,IAAKwS,OAAOjU,WAAY44B,IAAKp4B,KAASo4B,IAAKp4B,EAE/C6gB,UAAUyX,MAAM,IAAK,WACpB,GAAIC,UAAWt3B,IAAMA,GAAGC,MAAOsK,KAAMrK,UAChCo3B,WAAY9kB,OAAOjU,WAAY+4B,SAAS9W,SAC5C8W,SAAS9W,UACPzB,KAAMqY,SAASG,SACfrW,KAAMkW,SAASI,QACfxW,SAAUoW,SAASK,QAErBL,SAAUC,MAAO,GAAM,QAAU9sB,OAASiW,QAAU4W,SAAS5W,UAAYjW,KAAMvK,IAAOs3B,UAAap3B,eAItGi3B,IAAM,OACJ3W,WAIJA,QAAS,SAAUrhB,KAClB,MAAc,OAAPA,IAAcqT,OAAOgD,OAAQrW,IAAKqhB,SAAYA,UAGvDZ,WAwCD,OArCAY,SAAQkX,KAAOlX,QAAQ0W,KAGvB1kB,OAAO5T,KAAMq4B,OAAQ,SAAUl4B,EAAGs4B,OACjC,GAAIlhB,MAAOkhB,MAAO,GACjBM,YAAcN,MAAO,EAGtB7W,SAAS6W,MAAM,IAAOlhB,KAAKoC,IAGtBof,aACJxhB,KAAKoC,IAAI,WAERiL,MAAQmU,aAGNV,OAAY,EAAJl4B,GAAS,GAAI63B,QAASK,OAAQ,GAAK,GAAIH,MAInDlX,SAAUyX,MAAM,IAAO,WAEtB,MADAzX,UAAUyX,MAAM,GAAK,QAAU9sB,OAASqV,SAAWY,QAAUjW,KAAMrK,WAC5DqK,MAERqV,SAAUyX,MAAM,GAAK,QAAWlhB,KAAK6gB,WAItCxW,QAAQA,QAASZ,UAGZ9gB,MACJA,KAAKJ,KAAMkhB,SAAUA,UAIfA,UAIRgY,KAAM,SAAUC,aACf,GAwBCC,gBAAgBC,iBAAkBC,gBAxB/Bj5B,EAAI,EACPk5B,cAAgBj1B,MAAMtE,KAAMwB,WAC5BlB,OAASi5B,cAAcj5B,OAGvBghB,UAAuB,IAAXhhB,QAAkB64B,aAAerlB,OAAOjU,WAAYs5B,YAAYrX,SAAcxhB,OAAS,EAGnG4gB,SAAyB,IAAdI,UAAkB6X,YAAcrlB,OAAOqN,WAGlDqY,WAAa,SAAUn5B,EAAGsS,SAAUyJ,QACnC,MAAO,UAAUjb,OAChBwR,SAAUtS,GAAMwL,KAChBuQ,OAAQ/b,GAAMmB,UAAUlB,OAAS,EAAIgE,MAAMtE,KAAMwB,WAAcL,MAC1Dib,SAAWgd,eACflY,SAASU,WAAYjP,SAAUyJ,UAEhBkF,WACfJ,SAASW,YAAalP,SAAUyJ,SAQpC,IAAK9b,OAAS,EAIb,IAHA84B,eAAiB,GAAIhnB,OAAO9R,QAC5B+4B,iBAAmB,GAAIjnB,OAAO9R,QAC9Bg5B,gBAAkB,GAAIlnB,OAAO9R,QACjBA,OAAJD,EAAYA,IACdk5B,cAAel5B,IAAOyT,OAAOjU,WAAY05B,cAAel5B,GAAIyhB,SAChEyX,cAAel5B,GAAIyhB,UACjBzB,KAAMmZ,WAAYn5B,EAAGi5B,gBAAiBC,gBACtC/W,KAAMtB,SAAS4X,QACfxW,SAAUkX,WAAYn5B,EAAGg5B,iBAAkBD,mBAE3C9X,SAUL,OAJMA,YACLJ,SAASW,YAAayX,gBAAiBC,eAGjCrY,SAASY,YAMlB,IAAI2X,UAEJ3lB,QAAOxS,GAAGoU,MAAQ,SAAUpU,IAI3B,MAFAwS,QAAO4B,MAAMoM,UAAUzB,KAAM/e,IAEtBuK,MAGRiI,OAAOgD,QAENmQ,SAAS,EAITyS,UAAW,EAGXC,UAAW,SAAUC,MACfA,KACJ9lB,OAAO4lB,YAEP5lB,OAAO4B,OAAO,IAKhBA,MAAO,SAAUmkB,MAGhB,GAAKA,QAAS,KAAS/lB,OAAO4lB,WAAY5lB,OAAOmT,QAAjD,CAKA,IAAMvlB,SAASkZ,KACd,MAAO3Q,YAAY6J,OAAO4B,MAI3B5B,QAAOmT,SAAU,EAGZ4S,QAAS,KAAU/lB,OAAO4lB,UAAY,IAK3CD,UAAU5X,YAAangB,UAAYoS,SAG9BA,OAAOxS,GAAGw4B,iBACdhmB,OAAQpS,UAAWo4B,eAAgB,SACnChmB,OAAQpS,UAAWq4B,IAAK,eA8B3BjmB,OAAO4B,MAAMoM,QAAU,SAAUrhB,KAChC,IAAMg5B,UAOL,GALAA,UAAY3lB,OAAOqN,WAKU,aAAxBzf,SAASmP,WAEb5G,WAAY6J,OAAO4B,WAGb,IAAKhU,SAAS8R,iBAEpB9R,SAAS8R,iBAAkB,mBAAoBgC,WAAW,GAG1DnD,OAAOmB,iBAAkB,OAAQgC,WAAW,OAGtC,CAEN9T,SAAS6R,YAAa,qBAAsBiC,WAG5CnD,OAAOkB,YAAa,SAAUiC,UAI9B,IAAIqb,MAAM,CAEV,KACCA,IAA6B,MAAvBxe,OAAO2nB,cAAwBt4B,SAASyZ,gBAC7C,MAAM7Y,IAEHuuB,KAAOA,IAAIoJ,WACf,QAAUC,iBACT,IAAMpmB,OAAOmT,QAAU,CAEtB,IAGC4J,IAAIoJ,SAAS,QACZ,MAAM33B,GACP,MAAO2H,YAAYiwB,cAAe,IAInC3kB,SAGAzB,OAAO4B,YAMZ,MAAO+jB,WAAU3X,QAASrhB,KAI3B,IAMIJ,GANA2X,aAAe,WAOnB,KAAM3X,IAAKyT,QAAQoD,SAClB,KAEDA,SAAQiQ,QAAgB,MAAN9mB,EAIlB6W,QAAQ+I,wBAAyB,EAGjCnM,OAAO,WAEN,GAAIkJ,KAAK6M,IAAKjP,KAAMuf,SAEpBvf,MAAOlZ,SAASC,qBAAsB,QAAU,GAC1CiZ,MAASA,KAAKF,QAMpBmP,IAAMnoB,SAASuR,cAAe,OAC9BknB,UAAYz4B,SAASuR,cAAe,OACpCknB,UAAUzf,MAAM0f,QAAU,iEAC1Bxf,KAAKlH,YAAaymB,WAAYzmB,YAAamW,WAE/BA,KAAInP,MAAMwF,OAASlI,eAK9B6R,IAAInP,MAAM0f,QAAU,gEAEpBljB,QAAQ+I,uBAAyBjD,IAA0B,IAApB6M,IAAIzM,YACtCJ,MAIJpC,KAAKF,MAAMwF,KAAO,IAIpBtF,KAAK3V,YAAak1B,cAMnB,WACC,GAAItQ,KAAMnoB,SAASuR,cAAe,MAGlC,IAA6B,MAAzBiE,QAAQC,cAAuB,CAElCD,QAAQC,eAAgB,CACxB,WACQ0S,KAAI1lB,KACV,MAAO7B,GACR4U,QAAQC,eAAgB,GAK1B0S,IAAM,QAOP/V,OAAOsC,WAAa,SAAU1B,MAC7B,GAAI2lB,QAASvmB,OAAOumB,QAAS3lB,KAAKyD,SAAW,KAAKtC,eACjDzB,UAAYM,KAAKN,UAAY,CAG9B,OAAoB,KAAbA,UAA+B,IAAbA,UACxB,GAGCimB,QAAUA,UAAW,GAAQ3lB,KAAK5P,aAAa,aAAeu1B,OAIjE,IAAIvkB,QAAS,gCACZF,WAAa,UAqOd9B,QAAOgD,QACNL,SAIA4jB,QACCC,WAAW,EACXC,UAAU,EAEVC,UAAW,8CAGZhhB,QAAS,SAAU9E,MAElB,MADAA,MAAOA,KAAKN,SAAWN,OAAO2C,MAAO/B,KAAKZ,OAAOyC,UAAa7B,KAAMZ,OAAOyC,WAClE7B,OAASsB,kBAAmBtB,OAGtC3D,KAAM,SAAU2D,KAAM3R,KAAMgO,MAC3B,MAAOmF,cAAcxB,KAAM3R,KAAMgO,OAGlC0pB,WAAY,SAAU/lB,KAAM3R,MAC3B,MAAOiU,oBAAoBtC,KAAM3R,OAIlCsW,MAAO,SAAU3E,KAAM3R,KAAMgO,MAC5B,MAAOmF,cAAcxB,KAAM3R,KAAMgO,MAAM,IAGxCwP,YAAa,SAAU7L,KAAM3R,MAC5B,MAAOiU,oBAAoBtC,KAAM3R,MAAM,MAIzC+Q,OAAOxS,GAAGwV,QACT/F,KAAM,SAAUE,IAAK9P,OACpB,GAAId,GAAG0C,KAAMgO,KACZ2D,KAAO7I,KAAK,GACZwS,MAAQ3J,MAAQA,KAAKoa,UAMtB,IAAa/hB,SAARkE,IAAoB,CACxB,GAAKpF,KAAKvL,SACTyQ,KAAO+C,OAAO/C,KAAM2D,MAEG,IAAlBA,KAAKN,WAAmBN,OAAOuF,MAAO3E,KAAM,gBAAkB,CAElE,IADArU,EAAIge,MAAM/d,OACFD,KAIFge,MAAOhe,KACX0C,KAAOsb,MAAOhe,GAAI0C,KACe,IAA5BA,KAAK6C,QAAS,WAClB7C,KAAO+Q,OAAOiD,UAAWhU,KAAKuB,MAAM,IACpCqR,SAAUjB,KAAM3R,KAAMgO,KAAMhO,QAI/B+Q,QAAOuF,MAAO3E,KAAM,eAAe,GAIrC,MAAO3D,MAIR,MAAoB,gBAARE,KACJpF,KAAK3L,KAAK,WAChB4T,OAAO/C,KAAMlF,KAAMoF,OAIdzP,UAAUlB,OAAS,EAGzBuL,KAAK3L,KAAK,WACT4T,OAAO/C,KAAMlF,KAAMoF,IAAK9P,SAKzBuT,KAAOiB,SAAUjB,KAAMzD,IAAK6C,OAAO/C,KAAM2D,KAAMzD,MAAUlE,QAG3D0tB,WAAY,SAAUxpB,KACrB,MAAOpF,MAAK3L,KAAK,WAChB4T,OAAO2mB,WAAY5uB,KAAMoF,UAM5B6C,OAAOgD,QACN0I,MAAO,SAAU9K,KAAM/D,KAAMI,MAC5B,GAAIyO,MAEJ,OAAK9K,OACJ/D,MAASA,MAAQ,MAAS,QAC1B6O,MAAQ1L,OAAOuF,MAAO3E,KAAM/D,MAGvBI,QACEyO,OAAS1L,OAAO7T,QAAQ8Q,MAC7ByO,MAAQ1L,OAAOuF,MAAO3E,KAAM/D,KAAMmD,OAAOyT,UAAUxW,OAEnDyO,MAAMtX,KAAM6I,OAGPyO,WAZR,QAgBDkb,QAAS,SAAUhmB,KAAM/D,MACxBA,KAAOA,MAAQ,IAEf,IAAI6O,OAAQ1L,OAAO0L,MAAO9K,KAAM/D,MAC/BgqB,YAAcnb,MAAMlf,OACpBgB,GAAKke,MAAMna,QACX6Z,MAAQpL,OAAO2L,YAAa/K,KAAM/D,MAClC8lB,KAAO,WACN3iB,OAAO4mB,QAAShmB,KAAM/D,MAIZ,gBAAPrP,KACJA,GAAKke,MAAMna,QACXs1B,eAGIr5B,KAIU,OAATqP,MACJ6O,MAAMsD,QAAS,oBAIT5D,OAAM+C,KACb3gB,GAAGtB,KAAM0U,KAAM+hB,KAAMvX,SAGhByb,aAAezb,OACpBA,MAAMS,MAAMC,QAKdH,YAAa,SAAU/K,KAAM/D,MAC5B,GAAIM,KAAMN,KAAO,YACjB,OAAOmD,QAAOuF,MAAO3E,KAAMzD,MAAS6C,OAAOuF,MAAO3E,KAAMzD,KACvD0O,MAAO7L,OAAO0jB,UAAU,eAAe3d,IAAI,WAC1C/F,OAAOyM,YAAa7L,KAAM/D,KAAO,SACjCmD,OAAOyM,YAAa7L,KAAMzD,YAM9B6C,OAAOxS,GAAGwV,QACT0I,MAAO,SAAU7O,KAAMI,MACtB,GAAI6pB,QAAS,CAQb,OANqB,gBAATjqB,QACXI,KAAOJ,KACPA,KAAO,KACPiqB,UAGIp5B,UAAUlB,OAASs6B,OAChB9mB,OAAO0L,MAAO3T,KAAK,GAAI8E,MAGf5D,SAATgE,KACNlF,KACAA,KAAK3L,KAAK,WACT,GAAIsf,OAAQ1L,OAAO0L,MAAO3T,KAAM8E,KAAMI,KAGtC+C,QAAO2L,YAAa5T,KAAM8E,MAEZ,OAATA,MAA8B,eAAb6O,MAAM,IAC3B1L,OAAO4mB,QAAS7uB,KAAM8E,SAI1B+pB,QAAS,SAAU/pB,MAClB,MAAO9E,MAAK3L,KAAK,WAChB4T,OAAO4mB,QAAS7uB,KAAM8E,SAGxBkqB,WAAY,SAAUlqB,MACrB,MAAO9E,MAAK2T,MAAO7O,MAAQ,UAI5BmR,QAAS,SAAUnR,KAAMlQ,KACxB,GAAIikB,KACHoW,MAAQ,EACRC,MAAQjnB,OAAOqN,WACf7M,SAAWzI,KACXxL,EAAIwL,KAAKvL,OACTu4B,QAAU,aACCiC,OACTC,MAAMlZ,YAAavN,UAAYA,WAUlC,KANqB,gBAAT3D,QACXlQ,IAAMkQ,KACNA,KAAO5D,QAER4D,KAAOA,MAAQ,KAEPtQ,KACPqkB,IAAM5Q,OAAOuF,MAAO/E,SAAUjU,GAAKsQ,KAAO,cACrC+T,KAAOA,IAAI/E,QACfmb,QACApW,IAAI/E,MAAM9F,IAAKgf,SAIjB,OADAA,WACOkC,MAAMjZ,QAASrhB,OAGxB,IAAIu6B,MAAO,sCAAwCh6B,OAE/Cic,WAAc,MAAO,QAAS,SAAU,QAExCZ,SAAW,SAAU3H,KAAMumB,IAI7B,MADAvmB,MAAOumB,IAAMvmB,KAC4B,SAAlCZ,OAAOiH,IAAKrG,KAAM,aAA2BZ,OAAO8U,SAAUlU,KAAKkE,cAAelE,OAOvFwmB,OAASpnB,OAAOonB,OAAS,SAAUnjB,MAAOzW,GAAI2P,IAAK9P,MAAOg6B,UAAWC,SAAUC,KAClF,GAAIh7B,GAAI,EACPC,OAASyX,MAAMzX,OACfg7B,KAAc,MAAPrqB,GAGR,IAA4B,WAAvB6C,OAAOnD,KAAMM,KAAqB,CACtCkqB,WAAY,CACZ,KAAM96B,IAAK4Q,KACV6C,OAAOonB,OAAQnjB,MAAOzW,GAAIjB,EAAG4Q,IAAI5Q,IAAI,EAAM+6B,SAAUC,SAIhD,IAAetuB,SAAV5L,QACXg6B,WAAY,EAENrnB,OAAOjU,WAAYsB,SACxBk6B,KAAM,GAGFC,OAECD,KACJ/5B,GAAGtB,KAAM+X,MAAO5W,OAChBG,GAAK,OAILg6B,KAAOh6B,GACPA,GAAK,SAAUoT,KAAMzD,IAAK9P,OACzB,MAAOm6B,MAAKt7B,KAAM8T,OAAQY,MAAQvT,UAKhCG,IACJ,KAAYhB,OAAJD,EAAYA,IACnBiB,GAAIyW,MAAM1X,GAAI4Q,IAAKoqB,IAAMl6B,MAAQA,MAAMnB,KAAM+X,MAAM1X,GAAIA,EAAGiB,GAAIyW,MAAM1X,GAAI4Q,MAK3E,OAAOkqB,WACNpjB,MAGAujB,KACCh6B,GAAGtB,KAAM+X,OACTzX,OAASgB,GAAIyW,MAAM,GAAI9G,KAAQmqB,UAE9B9iB,eAAiB,yBAIrB,WAEC,GAAI8Y,OAAQ1vB,SAASuR,cAAe,SACnC4W,IAAMnoB,SAASuR,cAAe,OAC9BsoB,SAAW75B,SAASkW,wBAsDrB,IAnDAiS,IAAI1P,UAAY,qEAGhBjD,QAAQskB,kBAAgD,IAA5B3R,IAAIlR,WAAWvE,SAI3C8C,QAAQukB,OAAS5R,IAAIloB,qBAAsB,SAAUrB,OAIrD4W,QAAQwkB,gBAAkB7R,IAAIloB,qBAAsB,QAASrB,OAI7D4W,QAAQgD,WACyD,kBAAhExY,SAASuR,cAAe,OAAQ0oB,WAAW,GAAO1hB,UAInDmX,MAAMzgB,KAAO,WACbygB,MAAM5Y,SAAU,EAChB+iB,SAAS7nB,YAAa0d,OACtBla,QAAQ0kB,cAAgBxK,MAAM5Y,QAI9BqR,IAAI1P,UAAY,yBAChBjD,QAAQ2kB,iBAAmBhS,IAAI8R,WAAW,GAAOlI,UAAUlZ,aAG3DghB,SAAS7nB,YAAamW,KACtBA,IAAI1P,UAAY,mDAIhBjD,QAAQ4kB,WAAajS,IAAI8R,WAAW,GAAOA,WAAW,GAAOlI,UAAUjb,QAKvEtB,QAAQ6C,cAAe,EAClB8P,IAAItW,cACRsW,IAAItW,YAAa,UAAW,WAC3B2D,QAAQ6C,cAAe,IAGxB8P,IAAI8R,WAAW,GAAOI,SAIM,MAAzB7kB,QAAQC,cAAuB,CAElCD,QAAQC,eAAgB,CACxB,WACQ0S,KAAI1lB,KACV,MAAO7B,GACR4U,QAAQC,eAAgB,OAM3B,WACC,GAAI9W,GAAG27B,UACNnS,IAAMnoB,SAASuR,cAAe,MAG/B,KAAM5S,KAAO+0B,QAAQ,EAAM6G,QAAQ,EAAMC,SAAS,GACjDF,UAAY,KAAO37B,GAEZ6W,QAAS7W,EAAI,WAAc27B,YAAa3pB,WAE9CwX,IAAIvW,aAAc0oB,UAAW,KAC7B9kB,QAAS7W,EAAI,WAAcwpB,IAAIiF,WAAYkN,WAAYzlB,WAAY,EAKrEsT,KAAM,OAIP,IAAIsS,YAAa,+BAChBC,UAAY,OACZC,YAAc,uCACdC,YAAc,kCACdC,eAAiB,sBAoBlBzoB,QAAO2B,OAEN7V,UAEAia,IAAK,SAAUnF,KAAM8nB,MAAOpuB,QAAS2C,KAAM2U,UAC1C,GAAIhB,KAAKhd,OAAQ+0B,EAAGC,YACnBC,QAASC,YAAaC,UACtB3xB,SAAUyF,KAAMmsB,WAAYC,SAC5BC,SAAWlpB,OAAOuF,MAAO3E;AAG1B,GAAMsoB,SAAN,CAmCA,IA9BK5uB,QAAQA,UACZsuB,YAActuB,QACdA,QAAUsuB,YAAYtuB,QACtBsX,SAAWgX,YAAYhX,UAIlBtX,QAAQuI,OACbvI,QAAQuI,KAAO7C,OAAO6C,SAIhBjP,OAASs1B,SAASt1B,UACxBA,OAASs1B,SAASt1B,YAEZk1B,YAAcI,SAASpjB,UAC7BgjB,YAAcI,SAASpjB,OAAS,SAAUtX,GAGzC,aAAcwR,UAAWkE,cAAkB1V,GAAKwR,OAAO2B,MAAMwnB,YAAc36B,EAAEqO,KAE5E5D,OADA+G,OAAO2B,MAAMynB,SAAS37B,MAAOq7B,YAAYloB,KAAMlT,YAIjDo7B,YAAYloB,KAAOA,MAIpB8nB,OAAUA,OAAS,IAAK/rB,MAAO2E,aAAiB,IAChDqnB,EAAID,MAAMl8B,OACFm8B,KACP/X,IAAM6X,eAAeruB,KAAMsuB,MAAMC,QACjC9rB,KAAOosB,SAAWrY,IAAI,GACtBoY,YAAepY,IAAI,IAAM,IAAK1iB,MAAO,KAAM2kB,OAGrChW,OAKNgsB,QAAU7oB,OAAO2B,MAAMknB,QAAShsB,UAGhCA,MAAS+U,SAAWiX,QAAQQ,aAAeR,QAAQS,WAAczsB,KAGjEgsB,QAAU7oB,OAAO2B,MAAMknB,QAAShsB,UAGhCksB,UAAY/oB,OAAOgD,QAClBnG,KAAMA,KACNosB,SAAUA,SACVhsB,KAAMA,KACN3C,QAASA,QACTuI,KAAMvI,QAAQuI,KACd+O,SAAUA,SACVoK,aAAcpK,UAAY5R,OAAOoe,KAAKzhB,MAAMqf,aAAa3rB,KAAMuhB,UAC/D2X,UAAWP,WAAWt4B,KAAK,MACzBk4B,cAGIxxB,SAAWxD,OAAQiJ,SACzBzF,SAAWxD,OAAQiJ,SACnBzF,SAASoyB,cAAgB,EAGnBX,QAAQY,OAASZ,QAAQY,MAAMv9B,KAAM0U,KAAM3D,KAAM+rB,WAAYF,gBAAkB,IAE/EloB,KAAKlB,iBACTkB,KAAKlB,iBAAkB7C,KAAMisB,aAAa,GAE/BloB,KAAKnB,aAChBmB,KAAKnB,YAAa,KAAO5C,KAAMisB,eAK7BD,QAAQ9iB,MACZ8iB,QAAQ9iB,IAAI7Z,KAAM0U,KAAMmoB,WAElBA,UAAUzuB,QAAQuI,OACvBkmB,UAAUzuB,QAAQuI,KAAOvI,QAAQuI,OAK9B+O,SACJxa,SAASrI,OAAQqI,SAASoyB,gBAAiB,EAAGT,WAE9C3xB,SAAShD,KAAM20B,WAIhB/oB,OAAO2B,MAAM7V,OAAQ+Q,OAAS,EAI/B+D,MAAO,OAIRyjB,OAAQ,SAAUzjB,KAAM8nB,MAAOpuB,QAASsX,SAAU8X,aACjD,GAAIn6B,GAAGw5B,UAAWnY,IACjB+Y,UAAWhB,EAAG/0B,OACdi1B,QAASzxB,SAAUyF,KACnBmsB,WAAYC,SACZC,SAAWlpB,OAAO0F,QAAS9E,OAAUZ,OAAOuF,MAAO3E,KAEpD,IAAMsoB,WAAct1B,OAASs1B,SAASt1B,QAAtC,CAOA,IAFA80B,OAAUA,OAAS,IAAK/rB,MAAO2E,aAAiB,IAChDqnB,EAAID,MAAMl8B,OACFm8B,KAMP,GALA/X,IAAM6X,eAAeruB,KAAMsuB,MAAMC,QACjC9rB,KAAOosB,SAAWrY,IAAI,GACtBoY,YAAepY,IAAI,IAAM,IAAK1iB,MAAO,KAAM2kB,OAGrChW,KAAN,CAcA,IAPAgsB,QAAU7oB,OAAO2B,MAAMknB,QAAShsB,UAChCA,MAAS+U,SAAWiX,QAAQQ,aAAeR,QAAQS,WAAczsB,KACjEzF,SAAWxD,OAAQiJ,UACnB+T,IAAMA,IAAI,IAAM,GAAItjB,QAAQ,UAAY07B,WAAWt4B,KAAK,iBAAmB,WAG3Ei5B,UAAYp6B,EAAI6H,SAAS5K,OACjB+C,KACPw5B,UAAY3xB,SAAU7H,IAEfm6B,aAAeT,WAAaF,UAAUE,UACzC3uB,SAAWA,QAAQuI,OAASkmB,UAAUlmB,MACtC+N,MAAOA,IAAIvgB,KAAM04B,UAAUQ,YAC3B3X,UAAYA,WAAamX,UAAUnX,WAAyB,OAAbA,WAAqBmX,UAAUnX,YACjFxa,SAASrI,OAAQQ,EAAG,GAEfw5B,UAAUnX,UACdxa,SAASoyB,gBAELX,QAAQxE,QACZwE,QAAQxE,OAAOn4B,KAAM0U,KAAMmoB,WAOzBY,aAAcvyB,SAAS5K,SACrBq8B,QAAQe,UAAYf,QAAQe,SAAS19B,KAAM0U,KAAMooB,WAAYE,SAASpjB,WAAa,GACxF9F,OAAOkG,YAAatF,KAAM/D,KAAMqsB,SAASpjB,cAGnClS,QAAQiJ,WAtCf,KAAMA,OAAQjJ,QACboM,OAAO2B,MAAM0iB,OAAQzjB,KAAM/D,KAAO6rB,MAAOC,GAAKruB,QAASsX,UAAU,EA0C/D5R,QAAOmC,cAAevO,gBACnBs1B,UAASpjB,OAIhB9F,OAAOyM,YAAa7L,KAAM,aAI5BipB,QAAS,SAAUloB,MAAO1E,KAAM2D,KAAMkpB,cACrC,GAAIhkB,QAAQikB,OAAQ9oB,IACnB+oB,WAAYnB,QAASjY,IAAKrkB,EAC1B09B,WAAcrpB,MAAQhT,UACtBiP,KAAOhQ,OAAOX,KAAMyV,MAAO,QAAWA,MAAM9E,KAAO8E,MACnDqnB,WAAan8B,OAAOX,KAAMyV,MAAO,aAAgBA,MAAM4nB,UAAUr7B,MAAM,OAKxE,IAHA+S,IAAM2P,IAAMhQ,KAAOA,MAAQhT,SAGJ,IAAlBgT,KAAKN,UAAoC,IAAlBM,KAAKN,WAK5BkoB,YAAYn4B,KAAMwM,KAAOmD,OAAO2B,MAAMwnB,aAItCtsB,KAAK/K,QAAQ,MAAQ,IAEzBk3B,WAAansB,KAAK3O,MAAM,KACxB2O,KAAOmsB,WAAWz3B,QAClBy3B,WAAWnW,QAEZkX,OAASltB,KAAK/K,QAAQ,KAAO,GAAK,KAAO+K,KAGzC8E,MAAQA,MAAO3B,OAAOyC,SACrBd,MACA,GAAI3B,QAAOkqB,MAAOrtB,KAAuB,gBAAV8E,QAAsBA,OAGtDA,MAAMwoB,UAAYL,aAAe,EAAI,EACrCnoB,MAAM4nB,UAAYP,WAAWt4B,KAAK,KAClCiR,MAAMyoB,aAAezoB,MAAM4nB,UAC1B,GAAIj8B,QAAQ,UAAY07B,WAAWt4B,KAAK,iBAAmB,WAC3D,KAGDiR,MAAMsL,OAAShU,OACT0I,MAAM1U,SACX0U,MAAM1U,OAAS2T,MAIhB3D,KAAe,MAARA,MACJ0E,OACF3B,OAAOyT,UAAWxW,MAAQ0E,QAG3BknB,QAAU7oB,OAAO2B,MAAMknB,QAAShsB,UAC1BitB,eAAgBjB,QAAQgB,SAAWhB,QAAQgB,QAAQp8B,MAAOmT,KAAM3D,SAAW,GAAjF,CAMA,IAAM6sB,eAAiBjB,QAAQwB,WAAarqB,OAAOK,SAAUO,MAAS,CAMrE,IAJAopB,WAAanB,QAAQQ,cAAgBxsB,KAC/B2rB,YAAYn4B,KAAM25B,WAAantB,QACpCoE,IAAMA,IAAI/P,YAEH+P,IAAKA,IAAMA,IAAI/P,WACtB+4B,UAAU71B,KAAM6M,KAChB2P,IAAM3P,GAIF2P,QAAShQ,KAAKkE,eAAiBlX,WACnCq8B,UAAU71B,KAAMwc,IAAIa,aAAeb,IAAIc,cAAgBnT,QAMzD,IADAhS,EAAI,GACK0U,IAAMgpB,UAAU19B,QAAUoV,MAAM2oB,wBAExC3oB,MAAM9E,KAAOtQ,EAAI,EAChBy9B,WACAnB,QAAQS,UAAYzsB,KAGrBiJ,QAAW9F,OAAOuF,MAAOtE,IAAK,eAAoBU,MAAM9E,OAAUmD,OAAOuF,MAAOtE,IAAK,UAChF6E,QACJA,OAAOrY,MAAOwT,IAAKhE,MAIpB6I,OAASikB,QAAU9oB,IAAK8oB,QACnBjkB,QAAUA,OAAOrY,OAASuS,OAAOsC,WAAYrB,OACjDU,MAAMsL,OAASnH,OAAOrY,MAAOwT,IAAKhE,MAC7B0E,MAAMsL,UAAW,GACrBtL,MAAM4oB,iBAOT,IAHA5oB,MAAM9E,KAAOA,MAGPitB,eAAiBnoB,MAAM6oB,wBAErB3B,QAAQ4B,UAAY5B,QAAQ4B,SAASh9B,MAAOw8B,UAAUnqB,MAAO7C,SAAW,IAC9E+C,OAAOsC,WAAY1B,OAKdmpB,QAAUnpB,KAAM/D,QAAWmD,OAAOK,SAAUO,MAAS,CAGzDgQ,IAAMhQ,KAAMmpB,QAEPnZ,MACJhQ,KAAMmpB,QAAW,MAIlB/pB,OAAO2B,MAAMwnB,UAAYtsB,IACzB,KACC+D,KAAM/D,QACL,MAAQrO,IAIVwR,OAAO2B,MAAMwnB,UAAYlwB,OAEpB2X,MACJhQ,KAAMmpB,QAAWnZ,KAMrB,MAAOjP,OAAMsL,SAGdmc,SAAU,SAAUznB,OAGnBA,MAAQ3B,OAAO2B,MAAM+oB,IAAK/oB,MAE1B,IAAIpV,GAAGgP,IAAKwtB,UAAWjJ,QAASvwB,EAC/Bo7B,gBACAt0B,KAAO7F,MAAMtE,KAAMwB,WACnB0J,UAAa4I,OAAOuF,MAAOxN,KAAM,eAAoB4J,MAAM9E,UAC3DgsB,QAAU7oB,OAAO2B,MAAMknB,QAASlnB,MAAM9E,SAOvC,IAJAxG,KAAK,GAAKsL,MACVA,MAAMipB,eAAiB7yB,MAGlB8wB,QAAQgC,aAAehC,QAAQgC,YAAY3+B,KAAM6L,KAAM4J,UAAY,EAAxE,CASA,IAJAgpB,aAAe3qB,OAAO2B,MAAMvK,SAASlL,KAAM6L,KAAM4J,MAAOvK,UAGxD7K,EAAI,GACKuzB,QAAU6K,aAAcp+B,QAAWoV,MAAM2oB,wBAIjD,IAHA3oB,MAAM5K,cAAgB+oB,QAAQlf,KAE9BrR,EAAI,GACKw5B,UAAYjJ,QAAQ1oB,SAAU7H,QAAWoS,MAAMmpB,iCAIjDnpB,MAAMyoB,eAAgBzoB,MAAMyoB,aAAa/5B,KAAM04B,UAAUQ,aAE9D5nB,MAAMonB,UAAYA,UAClBpnB,MAAM1E,KAAO8rB,UAAU9rB,KAEvB1B,MAASyE,OAAO2B,MAAMknB,QAASE,UAAUE,eAAkBnjB,QAAUijB,UAAUzuB,SAC5E7M,MAAOqyB,QAAQlf,KAAMvK,MAEX4C,SAARsC,MACEoG,MAAMsL,OAAS1R,QAAS,IAC7BoG,MAAM4oB,iBACN5oB,MAAMopB,mBAYX,OAJKlC,SAAQmC,cACZnC,QAAQmC,aAAa9+B,KAAM6L,KAAM4J,OAG3BA,MAAMsL,SAGd7V,SAAU,SAAUuK,MAAOvK,UAC1B,GAAI6zB,KAAKlC,UAAWrgB,QAASnc,EAC5Bo+B,gBACAnB,cAAgBpyB,SAASoyB,cACzBvoB,IAAMU,MAAM1U,MAKb,IAAKu8B,eAAiBvoB,IAAIX,YAAcqB,MAAMif,QAAyB,UAAfjf,MAAM9E,MAG7D,KAAQoE,KAAOlJ,KAAMkJ,IAAMA,IAAI/P,YAAc6G,KAK5C,GAAsB,IAAjBkJ,IAAIX,WAAmBW,IAAIwf,YAAa,GAAuB,UAAf9e,MAAM9E,MAAoB,CAE9E,IADA6L,WACMnc,EAAI,EAAOi9B,cAAJj9B,EAAmBA,IAC/Bw8B,UAAY3xB,SAAU7K,GAGtB0+B,IAAMlC,UAAUnX,SAAW,IAEH3Y,SAAnByP,QAASuiB,OACbviB,QAASuiB,KAAQlC,UAAU/M,aAC1Bhc,OAAQirB,IAAKlzB,MAAOlG,MAAOoP,MAAS,EACpCjB,OAAOgF,KAAMimB,IAAKlzB,KAAM,MAAQkJ,MAAQzU,QAErCkc,QAASuiB,MACbviB,QAAQtU,KAAM20B,UAGXrgB,SAAQlc,QACZm+B,aAAav2B,MAAOwM,KAAMK,IAAK7J,SAAUsR,UAW7C,MAJK8gB,eAAgBpyB,SAAS5K,QAC7Bm+B,aAAav2B,MAAOwM,KAAM7I,KAAMX,SAAUA,SAAS5G,MAAOg5B,iBAGpDmB,cAGRD,IAAK,SAAU/oB,OACd,GAAKA,MAAO3B,OAAOyC,SAClB,MAAOd,MAIR,IAAIpV,GAAGK,KAAMmmB,KACZlW,KAAO8E,MAAM9E,KACbquB,cAAgBvpB,MAChBwpB,QAAUpzB,KAAKqzB,SAAUvuB,KAa1B,KAXMsuB,UACLpzB,KAAKqzB,SAAUvuB,MAASsuB,QACvB5C,YAAYl4B,KAAMwM,MAAS9E,KAAKszB,WAChC/C,UAAUj4B,KAAMwM,MAAS9E,KAAKuzB,aAGhCvY,KAAOoY,QAAQlgB,MAAQlT,KAAKkT,MAAMxa,OAAQ06B,QAAQlgB,OAAUlT,KAAKkT,MAEjEtJ,MAAQ,GAAI3B,QAAOkqB,MAAOgB,eAE1B3+B,EAAIwmB,KAAKvmB,OACDD,KACPK,KAAOmmB,KAAMxmB,GACboV,MAAO/U,MAASs+B,cAAet+B,KAmBhC,OAdM+U,OAAM1U,SACX0U,MAAM1U,OAASi+B,cAAcl0B,YAAcpJ,UAKb,IAA1B+T,MAAM1U,OAAOqT,WACjBqB,MAAM1U,OAAS0U,MAAM1U,OAAOiE,YAK7ByQ,MAAM4pB,UAAY5pB,MAAM4pB,QAEjBJ,QAAQrqB,OAASqqB,QAAQrqB,OAAQa,MAAOupB,eAAkBvpB,OAIlEsJ,MAAO,wHAAwH/c,MAAM,KAErIk9B,YAEAE,UACCrgB,MAAO,4BAA4B/c,MAAM,KACzC4S,OAAQ,SAAUa,MAAO6pB,UAOxB,MAJoB,OAAf7pB,MAAM2I,QACV3I,MAAM2I,MAA6B,MAArBkhB,SAASC,SAAmBD,SAASC,SAAWD,SAASE,SAGjE/pB,QAIT0pB,YACCpgB,MAAO,mGAAmG/c,MAAM,KAChH4S,OAAQ,SAAUa,MAAO6pB,UACxB,GAAI1kB,MAAM6kB,SAAUhlB,IACnBia,OAAS4K,SAAS5K,OAClBgL,YAAcJ,SAASI,WAuBxB,OApBoB,OAAfjqB,MAAMkqB,OAAqC,MAApBL,SAASM,UACpCH,SAAWhqB,MAAM1U,OAAO6X,eAAiBlX,SACzC+Y,IAAMglB,SAAStkB,gBACfP,KAAO6kB,SAAS7kB,KAEhBnF,MAAMkqB,MAAQL,SAASM,SAAYnlB,KAAOA,IAAIolB,YAAcjlB,MAAQA,KAAKilB,YAAc,IAAQplB,KAAOA,IAAIqlB,YAAcllB,MAAQA,KAAKklB,YAAc,GACnJrqB,MAAMsqB,MAAQT,SAASU,SAAYvlB,KAAOA,IAAIwlB,WAAcrlB,MAAQA,KAAKqlB,WAAc,IAAQxlB,KAAOA,IAAIylB,WAActlB,MAAQA,KAAKslB,WAAc,KAI9IzqB,MAAM0qB,eAAiBT,cAC5BjqB,MAAM0qB,cAAgBT,cAAgBjqB,MAAM1U,OAASu+B,SAASc,UAAYV,aAKrEjqB,MAAM2I,OAAoBrR,SAAX2nB,SACpBjf,MAAM2I,MAAmB,EAATsW,OAAa,EAAe,EAATA,OAAa,EAAe,EAATA,OAAa,EAAI,GAGjEjf,QAITknB,SACCjwB,MAECyxB,UAAU,GAEXhK,OAECwJ,QAAS,WACR,GAAK9xB,OAASyL,qBAAuBzL,KAAKsoB,MACzC,IAEC,MADAtoB,MAAKsoB,SACE,EACN,MAAQ7xB,MAOZ66B,aAAc,WAEfkD,MACC1C,QAAS,WACR,MAAK9xB,QAASyL,qBAAuBzL,KAAKw0B,MACzCx0B,KAAKw0B,QACE,GAFR,QAKDlD,aAAc,YAEfpB,OAEC4B,QAAS,WACR,MAAK7pB,QAAOqE,SAAUtM,KAAM,UAA2B,aAAdA,KAAK8E,MAAuB9E,KAAKkwB,OACzElwB,KAAKkwB,SACE,GAFR,QAODwC,SAAU,SAAU9oB,OACnB,MAAO3B,QAAOqE,SAAU1C,MAAM1U,OAAQ,OAIxCu/B,cACCxB,aAAc,SAAUrpB,OAID1I,SAAjB0I,MAAMsL,QAAwBtL,MAAMupB,gBACxCvpB,MAAMupB,cAAcuB,YAAc9qB,MAAMsL,WAM5Cyf,SAAU,SAAU7vB,KAAM+D,KAAMe,MAAOgrB,QAItC,GAAIn+B,GAAIwR,OAAOgD,OACd,GAAIhD,QAAOkqB,MACXvoB,OAEC9E,KAAMA,KACN+vB,aAAa,EACb1B,kBAGGyB,QACJ3sB,OAAO2B,MAAMkoB,QAASr7B,EAAG,KAAMoS,MAE/BZ,OAAO2B,MAAMynB,SAASl9B,KAAM0U,KAAMpS,GAE9BA,EAAEg8B,sBACN7oB,MAAM4oB,mBAKTvqB,OAAOkG,YAActY,SAASgJ,oBAC7B,SAAUgK,KAAM/D,KAAMiJ,QAChBlF,KAAKhK,qBACTgK,KAAKhK,oBAAqBiG,KAAMiJ,QAAQ,IAG1C,SAAUlF,KAAM/D,KAAMiJ,QACrB,GAAI7W,MAAO,KAAO4N,IAEb+D,MAAKlK,oBAIGkK,MAAM3R,QAAWiV,eAC5BtD,KAAM3R,MAAS,MAGhB2R,KAAKlK,YAAazH,KAAM6W,UAI3B9F,OAAOkqB,MAAQ,SAAUxsB,IAAKuN,OAE7B,MAAOlT,gBAAgBiI,QAAOkqB,OAKzBxsB,KAAOA,IAAIb,MACf9E,KAAKmzB,cAAgBxtB,IACrB3F,KAAK8E,KAAOa,IAAIb,KAIhB9E,KAAKyyB,mBAAqB9sB,IAAImvB,kBACH5zB,SAAzByE,IAAImvB,kBAEJnvB,IAAI+uB,eAAgB,EACrBnpB,WACAC,aAIDxL,KAAK8E,KAAOa,IAIRuN,OACJjL,OAAOgD,OAAQjL,KAAMkT,OAItBlT,KAAK+0B,UAAYpvB,KAAOA,IAAIovB,WAAa9sB,OAAOmK,WAGhDpS,KAAMiI,OAAOyC,UAAY,IA/BjB,GAAIzC,QAAOkqB,MAAOxsB,IAAKuN,QAoChCjL,OAAOkqB,MAAM/xB,WACZqyB,mBAAoBjnB,YACpB+mB,qBAAsB/mB,YACtBunB,8BAA+BvnB,YAE/BgnB,eAAgB,WACf,GAAI/7B,GAAIuJ,KAAKmzB,aAEbnzB,MAAKyyB,mBAAqBlnB,WACpB9U,IAKDA,EAAE+7B,eACN/7B,EAAE+7B,iBAKF/7B,EAAEi+B,aAAc,IAGlB1B,gBAAiB,WAChB,GAAIv8B,GAAIuJ,KAAKmzB,aAEbnzB,MAAKuyB,qBAAuBhnB,WACtB9U,IAIDA,EAAEu8B,iBACNv8B,EAAEu8B,kBAKHv8B,EAAEu+B,cAAe,IAElBC,yBAA0B,WACzB,GAAIx+B,GAAIuJ,KAAKmzB,aAEbnzB,MAAK+yB,8BAAgCxnB,WAEhC9U,GAAKA,EAAEw+B,0BACXx+B,EAAEw+B,2BAGHj1B,KAAKgzB,oBAKP/qB,OAAO5T,MACN6gC,WAAY,YACZC,WAAY,WACZC,aAAc,cACdC,aAAc,cACZ,SAAU5hB,KAAMkf,KAClB1qB,OAAO2B,MAAMknB,QAASrd,OACrB6d,aAAcqB,IACdpB,SAAUoB,IAEV5kB,OAAQ,SAAUnE,OACjB,GAAIpG,KACHtO,OAAS8K,KACTs1B,QAAU1rB,MAAM0qB,cAChBtD,UAAYpnB,MAAMonB,SASnB,OALMsE,WAAYA,UAAYpgC,QAAW+S,OAAO8U,SAAU7nB,OAAQogC,YACjE1rB,MAAM9E,KAAOksB,UAAUE,SACvB1tB,IAAMwtB,UAAUzuB,QAAQ7M,MAAOsK,KAAMrK,WACrCiU,MAAM9E,KAAO6tB,KAEPnvB,QAMJ6H,QAAQkqB,gBAEbttB,OAAO2B,MAAMknB,QAAQvH,QACpBmI,MAAO,WAEN,MAAKzpB,QAAOqE,SAAUtM,KAAM,SACpB,MAIRiI,QAAO2B,MAAMoE,IAAKhO,KAAM,iCAAkC,SAAUvJ,GAEnE,GAAIoS,MAAOpS,EAAEvB,OACZsgC,KAAOvtB,OAAOqE,SAAUzD,KAAM,UAAaZ,OAAOqE,SAAUzD,KAAM,UAAaA,KAAK2sB,KAAOt0B,MACvFs0B,QAASvtB,OAAOuF,MAAOgoB,KAAM,mBACjCvtB,OAAO2B,MAAMoE,IAAKwnB,KAAM,iBAAkB,SAAU5rB,OACnDA,MAAM6rB,gBAAiB,IAExBxtB,OAAOuF,MAAOgoB,KAAM,iBAAiB,OAMxCvC,aAAc,SAAUrpB,OAElBA,MAAM6rB,uBACH7rB,OAAM6rB,eACRz1B,KAAK7G,aAAeyQ,MAAMwoB,WAC9BnqB,OAAO2B,MAAM+qB,SAAU,SAAU30B,KAAK7G,WAAYyQ,OAAO,KAK5DioB,SAAU,WAET,MAAK5pB,QAAOqE,SAAUtM,KAAM,SACpB,MAIRiI,QAAO2B,MAAM0iB,OAAQtsB,KAAM,eAMxBqL,QAAQqqB,gBAEbztB,OAAO2B,MAAMknB,QAAQV,QAEpBsB,MAAO,WAEN,MAAKpB,YAAWh4B,KAAM0H,KAAKsM,WAIP,aAAdtM,KAAK8E,MAAqC,UAAd9E,KAAK8E,OACrCmD,OAAO2B,MAAMoE,IAAKhO,KAAM,yBAA0B,SAAU4J,OACjB,YAArCA,MAAMupB,cAAcwC,eACxB31B,KAAK41B,eAAgB,KAGvB3tB,OAAO2B,MAAMoE,IAAKhO,KAAM,gBAAiB,SAAU4J,OAC7C5J,KAAK41B,gBAAkBhsB,MAAMwoB,YACjCpyB,KAAK41B,eAAgB,GAGtB3tB,OAAO2B,MAAM+qB,SAAU,SAAU30B,KAAM4J,OAAO,OAGzC,OAGR3B,QAAO2B,MAAMoE,IAAKhO,KAAM,yBAA0B,SAAUvJ,GAC3D,GAAIoS,MAAOpS,EAAEvB,MAERo7B,YAAWh4B,KAAMuQ,KAAKyD,YAAerE,OAAOuF,MAAO3E,KAAM,mBAC7DZ,OAAO2B,MAAMoE,IAAKnF,KAAM,iBAAkB,SAAUe,QAC9C5J,KAAK7G,YAAeyQ,MAAMirB,aAAgBjrB,MAAMwoB,WACpDnqB,OAAO2B,MAAM+qB,SAAU,SAAU30B,KAAK7G,WAAYyQ,OAAO,KAG3D3B,OAAOuF,MAAO3E,KAAM,iBAAiB,OAKxCkF,OAAQ,SAAUnE,OACjB,GAAIf,MAAOe,MAAM1U,MAGjB,OAAK8K,QAAS6I,MAAQe,MAAMirB,aAAejrB,MAAMwoB,WAA4B,UAAdvpB,KAAK/D,MAAkC,aAAd+D,KAAK/D,KACrF8E,MAAMonB,UAAUzuB,QAAQ7M,MAAOsK,KAAMrK,WAD7C,QAKDk8B,SAAU,WAGT,MAFA5pB,QAAO2B,MAAM0iB,OAAQtsB,KAAM,aAEnBswB,WAAWh4B,KAAM0H,KAAKsM,aAM3BjB,QAAQwqB,gBACb5tB,OAAO5T,MAAOi0B,MAAO,UAAWkM,KAAM,YAAc,SAAU/gB,KAAMkf,KAGnE,GAAIpwB,SAAU,SAAUqH,OACtB3B,OAAO2B,MAAM+qB,SAAUhC,IAAK/oB,MAAM1U,OAAQ+S,OAAO2B,MAAM+oB,IAAK/oB,QAAS,GAGvE3B,QAAO2B,MAAMknB,QAAS6B,MACrBjB,MAAO,WACN,GAAI9iB,KAAM5O,KAAK+M,eAAiB/M,KAC/B81B,SAAW7tB,OAAOuF,MAAOoB,IAAK+jB,IAEzBmD,WACLlnB,IAAIjH,iBAAkB8L,KAAMlR,SAAS,GAEtC0F,OAAOuF,MAAOoB,IAAK+jB,KAAOmD,UAAY,GAAM,IAE7CjE,SAAU,WACT,GAAIjjB,KAAM5O,KAAK+M,eAAiB/M,KAC/B81B,SAAW7tB,OAAOuF,MAAOoB,IAAK+jB,KAAQ,CAEjCmD,UAIL7tB,OAAOuF,MAAOoB,IAAK+jB,IAAKmD,WAHxBlnB,IAAI/P,oBAAqB4U,KAAMlR,SAAS,GACxC0F,OAAOyM,YAAa9F,IAAK+jB,UAS9B1qB,OAAOxS,GAAGwV,QAET3P,GAAI,SAAUq1B,MAAO9W,SAAU3U,KAAMzP,GAAiBsgC,KACrD,GAAIjxB,MAAMkxB,MAGV,IAAsB,gBAAVrF,OAAqB,CAEP,gBAAb9W,YAEX3U,KAAOA,MAAQ2U,SACfA,SAAW3Y,OAEZ,KAAM4D,OAAQ6rB,OACb3wB,KAAK1E,GAAIwJ,KAAM+U,SAAU3U,KAAMyrB,MAAO7rB,MAAQixB,IAE/C,OAAO/1B,MAmBR,GAhBa,MAARkF,MAAsB,MAANzP,IAEpBA,GAAKokB,SACL3U,KAAO2U,SAAW3Y,QACD,MAANzL,KACc,gBAAbokB,WAEXpkB,GAAKyP,KACLA,KAAOhE,SAGPzL,GAAKyP,KACLA,KAAO2U,SACPA,SAAW3Y,SAGRzL,MAAO,EACXA,GAAK+V,gBACC,KAAM/V,GACZ,MAAOuK,KAaR,OAVa,KAAR+1B,MACJC,OAASvgC,GACTA,GAAK,SAAUmU,OAGd,MADA3B,UAASimB,IAAKtkB,OACPosB,OAAOtgC,MAAOsK,KAAMrK,YAG5BF,GAAGqV,KAAOkrB,OAAOlrB,OAAUkrB,OAAOlrB,KAAO7C,OAAO6C,SAE1C9K,KAAK3L,KAAM,WACjB4T,OAAO2B,MAAMoE,IAAKhO,KAAM2wB,MAAOl7B,GAAIyP,KAAM2U,aAG3Ckc,IAAK,SAAUpF,MAAO9W,SAAU3U,KAAMzP,IACrC,MAAOuK,MAAK1E,GAAIq1B,MAAO9W,SAAU3U,KAAMzP,GAAI,IAE5Cy4B,IAAK,SAAUyC,MAAO9W,SAAUpkB,IAC/B,GAAIu7B,WAAWlsB,IACf,IAAK6rB,OAASA,MAAM6B,gBAAkB7B,MAAMK,UAQ3C,MANAA,WAAYL,MAAMK,UAClB/oB,OAAQ0oB,MAAMkC,gBAAiB3E,IAC9B8C,UAAUQ,UAAYR,UAAUE,SAAW,IAAMF,UAAUQ,UAAYR,UAAUE,SACjFF,UAAUnX,SACVmX,UAAUzuB,SAEJvC,IAER,IAAsB,gBAAV2wB,OAAqB,CAEhC,IAAM7rB,OAAQ6rB,OACb3wB,KAAKkuB,IAAKppB,KAAM+U,SAAU8W,MAAO7rB,MAElC,OAAO9E,MAUR,MARK6Z,aAAa,GAA6B,kBAAbA,YAEjCpkB,GAAKokB,SACLA,SAAW3Y,QAEPzL,MAAO,IACXA,GAAK+V,aAECxL,KAAK3L,KAAK,WAChB4T,OAAO2B,MAAM0iB,OAAQtsB,KAAM2wB,MAAOl7B,GAAIokB,aAIxCiY,QAAS,SAAUhtB,KAAMI,MACxB,MAAOlF,MAAK3L,KAAK,WAChB4T,OAAO2B,MAAMkoB,QAAShtB,KAAMI,KAAMlF,SAGpCiuB,eAAgB,SAAUnpB,KAAMI,MAC/B,GAAI2D,MAAO7I,KAAK,EAChB,OAAK6I,MACGZ,OAAO2B,MAAMkoB,QAAShtB,KAAMI,KAAM2D,MAAM,GADhD,SAqBF,IAAIgD,WAAY,6JAEfoqB,cAAgB,6BAChBC,aAAe,GAAI3gC,QAAO,OAASsW,UAAY,WAAY,KAC3DsqB,mBAAqB,OACrBC,UAAY,0EACZC,SAAW,YACXC,OAAS,UACTC,MAAQ,YACRC,aAAe,0BAEfC,SAAW,oCACXC,YAAc,4BACdtpB,kBAAoB,cACpBupB,aAAe,2CAGfC,SACCC,QAAU,EAAG,+BAAgC,aAC7CC,QAAU,EAAG,aAAc,eAC3BC,MAAQ,EAAG,QAAS,UACpBC,OAAS,EAAG,WAAY,aACxBC,OAAS,EAAG,UAAW,YACvBC,IAAM,EAAG,iBAAkB,oBAC3BC,KAAO,EAAG,mCAAoC,uBAC9CC,IAAM,EAAG,qBAAsB,yBAI/B1E,SAAUrnB,QAAQwkB,eAAkB,EAAG,GAAI,KAAS,EAAG,SAAU,WAElEwH,aAAe1rB,mBAAoB9V,UACnCyhC,YAAcD,aAAaxvB,YAAahS,SAASuR,cAAc,OAEhEwvB,SAAQW,SAAWX,QAAQC,OAC3BD,QAAQhH,MAAQgH,QAAQY,MAAQZ,QAAQa,SAAWb,QAAQc,QAAUd,QAAQK,MAC7EL,QAAQe,GAAKf,QAAQQ,GAiKrBnvB,OAAOgD,QACNgQ,MAAO,SAAUpS,KAAM+uB,cAAeC,mBACrC,GAAIC,cAAcr5B,KAAMwc,MAAOzmB,EAAGujC,YACjCC,OAAS/vB,OAAO8U,SAAUlU,KAAKkE,cAAelE,KAW/C,IATKwC,QAAQgD,YAAcpG,OAAOiiB,SAASrhB,QAAUqtB,aAAa59B,KAAM,IAAMuQ,KAAKyD,SAAW,KAC7F2O,MAAQpS,KAAKinB,WAAW,IAIxBwH,YAAYhpB,UAAYzF,KAAKuF,UAC7BkpB,YAAYl+B,YAAa6hB,MAAQqc,YAAYxqB,eAGvCzB,QAAQ6C,cAAiB7C,QAAQ2kB,gBACnB,IAAlBnnB,KAAKN,UAAoC,KAAlBM,KAAKN,UAAqBN,OAAOiiB,SAASrhB,OAOnE,IAJAivB,aAAe9rB,OAAQiP,OACvB8c,YAAc/rB,OAAQnD,MAGhBrU,EAAI,EAA8B,OAA1BiK,KAAOs5B,YAAYvjC,MAAeA,EAE1CsjC,aAAatjC,IACjByZ,mBAAoBxP,KAAMq5B,aAAatjC,GAM1C,IAAKojC,cACJ,GAAKC,kBAIJ,IAHAE,YAAcA,aAAe/rB,OAAQnD,MACrCivB,aAAeA,cAAgB9rB,OAAQiP,OAEjCzmB,EAAI,EAA8B,OAA1BiK,KAAOs5B,YAAYvjC,IAAaA,IAC7CiZ,eAAgBhP,KAAMq5B,aAAatjC,QAGpCiZ,gBAAgB5E,KAAMoS,MAaxB,OARA6c,cAAe9rB,OAAQiP,MAAO,UACzB6c,aAAarjC,OAAS,GAC1B6Y,cAAewqB,cAAeE,QAAUhsB,OAAQnD,KAAM,WAGvDivB,aAAeC,YAAct5B,KAAO,KAG7Bwc,OAGRgd,cAAe,SAAU/rB,MAAOhT,QAAStD,QAASsiC,WAWjD,IAVA,GAAI1gC,GAAGqR,KAAMkU,SACZlE,IAAK5M,IAAK2jB,MAAOuI,KACjBvqB,EAAI1B,MAAMzX,OAGV2jC,KAAOzsB,mBAAoBzS,SAE3Bm/B,SACA7jC,EAAI,EAEOoZ,EAAJpZ,EAAOA,IAGd,GAFAqU,KAAOqD,MAAO1X,GAETqU,MAAiB,IAATA,KAGZ,GAA6B,WAAxBZ,OAAOnD,KAAM+D,MACjBZ,OAAOsE,MAAO8rB,MAAOxvB,KAAKN,UAAaM,MAASA,UAG1C,IAAM0tB,MAAMj+B,KAAMuQ,MAIlB,CAWN,IAVAgQ,IAAMA,KAAOuf,KAAKvwB,YAAa3O,QAAQkO,cAAc,QAGrD6E,KAAOoqB,SAASh0B,KAAMwG,QAAY,GAAI,KAAO,GAAImB,cACjDmuB,KAAOvB,QAAS3qB,MAAS2qB,QAAQlE,SAEjC7Z,IAAIvK,UAAY6pB,KAAK,GAAKtvB,KAAKtQ,QAAS69B,UAAW,aAAgB+B,KAAK,GAGxE3gC,EAAI2gC,KAAK,GACD3gC,KACPqhB,IAAMA,IAAI+O,SASX,KALMvc,QAAQskB,mBAAqBwG,mBAAmB79B,KAAMuQ,OAC3DwvB,MAAMh8B,KAAMnD,QAAQo/B,eAAgBnC,mBAAmB9zB,KAAMwG,MAAO,MAI/DwC,QAAQukB,MAYb,IATA/mB,KAAe,UAARoD,KAAoBqqB,OAAOh+B,KAAMuQ,MAI3B,YAAZsvB,KAAK,IAAqB7B,OAAOh+B,KAAMuQ,MAEtC,EADAgQ,IAJDA,IAAI/L,WAOLtV,EAAIqR,MAAQA,KAAKwD,WAAW5X,OACpB+C,KACFyQ,OAAOqE,SAAWsjB,MAAQ/mB,KAAKwD,WAAW7U,GAAK,WAAco4B,MAAMvjB,WAAW5X,QAClFoU,KAAKzP,YAAaw2B,MAWrB,KANA3nB,OAAOsE,MAAO8rB,MAAOxf,IAAIxM,YAGzBwM,IAAI4N,YAAc,GAGV5N,IAAI/L,YACX+L,IAAIzf,YAAayf,IAAI/L,WAItB+L,KAAMuf,KAAKxQ,cAtDXyQ,OAAMh8B,KAAMnD,QAAQo/B,eAAgBzvB,MAuEvC,KAXKgQ,KACJuf,KAAKh/B,YAAayf,KAKbxN,QAAQ0kB,eACb9nB,OAAOW,KAAMoD,OAAQqsB,MAAO,SAAW7rB,mBAGxChY,EAAI,EACKqU,KAAOwvB,MAAO7jC,MAItB,KAAK0jC,WAAmD,KAAtCjwB,OAAOe,QAASH,KAAMqvB,cAIxCnb,SAAW9U,OAAO8U,SAAUlU,KAAKkE,cAAelE,MAGhDgQ,IAAM7M,OAAQosB,KAAKvwB,YAAagB,MAAQ,UAGnCkU,UACJzP,cAAeuL,KAIXjjB,SAEJ,IADA4B,EAAI,EACKqR,KAAOgQ,IAAKrhB,MACfk/B,YAAYp+B,KAAMuQ,KAAK/D,MAAQ,KACnClP,QAAQyG,KAAMwM,KAQlB,OAFAgQ,KAAM,KAECuf,MAGRhtB,UAAW,SAAUc,MAAsB3B,YAQ1C,IAPA,GAAI1B,MAAM/D,KAAMxO,GAAI4O,KACnB1Q,EAAI,EACJiW,YAAcxC,OAAOyC,QACrBE,MAAQ3C,OAAO2C,MACfU,cAAgBD,QAAQC,cACxBwlB,QAAU7oB,OAAO2B,MAAMknB,QAEK,OAApBjoB,KAAOqD,MAAM1X,IAAaA,IAClC,IAAK+V,YAActC,OAAOsC,WAAY1B,SAErCvS,GAAKuS,KAAM4B,aACXvF,KAAO5O,IAAMsU,MAAOtU,KAER,CACX,GAAK4O,KAAKrJ,OACT,IAAMiJ,OAAQI,MAAKrJ,OACbi1B,QAAShsB,MACbmD,OAAO2B,MAAM0iB,OAAQzjB,KAAM/D,MAI3BmD,OAAOkG,YAAatF,KAAM/D,KAAMI,KAAK6I,OAMnCnD,OAAOtU,YAEJsU,OAAOtU,IAKTgV,oBACGzC,MAAM4B,mBAEK5B,MAAKwE,kBAAoBlB,aAC3CtD,KAAKwE,gBAAiB5C,aAGtB5B,KAAM4B,aAAgB,KAGvBI,WAAWxO,KAAM/F,SAQvB2R,OAAOxS,GAAGwV,QACTlJ,KAAM,SAAUzM,OACf,MAAO+5B,QAAQrvB,KAAM,SAAU1K,OAC9B,MAAiB4L,UAAV5L,MACN2S,OAAOlG,KAAM/B,MACbA,KAAK8T,QAAQykB,QAAUv4B,KAAK,IAAMA,KAAK,GAAG+M,eAAiBlX,UAAWyiC,eAAgBhjC,SACrF,KAAMA,MAAOK,UAAUlB,SAG3B8jC,OAAQ,WACP,MAAOv4B,MAAKw4B,SAAU7iC,UAAW,SAAUkT,MAC1C,GAAuB,IAAlB7I,KAAKuI,UAAoC,KAAlBvI,KAAKuI,UAAqC,IAAlBvI,KAAKuI,SAAiB,CACzE,GAAIrT,QAAS0X,mBAAoB5M,KAAM6I,KACvC3T,QAAO2S,YAAagB,UAKvB4vB,QAAS,WACR,MAAOz4B,MAAKw4B,SAAU7iC,UAAW,SAAUkT,MAC1C,GAAuB,IAAlB7I,KAAKuI,UAAoC,KAAlBvI,KAAKuI,UAAqC,IAAlBvI,KAAKuI,SAAiB,CACzE,GAAIrT,QAAS0X,mBAAoB5M,KAAM6I,KACvC3T,QAAO0S,aAAciB,KAAM3T,OAAO4X,gBAKrC4rB,OAAQ,WACP,MAAO14B,MAAKw4B,SAAU7iC,UAAW,SAAUkT,MACrC7I,KAAK7G,YACT6G,KAAK7G,WAAWyO,aAAciB,KAAM7I,SAKvC24B,MAAO,WACN,MAAO34B,MAAKw4B,SAAU7iC,UAAW,SAAUkT,MACrC7I,KAAK7G,YACT6G,KAAK7G,WAAWyO,aAAciB,KAAM7I,KAAKye,gBAK5C6N,OAAQ,SAAUzS,SAAU+e,UAK3B,IAJA,GAAI/vB,MACHqD,MAAQ2N,SAAW5R,OAAOc,OAAQ8Q,SAAU7Z,MAASA,KACrDxL,EAAI,EAEwB,OAApBqU,KAAOqD,MAAM1X,IAAaA,IAE5BokC,UAA8B,IAAlB/vB,KAAKN,UACtBN,OAAOmD,UAAWY,OAAQnD,OAGtBA,KAAK1P,aACJy/B,UAAY3wB,OAAO8U,SAAUlU,KAAKkE,cAAelE,OACrDyE,cAAetB,OAAQnD,KAAM,WAE9BA,KAAK1P,WAAWC,YAAayP,MAI/B,OAAO7I,OAGR8T,MAAO,WAIN,IAHA,GAAIjL,MACHrU,EAAI,EAEuB,OAAnBqU,KAAO7I,KAAKxL,IAAaA,IAAM,CAOvC,IALuB,IAAlBqU,KAAKN,UACTN,OAAOmD,UAAWY,OAAQnD,MAAM,IAIzBA,KAAKiE,YACZjE,KAAKzP,YAAayP,KAAKiE,WAKnBjE,MAAKvI,SAAW2H,OAAOqE,SAAUzD,KAAM,YAC3CA,KAAKvI,QAAQ7L,OAAS,GAIxB,MAAOuL,OAGRib,MAAO,SAAU2c,cAAeC,mBAI/B,MAHAD,eAAiC,MAAjBA,eAAwB,EAAQA,cAChDC,kBAAyC,MAArBA,kBAA4BD,cAAgBC,kBAEzD73B,KAAK/H,IAAI,WACf,MAAOgQ,QAAOgT,MAAOjb,KAAM43B,cAAeC,sBAI5CgB,KAAM,SAAUvjC,OACf,MAAO+5B,QAAQrvB,KAAM,SAAU1K,OAC9B,GAAIuT,MAAO7I,KAAM,OAChBxL,EAAI,EACJoZ,EAAI5N,KAAKvL,MAEV,IAAeyM,SAAV5L,MACJ,MAAyB,KAAlBuT,KAAKN,SACXM,KAAKyF,UAAU/V,QAAS09B,cAAe,IACvC/0B,MAIF,IAAsB,gBAAV5L,SAAuBkhC,aAAal+B,KAAMhD,SACnD+V,QAAQwkB,gBAAkBqG,aAAa59B,KAAMhD,UAC7C+V,QAAQskB,oBAAsBwG,mBAAmB79B,KAAMhD,UACxDshC,SAAUP,SAASh0B,KAAM/M,SAAa,GAAI,KAAO,GAAI0U,eAAkB,CAExE1U,MAAQA,MAAMiD,QAAS69B,UAAW,YAElC,KACC,KAAWxoB,EAAJpZ,EAAOA,IAEbqU,KAAO7I,KAAKxL,OACW,IAAlBqU,KAAKN,WACTN,OAAOmD,UAAWY,OAAQnD,MAAM,IAChCA,KAAKyF,UAAYhZ,MAInBuT,MAAO,EAGN,MAAMpS,KAGJoS,MACJ7I,KAAK8T,QAAQykB,OAAQjjC,QAEpB,KAAMA,MAAOK,UAAUlB,SAG3BqkC,YAAa,WACZ,GAAI7c,KAAMtmB,UAAW,EAcrB,OAXAqK,MAAKw4B,SAAU7iC,UAAW,SAAUkT,MACnCoT,IAAMjc,KAAK7G,WAEX8O,OAAOmD,UAAWY,OAAQhM,OAErBic,KACJA,IAAI8c,aAAclwB,KAAM7I,QAKnBic,MAAQA,IAAIxnB,QAAUwnB,IAAI1T,UAAYvI,KAAOA,KAAKssB,UAG1D5iB,OAAQ,SAAUmQ,UACjB,MAAO7Z,MAAKssB,OAAQzS,UAAU,IAG/B2e,SAAU,SAAUl6B,KAAMiF,UAGzBjF,KAAO5F,OAAOhD,SAAW4I,KAEzB,IAAIoc,OAAOjc,KAAMu6B,WAChBpjC,QAASgZ,IAAK8gB,SACdl7B,EAAI,EACJoZ,EAAI5N,KAAKvL,OACTwkC,IAAMj5B,KACNk5B,SAAWtrB,EAAI,EACftY,MAAQgJ,KAAK,GACbtK,WAAaiU,OAAOjU,WAAYsB,MAGjC,IAAKtB,YACD4Z,EAAI,GAAsB,gBAAVtY,SAChB+V,QAAQ4kB,YAAcwG,SAASn+B,KAAMhD,OACxC,MAAO0K,MAAK3L,KAAK,SAAUyF,OAC1B,GAAIuwB,MAAO4O,IAAIte,GAAI7gB,MACd9F,cACJsK,KAAK,GAAKhJ,MAAMnB,KAAM6L,KAAMlG,MAAOuwB,KAAKwO,SAEzCxO,KAAKmO,SAAUl6B,KAAMiF,WAIvB,IAAKqK,IACJ8hB,SAAWznB,OAAOgwB,cAAe35B,KAAM0B,KAAM,GAAI+M,eAAe,EAAO/M,MACvE0a,MAAQgV,SAAS5iB,WAEmB,IAA/B4iB,SAASrjB,WAAW5X,SACxBi7B,SAAWhV,OAGPA,OAAQ,CAMZ,IALA9kB,QAAUqS,OAAOhQ,IAAK+T,OAAQ0jB,SAAU,UAAY1iB,eACpDgsB,WAAapjC,QAAQnB,OAITmZ,EAAJpZ,EAAOA,IACdiK,KAAOixB,SAEFl7B,IAAM0kC,WACVz6B,KAAOwJ,OAAOgT,MAAOxc,MAAM,GAAM,GAG5Bu6B,YACJ/wB,OAAOsE,MAAO3W,QAASoW,OAAQvN,KAAM,YAIvC8E,SAASpP,KAAM6L,KAAKxL,GAAIiK,KAAMjK,EAG/B,IAAKwkC,WAOJ,IANApqB,IAAMhZ,QAASA,QAAQnB,OAAS,GAAIsY,cAGpC9E,OAAOhQ,IAAKrC,QAASuX,eAGf3Y,EAAI,EAAOwkC,WAAJxkC,EAAgBA,IAC5BiK,KAAO7I,QAASpB,GACXkiC,YAAYp+B,KAAMmG,KAAKqG,MAAQ,MAClCmD,OAAOuF,MAAO/O,KAAM,eAAkBwJ,OAAO8U,SAAUnO,IAAKnQ,QAExDA,KAAKkH,IAEJsC,OAAOkxB,UACXlxB,OAAOkxB,SAAU16B,KAAKkH,KAGvBsC,OAAOsT,YAAc9c,KAAKsD,MAAQtD,KAAKgoB,aAAehoB,KAAK6P,WAAa,IAAK/V,QAASo+B,aAAc,KAOxGjH,UAAWhV,MAAQ,KAIrB,MAAO1a,SAITiI,OAAO5T,MACNya,SAAU,SACVsqB,UAAW,UACXxxB,aAAc,SACdyxB,YAAa,QACbC,WAAY,eACV,SAAUpiC,KAAMu8B,UAClBxrB,OAAOxS,GAAIyB,MAAS,SAAU2iB,UAO7B,IANA,GAAI3N,OACH1X,EAAI,EACJgP,OACA+1B,OAAStxB,OAAQ4R,UACjBe,KAAO2e,OAAO9kC,OAAS,EAEXmmB,MAALpmB,EAAWA,IAClB0X,MAAQ1X,IAAMomB,KAAO5a,KAAOA,KAAKib,OAAM,GACvChT,OAAQsxB,OAAO/kC,IAAMi/B,UAAYvnB,OAGjC7P,KAAK3G,MAAO8N,IAAK0I,MAAMtI,MAGxB,OAAO5D,MAAKwa,UAAWhX,OAKzB,IAAI6L,QACHD,gBA8DD,WACC,GAAIoqB,oBAEJnuB,SAAQiJ,iBAAmB,WAC1B,GAA4B,MAAvBklB,oBACJ,MAAOA,oBAIRA,sBAAsB,CAGtB,IAAIxb,KAAKjP,KAAMuf,SAGf,OADAvf,MAAOlZ,SAASC,qBAAsB,QAAU,GAC1CiZ,MAASA,KAAKF,OAMpBmP,IAAMnoB,SAASuR,cAAe,OAC9BknB,UAAYz4B,SAASuR,cAAe,OACpCknB,UAAUzf,MAAM0f,QAAU,iEAC1Bxf,KAAKlH,YAAaymB,WAAYzmB,YAAamW,WAI/BA,KAAInP,MAAMwF,OAASlI,eAE9B6R,IAAInP,MAAM0f,QAGT,iJAGDvQ,IAAInW,YAAahS,SAASuR,cAAe,QAAUyH,MAAM8D,MAAQ,MACjE6mB,oBAA0C,IAApBxb,IAAIzM,aAG3BxC,KAAK3V,YAAak1B,WAEXkL,qBA3BP,UA+BF,IAMI/nB,WAAWE,OANX8nB,QAAU,UAEV7nB,UAAY,GAAIrc,QAAQ,KAAO45B,KAAO,kBAAmB,KAK5DuK,UAAY,2BAERlzB,QAAOmzB,kBACXloB,UAAY,SAAU5I,MAIrB,MAAKA,MAAKkE,cAAc2M,YAAYkgB,OAC5B/wB,KAAKkE,cAAc2M,YAAYigB,iBAAkB9wB,KAAM,MAGxDrC,OAAOmzB,iBAAkB9wB,KAAM,OAGvC8I,OAAS,SAAU9I,KAAM3R,KAAM2iC,UAC9B,GAAIlnB,OAAOmnB,SAAUC,SAAUv2B,IAC9BqL,MAAQhG,KAAKgG,KAqCd,OAnCAgrB,UAAWA,UAAYpoB,UAAW5I,MAGlCrF,IAAMq2B,SAAWA,SAASG,iBAAkB9iC,OAAU2iC,SAAU3iC,MAASgK,OAEpE24B,WAES,KAARr2B,KAAeyE,OAAO8U,SAAUlU,KAAKkE,cAAelE,QACxDrF,IAAMyE,OAAO4G,MAAOhG,KAAM3R,OAOtB0a,UAAUtZ,KAAMkL,MAASi2B,QAAQnhC,KAAMpB,QAG3Cyb,MAAQ9D,MAAM8D,MACdmnB,SAAWjrB,MAAMirB,SACjBC,SAAWlrB,MAAMkrB,SAGjBlrB,MAAMirB,SAAWjrB,MAAMkrB,SAAWlrB,MAAM8D,MAAQnP,IAChDA,IAAMq2B,SAASlnB,MAGf9D,MAAM8D,MAAQA,MACd9D,MAAMirB,SAAWA,SACjBjrB,MAAMkrB,SAAWA,WAMJ74B,SAARsC,IACNA,IACAA,IAAM,KAEG3N,SAASyZ,gBAAgB2qB,eACpCxoB,UAAY,SAAU5I,MACrB,MAAOA,MAAKoxB,cAGbtoB,OAAS,SAAU9I,KAAM3R,KAAM2iC,UAC9B,GAAIK,MAAMC,GAAIC,OAAQ52B,IACrBqL,MAAQhG,KAAKgG,KAyCd,OAvCAgrB,UAAWA,UAAYpoB,UAAW5I,MAClCrF,IAAMq2B,SAAWA,SAAU3iC,MAASgK,OAIxB,MAAPsC,KAAeqL,OAASA,MAAO3X,QACnCsM,IAAMqL,MAAO3X,OAUT0a,UAAUtZ,KAAMkL,OAAUk2B,UAAUphC,KAAMpB,QAG9CgjC,KAAOrrB,MAAMqrB,KACbC,GAAKtxB,KAAKwxB,aACVD,OAASD,IAAMA,GAAGD,KAGbE,SACJD,GAAGD,KAAOrxB,KAAKoxB,aAAaC,MAE7BrrB,MAAMqrB,KAAgB,aAAThjC,KAAsB,MAAQsM,IAC3CA,IAAMqL,MAAMyrB,UAAY,KAGxBzrB,MAAMqrB,KAAOA,KACRE,SACJD,GAAGD,KAAOE,SAMGl5B,SAARsC,IACNA,IACAA,IAAM,IAAM,SAmCf,WAkEC,QAAS+2B,qBAER,GAAIvc,KAAKjP,KAAMuf,UAAWnW,QAE1BpJ,MAAOlZ,SAASC,qBAAsB,QAAU,GAC1CiZ,MAASA,KAAKF,QAMpBmP,IAAMnoB,SAASuR,cAAe,OAC9BknB,UAAYz4B,SAASuR,cAAe,OACpCknB,UAAUzf,MAAM0f,QAAU,iEAC1Bxf,KAAKlH,YAAaymB,WAAYzmB,YAAamW,KAE3CA,IAAInP,MAAM0f,QAGT,uKAMDiM,iBAAmBC,sBAAuB,EAC1CC,wBAAyB,EAGpBl0B,OAAOmzB,mBACXa,iBAA0E,QAArDh0B,OAAOmzB,iBAAkB3b,IAAK,WAAegH,IAClEyV,qBACwE,SAArEj0B,OAAOmzB,iBAAkB3b,IAAK,QAAYrL,MAAO,QAAUA,MAM9DwF,SAAW6F,IAAInW,YAAahS,SAASuR,cAAe,QAGpD+Q,SAAStJ,MAAM0f,QAAUvQ,IAAInP,MAAM0f,QAGlC,8HAEDpW,SAAStJ,MAAM8rB,YAAcxiB,SAAStJ,MAAM8D,MAAQ,IACpDqL,IAAInP,MAAM8D,MAAQ,MAElB+nB,wBACE5oB,YAActL,OAAOmzB,iBAAkBxhB,SAAU,WAAewiB,aAElE3c,IAAI5kB,YAAa+e,WAUlB6F,IAAI1P,UAAY,8CAChB6J,SAAW6F,IAAIloB,qBAAsB,MACrCqiB,SAAU,GAAItJ,MAAM0f,QAAU,2CAC9BqM,yBAA0D,IAA/BziB,SAAU,GAAI3G,aACpCopB,2BACJziB,SAAU,GAAItJ,MAAMG,QAAU,GAC9BmJ,SAAU,GAAItJ,MAAMG,QAAU,OAC9B4rB,yBAA0D,IAA/BziB,SAAU,GAAI3G,cAG1CzC,KAAK3V,YAAak1B,YAxInB,GAAItQ,KAAKnP,MAAOuP,EAAGoc,iBAAkBC,qBACpCG,yBAA0BF,sBAG3B1c,KAAMnoB,SAASuR,cAAe,OAC9B4W,IAAI1P,UAAY,qEAChB8P,EAAIJ,IAAIloB,qBAAsB,KAAO,GACrC+Y,MAAQuP,GAAKA,EAAEvP,MAGTA,QAINA,MAAM0f,QAAU,wBAIhBljB,QAAQqH,QAA4B,QAAlB7D,MAAM6D,QAIxBrH,QAAQwvB,WAAahsB,MAAMgsB,SAE3B7c,IAAInP,MAAMisB,eAAiB,cAC3B9c,IAAI8R,WAAW,GAAOjhB,MAAMisB,eAAiB,GAC7CzvB,QAAQ0vB,gBAA+C,gBAA7B/c,IAAInP,MAAMisB,eAIpCzvB,QAAQqG,UAAgC,KAApB7C,MAAM6C,WAA2C,KAAvB7C,MAAMmsB,cACzB,KAA1BnsB,MAAMosB,gBAEPhzB,OAAOgD,OAAOI,SACb6vB,sBAAuB,WAItB,MAHiC,OAA5BN,0BACJL,oBAEMK,0BAGR/oB,kBAAmB,WAIlB,MAH6B,OAAxB4oB,sBACJF,oBAEME,sBAGRU,cAAe,WAId,MAHyB,OAApBX,kBACJD,oBAEMC,kBAIRY,oBAAqB,WAIpB,MAH+B,OAA1BV,wBACJH,oBAEMG,8BAmFVzyB,OAAOozB,KAAO,SAAUxyB,KAAMvI,QAASiD,SAAUjF,MAChD,GAAIkF,KAAKtM,KACRqlB,MAGD,KAAMrlB,OAAQoJ,SACbic,IAAKrlB,MAAS2R,KAAKgG,MAAO3X,MAC1B2R,KAAKgG,MAAO3X,MAASoJ,QAASpJ,KAG/BsM,KAAMD,SAAS7N,MAAOmT,KAAMvK,SAG5B,KAAMpH,OAAQoJ,SACbuI,KAAKgG,MAAO3X,MAASqlB,IAAKrlB,KAG3B,OAAOsM,KAIR,IACE83B,QAAS,kBACVC,SAAW,wBAIXC,aAAe,4BACf5qB,UAAY,GAAIrb,QAAQ,KAAO45B,KAAO,SAAU,KAChDsM,QAAU,GAAIlmC,QAAQ,YAAc45B,KAAO,IAAK,KAEhDuM,SAAYC,SAAU,WAAYC,WAAY,SAAU5sB,QAAS,SACjE6sB,oBACCC,cAAe,IACfC,WAAY,OAGb5rB,aAAgB,SAAU,IAAK,MAAO,KAuKvClI,QAAOgD,QAGN6J,UACCpC,SACC9O,IAAK,SAAUiF,KAAMgxB,UACpB,GAAKA,SAAW,CAEf,GAAIr2B,KAAMmO,OAAQ9I,KAAM,UACxB,OAAe,KAARrF,IAAa,IAAMA,QAO9Bw4B,WACCC,aAAe,EACfC,aAAe,EACfC,UAAY,EACZC,YAAc,EACdL,YAAc,EACdM,YAAc,EACd3pB,SAAW,EACX4pB,OAAS,EACTC,SAAW,EACXC,QAAU,EACVC,QAAU,EACVpoB,MAAQ,GAKTqoB,UAECC,QAAStxB,QAAQwvB,SAAW,WAAa,cAI1ChsB,MAAO,SAAUhG,KAAM3R,KAAM5B,MAAO0b,OAEnC,GAAMnI,MAA0B,IAAlBA,KAAKN,UAAoC,IAAlBM,KAAKN,UAAmBM,KAAKgG,MAAlE,CAKA,GAAIrL,KAAKsB,KAAMuO,MACdnD,SAAWjI,OAAOiD,UAAWhU,MAC7B2X,MAAQhG,KAAKgG,KASd,IAPA3X,KAAO+Q,OAAOy0B,SAAUxsB,YAAgBjI,OAAOy0B,SAAUxsB,UAAaH,eAAgBlB,MAAOqB,WAI7FmD,MAAQpL,OAAO6M,SAAU5d,OAAU+Q,OAAO6M,SAAU5E,UAGrChP,SAAV5L,MAsCJ,MAAK+d,QAAS,OAASA,QAAqDnS,UAA3CsC,IAAM6P,MAAMzP,IAAKiF,MAAM,EAAOmI,QACvDxN,IAIDqL,MAAO3X,KAhCd,IAVA4N,WAAcxP,OAGA,WAATwP,OAAsBtB,IAAMi4B,QAAQp5B,KAAM/M,UAC9CA,OAAUkO,IAAI,GAAK,GAAMA,IAAI,GAAKsO,WAAY7J,OAAOiH,IAAKrG,KAAM3R,OAEhE4N,KAAO,UAIM,MAATxP,OAAiBA,QAAUA,QAKlB,WAATwP,MAAsBmD,OAAO+zB,UAAW9rB,YAC5C5a,OAAS,MAKJ+V,QAAQ0vB,iBAA6B,KAAVzlC,OAA+C,IAA/B4B,KAAK6C,QAAQ,gBAC7D8U,MAAO3X,MAAS,aAIXmc,OAAW,OAASA,QAAwDnS,UAA7C5L,MAAQ+d,MAAM4lB,IAAKpwB,KAAMvT,MAAO0b,UAIpE,IACCnC,MAAO3X,MAAS5B,MACf,MAAMmB,OAcXyY,IAAK,SAAUrG,KAAM3R,KAAM8Z,MAAOE,QACjC,GAAIqJ,KAAKpJ,IAAKkC,MACbnD,SAAWjI,OAAOiD,UAAWhU,KAyB9B,OAtBAA,MAAO+Q,OAAOy0B,SAAUxsB,YAAgBjI,OAAOy0B,SAAUxsB,UAAaH,eAAgBlH,KAAKgG,MAAOqB,WAIlGmD,MAAQpL,OAAO6M,SAAU5d,OAAU+Q,OAAO6M,SAAU5E,UAG/CmD,OAAS,OAASA,SACtBlC,IAAMkC,MAAMzP,IAAKiF,MAAM,EAAMmI,QAIjB9P,SAARiQ,MACJA,IAAMQ,OAAQ9I,KAAM3R,KAAMga,SAId,WAARC,KAAoBja,OAAQ2kC,sBAChC1qB,IAAM0qB,mBAAoB3kC,OAIZ,KAAV8Z,OAAgBA,OACpBuJ,IAAMzI,WAAYX,KACXH,SAAU,GAAQ/I,OAAOoT,UAAWd,KAAQA,KAAO,EAAIpJ,KAExDA,OAITlJ,OAAO5T,MAAO,SAAU,SAAW,SAAUG,EAAG0C,MAC/C+Q,OAAO6M,SAAU5d,OAChB0M,IAAK,SAAUiF,KAAMgxB,SAAU7oB,OAC9B,MAAK6oB,UAGG2B,aAAaljC,KAAM2P,OAAOiH,IAAKrG,KAAM,aAAsC,IAArBA,KAAK0I,YACjEtJ,OAAOozB,KAAMxyB,KAAM6yB,QAAS,WAC3B,MAAOrqB,kBAAkBxI,KAAM3R,KAAM8Z,SAEtCK,iBAAkBxI,KAAM3R,KAAM8Z,OAPhC,QAWDioB,IAAK,SAAUpwB,KAAMvT,MAAO0b,OAC3B,GAAIE,QAASF,OAASS,UAAW5I,KACjC,OAAO4H,mBAAmB5H,KAAMvT,MAAO0b,MACtCD,qBACClI,KACA3R,KACA8Z,MACA3F,QAAQqG,WAAgE,eAAnDzJ,OAAOiH,IAAKrG,KAAM,aAAa,EAAOqI,QAC3DA,QACG,OAMF7F,QAAQqH,UACbzK,OAAO6M,SAASpC,SACf9O,IAAK,SAAUiF,KAAMgxB,UAEpB,MAAO0B,UAASjjC,MAAOuhC,UAAYhxB,KAAKoxB,aAAepxB,KAAKoxB,aAAalxB,OAASF,KAAKgG,MAAM9F,SAAW,IACrG,IAAO+I,WAAYvc,OAAOqnC,IAAS,GACrC/C,SAAW,IAAM,IAGnBZ,IAAK,SAAUpwB,KAAMvT,OACpB,GAAIuZ,OAAQhG,KAAKgG,MAChBorB,aAAepxB,KAAKoxB,aACpBvnB,QAAUzK,OAAOoT,UAAW/lB,OAAU,iBAA2B,IAARA,MAAc,IAAM,GAC7EyT,OAASkxB,cAAgBA,aAAalxB,QAAU8F,MAAM9F,QAAU,EAIjE8F,OAAMwF,KAAO,GAIN/e,OAAS,GAAe,KAAVA,QAC6B,KAAhD2S,OAAOsG,KAAMxF,OAAOxQ,QAAS+iC,OAAQ,MACrCzsB,MAAMxB,kBAKPwB,MAAMxB,gBAAiB;AAGR,KAAV/X,OAAgB2kC,eAAiBA,aAAalxB,UAMpD8F,MAAM9F,OAASuyB,OAAOhjC,KAAMyQ,QAC3BA,OAAOxQ,QAAS+iC,OAAQ5oB,SACxB3J,OAAS,IAAM2J,YAKnBzK,OAAO6M,SAAS6lB,YAAchrB,aAActE,QAAQ+vB,oBACnD,SAAUvyB,KAAMgxB,UACf,MAAKA,UAGG5xB,OAAOozB,KAAMxyB,MAAQmG,QAAW,gBACtC2C,QAAU9I,KAAM,gBAJlB,SAUFZ,OAAO5T,MACNwoC,OAAQ,GACRC,QAAS,GACTC,OAAQ,SACN,SAAUljC,OAAQS,QACpB2N,OAAO6M,SAAUjb,OAASS,SACzBya,OAAQ,SAAUzf,OAOjB,IANA,GAAId,GAAI,EACPwoC,YAGAC,MAAyB,gBAAV3nC,OAAqBA,MAAMa,MAAM,MAASb,OAE9C,EAAJd,EAAOA,IACdwoC,SAAUnjC,OAASuX,UAAW5c,GAAM8F,QACnC2iC,MAAOzoC,IAAOyoC,MAAOzoC,EAAI,IAAOyoC,MAAO,EAGzC,OAAOD,YAIHvD,QAAQnhC,KAAMuB,UACnBoO,OAAO6M,SAAUjb,OAASS,QAAS2+B,IAAMxoB,qBAI3CxI,OAAOxS,GAAGwV,QACTiE,IAAK,SAAUhY,KAAM5B,OACpB,MAAO+5B,QAAQrvB,KAAM,SAAU6I,KAAM3R,KAAM5B,OAC1C,GAAI4b,QAAQ2J,IACX5iB,OACAzD,EAAI,CAEL,IAAKyT,OAAO7T,QAAS8C,MAAS,CAI7B,IAHAga,OAASO,UAAW5I,MACpBgS,IAAM3jB,KAAKzC,OAEComB,IAAJrmB,EAASA,IAChByD,IAAKf,KAAM1C,IAAQyT,OAAOiH,IAAKrG,KAAM3R,KAAM1C,IAAK,EAAO0c,OAGxD,OAAOjZ,KAGR,MAAiBiJ,UAAV5L,MACN2S,OAAO4G,MAAOhG,KAAM3R,KAAM5B,OAC1B2S,OAAOiH,IAAKrG,KAAM3R,OACjBA,KAAM5B,MAAOK,UAAUlB,OAAS,IAEpC4b,KAAM,WACL,MAAOD,UAAUpQ,MAAM,IAExByU,KAAM,WACL,MAAOrE,UAAUpQ,OAElBoT,OAAQ,SAAU6F,OACjB,MAAsB,iBAAVA,OACJA,MAAQjZ,KAAKqQ,OAASrQ,KAAKyU,OAG5BzU,KAAK3L,KAAK,WACXmc,SAAUxQ,MACdiI,OAAQjI,MAAOqQ,OAEfpI,OAAQjI,MAAOyU,YAUnBxM,OAAO8J,MAAQA,MAEfA,MAAM3R,WACLia,YAAatI,MACbxT,KAAM,SAAUsK,KAAMvI,QAASzL,KAAMmd,IAAKC,OAAQirB,MACjDl9B,KAAK6I,KAAOA,KACZ7I,KAAKnL,KAAOA,KACZmL,KAAKiS,OAASA,QAAU,QACxBjS,KAAKM,QAAUA,QACfN,KAAK2U,MAAQ3U,KAAKoS,IAAMpS,KAAKkJ,MAC7BlJ,KAAKgS,IAAMA,IACXhS,KAAKk9B,KAAOA,OAAUj1B,OAAO+zB,UAAWnnC,MAAS,GAAK,OAEvDqU,IAAK,WACJ,GAAImK,OAAQtB,MAAMorB,UAAWn9B,KAAKnL,KAElC,OAAOwe,QAASA,MAAMzP,IACrByP,MAAMzP,IAAK5D,MACX+R,MAAMorB,UAAUzK,SAAS9uB,IAAK5D,OAEhC8V,IAAK,SAAUF,SACd,GAAIwnB,OACH/pB,MAAQtB,MAAMorB,UAAWn9B,KAAKnL,KAoB/B,OAlBKmL,MAAKM,QAAQoV,SACjB1V,KAAKkrB,IAAMkS,MAAQn1B,OAAOgK,OAAQjS,KAAKiS,QACtC2D,QAAS5V,KAAKM,QAAQoV,SAAWE,QAAS,EAAG,EAAG5V,KAAKM,QAAQoV,UAG9D1V,KAAKkrB,IAAMkS,MAAQxnB,QAEpB5V,KAAKoS,KAAQpS,KAAKgS,IAAMhS,KAAK2U,OAAUyoB,MAAQp9B,KAAK2U,MAE/C3U,KAAKM,QAAQ+8B,MACjBr9B,KAAKM,QAAQ+8B,KAAKlpC,KAAM6L,KAAK6I,KAAM7I,KAAKoS,IAAKpS,MAGzCqT,OAASA,MAAM4lB,IACnB5lB,MAAM4lB,IAAKj5B,MAEX+R,MAAMorB,UAAUzK,SAASuG,IAAKj5B,MAExBA,OAIT+R,MAAM3R,UAAU7B,KAAK6B,UAAY2R,MAAM3R,UAEvC2R,MAAMorB,WACLzK,UACC9uB,IAAK,SAAUkP,OACd,GAAIoC,OAEJ,OAAiC,OAA5BpC,MAAMjK,KAAMiK,MAAMje,OACpBie,MAAMjK,KAAKgG,OAA2C,MAAlCiE,MAAMjK,KAAKgG,MAAOiE,MAAMje,OAQ/CqgB,OAASjN,OAAOiH,IAAK4D,MAAMjK,KAAMiK,MAAMje,KAAM,IAErCqgB,QAAqB,SAAXA,OAAwBA,OAAJ,GAT9BpC,MAAMjK,KAAMiK,MAAMje,OAW3BokC,IAAK,SAAUnmB,OAGT7K,OAAOsO,GAAG8mB,KAAMvqB,MAAMje,MAC1BoT,OAAOsO,GAAG8mB,KAAMvqB,MAAMje,MAAQie,OACnBA,MAAMjK,KAAKgG,QAAgE,MAArDiE,MAAMjK,KAAKgG,MAAO5G,OAAOy0B,SAAU5pB,MAAMje,QAAoBoT,OAAO6M,SAAUhC,MAAMje,OACrHoT,OAAO4G,MAAOiE,MAAMjK,KAAMiK,MAAMje,KAAMie,MAAMV,IAAMU,MAAMoqB,MAExDpqB,MAAMjK,KAAMiK,MAAMje,MAASie,MAAMV,OASrCL,MAAMorB,UAAU/I,UAAYriB,MAAMorB,UAAUnJ,YAC3CiF,IAAK,SAAUnmB,OACTA,MAAMjK,KAAKN,UAAYuK,MAAMjK,KAAK1P,aACtC2Z,MAAMjK,KAAMiK,MAAMje,MAASie,MAAMV,OAKpCnK,OAAOgK,QACNqrB,OAAQ,SAAUC,GACjB,MAAOA,IAERC,MAAO,SAAUD,GAChB,MAAO,GAAM1sB,KAAK4sB,IAAKF,EAAI1sB,KAAK6sB,IAAO,IAIzCz1B,OAAOsO,GAAKxE,MAAM3R,UAAU7B,KAG5B0J,OAAOsO,GAAG8mB,OAKV,IACClrB,OAAOwrB,QACPppB,SAAW,yBACXqpB,OAAS,GAAIroC,QAAQ,iBAAmB45B,KAAO,cAAe,KAC9D0O,KAAO,cACPzoB,qBAAwBnC,kBACxBD,UACC8qB,KAAO,SAAUjpC,KAAMS,OACtB,GAAIwd,OAAQ9S,KAAK4S,YAAa/d,KAAMS,OACnCJ,OAAS4d,MAAM5J,MACf+zB,MAAQW,OAAOv7B,KAAM/M,OACrB4nC,KAAOD,OAASA,MAAO,KAASh1B,OAAO+zB,UAAWnnC,MAAS,GAAK,MAGhE8f,OAAU1M,OAAO+zB,UAAWnnC,OAAmB,OAATqoC,OAAkBhoC,SACvD0oC,OAAOv7B,KAAM4F,OAAOiH,IAAK4D,MAAMjK,KAAMhU,OACtCkpC,MAAQ,EACRC,cAAgB,EAEjB,IAAKrpB,OAASA,MAAO,KAAQuoB,KAAO,CAEnCA,KAAOA,MAAQvoB,MAAO,GAGtBsoB,MAAQA,UAGRtoB,OAASzf,QAAU,CAEnB,GAGC6oC,OAAQA,OAAS,KAGjBppB,OAAgBopB,MAChB91B,OAAO4G,MAAOiE,MAAMjK,KAAMhU,KAAM8f,MAAQuoB,YAI/Ba,SAAWA,MAAQjrB,MAAM5J,MAAQhU,SAAqB,IAAV6oC,SAAiBC,eAaxE,MATKf,SACJtoB,MAAQ7B,MAAM6B,OAASA,QAAUzf,QAAU,EAC3C4d,MAAMoqB,KAAOA,KAEbpqB,MAAMd,IAAMirB,MAAO,GAClBtoB,OAAUsoB,MAAO,GAAM,GAAMA,MAAO,IACnCA,MAAO,IAGHnqB,QA0UV7K,QAAO+M,UAAY/M,OAAOgD,OAAQ+J,WACjCipB,QAAS,SAAU/qB,MAAO3P,UACpB0E,OAAOjU,WAAYkf,QACvB3P,SAAW2P,MACXA,OAAU,MAEVA,MAAQA,MAAM/c,MAAM,IAOrB,KAJA,GAAItB,MACHiF,MAAQ,EACRrF,OAASye,MAAMze,OAEAA,OAARqF,MAAiBA,QACxBjF,KAAOqe,MAAOpZ,OACdkZ,SAAUne,MAASme,SAAUne,UAC7Bme,SAAUne,MAAOoiB,QAAS1T,WAI5B26B,UAAW,SAAU36B,SAAUk1B,SACzBA,QACJrjB,oBAAoB6B,QAAS1T,UAE7B6R,oBAAoB/Y,KAAMkH,aAK7B0E,OAAOk2B,MAAQ,SAAUA,MAAOlsB,OAAQxc,IACvC,GAAI2oC,KAAMD,OAA0B,gBAAVA,OAAqBl2B,OAAOgD,UAAYkzB,QACjEznB,SAAUjhB,KAAOA,IAAMwc,QACtBhK,OAAOjU,WAAYmqC,QAAWA,MAC/BzoB,SAAUyoB,MACVlsB,OAAQxc,IAAMwc,QAAUA,SAAWhK,OAAOjU,WAAYie,SAAYA,OAwBnE,OArBAmsB,KAAI1oB,SAAWzN,OAAOsO,GAAG2X,IAAM,EAA4B,gBAAjBkQ,KAAI1oB,SAAwB0oB,IAAI1oB,SACzE0oB,IAAI1oB,WAAYzN,QAAOsO,GAAG8nB,OAASp2B,OAAOsO,GAAG8nB,OAAQD,IAAI1oB,UAAazN,OAAOsO,GAAG8nB,OAAO3L,SAGtE,MAAb0L,IAAIzqB,OAAiByqB,IAAIzqB,SAAU,IACvCyqB,IAAIzqB,MAAQ,MAIbyqB,IAAI7hB,IAAM6hB,IAAI1nB,SAEd0nB,IAAI1nB,SAAW,WACTzO,OAAOjU,WAAYoqC,IAAI7hB,MAC3B6hB,IAAI7hB,IAAIpoB,KAAM6L,MAGVo+B,IAAIzqB,OACR1L,OAAO4mB,QAAS7uB,KAAMo+B,IAAIzqB,QAIrByqB,KAGRn2B,OAAOxS,GAAGwV,QACTqzB,OAAQ,SAAUH,MAAOI,GAAItsB,OAAQ1O,UAGpC,MAAOvD,MAAK+I,OAAQyH,UAAWtB,IAAK,UAAW,GAAImB,OAGjD2B,MAAMwsB,SAAU9rB,QAAS6rB,IAAMJ,MAAOlsB,OAAQ1O,WAEjDi7B,QAAS,SAAU3pC,KAAMspC,MAAOlsB,OAAQ1O,UACvC,GAAIuQ,OAAQ7L,OAAOmC,cAAevV,MACjC4pC,OAASx2B,OAAOk2B,MAAOA,MAAOlsB,OAAQ1O,UACtCm7B,YAAc,WAEb,GAAIlrB,MAAOwB,UAAWhV,KAAMiI,OAAOgD,UAAYpW,MAAQ4pC,SAGlD3qB,OAAS7L,OAAOuF,MAAOxN,KAAM,YACjCwT,KAAK4C,MAAM,GAKd,OAFCsoB,aAAYC,OAASD,YAEf5qB,OAAS2qB,OAAO9qB,SAAU,EAChC3T,KAAK3L,KAAMqqC,aACX1+B,KAAK2T,MAAO8qB,OAAO9qB,MAAO+qB,cAE5BtoB,KAAM,SAAUtR,KAAMkqB,WAAY3Y,SACjC,GAAIuoB,WAAY,SAAUvrB,OACzB,GAAI+C,MAAO/C,MAAM+C,WACV/C,OAAM+C,KACbA,KAAMC,SAYP,OATqB,gBAATvR,QACXuR,QAAU2Y,WACVA,WAAalqB,KACbA,KAAO5D,QAEH8tB,YAAclqB,QAAS,GAC3B9E,KAAK2T,MAAO7O,MAAQ,SAGd9E,KAAK3L,KAAK,WAChB,GAAIw6B,UAAU,EACb/0B,MAAgB,MAARgL,MAAgBA,KAAO,aAC/B+5B,OAAS52B,OAAO42B,OAChB35B,KAAO+C,OAAOuF,MAAOxN,KAEtB,IAAKlG,MACCoL,KAAMpL,QAAWoL,KAAMpL,OAAQsc,MACnCwoB,UAAW15B,KAAMpL,YAGlB,KAAMA,QAASoL,MACTA,KAAMpL,QAAWoL,KAAMpL,OAAQsc,MAAQynB,KAAKvlC,KAAMwB,QACtD8kC,UAAW15B,KAAMpL,OAKpB,KAAMA,MAAQ+kC,OAAOpqC,OAAQqF,SACvB+kC,OAAQ/kC,OAAQ+O,OAAS7I,MAAiB,MAAR8E,MAAgB+5B,OAAQ/kC,OAAQ6Z,QAAU7O,OAChF+5B,OAAQ/kC,OAAQ0Z,KAAK4C,KAAMC,SAC3BwY,SAAU,EACVgQ,OAAO7nC,OAAQ8C,MAAO,KAOnB+0B,SAAYxY,SAChBpO,OAAO4mB,QAAS7uB,KAAM8E,SAIzB65B,OAAQ,SAAU75B,MAIjB,MAHKA,SAAS,IACbA,KAAOA,MAAQ,MAET9E,KAAK3L,KAAK,WAChB,GAAIyF,OACHoL,KAAO+C,OAAOuF,MAAOxN,MACrB2T,MAAQzO,KAAMJ,KAAO,SACrBuO,MAAQnO,KAAMJ,KAAO,cACrB+5B,OAAS52B,OAAO42B,OAChBpqC,OAASkf,MAAQA,MAAMlf,OAAS,CAajC,KAVAyQ,KAAKy5B,QAAS,EAGd12B,OAAO0L,MAAO3T,KAAM8E,SAEfuO,OAASA,MAAM+C,MACnB/C,MAAM+C,KAAKjiB,KAAM6L,MAAM,GAIlBlG,MAAQ+kC,OAAOpqC,OAAQqF,SACvB+kC,OAAQ/kC,OAAQ+O,OAAS7I,MAAQ6+B,OAAQ/kC,OAAQ6Z,QAAU7O,OAC/D+5B,OAAQ/kC,OAAQ0Z,KAAK4C,MAAM,GAC3ByoB,OAAO7nC,OAAQ8C,MAAO,GAKxB,KAAMA,MAAQ,EAAWrF,OAARqF,MAAgBA,QAC3B6Z,MAAO7Z,QAAW6Z,MAAO7Z,OAAQ6kC,QACrChrB,MAAO7Z,OAAQ6kC,OAAOxqC,KAAM6L,YAKvBkF,MAAKy5B,YAKf12B,OAAO5T,MAAO,SAAU,OAAQ,QAAU,SAAUG,EAAG0C,MACtD,GAAI4nC,OAAQ72B,OAAOxS,GAAIyB,KACvB+Q,QAAOxS,GAAIyB,MAAS,SAAUinC,MAAOlsB,OAAQ1O,UAC5C,MAAgB,OAAT46B,OAAkC,iBAAVA,OAC9BW,MAAMppC,MAAOsK,KAAMrK,WACnBqK,KAAKw+B,QAASnsB,MAAOnb,MAAM,GAAQinC,MAAOlsB,OAAQ1O,aAKrD0E,OAAO5T,MACN0qC,UAAW1sB,MAAM,QACjB2sB,QAAS3sB,MAAM,QACf4sB,YAAa5sB,MAAM,UACnB6sB,QAAUxsB,QAAS,QACnBysB,SAAWzsB,QAAS,QACpB0sB,YAAc1sB,QAAS,WACrB,SAAUxb,KAAMgc,OAClBjL,OAAOxS,GAAIyB,MAAS,SAAUinC,MAAOlsB,OAAQ1O,UAC5C,MAAOvD,MAAKw+B,QAAStrB,MAAOirB,MAAOlsB,OAAQ1O,aAI7C0E,OAAO42B,UACP52B,OAAOsO,GAAGhB,KAAO,WAChB,GAAIiB,OACHqoB,OAAS52B,OAAO42B,OAChBrqC,EAAI,CAIL,KAFA2d,MAAQlK,OAAOmK,MAEP5d,EAAIqqC,OAAOpqC,OAAQD,IAC1BgiB,MAAQqoB,OAAQrqC,GAEVgiB,SAAWqoB,OAAQrqC,KAAQgiB,OAChCqoB,OAAO7nC,OAAQxC,IAAK,EAIhBqqC,QAAOpqC,QACZwT,OAAOsO,GAAGH,OAEXjE,MAAQjR,QAGT+G,OAAOsO,GAAGC,MAAQ,SAAUA,OAC3BvO,OAAO42B,OAAOxiC,KAAMma,OACfA,QACJvO,OAAOsO,GAAG5B,QAEV1M,OAAO42B,OAAO92B,OAIhBE,OAAOsO,GAAG8oB,SAAW,GAErBp3B,OAAOsO,GAAG5B,MAAQ,WACXgpB,UACLA,QAAU2B,YAAar3B,OAAOsO,GAAGhB,KAAMtN,OAAOsO,GAAG8oB,YAInDp3B,OAAOsO,GAAGH,KAAO,WAChBmpB,cAAe5B,SACfA,QAAU,MAGX11B,OAAOsO,GAAG8nB,QACTmB,KAAM,IACNC,KAAM,IAEN/M,SAAU,KAMXzqB,OAAOxS,GAAGiqC,MAAQ,SAAUC,KAAM76B,MAIjC,MAHA66B,MAAO13B,OAAOsO,GAAKtO,OAAOsO,GAAG8nB,OAAQsB,OAAUA,KAAOA,KACtD76B,KAAOA,MAAQ,KAER9E,KAAK2T,MAAO7O,KAAM,SAAU8lB,KAAMvX,OACxC,GAAIusB,SAAUxhC,WAAYwsB,KAAM+U,KAChCtsB,OAAM+C,KAAO,WACZypB,aAAcD,aAMjB,WAEC,GAAIra,OAAOvH,IAAKP,OAAQW,EAAGggB,GAG3BpgB,KAAMnoB,SAASuR,cAAe,OAC9B4W,IAAIvW,aAAc,YAAa,KAC/BuW,IAAI1P,UAAY,qEAChB8P,EAAIJ,IAAIloB,qBAAqB,KAAM,GAGnC2nB,OAAS5nB,SAASuR,cAAc,UAChCg3B,IAAM3gB,OAAO5V,YAAahS,SAASuR,cAAc,WACjDme,MAAQvH,IAAIloB,qBAAqB,SAAU,GAE3CsoB,EAAEvP,MAAM0f,QAAU,UAGlBljB,QAAQy0B,gBAAoC,MAAlB9hB,IAAIiH,UAI9B5Z,QAAQwD,MAAQ,MAAMvW,KAAM8lB,EAAEnlB,aAAa,UAI3CoS,QAAQ00B,eAA4C,OAA3B3hB,EAAEnlB,aAAa,QAGxCoS,QAAQ20B,UAAYza,MAAMjwB,MAI1B+V,QAAQ40B,YAAc7B,IAAI3vB,SAG1BpD,QAAQ60B,UAAYrqC,SAASuR,cAAc,QAAQ84B,QAInDziB,OAAOiL,UAAW,EAClBrd,QAAQ80B,aAAe/B,IAAI1V,SAI3BnD,MAAQ1vB,SAASuR,cAAe,SAChCme,MAAM9d,aAAc,QAAS,IAC7B4D,QAAQka,MAA0C,KAAlCA,MAAMtsB,aAAc,SAGpCssB,MAAMjwB,MAAQ,IACdiwB,MAAM9d,aAAc,OAAQ,SAC5B4D,QAAQ+0B,WAA6B,MAAhB7a,MAAMjwB,QAI5B,IAAI+qC,SAAU,KAEdp4B,QAAOxS,GAAGwV,QACTkG,IAAK,SAAU7b,OACd,GAAI+d,OAAO7P,IAAKxP,WACf6U,KAAO7I,KAAK,EAEb,EAAA,GAAMrK,UAAUlB,OAsBhB,MAFAT,YAAaiU,OAAOjU,WAAYsB,OAEzB0K,KAAK3L,KAAK,SAAUG,GAC1B,GAAI2c,IAEmB,KAAlBnR,KAAKuI,WAKT4I,IADInd,WACEsB,MAAMnB,KAAM6L,KAAMxL,EAAGyT,OAAQjI,MAAOmR,OAEpC7b,MAIK,MAAP6b,IACJA,IAAM,GACoB,gBAARA,KAClBA,KAAO,GACIlJ,OAAO7T,QAAS+c,OAC3BA,IAAMlJ,OAAOhQ,IAAKkZ,IAAK,SAAU7b,OAChC,MAAgB,OAATA,MAAgB,GAAKA,MAAQ,MAItC+d,MAAQpL,OAAOq4B,SAAUtgC,KAAK8E,OAAUmD,OAAOq4B,SAAUtgC,KAAKsM,SAAStC,eAGjEqJ,OAAW,OAASA,QAA8CnS,SAApCmS,MAAM4lB,IAAKj5B,KAAMmR,IAAK,WACzDnR,KAAK1K,MAAQ6b,OAjDd,IAAKtI,KAGJ,MAFAwK,OAAQpL,OAAOq4B,SAAUz3B,KAAK/D,OAAUmD,OAAOq4B,SAAUz3B,KAAKyD,SAAStC,eAElEqJ,OAAS,OAASA,QAAgDnS,UAAtCsC,IAAM6P,MAAMzP,IAAKiF,KAAM,UAChDrF,KAGRA,IAAMqF,KAAKvT,MAEW,gBAARkO,KAEbA,IAAIjL,QAAQ8nC,QAAS,IAEd,MAAP78B,IAAc,GAAKA,SA0CxByE,OAAOgD,QACNq1B,UACCzJ,QACCjzB,IAAK,SAAUiF,MACd,GAAIsI,KAAMlJ,OAAOgF,KAAKC,KAAMrE,KAAM,QAClC,OAAc,OAAPsI,IACNA,IAGAlJ,OAAOsG,KAAMtG,OAAOlG,KAAM8G,SAG7B4U,QACC7Z,IAAK,SAAUiF,MAYd,IAXA,GAAIvT,OAAOuhC,OACVv2B,QAAUuI,KAAKvI,QACfxG,MAAQ+O,KAAK8f,cACboN,IAAoB,eAAdltB,KAAK/D,MAAiC,EAARhL,MACpCyW,OAASwlB,IAAM,QACfjlB,IAAMilB,IAAMj8B,MAAQ,EAAIwG,QAAQ7L,OAChCD,EAAY,EAARsF,MACHgX,IACAilB,IAAMj8B,MAAQ,EAGJgX,IAAJtc,EAASA,IAIhB,GAHAqiC,OAASv2B,QAAS9L,IAGXqiC,OAAOpoB,UAAYja,IAAMsF,SAE5BuR,QAAQ80B,aAAetJ,OAAOnO,SAA+C,OAApCmO,OAAO59B,aAAa,gBAC5D49B,OAAO19B,WAAWuvB,WAAazgB,OAAOqE,SAAUuqB,OAAO19B,WAAY,aAAiB,CAMxF,GAHA7D,MAAQ2S,OAAQ4uB,QAAS1lB,MAGpB4kB,IACJ,MAAOzgC,MAIRib,QAAOlU,KAAM/G,OAIf,MAAOib,SAGR0oB,IAAK,SAAUpwB,KAAMvT,OAMpB,IALA,GAAIirC,WAAW1J,OACdv2B,QAAUuI,KAAKvI,QACfiQ,OAAStI,OAAOyT,UAAWpmB,OAC3Bd,EAAI8L,QAAQ7L,OAELD,KAGP,GAFAqiC,OAASv2B,QAAS9L,GAEbyT,OAAOe,QAASf,OAAOq4B,SAASzJ,OAAOjzB,IAAKizB,QAAUtmB,SAAY,EAMtE,IACCsmB,OAAOpoB,SAAW8xB,WAAY,EAE7B,MAAQ/2B,GAGTqtB,OAAO2J,iBAIR3J,QAAOpoB,UAAW,CASpB,OAJM8xB,aACL13B,KAAK8f,cAAgB,IAGfroB,aAOX2H,OAAO5T,MAAO,QAAS,YAAc,WACpC4T,OAAOq4B,SAAUtgC,OAChBi5B,IAAK,SAAUpwB,KAAMvT,OACpB,MAAK2S,QAAO7T,QAASkB,OACXuT,KAAK8D,QAAU1E,OAAOe,QAASf,OAAOY,MAAMsI,MAAO7b,QAAW,EADxE,SAKI+V,QAAQ20B,UACb/3B,OAAOq4B,SAAUtgC,MAAO4D,IAAM,SAAUiF,MAGvC,MAAsC,QAA/BA,KAAK5P,aAAa,SAAoB,KAAO4P,KAAKvT,SAQ5D,IAAImrC,UAAUC,SACbxiB,WAAajW,OAAOoe,KAAKnI,WACzByiB,YAAc,0BACdb,gBAAkBz0B,QAAQy0B,gBAC1Bc,YAAcv1B,QAAQka,KAEvBtd,QAAOxS,GAAGwV,QACTiC,KAAM,SAAUhW,KAAM5B,OACrB,MAAO+5B,QAAQrvB,KAAMiI,OAAOiF,KAAMhW,KAAM5B,MAAOK,UAAUlB,OAAS,IAGnEosC,WAAY,SAAU3pC,MACrB,MAAO8I,MAAK3L,KAAK,WAChB4T,OAAO44B,WAAY7gC,KAAM9I,WAK5B+Q,OAAOgD,QACNiC,KAAM,SAAUrE,KAAM3R,KAAM5B,OAC3B,GAAI+d,OAAO7P,IACVs9B,MAAQj4B,KAAKN,QAGd,IAAMM,MAAkB,IAAVi4B,OAAyB,IAAVA,OAAyB,IAAVA,MAK5C,aAAYj4B,MAAK5P,eAAiBkT,aAC1BlE,OAAOpT,KAAMgU,KAAM3R,KAAM5B,QAKlB,IAAVwrC,OAAgB74B,OAAOiiB,SAAUrhB,QACrC3R,KAAOA,KAAK8S,cACZqJ,MAAQpL,OAAO84B,UAAW7pC,QACvB+Q,OAAOoe,KAAKzhB,MAAMof,KAAK1rB,KAAMpB,MAASwpC,SAAWD,WAGtCv/B,SAAV5L,MAaO+d,OAAS,OAASA,QAA6C,QAAnC7P,IAAM6P,MAAMzP,IAAKiF,KAAM3R,OACvDsM,KAGPA,IAAMyE,OAAOgF,KAAKC,KAAMrE,KAAM3R,MAGhB,MAAPsM,IACNtC,OACAsC,KApBc,OAAVlO,MAGO+d,OAAS,OAASA,QAAoDnS,UAA1CsC,IAAM6P,MAAM4lB,IAAKpwB,KAAMvT,MAAO4B,OAC9DsM,KAGPqF,KAAKpB,aAAcvQ,KAAM5B,MAAQ,IAC1BA,WAPP2S,QAAO44B,WAAYh4B,KAAM3R,QAuB5B2pC,WAAY,SAAUh4B,KAAMvT,OAC3B,GAAI4B,MAAM8pC,SACTxsC,EAAI,EACJysC,UAAY3rC,OAASA,MAAMsP,MAAO2E,UAEnC,IAAK03B,WAA+B,IAAlBp4B,KAAKN,SACtB,KAASrR,KAAO+pC,UAAUzsC,MACzBwsC,SAAW/4B,OAAOi5B,QAAShqC,OAAUA,KAGhC+Q,OAAOoe,KAAKzhB,MAAMof,KAAK1rB,KAAMpB,MAE5B0pC,aAAed,kBAAoBa,YAAYroC,KAAMpB,MACzD2R,KAAMm4B,WAAa,EAInBn4B,KAAMZ,OAAOiD,UAAW,WAAahU,OACpC2R,KAAMm4B,WAAa,EAKrB/4B,OAAOiF,KAAMrE,KAAM3R,KAAM,IAG1B2R,KAAKwE,gBAAiByyB,gBAAkB5oC,KAAO8pC,WAKlDD,WACCj8B,MACCm0B,IAAK,SAAUpwB,KAAMvT,OACpB,IAAM+V,QAAQ+0B,YAAwB,UAAV9qC,OAAqB2S,OAAOqE,SAASzD,KAAM,SAAW,CAGjF,GAAIsI,KAAMtI,KAAKvT,KAKf,OAJAuT,MAAKpB,aAAc,OAAQnS,OACtB6b,MACJtI,KAAKvT,MAAQ6b,KAEP7b,YAQZorC,UACCzH,IAAK,SAAUpwB,KAAMvT,MAAO4B,MAa3B,MAZK5B,UAAU,EAEd2S,OAAO44B,WAAYh4B,KAAM3R,MACd0pC,aAAed,kBAAoBa,YAAYroC,KAAMpB,MAEhE2R,KAAKpB,cAAeq4B,iBAAmB73B,OAAOi5B,QAAShqC,OAAUA,KAAMA,MAIvE2R,KAAMZ,OAAOiD,UAAW,WAAahU,OAAW2R,KAAM3R,OAAS,EAGzDA,OAKT+Q,OAAO5T,KAAM4T,OAAOoe,KAAKzhB,MAAMof,KAAK7uB,OAAOyP,MAAO,QAAU,SAAUpQ,EAAG0C,MAExE,GAAIiqC,QAASjjB,WAAYhnB,OAAU+Q,OAAOgF,KAAKC,IAE/CgR,YAAYhnB,MAAS0pC,aAAed,kBAAoBa,YAAYroC,KAAMpB,MACzE,SAAU2R,KAAM3R,KAAMgrB,OACrB,GAAI1e,KAAKuK,MAUT,OATMmU,SAELnU,OAASmQ,WAAYhnB,MACrBgnB,WAAYhnB,MAASsM,IACrBA,IAAqC,MAA/B29B,OAAQt4B,KAAM3R,KAAMgrB,OACzBhrB,KAAK8S,cACL,KACDkU,WAAYhnB,MAAS6W,QAEfvK,KAER,SAAUqF,KAAM3R,KAAMgrB,OACrB,MAAMA,OAAN,OACQrZ,KAAMZ,OAAOiD,UAAW,WAAahU,OAC3CA,KAAK8S,cACL,QAMC42B,aAAgBd,kBACrB73B,OAAO84B,UAAUzrC,OAChB2jC,IAAK,SAAUpwB,KAAMvT,MAAO4B,MAC3B,MAAK+Q,QAAOqE,SAAUzD,KAAM,cAE3BA,KAAK6F,aAAepZ,OAGbmrC,UAAYA,SAASxH,IAAKpwB,KAAMvT,MAAO4B,SAO5C4oC,kBAILW,UACCxH,IAAK,SAAUpwB,KAAMvT,MAAO4B,MAE3B,GAAIsM,KAAMqF,KAAKyc,iBAAkBpuB,KAUjC,OATMsM,MACLqF,KAAKu4B,iBACH59B,IAAMqF,KAAKkE,cAAcs0B,gBAAiBnqC,OAI7CsM,IAAIlO,MAAQA,OAAS,GAGP,UAAT4B,MAAoB5B,QAAUuT,KAAK5P,aAAc/B,MAC9C5B,MADR,SAOF4oB,WAAW5nB,GAAK4nB,WAAWhnB,KAAOgnB,WAAWojB,OAC5C,SAAUz4B,KAAM3R,KAAMgrB,OACrB,GAAI1e,IACJ,OAAM0e,OAAN,QACS1e,IAAMqF,KAAKyc,iBAAkBpuB,QAAyB,KAAdsM,IAAIlO,MACnDkO,IAAIlO,MACJ,MAKJ2S,OAAOq4B,SAASzX,QACfjlB,IAAK,SAAUiF,KAAM3R,MACpB,GAAIsM,KAAMqF,KAAKyc,iBAAkBpuB,KACjC,OAAKsM,MAAOA,IAAIW,UACRX,IAAIlO,MADZ,QAID2jC,IAAKwH,SAASxH,KAKfhxB,OAAO84B,UAAUQ,iBAChBtI,IAAK,SAAUpwB,KAAMvT,MAAO4B,MAC3BupC,SAASxH,IAAKpwB,KAAgB,KAAVvT,OAAe,EAAQA,MAAO4B,QAMpD+Q,OAAO5T,MAAO,QAAS,UAAY,SAAUG,EAAG0C,MAC/C+Q,OAAO84B,UAAW7pC,OACjB+hC,IAAK,SAAUpwB,KAAMvT,OACpB,MAAe,KAAVA,OACJuT,KAAKpB,aAAcvQ,KAAM,QAClB5B,OAFR,YASE+V,QAAQwD,QACb5G,OAAO84B,UAAUlyB,OAChBjL,IAAK,SAAUiF,MAId,MAAOA,MAAKgG,MAAM0f,SAAWrtB,QAE9B+3B,IAAK,SAAUpwB,KAAMvT,OACpB,MAASuT,MAAKgG,MAAM0f,QAAUj5B,MAAQ,KAQzC,IAAIksC,YAAa,6CAChBC,WAAa,eAEdx5B,QAAOxS,GAAGwV,QACTpW,KAAM,SAAUqC,KAAM5B,OACrB,MAAO+5B,QAAQrvB,KAAMiI,OAAOpT,KAAMqC,KAAM5B,MAAOK,UAAUlB,OAAS,IAGnEitC,WAAY,SAAUxqC,MAErB,MADAA,MAAO+Q,OAAOi5B,QAAShqC,OAAUA,KAC1B8I,KAAK3L,KAAK,WAEhB,IACC2L,KAAM9I,MAASgK,aACRlB,MAAM9I,MACZ,MAAOT,UAKZwR,OAAOgD,QACNi2B,SACCS,MAAO,UACPC,QAAS,aAGV/sC,KAAM,SAAUgU,KAAM3R,KAAM5B,OAC3B,GAAIkO,KAAK6P,MAAOwuB,OACff,MAAQj4B,KAAKN,QAGd,IAAMM,MAAkB,IAAVi4B,OAAyB,IAAVA,OAAyB,IAAVA,MAY5C,MARAe,QAAmB,IAAVf,QAAgB74B,OAAOiiB,SAAUrhB,MAErCg5B,SAEJ3qC,KAAO+Q,OAAOi5B,QAAShqC,OAAUA,KACjCmc,MAAQpL,OAAOk1B,UAAWjmC,OAGZgK,SAAV5L,MACG+d,OAAS,OAASA,QAAoDnS,UAA1CsC,IAAM6P,MAAM4lB,IAAKpwB,KAAMvT,MAAO4B,OAChEsM,IACEqF,KAAM3R,MAAS5B,MAGX+d,OAAS,OAASA,QAA6C,QAAnC7P,IAAM6P,MAAMzP,IAAKiF,KAAM3R,OACzDsM,IACAqF,KAAM3R,OAITimC,WACC1U,UACC7kB,IAAK,SAAUiF,MAId,GAAIi5B,UAAW75B,OAAOgF,KAAKC,KAAMrE,KAAM,WAEvC,OAAOi5B,UACNC,SAAUD,SAAU,IACpBN,WAAWlpC,KAAMuQ,KAAKyD,WAAcm1B,WAAWnpC,KAAMuQ,KAAKyD,WAAczD,KAAK2f,KAC5E,EACA,QAQAnd,QAAQ00B,gBAEb93B,OAAO5T,MAAO,OAAQ,OAAS,SAAUG,EAAG0C,MAC3C+Q,OAAOk1B,UAAWjmC,OACjB0M,IAAK,SAAUiF,MACd,MAAOA,MAAK5P,aAAc/B,KAAM,OAS9BmU,QAAQ40B,cACbh4B,OAAOk1B,UAAU1uB,UAChB7K,IAAK,SAAUiF,MACd,GAAIkc,QAASlc,KAAK1P,UAUlB,OARK4rB,UACJA,OAAO4D,cAGF5D,OAAO5rB,YACX4rB,OAAO5rB,WAAWwvB,eAGb,QAKV1gB,OAAO5T,MACN,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACE,WACF4T,OAAOi5B,QAASlhC,KAAKgK,eAAkBhK,OAIlCqL,QAAQ60B,UACbj4B,OAAOi5B,QAAQhB,QAAU,WAM1B,IAAI8B,QAAS,aAEb/5B,QAAOxS,GAAGwV,QACTg3B,SAAU,SAAU3sC,OACnB,GAAI4sC,SAASr5B,KAAMK,IAAKi5B,MAAO3qC,EAAG4qC,WACjC5tC,EAAI,EACJqmB,IAAM7a,KAAKvL,OACX4tC,QAA2B,gBAAV/sC,QAAsBA,KAExC,IAAK2S,OAAOjU,WAAYsB,OACvB,MAAO0K,MAAK3L,KAAK,SAAUmD,GAC1ByQ,OAAQjI,MAAOiiC,SAAU3sC,MAAMnB,KAAM6L,KAAMxI,EAAGwI,KAAKilB,aAIrD,IAAKod,QAIJ,IAFAH,SAAY5sC,OAAS,IAAKsP,MAAO2E,eAErBsR,IAAJrmB,EAASA,IAOhB,GANAqU,KAAO7I,KAAMxL,GACb0U,IAAwB,IAAlBL,KAAKN,WAAoBM,KAAKoc,WACjC,IAAMpc,KAAKoc,UAAY,KAAM1sB,QAASypC,OAAQ,KAChD,KAGU,CAEV,IADAxqC,EAAI,EACK2qC,MAAQD,QAAQ1qC,MACnB0R,IAAInP,QAAS,IAAMooC,MAAQ,KAAQ,IACvCj5B,KAAOi5B,MAAQ,IAKjBC,YAAan6B,OAAOsG,KAAMrF,KACrBL,KAAKoc,YAAcmd,aACvBv5B,KAAKoc,UAAYmd,YAMrB,MAAOpiC,OAGRsiC,YAAa,SAAUhtC,OACtB,GAAI4sC,SAASr5B,KAAMK,IAAKi5B,MAAO3qC,EAAG4qC,WACjC5tC,EAAI,EACJqmB,IAAM7a,KAAKvL,OACX4tC,QAA+B,IAArB1sC,UAAUlB,QAAiC,gBAAVa,QAAsBA,KAElE,IAAK2S,OAAOjU,WAAYsB,OACvB,MAAO0K,MAAK3L,KAAK,SAAUmD,GAC1ByQ,OAAQjI,MAAOsiC,YAAahtC,MAAMnB,KAAM6L,KAAMxI,EAAGwI,KAAKilB,aAGxD,IAAKod,QAGJ,IAFAH,SAAY5sC,OAAS,IAAKsP,MAAO2E,eAErBsR,IAAJrmB,EAASA,IAQhB,GAPAqU,KAAO7I,KAAMxL,GAEb0U,IAAwB,IAAlBL,KAAKN,WAAoBM,KAAKoc,WACjC,IAAMpc,KAAKoc,UAAY,KAAM1sB,QAASypC,OAAQ,KAChD,IAGU,CAEV,IADAxqC,EAAI,EACK2qC,MAAQD,QAAQ1qC,MAExB,KAAQ0R,IAAInP,QAAS,IAAMooC,MAAQ,MAAS,GAC3Cj5B,IAAMA,IAAI3Q,QAAS,IAAM4pC,MAAQ,IAAK,IAKxCC,YAAa9sC,MAAQ2S,OAAOsG,KAAMrF,KAAQ,GACrCL,KAAKoc,YAAcmd,aACvBv5B,KAAKoc,UAAYmd,YAMrB,MAAOpiC,OAGRuiC,YAAa,SAAUjtC,MAAOktC,UAC7B,GAAI19B,YAAcxP,MAElB,OAAyB,iBAAbktC,WAAmC,WAAT19B,KAC9B09B,SAAWxiC,KAAKiiC,SAAU3sC,OAAU0K,KAAKsiC,YAAahtC,OAGzD2S,OAAOjU,WAAYsB,OAChB0K,KAAK3L,KAAK,SAAUG,GAC1ByT,OAAQjI,MAAOuiC,YAAajtC,MAAMnB,KAAK6L,KAAMxL,EAAGwL,KAAKilB,UAAWud,UAAWA,YAItExiC,KAAK3L,KAAK,WAChB,GAAc,WAATyQ,KAOJ,IALA,GAAImgB,WACHzwB,EAAI,EACJ61B,KAAOpiB,OAAQjI,MACfyiC,WAAantC,MAAMsP,MAAO2E,eAElB0b,UAAYwd,WAAYjuC,MAE3B61B,KAAKqY,SAAUzd,WACnBoF,KAAKiY,YAAard,WAElBoF,KAAK4X,SAAUhd,eAKNngB,QAASqH,cAAyB,YAATrH,OAC/B9E,KAAKilB,WAEThd,OAAOuF,MAAOxN,KAAM,gBAAiBA,KAAKilB,WAO3CjlB,KAAKilB,UAAYjlB,KAAKilB,WAAa3vB,SAAU,EAAQ,GAAK2S,OAAOuF,MAAOxN,KAAM,kBAAqB,OAKtG0iC,SAAU,SAAU7oB,UAInB,IAHA,GAAIoL,WAAY,IAAMpL,SAAW,IAChCrlB,EAAI,EACJoZ,EAAI5N,KAAKvL,OACEmZ,EAAJpZ,EAAOA,IACd,GAA0B,IAArBwL,KAAKxL,GAAG+T,WAAmB,IAAMvI,KAAKxL,GAAGywB,UAAY,KAAK1sB,QAAQypC,OAAQ,KAAKjoC,QAASkrB,YAAe,EAC3G,OAAO,CAIT,QAAO,KAUThd,OAAO5T,KAAM,0MAEqD8B,MAAM,KAAM,SAAU3B,EAAG0C,MAG1F+Q,OAAOxS,GAAIyB,MAAS,SAAUgO,KAAMzP,IACnC,MAAOE,WAAUlB,OAAS,EACzBuL,KAAK1E,GAAIpE,KAAM,KAAMgO,KAAMzP,IAC3BuK,KAAK8xB,QAAS56B,SAIjB+Q,OAAOxS,GAAGwV,QACT03B,MAAO,SAAUC,OAAQC,OACxB,MAAO7iC,MAAKk1B,WAAY0N,QAASzN,WAAY0N,OAASD,SAGvDptC,KAAM,SAAUm7B,MAAOzrB,KAAMzP,IAC5B,MAAOuK,MAAK1E,GAAIq1B,MAAO,KAAMzrB,KAAMzP,KAEpCqtC,OAAQ,SAAUnS,MAAOl7B,IACxB,MAAOuK,MAAKkuB,IAAKyC,MAAO,KAAMl7B,KAG/BstC,SAAU,SAAUlpB,SAAU8W,MAAOzrB,KAAMzP,IAC1C,MAAOuK,MAAK1E,GAAIq1B,MAAO9W,SAAU3U,KAAMzP,KAExCutC,WAAY,SAAUnpB,SAAU8W,MAAOl7B,IAEtC,MAA4B,KAArBE,UAAUlB,OAAeuL,KAAKkuB,IAAKrU,SAAU,MAAS7Z,KAAKkuB,IAAKyC,MAAO9W,UAAY,KAAMpkB,MAKlG,IAAIwtC,OAAQh7B,OAAOmK,MAEf8wB,OAAS,KAITC,aAAe,kIAEnBl7B,QAAOiC,UAAY,SAAUhF,MAE5B,GAAKsB,OAAO48B,MAAQ58B,OAAO48B,KAAKC,MAG/B,MAAO78B,QAAO48B,KAAKC,MAAOn+B,KAAO,GAGlC,IAAIo+B,iBACHC,MAAQ,KACRC,IAAMv7B,OAAOsG,KAAMrJ,KAAO,GAI3B,OAAOs+B,OAAQv7B,OAAOsG,KAAMi1B,IAAIjrC,QAAS4qC,aAAc,SAAUrZ,MAAO2Z,MAAOC,KAAMh0B,OAQpF,MALK4zB,kBAAmBG,QACvBF,MAAQ,GAIM,IAAVA,MACGzZ,OAIRwZ,gBAAkBI,MAAQD,MAM1BF,QAAU7zB,OAASg0B,KAGZ,OAELC,SAAU,UAAYH,OACxBv7B,OAAOzM,MAAO,iBAAmB0J,OAKnC+C,OAAO27B,SAAW,SAAU1+B,MAC3B,GAAIqa,KAAK1G,GACT,KAAM3T,MAAwB,gBAATA,MACpB,MAAO,KAER,KACMsB,OAAOq9B,WACXhrB,IAAM,GAAIgrB,WACVtkB,IAAM1G,IAAIirB,gBAAiB5+B,KAAM,cAEjCqa,IAAM,GAAI/F,eAAe,oBACzB+F,IAAIhY,MAAQ,QACZgY,IAAIwkB,QAAS7+B,OAEb,MAAOzO,GACR8oB,IAAMre,OAKP,MAHMqe,MAAQA,IAAIjQ,kBAAmBiQ,IAAIzpB,qBAAsB,eAAgBrB,QAC9EwT,OAAOzM,MAAO,gBAAkB0J,MAE1Bqa,IAIR,IAECykB,cACAC,aAEAC,MAAQ,OACRC,IAAM,gBACNC,SAAW,gCAEXC,eAAiB,4DACjBC,WAAa,iBACbC,UAAY,QACZC,KAAO,4DAWPC,cAOAhtB,cAGAitB,SAAW,KAAKhsC,OAAO,IAIxB,KACCurC,aAAe7gC,SAASolB,KACvB,MAAO/xB,GAGRwtC,aAAepuC,SAASuR,cAAe,KACvC68B,aAAazb,KAAO,GACpByb,aAAeA,aAAazb,KAI7Bwb,aAAeQ,KAAKniC,KAAM4hC,aAAaj6B,mBAoOvC/B,OAAOgD,QAGN05B,OAAQ,EAGRC,gBACAC,QAEAhtB,cACCzd,IAAK6pC,aACLn/B,KAAM,MACNggC,QAAST,eAAe/rC,KAAM0rC,aAAc,IAC5CjwC,QAAQ,EACRgxC,aAAa,EACbx9B,OAAO,EACPy9B,YAAa,mDAabC,SACCnH,IAAK4G,SACL3iC,KAAM,aACN82B,KAAM,YACNtZ,IAAK,4BACL2lB,KAAM,qCAGP/sB,UACCoH,IAAK,MACLsZ,KAAM,OACNqM,KAAM,QAGPnsB,gBACCwG,IAAK,cACLxd,KAAM,eACNmjC,KAAM,gBAKP5sB,YAGC6sB,SAAUzgB,OAGV0gB,aAAa,EAGbC,YAAap9B,OAAOiC,UAGpBo7B,WAAYr9B,OAAO27B,UAOpBhsB,aACCxd,KAAK,EACLlB,SAAS,IAOXqsC,UAAW,SAAUrwC,OAAQswC,UAC5B,MAAOA,UAGN9tB,WAAYA,WAAYxiB,OAAQ+S,OAAO4P,cAAgB2tB,UAGvD9tB,WAAYzP,OAAO4P,aAAc3iB,SAGnCuwC,cAAe7uB,4BAA6B6tB,YAC5CiB,cAAe9uB,4BAA6Ba,YAG5CkuB,KAAM,SAAUvrC,IAAKkG,SAoRpB,QAASkU,MAAMoxB,OAAQC,iBAAkB9tB,UAAW+tB,SACnD,GAAIrtB,WAAWstB,QAASvqC,MAAOgd,SAAUwtB,SACxCC,WAAaJ,gBAGC,KAAV5sB,QAKLA,MAAQ,EAGHitB,cACJrG,aAAcqG,cAKfC,UAAYjlC,OAGZklC,sBAAwBN,SAAW,GAGnC3uB,MAAMnS,WAAa4gC,OAAS,EAAI,EAAI,EAGpCntB,UAAYmtB,QAAU,KAAgB,IAATA,QAA2B,MAAXA,OAGxC7tB,YACJS,SAAWV,oBAAqBvS,EAAG4R,MAAOY,YAI3CS,SAAWD,YAAahT,EAAGiT,SAAUrB,MAAOsB,WAGvCA,WAGClT,EAAE8gC,aACNL,SAAW7uB,MAAMkB,kBAAkB,iBAC9B2tB,WACJ/9B,OAAO28B,aAAc0B,UAAaN,UAEnCA,SAAW7uB,MAAMkB,kBAAkB,QAC9B2tB,WACJ/9B,OAAO48B,KAAMyB,UAAaN,WAKZ,MAAXJ,QAA6B,SAAXrgC,EAAET,KACxBmhC,WAAa,YAGS,MAAXL,OACXK,WAAa,eAIbA,WAAaztB,SAASS,MACtB8sB,QAAUvtB,SAAStT,KACnB1J,MAAQgd,SAAShd,MACjBid,WAAajd,SAKdA,MAAQyqC,YACHL,QAAWK,aACfA,WAAa,QACC,EAATL,SACJA,OAAS,KAMZzuB,MAAMyuB,OAASA,OACfzuB,MAAM8uB,YAAeJ,kBAAoBI,YAAe,GAGnDxtB,UACJpD,SAASW,YAAauwB,iBAAmBR,QAASE,WAAY9uB,QAE9D9B,SAASiB,WAAYiwB,iBAAmBpvB,MAAO8uB,WAAYzqC,QAI5D2b,MAAMqvB,WAAYA,YAClBA,WAAatlC,OAERulC,aACJC,mBAAmB5U,QAASrZ,UAAY,cAAgB,aACrDtB,MAAO5R,EAAGkT,UAAYstB,QAAUvqC,QAIpCmrC,iBAAiBla,SAAU8Z,iBAAmBpvB,MAAO8uB,aAEhDQ,cACJC,mBAAmB5U,QAAS,gBAAkB3a,MAAO5R,MAE3C0C,OAAO08B,QAChB18B,OAAO2B,MAAMkoB,QAAQ,cA5XJ,gBAAR13B,OACXkG,QAAUlG,IACVA,IAAM8G,QAIPZ,QAAUA,WAEV,IACC28B,OAEAzoC,EAEA8xC,SAEAF,sBAEAF,aAGAO,YAEAN,UAEAS,gBAEArhC,EAAI0C,OAAOs9B,aAAejlC,SAE1BimC,gBAAkBhhC,EAAErM,SAAWqM,EAE/BmhC,mBAAqBnhC,EAAErM,UAAaqtC,gBAAgBh+B,UAAYg+B,gBAAgBnsB,QAC/EnS,OAAQs+B,iBACRt+B,OAAO2B,MAERyL,SAAWpN,OAAOqN,WAClBqxB,iBAAmB1+B,OAAO0jB,UAAU,eAEpC6a,WAAajhC,EAAEihC,eAEfK,kBACAC,uBAEA7tB,MAAQ,EAER8tB,SAAW,WAEX5vB,OACCnS,WAAY,EAGZqT,kBAAmB,SAAUjT,KAC5B,GAAIR,MACJ,IAAe,IAAVqU,MAAc,CAClB,IAAM2tB,gBAEL,IADAA,mBACShiC,MAAQw/B,SAAS/hC,KAAM+jC,wBAC/BQ,gBAAiBhiC,MAAM,GAAGoF,eAAkBpF,MAAO,EAGrDA,OAAQgiC,gBAAiBxhC,IAAI4E,eAE9B,MAAgB,OAATpF,MAAgB,KAAOA,OAI/BoiC,sBAAuB,WACtB,MAAiB,KAAV/tB,MAAcmtB,sBAAwB,MAI9Ca,iBAAkB,SAAU/vC,KAAM5B,OACjC,GAAI4xC,OAAQhwC,KAAK8S,aAKjB,OAJMiP,SACL/hB,KAAO4vC,oBAAqBI,OAAUJ,oBAAqBI,QAAWhwC,KACtE2vC,eAAgB3vC,MAAS5B,OAEnB0K,MAIRmnC,iBAAkB,SAAUriC,MAI3B,MAHMmU,SACL1T,EAAE6S,SAAWtT,MAEP9E,MAIRwmC,WAAY,SAAUvuC,KACrB,GAAImvC,KACJ,IAAKnvC,IACJ,GAAa,EAARghB,MACJ,IAAMmuB,OAAQnvC,KAEbuuC,WAAYY,OAAWZ,WAAYY,MAAQnvC,IAAKmvC,WAIjDjwB,OAAMnD,OAAQ/b,IAAKkf,MAAMyuB,QAG3B,OAAO5lC,OAIRqnC,MAAO,SAAUpB,YAChB,GAAIqB,WAAYrB,YAAcc,QAK9B,OAJKZ,YACJA,UAAUkB,MAAOC,WAElB9yB,KAAM,EAAG8yB,WACFtnC,MAwCV,IAnCAqV,SAASY,QAASkB,OAAQT,SAAWiwB,iBAAiB34B,IACtDmJ,MAAM4uB,QAAU5uB,MAAM3C,KACtB2C,MAAM3b,MAAQ2b,MAAMR,KAMpBpR,EAAEnL,MAAUA,KAAOmL,EAAEnL,KAAO6pC,cAAiB,IAAK1rC,QAAS2rC,MAAO,IAAK3rC,QAASgsC,UAAWP,aAAc,GAAM,MAG/Gz+B,EAAET,KAAOxE,QAAQinC,QAAUjnC,QAAQwE,MAAQS,EAAEgiC,QAAUhiC,EAAET,KAGzDS,EAAEyR,UAAY/O,OAAOsG,KAAMhJ,EAAEwR,UAAY,KAAM/M,cAAcpF,MAAO2E,aAAiB,IAG/D,MAAjBhE,EAAEiiC,cACNvK,MAAQuH,KAAKniC,KAAMkD,EAAEnL,IAAI4P,eACzBzE,EAAEiiC,eAAkBvK,OACjBA,MAAO,KAAQ+G,aAAc,IAAO/G,MAAO,KAAQ+G,aAAc,KAChE/G,MAAO,KAAwB,UAAfA,MAAO,GAAkB,KAAO,WAC/C+G,aAAc,KAA+B,UAAtBA,aAAc,GAAkB,KAAO,UAK/Dz+B,EAAEL,MAAQK,EAAEw/B,aAAiC,gBAAXx/B,GAAEL,OACxCK,EAAEL,KAAO+C,OAAO+uB,MAAOzxB,EAAEL,KAAMK,EAAE4T,cAIlCjC,8BAA+ButB,WAAYl/B,EAAGjF,QAAS6W,OAGxC,IAAV8B,MACJ,MAAO9B,MAKRsvB,aAAcx+B,OAAO2B,OAASrE,EAAExR,OAG3B0yC,aAAmC,IAApBx+B,OAAO08B,UAC1B18B,OAAO2B,MAAMkoB,QAAQ,aAItBvsB,EAAET,KAAOS,EAAET,KAAKmL,cAGhB1K,EAAEkiC,YAAcnD,WAAWhsC,KAAMiN,EAAET,MAInCwhC,SAAW/gC,EAAEnL,IAGPmL,EAAEkiC,aAGFliC,EAAEL,OACNohC,SAAa/gC,EAAEnL,MAAS8oC,OAAO5qC,KAAMguC,UAAa,IAAM,KAAQ/gC,EAAEL,WAE3DK,GAAEL,MAILK,EAAEqF,SAAU,IAChBrF,EAAEnL,IAAM+pC,IAAI7rC,KAAMguC,UAGjBA,SAAS/tC,QAAS4rC,IAAK,OAASlB,SAGhCqD,UAAapD,OAAO5qC,KAAMguC,UAAa,IAAM,KAAQ,KAAOrD,UAK1D19B,EAAE8gC,aACDp+B,OAAO28B,aAAc0B,WACzBnvB,MAAM8vB,iBAAkB,oBAAqBh/B,OAAO28B,aAAc0B,WAE9Dr+B,OAAO48B,KAAMyB,WACjBnvB,MAAM8vB,iBAAkB,gBAAiBh/B,OAAO48B,KAAMyB,aAKnD/gC,EAAEL,MAAQK,EAAEkiC,YAAcliC,EAAEy/B,eAAgB,GAAS1kC,QAAQ0kC,cACjE7tB,MAAM8vB,iBAAkB,eAAgB1hC,EAAEy/B,aAI3C7tB,MAAM8vB,iBACL,SACA1hC,EAAEyR,UAAW,IAAOzR,EAAE0/B,QAAS1/B,EAAEyR,UAAU,IAC1CzR,EAAE0/B,QAAS1/B,EAAEyR,UAAU,KAA8B,MAArBzR,EAAEyR,UAAW,GAAc,KAAO0tB,SAAW,WAAa,IAC1Fn/B,EAAE0/B,QAAS,KAIb,KAAMzwC,IAAK+Q,GAAEugC,QACZ3uB,MAAM8vB,iBAAkBzyC,EAAG+Q,EAAEugC,QAAStxC,GAIvC,IAAK+Q,EAAEmiC,aAAgBniC,EAAEmiC,WAAWvzC,KAAMoyC,gBAAiBpvB,MAAO5R,MAAQ,GAAmB,IAAV0T,OAElF,MAAO9B,OAAMkwB,OAIdN,UAAW,OAGX,KAAMvyC,KAAOuxC,QAAS,EAAGvqC,MAAO,EAAGkb,SAAU,GAC5CS,MAAO3iB,GAAK+Q,EAAG/Q,GAOhB,IAHA2xC,UAAYjvB,8BAA+BO,WAAYlS,EAAGjF,QAAS6W,OAK5D,CACNA,MAAMnS,WAAa,EAGdyhC,aACJC,mBAAmB5U,QAAS,YAAc3a,MAAO5R,IAG7CA,EAAEgC,OAAShC,EAAEq6B,QAAU,IAC3BsG,aAAe9nC,WAAW,WACzB+Y,MAAMkwB,MAAM,YACV9hC,EAAEq6B,SAGN,KACC3mB,MAAQ,EACRktB,UAAUwB,KAAMd,eAAgBryB,MAC/B,MAAQ/d,GAET,KAAa,EAARwiB,OAIJ,KAAMxiB,EAHN+d,MAAM,GAAI/d,QArBZ+d,MAAM,GAAI,eA8IX,OAAO2C,QAGRywB,QAAS,SAAUxtC,IAAK8K,KAAM3B,UAC7B,MAAO0E,QAAOrE,IAAKxJ,IAAK8K,KAAM3B,SAAU,SAGzCskC,UAAW,SAAUztC,IAAKmJ,UACzB,MAAO0E,QAAOrE,IAAKxJ,IAAK8G,OAAWqC,SAAU,aAI/C0E,OAAO5T,MAAQ,MAAO,QAAU,SAAUG,EAAG+yC,QAC5Ct/B,OAAQs/B,QAAW,SAAUntC,IAAK8K,KAAM3B,SAAUuB,MAQjD,MANKmD,QAAOjU,WAAYkR,QACvBJ,KAAOA,MAAQvB,SACfA,SAAW2B,KACXA,KAAOhE,QAGD+G,OAAO09B,MACbvrC,IAAKA,IACL0K,KAAMyiC,OACNxwB,SAAUjS,KACVI,KAAMA,KACN6gC,QAASxiC,cAMZ0E,OAAOkxB,SAAW,SAAU/+B,KAC3B,MAAO6N,QAAO09B,MACbvrC,IAAKA,IACL0K,KAAM,MACNiS,SAAU,SACVxP,OAAO,EACPxT,QAAQ,EACR+zC,UAAU,KAKZ7/B,OAAOxS,GAAGwV,QACT88B,QAAS,SAAUlP,MAClB,GAAK5wB,OAAOjU,WAAY6kC,MACvB,MAAO74B,MAAK3L,KAAK,SAASG,GACzByT,OAAOjI,MAAM+nC,QAASlP,KAAK1kC,KAAK6L,KAAMxL,KAIxC,IAAKwL,KAAK,GAAK,CAEd,GAAIm4B,MAAOlwB,OAAQ4wB,KAAM74B,KAAK,GAAG+M,eAAgB4N,GAAG,GAAGM,OAAM,EAExDjb,MAAK,GAAG7G,YACZg/B,KAAKvwB,aAAc5H,KAAK,IAGzBm4B,KAAKlgC,IAAI,WAGR,IAFA,GAAI4Q,MAAO7I,KAEH6I,KAAKiE,YAA2C,IAA7BjE,KAAKiE,WAAWvE,UAC1CM,KAAOA,KAAKiE,UAGb,OAAOjE,QACL0vB,OAAQv4B,MAGZ,MAAOA,OAGRgoC,UAAW,SAAUnP,MACpB,MAAK5wB,QAAOjU,WAAY6kC,MAChB74B,KAAK3L,KAAK,SAASG,GACzByT,OAAOjI,MAAMgoC,UAAWnP,KAAK1kC,KAAK6L,KAAMxL,MAInCwL,KAAK3L,KAAK,WAChB,GAAIg2B,MAAOpiB,OAAQjI,MAClBmY,SAAWkS,KAAKlS,UAEZA,UAAS1jB,OACb0jB,SAAS4vB,QAASlP,MAGlBxO,KAAKkO,OAAQM,SAKhBV,KAAM,SAAUU,MACf,GAAI7kC,YAAaiU,OAAOjU,WAAY6kC,KAEpC,OAAO74B,MAAK3L,KAAK,SAASG,GACzByT,OAAQjI,MAAO+nC,QAAS/zC,WAAa6kC,KAAK1kC,KAAK6L,KAAMxL,GAAKqkC,SAI5DoP,OAAQ,WACP,MAAOjoC,MAAK+kB,SAAS1wB,KAAK,WACnB4T,OAAOqE,SAAUtM,KAAM,SAC5BiI,OAAQjI,MAAO84B,YAAa94B,KAAKqM,cAEhC2F,SAKL/J,OAAOoe,KAAKoD,QAAQnZ,OAAS,SAAUzH,MAGtC,MAAOA,MAAK0I,aAAe,GAAK1I,KAAK2I,cAAgB,IAClDnG,QAAQ6vB,yBACiE,UAAxEryB,KAAKgG,OAAShG,KAAKgG,MAAMG,SAAY/G,OAAOiH,IAAKrG,KAAM,aAG5DZ,OAAOoe,KAAKoD,QAAQye,QAAU,SAAUr/B,MACvC,OAAQZ,OAAOoe,KAAKoD,QAAQnZ,OAAQzH,MAMrC,IAAIs/B,KAAM,OACT/uB,SAAW,QACXgvB,MAAQ,SACRC,gBAAkB,wCAClBC,aAAe,oCAgChBrgC,QAAO+uB,MAAQ,SAAU5Y,EAAGjF,aAC3B,GAAItf,QACH0L,KACAyI,IAAM,SAAU5I,IAAK9P,OAEpBA,MAAQ2S,OAAOjU,WAAYsB,OAAUA,QAAqB,MAATA,MAAgB,GAAKA,MACtEiQ,EAAGA,EAAE9Q,QAAW8zC,mBAAoBnjC,KAAQ,IAAMmjC,mBAAoBjzC,OASxE,IALqB4L,SAAhBiY,cACJA,YAAclR,OAAO4P,cAAgB5P,OAAO4P,aAAasB,aAIrDlR,OAAO7T,QAASgqB,IAASA,EAAEhE,SAAWnS,OAAOiT,cAAekD,GAEhEnW,OAAO5T,KAAM+pB,EAAG,WACfpQ,IAAKhO,KAAK9I,KAAM8I,KAAK1K,aAMtB,KAAMuE,SAAUukB,GACflF,YAAarf,OAAQukB,EAAGvkB,QAAUsf,YAAanL,IAKjD,OAAOzI,GAAE5M,KAAM,KAAMJ,QAAS4vC,IAAK,MAGpClgC,OAAOxS,GAAGwV,QACTu9B,UAAW,WACV,MAAOvgC,QAAO+uB,MAAOh3B,KAAKyoC,mBAE3BA,eAAgB,WACf,MAAOzoC,MAAK/H,IAAI,WAEf,GAAIwQ,UAAWR,OAAOpT,KAAMmL,KAAM,WAClC,OAAOyI,UAAWR,OAAOyT,UAAWjT,UAAazI,OAEjD+I,OAAO,WACP,GAAIjE,MAAO9E,KAAK8E,IAEhB,OAAO9E,MAAK9I,OAAS+Q,OAAQjI,MAAOsqB,GAAI,cACvCge,aAAahwC,KAAM0H,KAAKsM,YAAe+7B,gBAAgB/vC,KAAMwM,QAC3D9E,KAAK2M,UAAYF,eAAenU,KAAMwM,SAEzC7M,IAAI,SAAUzD,EAAGqU,MACjB,GAAIsI,KAAMlJ,OAAQjI,MAAOmR,KAEzB,OAAc,OAAPA,IACN,KACAlJ,OAAO7T,QAAS+c,KACflJ,OAAOhQ,IAAKkZ,IAAK,SAAUA,KAC1B,OAASja,KAAM2R,KAAK3R,KAAM5B,MAAO6b,IAAI5Y,QAAS6vC,MAAO,YAEpDlxC,KAAM2R,KAAK3R,KAAM5B,MAAO6b,IAAI5Y,QAAS6vC,MAAO,WAC9CxkC,SAOLqE,OAAO4P,aAAa6wB,IAA+BxnC,SAAzBsF,OAAOgT,cAEhC,WAGC,OAAQxZ,KAAK8kC,SAQZ,wCAAwCxsC,KAAM0H,KAAK8E,OAEnDuU,qBAAuBE,mBAGzBF,iBAED,IAAIsvB,OAAQ,EACXC,gBACAC,aAAe5gC,OAAO4P,aAAa6wB,KAK/BliC,QAAOkB,aACXlB,OAAOkB,YAAa,WAAY,WAC/B,IAAM,GAAItC,OAAOwjC,cAChBA,aAAcxjC,KAAOlE,QAAW,KAMnCmK,QAAQy9B,OAASD,cAAkB,mBAAqBA,cACxDA,aAAex9B,QAAQs6B,OAASkD,aAG3BA,cAEJ5gC,OAAOy9B,cAAc,SAAUplC,SAE9B,IAAMA,QAAQknC,aAAen8B,QAAQy9B,KAAO,CAE3C,GAAIvlC,SAEJ,QACCokC,KAAM,SAAU7B,QAASpvB,UACxB,GAAIliB,GACHk0C,IAAMpoC,QAAQooC,MACdpyC,KAAOqyC,KAMR,IAHAD,IAAIhF,KAAMpjC,QAAQwE,KAAMxE,QAAQlG,IAAKkG,QAAQiH,MAAOjH,QAAQyoC,SAAUzoC,QAAQ+oB,UAGzE/oB,QAAQ0oC,UACZ,IAAMx0C,IAAK8L,SAAQ0oC,UAClBN,IAAKl0C,GAAM8L,QAAQ0oC,UAAWx0C,EAK3B8L,SAAQ8X,UAAYswB,IAAIvB,kBAC5BuB,IAAIvB,iBAAkB7mC,QAAQ8X,UAQzB9X,QAAQknC,aAAgB1B,QAAQ,sBACrCA,QAAQ,oBAAsB,iBAI/B,KAAMtxC,IAAKsxC,SAOY5kC,SAAjB4kC,QAAStxC,IACbk0C,IAAIzB,iBAAkBzyC,EAAGsxC,QAAStxC,GAAM,GAO1Ck0C,KAAIf,KAAQrnC,QAAQmnC,YAAcnnC,QAAQ4E,MAAU,MAGpD3B,SAAW,SAAUiG,EAAGy/B,SACvB,GAAIrD,QAAQK,WAAYluB,SAGxB,IAAKxU,WAAc0lC,SAA8B,IAAnBP,IAAI1jC,YAOjC,SALO4jC,cAActyC,IACrBiN,SAAWrC,OACXwnC,IAAIQ,mBAAqBjhC,OAAO+C,KAG3Bi+B,QACoB,IAAnBP,IAAI1jC,YACR0jC,IAAIrB,YAEC,CACNtvB,aACA6tB,OAAS8C,IAAI9C,OAKoB,gBAArB8C,KAAIS,eACfpxB,UAAUhW,KAAO2mC,IAAIS,aAKtB,KACClD,WAAayC,IAAIzC,WAChB,MAAOxvC,GAERwvC,WAAa,GAQRL,SAAUtlC,QAAQwkC,SAAYxkC,QAAQknC,YAGrB,OAAX5B,SACXA,OAAS,KAHTA,OAAS7tB,UAAUhW,KAAO,IAAM,IAS9BgW,WACJrB,SAAUkvB,OAAQK,WAAYluB,UAAW2wB,IAAI1B,0BAIzC1mC,QAAQiH,MAGiB,IAAnBmhC,IAAI1jC,WAGf5G,WAAYmF,UAGZmlC,IAAIQ,mBAAqBN,aAActyC,IAAOiN,SAP9CA,YAWF8jC,MAAO,WACD9jC,UACJA,SAAUrC,QAAW,QAyB3B+G,OAAOs9B,WACNN,SACC3/B,OAAQ,6FAET6S,UACC7S,OAAQ,uBAETgT,YACC8wB,cAAe,SAAUrnC,MAExB,MADAkG,QAAOsT,WAAYxZ,MACZA,SAMVkG,OAAOw9B,cAAe,SAAU,SAAUlgC,GACxBrE,SAAZqE,EAAEqF,QACNrF,EAAEqF,OAAQ;AAENrF,EAAEiiC,cACNjiC,EAAET,KAAO,MACTS,EAAExR,QAAS,KAKbkU,OAAOy9B,cAAe,SAAU,SAASngC,GAGxC,GAAKA,EAAEiiC,YAAc,CAEpB,GAAIliC,QACHE,KAAO3P,SAAS2P,MAAQyC,OAAO,QAAQ,IAAMpS,SAASyZ,eAEvD,QAECq4B,KAAM,SAAUn+B,EAAGjG,UAElB+B,OAASzP,SAASuR,cAAc,UAEhC9B,OAAOiC,OAAQ,EAEVhC,EAAE8jC,gBACN/jC,OAAOgC,QAAU/B,EAAE8jC,eAGpB/jC,OAAOK,IAAMJ,EAAEnL,IAGfkL,OAAOgkC,OAAShkC,OAAO4jC,mBAAqB,SAAU1/B,EAAGy/B,UAEnDA,UAAY3jC,OAAON,YAAc,kBAAkB1M,KAAMgN,OAAON,eAGpEM,OAAOgkC,OAAShkC,OAAO4jC,mBAAqB,KAGvC5jC,OAAOnM,YACXmM,OAAOnM,WAAWC,YAAakM,QAIhCA,OAAS,KAGH2jC,SACL1lC,SAAU,IAAK,aAOlBiC,KAAKoC,aAActC,OAAQE,KAAKsH,aAGjCu6B,MAAO,WACD/hC,QACJA,OAAOgkC,OAAQpoC,QAAW,OAU/B,IAAIqoC,iBACHC,OAAS,mBAGVvhC,QAAOs9B,WACNkE,MAAO,WACPC,cAAe,WACd,GAAInmC,UAAWgmC,aAAaxhC,OAAWE,OAAOyC,QAAU,IAAQu4B,OAEhE,OADAjjC,MAAMuD,WAAa,EACZA,YAKT0E,OAAOw9B,cAAe,aAAc,SAAUlgC,EAAGokC,iBAAkBxyB,OAElE,GAAIyyB,cAAcC,YAAaC,kBAC9BC,SAAWxkC,EAAEkkC,SAAU,IAAWD,OAAOlxC,KAAMiN,EAAEnL,KAChD,MACkB,gBAAXmL,GAAEL,QAAwBK,EAAEy/B,aAAe,IAAKjrC,QAAQ,sCAAwCyvC,OAAOlxC,KAAMiN,EAAEL,OAAU,OAIlI,OAAK6kC,WAAiC,UAArBxkC,EAAEyR,UAAW,IAG7B4yB,aAAerkC,EAAEmkC,cAAgBzhC,OAAOjU,WAAYuR,EAAEmkC,eACrDnkC,EAAEmkC,gBACFnkC,EAAEmkC,cAGEK,SACJxkC,EAAGwkC,UAAaxkC,EAAGwkC,UAAWxxC,QAASixC,OAAQ,KAAOI,cAC3CrkC,EAAEkkC,SAAU,IACvBlkC,EAAEnL,MAAS8oC,OAAO5qC,KAAMiN,EAAEnL,KAAQ,IAAM,KAAQmL,EAAEkkC,MAAQ,IAAMG,cAIjErkC,EAAE+S,WAAW,eAAiB,WAI7B,MAHMwxB,oBACL7hC,OAAOzM,MAAOouC,aAAe,mBAEvBE,kBAAmB,IAI3BvkC,EAAEyR,UAAW,GAAM,OAGnB6yB,YAAcrjC,OAAQojC,cACtBpjC,OAAQojC,cAAiB,WACxBE,kBAAoBn0C,WAIrBwhB,MAAMnD,OAAO,WAEZxN,OAAQojC,cAAiBC,YAGpBtkC,EAAGqkC,gBAEPrkC,EAAEmkC,cAAgBC,iBAAiBD,cAGnCH,aAAaltC,KAAMutC,eAIfE,mBAAqB7hC,OAAOjU,WAAY61C,cAC5CA,YAAaC,kBAAmB,IAGjCA,kBAAoBD,YAAc3oC,SAI5B,UAtDR,SAgED+G,OAAOuiB,UAAY,SAAUtlB,KAAMhM,QAAS8wC,aAC3C,IAAM9kC,MAAwB,gBAATA,MACpB,MAAO,KAEgB,kBAAZhM,WACX8wC,YAAc9wC,QACdA,SAAU,GAEXA,QAAUA,SAAWrD,QAErB,IAAIo0C,QAAS7f,WAAW/nB,KAAM6C,MAC7BtP,SAAWo0C,eAGZ,OAAKC,SACK/wC,QAAQkO,cAAe6iC,OAAO,MAGxCA,OAAShiC,OAAOgwB,eAAiB/yB,MAAQhM,QAAStD,SAE7CA,SAAWA,QAAQnB,QACvBwT,OAAQrS,SAAU02B,SAGZrkB,OAAOsE,SAAW09B,OAAO59B,aAKjC,IAAI69B,OAAQjiC,OAAOxS,GAAGoL,IAKtBoH,QAAOxS,GAAGoL,KAAO,SAAUzG,IAAK+vC,OAAQ5mC,UACvC,GAAoB,gBAARnJ,MAAoB8vC,MAC/B,MAAOA,OAAMx0C,MAAOsK,KAAMrK,UAG3B,IAAIkkB,UAAUrB,SAAU1T,KACvBulB,KAAOrqB,KACPkuB,IAAM9zB,IAAIL,QAAQ,IA+CnB,OA7CKm0B,MAAO,IACXrU,SAAW5R,OAAOsG,KAAMnU,IAAI3B,MAAOy1B,IAAK9zB,IAAI3F,SAC5C2F,IAAMA,IAAI3B,MAAO,EAAGy1B,MAIhBjmB,OAAOjU,WAAYm2C,SAGvB5mC,SAAW4mC,OACXA,OAASjpC,QAGEipC,QAA4B,gBAAXA,UAC5BrlC,KAAO,QAIHulB,KAAK51B,OAAS,GAClBwT,OAAO09B,MACNvrC,IAAKA,IAGL0K,KAAMA,KACNiS,SAAU,OACV7R,KAAMilC,SACJ31B,KAAK,SAAU20B,cAGjB3wB,SAAW7iB,UAEX00B,KAAKwO,KAAMhf,SAIV5R,OAAO,SAASswB,OAAQtwB,OAAOuiB,UAAW2e,eAAiBl8B,KAAM4M,UAGjEsvB,gBAECzyB,SAAUnT,UAAY,SAAU4T,MAAOyuB,QACzCvb,KAAKh2B,KAAMkP,SAAUiV,WAAcrB,MAAMgyB,aAAcvD,OAAQzuB,UAI1DnX,MAORiI,OAAO5T,MAAQ,YAAa,WAAY,eAAgB,YAAa,cAAe,YAAc,SAAUG,EAAGsQ,MAC9GmD,OAAOxS,GAAIqP,MAAS,SAAUrP,IAC7B,MAAOuK,MAAK1E,GAAIwJ,KAAMrP,OAOxBwS,OAAOoe,KAAKoD,QAAQ2gB,SAAW,SAAUvhC,MACxC,MAAOZ,QAAOW,KAAKX,OAAO42B,OAAQ,SAAUppC,IAC3C,MAAOoT,QAASpT,GAAGoT,OACjBpU,OAOJ,IAAI6tB,SAAU9b,OAAO3Q,SAASyZ,eAa9BrH,QAAOoiC,QACNC,UAAW,SAAUzhC,KAAMvI,QAAS9L,GACnC,GAAI+1C,aAAaC,QAASC,UAAWC,OAAQC,UAAWC,WAAYC,kBACnElP,SAAW1zB,OAAOiH,IAAKrG,KAAM,YAC7BiiC,QAAU7iC,OAAQY,MAClBqK,QAGiB,YAAbyoB,WACJ9yB,KAAKgG,MAAM8sB,SAAW,YAGvBgP,UAAYG,QAAQT,SACpBI,UAAYxiC,OAAOiH,IAAKrG,KAAM,OAC9B+hC,WAAa3iC,OAAOiH,IAAKrG,KAAM,QAC/BgiC,mBAAmC,aAAblP,UAAwC,UAAbA,WAChD1zB,OAAOe,QAAQ,QAAUyhC,UAAWG,aAAiB,GAGjDC,mBACJN,YAAcO,QAAQnP,WACtB+O,OAASH,YAAYvlB,IACrBwlB,QAAUD,YAAYrQ,OAEtBwQ,OAAS54B,WAAY24B,YAAe,EACpCD,QAAU14B,WAAY84B,aAAgB,GAGlC3iC,OAAOjU,WAAYsM,WACvBA,QAAUA,QAAQnM,KAAM0U,KAAMrU,EAAGm2C,YAGd,MAAfrqC,QAAQ0kB,MACZ9R,MAAM8R,IAAQ1kB,QAAQ0kB,IAAM2lB,UAAU3lB,IAAQ0lB,QAE1B,MAAhBpqC,QAAQ45B,OACZhnB,MAAMgnB,KAAS55B,QAAQ45B,KAAOyQ,UAAUzQ,KAASsQ,SAG7C,SAAWlqC,SACfA,QAAQyqC,MAAM52C,KAAM0U,KAAMqK,OAE1B43B,QAAQ57B,IAAKgE,SAKhBjL,OAAOxS,GAAGwV,QACTo/B,OAAQ,SAAU/pC,SACjB,GAAK3K,UAAUlB,OACd,MAAmByM,UAAZZ,QACNN,KACAA,KAAK3L,KAAK,SAAUG,GACnByT,OAAOoiC,OAAOC,UAAWtqC,KAAMM,QAAS9L,IAI3C,IAAI8tB,SAAS0oB,IACZC,KAAQjmB,IAAK,EAAGkV,KAAM,GACtBrxB,KAAO7I,KAAM,GACb4O,IAAM/F,MAAQA,KAAKkE,aAEpB,IAAM6B,IAON,MAHA0T,SAAU1T,IAAIU,gBAGRrH,OAAO8U,SAAUuF,QAASzZ,aAMpBA,MAAKqiC,wBAA0B/+B,eAC1C8+B,IAAMpiC,KAAKqiC,yBAEZF,IAAMvxB,UAAW7K,MAEhBoW,IAAKimB,IAAIjmB,KAASgmB,IAAIG,aAAe7oB,QAAQ8R,YAAiB9R,QAAQ+R,WAAc,GACpF6F,KAAM+Q,IAAI/Q,MAAS8Q,IAAII,aAAe9oB,QAAQ0R,aAAiB1R,QAAQ2R,YAAc,KAX9EgX,KAeTtP,SAAU,WACT,GAAM37B,KAAM,GAAZ,CAIA,GAAIqrC,cAAchB,OACjBiB,cAAiBtmB,IAAK,EAAGkV,KAAM,GAC/BrxB,KAAO7I,KAAM,EAwBd,OArBwC,UAAnCiI,OAAOiH,IAAKrG,KAAM,YAEtBwhC,OAASxhC,KAAKqiC,yBAGdG,aAAerrC,KAAKqrC,eAGpBhB,OAASrqC,KAAKqqC,SACRpiC,OAAOqE,SAAU++B,aAAc,GAAK,UACzCC,aAAeD,aAAahB,UAI7BiB,aAAatmB,KAAQ/c,OAAOiH,IAAKm8B,aAAc,GAAK,kBAAkB,GACtEC,aAAapR,MAAQjyB,OAAOiH,IAAKm8B,aAAc,GAAK,mBAAmB,KAOvErmB,IAAMqlB,OAAOrlB,IAAOsmB,aAAatmB,IAAM/c,OAAOiH,IAAKrG,KAAM,aAAa,GACtEqxB,KAAMmQ,OAAOnQ,KAAOoR,aAAapR,KAAOjyB,OAAOiH,IAAKrG,KAAM,cAAc,MAI1EwiC,aAAc,WACb,MAAOrrC,MAAK/H,IAAI,WAGf,IAFA,GAAIozC,cAAerrC,KAAKqrC,cAAgB/oB,QAEhC+oB,eAAmBpjC,OAAOqE,SAAU++B,aAAc,SAAuD,WAA3CpjC,OAAOiH,IAAKm8B,aAAc,aAC/FA,aAAeA,aAAaA,YAE7B,OAAOA,eAAgB/oB,aAM1Bra,OAAO5T,MAAQ2/B,WAAY,cAAeI,UAAW,eAAiB,SAAUmT,OAAQ1yC,MACvF,GAAImwB,KAAM,IAAI1sB,KAAMzD,KAEpBoT,QAAOxS,GAAI8xC,QAAW,SAAUp2B,KAC/B,MAAOke,QAAQrvB,KAAM,SAAU6I,KAAM0+B,OAAQp2B,KAC5C,GAAI65B,KAAMvxB,UAAW5Q,KAErB,OAAa3H,UAARiQ,IACG65B,IAAOn2C,OAAQm2C,KAAOA,IAAKn2C,MACjCm2C,IAAIn1C,SAASyZ,gBAAiBi4B,QAC9B1+B,KAAM0+B,aAGHyD,IACJA,IAAIO,SACFvmB,IAAY/c,OAAQ+iC,KAAMhX,aAApB7iB,IACP6T,IAAM7T,IAAMlJ,OAAQ+iC,KAAM5W,aAI3BvrB,KAAM0+B,QAAWp2B,MAEhBo2B,OAAQp2B,IAAKxb,UAAUlB,OAAQ,SAQpCwT,OAAO5T,MAAQ,MAAO,QAAU,SAAUG,EAAGK,MAC5CoT,OAAO6M,SAAUjgB,MAAS8a,aAActE,QAAQ8vB,cAC/C,SAAUtyB,KAAMgxB,UACf,MAAKA,WACJA,SAAWloB,OAAQ9I,KAAMhU,MAElB+c,UAAUtZ,KAAMuhC,UACtB5xB,OAAQY,MAAO8yB,WAAY9mC,MAAS,KACpCglC,UALF,WAaH5xB,OAAO5T,MAAQm3C,OAAQ,SAAUC,MAAO,SAAW,SAAUv0C,KAAM4N,MAClEmD,OAAO5T,MAAQyoC,QAAS,QAAU5lC,KAAM2V,QAAS/H,KAAM4mC,GAAI,QAAUx0C,MAAQ,SAAUy0C,aAAcC,UAEpG3jC,OAAOxS,GAAIm2C,UAAa,SAAU/O,OAAQvnC,OACzC,GAAIg6B,WAAY35B,UAAUlB,SAAYk3C,cAAkC,iBAAX9O,SAC5D7rB,MAAQ26B,eAAkB9O,UAAW,GAAQvnC,SAAU,EAAO,SAAW,SAE1E,OAAO+5B,QAAQrvB,KAAM,SAAU6I,KAAM/D,KAAMxP,OAC1C,GAAIsZ,IAEJ,OAAK3G,QAAOK,SAAUO,MAIdA,KAAKhT,SAASyZ,gBAAiB,SAAWpY,MAI3B,IAAlB2R,KAAKN,UACTqG,IAAM/F,KAAKyG,gBAIJuB,KAAKC,IACXjI,KAAKkG,KAAM,SAAW7X,MAAQ0X,IAAK,SAAW1X,MAC9C2R,KAAKkG,KAAM,SAAW7X,MAAQ0X,IAAK,SAAW1X,MAC9C0X,IAAK,SAAW1X,QAIDgK,SAAV5L,MAEN2S,OAAOiH,IAAKrG,KAAM/D,KAAMkM,OAGxB/I,OAAO4G,MAAOhG,KAAM/D,KAAMxP,MAAO0b,QAChClM,KAAMwqB,UAAYuN,OAAS37B,OAAWouB,UAAW,WAOvDrnB,OAAOxS,GAAGo2C,KAAO,WAChB,MAAO7rC,MAAKvL,QAGbwT,OAAOxS,GAAGq2C,QAAU7jC,OAAOxS,GAAG21B,QAkBP,kBAAXt3B,SAAyBA,OAAOkU,KAC3ClU,OAAQ,YAAc,WACrB,MAAOmU,SAOT,IAEC8jC,SAAUvlC,OAAOyB,OAGjB+jC,GAAKxlC,OAAOylC,CAwBb,OAtBAhkC,QAAOikC,WAAa,SAAUv0B,MAS7B,MARKnR,QAAOylC,IAAMhkC,SACjBzB,OAAOylC,EAAID,IAGPr0B,MAAQnR,OAAOyB,SAAWA,SAC9BzB,OAAOyB,OAAS8jC,SAGV9jC,cAMIG,YAAa+D,eACxB3F,OAAOyB,OAASzB,OAAOylC,EAAIhkC,QAMrBA,SASN,WA4KC,QAASkkC,cAAahjC,KAGpB,QAASijC,UAASx3C,IAAKy3C,SAAUC,KAAM3uB,KAAM7jB,MAAOrF,QAClD,KAAOqF,OAAS,GAAarF,OAARqF,MAAgBA,OAASqP,IAAK,CACjD,GAAIojC,YAAa5uB,KAAOA,KAAK7jB,OAASA,KACtCwyC,MAAOD,SAASC,KAAM13C,IAAI23C,YAAaA,WAAY33C,KAErD,MAAO03C,MAGT,MAAO,UAAS13C,IAAKy3C,SAAUC,KAAMpzC,SACnCmzC,SAAWG,WAAWH,SAAUnzC,QAAS,EACzC,IAAIykB,OAAQ8uB,YAAY73C,MAAQ4U,EAAEmU,KAAK/oB,KACnCH,QAAUkpB,MAAQ/oB,KAAKH,OACvBqF,MAAQqP,IAAM,EAAI,EAAI1U,OAAS,CAMnC,OAJIkB,WAAUlB,OAAS,IACrB63C,KAAO13C,IAAI+oB,KAAOA,KAAK7jB,OAASA,OAChCA,OAASqP,KAEJijC,SAASx3C,IAAKy3C,SAAUC,KAAM3uB,KAAM7jB,MAAOrF,SA+ZtD,QAASi4C,4BAA2BvjC,KAClC,MAAO,UAASwjC,MAAOC,UAAW1zC,SAChC0zC,UAAYnqC,GAAGmqC,UAAW1zC,QAG1B,KAFA,GAAIzE,QAASo4C,UAAUF,OACnB7yC,MAAQqP,IAAM,EAAI,EAAI1U,OAAS,EAC5BqF,OAAS,GAAarF,OAARqF,MAAgBA,OAASqP,IAC5C,GAAIyjC,UAAUD,MAAM7yC,OAAQA,MAAO6yC,OAAQ,MAAO7yC,MAEpD,OAAO,IAsBX,QAASgzC,mBAAkB3jC,IAAK4jC,cAAeC,aAC7C,MAAO,UAASL,MAAOM,KAAMnlB,KAC3B,GAAItzB,GAAI,EAAGC,OAASo4C,UAAUF,MAC9B,IAAkB,gBAAP7kB,KACL3e,IAAM,EACN3U,EAAIszB,KAAO,EAAIA,IAAMjX,KAAKC,IAAIgX,IAAMrzB,OAAQD,GAE5CC,OAASqzB,KAAO,EAAIjX,KAAKq8B,IAAIplB,IAAM,EAAGrzB,QAAUqzB,IAAMrzB,OAAS,MAE9D,IAAIu4C,aAAellB,KAAOrzB,OAE/B,MADAqzB,KAAMklB,YAAYL,MAAOM,MAClBN,MAAM7kB,OAASmlB,KAAOnlB,IAAM,EAErC,IAAImlB,OAASA,KAEX,MADAnlB,KAAMilB,cAAct0C,MAAMtE,KAAKw4C,MAAOn4C,EAAGC,QAAS+U,EAAE2jC,OAC7CrlB,KAAO,EAAIA,IAAMtzB,EAAI,EAE9B,KAAKszB,IAAM3e,IAAM,EAAI3U,EAAIC,OAAS,EAAGqzB,KAAO,GAAWrzB,OAANqzB,IAAcA,KAAO3e,IACpE,GAAIwjC,MAAM7kB,OAASmlB,KAAM,MAAOnlB,IAElC,OAAO,IAqPX,QAASslB,qBAAoBx4C,IAAK+oB,MAChC,GAAI0vB,YAAaC,mBAAmB74C,OAChC4lB,YAAczlB,IAAIylB,YAClBkzB,MAAS/jC,EAAExV,WAAWqmB,cAAgBA,YAAYja,WAAcotC,SAGhE34C,KAAO,aAGX,KAFI2U,EAAEwe,IAAIpzB,IAAKC,QAAU2U,EAAEuT,SAASY,KAAM9oB,OAAO8oB,KAAKthB,KAAKxH,MAEpDw4C,cACLx4C,KAAOy4C,mBAAmBD,YACtBx4C,OAAQD,MAAOA,IAAIC,QAAU04C,MAAM14C,QAAU2U,EAAEuT,SAASY,KAAM9oB,OAChE8oB,KAAKthB,KAAKxH,MA74BhB,GAAIwzB,MAAOroB,KAGPytC,mBAAqBplB,KAAK7e,EAG1BkkC,WAAannC,MAAMnG,UAAWotC,SAAWrnC,OAAO/F,UAAWutC,UAAYhK,SAASvjC,UAIlF/D,KAAmBqxC,WAAWrxC,KAC9B5D,MAAmBi1C,WAAWj1C,MAC9B2N,SAAmBonC,SAASpnC,SAC5BC,eAAmBmnC,SAASnnC,eAK5BunC,cAAqBrnC,MAAMnS,QAC3By5C,WAAqB1nC,OAAOwX,KAC5BmwB,WAAqBH,UAAUn4C,KAC/Bu4C,aAAqB5nC,OAAO6nC,OAG1BC,KAAO,aAGPzkC,EAAI,SAAS5U,KACf,MAAIA,eAAe4U,GAAU5U,IACvBoL,eAAgBwJ,QACtBxJ,KAAKkuC,SAAWt5C,KADiB,GAAI4U,GAAE5U,KAOlB,oBAAZgL,UACa,mBAAXE,SAA0BA,OAAOF,UAC1CA,QAAUE,OAAOF,QAAU4J,GAE7B5J,QAAQ4J,EAAIA,GAEZ6e,KAAK7e,EAAIA,EAIXA,EAAE2kC,QAAU,OAKZ,IAAI3B,YAAa,SAASj4C,KAAM2E,QAASk1C,UACvC,GAAgB,SAAZl1C,QAAoB,MAAO3E,KAC/B,QAAoB,MAAZ65C,SAAmB,EAAIA,UAC7B,IAAK,GAAG,MAAO,UAAS94C,OACtB,MAAOf,MAAKJ,KAAK+E,QAAS5D,OAE5B,KAAK,GAAG,MAAO,UAASA,MAAO+4C,OAC7B,MAAO95C,MAAKJ,KAAK+E,QAAS5D,MAAO+4C,OAEnC,KAAK,GAAG,MAAO,UAAS/4C,MAAOwE,MAAOiZ,YACpC,MAAOxe,MAAKJ,KAAK+E,QAAS5D,MAAOwE,MAAOiZ,YAE1C,KAAK,GAAG,MAAO,UAASu7B,YAAah5C,MAAOwE,MAAOiZ,YACjD,MAAOxe,MAAKJ,KAAK+E,QAASo1C,YAAah5C,MAAOwE,MAAOiZ,aAGzD,MAAO,YACL,MAAOxe,MAAKmB,MAAMwD,QAASvD,aAO3B8M,GAAK,SAASnN,MAAO4D,QAASk1C,UAChC,MAAa,OAAT94C,MAAsBkU,EAAE+kC,SACxB/kC,EAAExV,WAAWsB,OAAek3C,WAAWl3C,MAAO4D,QAASk1C,UACvD5kC,EAAEglC,SAASl5C,OAAekU,EAAE0V,QAAQ5pB,OACjCkU,EAAEilC,SAASn5C,OAEpBkU,GAAE6iC,SAAW,SAAS/2C,MAAO4D,SAC3B,MAAOuJ,IAAGnN,MAAO4D,QAASw1C,EAAAA,GAI5B,IAAIC,gBAAiB,SAASC,SAAUC,eACtC,MAAO,UAASj6C,KACd,GAAIH,QAASkB,UAAUlB,MACvB,IAAa,EAATA,QAAqB,MAAPG,IAAa,MAAOA,IACtC,KAAK,GAAIkF,OAAQ,EAAWrF,OAARqF,MAAgBA,QAIlC,IAAK,GAHD3E,QAASQ,UAAUmE,OACnB6jB,KAAOixB,SAASz5C,QAChByY,EAAI+P,KAAKlpB,OACJD,EAAI,EAAOoZ,EAAJpZ,EAAOA,IAAK,CAC1B,GAAI4Q,KAAMuY,KAAKnpB,EACVq6C,gBAA8B,SAAbj6C,IAAIwQ,OAAiBxQ,IAAIwQ,KAAOjQ,OAAOiQ,MAGjE,MAAOxQ,OAKPk6C,WAAa,SAAS1uC,WACxB,IAAKoJ,EAAEglC,SAASpuC,WAAY,QAC5B,IAAI2tC,aAAc,MAAOA,cAAa3tC,UACtC6tC,MAAK7tC,UAAYA,SACjB,IAAI8U,QAAS,GAAI+4B,KAEjB,OADAA,MAAK7tC,UAAY,KACV8U,QAGLu5B,SAAW,SAASrpC,KACtB,MAAO,UAASxQ,KACd,MAAc,OAAPA,IAAc,OAASA,IAAIwQ,OAQlC2pC,gBAAkBl+B,KAAKm+B,IAAI,EAAG,IAAM,EACpCnC,UAAY4B,SAAS,UACrBhC,YAAc,SAAS15B,YACzB,GAAIte,QAASo4C,UAAU95B,WACvB,OAAwB,gBAAVte,SAAsBA,QAAU,GAAes6C,iBAAVt6C,OASrD+U,GAAEnV,KAAOmV,EAAEylC,QAAU,SAASr6C,IAAKy3C,SAAUnzC,SAC3CmzC,SAAWG,WAAWH,SAAUnzC,QAChC,IAAI1E,GAAGC,MACP,IAAIg4C,YAAY73C,KACd,IAAKJ,EAAI,EAAGC,OAASG,IAAIH,OAAYA,OAAJD,EAAYA,IAC3C63C,SAASz3C,IAAIJ,GAAIA,EAAGI,SAEjB,CACL,GAAI+oB,MAAOnU,EAAEmU,KAAK/oB,IAClB,KAAKJ,EAAI,EAAGC,OAASkpB,KAAKlpB,OAAYA,OAAJD,EAAYA,IAC5C63C,SAASz3C,IAAI+oB,KAAKnpB,IAAKmpB,KAAKnpB,GAAII,KAGpC,MAAOA,MAIT4U,EAAEvR,IAAMuR,EAAE0lC,QAAU,SAASt6C,IAAKy3C,SAAUnzC,SAC1CmzC,SAAW5pC,GAAG4pC,SAAUnzC,QAIxB,KAAK,GAHDykB,OAAQ8uB,YAAY73C,MAAQ4U,EAAEmU,KAAK/oB,KACnCH,QAAUkpB,MAAQ/oB,KAAKH,OACvBmnB,QAAUrV,MAAM9R,QACXqF,MAAQ,EAAWrF,OAARqF,MAAgBA,QAAS,CAC3C,GAAIyyC,YAAa5uB,KAAOA,KAAK7jB,OAASA,KACtC8hB,SAAQ9hB,OAASuyC,SAASz3C,IAAI23C,YAAaA,WAAY33C,KAEzD,MAAOgnB,UA+BTpS,EAAE2lC,OAAS3lC,EAAE4lC,MAAQ5lC,EAAE6lC,OAASlD,aAAa,GAG7C3iC,EAAE8lC,YAAc9lC,EAAE+lC,MAAQpD,aAAa,IAGvC3iC,EAAEyD,KAAOzD,EAAEgmC,OAAS,SAAS56C,IAAKg4C,UAAW1zC,SAC3C,GAAIkM,IAMJ,OAJEA,KADEqnC,YAAY73C,KACR4U,EAAEimC,UAAU76C,IAAKg4C,UAAW1zC,SAE5BsQ,EAAEkmC,QAAQ96C,IAAKg4C,UAAW1zC,SAEtB,SAARkM,KAA0B,KAARA,IAAmBxQ,IAAIwQ,KAA7C,QAKFoE,EAAET,OAASS,EAAEiU,OAAS,SAAS7oB,IAAKg4C,UAAW1zC,SAC7C,GAAI0iB,WAKJ,OAJAgxB,WAAYnqC,GAAGmqC,UAAW1zC,SAC1BsQ,EAAEnV,KAAKO,IAAK,SAASU,MAAOwE,MAAO8R,MAC7BghC,UAAUt3C,MAAOwE,MAAO8R,OAAOgQ,QAAQvf,KAAK/G,SAE3CsmB,SAITpS,EAAEyjB,OAAS,SAASr4B,IAAKg4C,UAAW1zC,SAClC,MAAOsQ,GAAET,OAAOnU,IAAK4U,EAAEmmC,OAAOltC,GAAGmqC,YAAa1zC,UAKhDsQ,EAAEomC,MAAQpmC,EAAE0Q,IAAM,SAAStlB,IAAKg4C,UAAW1zC,SACzC0zC,UAAYnqC,GAAGmqC,UAAW1zC,QAG1B,KAAK,GAFDykB,OAAQ8uB,YAAY73C,MAAQ4U,EAAEmU,KAAK/oB,KACnCH,QAAUkpB,MAAQ/oB,KAAKH,OAClBqF,MAAQ,EAAWrF,OAARqF,MAAgBA,QAAS,CAC3C,GAAIyyC,YAAa5uB,KAAOA,KAAK7jB,OAASA,KACtC,KAAK8yC,UAAUh4C,IAAI23C,YAAaA,WAAY33C,KAAM,OAAO,EAE3D,OAAO,GAKT4U,EAAEqmC,KAAOrmC,EAAEsmC,IAAM,SAASl7C,IAAKg4C,UAAW1zC,SACxC0zC,UAAYnqC,GAAGmqC,UAAW1zC,QAG1B,KAAK,GAFDykB,OAAQ8uB,YAAY73C,MAAQ4U,EAAEmU,KAAK/oB,KACnCH,QAAUkpB,MAAQ/oB,KAAKH,OAClBqF,MAAQ,EAAWrF,OAARqF,MAAgBA,QAAS,CAC3C,GAAIyyC,YAAa5uB,KAAOA,KAAK7jB,OAASA,KACtC,IAAI8yC,UAAUh4C,IAAI23C,YAAaA,WAAY33C,KAAM,OAAO,EAE1D,OAAO,GAKT4U,EAAEuT,SAAWvT,EAAEumC,SAAWvmC,EAAEwmC,QAAU,SAASp7C,IAAKq4C,KAAMgD,UAAWC,OAGnE,MAFKzD,aAAY73C,OAAMA,IAAM4U,EAAE+G,OAAO3b,OACd,gBAAbq7C,YAAyBC,SAAOD,UAAY,GAChDzmC,EAAEzP,QAAQnF,IAAKq4C,KAAMgD,YAAc,GAI5CzmC,EAAE2mC,OAAS,SAASv7C,IAAK2yC,QACvB,GAAIjpC,MAAO7F,MAAMtE,KAAKwB,UAAW,GAC7By6C,OAAS5mC,EAAExV,WAAWuzC,OAC1B,OAAO/9B,GAAEvR,IAAIrD,IAAK,SAASU,OACzB,GAAIf,MAAO67C,OAAS7I,OAASjyC,MAAMiyC,OACnC,OAAe,OAARhzC,KAAeA,KAAOA,KAAKmB,MAAMJ,MAAOgJ,SAKnDkL,EAAE6mC,MAAQ,SAASz7C,IAAKwQ,KACtB,MAAOoE,GAAEvR,IAAIrD,IAAK4U,EAAEilC,SAASrpC,OAK/BoE,EAAE8mC,MAAQ,SAAS17C,IAAK4d,OACtB,MAAOhJ,GAAET,OAAOnU,IAAK4U,EAAE0V,QAAQ1M,SAKjChJ,EAAE+mC,UAAY,SAAS37C,IAAK4d,OAC1B,MAAOhJ,GAAEyD,KAAKrY,IAAK4U,EAAE0V,QAAQ1M,SAI/BhJ,EAAEsH,IAAM,SAASlc,IAAKy3C,SAAUnzC,SAC9B,GACI5D,OAAOukC,SADP3kB,SAAUw5B,EAAAA,GAAU8B,eAAgB9B,EAAAA,EAExC,IAAgB,MAAZrC,UAA2B,MAAPz3C,IAAa,CACnCA,IAAM63C,YAAY73C,KAAOA,IAAM4U,EAAE+G,OAAO3b,IACxC,KAAK,GAAIJ,GAAI,EAAGC,OAASG,IAAIH,OAAYA,OAAJD,EAAYA,IAC/Cc,MAAQV,IAAIJ,GACRc,MAAQ4f,SACVA,OAAS5f,WAIb+2C,UAAW5pC,GAAG4pC,SAAUnzC,SACxBsQ,EAAEnV,KAAKO,IAAK,SAASU,MAAOwE,MAAO8R,MACjCiuB,SAAWwS,SAAS/2C,MAAOwE,MAAO8R,OAC9BiuB,SAAW2W,cAAgB3W,aAAc6U,EAAAA,IAAYx5B,WAAYw5B,EAAAA,MACnEx5B,OAAS5f,MACTk7C,aAAe3W,WAIrB,OAAO3kB,SAIT1L,EAAE0jC,IAAM,SAASt4C,IAAKy3C,SAAUnzC,SAC9B,GACI5D,OAAOukC,SADP3kB,OAASw5B,EAAAA,EAAU8B,aAAe9B,EAAAA,CAEtC,IAAgB,MAAZrC,UAA2B,MAAPz3C,IAAa,CACnCA,IAAM63C,YAAY73C,KAAOA,IAAM4U,EAAE+G,OAAO3b,IACxC,KAAK,GAAIJ,GAAI,EAAGC,OAASG,IAAIH,OAAYA,OAAJD,EAAYA,IAC/Cc,MAAQV,IAAIJ,GACA0gB,OAAR5f,QACF4f,OAAS5f,WAIb+2C,UAAW5pC,GAAG4pC,SAAUnzC,SACxBsQ,EAAEnV,KAAKO,IAAK,SAASU,MAAOwE,MAAO8R,MACjCiuB,SAAWwS,SAAS/2C,MAAOwE,MAAO8R,OACnB4kC,aAAX3W,UAA2BA,WAAa6U,EAAAA,GAAYx5B,SAAWw5B,EAAAA,KACjEx5B,OAAS5f,MACTk7C,aAAe3W,WAIrB,OAAO3kB,SAKT1L,EAAEinC,QAAU,SAAS77C,KAInB,IAAK,GAAe87C,MAHhBzX,IAAMwT,YAAY73C,KAAOA,IAAM4U,EAAE+G,OAAO3b,KACxCH,OAASwkC,IAAIxkC,OACbk8C,SAAWpqC,MAAM9R,QACZqF,MAAQ,EAAiBrF,OAARqF,MAAgBA,QACxC42C,KAAOlnC,EAAE2R,OAAO,EAAGrhB,OACf42C,OAAS52C,QAAO62C,SAAS72C,OAAS62C,SAASD,OAC/CC,SAASD,MAAQzX,IAAIn/B,MAEvB,OAAO62C,WAMTnnC,EAAEonC,OAAS,SAASh8C,IAAKk2B,EAAGolB,OAC1B,MAAS,OAALplB,GAAaolB,OACVzD,YAAY73C,OAAMA,IAAM4U,EAAE+G,OAAO3b,MAC/BA,IAAI4U,EAAE2R,OAAOvmB,IAAIH,OAAS,KAE5B+U,EAAEinC,QAAQ77C,KAAK6D,MAAM,EAAGoY,KAAKC,IAAI,EAAGga,KAI7CthB,EAAEqnC,OAAS,SAASj8C,IAAKy3C,SAAUnzC,SAEjC,MADAmzC,UAAW5pC,GAAG4pC,SAAUnzC,SACjBsQ,EAAE6mC,MAAM7mC,EAAEvR,IAAIrD,IAAK,SAASU,MAAOwE,MAAO8R,MAC/C,OACEtW,MAAOA,MACPwE,MAAOA,MACPg3C,SAAUzE,SAAS/2C,MAAOwE,MAAO8R,SAElCkP,KAAK,SAASof,KAAM6W,OACrB,GAAI3yB,GAAI8b,KAAK4W,SACTzyB,EAAI0yB,MAAMD,QACd,IAAI1yB,IAAMC,EAAG,CACX,GAAID,EAAIC,GAAW,SAAND,EAAc,MAAO,EAClC,IAAQC,EAAJD,GAAe,SAANC,EAAc,MAAO,GAEpC,MAAO6b,MAAKpgC,MAAQi3C,MAAMj3C,QACxB,SAIN,IAAIk3C,OAAQ,SAASC,UACnB,MAAO,UAASr8C,IAAKy3C,SAAUnzC,SAC7B,GAAIgc,UAMJ,OALAm3B,UAAW5pC,GAAG4pC,SAAUnzC,SACxBsQ,EAAEnV,KAAKO,IAAK,SAASU,MAAOwE,OAC1B,GAAIsL,KAAMinC,SAAS/2C,MAAOwE,MAAOlF,IACjCq8C,UAAS/7B,OAAQ5f,MAAO8P,OAEnB8P,QAMX1L,GAAE0nC,QAAUF,MAAM,SAAS97B,OAAQ5f,MAAO8P,KACpCoE,EAAEwe,IAAI9S,OAAQ9P,KAAM8P,OAAO9P,KAAK/I,KAAK/G,OAAa4f,OAAO9P,MAAQ9P,SAKvEkU,EAAE2nC,QAAUH,MAAM,SAAS97B,OAAQ5f,MAAO8P,KACxC8P,OAAO9P,KAAO9P,QAMhBkU,EAAE4nC,QAAUJ,MAAM,SAAS97B,OAAQ5f,MAAO8P,KACpCoE,EAAEwe,IAAI9S,OAAQ9P,KAAM8P,OAAO9P,OAAa8P,OAAO9P,KAAO,IAI5DoE,EAAE8Q,QAAU,SAAS1lB,KACnB,MAAKA,KACD4U,EAAEpV,QAAQQ,KAAa6D,MAAMtE,KAAKS,KAClC63C,YAAY73C,KAAa4U,EAAEvR,IAAIrD,IAAK4U,EAAE+kC,UACnC/kC,EAAE+G,OAAO3b,SAIlB4U,EAAEqiC,KAAO,SAASj3C,KAChB,MAAW,OAAPA,IAAoB,EACjB63C,YAAY73C,KAAOA,IAAIH,OAAS+U,EAAEmU,KAAK/oB,KAAKH,QAKrD+U,EAAE6nC,UAAY,SAASz8C,IAAKg4C,UAAW1zC,SACrC0zC,UAAYnqC,GAAGmqC,UAAW1zC,QAC1B,IAAIo4C,SAAW36B,OAIf,OAHAnN,GAAEnV,KAAKO,IAAK,SAASU,MAAO8P,IAAKxQ,MAC9Bg4C,UAAUt3C,MAAO8P,IAAKxQ,KAAO08C,KAAO36B,MAAMta,KAAK/G,UAE1Cg8C,KAAM36B,OAShBnN,EAAEkR,MAAQlR,EAAEhE,KAAOgE,EAAE+nC,KAAO,SAAS5E,MAAO7hB,EAAGolB,OAC7C,MAAa,OAATvD,MACK,MAAL7hB,GAAaolB,MAAcvD,MAAM,GAC9BnjC,EAAEgoC,QAAQ7E,MAAOA,MAAMl4C,OAASq2B,GAFvC,QAQFthB,EAAEgoC,QAAU,SAAS7E,MAAO7hB,EAAGolB,OAC7B,MAAOz3C,OAAMtE,KAAKw4C,MAAO,EAAG97B,KAAKC,IAAI,EAAG67B,MAAMl4C,QAAe,MAALq2B,GAAaolB,MAAQ,EAAIplB,MAKnFthB,EAAEoR,KAAO,SAAS+xB,MAAO7hB,EAAGolB,OAC1B,MAAa,OAATvD,MACK,MAAL7hB,GAAaolB,MAAcvD,MAAMA,MAAMl4C,OAAS,GAC7C+U,EAAEioC,KAAK9E,MAAO97B,KAAKC,IAAI,EAAG67B,MAAMl4C,OAASq2B,IAFhD,QAQFthB,EAAEioC,KAAOjoC,EAAEkoC,KAAOloC,EAAEmoC,KAAO,SAAShF,MAAO7hB,EAAGolB,OAC5C,MAAOz3C,OAAMtE,KAAKw4C,MAAY,MAAL7hB,GAAaolB,MAAQ,EAAIplB,IAIpDthB,EAAEooC,QAAU,SAASjF,OACnB,MAAOnjC,GAAET,OAAO4jC,MAAOnjC,EAAE+kC,UAI3B,IAAIsD,SAAU,SAAStsB,MAAOusB,QAASC,OAAQC,YAE7C,IAAK,GADDC,WAAanqB,IAAM,EACdtzB,EAAIw9C,YAAc,EAAGv9C,OAASo4C,UAAUtnB,OAAY9wB,OAAJD,EAAYA,IAAK,CACxE,GAAIc,OAAQiwB,MAAM/wB,EAClB,IAAIi4C,YAAYn3C,SAAWkU,EAAEpV,QAAQkB,QAAUkU,EAAE0oC,YAAY58C,QAAS,CAE/Dw8C,UAASx8C,MAAQu8C,QAAQv8C,MAAOw8C,QAASC,QAC9C,IAAIv6C,GAAI,EAAGqjB,IAAMvlB,MAAMb,MAEvB,KADAw9C,OAAOx9C,QAAUomB,IACNA,IAAJrjB,GACLy6C,OAAOnqB,OAASxyB,MAAMkC,SAEdu6C,UACVE,OAAOnqB,OAASxyB,OAGpB,MAAO28C,QAITzoC,GAAEqoC,QAAU,SAASlF,MAAOmF,SAC1B,MAAOD,SAAQlF,MAAOmF,SAAS,IAIjCtoC,EAAE2oC,QAAU,SAASxF,OACnB,MAAOnjC,GAAE4oC,WAAWzF,MAAOl0C,MAAMtE,KAAKwB,UAAW,KAMnD6T,EAAE6oC,KAAO7oC,EAAEygB,OAAS,SAAS0iB,MAAO2F,SAAUjG,SAAUnzC,SACjDsQ,EAAE+oC,UAAUD,YACfp5C,QAAUmzC,SACVA,SAAWiG,SACXA,UAAW,GAEG,MAAZjG,WAAkBA,SAAW5pC,GAAG4pC,SAAUnzC,SAG9C,KAAK,GAFDgc,WACAs9B,QACKh+C,EAAI,EAAGC,OAASo4C,UAAUF,OAAYl4C,OAAJD,EAAYA,IAAK,CAC1D,GAAIc,OAAQq3C,MAAMn4C,GACdqlC,SAAWwS,SAAWA,SAAS/2C,MAAOd,EAAGm4C,OAASr3C,KAClDg9C,WACG99C,GAAKg+C,OAAS3Y,UAAU3kB,OAAO7Y,KAAK/G,OACzCk9C,KAAO3Y,UACEwS,SACJ7iC,EAAEuT,SAASy1B,KAAM3Y,YACpB2Y,KAAKn2C,KAAKw9B,UACV3kB,OAAO7Y,KAAK/G,QAEJkU,EAAEuT,SAAS7H,OAAQ5f,QAC7B4f,OAAO7Y,KAAK/G,OAGhB,MAAO4f,SAKT1L,EAAEipC,MAAQ,WACR,MAAOjpC,GAAE6oC,KAAKR,QAAQl8C,WAAW,GAAM,KAKzC6T,EAAEkpC,aAAe,SAAS/F,OAGxB,IAAK,GAFDz3B,WACAy9B,WAAah9C,UAAUlB,OAClBD,EAAI,EAAGC,OAASo4C,UAAUF,OAAYl4C,OAAJD,EAAYA,IAAK,CAC1D,GAAIy4C,MAAON,MAAMn4C,EACjB,KAAIgV,EAAEuT,SAAS7H,OAAQ+3B,MAAvB,CACA,IAAK,GAAIz1C,GAAI,EAAOm7C,WAAJn7C,GACTgS,EAAEuT,SAASpnB,UAAU6B,GAAIy1C,MADAz1C,KAG5BA,IAAMm7C,YAAYz9B,OAAO7Y,KAAK4wC,OAEpC,MAAO/3B,SAKT1L,EAAE4oC,WAAa,SAASzF,OACtB,GAAI8E,MAAOI,QAAQl8C,WAAW,GAAM,EAAM,EAC1C,OAAO6T,GAAET,OAAO4jC,MAAO,SAASr3C,OAC9B,OAAQkU,EAAEuT,SAAS00B,KAAMn8C,UAM7BkU,EAAEopC,IAAM,WACN,MAAOppC,GAAEqpC,MAAMl9C,YAKjB6T,EAAEqpC,MAAQ,SAASlG,OAIjB,IAAK,GAHDl4C,QAASk4C,OAASnjC,EAAEsH,IAAI67B,MAAOE,WAAWp4C,QAAU,EACpDygB,OAAS3O,MAAM9R,QAEVqF,MAAQ,EAAWrF,OAARqF,MAAgBA,QAClCob,OAAOpb,OAAS0P,EAAE6mC,MAAM1D,MAAO7yC,MAEjC,OAAOob,SAMT1L,EAAEH,OAAS,SAASuC,KAAM2E,QAExB,IAAK,GADD2E,WACK1gB,EAAI,EAAGC,OAASo4C,UAAUjhC,MAAWnX,OAAJD,EAAYA,IAChD+b,OACF2E,OAAOtJ,KAAKpX,IAAM+b,OAAO/b,GAEzB0gB,OAAOtJ,KAAKpX,GAAG,IAAMoX,KAAKpX,GAAG,EAGjC,OAAO0gB,SAiBT1L,EAAEimC,UAAY/C,2BAA2B,GACzCljC,EAAEspC,cAAgBpG,2BAA2B,IAI7CljC,EAAEwjC,YAAc,SAASL,MAAO/3C,IAAKy3C,SAAUnzC,SAC7CmzC,SAAW5pC,GAAG4pC,SAAUnzC,QAAS,EAGjC,KAFA,GAAI5D,OAAQ+2C,SAASz3C,KACjBm+C,IAAM,EAAGtuB,KAAOooB,UAAUF,OACjBloB,KAANsuB,KAAY,CACjB,GAAIC,KAAMniC,KAAKoiC,OAAOF,IAAMtuB,MAAQ,EAChC4nB,UAASM,MAAMqG,MAAQ19C,MAAOy9C,IAAMC,IAAM,EAAQvuB,KAAOuuB,IAE/D,MAAOD,MAgCTvpC,EAAEzP,QAAU+yC,kBAAkB,EAAGtjC,EAAEimC,UAAWjmC,EAAEwjC,aAChDxjC,EAAExF,YAAc8oC,kBAAkB,GAAItjC,EAAEspC,eAKxCtpC,EAAE0pC,MAAQ,SAASv+B,MAAOyB,KAAMinB,MAClB,MAARjnB,OACFA,KAAOzB,OAAS,EAChBA,MAAQ,GAEV0oB,KAAOA,MAAQ,CAKf,KAAK,GAHD5oC,QAASoc,KAAKC,IAAID,KAAKsiC,MAAM/8B,KAAOzB,OAAS0oB,MAAO,GACpD6V,MAAQ3sC,MAAM9R,QAETqzB,IAAM,EAASrzB,OAANqzB,IAAcA,MAAOnT,OAAS0oB,KAC9C6V,MAAMprB,KAAOnT,KAGf,OAAOu+B,OAQT,IAAIE,cAAe,SAASC,WAAYC,UAAWp6C,QAASq6C,eAAgBj1C,MAC1E,KAAMi1C,yBAA0BD,YAAY,MAAOD,YAAW39C,MAAMwD,QAASoF,KAC7E,IAAI+rB,MAAOykB,WAAWuE,WAAWjzC,WAC7B8U,OAASm+B,WAAW39C,MAAM20B,KAAM/rB,KACpC,OAAIkL,GAAEglC,SAASt5B,QAAgBA,OACxBmV,KAMT7gB,GAAEhU,KAAO,SAASjB,KAAM2E,SACtB,GAAI40C,YAAcv5C,KAAKiB,OAASs4C,WAAY,MAAOA,YAAWp4C,MAAMnB,KAAMkE,MAAMtE,KAAKwB,UAAW,GAChG,KAAK6T,EAAExV,WAAWO,MAAO,KAAM,IAAIi/C,WAAU,oCAC7C,IAAIl1C,MAAO7F,MAAMtE,KAAKwB,UAAW,GAC7B89C,MAAQ,WACV,MAAOL,cAAa7+C,KAAMk/C,MAAOv6C,QAAS8G,KAAM1B,KAAK5F,OAAOD,MAAMtE,KAAKwB,aAEzE,OAAO89C,QAMTjqC,EAAEkqC,QAAU,SAASn/C,MACnB,GAAIo/C,WAAYl7C,MAAMtE,KAAKwB,UAAW,GAClC89C,MAAQ,WAGV,IAAK,GAFD9X,UAAW,EAAGlnC,OAASk/C,UAAUl/C,OACjC6J,KAAOiI,MAAM9R,QACRD,EAAI,EAAOC,OAAJD,EAAYA,IAC1B8J,KAAK9J,GAAKm/C,UAAUn/C,KAAOgV,EAAI7T,UAAUgmC,YAAcgY,UAAUn/C,EAEnE,MAAOmnC,SAAWhmC,UAAUlB,QAAQ6J,KAAKjC,KAAK1G,UAAUgmC,YACxD,OAAOyX,cAAa7+C,KAAMk/C,MAAOzzC,KAAMA,KAAM1B,MAE/C,OAAOm1C,QAMTjqC,EAAEoqC,QAAU,SAASh/C,KACnB,GAAIJ,GAA8B4Q,IAA3B3Q,OAASkB,UAAUlB,MAC1B,IAAc,GAAVA,OAAa,KAAM,IAAIiC,OAAM,wCACjC,KAAKlC,EAAI,EAAOC,OAAJD,EAAYA,IACtB4Q,IAAMzP,UAAUnB,GAChBI,IAAIwQ,KAAOoE,EAAEhU,KAAKZ,IAAIwQ,KAAMxQ,IAE9B,OAAOA,MAIT4U,EAAEqqC,QAAU,SAASt/C,KAAMu/C,QACzB,GAAID,SAAU,SAASzuC,KACrB,GAAIwF,OAAQipC,QAAQjpC,MAChBmpC,QAAU,IAAMD,OAASA,OAAOp+C,MAAMsK,KAAMrK,WAAayP,IAE7D,OADKoE,GAAEwe,IAAIpd,MAAOmpC,WAAUnpC,MAAMmpC,SAAWx/C,KAAKmB,MAAMsK,KAAMrK,YACvDiV,MAAMmpC,SAGf,OADAF,SAAQjpC,SACDipC,SAKTrqC,EAAEk2B,MAAQ,SAASnrC,KAAMy5B,MACvB,GAAI1vB,MAAO7F,MAAMtE,KAAKwB,UAAW,EACjC,OAAOyI,YAAW,WAChB,MAAO7J,MAAKmB,MAAM,KAAM4I,OACvB0vB,OAKLxkB,EAAE0lB,MAAQ1lB,EAAEkqC,QAAQlqC,EAAEk2B,MAAOl2B,EAAG,GAOhCA,EAAEwqC,SAAW,SAASz/C,KAAMy5B,KAAM1tB,SAChC,GAAIpH,SAASoF,KAAM4W,OACf0qB,QAAU,KACVqU,SAAW,CACV3zC,WAASA,WACd,IAAI4zC,OAAQ,WACVD,SAAW3zC,QAAQ6zC,WAAY,EAAQ,EAAI3qC,EAAE4I,MAC7CwtB,QAAU,KACV1qB,OAAS3gB,KAAKmB,MAAMwD,QAASoF,MACxBshC,UAAS1mC,QAAUoF,KAAO,MAEjC,OAAO,YACL,GAAI8T,KAAM5I,EAAE4I,KACP6hC,WAAY3zC,QAAQ6zC,WAAY,IAAOF,SAAW7hC,IACvD,IAAIqD,WAAYuY,MAAQ5b,IAAM6hC,SAc9B,OAbA/6C,SAAU8G,KACV1B,KAAO3I,UACU,GAAb8f,WAAkBA,UAAYuY,MAC5B4R,UACFC,aAAaD,SACbA,QAAU,MAEZqU,SAAW7hC,IACX8C,OAAS3gB,KAAKmB,MAAMwD,QAASoF,MACxBshC,UAAS1mC,QAAUoF,KAAO,OACrBshC,SAAWt/B,QAAQ8zC,YAAa,IAC1CxU,QAAUxhC,WAAW81C,MAAOz+B,YAEvBP,SAQX1L,EAAE6qC,SAAW,SAAS9/C,KAAMy5B,KAAMsmB,WAChC,GAAI1U,SAASthC,KAAMpF,QAASq7C,UAAWr/B,OAEnCg/B,MAAQ,WACV,GAAIt5B,MAAOpR,EAAE4I,MAAQmiC,SAEVvmB,MAAPpT,MAAeA,MAAQ,EACzBglB,QAAUxhC,WAAW81C,MAAOlmB,KAAOpT,OAEnCglB,QAAU,KACL0U,YACHp/B,OAAS3gB,KAAKmB,MAAMwD,QAASoF,MACxBshC,UAAS1mC,QAAUoF,KAAO,QAKrC,OAAO,YACLpF,QAAU8G,KACV1B,KAAO3I,UACP4+C,UAAY/qC,EAAE4I,KACd,IAAIoiC,SAAUF,YAAc1U,OAO5B,OANKA,WAASA,QAAUxhC,WAAW81C,MAAOlmB,OACtCwmB,UACFt/B,OAAS3gB,KAAKmB,MAAMwD,QAASoF,MAC7BpF,QAAUoF,KAAO,MAGZ4W,SAOX1L,EAAE2uB,KAAO,SAAS5jC,KAAMkgD,SACtB,MAAOjrC,GAAEkqC,QAAQe,QAASlgD,OAI5BiV,EAAEmmC,OAAS,SAAS/C,WAClB,MAAO,YACL,OAAQA,UAAUl3C,MAAMsK,KAAMrK,aAMlC6T,EAAEkrC,QAAU,WACV,GAAIp2C,MAAO3I,UACPgf,MAAQrW,KAAK7J,OAAS,CAC1B,OAAO,YAGL,IAFA,GAAID,GAAImgB,MACJO,OAAS5W,KAAKqW,OAAOjf,MAAMsK,KAAMrK,WAC9BnB,KAAK0gB,OAAS5W,KAAK9J,GAAGL,KAAK6L,KAAMkV,OACxC,OAAOA,UAKX1L,EAAEmvB,MAAQ,SAASgc,MAAOpgD,MACxB,MAAO,YACL,QAAMogD,MAAQ,EACLpgD,KAAKmB,MAAMsK,KAAMrK,WAD1B,SAOJ6T,EAAEkvB,OAAS,SAASic,MAAOpgD,MACzB,GAAI+3C,KACJ,OAAO,YAKL,QAJMqI,MAAQ,IACZrI,KAAO/3C,KAAKmB,MAAMsK,KAAMrK,YAEb,GAATg/C,QAAYpgD,KAAO,MAChB+3C,OAMX9iC,EAAE2iB,KAAO3iB,EAAEkqC,QAAQlqC,EAAEkvB,OAAQ,EAM7B,IAAIkc,cAAexuC,SAAU,MAAMyuC,qBAAqB,YACpDvH,oBAAsB,UAAW,gBAAiB,WAClC,uBAAwB,iBAAkB,iBAqB9D9jC,GAAEmU,KAAO,SAAS/oB,KAChB,IAAK4U,EAAEglC,SAAS55C,KAAM,QACtB,IAAIi5C,WAAY,MAAOA,YAAWj5C,IAClC,IAAI+oB,QACJ,KAAK,GAAIvY,OAAOxQ,KAAS4U,EAAEwe,IAAIpzB,IAAKwQ,MAAMuY,KAAKthB,KAAK+I,IAGpD,OADIwvC,aAAYxH,oBAAoBx4C,IAAK+oB,MAClCA,MAITnU,EAAEsrC,QAAU,SAASlgD,KACnB,IAAK4U,EAAEglC,SAAS55C,KAAM,QACtB,IAAI+oB,QACJ,KAAK,GAAIvY,OAAOxQ,KAAK+oB,KAAKthB,KAAK+I,IAG/B,OADIwvC,aAAYxH,oBAAoBx4C,IAAK+oB,MAClCA,MAITnU,EAAE+G,OAAS,SAAS3b,KAIlB,IAAK,GAHD+oB,MAAOnU,EAAEmU,KAAK/oB,KACdH,OAASkpB,KAAKlpB,OACd8b,OAAShK,MAAM9R,QACVD,EAAI,EAAOC,OAAJD,EAAYA,IAC1B+b,OAAO/b,GAAKI,IAAI+oB,KAAKnpB,GAEvB,OAAO+b,SAKT/G,EAAEurC,UAAY,SAASngD,IAAKy3C,SAAUnzC,SACpCmzC,SAAW5pC,GAAG4pC,SAAUnzC,QAKtB,KAAK,GADDqzC,YAHF5uB,KAAQnU,EAAEmU,KAAK/oB,KACbH,OAASkpB,KAAKlpB,OACdmnB,WAEK9hB,MAAQ,EAAWrF,OAARqF,MAAgBA,QAClCyyC,WAAa5uB,KAAK7jB,OAClB8hB,QAAQ2wB,YAAcF,SAASz3C,IAAI23C,YAAaA,WAAY33C,IAE9D,OAAOgnB,UAIXpS,EAAEwrC,MAAQ,SAASpgD,KAIjB,IAAK,GAHD+oB,MAAOnU,EAAEmU,KAAK/oB,KACdH,OAASkpB,KAAKlpB,OACdugD,MAAQzuC,MAAM9R,QACTD,EAAI,EAAOC,OAAJD,EAAYA,IAC1BwgD,MAAMxgD,IAAMmpB,KAAKnpB,GAAII,IAAI+oB,KAAKnpB,IAEhC,OAAOwgD,QAITxrC,EAAEsS,OAAS,SAASlnB,KAGlB,IAAK,GAFDsgB,WACAyI,KAAOnU,EAAEmU,KAAK/oB,KACTJ,EAAI,EAAGC,OAASkpB,KAAKlpB,OAAYA,OAAJD,EAAYA,IAChD0gB,OAAOtgB,IAAI+oB,KAAKnpB,KAAOmpB,KAAKnpB,EAE9B,OAAO0gB,SAKT1L,EAAEyrC,UAAYzrC,EAAE0rC,QAAU,SAAStgD,KACjC,GAAIugD,SACJ,KAAK,GAAI/vC,OAAOxQ,KACV4U,EAAExV,WAAWY,IAAIwQ,OAAO+vC,MAAM94C,KAAK+I,IAEzC,OAAO+vC,OAAMr6B,QAIftR,EAAEyB,OAAS0jC,eAAenlC,EAAEsrC,SAI5BtrC,EAAE4rC,UAAY5rC,EAAE6rC,OAAS1G,eAAenlC,EAAEmU,MAG1CnU,EAAEkmC,QAAU,SAAS96C,IAAKg4C,UAAW1zC,SACnC0zC,UAAYnqC,GAAGmqC,UAAW1zC,QAE1B,KAAK,GADmBkM,KAApBuY,KAAOnU,EAAEmU,KAAK/oB,KACTJ,EAAI,EAAGC,OAASkpB,KAAKlpB,OAAYA,OAAJD,EAAYA,IAEhD,GADA4Q,IAAMuY,KAAKnpB,GACPo4C,UAAUh4C,IAAIwQ,KAAMA,IAAKxQ,KAAM,MAAOwQ,MAK9CoE,EAAE8rC,KAAO,SAASjsC,OAAQksC,UAAWr8C,SACnC,GAA+BmzC,UAAU1uB,KAArCzI,UAAatgB,IAAMyU,MACvB,IAAW,MAAPzU,IAAa,MAAOsgB,OACpB1L,GAAExV,WAAWuhD,YACf53B,KAAOnU,EAAEsrC,QAAQlgD,KACjBy3C,SAAWG,WAAW+I,UAAWr8C,WAEjCykB,KAAOk0B,QAAQl8C,WAAW,GAAO,EAAO,GACxC02C,SAAW,SAAS/2C,MAAO8P,IAAKxQ,KAAO,MAAOwQ,OAAOxQ,MACrDA,IAAMuR,OAAOvR,KAEf,KAAK,GAAIJ,GAAI,EAAGC,OAASkpB,KAAKlpB,OAAYA,OAAJD,EAAYA,IAAK,CACrD,GAAI4Q,KAAMuY,KAAKnpB,GACXc,MAAQV,IAAIwQ,IACZinC,UAAS/2C,MAAO8P,IAAKxQ,OAAMsgB,OAAO9P,KAAO9P,OAE/C,MAAO4f,SAIT1L,EAAEgsC,KAAO,SAAS5gD,IAAKy3C,SAAUnzC,SAC/B,GAAIsQ,EAAExV,WAAWq4C,UACfA,SAAW7iC,EAAEmmC,OAAOtD,cACf,CACL,GAAI1uB,MAAOnU,EAAEvR,IAAI45C,QAAQl8C,WAAW,GAAO,EAAO,GAAI+uB,OACtD2nB,UAAW,SAAS/2C,MAAO8P,KACzB,OAAQoE,EAAEuT,SAASY,KAAMvY,MAG7B,MAAOoE,GAAE8rC,KAAK1gD,IAAKy3C,SAAUnzC,UAI/BsQ,EAAEisC,SAAW9G,eAAenlC,EAAEsrC,SAAS,GAKvCtrC,EAAEwkC,OAAS,SAAS5tC,UAAW8S,OAC7B,GAAIgC,QAAS45B,WAAW1uC,UAExB,OADI8S,QAAO1J,EAAE4rC,UAAUlgC,OAAQhC,OACxBgC,QAIT1L,EAAEyR,MAAQ,SAASrmB,KACjB,MAAK4U,GAAEglC,SAAS55C,KACT4U,EAAEpV,QAAQQ,KAAOA,IAAI6D,QAAU+Q,EAAEyB,UAAWrW,KADtBA,KAO/B4U,EAAEksC,IAAM,SAAS9gD,IAAK+gD,aAEpB,MADAA,aAAY/gD,KACLA,KAIT4U,EAAEosC,QAAU,SAASvsC,OAAQmJ,OAC3B,GAAImL,MAAOnU,EAAEmU,KAAKnL,OAAQ/d,OAASkpB,KAAKlpB,MACxC,IAAc,MAAV4U,OAAgB,OAAQ5U,MAE5B,KAAK,GADDG,KAAMuR,OAAOkD,QACR7U,EAAI,EAAOC,OAAJD,EAAYA,IAAK,CAC/B,GAAI4Q,KAAMuY,KAAKnpB,EACf,IAAIge,MAAMpN,OAASxQ,IAAIwQ,QAAUA,MAAOxQ,MAAM,OAAO,EAEvD,OAAO,EAKT,IAAI+lB,IAAK,SAASyD,EAAGC,EAAGw3B,OAAQC,QAG9B,GAAI13B,IAAMC,EAAG,MAAa,KAAND,GAAW,EAAIA,IAAM,EAAIC,CAE7C,IAAS,MAALD,GAAkB,MAALC,EAAW,MAAOD,KAAMC,CAErCD,aAAa5U,KAAG4U,EAAIA,EAAE8vB,UACtB7vB,YAAa7U,KAAG6U,EAAIA,EAAE6vB,SAE1B,IAAIjpB,WAAY7e,SAASjS,KAAKiqB,EAC9B,IAAI6G,YAAc7e,SAASjS,KAAKkqB,GAAI,OAAO,CAC3C,QAAQ4G,WAEN,IAAK,kBAEL,IAAK,kBAGH,MAAO,GAAK7G,GAAM,GAAKC,CACzB,KAAK,kBAGH,OAAKD,KAAOA,GAAWC,KAAOA,EAEhB,KAAND,EAAU,GAAKA,IAAM,EAAIC,GAAKD,KAAOC,CAC/C,KAAK,gBACL,IAAK,mBAIH,OAAQD,KAAOC,EAGnB,GAAI03B,WAA0B,mBAAd9wB,SAChB,KAAK8wB,UAAW,CACd,GAAgB,gBAAL33B,IAA6B,gBAALC,GAAe,OAAO,CAIzD,IAAI23B,OAAQ53B,EAAE/D,YAAa47B,MAAQ53B,EAAEhE,WACrC,IAAI27B,QAAUC,SAAWzsC,EAAExV,WAAWgiD,QAAUA,gBAAiBA,QACxCxsC,EAAExV,WAAWiiD,QAAUA,gBAAiBA,SACzC,eAAiB73B,IAAK,eAAiBC,GAC7D,OAAO,EAQXw3B,OAASA,WACTC,OAASA,UAET,KADA,GAAIrhD,QAASohD,OAAOphD,OACbA,UAGL,GAAIohD,OAAOphD,UAAY2pB,EAAG,MAAO03B,QAAOrhD,UAAY4pB,CAQtD,IAJAw3B,OAAOx5C,KAAK+hB,GACZ03B,OAAOz5C,KAAKgiB,GAGR03B,UAAW,CAGb,GADAthD,OAAS2pB,EAAE3pB,OACPA,SAAW4pB,EAAE5pB,OAAQ,OAAO,CAEhC,MAAOA,UACL,IAAKkmB,GAAGyD,EAAE3pB,QAAS4pB,EAAE5pB,QAASohD,OAAQC,QAAS,OAAO,MAEnD,CAEL,GAAsB1wC,KAAlBuY,KAAOnU,EAAEmU,KAAKS,EAGlB,IAFA3pB,OAASkpB,KAAKlpB,OAEV+U,EAAEmU,KAAKU,GAAG5pB,SAAWA,OAAQ,OAAO,CACxC,MAAOA,UAGL,GADA2Q,IAAMuY,KAAKlpB,SACL+U,EAAEwe,IAAI3J,EAAGjZ,OAAQuV,GAAGyD,EAAEhZ,KAAMiZ,EAAEjZ,KAAMywC,OAAQC,QAAU,OAAO,EAMvE,MAFAD,QAAO9tC,MACP+tC,OAAO/tC,OACA,EAITyB,GAAE0sC,QAAU,SAAS93B,EAAGC,GACtB,MAAO1D,IAAGyD,EAAGC,IAKf7U,EAAE2sC,QAAU,SAASvhD,KACnB,MAAW,OAAPA,KAAoB,EACpB63C,YAAY73C,OAAS4U,EAAEpV,QAAQQ,MAAQ4U,EAAE4sC,SAASxhD,MAAQ4U,EAAE0oC,YAAYt9C,MAA6B,IAAfA,IAAIH,OAChE,IAAvB+U,EAAEmU,KAAK/oB,KAAKH,QAIrB+U,EAAE6sC,UAAY,SAASzhD,KACrB,SAAUA,KAAwB,IAAjBA,IAAI2T,WAKvBiB,EAAEpV,QAAUw5C,eAAiB,SAASh5C,KACpC,MAA8B,mBAAvBwR,SAASjS,KAAKS,MAIvB4U,EAAEglC,SAAW,SAAS55C,KACpB,GAAIkQ,YAAclQ,IAClB,OAAgB,aAATkQ,MAAgC,WAATA,QAAuBlQ,KAIvD4U,EAAEnV,MAAM,YAAa,WAAY,SAAU,SAAU,OAAQ,SAAU,SAAU,SAAS6C,MACxFsS,EAAE,KAAOtS,MAAQ,SAAStC,KACxB,MAAOwR,UAASjS,KAAKS,OAAS,WAAasC,KAAO,OAMjDsS,EAAE0oC,YAAYv8C,aACjB6T,EAAE0oC,YAAc,SAASt9C,KACvB,MAAO4U,GAAEwe,IAAIpzB,IAAK,YAMJ,kBAAP,KAAyC,gBAAb0hD,aACrC9sC,EAAExV,WAAa,SAASY,KACtB,MAAqB,kBAAPA,OAAqB,IAKvC4U,EAAE+sC,SAAW,SAAS3hD,KACpB,MAAO2hD,UAAS3hD,OAASu4C,MAAMr7B,WAAWld,OAI5C4U,EAAE2jC,MAAQ,SAASv4C,KACjB,MAAO4U,GAAEgtC,SAAS5hD,MAAQA,OAASA,KAIrC4U,EAAE+oC,UAAY,SAAS39C,KACrB,MAAOA,QAAQ,GAAQA,OAAQ,GAAgC,qBAAvBwR,SAASjS,KAAKS,MAIxD4U,EAAEitC,OAAS,SAAS7hD,KAClB,MAAe,QAARA,KAIT4U,EAAEktC,YAAc,SAAS9hD,KACvB,MAAe,UAARA,KAKT4U,EAAEwe,IAAM,SAASpzB,IAAKwQ,KACpB,MAAc,OAAPxQ,KAAeyR,eAAelS,KAAKS,IAAKwQ,MAQjDoE,EAAE0iC,WAAa,WAEb,MADA7jB,MAAK7e,EAAIikC,mBACFztC,MAITwJ,EAAE+kC,SAAW,SAASj5C,OACpB,MAAOA,QAITkU,EAAEmtC,SAAW,SAASrhD,OACpB,MAAO,YACL,MAAOA,SAIXkU,EAAEwB,KAAO,aAETxB,EAAEilC,SAAWA,SAGbjlC,EAAEotC,WAAa,SAAShiD,KACtB,MAAc,OAAPA,IAAc,aAAe,SAASwQ,KAC3C,MAAOxQ,KAAIwQ,OAMfoE,EAAE0V,QAAU1V,EAAEmH,QAAU,SAAS6B,OAE/B,MADAA,OAAQhJ,EAAE4rC,aAAc5iC,OACjB,SAAS5d,KACd,MAAO4U,GAAEosC,QAAQhhD,IAAK4d,SAK1BhJ,EAAEmrC,MAAQ,SAAS7pB,EAAGuhB,SAAUnzC,SAC9B,GAAI29C,OAAQtwC,MAAMsK,KAAKC,IAAI,EAAGga,GAC9BuhB,UAAWG,WAAWH,SAAUnzC,QAAS,EACzC,KAAK,GAAI1E,GAAI,EAAOs2B,EAAJt2B,EAAOA,IAAKqiD,MAAMriD,GAAK63C,SAAS73C,EAChD,OAAOqiD,QAITrtC,EAAE2R,OAAS,SAAS+xB,IAAKp8B,KAKvB,MAJW,OAAPA,MACFA,IAAMo8B,IACNA,IAAM,GAEDA,IAAMr8B,KAAKoiC,MAAMpiC,KAAKsK,UAAYrK,IAAMo8B,IAAM,KAIvD1jC,EAAE4I,IAAM7U,KAAK6U,KAAO,WAClB,OAAO,GAAI7U,OAAOC,UAIpB,IAAIs5C,YACFC,IAAK,QACLC,IAAK,OACLnwB,IAAK,OACLowB,IAAK,SACLC,IAAK,SACLC,IAAK,UAEHC,YAAc5tC,EAAEsS,OAAOg7B,WAGvBO,cAAgB,SAASp/C,KAC3B,GAAIq/C,SAAU,SAAS1yC,OACrB,MAAO3M,KAAI2M,QAGTzP,OAAS,MAAQqU,EAAEmU,KAAK1lB,KAAKU,KAAK,KAAO,IACzC4+C,WAAahiD,OAAOJ,QACpBqiD,cAAgBjiD,OAAOJ,OAAQ,IACnC,OAAO,UAASsmB,QAEd,MADAA,QAAmB,MAAVA,OAAiB,GAAK,GAAKA,OAC7B87B,WAAWj/C,KAAKmjB,QAAUA,OAAOljB,QAAQi/C,cAAeF,SAAW77B,QAG9EjS,GAAEiuC,OAASJ,cAAcP,WACzBttC,EAAEkuC,SAAWL,cAAcD,aAI3B5tC,EAAE0L,OAAS,SAAS7L,OAAQolC,SAAUkJ,UACpC,GAAIriD,OAAkB,MAAV+T,OAAiB,OAASA,OAAOolC,SAI7C,OAHc,UAAVn5C,QACFA,MAAQqiD,UAEHnuC,EAAExV,WAAWsB,OAASA,MAAMnB,KAAKkV,QAAU/T,MAKpD,IAAIsiD,WAAY,CAChBpuC,GAAEquC,SAAW,SAASh+C,QACpB,GAAIvD,MAAOshD,UAAY,EACvB,OAAO/9C,QAASA,OAASvD,GAAKA,IAKhCkT,EAAEsuC,kBACAC,SAAc,kBACdC,YAAc,mBACdP,OAAc,mBAMhB,IAAIQ,SAAU,OAIVC,SACFhB,IAAU,IACViB,KAAU,KACVC,KAAU,IACVC,KAAU,IACVC,SAAU,QACVC,SAAU,SAGRjB,QAAU,4BAEVkB,WAAa,SAAS5zC,OACxB,MAAO,KAAOszC,QAAQtzC,OAOxB4E,GAAEivC,SAAW,SAAS12C,KAAMyjC,SAAUkT,cAC/BlT,UAAYkT,cAAalT,SAAWkT,aACzClT,SAAWh8B,EAAEisC,YAAajQ,SAAUh8B,EAAEsuC,iBAGtC,IAAI54B,SAAU3pB,SACXiwC,SAASiS,QAAUQ,SAAS9iD,QAC5BqwC,SAASwS,aAAeC,SAAS9iD,QACjCqwC,SAASuS,UAAYE,SAAS9iD,QAC/BwD,KAAK,KAAO,KAAM,KAGhBmB,MAAQ,EACR3E,OAAS,QACb4M,MAAKxJ,QAAQ2mB,QAAS,SAASta,MAAO6yC,OAAQO,YAAaD,SAAU1N,QAanE,MAZAl1C,SAAU4M,KAAKtJ,MAAMqB,MAAOuwC,QAAQ9xC,QAAQ++C,QAASkB,YACrD1+C,MAAQuwC,OAASzlC,MAAMnQ,OAEnBgjD,OACFtiD,QAAU,cAAgBsiD,OAAS,iCAC1BO,YACT7iD,QAAU,cAAgB6iD,YAAc,uBAC/BD,WACT5iD,QAAU,OAAS4iD,SAAW,YAIzBnzC,QAETzP,QAAU,OAGLqwC,SAASmT,WAAUxjD,OAAS,mBAAqBA,OAAS,OAE/DA,OAAS,4FAEPA,OAAS,eAEX,KACE,GAAIyjD,QAAS,GAAIjV,UAAS6B,SAASmT,UAAY,MAAO,IAAKxjD,QAC3D,MAAOsB,GAEP,KADAA,GAAEtB,OAASA,OACLsB,EAGR,GAAIgiD,UAAW,SAASvzC,MACtB,MAAO0zC,QAAOzkD,KAAK6L,KAAMkF,KAAMsE,IAI7BqV,SAAW2mB,SAASmT,UAAY,KAGpC,OAFAF,UAAStjD,OAAS,YAAc0pB,SAAW,OAAS1pB,OAAS,IAEtDsjD,UAITjvC,EAAEqvC,MAAQ,SAASjkD,KACjB,GAAIkkD,UAAWtvC,EAAE5U,IAEjB,OADAkkD,UAASC,QAAS,EACXD,SAUT,IAAI5jC,QAAS,SAAS4jC,SAAUlkD,KAC9B,MAAOkkD,UAASC,OAASvvC,EAAE5U,KAAKikD,QAAUjkD,IAI5C4U,GAAEvU,MAAQ,SAASL,KACjB4U,EAAEnV,KAAKmV,EAAEyrC,UAAUrgD,KAAM,SAASsC,MAChC,GAAI3C,MAAOiV,EAAEtS,MAAQtC,IAAIsC,KACzBsS,GAAEpJ,UAAUlJ,MAAQ,WAClB,GAAIoH,OAAQ0B,KAAKkuC,SAEjB,OADA7xC,MAAK3G,MAAM4I,KAAM3I,WACVuf,OAAOlV,KAAMzL,KAAKmB,MAAM8T,EAAGlL,WAMxCkL,EAAEvU,MAAMuU,GAGRA,EAAEnV,MAAM,MAAO,OAAQ,UAAW,QAAS,OAAQ,SAAU,WAAY,SAAS6C,MAChF,GAAIqwC,QAASmG,WAAWx2C,KACxBsS,GAAEpJ,UAAUlJ,MAAQ,WAClB,GAAItC,KAAMoL,KAAKkuC,QAGf,OAFA3G,QAAO7xC,MAAMd,IAAKe,WACJ,UAATuB,MAA6B,WAATA,MAAqC,IAAftC,IAAIH,cAAqBG,KAAI,GACrEsgB,OAAOlV,KAAMpL,QAKxB4U,EAAEnV,MAAM,SAAU,OAAQ,SAAU,SAAS6C,MAC3C,GAAIqwC,QAASmG,WAAWx2C,KACxBsS,GAAEpJ,UAAUlJ,MAAQ,WAClB,MAAOge,QAAOlV,KAAMunC,OAAO7xC,MAAMsK,KAAKkuC,SAAUv4C,eAKpD6T,EAAEpJ,UAAU9K,MAAQ,WAClB,MAAO0K,MAAKkuC;EAKd1kC,EAAEpJ,UAAU44C,QAAUxvC,EAAEpJ,UAAU2K,OAASvB,EAAEpJ,UAAU9K,MAEvDkU,EAAEpJ,UAAUgG,SAAW,WACrB,MAAO,GAAKpG,KAAKkuC,UAUG,kBAAXp6C,SAAyBA,OAAOkU,KACzClU,OAAO,gBAAkB,WACvB,MAAO0V,MAGXrV,KAAK6L,MAQP,WAmCI,QAASi5C,oBA4CT,QAASC,kBAqBT,QAASC,QAAOjiD,KAAM6tB,QAClB/kB,KAAKo5C,YACLp5C,KAAK9I,KAAKA,MAAQ,GAClB8I,KAAKq5C,QAAQt0B,QAAU,KAClBA,SACD/kB,KAAKs5C,UAAS,EACdt5C,KAAKu5C,OAAOC,MAAMC,MAgF1B,QAASC,aACL,MAAOC,QAGX,QAASC,WAAUzxC,GACfwxC,OAAOxxC,EA7LNw7B,SAASvjC,UAAU5K,OACpBmuC,SAASvjC,UAAU5K,KAAO,SAAUqkD,OAChC,GAAoB,kBAAT75C,MAEP,KAAM,IAAIwzC,WAAU,uEAGxB,IAAIsG,OAAQvzC,MAAMnG,UAAU3H,MAAMtE,KAAKwB,UAAW,GAC9CokD,QAAU/5C,KACVg6C,KAAO,aACPC,OAAS,WACL,MAAOF,SAAQrkD,MAAMsK,eAAgBg6C,OAC7BH,MAAQ75C,KAAO65C,MACfC,MAAMphD,OAAO6N,MAAMnG,UAAU3H,MAAMtE,KAAKwB,aAKxD,OAHAqkD,MAAK55C,UAAYJ,KAAKI,UACtB65C,OAAO75C,UAAY,GAAI45C,MAEhBC,QAIf,IAAI5xB,MACAsxB,OAEAH,OACAU,MAAO,GACPC,KAAM,GACNV,KAAM,GACNW,MAAO,GACPC,MAAO,GAMXpB,iBAAgB74C,WACZ6xC,OAAS,SAASqI,SAAUC,MAAOC,UAG/B,GAA4B,mBAAjBh0C,QAAOpF,SAA8C,mBAAdA,SAAQq5C,IAA1D,CAEIH,UACAE,SAASvjC,QAAQqjC,SAAS,IAC9B,IAAII,SAAUF,SAAS7hD,KAAK,IAI5B,IAA0BuI,eAAfE,SAAQu5C,KAAkB,CACjC,GAAIC,WAEAA,YADAL,OAAOf,MAAMU,MACF,QACNK,OAAOf,MAAMW,KACP,OACNI,OAAOf,MAAMC,KACP,OACNc,OAAOf,MAAMY,MACP,QAEA,QACfh5C,QAAQq5C,IAAI,IAAIG,WAAW,KAAKF,aAE5BH,QAAOf,MAAMU,OAEbQ,QAAQ,WAAWA,QACnBt5C,QAAQq5C,IAAIC,UACLH,OAAOf,MAAMW,KACpB/4C,QAAQu5C,KAAKD,SACRH,OAAOf,MAAMC,KAClBr4C,QAAQy5C,KAAKH,SAEbt5C,QAAQ5F,MAAMk/C,YAS9BxB,cAAc94C,WACV6xC,OAAQ,SAASqI,SAAUC,MAAOC,UAC1BF,UACAE,SAASvjC,QAAQqjC,SAAS,KAC1BC,OAAOf,MAAMU,OAEbM,SAASvjC,QAAQ,WACjB7V,QAAQq5C,IAAI/kD,MAAM0L,QAASo5C,WACpBD,OAAOf,MAAMW,KACpB/4C,QAAQu5C,KAAKjlD,MAAM0L,QAASo5C,UACvBD,OAAOf,MAAMC,KAClBr4C,QAAQy5C,KAAKnlD,MAAM0L,QAASo5C,UAE5Bp5C,QAAQ5F,MAAM9F,MAAM0L,QAASo5C,YAezCrB,OAAO/4C,WACH06C,UAAW,SAAS5jD,MAIhB,IAHA,GAAI6jD,MAAO7jD,KAAKf,MAAM,KAClBkyB,KAAOroB,KACPg7C,MAAQh7C,KAAK9I,MAAQ8I,KAAK9I,SACvB6jD,KAAKtmD,QAAQ,CAChB,GAAIwmD,OAAQF,KAAKvhD,OACjBwhD,OAAM3+C,KAAK4+C,OACLA,QAAS5yB,MAAK+wB,WAChB/wB,KAAK+wB,SAAS6B,OAAS,GAAI9B,QAAO6B,MAAMriD,KAAK,KAAM0vB,OACvDA,KAAKA,KAAK+wB,SAAS6B,OAEvB,MAAO5yB,OAGX6yB,SAAU,SAASzxC,MACf,GAAIvQ,SAAQ8G,IAEZ,KADAyJ,KAAK,IAAIA,KACQ,OAAVvQ,SAAgB,CACnB,GAAoBgI,SAAhBhI,QAAQuQ,MACR,MAAOvQ,SAAQuQ,KACnBvQ,SAAQA,QAAQmgD,QAEpB,MAAO,OAGX8B,WAAY,SAASliC,OACjBjZ,KAAKs5C,WAAWrgC,OAGpBmiC,UAAW,WACPp7C,KAAKk7C,SAAS,YAGlBG,SAAU,SAASd,OACI,gBAARA,OACPv6C,KAAKu5C,OAAOgB,MACQ,gBAARA,SACZA,MAAMA,MAAMtqC,cACRsqC,QAASf,SACTx5C,KAAKu5C,OAAOC,MAAMe,UAI9Be,SAAU,WACN,MAAOt7C,MAAKk7C,SAAS,UAGzBT,IAAK,SAASF,MAAOC,WACZA,SAAS/lD,SAAWuL,KAAKk7C,SAAS,YAAcX,MAAMv6C,KAAKk7C,SAAS,WAEzEV,SAASj0C,MAAMnG,UAAU3H,MAAMtE,KAAKqmD,UACpCb,OAAO1H,OAAOjyC,KAAK9I,KAAMqjD,MAAOC,YAGpCe,MAAO,WACHv7C,KAAKy6C,IAAIjB,MAAMU,MAAOvkD,YAG1BglD,KAAM,WACF36C,KAAKy6C,IAAIjB,MAAMW,KAAMxkD,YAGzBklD,KAAM,WACF76C,KAAKy6C,IAAIjB,MAAMC,KAAM9jD,YAGzB6F,MAAO,WACHwE,KAAKy6C,IAAIjB,MAAMY,MAAOzkD,YAG1B6lD,MAAO,WACHx7C,KAAKy6C,IAAIjB,MAAMa,MAAO1kD,aAe1BikD,UAHCpzC,OAAOpF,SAAYoF,OAAOpF,QAAQq5C,KAA2C,kBAA7Bj0C,QAAOpF,QAAQq5C,IAAI/kD,MAG1D,GAAIwjD,eAFJ,GAAID,kBAKlB5wB,KAAK,GAAI8wB,OAKT,KAHA,GACIv0C,OADA62C,UAAY,6BAGwC,QAAhD72C,MAAM62C,UAAUp5C,KAAKmE,OAAOpD,SAASs4C,UAAiB,CAC1D,GAAIC,QAAqB,KAAX/2C,MAAM,GAAWyjB,KAAOA,KAAKyyB,UAAUl2C,MAAM,GAAGnM,MAAM,GACpEkjD,QAAON,SAASz2C,MAAM,GAAGqL,eAG7B,GAAI2rC,MACApC,MAAOA,MACPsB,UAAWzyB,KAAKyyB,UAAUtlD,KAAK6yB,MAC/B8yB,WAAY9yB,KAAK8yB,WAAW3lD,KAAK6yB,MACjC+yB,UAAW/yB,KAAK+yB,UAAU5lD,KAAK6yB,MAC/BgzB,SAAUhzB,KAAKgzB,SAAS7lD,KAAK6yB,MAC7BizB,SAAUjzB,KAAKizB,SAAS9lD,KAAK6yB,MAC7BkzB,MAAOlzB,KAAKkzB,MAAM/lD,KAAK6yB,MACvBsyB,KAAMtyB,KAAKsyB,KAAKnlD,KAAK6yB,MACrBwyB,KAAMxyB,KAAKwyB,KAAKrlD,KAAK6yB,MACrB7sB,MAAO6sB,KAAK7sB,MAAMhG,KAAK6yB,MACvBmzB,MAAOnzB,KAAKmzB,MAAMhmD,KAAK6yB,MACvBqxB,UAAWA,UACXE,UAAWA,UAKK,mBAAT9lD,QACPA,OAAO,aAAe,WAClB,MAAO8nD,OAGXp1C,OAAOq1C,QAAQD,OAQvB9nD,OAAO,cACH,WACD,SAAS+nD,SACR,GAAIpB,KAAMoB,QAAQf,UAAU,WAC5B,OAAOL,OAGX3mD,OAAO,aACH,UACD,SAASm4C,GAgJR,QAASoI,UAAS9/C,KAAMy5B,MACpB,GAAI4R,QACJ,OAAO,YACH,GAAI1mC,SAAU8G,KAAM1B,KAAO3I,UACvBu+C,MAAQ,WACRtU,QAAU,KACVrrC,KAAKmB,MAAMwD,QAASoF,MAExBuhC,cAAaD,SACbA,QAAUxhC,WAAW81C,MAAOlmB,OAKpC,QAASwgB,UAAS55C,KACd,GAAIkQ,YAAclQ,IAClB,OAAgB,aAATkQ,MAAgC,WAATA,QAAuBlQ,IAIzD,QAASqW,QAAOrW,KACZ,IAAK45C,SAAS55C,KAAM,MAAOA,IAE3B,KAAK,GADDO,QAAQN,KACHL,EAAI,EAAGC,OAASkB,UAAUlB,OAAYA,OAAJD,EAAYA,IAAK,CACxDW,OAASQ,UAAUnB,EACnB,KAAKK,OAAQM,QACLkR,eAAelS,KAAKgB,OAAQN,QAC5BD,IAAIC,MAAQM,OAAON,OAI/B,MAAOD,KAIX,QAASknD,WAAU18B,KAAMhlB,KACrB,MAAyB,KAArBA,IAAIL,QAAQ,QAAwB,MAATK,IAAI,GACxBA,IACJglB,KAAK3mB,MAAM,EAAG2mB,KAAKpb,YAAY,KAAK,GAAK5J,IAGpD,QAAS2hD,WAAUx2B,OAEf,IAAK,GADDy2B,QACKC,MAAM12B,MAAMpsB,WAAY8iD,OAA0B,KAAjBA,MAAM1zC,SAAe0zC,MAAMA,MAAM9iD,WACvE,GAAoB,UAAhB8iD,MAAMC,QACN,MAAOD,MASf,OANI12B,OAAMjvB,KACN0lD,OAAS/P,EAAE,cAAe1mB,MAAMjvB,GAAG,OAEnC0lD,QAA0B,IAAhBA,OAAOvnD,QAAc8wB,MAAMiQ,OACrCwmB,OAAS/P,EAAE,cAAe1mB,MAAMruB,KAAK,KAAOquB,MAAMiQ,OAElDwmB,QAAUA,OAAOvnD,OACVunD,OAAO,GAEP,KAKf,QAASG,mBAAkB/sB,IACxB,GAAIgtB,MAAOhtB,GAAG8b,wBACVmR,MAAQxmD,SAASyZ,gBACjBgtC,OAAS91C,OAAO+1C,YAAcF,MAAMG,YACpCC,QAAUj2C,OAAOk2C,aAAeL,MAAMM,YAEzC,SAAIP,KAAKrL,MAAM,GAAKqL,KAAKQ,OAAO,GAAKR,KAAKliB,KAAKoiB,QAAUF,KAAKp3B,IAAIy3B,SAMtE,QAASI,cAAarZ,KAClB,MAAOA,KAAIjrC,QAAQ,sCAAuC,QAG9D,QAASukD,qBAAoBC,SAAU7a,SACnC,GAA2B,KAAvBA,QAAQnoC,QAAQ,KAChBgjD,SAASza,YAAYJ,aACpB,CACD,GAAIhjB,SAAUgjB,QAAQ3pC,QAAQ,6BAA8B,OAC5D2mB,SAAUA,QAAQ3mB,QAAQ,OAAQ,MAClC2mB,QAAU,GAAI3pB,QAAO,IAAM2pB,QAAU,KACrC69B,SAASh0C,OAAO,WAAW1U,KAAK,WAI5B,IAAK,GAHD2oD,OAAQ/Q,EAAEjsC,MACVkiC,QAAU8a,MAAM9vC,KAAK,SAAS/W,MAAM,OACpC8mD,MACKzoD,EAAE,EAAGA,EAAE0tC,QAAQztC,OAAQD,IACvB0qB,QAAQ5mB,KAAK4pC,QAAQ1tC,KACtByoD,GAAG5gD,KAAK6lC,QAAQ1tC,GACpByoD,IAAGxoD,OACHuoD,MAAM9vC,KAAK,QAAS+vC,GAAGtkD,KAAK,MAE5BqkD,MAAMnc,WAAW,YAWjC,QAASqc,YAAWC,OAAQjV,QAAS5nC,QAAS88C,cAC1C,GAAI1nC,UAAiC,QAArBpV,QAAQ+8C,YAA2C,SAArB/8C,QAAQ+8C,WAAuB,KAAO/8C,QAAQg9C,OAAO5nC,QAEnGynC,QAAO7a,YAAY,6BACnB,IAAIib,YAAa,WACbJ,OACK7a,YAAY,eACZL,SAASiG,QAAU,UAAY,UAC/BpW,QAAQ,cACA1K,QAASg2B,aACTC,WAAY,aAE7B,IAAK3nC,SAIE,CACH,GAAIkb,GAAI4sB,YAAYl9C,QAAQ+8C,WAC5BF,QACKlb,SAAS,eACTnQ,QAAQ,cACA1K,QAASg2B,aACTC,WAAY,UACzBF,OAAOjV,QAAUtX,EAAEvgB,KAAOugB,EAAEnc,OACxBiB,SAAUA,SACVzD,OAAQ3R,QAAQg9C,OAAOrrC,OACvByE,SAAU6mC,iBAbW,QAArBj9C,QAAQ+8C,YACRF,OAAOjV,QAAU,OAAS,UAC9BqV,aAgBR,QAASE,sBAAqBC,QAAS1mB,MAAO1hC,OAQ1C,GAAI6b,KAAM,GAAI5b,QAAO,YAAcyhC,MAAQ,iBACvCiG,MAAQygB,QAAQt3C,WAAWjQ,MAAM,KACjCiE,IAAM6iC,MAAM,GACZ7U,KAAO6U,MAAM,GACb0gB,QAAU,QACVC,OAASxjD,GAeb,OAVIwjD,QAHAzsC,IAAI7Y,KAAK8B,KAGAA,IAAI7B,QAAQ4Y,IAAK,KAAO6lB,MAAQ,IAAM1hC,OACxCqoD,QAAQrlD,KAAK8B,KAGXA,IAAM,IAAM48B,MAAQ,IAAM1hC,MAG1B8E,IAAM,IAAM48B,MAAQ,IAAM1hC,MAEnC8yB,OAAQw1B,QAAU,IAAMx1B,MACrBw1B,OAnTX3R,EAAEx2C,GAAGooD,UAAY,WACb,GAAIC,QAAS99C,KAAKib,OAWlB,OARuB/Z,UAAnB+qC,EAAE8R,QAAQC,MACVF,OAAOG,cAAc,uBAAuB5pD,KAAK,SAASG,EAAGy4C,MACzD,GAAIiR,OAAQjS,EAAEgB,KACViR,OAAMhxC,KAAK,iBAAmBgxC,MAAM/sC,OACpC+sC,MAAM/sC,IAAI,MAIf2sC,QAKNv3C,MAAMnG,UAAU6uC,UACjB1oC,MAAMnG,UAAU6uC,QAAU,SAAS1rC,SAAU46C,SACzC,GAAIC,GAAGC,CACP,IAAa,OAATr+C,KACA,KAAM,IAAIwzC,WAAU,+BAGxB,IAAI8K,GAAIn4C,OAAOnG,MAGX6a,IAAMyjC,EAAE7pD,SAAW,CAGvB,IAAwB,kBAAb8O,UACP,KAAM,IAAIiwC,WAAUjwC,SAAW,qBASnC,KANI5N,UAAUlB,OAAS,IACnB2pD,EAAID,SAGRE,EAAI,EAEOxjC,IAAJwjC,GAAS,CACZ,GAAIE,OAMAF,KAAKC,KAELC,OAASD,EAAED,GAGX96C,SAASpP,KAAKiqD,EAAGG,OAAQF,EAAGC,IAGhCD,MAMZ,IAAIG,yBAA0B,SAAUp3B,QAASmgB,OAAQjnC,SAQrD,GAAI08C,OAAQh9C,IAkBZ,OAjBAg9C,OAAM3oD,KAAK,WACP,GAAIoqD,KAAKC,IAAMzS,EAAEjsC,KAEjB,IADAy+C,IAAMr3B,QAAQ7oB,KAAKmgD,IAAKp+C,SACpBinC,OAAQ,CACR,GAAoBrmC,SAAhBu9C,IAAIlX,QAGJ,MAFA0E,GAAEzwC,MAAM,UAAY+rC,OACZ,6BAA+BngB,QAAQlwB,OACxC,CAEX,IAAyB,MAArBqwC,OAAO/uC,OAAO,GAGd,MAFAyzC,GAAEzwC,MAAM,UAAY+rC,OACZ,yBAA2BngB,QAAQlwB,OACpC,CAEXunD,KAAIlX,QAAQ7xC,MAAM+oD,KAAMn+C,aAGzB08C,OAGP2B,wBAA0B,SAAUv3B,QAASmgB,OAAQjnC,SASrD,GAAI08C,OAAQh9C,IACZ,IAAIunC,OAAQ,CACR,GAAIngB,QAAQmgB,QACR,MAAOngB,SAAQmgB,QAAQ7xC,MAAMsnD,OAAQA,OAAOtkD,QAAQ4H,UAEpD2rC,GAAEzwC,MAAM,UAAY+rC,OACZ,6BAA+BngB,QAAQlwB,UAGnDkwB,SAAQ7oB,KAAK7I,MAAMsnD,OAAQA,OAAOtkD,QAAQ4H,UAE9C,OAAO08C,QAGP4B,aAAe,SAASx3B,SACxB,MAAO,UAASmgB,OAAQjnC,SACpB,GAAI08C,OAAQh9C,IACZ,OAAqB,KAAjBg9C,MAAMvoD,OACCuoD,OAEW,gBAAXzV,UACPjnC,QAAUinC,OACVA,OAASrmC,QAEU,kBAAZkmB,SACAo3B,wBAAwBrqD,KAAK6L,KAAMonB,QAASmgB,OAAQjnC,SAEpDq+C,wBAAwBxqD,KAAK6L,KAAMonB,QAASmgB,OAAQjnC,YAoHnEk9C,aACAqB,MAAOpqC,KAAM,OAAQpE,KAAM,QAC3ByuC,MAAOrqC,KAAM,UAAWpE,KAAM,UAC9B0uC,OAAQtqC,KAAM,UAAWpE,KAAM,cAiE/B2uC,OAEAJ,aAAcA,aACdvK,SAAUA,SACVwI,aAAcA,aACdrO,SAAUA,SACVvjC,OAAQA,OACR6wC,UAAWA,UACXC,UAAWA,UACXI,kBAAmBA,kBACnBW,oBAAqBA,oBACrBI,WAAYA,WACZO,qBAAsBA,qBAE1B,OAAOuB,SAGXlrD,OAAO,gBAAgB,WAGdyS,MAAMnG,UAAUwvC,QAEjBrpC,MAAMnG,UAAUwvC,MAAQ,SAASqP,KAE7B,YAEA,IAAa,OAATj/C,KACA,KAAM,IAAIwzC,UAEd,IAAI5iB,GAAIzqB,OAAOnG,MACX6a,IAAM+V,EAAEn8B,SAAW,CACvB,IAAmB,kBAARwqD,KACP,KAAM,IAAIzL,UAGd,KAAK,GADD0L,OAAQvpD,UAAU,GACbnB,EAAI,EAAOqmB,IAAJrmB,EAASA,IAErB,GAAIA,IAAKo8B,KAAMquB,IAAI9qD,KAAK+qD,MAAOtuB,EAAEp8B,GAAIA,EAAGo8B,GACpC,OAAO,CAGf,QAAO,IAMVrqB,MAAMnG,UAAU2I,SACjBxC,MAAMnG,UAAU2I,OAAS,SAASk2C,KAC9B,YAEA,IAAa,OAATj/C,KACA,KAAM,IAAIwzC,UAEd,IAAI5iB,GAAIzqB,OAAOnG,MACX6a,IAAM+V,EAAEn8B,SAAW,CACvB,IAAmB,kBAARwqD,KACP,KAAM,IAAIzL,UAId,KAAK,GAFD2L,QACAD,MAAQvpD,UAAU,GACbnB,EAAI,EAAOqmB,IAAJrmB,EAASA,IAErB,GAAIA,IAAKo8B,GACT,CACI,GAAIzf,KAAMyf,EAAEp8B,EACRyqD,KAAI9qD,KAAK+qD,MAAO/tC,IAAK3c,EAAGo8B,IACxBuuB,IAAI9iD,KAAK8U,KAIrB,MAAOguC,OAQT54C,MAAMnG,UAAU6uC,UAElB1oC,MAAMnG,UAAU6uC,QAAU,SAAU1rC,SAAU46C,SAE1C,GAAIC,GAAGC,CAEP,IAAc,OAATr+C,KACD,KAAM,IAAIwzC,WAAW,+BAIzB,IAAI8K,GAAIn4C,OAAOnG,MAIX6a,IAAMyjC,EAAE7pD,SAAW,CAIvB,IAAoC,yBAA5B2R,SAASjS,KAAKoP,UAClB,KAAM,IAAIiwC,WAAWjwC,SAAW,qBAYpC,KARK46C,UACDC,EAAID,SAIRE,EAAI,EAGOxjC,IAAJwjC,GAAU,CAEb,GAAIE,OAOCF,KAAKC,KAGNC,OAASD,EAAGD,GAIZ96C,SAASpP,KAAMiqD,EAAGG,OAAQF,EAAGC,IAGjCD,OAQP93C,MAAMnG,UAAUrG,UACjBwM,MAAMnG,UAAUrG,QAAU,SAAUqlD,eAChC,YACA,IAAa,OAATp/C,KACA,KAAM,IAAIwzC,UAEd,IAAI5iB,GAAIzqB,OAAOnG,MACX6a,IAAM+V,EAAEn8B,SAAW,CACvB,IAAY,IAARomB,IACA,MAAO,EAEX,IAAIiQ,GAAI,CASR,IARIn1B,UAAUlB,OAAS,IACnBq2B,EAAIu0B,OAAO1pD,UAAU,IACjBm1B,IAAMA,EACNA,EAAI,EACS,IAANA,GAAWA,IAAM4jB,EAAAA,GAAY5jB,MAAO4jB,EAAAA,KAC3C5jB,GAAKA,EAAI,GAAK,IAAMja,KAAKoiC,MAAMpiC,KAAKyuC,IAAIx0B,MAG5CA,GAAKjQ,IACL,MAAO,EAGX,KADA,GAAIwjC,GAAIvzB,GAAK,EAAIA,EAAIja,KAAKC,IAAI+J,IAAMhK,KAAKyuC,IAAIx0B,GAAI,GACtCjQ,IAAJwjC,EAASA,IACZ,GAAIA,IAAKztB,IAAKA,EAAEytB,KAAOe,cACnB,MAAOf,EAGf,OAAO,KAMV93C,MAAMnG,UAAU4D,cACjBuC,MAAMnG,UAAU4D,YAAc,SAASo7C,eACnC,YAEA,IAAa,OAATp/C,KACA,KAAM,IAAIwzC,UAEd,IAAI5iB,GAAIzqB,OAAOnG,MACX6a,IAAM+V,EAAEn8B,SAAW,CACvB,IAAY,IAARomB,IACA,MAAO,EAEX,IAAIiQ,GAAIjQ,GACJllB,WAAUlB,OAAS,IAEnBq2B,EAAIu0B,OAAO1pD,UAAU,IACjBm1B,IAAMA,EACNA,EAAI,EACO,IAANA,GAAWA,IAAO,EAAI,GAAMA,MAAQ,EAAI,KAC7CA,GAAKA,EAAI,GAAK,IAAMja,KAAKoiC,MAAMpiC,KAAKyuC,IAAIx0B,KAKhD,KAFA,GAAIuzB,GAAIvzB,GAAK,EAAIja,KAAKq8B,IAAIpiB,EAAGjQ,IAAM,GAAKA,IAAMhK,KAAKyuC,IAAIx0B,GAEhDuzB,GAAK,EAAGA,IAEX,GAAIA,IAAKztB,IAAKA,EAAEytB,KAAOe,cACnB,MAAOf,EAEf,OAAO,KAQV93C,MAAMnG,UAAUnI,MACjBsO,MAAMnG,UAAUnI,IAAM,SAASsL,SAAU46C,SAErC,GAAIC,GAAGmB,EAAGlB,CAEV,IAAa,OAATr+C,KACA,KAAM,IAAIwzC,WAAU,+BAIxB,IAAI8K,GAAIn4C,OAAOnG,MAIX6a,IAAMyjC,EAAE7pD,SAAW,CAIvB,IAAmC,yBAA5B2R,SAASjS,KAAKoP,UACjB,KAAM,IAAIiwC,WAAUjwC,SAAW,qBAgBnC,KAZI46C,UACAC,EAAID,SAKRoB,EAAI,GAAIh5C,OAAMsU,KAGdwjC,EAAI,EAGMxjC,IAAJwjC,GAAS,CAEX,GAAIE,QAAQiB,WAORnB,KAAKC,KAGLC,OAASD,EAAGD,GAIZmB,YAAcj8C,SAASpP,KAAKiqD,EAAGG,OAAQF,EAAGC,GAU1CiB,EAAGlB,GAAMmB,aAGbnB,IAIJ,MAAOkB,KAMVh5C,MAAMnG,UAAU+uC,SACjB5oC,MAAMnG,UAAU+uC,OAAS,SAAgBb,aACrC,GAAW,OAAPtuC,MAAsBkB,SAAPlB,KAAkB,KAAM,IAAIwzC,WAAU,8BACzD,IAAiCiM,MAA7BjrD,EAAI,EAAGoZ,EAAI5N,KAAKvL,QAAU,CAE9B,IAA0B,kBAAhB65C,aACN,KAAM,IAAIkF,WAAU,iCAExB,IAAG79C,UAAUlB,OAAS,EAAG,CACrB,GAAU,IAANmZ,EAAS,KAAM,IAAI4lC,WAAU,2CACjCiM,MAAOz/C,KAAK,GACZxL,EAAI,MAGJirD,MAAO9pD,UAAU,EAErB,MAAWiY,EAAJpZ,GACAA,IAAKwL,QAAMy/C,KAAOnR,YAAYn6C,KAAK+M,OAAWu+C,KAAMz/C,KAAKxL,GAAIA,EAAGwL,SACjExL,CAGN,OAAOirD,QAMVl5C,MAAMnG,UAAUkvC,cAEjB/oC,MAAMnG,UAAUkvC,YAAc,SAASoQ,YAEnC,YAEA,IAAa,OAAT1/C,KACA,KAAM,IAAIwzC,UAEd,IAAI5iB,GAAIzqB,OAAOnG,MACX6a,IAAM+V,EAAEn8B,SAAW,CACvB,IAA0B,kBAAfirD,YACP,KAAM,IAAIlM,UAGd,IAAY,IAAR34B,KAAkC,IAArBllB,UAAUlB,OACvB,KAAM,IAAI++C,UAEd,IACIlF,aADA+P,EAAIxjC,IAAM,CAEd,IAAIllB,UAAUlB,QAAU,EAEpB65C,YAAc34C,UAAU,OAIxB,QACA,CACI,GAAI0oD,IAAKr+C,MACT,CACIsuC,YAActuC,KAAKq+C,IACnB,OAIJ,KAAMA,EAAI,EACN,KAAM,IAAI7K,WAKtB,KAAO6K,GAAK,GAEJA,IAAKztB,KACL0d,YAAcoR,WAAWvrD,KAAK+M,OAAWotC,YAAa1d,EAAEytB,GAAIA,EAAGztB,IACnEytB,GAGJ,OAAO/P,eAMV/nC,MAAMnG,UAAUyvC,OAEjBtpC,MAAMnG,UAAUyvC,KAAO,SAASoP,KAE5B,YAEA,IAAa,OAATj/C,KACA,KAAM,IAAIwzC,UAEd,IAAI5iB,GAAIzqB,OAAOnG,MACX6a,IAAM+V,EAAEn8B,SAAW,CACvB,IAAmB,kBAARwqD,KACP,KAAM,IAAIzL,UAGd,KAAK,GADD0L,OAAQvpD,UAAU,GACbnB,EAAI,EAAOqmB,IAAJrmB,EAASA,IAErB,GAAIA,IAAKo8B,IAAKquB,IAAI9qD,KAAK+qD,MAAOtuB,EAAEp8B,GAAIA,EAAGo8B,GACnC,OAAO,CAGf,QAAO,IAMVrqB,MAAMnS,UACPmS,MAAMnS,QAAU,SAAU6nB,KACtB,MAA+C,mBAAxC9V,OAAO/F,UAAUgG,SAASjS,KAAK8nB,OAKzCyI,OAAOtkB,UAAUmO,OAClBmW,OAAOtkB,UAAUmO,KAAO,WACpB,MAAOvO,MAAKzH,QAAQ,aAAc,MAKrCorC,SAASvjC,UAAU5K,OACpBmuC,SAASvjC,UAAU5K,KAAO,SAAUqkD,OAChC,GAAoB,kBAAT75C,MAEP,KAAM,IAAIwzC,WAAU,uEAGxB,IAAIsG,OAAQvzC,MAAMnG,UAAU3H,MAAMtE,KAAKwB,UAAW,GAC9CokD,QAAU/5C,KACVg6C,KAAO,aACPC,OAAS,WACL,MAAOF,SAAQrkD,MAAMsK,eAAgBg6C,OAC7BH,MAAQ75C,KAAO65C,MACfC,MAAMphD,OAAO6N,MAAMnG,UAAU3H,MAAMtE,KAAKwB,aAKxD,OAHAqkD,MAAK55C,UAAYJ,KAAKI,UACtB65C,OAAO75C,UAAY,GAAI45C,MAEhBC,SAKV9zC,OAAOwX,OACRxX,OAAOwX,KAAO,WACV,GAAIgiC,iBAAkBx5C,OAAO/F,UAAUiG,eACvCu5C,iBAAoBx5C,SAAU,MAAOyuC,qBAAqB,YAC1DgL,WACA,WACA,iBACA,UACA,iBACA,gBACA,uBACA,eAEAC,gBAAkBD,UAAUprD,MAE5B,OAAO,UAAUG,KACb,GAAmB,gBAARA,MAAmC,kBAARA,MAA8B,OAARA,IACxD,KAAM,IAAI4+C,WAAU,mCAExB,IAAIt+B,UACJ,KAAK,GAAIrgB,QAAQD,KACT+qD,gBAAgBxrD,KAAKS,IAAKC,OAC1BqgB,OAAO7Y,KAAKxH,KAEpB,IAAI+qD,eACA,IAAK,GAAIprD,GAAE,EAAOsrD,gBAAJtrD,EAAqBA,IAC3BmrD,gBAAgBxrD,KAAKS,IAAKirD,UAAUrrD,KACpC0gB,OAAO7Y,KAAKwjD,UAAUrrD,GAClC,OAAO0gB,eAYvBphB,OAAO,kBAAkB,UAAW,SAASm4C,GACzC,GAAIiJ,UACA32C,KAAM,SAAU+B,SACZ,GAAIklC,WACA7F,KAAM,EACNogB,YAAa,EACbC,kBAEJ,OAAOhgD,MAAK3L,KAAK,WACb,GAAI2oD,OAAQ/Q,EAAEjsC,MACVkF,KAAO83C,MAAM93C,KAAK,UAEjBA,QACI5E,SACD2rC,EAAEhhC,OAAQu6B,SAAUllC,SAExB08C,MAAM93C,KAAK,WACP+6C,UAAa,GAAI1iD,MACjB2iD,SAAY1a,SAAS7F,KACrBA,KAAQ6F,SAASua,YACjBI,WAAa,EACbC,iBAAmB,IAGvBpD,MAAMxnD,KAAM,oBAAqB0/C,QAAQmL,YACzCrD,MAAMxnD,KAAM,qBAAsB0/C,QAAQmL,YAE1CpU,EAAEzG,SAASwa,gBAAgB3rD,KAAK,WAC5B2oD,MAAM/vC,KAAKjN,MACNsgD,KAAM,qBAAsBv7B,OAASi4B,OAAQ9H,QAAQqL,kBACrDD,KAAM,sBAAuBv7B,OAASi4B,OAAQ9H,QAAQsL,iBAG3Dhb,SAASua,YAAc,EACvB/C,MAAMpd,QAAQ,cAEdod,MAAM/a,SAAS,eAK/Bse,iBAAkB,SAAS32C,OACvB,GAAI1E,MAAO0E,MAAM1E,KAAK6f,OAAO7f,KAAK,UAClCA,MAAKk7C,iBAAkB,EACvBx2C,MAAM1E,KAAK6f,OAAO7f,KAAK,UAAWA,MAClC0E,MAAM1E,KAAK6f,OAAO+M,QAAQ,cAG9B0uB,cAAe,SAAS52C,OACpB,GAAI1E,MAAO0E,MAAM1E,KAAK6f,OAAO7f,KAAK,UAClCA,MAAKk7C,iBAAkB,EACvBx2C,MAAM1E,KAAK6f,OAAO7f,KAAK,UAAWA,OAGtCu7C,QAAS,WACL,MAAOzgD,MAAK3L,KAAM,WACd,GAAI2oD,OAAQ/Q,EAAEjsC,MACVkF,KAAO83C,MAAM93C,KAAK,UAEtB+mC,GAAEzlC,QAAQs8B,OAAO,YACjB59B,KAAK06B,QAAQtT,SACb0wB,MAAMpuB,WAAW,cAIzByxB,WAAY,WACR,GAAIrD,OAAQ/Q,EAAEjsC,MAAOkF,KAAO83C,MAAM93C,KAAK,UAEnC83C,OAAMta,SAAS,YACfsa,MAAM1a,YAAY,WAClB0a,MAAMpd,QAAQ,eACN16B,KAAKi7C,YACbj7C,KAAKi7C,WAAY,EACjBj7C,KAAKy6B,KAAOz6B,KAAKg7C,UAGrBh7C,KAAK+6C,UAAY,GAAI1iD,MACrBy/C,MAAM93C,KAAK,UAAWA,OAG1Bw7C,WAAY,WACR,GAAI1D,OAAQ/Q,EAAEjsC,MAAOkF,KAAO83C,MAAM93C,KAAK,WACnCzP,GAAK,WACL,GAAIyP,MAAO83C,MAAM93C,KAAK,UACtB,IAAKA,MAAQA,KAAK+6C,UACd,GAAK/6C,KAAKk7C,gBACNhiD,WAAY3I,GAAIob,KAAKoiC,MAAiB,IAAV/tC,KAAKy6B,WAC9B,CACH,GAAIvtB,KAAM,GAAI7U,MACV+gB,KAAOzN,KAAKoiC,MAAgB,IAAV/tC,KAAKy6B,OAAevtB,IAAMlN,KAAK+6C,UAChD3hC,MAAO,EAERlgB,WAAY3I,GAAI6oB,KAAK,KAGrB0+B,MAAM/a,SAAS,YAM/B7jC,YAAY3I,GAAIob,KAAKoiC,MAAiB,IAAV/tC,KAAKy6B,QAIzCsM,GAAEx2C,GAAGmqC,QAAU,SAAU2H,QACrB,MAAK2N,SAAQ3N,QACF2N,QAAQ3N,QAAQ7xC,MAAOsK,KAAMuG,MAAMnG,UAAU3H,MAAMtE,KAAMwB,UAAW,IACjD,gBAAX4xC,SAAwBA,WAGvC0E,GAAEzwC,MAAO,UAAY+rC,OAAS,qCAFvB2N,QAAQ32C,KAAK7I,MAAOsK,KAAMrK,YAOzCs2C,EAAEhhC,OAAOghC,EAAE5lB,KAAK,MACZs6B,WAAY,SAASC,SACjB,GAAIC,uBAAuBC,uBAC3B,OAAmC,WAA/B7U,EAAE2U,SAAS1xC,IAAI,aACiB,WAAhC+8B,EAAE2U,SAAS1xC,IAAI,cACiB,WAAhC+8B,EAAE2U,SAAS1xC,IAAI,cACR,GAEX2xC,sBAAyBD,QAAQjE,aAAeiE,QAAQpgB,eACW,KAA/DyL,EAAEjjC,QAAQijC,EAAE2U,SAAS1xC,IAAI,cAAe,SAAU,UAAiF,KAA9D+8B,EAAEjjC,QAAQijC,EAAE2U,SAAS1xC,IAAI,aAAc,SAAU,YAG/G,EAEX4xC,wBAA2BF,QAAQpE,YAAcoE,QAAQG,cACU,KAA/D9U,EAAEjjC,QAAQijC,EAAE2U,SAAS1xC,IAAI,cAAe,SAAU,UAAiF,KAA9D+8B,EAAEjjC,QAAQijC,EAAE2U,SAAS1xC,IAAI,aAAc,SAAU,aAMlI+8B,EAAEx2C,GAAGurD,oBAAsB,SAAUC,WACjC,GAAIC,gBAAiB,IAOrB,OAN0B,gBAAdD,WACRC,eAAiBjV,EAAE,IAAMgV,WACjBA,YACRC,eAAiBjV,EAAEgV,YAGhBjhD,KAAK3L,KAAK,WACb,GAAqB0wB,QAAjBi4B,MAAQ/Q,EAAEjsC,KACTkhD,gBAQDn8B,OAASm8B,gBAPTn8B,OAASi4B,MAAM73C,QAAQ,eAEnB4f,OAASknB,EADTlnB,OAAOtwB,OAAS,EACLswB,OAAO,GAEPve,QAMnB,IAAI26C,SAAUnE,MAAMrhB,WAAW3W,IAC3Bo8B,WAAapE,MAAMvqC,SAAW0uC,QAE9BE,QAAUt8B,OAAOqP,YACjBktB,WAAav8B,OAAOtS,SAAW4uC,OAErBA,SAAVF,QACAp8B,OAAOqP,UAAU+sB,SACTC,WAAaE,WAAav8B,OAAOtS,SAAS,GAClDsS,OAAOqP,UAAW+sB,SAAWp8B,OAAOtS,SAAWuqC,MAAMvqC,UAAU,MAM3Ew5B,EAAEx2C,GAAG8rD,oBAAsB,SAASX,QAAQY,UAAUC,YAClD,MAAOzhD,MAAK3L,KAAK,WAGb,GAAI2oD,OAAQ/Q,EAAEjsC,MACV0hD,UAAYzV,EAAEjsC,MAAM2S,QACjBuY,IAAQ01B,QAAQvW,SAChB13B,MAAQiuC,QAAQjuC,QAChBF,OAASmuC,QAAQnuC,SACpBkvC,QAAWz2B,IAAIgP,KAAOvnB,MAAQ+uC,UAAYD,WAC1CG,OAAU12B,IAAIlG,IAAMvS,OAAS+uC,SACjCxE,OAAM9tC,KAAM2yC,UAAY,EAAGlmB,SAAY,WAAYmmB,WAAc,EAAGC,UAAa,EAAG7nB,KAAQynB,QAAU,KAAM38B,IAAM48B,OAAS,KAAMjvC,MAAQ+uC,YACzI1E,MAAM1wB,SAASxd,SAAS,QAAQuB,UAIxC47B,EAAEx2C,GAAGusD,iBAAmB,SAASnoC,UAC7B,GAAIqgB,MAAO,EACPlV,IAAM,CAkBV,OAjBAhlB,MAAK3L,KAAK,WAGN,GAAI4tD,WAAYhW,EAAEjsC,MAAMirB,QAAQpR,SAChC,IAAIooC,UAAUxtD,QAAwC,WAA9BwtD,UAAU/yC,IAAI,YAA0B,CAC5D,GAAIgzC,QAASjW,EAAEjsC,MACXmiD,oBAAsBD,OAAO7X,SAASnQ,KAAO6H,SAASmgB,OAAOhzC,IAAI,cAAe,IAChFkzC,mBAAqBF,OAAO7X,SAASrlB,IAAM+c,SAASmgB,OAAOhzC,IAAI,aAAc,IAC7EmzC,wBAA0BJ,UAAU5X,SAASnQ,KAAO6H,SAASkgB,UAAU/yC,IAAI,mBAAoB,IAC/FozC,uBAAyBL,UAAU5X,SAASrlB,IAAM+c,SAASkgB,UAAU/yC,IAAI,kBAAmB,GAKhG,OAJAgrB,MAAOioB,oBAAsBE,wBAC7Br9B,IAAMo9B,mBAAqBE,wBAGpB,MAIXpoB,KAASA,KACTlV,IAAQA,MAQhBN,OAAOtkB,UAAUmiD,WAAa,SAAS/e,KAAO,MAAgC,QAAxBxjC,KAAK4E,MAAM,IAAI4+B,MACrE9e,OAAOtkB,UAAUoiD,SAAW,SAAShf,KAAO,MAAgC,QAAxBxjC,KAAK4E,MAAM4+B,IAAI,MASnEyI,EAAEwW,mBACEC,kBAAmB,KAEnBC,iBAAkB,WACd,GAAI3F,OAAQ/Q,EAAEjsC,KACXg9C,OAAM7rC,QAAU6rC,MAAM9vC,KAAK,gBAC1B8vC,MAAM7rC,IAAI,IAAImxB,YAAY2J,EAAEwW,kBAAkBC,oBAItDE,iBAAkB,WACd,GAAI5F,OAAQ/Q,EAAEjsC,KACK,MAAhBg9C,MAAM7rC,OACL6rC,MAAM7rC,IAAI6rC,MAAM9vC,KAAK,gBAAgB+0B,SAASgK,EAAEwW,kBAAkBC,oBAI1EG,2BAA4B,WAOxB,MANA5W,GAAEjsC,MAAMiN,KAAK,uBAAuB5Y,KAAK,WACrC,GAAI2oD,OAAQ/Q,EAAEjsC,KACVg9C,OAAM7rC,QAAU6rC,MAAM9vC,KAAK,gBAC3B8vC,MAAM7rC,IAAI,OAGX,IAIf86B,EAAEx2C,GAAGgtD,kBAAoB,SAASniD,SAC9B,GAAmDY,SAAhDrL,SAASuR,cAAc,SAAS07C,YAA0B,CACzD,GAAI5qD,SACAwqD,kBAAoB,eAGrBpiD,UAAS2rC,EAAEhhC,OAAO/S,OAAQoI,SAC7B2rC,EAAEwW,kBAAkBC,kBAAoBxqD,OAAOwqD,kBAE/C1iD,KAAK3L,KAAK,WACN,GAAI2oD,OAAQ/Q,EAAEjsC,KACdg9C,OAAM10B,MAAM2jB,EAAEwW,kBAAkBE,kBAChC3F,MAAMxoB,KAAKyX,EAAEwW,kBAAkBG,kBACZ,KAAhB5F,MAAM7rC,QACL6rC,MAAM7rC,IAAI6rC,MAAM9vC,KAAK,gBACrB8vC,MAAM/a,SAASgK,EAAEwW,kBAAkBC,oBAEvC1F,MAAM/a,SAAS,sBACfgK,EAAEjsC,KAAKw1B,MAAMjM,OAAO0iB,EAAEwW,kBAAkBI,8BAIhD,MAAO7iD,OAGXisC,EAAEx2C,GAAGwoD,cAAgB,SAASpkC,UAC1B,MAAO7Z,MAAKiN,KAAK,KAAKme,UAAUriB,OAAO8Q,WAG3CoyB,EAAEx2C,GAAGstD,QAAU,SAAS5kB,MAAOlsB,OAAQ1O,UACnC,MAAOvD,MAAKw+B,SAAS7rB,MAAO,QAASwrB,MAAOlsB,OAAQ1O,WAGxD0oC,EAAEx2C,GAAGutD,SAAW,SAAS7kB,MAAOlsB,OAAQ1O,UACpC,MAAOvD,MAAKw+B,SAAS7rB,MAAO,QAASwrB,MAAOlsB,OAAQ1O,WAIxD0oC,EAAE5lB,KAAK,KAAK48B,SAAW,SAAS7kC,EAAG5pB,EAAG6nB,GAClC,MAAO4vB,GAAE7tB,GAAGrc,OAAOkO,cAAclW,QAAQsiB,EAAE,GAAGpM,gBAAkB,GAGpEg8B,EAAEx2C,GAAGytD,WAAa,SAAUrpC,UAIxB,MAAIA,UAAS0oC,WAAW,KACbtW,EAAEpyB,UAEF7Z,KAAKiN,KAAK4M,aAuB7B/lB,OAAO,gBACH,SACA,aACA,aACA,YAEA,aACA,kBACD,SAASm4C,EAAGziC,EAAGmyC,OAAQqD,OAUtB,IATA,GAOmBp6C,OAPfu+C,UAAY,EACZC,aAAe,EACf3I,IAAMkB,OAAOb,UAAU,YAEvBuI,WAAa,4BACbC,cAAgB,uBAChBC,YAAa,EACb76B,YAEuD,QAAnD9jB,MAAMy+C,WAAWhhD,KAAKmE,OAAOpD,SAASs4C,UAC1ChzB,SAAS9jB,MAAM,KAAM,EACrB61C,IAAIE,KAAK,mCAAoC/1C,MAAM,GAGvD,MAA8D,QAAtDA,MAAM0+C,cAAcjhD,KAAKmE,OAAOpD,SAASs4C,UAC7C6H,YAAa,EACb9I,IAAIE,KAAK,mCAGb,IAAIv/C,WACAooD,YAKAC,aAAa,EACbllD,KAAM,WACF0tC,EAAEp2C,UAAUgU,MAAM,WACd4wC,IAAIE,KAAK,WAAax0C,OAAOwX,KAAKviB,SAASooD,UAAU1oC,OAAOniB,KAAK,OACjEyC,SAASsoD,KAAK7tD,SAASkZ,MACvB3T,SAASqoD,aAAc,EACvBhJ,IAAIE,KAAK,6BAIjBgJ,MAAO,WAGH3jD,KAAKwjD,aAGTI,iBAAkB,SAAS1sD,KAAM2V,SAI7B,GAAI6b,SAASxxB,MAET,WADAujD,KAAIc,MAAM,6BAA8BrkD,KAG5C,IAAIkwB,SAAUhsB,SAASooD,SAAStsD,KAChC,IAAIkwB,QAAQy8B,UACR,IACIz8B,QAAQy8B,UAAU5X,EAAEp/B,UACtB,MAAOpW,GACL,GAAI8sD,WAAc,KAAK,EACvB9I,KAAIj/C,MAAM,8BAAgCtE,KAAMT,KAK5DqtD,YAAa,SAAS5sD,KAAMk4B,GAAI0C,SAI5B,GAAI4sB,KAAMzS,EAAE7c,IACRhI,QAAUhsB,SAASooD,SAAStsD,KAChC,IAAIkwB,QAAQ7oB,OACRwlD,KAAOpI,OAAOb,UAAU,OAAS5jD,MAC7BwnD,IAAIp0B,GAAGlD,QAAQ0K,UAAU,CACzBiyB,KAAKxI,MAAM,gBAAiBmD,IAC5B,KACIt3B,QAAQ7oB,KAAKmgD,IAAK,KAAM5sB,SACxBiyB,KAAKxI,MAAM,SACb,MAAO9kD,GACL,GAAI8sD,WAAc,KAAK,EACvBQ,MAAKvoD,MAAM,gBAAiB/E,MAM5CutD,cAAe,SAAUR,UAUrB,MAJIh6C,GAAEuT,SAASymC,SAAU,eAAiBh6C,EAAEuT,SAASymC,SAAU,YAC3DA,SAASxsD,OAAOwsD,SAASzpD,QAAQ,cAAe,GAChDypD,SAASvsC,QAAQ,eAEdusC,UAGXE,KAAM,SAAsB72C,QAAS22C,SAAU1xB,SAC3C,GAAoBmyB,QAAhBt9B,YACJ68B,UAAWxjD,KAAKgkD,cAAcR,UAAYr9C,OAAOwX,KAAKviB,SAASooD,WAC/DA,SAASvU,QAAQzlC,EAAEkqC,QAAQ1zC,KAAK4jD,iBAAkBp6C,EAAGqD,UACrD22C,SAAWh6C,EAAEnV,KAAKmvD,SAAU,SAAUtsD,MAClC,GAAIkwB,SAAUhsB,SAASooD,SAAStsD,KAC5BkwB,SAAQ0K,SACRnL,UAAU1P,QAAQmQ,QAAQ0K,WAGlCmyB,OAAShY,EAAEp/B,SAASoxC,cAAct3B,UAAUhuB,KAAK,MACjDsrD,OAASA,OAAOl7C,OAAO,WAAa,MAAyC,KAAlCkjC,EAAEjsC,MAAMmF,QAAQ,OAAO1Q,SAClEwvD,OAASA,OAAOl7C,OAAO,0BAGvBk7C,OAAO3pC,UAAUg1B,YAAY,SAA6B4U,IAAK90B,IAC3Do0B,SAASvU,QAAQzlC,EAAEkqC,QAAQ1zC,KAAK8jD,YAAat6C,EAAG4lB,GAAI0C,WACtDt8B,KAAKwK,MAAO,MACdisC,EAAE,QAAQhK,SAAS,oBAGvBkiB,SAAU,SAA2B/8B,QAASlwB,MAC1C,GAAIktD,YAEJ,QADAltD,KAAOA,MAAQkwB,QAAQlwB,MAKnBkE,SAASooD,SAAStsD,OAClBujD,IAAIj/C,MAAM,kCAAoCtE,OACvC,IAIXkE,SAASooD,SAAStsD,MAAQkwB,QAGtBA,QAAQi9B,gBACRD,aAAe,OAASltD,MACfqB,QAAQ,eAAgB,SAASqM,MAAO0/C,IACrC,MAAOA,IAAGr0C,gBAEtBg8B,EAAEx2C,GAAG2uD,aAAepF,MAAMJ,aAAax3B,SAEvC6kB,EAAEx2C,GAAG2uD,YAAY7rD,QAAQ,OAAQ,YAAc0zC,EAAEx2C,GAAG2uD,cAExD3J,IAAIc,MAAM,sBAAuBrkD,KAAMkwB,SACnChsB,SAASqoD,aACTroD,SAASsoD,KAAK7tD,SAASkZ,MAAO7X,QAE3B,IAzBHujD,IAAIj/C,MAAM,wBAAyB4rB,UAC5B,IAoCnB,OARA6kB,GAAEp2C,UAAUyF,GAAG,6BACX,SAA2BipD,GAAIrsD,OAAQssD,WAAYC,aAC3CA,YAAYl8C,WAAa46C,WAAasB,cAAgBrB,eACtDhoD,SAASsoD,KAAKe,YAAa,MAAO3/C,KAAM,YAAa87C,QAAS4D,aAC9DvY,EAAEwY,aAAa3yB,QAAQ,gCAI5B12B,WAKXtH,OAAO,qBACH,UACD,SAASm4C,GACR,YAEA,IAAIyY,SACAC,WAAY,QAASA,YAAWjG,IAAKkG,YAAatkD,SAS9CA,QAAUA,YAES,IAAfo+C,IAAIjqD,QAAiBw3C,EAAE3/B,SAASoyC,IAAI,GAAI,UACxCp+C,QAAUqkD,WAAWjG,IAAI35B,SAAU6/B,YAAatkD,SAGpD,IAAIukD,aACJ,IAAmB,IAAfnG,IAAIjqD,SACJowD,UAAYnG,IAAIx5C,KAAK,OAAS0/C,aAC1BC,WAE0B,gBAAhB,YAA0B,CAChC,GAAIC,cACJ7Y,GAAE53C,KAAKwwD,UAAU1uD,MAAM,KACnB,SAAS3B,EAAGy4C,MACRA,KAAOA,KAAK92C,MAAM,KAClB82C,KAAKvhB,SACL,IAAItmB,KAAM6nC,KAAKllC,KACf3C,KAAMA,IAAI7M,QAAQ,aAAc,IAChC00C,KAAKvhB,SACL,IAAIp2B,OAAQ23C,KAAKt0C,KAAK,IACtBrD,OAAQA,MAAMiD,QAAQ,aAAc,IACpCusD,WAAW1/C,KAAO9P,QAG1BuvD,UAAYC,WAIxB,MAAO7Y,GAAEhhC,QAAO,KAAU3K,QAASukD,YAG3C,OAAOH,UAiBX5wD,OAAO,YACL,SACA,eACA,oBACA,cACC,SAASm4C,EAAG8Y,SAAUC,aAAcrJ,QACnC,YACA,IAAIlB,KAAMkB,OAAOb,UAAU,oBAEvBmK,gBAAkB,SAAyBvG,IAAKp+C,QAASwxB,SACzD,GAAI56B,MAAO8I,KAAKI,UAAUlJ,KACtBujD,IAAMkB,OAAOb,UAAU,OAAS5jD,MAChCkwB,QAAUs3B,IAAIx5C,KAAK,WAAahO,KACpC,IAAgBgK,SAAZkmB,SAAyB29B,SAASvB,SAAStsD,MAAO,CAClD,IACIoJ,QAAqC,WAA3BN,KAAKI,UAAUskD,OAAuBM,aAAaL,WAAWjG,IAAKxnD,KAAMoJ,SAAWA,QAC9F8mB,QAAU,GAAI29B,UAASvB,SAAStsD,MAAMwnD,IAAKp+C,QAASwxB,SACtD,MAAOr7B,GACLgkD,IAAIj/C,MAAM,8BAAgCtE,KAAO,aAAcT,GAEnEioD,IAAIx5C,KAAK,WAAahO,KAAMkwB,SAEhC,MAAOA,UAGP89B,KAAO,SAASxG,IAAKp+C,QAASwxB,SAC9B9xB,KAAK0+C,IAAMA,IACX1+C,KAAKM,QAAU2rC,EAAEhhC,QAAO,KAAUjL,KAAKy1C,aAAgBn1C,aACvDN,KAAKzB,KAAKmgD,IAAKp+C,QAASwxB,SACxB9xB,KAAKlE,KAAK,QAqEd,OAlEAopD,MAAK9kD,WACDia,YAAa6qC,KACb5pD,GAAI,SAAS60B,UAAWg1B,eACpBnlD,KAAK0+C,IAAIpjD,GAAG60B,UAAY,IAAMnwB,KAAK9I,KAAO,YAAaiuD,gBAE3DrpD,KAAM,SAASq0B,UAAW7xB,MAET4C,SAAT5C,OACAA,SAEJ0B,KAAK0+C,IAAI5sB,QAAQ3B,UAAY,IAAMnwB,KAAK9I,KAAO,YAAaoH,QAIpE4mD,KAAKj6C,OAAS,SAASm6C,cAGnB,GACIC,OADAtgC,OAAS/kB,IAIb,KAAKolD,aACD,KAAM,IAAI1uD,OAAM,qEAOhB2uD,OADAD,aAAa/+C,eAAe,eACpB++C,aAAa/qC,YAEb,WAAa0K,OAAOrvB,MAAMsK,KAAMrK,YAI5C0vD,MAAMp6C,OAASi6C,KAAKj6C,OAGpBo6C,MAAM9mD,KAAO0mD,gBACbI,MAAMhB,eAAgB,EACtBgB,MAAMvzB,QAAUszB,aAAatzB,OAI7B,IAAIwzB,WAAY,WAAatlD,KAAKqa,YAAcgrC,MAoBhD,OAnBAC,WAAUllD,UAAY2kB,OAAO3kB,UAC7BilD,MAAMjlD,UAAY,GAAIklD,WAGtBrZ,EAAEhhC,QAAO,EAAMo6C,MAAMjlD,UAAWglD,cAIhCC,MAAME,UAAYxgC,OAAO3kB,UAGpBglD,aAAaluD,KAENkuD,aAAatzB,QAIrBizB,SAASZ,SAASkB,MAAOD,aAAaluD,MAHtCujD,IAAII,KAAK,gBAAgBuK,aAAaluD,KAAK,mEAF3CujD,IAAII,KAAK,iEAONwK,OAEJH,OAGV,SAAS78B,MACVv0B,OAAO,WAAY,UAAW,WAC5B,MAAO,aAqBT,SAAWm4C,GACiB,mBAAdA,GAAEx2C,GAAG+vD,OACXvZ,EAAEhhC,OAAOghC,EAAEx2C,IAKP+vD,MAAQ,SAAUC,GAEd,IADA,GAAIjuD,GAAIy0C,GAAG,IAAKz3C,EAAI,GAAIoZ,EAAI5N,KAAKvL,SAE3BD,EAAIoZ,IACFpW,EAAE0B,QAAU1B,EAAE,GAAKwI,KAAKxL,KACzBixD,EAAEtxD,KAAKqD,EAAE,GAAIhD,EAAGgD,MAAO,IAE9B,MAAOwI,UAIpBiI,QAEF,SAAUgkC,EAAG/qC,WACV,YAkEA,SAASwkD,iBAAgB9E,SACrB,GAAIkC,aAAc7W,EAAEp2C,SAASyiC,eAAe,IAE5CsoB,SAAQloB,OAAOoqB,aACfA,YAAYpqB,OAAOkoB,SACnBkC,YAAYx2B,SAGhB,QAASq5B,iBAAgBniB,KAErB,QAAS5+B,OAAMwZ,GACX,MAAOwnC,YAAWxnC,IAAMA,EAG5B,MAAOolB,KAAIjrC,QAAQ,oBAAqBqM,OAG5C,QAAS7K,SAAQzE,MAAOq3C,OAEpB,IADA,GAAIn4C,GAAI,EAAGoZ,EAAI++B,MAAMl4C,OACVmZ,EAAJpZ,EAAOA,GAAQ,EAClB,GAAIqxD,MAAMvwD,MAAOq3C,MAAMn4C,IAAK,MAAOA,EAEvC,OAAO,GAGX,QAASsxD,oBACL,GAAIC,WAAY9Z,EAAG+Z,2BACnBD,WAAUj3C,SAAS,OAEnB,IAAIm3C,MACAtzC,MAAOozC,UAAUpzC,QAAUozC,UAAU,GAAGvJ,YACxC/pC,OAAQszC,UAAUtzC,SAAWszC,UAAU,GAAGpJ,aAI9C,OAFAoJ,WAAUz5B,SAEH25B,IAQX,QAASJ,OAAMznC,EAAGC,GACd,MAAID,KAAMC,GAAU,EAChBD,IAAMld,WAAamd,IAAMnd,WAAkB,EACrC,OAANkd,GAAoB,OAANC,GAAmB,EAGjCD,EAAE/D,cAAgBqK,OAAetG,EAAE,IAAOC,EAAE,GAC5CA,EAAEhE,cAAgBqK,OAAerG,EAAE,IAAOD,EAAE,IACzC,EASX,QAAS8nC,UAASzqC,OAAQ0qC,WACtB,GAAIh1C,KAAK3c,EAAGoZ,CACZ,IAAe,OAAX6N,QAAmBA,OAAOhnB,OAAS,EAAG,QAE1C,KADA0c,IAAMsK,OAAOtlB,MAAMgwD,WACd3xD,EAAI,EAAGoZ,EAAIuD,IAAI1c,OAAYmZ,EAAJpZ,EAAOA,GAAQ,EAAG2c,IAAI3c,GAAKy3C,EAAE19B,KAAK4C,IAAI3c,GAClE,OAAO2c,KAGX,QAASi1C,sBAAqBxF,SAC1B,MAAOA,SAAQyF,YAAW,GAASzF,QAAQjuC,QAG/C,QAAS2zC,yBAAwB1F,SAC7B,GAAIx7C,KAAI,oBACRw7C,SAAQtlD,GAAG,UAAW,WACd2wC,EAAE/mC,KAAK07C,QAASx7C,OAASlE,WACzB+qC,EAAE/mC,KAAK07C,QAASx7C,IAAKw7C,QAAQzvC,SAGrCyvC,QAAQtlD,GAAG,QAAS,WAChB,GAAI6V,KAAK86B,EAAE/mC,KAAK07C,QAASx7C,IACrB+L,OAAQjQ,WAAa0/C,QAAQzvC,QAAUA,MACvC86B,EAAErd,WAAWgyB,QAASx7C,KACtBw7C,QAAQ9uB,QAAQ,mBAY5B,QAASy0B,0BAAyB3F,SAC9BA,QAAQtlD,GAAG,YAAa,SAAU7E,GAC9B,GAAI+vD,SAAUC,iBACVD,WAAYtlD,WAAaslD,QAAQE,IAAMjwD,EAAEq9B,OAAS0yB,QAAQG,IAAMlwD,EAAEy9B,OAClE+X,EAAEx1C,EAAEvB,QAAQ48B,QAAQ,qBAAsBr7B,KActD,QAAS49C,UAASuS,YAAanxD,GAAIuR,KAC/BA,IAAMA,KAAO9F,SACb,IAAI0+B,QACJ,OAAO,YACH,GAAIthC,MAAO3I,SACX6Q,QAAOq5B,aAAaD,SACpBA,QAAUp5B,OAAOpI,WAAW,WACxB3I,GAAGC,MAAMsR,IAAK1I,OACfsoD,cAIX,QAASC,wBAAuBC,UAAWlG,SACvC,GAAI1zB,QAASmnB,SAASyS,UAAW,SAAUrwD,GAAKmqD,QAAQ9uB,QAAQ,mBAAoBr7B,IACpFmqD,SAAQtlD,GAAG,SAAU,SAAU7E,GACvBsD,QAAQtD,EAAEvB,OAAQ0rD,QAAQh9C,QAAU,GAAGspB,OAAOz2B,KAI1D,QAAS6xB,OAAMo2B,KACPA,IAAI,KAAO7oD,SAAS6V,eAKxBlF,OAAOpI,WAAW,WACd,GAAqC80C,OAAjC9jB,GAAGsvB,IAAI,GAAIxzB,IAAIwzB,IAAIvtC,MAAM1c,MAE7BiqD,KAAIp2B,OAIJ,IAAIy+B,WAAa33B,GAAG7d,YAAc,GAAK6d,GAAG5d,aAAe,CACrDu1C,YAAa33B,KAAOv5B,SAAS6V,gBAI1B0jB,GAAG43B,kBAEF53B,GAAG43B,kBAAkB97B,IAAKA,KAErBkE,GAAG63B,kBACR/T,MAAQ9jB,GAAG63B,kBACX/T,MAAMgU,UAAS,GACfhU,MAAMz1B,YAGf,GAGP,QAAS0pC,eAAc/3B,IACnBA,GAAK6c,EAAE7c,IAAI,EACX,IAAIib,QAAS,EACT51C,OAAS,CACb,IAAI,kBAAoB26B,IACpBib,OAASjb,GAAGg4B,eACZ3yD,OAAS26B,GAAGi4B,aAAehd,WACxB,IAAI,aAAex0C,UAAU,CAChCu5B,GAAG9G,OACH,IAAI4K,KAAMr9B,SAASqiC,UAAUovB,aAC7B7yD,QAASoB,SAASqiC,UAAUovB,cAAcvlD,KAAKtN,OAC/Cy+B,IAAIq0B,UAAU,aAAcn4B,GAAG95B,MAAMb,QACrC41C,OAASnX,IAAInxB,KAAKtN,OAASA,OAE/B,OAAS41C,OAAQA,OAAQ51C,OAAQA,QAGrC,QAAS+yD,WAAU59C,OACfA,MAAM4oB,iBACN5oB,MAAMopB,kBAEV,QAASy0B,sBAAqB79C,OAC1BA,MAAM4oB,iBACN5oB,MAAMqrB,2BAGV,QAASyyB,kBAAiBjxD,GACtB,IAAKkxD,MAAM,CACP,GAAI94C,OAAQpY,EAAE,GAAGwjC,cAAgBzzB,OAAOmzB,iBAAiBljC,EAAE,GAAI,KAC/DkxD,OAAQ1b,EAAEp2C,SAASuR,cAAc,QAAQ8H,KACrCysB,SAAU,WACVzB,KAAM,WACNlV,IAAK,WACLhW,QAAS,OACT44C,SAAU/4C,MAAM+4C,SAChBC,WAAYh5C,MAAMg5C,WAClBC,UAAWj5C,MAAMi5C,UACjB/rB,WAAYltB,MAAMktB,WAClBD,cAAejtB,MAAMitB,cACrBisB,cAAel5C,MAAMk5C,cACrBC,WAAY,WAEhBL,MAAMz6C,KAAK,QAAQ,iBACnB++B,EAAE,QAAQ1T,OAAOovB,OAGrB,MADAA,OAAM5lD,KAAKtL,EAAE0a,OACNw2C,MAAMh1C,QAGjB,QAASs1C,gBAAev6C,KAAM/H,IAAKuiD,SAC/B,GAAIhmB,SAA4BimB,QAAnBC,eAEblmB,SAAU+J,EAAE19B,KAAKb,KAAKR,KAAK,UAEvBg1B,UACAA,QAAU,GAAKA,QAEf+J,EAAE/J,QAAQ/rC,MAAM,QAAQqvD,MAAM,WACO,IAA7BxlD,KAAKjG,QAAQ,aACbquD,aAAa/rD,KAAK2D,SAK9BkiC,QAAU+J,EAAE19B,KAAK5I,IAAIuH,KAAK,UAEtBg1B,UACAA,QAAU,GAAKA,QAEf+J,EAAE/J,QAAQ/rC,MAAM,QAAQqvD,MAAM,WACO,IAA7BxlD,KAAKjG,QAAQ,cACbouD,QAAUD,QAAQloD,MAEdmoD,SACAC,aAAa/rD,KAAK8rD,aAMlCz6C,KAAKR,KAAK,QAASk7C,aAAazvD,KAAK,MAIzC,QAAS0vD,WAAUtmD,KAAMumD,KAAMC,OAAQC,cACnC,GAAI5jD,OAAM+gD,gBAAgB5jD,KAAKkO,eAAelW,QAAQ4rD,gBAAgB2C,KAAKr4C,gBACvEw4C,GAAGH,KAAK7zD,MAEZ,OAAU,GAANmQ,UACA2jD,QAAOlsD,KAAKmsD,aAAazmD,QAI7BwmD,OAAOlsD,KAAKmsD,aAAazmD,KAAK/H,UAAU,EAAG4K,SAC3C2jD,OAAOlsD,KAAK,gCACZksD,OAAOlsD,KAAKmsD,aAAazmD,KAAK/H,UAAU4K,MAAOA,MAAQ6jD,MACvDF,OAAOlsD,KAAK,eACZksD,QAAOlsD,KAAKmsD,aAAazmD,KAAK/H,UAAU4K,MAAQ6jD,GAAI1mD,KAAKtN,WAG7D,QAASi0D,qBAAoBH,QACzB,GAAII,cACAxQ,KAAM,QACNpB,IAAK,QACLC,IAAK,OACLnwB,IAAK,OACLowB,IAAK,SACLC,IAAK,QACL0R,IAAK,QAGT,OAAOlkC,QAAO6jC,QAAQhwD,QAAQ,eAAgB,SAAUqM,OACpD,MAAO+jD,aAAY/jD,SAoB3B,QAAS+gC,MAAKrlC,SACV,GAAIs/B,SACAr9B,QAAU,KACVqkD,YAActmD,QAAQsmD,aAAe,IACrCiC,QAAUvoD,QAAQlG,IAClBiwB,KAAOrqB,IAEX,OAAO,UAAU8oD,OACbtiD,OAAOq5B,aAAaD,SACpBA,QAAUp5B,OAAOpI,WAAW,WACxB,GAAI8G,MAAO5E,QAAQ4E,KACf9K,IAAMyuD,QACN1iB,UAAY7lC,QAAQ6lC,WAAa8F,EAAEx2C,GAAGszD,QAAQC,aAAa7iB,UAE3D8iB,YACInkD,KAAMxE,QAAQwE,MAAQ,MACtB8F,MAAOtK,QAAQsK,QAAS,EACxB8+B,cAAeppC,QAAQopC,eAAexoC,UACtC6V,SAAUzW,QAAQyW,UAAU,QAEhCozB,OAAS8B,EAAEhhC,UAAWghC,EAAEx2C,GAAGszD,QAAQC,aAAa7e,OAAQ8e,WAE5D/jD,MAAOA,KAAOA,KAAK/Q,KAAKk2B,KAAMy+B,MAAMR,KAAMQ,MAAMI,KAAMJ,MAAM5vD,SAAW,KACvEkB,IAAsB,kBAARA,KAAsBA,IAAIjG,KAAKk2B,KAAMy+B,MAAMR,KAAMQ,MAAMI,KAAMJ,MAAM5vD,SAAWkB,IAExFmI,SAAoC,kBAAlBA,SAAQ8kC,OAAwB9kC,QAAQ8kC,QAE1D/mC,QAAQ6pC,SACJ8B,EAAEj4C,WAAWsM,QAAQ6pC,QACrB8B,EAAEhhC,OAAOk/B,OAAQ7pC,QAAQ6pC,OAAOh2C,KAAKk2B,OAErC4hB,EAAEhhC,OAAOk/B,OAAQ7pC,QAAQ6pC,SAIjC8B,EAAEhhC,OAAOk/B,QACL/vC,IAAKA,IACL2c,SAAUzW,QAAQyW,SAClB7R,KAAMA,KACN6gC,QAAS,SAAU7gC,MAGf,GAAI0W,SAAUtb,QAAQsb,QAAQ1W,KAAM4jD,MAAMI,KAAMJ;AAChDA,MAAMvlD,SAASqY,UAEnBpgB,MAAO,SAAS2b,MAAOgyC,WAAYC,aAC/B,GAAIxtC,UACAytC,UAAU,EACVlyC,MAAOA,MACPgyC,WAAYA,WACZC,YAAaA,YAGjBN,OAAMvlD,SAASqY,YAGvBrZ,QAAU4jC,UAAUhyC,KAAKk2B,KAAM8f,SAChCyc,cAkBX,QAAS0C,OAAMhpD,SACX,GACIipD,UACA1wC,IAFA3T,KAAO5E,QAGPyB,KAAO,SAAUkrC,MAAQ,MAAO,GAAGA,KAAKlrC,KAEvCkqC,GAAE73C,QAAQ8Q,QACX2T,IAAM3T,KACNA,MAAS0W,QAAS/C,MAGjBozB,EAAEj4C,WAAWkR,SAAU,IACxB2T,IAAM3T,KACNA,KAAO,WAAa,MAAO2T,MAG/B,IAAI2wC,UAAWtkD,MAUf,OATIskD,UAASznD,OACTA,KAAOynD,SAASznD,KAEXkqC,EAAEj4C,WAAW+N,QACdwnD,SAAWC,SAASznD,KACpBA,KAAO,SAAUkrC,MAAQ,MAAOA,MAAKsc,aAItC,SAAUT,OACb,GAAgDW,SAA5C74B,EAAIk4B,MAAMR,KAAMoB,UAAa9tC,WACjC,OAAU,KAANgV,MACAk4B,OAAMvlD,SAAS2B,SAInBukD,QAAU,SAASE,MAAO52C,YACtB,GAAIi+B,OAAO9jC,IAEX,IADAy8C,MAAQA,MAAM,GACVA,MAAMh/B,SAAU,CAChBqmB,QACA,KAAK9jC,OAAQy8C,OACLA,MAAMtjD,eAAe6G,QAAO8jC,MAAM9jC,MAAMy8C,MAAMz8C,MAEtD8jC,OAAMrmB,YACNshB,EAAE0d,MAAMh/B,UAAU66B,MAAM,SAAShxD,EAAGo1D,YAAcH,QAAQG,WAAY5Y,MAAMrmB,aACxEqmB,MAAMrmB,SAASl2B,QAAUq0D,MAAM5pC,QAAQ0R,EAAG7uB,KAAKivC,OAAQ2Y,SACvD52C,WAAW1W,KAAK20C,WAGhB8X,OAAM5pC,QAAQ0R,EAAG7uB,KAAK4nD,OAAQA,QAC9B52C,WAAW1W,KAAKstD,QAK5B1d,EAAE/mC,OAAO0W,SAAS4pC,MAAM,SAAShxD,EAAGm1D,OAASF,QAAQE,MAAOD,SAAS9tC,eACrEktC,OAAMvlD,SAASmmD,YAKvB,QAASG,MAAK3kD,MACV,GAAIkrC,QAASnE,EAAEj4C,WAAWkR,KAC1B,OAAO,UAAU4jD,OACb,GAAIl4B,GAAIk4B,MAAMR,KAAMoB,UAAY9tC,YAC5B1G,OAASk7B,OAASlrC,KAAK4jD,OAAS5jD,IAChC+mC,GAAE73C,QAAQ8gB,UACV+2B,EAAE/2B,QAAQ7gB,KAAK,WACX,GAAIm6C,UAAWxuC,KAAK+B,OAASb,UACzBa,KAAOysC,SAAWxuC,KAAK+B,KAAO/B,MACxB,KAAN4wB,GAAYk4B,MAAM5pC,QAAQ0R,EAAG7uB,QAC7B2nD,SAAS9tC,QAAQvf,KAAKmyC,SAAWxuC,MAAQ1J,GAAI0J,KAAM+B,KAAM/B,SAGjE8oD,MAAMvlD,SAASmmD,YAa3B,QAASI,gBAAeC,UAAWC,eAC/B,GAAI/d,EAAEj4C,WAAW+1D,WAAY,OAAO,CACpC,KAAKA,UAAW,OAAO,CACvB,IAA0B,gBAAhB,WAA0B,OAAO,CAC3C,MAAM,IAAIrzD,OAAMszD,cAAe,+CAWnC,QAASjS,UAAS5mC,IAAKjY,SACnB,GAAI+yC,EAAEj4C,WAAWmd,KAAM,CACnB,GAAI7S,MAAOiI,MAAMnG,UAAU3H,MAAMtE,KAAKwB,UAAW,EACjD,OAAOwb,KAAIzb,MAAMwD,QAASoF,MAE9B,MAAO6S,KAGX,QAAS84C,cAAaruC,SAClB,GAAIqT,OAAQ,CAQZ,OAPAgd,GAAE53C,KAAKunB,QAAS,SAASpnB,EAAGy4C,MACpBA,KAAKtiB,SACLsE,OAASg7B,aAAahd,KAAKtiB,UAE3BsE,UAGDA,MAcX,QAASi7B,kBAAiB3kC,MAAO2S,UAAWiyB,eAAgBh3C,MACxD,GAEI2W,OACAhwB,MACAtF,EAAGoZ,EACHu4C,UALA1yB,SAAWlO,MACX6kC,MAAO,CAMX,KAAKj3C,KAAKk3C,qBAAuBl3C,KAAKm3C,iBAAmBn3C,KAAKm3C,gBAAgB71D,OAAS,EAAG,MAAOyM,UAEjG,QAAa,CAGT,IAFApH,MAAQ,GAEHtF,EAAI,EAAGoZ,EAAIuF,KAAKm3C,gBAAgB71D,OAAYmZ,EAAJpZ,IACzC2xD,UAAYhzC,KAAKm3C,gBAAgB91D,GACjCsF,MAAQyrB,MAAMxrB,QAAQosD,aAClBrsD,OAAS,IAHmCtF,KAMpD,GAAY,EAARsF,MAAW,KAKf,IAHAgwB,MAAQvE,MAAMvrB,UAAU,EAAGF,OAC3ByrB,MAAQA,MAAMvrB,UAAUF,MAAQqsD,UAAU1xD,QAEtCq1B,MAAMr1B,OAAS,IACfq1B,MAAQ3W,KAAKk3C,mBAAmBl2D,KAAK6L,KAAM8pB,MAAOoO,WAC9CpO,QAAU5oB,WAAuB,OAAV4oB,OAAkB3W,KAAK7c,GAAGwzB,SAAW5oB,WAAgC,OAAnBiS,KAAK7c,GAAGwzB,QAAiB,CAElG,IADAsgC,MAAO,EACF51D,EAAI,EAAGoZ,EAAIsqB,UAAUzjC,OAAYmZ,EAAJpZ,EAAOA,IACrC,GAAIqxD,MAAM1yC,KAAK7c,GAAGwzB,OAAQ3W,KAAK7c,GAAG4hC,UAAU1jC,KAAM,CAC9C41D,MAAO,CAAM,OAIhBA,MAAMD,eAAergC,QAKtC,MAAI2J,YAAWlO,MAAcA,MAA7B,OAGJ,QAASglC,yBACL,GAAIlgC,MAAOrqB,IAEXisC,GAAE53C,KAAKsB,UAAW,SAAUnB,EAAGosD,SAC3Bv2B,KAAKu2B,SAASt0B,SACdjC,KAAKu2B,SAAW,OAUxB,QAASze,OAAMqoB,WAAYtV,SACvB,GAAI76B,aAAc,YAKlB,OAJAA,aAAYja,UAAY,GAAIoqD,YAC5BnwC,YAAYja,UAAUia,YAAcA,YACpCA,YAAYja,UAAU2kB,OAASylC,WAAWpqD,UAC1Cia,YAAYja,UAAY6rC,EAAEhhC,OAAOoP,YAAYja,UAAW80C,SACjD76B,YAnnBX,GAAI7T,OAAOikD,UAAYvpD,UAAvB,CAIA,GAAIwpD,KAAKC,gBAAiBC,cAAeC,aAAcC,QAASnD,MAC/BoD,UAAWC,oBAAxCvE,mBAAmBC,EAAE,EAAEC,EAAE,GAE7B+D,KACIO,IAAK,EACLC,MAAO,GACPC,IAAK,GACLC,MAAO,GACPC,KAAM,GACNC,GAAI,GACJC,MAAO,GACPC,KAAM,GACNC,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,QAAS,GACTC,UAAW,GACXC,KAAM,GACNC,IAAK,GACLC,UAAW,EACXC,OAAQ,GACRC,QAAS,SAAU7N,GAEf,OADAA,EAAIA,EAAE9rC,MAAQ8rC,EAAE9rC,MAAQ8rC,GAExB,IAAKqM,KAAIW,KACT,IAAKX,KAAIa,MACT,IAAKb,KAAIY,GACT,IAAKZ,KAAIc,KACL,OAAO,EAEX,OAAO,GAEXW,UAAW,SAAU11D,GACjB,GAAI4nD,GAAI5nD,EAAE8b,KACV,QAAQ8rC,GACR,IAAKqM,KAAIe,MACT,IAAKf,KAAIgB,KACT,IAAKhB,KAAIiB,IACL,OAAO,EAGX,QAAIl1D,EAAE+8B,SAIV44B,cAAe,SAAU/N,GAErB,MADAA,GAAIA,EAAE9rC,MAAQ8rC,EAAE9rC,MAAQ8rC,EACjBA,GAAK,KAAY,KAALA,IAG3B2H,2BAA6B,gDAE7BJ,YAAcyG,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,KAAKC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,KAAKC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAAIC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAASC,IAAS,IAElzV51B,WAAY9e,EAAEp2C,UAEdi1D,QAAS,WAA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,0BACA,+BACJ,0BACJ,SACJ,SACA,8CACI,kFACA,sBACI,2BACI,gCACI,yBACI,6CACA,gDACA,iCACJ,8FACJ,SACJ,YACJ,SACJ,SACA,+CACI,gFACA,sBACI,8BACI,aACA,6BACJ,2BACJ,SACJ,SACA,8CACI,2EACA,sBACI,QACI,SACI,eACA,qBACA,uBACA,wCACJ,8CACI,6BACJ,WACA,wCACI,oCACJ,qDACQ,+CACJ,+CACJ,YACA,YACA,6BACJ,SACA,QACI,SACI,eACA,yBACA,uBACA,4CACJ,kDACI,iCACJ,WACA,+CACI,6BACI,6DACJ,YACJ,YACA,iCACA,0CACI,2BACI,wEACJ,YACJ,YACA,iCACJ,SACJ,SACJ,SACA,8CACI,8EACA,sBACI,8BACI,aACA,4BACJ,0BACJ,SACJ,SACA,6CACI,yEACA,sBACI,QACI,SACI,eACA,qBACA,sBACA,uCACJ,6CACI,4BACJ,WACA,0CACA,uBACI,iDACJ,YACA,YACA,4BACA,wCACA,qDACQ,+CACJ,+CACJ,YACA,YACA,4BACJ,SACA,QACI,SACI,eACA,yBACA,sBACA,0CACJ,iDACI,gCACJ,WACA,8CACA,6BACI,6DACJ,YACA,YACA,iDACI,gCACJ,WACA,4CACA,2BACI,wEACJ,YACA,YACA,gCACA,8CACA,uBACI,iDACJ,YACA,YACA,gCACJ,SACJ,SACJ,SACA,4CACI,6CACA,sBACE,gCACE,QACI,SACI,eACA,oBACA,qBACA,oCACJ,2CACI,qBACJ,WACJ,SACF,UACE,QACI,SACI,eACA,oBACA,wBACA,qBACA,wCACJ,+CACI,8BACJ,WACA,SACI,uBACA,YACA,sCACJ,8BACJ,SACA,QACI,SACI,eACA,oBACA,qBACA,oCACJ,2CACI,yBACJ,WACA,SACI,cACA,qCACR,SACJ,SACJ,SACJ,SACA,qCACI,mCACI,2BACA,sCACI,+DACI,kBACJ,OACJ,UACJ,SACJ,SACA,8BACA,SACA,qCACI,mCACI,2BACJ,SACA,gCACI,gCACA,oDACA,4EACJ,SACJ,SAEA,0BACI,SACI,gBACA,+CACA,4BACJ,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","file":"widgets.min.js"} \ No newline at end of file diff --git a/plone/app/widgets/utils.py b/plone/app/widgets/utils.py index 824b79a5..20ea7637 100644 --- a/plone/app/widgets/utils.py +++ b/plone/app/widgets/utils.py @@ -207,11 +207,27 @@ def get_tinymce_options(context, field, request): # override config plugins settings # XXX: the list of loaded plugins may change in plone-mockup - config['plugins'] = \ - '-advlist -autolink -lists -charmap -print -preview ' \ - '-anchor -searchreplace -visualblocks -code -fullscreen ' \ - '-insertdatetime -media -table -contextmenu -paste ' \ - '-plonelink -ploneimage -textcolor' + config['plugins'] = [ + 'advlist', + 'autolink', + 'lists', + 'charmap', + 'print', + 'preview', + 'anchor', + 'searchreplace', + 'visualblocks', + 'code', + 'fullscreen', + 'insertdatetime', + 'media', + 'table', + 'contextmenu', + 'paste', + 'plonelink', + 'ploneimage', + 'textcolor', + ] # FIXME: map old names to new names in the configuration for plone5 # and notify migration-team @@ -402,7 +418,7 @@ def get_tinymce_options(context, field, request): config['resize'] = utility.resizing if utility.autoresize: - config['plugins'] += ' -autoresize' + config['plugins'].append('autoresize') config['autoresize_min_height'] = config[ 'theme_advanced_source_editor_height']