├── .gitignore ├── .travis.yml ├── Dockerfile ├── FroalaEditorSDK.sln ├── LICENSE ├── README.md ├── _config.yml ├── demo-core ├── .bowerrc ├── .gitignore ├── Controllers │ ├── FroalaApiController.cs │ └── HomeController.cs ├── Dockerfile ├── Program.cs ├── README.md ├── Startup.cs ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml ├── appsettings.json ├── bower.json ├── bundleconfig.json ├── demo-core.csproj ├── web.config └── wwwroot │ ├── css │ └── site.min.css │ ├── favicon.ico │ ├── js │ ├── site.js │ └── site.min.js │ └── lib │ ├── font-awesome │ ├── .bower.json │ ├── .gitignore │ ├── .npmignore │ ├── HELP-US-OUT.txt │ ├── bower.json │ ├── css │ │ ├── font-awesome.css │ │ ├── font-awesome.css.map │ │ └── font-awesome.min.css │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── less │ │ ├── animated.less │ │ ├── bordered-pulled.less │ │ ├── core.less │ │ ├── fixed-width.less │ │ ├── font-awesome.less │ │ ├── icons.less │ │ ├── larger.less │ │ ├── list.less │ │ ├── mixins.less │ │ ├── path.less │ │ ├── rotated-flipped.less │ │ ├── screen-reader.less │ │ ├── stacked.less │ │ └── variables.less │ └── scss │ │ ├── _animated.scss │ │ ├── _bordered-pulled.scss │ │ ├── _core.scss │ │ ├── _fixed-width.scss │ │ ├── _icons.scss │ │ ├── _larger.scss │ │ ├── _list.scss │ │ ├── _mixins.scss │ │ ├── _path.scss │ │ ├── _rotated-flipped.scss │ │ ├── _screen-reader.scss │ │ ├── _stacked.scss │ │ ├── _variables.scss │ │ └── font-awesome.scss │ ├── froala-wysiwyg-editor │ ├── .bower.json │ ├── .github │ │ └── ISSUE_TEMPLATE.md │ ├── .gitignore │ ├── License.txt │ ├── README.md │ ├── bower.json │ ├── composer.json │ ├── css │ │ ├── froala_editor.css │ │ ├── froala_editor.min.css │ │ ├── froala_editor.pkgd.css │ │ ├── froala_editor.pkgd.min.css │ │ ├── froala_style.css │ │ ├── froala_style.min.css │ │ ├── plugins │ │ │ ├── char_counter.css │ │ │ ├── char_counter.min.css │ │ │ ├── code_view.css │ │ │ ├── code_view.min.css │ │ │ ├── colors.css │ │ │ ├── colors.min.css │ │ │ ├── draggable.css │ │ │ ├── draggable.min.css │ │ │ ├── emoticons.css │ │ │ ├── emoticons.min.css │ │ │ ├── file.css │ │ │ ├── file.min.css │ │ │ ├── fullscreen.css │ │ │ ├── fullscreen.min.css │ │ │ ├── help.css │ │ │ ├── help.min.css │ │ │ ├── image.css │ │ │ ├── image.min.css │ │ │ ├── image_manager.css │ │ │ ├── image_manager.min.css │ │ │ ├── line_breaker.css │ │ │ ├── line_breaker.min.css │ │ │ ├── quick_insert.css │ │ │ ├── quick_insert.min.css │ │ │ ├── special_characters.css │ │ │ ├── special_characters.min.css │ │ │ ├── table.css │ │ │ ├── table.min.css │ │ │ ├── video.css │ │ │ └── video.min.css │ │ ├── themes │ │ │ ├── dark.css │ │ │ ├── dark.min.css │ │ │ ├── gray.css │ │ │ ├── gray.min.css │ │ │ ├── red.css │ │ │ ├── red.min.css │ │ │ ├── royal.css │ │ │ └── royal.min.css │ │ └── third_party │ │ │ ├── embedly.css │ │ │ ├── embedly.min.css │ │ │ ├── font_awesome.css │ │ │ ├── font_awesome.min.css │ │ │ ├── image_tui.css │ │ │ ├── image_tui.min.css │ │ │ ├── spell_checker.css │ │ │ └── spell_checker.min.css │ ├── editor.jpg │ ├── index.html │ └── js │ │ ├── froala_editor.min.js │ │ ├── froala_editor.pkgd.min.js │ │ ├── languages │ │ ├── ar.js │ │ ├── bs.js │ │ ├── cs.js │ │ ├── da.js │ │ ├── de.js │ │ ├── el.js │ │ ├── en_ca.js │ │ ├── en_gb.js │ │ ├── es.js │ │ ├── et.js │ │ ├── fa.js │ │ ├── fi.js │ │ ├── fr.js │ │ ├── he.js │ │ ├── hr.js │ │ ├── hu.js │ │ ├── id.js │ │ ├── it.js │ │ ├── ja.js │ │ ├── ko.js │ │ ├── ku.js │ │ ├── me.js │ │ ├── nb.js │ │ ├── nl.js │ │ ├── pl.js │ │ ├── pt_br.js │ │ ├── pt_pt.js │ │ ├── ro.js │ │ ├── ru.js │ │ ├── sk.js │ │ ├── sr.js │ │ ├── sv.js │ │ ├── th.js │ │ ├── tr.js │ │ ├── uk.js │ │ ├── vi.js │ │ ├── zh_cn.js │ │ └── zh_tw.js │ │ ├── plugins │ │ ├── align.min.js │ │ ├── char_counter.min.js │ │ ├── code_beautifier.min.js │ │ ├── code_view.min.js │ │ ├── colors.min.js │ │ ├── draggable.min.js │ │ ├── emoticons.min.js │ │ ├── entities.min.js │ │ ├── file.min.js │ │ ├── font_family.min.js │ │ ├── font_size.min.js │ │ ├── forms.min.js │ │ ├── fullscreen.min.js │ │ ├── help.min.js │ │ ├── image.min.js │ │ ├── image_manager.min.js │ │ ├── inline_class.min.js │ │ ├── inline_style.min.js │ │ ├── line_breaker.min.js │ │ ├── line_height.min.js │ │ ├── link.min.js │ │ ├── lists.min.js │ │ ├── paragraph_format.min.js │ │ ├── paragraph_style.min.js │ │ ├── print.min.js │ │ ├── quick_insert.min.js │ │ ├── quote.min.js │ │ ├── save.min.js │ │ ├── special_characters.min.js │ │ ├── table.min.js │ │ ├── url.min.js │ │ ├── video.min.js │ │ └── word_paste.min.js │ │ └── third_party │ │ ├── embedly.min.js │ │ ├── font_awesome.min.js │ │ ├── image_aviary.min.js │ │ ├── image_tui.min.js │ │ └── spell_checker.min.js │ └── jquery │ ├── .bower.json │ ├── AUTHORS.txt │ ├── LICENSE.txt │ ├── README.md │ ├── bower.json │ ├── dist │ ├── core.js │ ├── jquery.js │ ├── jquery.min.js │ ├── jquery.min.map │ ├── jquery.slim.js │ ├── jquery.slim.min.js │ └── jquery.slim.min.map │ ├── external │ └── sizzle │ │ ├── LICENSE.txt │ │ └── dist │ │ ├── sizzle.js │ │ ├── sizzle.min.js │ │ └── sizzle.min.map │ └── src │ ├── .eslintrc.json │ ├── ajax.js │ ├── ajax │ ├── jsonp.js │ ├── load.js │ ├── parseXML.js │ ├── script.js │ ├── var │ │ ├── location.js │ │ ├── nonce.js │ │ └── rquery.js │ └── xhr.js │ ├── attributes.js │ ├── attributes │ ├── attr.js │ ├── classes.js │ ├── prop.js │ ├── support.js │ └── val.js │ ├── callbacks.js │ ├── core.js │ ├── core │ ├── DOMEval.js │ ├── access.js │ ├── camelCase.js │ ├── init.js │ ├── nodeName.js │ ├── parseHTML.js │ ├── ready-no-deferred.js │ ├── ready.js │ ├── readyException.js │ ├── stripAndCollapse.js │ ├── support.js │ ├── toType.js │ └── var │ │ └── rsingleTag.js │ ├── css.js │ ├── css │ ├── addGetHookIf.js │ ├── adjustCSS.js │ ├── curCSS.js │ ├── hiddenVisibleSelectors.js │ ├── showHide.js │ ├── support.js │ └── var │ │ ├── cssExpand.js │ │ ├── getStyles.js │ │ ├── isHiddenWithinTree.js │ │ ├── rboxStyle.js │ │ ├── rnumnonpx.js │ │ └── swap.js │ ├── data.js │ ├── data │ ├── Data.js │ └── var │ │ ├── acceptData.js │ │ ├── dataPriv.js │ │ └── dataUser.js │ ├── deferred.js │ ├── deferred │ └── exceptionHook.js │ ├── deprecated.js │ ├── dimensions.js │ ├── effects.js │ ├── effects │ ├── Tween.js │ └── animatedSelector.js │ ├── event.js │ ├── event │ ├── ajax.js │ ├── alias.js │ ├── focusin.js │ ├── support.js │ └── trigger.js │ ├── exports │ ├── amd.js │ └── global.js │ ├── jquery.js │ ├── manipulation.js │ ├── manipulation │ ├── _evalUrl.js │ ├── buildFragment.js │ ├── getAll.js │ ├── setGlobalEval.js │ ├── support.js │ ├── var │ │ ├── rcheckableType.js │ │ ├── rscriptType.js │ │ └── rtagName.js │ └── wrapMap.js │ ├── offset.js │ ├── queue.js │ ├── queue │ └── delay.js │ ├── selector-native.js │ ├── selector-sizzle.js │ ├── selector.js │ ├── serialize.js │ ├── traversing.js │ ├── traversing │ ├── findFilter.js │ └── var │ │ ├── dir.js │ │ ├── rneedsContext.js │ │ └── siblings.js │ ├── var │ ├── ObjectFunctionString.js │ ├── arr.js │ ├── class2type.js │ ├── concat.js │ ├── document.js │ ├── documentElement.js │ ├── fnToString.js │ ├── getProto.js │ ├── hasOwn.js │ ├── indexOf.js │ ├── isFunction.js │ ├── isWindow.js │ ├── pnum.js │ ├── push.js │ ├── rcssNum.js │ ├── rnothtmlwhite.js │ ├── slice.js │ ├── support.js │ └── toString.js │ └── wrap.js ├── demo ├── App_Start │ ├── BundleConfig.cs │ ├── FilterConfig.cs │ ├── RouteConfig.cs │ └── WebApiConfig.cs ├── Areas │ └── HelpPage │ │ ├── ApiDescriptionExtensions.cs │ │ ├── App_Start │ │ └── HelpPageConfig.cs │ │ ├── Controllers │ │ └── HelpController.cs │ │ ├── HelpPage.css │ │ ├── HelpPageAreaRegistration.cs │ │ ├── HelpPageConfigurationExtensions.cs │ │ ├── ModelDescriptions │ │ ├── CollectionModelDescription.cs │ │ ├── ComplexTypeModelDescription.cs │ │ ├── DictionaryModelDescription.cs │ │ ├── EnumTypeModelDescription.cs │ │ ├── EnumValueDescription.cs │ │ ├── IModelDocumentationProvider.cs │ │ ├── KeyValuePairModelDescription.cs │ │ ├── ModelDescription.cs │ │ ├── ModelDescriptionGenerator.cs │ │ ├── ModelNameAttribute.cs │ │ ├── ModelNameHelper.cs │ │ ├── ParameterAnnotation.cs │ │ ├── ParameterDescription.cs │ │ └── SimpleTypeModelDescription.cs │ │ ├── Models │ │ └── HelpPageApiModel.cs │ │ ├── SampleGeneration │ │ ├── HelpPageSampleGenerator.cs │ │ ├── HelpPageSampleKey.cs │ │ ├── ImageSample.cs │ │ ├── InvalidSample.cs │ │ ├── ObjectGenerator.cs │ │ ├── SampleDirection.cs │ │ └── TextSample.cs │ │ ├── Views │ │ ├── Help │ │ │ ├── Api.cshtml │ │ │ ├── DisplayTemplates │ │ │ │ ├── ApiGroup.cshtml │ │ │ │ ├── CollectionModelDescription.cshtml │ │ │ │ ├── ComplexTypeModelDescription.cshtml │ │ │ │ ├── DictionaryModelDescription.cshtml │ │ │ │ ├── EnumTypeModelDescription.cshtml │ │ │ │ ├── HelpPageApiModel.cshtml │ │ │ │ ├── ImageSample.cshtml │ │ │ │ ├── InvalidSample.cshtml │ │ │ │ ├── KeyValuePairModelDescription.cshtml │ │ │ │ ├── ModelDescriptionLink.cshtml │ │ │ │ ├── Parameters.cshtml │ │ │ │ ├── Samples.cshtml │ │ │ │ ├── SimpleTypeModelDescription.cshtml │ │ │ │ └── TextSample.cshtml │ │ │ ├── Index.cshtml │ │ │ └── ResourceModel.cshtml │ │ ├── Shared │ │ │ └── _Layout.cshtml │ │ ├── Web.config │ │ └── _ViewStart.cshtml │ │ └── XmlDocumentationProvider.cs ├── ClassDiagram1.cd ├── Content │ ├── app.css │ ├── font-awesome.css │ └── font-awesome.min.css ├── Controllers │ ├── FroalaApiController.cs │ └── HomeController.cs ├── Global.asax ├── Global.asax.cs ├── Project_Readme.html ├── Properties │ └── AssemblyInfo.cs ├── Scripts │ ├── bootstrap.js │ ├── bootstrap.min.js │ ├── froala-editor │ │ ├── css │ │ │ ├── froala_editor.css │ │ │ ├── froala_editor.min.css │ │ │ ├── froala_editor.pkgd.css │ │ │ ├── froala_editor.pkgd.min.css │ │ │ ├── froala_style.css │ │ │ ├── froala_style.min.css │ │ │ ├── plugins │ │ │ │ ├── char_counter.css │ │ │ │ ├── char_counter.min.css │ │ │ │ ├── code_view.css │ │ │ │ ├── code_view.min.css │ │ │ │ ├── colors.css │ │ │ │ ├── colors.min.css │ │ │ │ ├── draggable.css │ │ │ │ ├── draggable.min.css │ │ │ │ ├── emoticons.css │ │ │ │ ├── emoticons.min.css │ │ │ │ ├── file.css │ │ │ │ ├── file.min.css │ │ │ │ ├── fullscreen.css │ │ │ │ ├── fullscreen.min.css │ │ │ │ ├── help.css │ │ │ │ ├── help.min.css │ │ │ │ ├── image.css │ │ │ │ ├── image.min.css │ │ │ │ ├── image_manager.css │ │ │ │ ├── image_manager.min.css │ │ │ │ ├── line_breaker.css │ │ │ │ ├── line_breaker.min.css │ │ │ │ ├── quick_insert.css │ │ │ │ ├── quick_insert.min.css │ │ │ │ ├── special_characters.css │ │ │ │ ├── special_characters.min.css │ │ │ │ ├── table.css │ │ │ │ ├── table.min.css │ │ │ │ ├── video.css │ │ │ │ └── video.min.css │ │ │ ├── themes │ │ │ │ ├── dark.css │ │ │ │ ├── dark.min.css │ │ │ │ ├── gray.css │ │ │ │ ├── gray.min.css │ │ │ │ ├── red.css │ │ │ │ ├── red.min.css │ │ │ │ ├── royal.css │ │ │ │ └── royal.min.css │ │ │ └── third_party │ │ │ │ ├── embedly.css │ │ │ │ ├── embedly.min.css │ │ │ │ ├── font_awesome.css │ │ │ │ ├── font_awesome.min.css │ │ │ │ ├── image_tui.css │ │ │ │ ├── image_tui.min.css │ │ │ │ ├── spell_checker.css │ │ │ │ └── spell_checker.min.css │ │ ├── img │ │ │ └── photo1.jpg │ │ └── js │ │ │ ├── froala_editor.min.js │ │ │ ├── froala_editor.pkgd.min.js │ │ │ ├── languages │ │ │ ├── ar.js │ │ │ ├── bs.js │ │ │ ├── cs.js │ │ │ ├── da.js │ │ │ ├── de.js │ │ │ ├── el.js │ │ │ ├── en_ca.js │ │ │ ├── en_gb.js │ │ │ ├── es.js │ │ │ ├── et.js │ │ │ ├── fa.js │ │ │ ├── fi.js │ │ │ ├── fr.js │ │ │ ├── he.js │ │ │ ├── hr.js │ │ │ ├── hu.js │ │ │ ├── id.js │ │ │ ├── it.js │ │ │ ├── ja.js │ │ │ ├── ko.js │ │ │ ├── ku.js │ │ │ ├── me.js │ │ │ ├── nb.js │ │ │ ├── nl.js │ │ │ ├── pl.js │ │ │ ├── pt_br.js │ │ │ ├── pt_pt.js │ │ │ ├── ro.js │ │ │ ├── ru.js │ │ │ ├── sk.js │ │ │ ├── sr.js │ │ │ ├── sv.js │ │ │ ├── th.js │ │ │ ├── tr.js │ │ │ ├── ua.js │ │ │ ├── uk.js │ │ │ ├── vi.js │ │ │ ├── zh_cn.js │ │ │ └── zh_tw.js │ │ │ ├── plugins │ │ │ ├── align.min.js │ │ │ ├── char_counter.min.js │ │ │ ├── code_beautifier.min.js │ │ │ ├── code_view.min.js │ │ │ ├── colors.min.js │ │ │ ├── draggable.min.js │ │ │ ├── emoticons.min.js │ │ │ ├── entities.min.js │ │ │ ├── file.min.js │ │ │ ├── font_family.min.js │ │ │ ├── font_size.min.js │ │ │ ├── forms.min.js │ │ │ ├── fullscreen.min.js │ │ │ ├── help.min.js │ │ │ ├── image.min.js │ │ │ ├── image_manager.min.js │ │ │ ├── inline_class.min.js │ │ │ ├── inline_style.min.js │ │ │ ├── line_breaker.min.js │ │ │ ├── line_height.min.js │ │ │ ├── link.min.js │ │ │ ├── lists.min.js │ │ │ ├── paragraph_format.min.js │ │ │ ├── paragraph_style.min.js │ │ │ ├── print.min.js │ │ │ ├── quick_insert.min.js │ │ │ ├── quote.min.js │ │ │ ├── save.min.js │ │ │ ├── special_characters.min.js │ │ │ ├── table.min.js │ │ │ ├── url.min.js │ │ │ ├── video.min.js │ │ │ └── word_paste.min.js │ │ │ └── third_party │ │ │ ├── embedly.min.js │ │ │ ├── font_awesome.min.js │ │ │ ├── image_aviary.min.js │ │ │ ├── image_tui.min.js │ │ │ └── spell_checker.min.js │ ├── jquery-1.10.2.intellisense.js │ ├── jquery-1.11.0.intellisense.js │ ├── jquery-1.11.0.js │ ├── jquery-1.11.0.min.js │ ├── jquery-1.11.0.min.map │ ├── modernizr-2.6.2.js │ ├── modernizr-2.8.3.js │ ├── respond.js │ ├── respond.matchmedia.addListener.js │ ├── respond.matchmedia.addListener.min.js │ └── respond.min.js ├── Views │ ├── Home │ │ └── Index.cshtml │ ├── Shared │ │ ├── Error.cshtml │ │ └── _Layout.cshtml │ ├── Web.config │ └── _ViewStart.cshtml ├── Web.Debug.config ├── Web.Release.config ├── Web.config ├── demo.csproj ├── favicon.ico ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── fontawesome-webfont.woff2 │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff └── packages.config ├── deploy_sdk.sh ├── docker-compose.yml.template ├── push-image-to-nexus.sh ├── src ├── File.cs ├── File │ ├── FileOptions.cs │ └── FileValidation.cs ├── FroalaEditor.cs ├── FroalaEditorSDK.nuspec ├── Image.cs ├── Image │ ├── ImageOptions.cs │ └── ImageValidation.cs ├── S3.cs ├── S3 │ └── S3Config.cs ├── Utils │ └── Utils.cs ├── Video.cs ├── Video │ ├── VideoOptions.cs │ └── VideoValidation.cs └── src.csproj └── version.json /.travis.yml: -------------------------------------------------------------------------------- 1 | git: 2 | depth: false 3 | quiet: false 4 | language: generic 5 | dist: bionic 6 | sudo: required 7 | branches: 8 | only: 9 | - /dev*/ 10 | - /AO-dev*/ 11 | - /QA*/ 12 | - /QE*/ 13 | - /RC*/ 14 | - /Release-Master*/ 15 | env: 16 | - SHORT_COMMIT= `git rev-parse --short=7 ${TRAVIS_COMMIT}` 17 | before_install: 18 | - echo $TRAVIS_BRANCH 19 | - echo $PWD 20 | - echo $TRAVIS_COMMIT 21 | - echo $BUILD_REPO_NAME 22 | jobs: 23 | include: 24 | if: commit_message =~ /(deploy-yes)/ 25 | script: 26 | - chmod u+x push-image-to-nexus.sh && bash push-image-to-nexus.sh 27 | - chmod u+x deploy_sdk.sh && bash deploy_sdk.sh 28 | notifications: 29 | email: 30 | recipients: 31 | - harasunu.narayan@froala.com 32 | on_success: always 33 | on_failure: always -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM node:14.17.3 2 | FROM mcr.microsoft.com/dotnet/core/sdk:2.2 3 | 4 | LABEL maintainer="" 5 | 6 | COPY --from=node /usr/bin/test /usr/bin/test 7 | 8 | ARG PackageName 9 | ARG PackageVersion 10 | ARG NexusUser 11 | ARG NexusPassword 12 | ENV ASPNETCORE_ENVIRONMENT=Development 13 | 14 | RUN apt update -y \ 15 | && apt install -y jq unzip curl 16 | 17 | COPY . /app 18 | WORKDIR /app/demo-core 19 | RUN apt install curl 20 | RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - 21 | RUN apt-get install -y nodejs 22 | RUN apt-get install -y npm 23 | RUN npm install -g bower 24 | RUN bower --allow-root install 25 | 26 | RUN wget --no-check-certificate --user ${NexusUser} --password ${NexusPassword} https://nexus.tools.froala-infra.com/repository/Froala-npm/${PackageName}/-/${PackageName}-${PackageVersion}.tgz 27 | RUN tar -xvf ${PackageName}-${PackageVersion}.tgz 28 | 29 | RUN rm -rf wwwroot/lib/froala-wysiwyg-editor 30 | RUN mv package/ wwwroot/lib/froala-wysiwyg-editor 31 | 32 | RUN rm -rf ${PackageName}-${PackageVersion}.tgz 33 | 34 | EXPOSE 5002 35 | CMD ["dotnet","run"] 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2016 Froala Labs 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Froala WYSIWYG Editor .NET SDK 2 | 3 | Easing the [Froala WYSIWYG HTML Editor](https://github.com/froala/wysiwyg-editor) server side integration in .NET projects. 4 | 5 | ## Dependencies 6 | 7 | .NET Core 1.0 or .Net Framework version 4.5.2+ is required. 8 | 9 | ## Installation 10 | 11 | 1. Clone this repo or download the zip. 12 | 13 | 2. Load `src` project directory in your project and import it. 14 | 15 | 3. To run .NET examples: 16 | 17 | * Open `FroalaEditorSDK.sln` in Visual Studio. 18 | * Run `demo` or `demo-core` project. 19 | 20 | ## Import lib 21 | 22 | * Visual Studio -> Right click on your project -> Add -> Reference... -> Select `src` project. 23 | 24 | ## Documentation 25 | 26 | * [Official documentation](https://www.froala.com/wysiwyg-editor/docs/sdks/dotnet) 27 | 28 | ## Help 29 | - Found a bug or have some suggestions? Just submit an issue. 30 | - Having trouble with your integration? [Contact Froala Support team](http://froala.com/wysiwyg-editor/contact). 31 | 32 | 33 | ## License 34 | 35 | The Froala WYSIWYG Editor .NET SDK is licensed under MIT license. However, in order to use Froala WYSIWYG HTML Editor plugin you should purchase a license for it. 36 | 37 | Froala Editor has [3 different licenses](http://froala.com/wysiwyg-editor/pricing) for commercial use. 38 | For details please see [License Agreement](http://froala.com/wysiwyg-editor/terms). 39 | 40 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal -------------------------------------------------------------------------------- /demo-core/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "registry": "https://registry.bower.io", 3 | "directory": "wwwroot/lib" 4 | } 5 | -------------------------------------------------------------------------------- /demo-core/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace demo.Controllers 4 | { 5 | public class HomeController : Controller 6 | { 7 | public IActionResult Index() 8 | { 9 | return View(); 10 | } 11 | 12 | public IActionResult Error() 13 | { 14 | return View(); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /demo-core/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM microsoft/dotnet:latest 2 | 3 | COPY . /app 4 | 5 | WORKDIR /app 6 | 7 | RUN ["dotnet", "restore"] 8 | 9 | RUN ["dotnet", "build"] 10 | 11 | EXPOSE 5000/tcp 12 | 13 | CMD ["dotnet", "run", "--server.urls", "http://*:5000"] 14 | -------------------------------------------------------------------------------- /demo-core/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Hosting; 7 | using Microsoft.Extensions.Configuration; 8 | 9 | namespace demo 10 | { 11 | public class Program 12 | { 13 | public static void Main(string[] args) 14 | { 15 | var config = new ConfigurationBuilder() 16 | .AddCommandLine(args) 17 | .AddEnvironmentVariables(prefix: "ASPNETCORE_") 18 | .Build(); 19 | 20 | var host = new WebHostBuilder() 21 | .UseConfiguration(config) 22 | .UseKestrel() 23 | .UseContentRoot(Directory.GetCurrentDirectory()) 24 | .UseIISIntegration() 25 | .UseStartup() 26 | .UseUrls("http://0.0.0.0:5002/") 27 | .Build(); 28 | 29 | host.Run(); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /demo-core/Views/Shared/Error.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | ViewData["Title"] = "Error"; 3 | } 4 | 5 |

Error.

6 |

An error occurred while processing your request.

7 | 8 |

Development Mode

9 |

10 | Swapping to Development environment will display more detailed information about the error that occurred. 11 |

12 |

13 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 14 |

15 | -------------------------------------------------------------------------------- /demo-core/Views/Shared/_Layout.cshtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Froala Editor SDK 7 | 8 | 9 | 10 | 11 | 12 | @RenderBody() 13 | 14 | @RenderSection("scripts", required: false) 15 | 16 | 17 | -------------------------------------------------------------------------------- /demo-core/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using demo 2 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 3 | -------------------------------------------------------------------------------- /demo-core/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /demo-core/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /demo-core/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo-core", 3 | "private": true, 4 | "dependencies": { 5 | "froala-wysiwyg-editor": "4.5.2" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /demo-core/bundleconfig.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "outputFileName": "wwwroot/css/site.min.css", 4 | "inputFiles": [ 5 | "wwwroot/css/site.css" 6 | ] 7 | }, 8 | { 9 | "outputFileName": "wwwroot/js/site.min.js", 10 | "inputFiles": [ 11 | "wwwroot/js/site.js" 12 | ], 13 | "minify": { 14 | "enabled": true, 15 | "renameLocals": true 16 | }, 17 | "sourceMap": false 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /demo-core/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /demo-core/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/css/site.min.css -------------------------------------------------------------------------------- /demo-core/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/favicon.ico -------------------------------------------------------------------------------- /demo-core/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | alert('foo') -------------------------------------------------------------------------------- /demo-core/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- 1 | alert("foo"); -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": [ 9 | "OFL-1.1", 10 | "MIT", 11 | "CC-BY-3.0" 12 | ], 13 | "main": [ 14 | "less/font-awesome.less", 15 | "scss/font-awesome.scss" 16 | ], 17 | "ignore": [ 18 | "*/.*", 19 | "*.json", 20 | "src", 21 | "*.yml", 22 | "Gemfile", 23 | "Gemfile.lock", 24 | "*.md" 25 | ], 26 | "version": "4.7.0", 27 | "_release": "4.7.0", 28 | "_resolution": { 29 | "type": "version", 30 | "tag": "v4.7.0", 31 | "commit": "a3fe90fa5f6fac55d197f9cbd18e3f57dafb716c" 32 | }, 33 | "_source": "https://github.com/FortAwesome/Font-Awesome.git", 34 | "_target": ">=4.4.0", 35 | "_originalSource": "font-awesome" 36 | } -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | .bundle 34 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/.npmignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | *.egg-info 3 | *.db 4 | *.db.old 5 | *.swp 6 | *.db-journal 7 | 8 | .coverage 9 | .DS_Store 10 | .installed.cfg 11 | _gh_pages/* 12 | 13 | .idea/* 14 | .svn/* 15 | src/website/static/* 16 | src/website/media/* 17 | 18 | bin 19 | cfcache 20 | develop-eggs 21 | dist 22 | downloads 23 | eggs 24 | parts 25 | tmp 26 | .sass-cache 27 | node_modules 28 | 29 | src/website/settingslocal.py 30 | stunnel.log 31 | 32 | .ruby-version 33 | 34 | # don't need these in the npm package. 35 | src/ 36 | _config.yml 37 | bower.json 38 | component.json 39 | composer.json 40 | CONTRIBUTING.md 41 | Gemfile 42 | Gemfile.lock 43 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-awesome", 3 | "description": "Font Awesome", 4 | "keywords": [], 5 | "homepage": "http://fontawesome.io", 6 | "dependencies": {}, 7 | "devDependencies": {}, 8 | "license": ["OFL-1.1", "MIT", "CC-BY-3.0"], 9 | "main": [ 10 | "less/font-awesome.less", 11 | "scss/font-awesome.scss" 12 | ], 13 | "ignore": [ 14 | "*/.*", 15 | "*.json", 16 | "src", 17 | "*.yml", 18 | "Gemfile", 19 | "Gemfile.lock", 20 | "*.md" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/lib/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/lib/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | .sr-only() { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | .sr-only-focusable() { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | @mixin sr-only { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | @mixin sr-only-focusable { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only(); } 5 | .sr-only-focusable { @include sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/font-awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ### _If you have a feature suggestion, please add it on the [Feature List](https://wysiwyg-editor-roadmap.froala.com/public) instead._ 2 | 3 | ##### Expected behavior. 4 | (Describe expected behaviour here) 5 | 6 | ##### Actual behavior. 7 | (Describe actual behaviour here) 8 | 9 | ##### Steps to reproduce the problem. 10 | (Describe the steps to reproduce the problem here. A [jsFiddle](https://jsfiddle.net/froala/wc5c3jhk/) is awesome when possible.) 11 | 12 | ##### OS. 13 | (OS name and version here) 14 | 15 | ##### Browser. 16 | (Browser name an version here) 17 | 18 | ##### Recording. 19 | (A recording showing how to reproduce the problem) 20 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/.gitignore: -------------------------------------------------------------------------------- 1 | froala_editor.js 2 | *~ 3 | .idea 4 | node_modules 5 | dist 6 | npm-debug.log 7 | .DS_STORE -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/License.txt: -------------------------------------------------------------------------------- 1 | Froala WYSIWYG Editor 2 | ================ 3 | 4 | In order to use Froala Editor you have to purchase a license from: https://www.froala.com/wysiwyg-editor/pricing. 5 | For more informations regarding the license please read https://www.froala.com/wysiwyg-editor/terms. 6 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "froala/wysiwyg-editor", 3 | "description": "A beautiful jQuery WYSIWYG HTML rich text editor. High performance and modern design make it easy to use for developers and loved by users.", 4 | "type": "component", 5 | "homepage": "https://www.froala.com/wysiwyg-editor", 6 | "license": "proprietary", 7 | "support": { 8 | "issues": "https://www.froala.com/wysiwyg-editor/contact" 9 | }, 10 | "keywords": [ 11 | "froala", 12 | "froala-editor", 13 | "froala-wysiwyg", 14 | "html", 15 | "text", 16 | "editor", 17 | "wysiwyg", 18 | "jquery-plugin", 19 | "rich editor", 20 | "rich text editor", 21 | "rte", 22 | "javascript", 23 | "jquery" 24 | ], 25 | "authors": [ 26 | { 27 | "name": "Froala Labs", 28 | "email": "support@froala.com" 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/char_counter.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-box .fr-counter { 24 | position: absolute; 25 | bottom: 0px; 26 | padding: 5px; 27 | right: 0px; 28 | color: #cccccc; 29 | content: attr(data-chars); 30 | font-size: 15px; 31 | font-family: "Times New Roman", Georgia, Serif; 32 | z-index: 1; 33 | background: #ffffff; 34 | border-top: solid 1px #ebebeb; 35 | border-left: solid 1px #ebebeb; 36 | border-radius: 2px 0 0 0; 37 | -moz-border-radius: 2px 0 0 0; 38 | -webkit-border-radius: 2px 0 0 0; 39 | -moz-background-clip: padding; 40 | -webkit-background-clip: padding-box; 41 | background-clip: padding-box; 42 | } 43 | .fr-box.fr-rtl .fr-counter { 44 | left: 0px; 45 | right: auto; 46 | border-left: none; 47 | border-right: solid 1px #ebebeb; 48 | border-radius: 0 2px 0 0; 49 | -moz-border-radius: 0 2px 0 0; 50 | -webkit-border-radius: 0 2px 0 0; 51 | -moz-background-clip: padding; 52 | -webkit-background-clip: padding-box; 53 | background-clip: padding-box; 54 | } 55 | .fr-box.fr-code-view .fr-counter { 56 | display: none; 57 | } 58 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/char_counter.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-box .fr-counter{position:absolute;bottom:0;padding:5px;right:0;color:#ccc;content:attr(data-chars);font-size:15px;font-family:"Times New Roman",Georgia,Serif;z-index:1;background:#fff;border-top:solid 1px #ebebeb;border-left:solid 1px #ebebeb;border-radius:2px 0 0;-moz-border-radius:2px 0 0;-webkit-border-radius:2px 0 0;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.fr-box.fr-rtl .fr-counter{left:0;right:auto;border-left:0;border-right:solid 1px #ebebeb;border-radius:0 2px 0 0;-moz-border-radius:0 2px 0 0;-webkit-border-radius:0 2px 0 0;-moz-background-clip:padding;-webkit-background-clip:padding-box;background-clip:padding-box}.fr-box.fr-code-view .fr-counter{display:none} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/draggable.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-drag-helper { 24 | background: #1e88e5; 25 | height: 2px; 26 | margin-top: -1px; 27 | -webkit-opacity: 0.2; 28 | -moz-opacity: 0.2; 29 | opacity: 0.2; 30 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 31 | position: absolute; 32 | z-index: 2147483640; 33 | display: none; 34 | } 35 | .fr-drag-helper.fr-visible { 36 | display: block; 37 | } 38 | .fr-dragging { 39 | -webkit-opacity: 0.4; 40 | -moz-opacity: 0.4; 41 | opacity: 0.4; 42 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 43 | } 44 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/draggable.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-drag-helper{background:#1e88e5;height:2px;margin-top:-1px;-webkit-opacity:.2;-moz-opacity:.2;opacity:.2;-ms-filter:"alpha(Opacity=0)";position:absolute;z-index:2147483640;display:none}.fr-drag-helper.fr-visible{display:block}.fr-dragging{-webkit-opacity:.4;-moz-opacity:.4;opacity:.4;-ms-filter:"alpha(Opacity=0)"} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/emoticons.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-popup .fr-emoticon { 24 | display: inline-block; 25 | font-size: 20px; 26 | width: 20px; 27 | padding: 5px; 28 | line-height: 1; 29 | cursor: default; 30 | font-weight: normal; 31 | font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; 32 | -webkit-box-sizing: content-box; 33 | -moz-box-sizing: content-box; 34 | box-sizing: content-box; 35 | } 36 | .fr-popup .fr-emoticon img { 37 | height: 20px; 38 | } 39 | .fr-popup .fr-link:focus { 40 | outline: 0; 41 | background: #ebebeb; 42 | } 43 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/emoticons.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-popup .fr-emoticon{display:inline-block;font-size:20px;width:20px;padding:5px;line-height:1;cursor:default;font-weight:400;font-family:"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fr-popup .fr-emoticon img{height:20px}.fr-popup .fr-link:focus{outline:0;background:#ebebeb} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/fullscreen.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | body.fr-fullscreen { 8 | overflow: hidden; 9 | height: 100%; 10 | width: 100%; 11 | position: fixed; 12 | } 13 | .fr-box.fr-fullscreen { 14 | margin: 0 !important; 15 | position: fixed; 16 | top: 0; 17 | left: 0; 18 | bottom: 0; 19 | right: 0; 20 | z-index: 2147483630 !important; 21 | width: auto !important; 22 | } 23 | .fr-box.fr-fullscreen .fr-toolbar.fr-top { 24 | top: 0 !important; 25 | } 26 | .fr-box.fr-fullscreen .fr-toolbar.fr-bottom { 27 | bottom: 0 !important; 28 | } 29 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/fullscreen.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | body.fr-fullscreen{overflow:hidden;height:100%;width:100%;position:fixed}.fr-box.fr-fullscreen{margin:0!important;position:fixed;top:0;left:0;bottom:0;right:0;z-index:2147483630!important;width:auto!important}.fr-box.fr-fullscreen .fr-toolbar.fr-top{top:0!important}.fr-box.fr-fullscreen .fr-toolbar.fr-bottom{bottom:0!important} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/help.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal { 24 | text-align: left; 25 | padding: 20px 20px 10px; 26 | } 27 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table { 28 | border-collapse: collapse; 29 | font-size: 14px; 30 | line-height: 1.5; 31 | width: 100%; 32 | } 33 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table + table { 34 | margin-top: 20px; 35 | } 36 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tr { 37 | border: 0; 38 | } 39 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table th, 40 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table td { 41 | padding: 6px 0 4px; 42 | } 43 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tbody tr { 44 | border-bottom: solid 1px #ebebeb; 45 | } 46 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tbody td:first-child { 47 | width: 60%; 48 | color: #646464; 49 | } 50 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tbody td:nth-child(n+2) { 51 | letter-spacing: 0.5px; 52 | } 53 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/help.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal{text-align:left;padding:20px 20px 10px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table{border-collapse:collapse;font-size:14px;line-height:1.5;width:100%}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table+table{margin-top:20px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tr{border:0}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table th,.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table td{padding:6px 0 4px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tbody tr{border-bottom:solid 1px #ebebeb}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tbody td:first-child{width:60%;color:#646464}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-help-modal table tbody td:nth-child(n+2){letter-spacing:.5px} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/line_breaker.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-line-breaker { 24 | cursor: text; 25 | border-top: 1px solid #1e88e5; 26 | position: fixed; 27 | z-index: 2; 28 | display: none; 29 | } 30 | .fr-line-breaker.fr-visible { 31 | display: block; 32 | } 33 | .fr-line-breaker a.fr-floating-btn { 34 | position: absolute; 35 | left: calc(50% - (32px / 2)); 36 | top: -16px; 37 | } 38 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/line_breaker.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-line-breaker{cursor:text;border-top:1px solid #1e88e5;position:fixed;z-index:2;display:none}.fr-line-breaker.fr-visible{display:block}.fr-line-breaker a.fr-floating-btn{position:absolute;left:calc(50% - (32px / 2));top:-16px} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/quick_insert.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-quick-insert { 24 | position: absolute; 25 | z-index: 2147483639; 26 | white-space: nowrap; 27 | padding-right: 5px; 28 | margin-left: -5px; 29 | -webkit-box-sizing: content-box; 30 | -moz-box-sizing: content-box; 31 | box-sizing: content-box; 32 | } 33 | .fr-quick-insert.fr-on a.fr-floating-btn svg { 34 | -webkit-transform: rotate(135deg); 35 | -moz-transform: rotate(135deg); 36 | -ms-transform: rotate(135deg); 37 | -o-transform: rotate(135deg); 38 | } 39 | .fr-quick-insert.fr-hidden { 40 | display: none; 41 | } 42 | .fr-qi-helper { 43 | position: absolute; 44 | z-index: 3; 45 | padding-left: 16px; 46 | white-space: nowrap; 47 | } 48 | .fr-qi-helper a.fr-btn.fr-floating-btn { 49 | text-align: center; 50 | display: inline-block; 51 | color: #222222; 52 | -webkit-opacity: 0; 53 | -moz-opacity: 0; 54 | opacity: 0; 55 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 56 | -webkit-transform: scale(0); 57 | -moz-transform: scale(0); 58 | -ms-transform: scale(0); 59 | -o-transform: scale(0); 60 | } 61 | .fr-qi-helper a.fr-btn.fr-floating-btn.fr-size-1 { 62 | -webkit-opacity: 1; 63 | -moz-opacity: 1; 64 | opacity: 1; 65 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; 66 | -webkit-transform: scale(1); 67 | -moz-transform: scale(1); 68 | -ms-transform: scale(1); 69 | -o-transform: scale(1); 70 | } 71 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/quick_insert.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-quick-insert{position:absolute;z-index:2147483639;white-space:nowrap;padding-right:5px;margin-left:-5px;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.fr-quick-insert.fr-on a.fr-floating-btn svg{-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);-o-transform:rotate(135deg)}.fr-quick-insert.fr-hidden{display:none}.fr-qi-helper{position:absolute;z-index:3;padding-left:16px;white-space:nowrap}.fr-qi-helper a.fr-btn.fr-floating-btn{text-align:center;display:inline-block;color:#222;-webkit-opacity:0;-moz-opacity:0;opacity:0;-ms-filter:"alpha(Opacity=0)";-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0)}.fr-qi-helper a.fr-btn.fr-floating-btn.fr-size-1{-webkit-opacity:1;-moz-opacity:1;opacity:1;-ms-filter:"alpha(Opacity=0)";-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1)} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/special_characters.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal { 24 | text-align: left; 25 | padding: 20px 20px 10px; 26 | } 27 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal .fr-special-characters-list { 28 | margin-bottom: 20px; 29 | } 30 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal .fr-special-characters-title { 31 | font-weight: bold; 32 | font-size: 14px; 33 | padding: 6px 0 4px; 34 | margin: 0 0 5px; 35 | } 36 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal .fr-special-character { 37 | display: inline-block; 38 | font-size: 16px; 39 | width: 20px; 40 | height: 20px; 41 | padding: 5px; 42 | line-height: 20px; 43 | cursor: default; 44 | font-weight: normal; 45 | -webkit-box-sizing: content-box; 46 | -moz-box-sizing: content-box; 47 | box-sizing: content-box; 48 | text-align: center; 49 | border: 1px solid #cccccc; 50 | margin: -1px 0 0 -1px; 51 | } 52 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/plugins/special_characters.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal{text-align:left;padding:20px 20px 10px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal .fr-special-characters-list{margin-bottom:20px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal .fr-special-characters-title{font-weight:700;font-size:14px;padding:6px 0 4px;margin:0 0 5px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-special-characters-modal .fr-special-character{display:inline-block;font-size:16px;width:20px;height:20px;padding:5px;line-height:20px;cursor:default;font-weight:400;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;text-align:center;border:1px solid #ccc;margin:-1px 0 0 -1px} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/third_party/embedly.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-element .fr-embedly { 24 | user-select: none; 25 | -o-user-select: none; 26 | -moz-user-select: none; 27 | -khtml-user-select: none; 28 | -webkit-user-select: none; 29 | -ms-user-select: none; 30 | position: relative; 31 | } 32 | .fr-element .fr-embedly::after { 33 | position: absolute; 34 | content: ''; 35 | z-index: 1; 36 | top: 0; 37 | left: 0; 38 | right: 0; 39 | bottom: 0; 40 | cursor: pointer; 41 | display: block; 42 | background: rgba(0, 0, 0, 0); 43 | } 44 | .fr-element .fr-embedly > * { 45 | -webkit-box-sizing: content-box; 46 | -moz-box-sizing: content-box; 47 | box-sizing: content-box; 48 | max-width: 100%; 49 | border: none; 50 | } 51 | .fr-box .fr-embedly-resizer { 52 | position: absolute; 53 | border: solid 1px #1e88e5; 54 | display: none; 55 | user-select: none; 56 | -o-user-select: none; 57 | -moz-user-select: none; 58 | -khtml-user-select: none; 59 | -webkit-user-select: none; 60 | -ms-user-select: none; 61 | } 62 | .fr-box .fr-embedly-resizer.fr-active { 63 | display: block; 64 | } 65 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/third_party/embedly.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-element .fr-embedly{user-select:none;-o-user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;position:relative}.fr-element .fr-embedly::after{position:absolute;content:'';z-index:1;top:0;left:0;right:0;bottom:0;cursor:pointer;display:block;background:rgba(0,0,0,0)}.fr-element .fr-embedly>*{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;max-width:100%;border:0}.fr-box .fr-embedly-resizer{position:absolute;border:solid 1px #1e88e5;display:none;user-select:none;-o-user-select:none;-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none}.fr-box .fr-embedly-resizer.fr-active{display:block} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/third_party/font_awesome.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal { 24 | text-align: left; 25 | padding: 20px 20px 10px; 26 | } 27 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal .fr-font-awesome-list { 28 | margin-bottom: 20px; 29 | } 30 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal .fr-font-awesome-title { 31 | font-size: 20px; 32 | padding: 6px 0 4px; 33 | margin: 15px 0 5px; 34 | border-bottom: solid 1px #f0f0f0; 35 | } 36 | .fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal .fr-font-awesome { 37 | display: inline-block; 38 | font-size: 16px; 39 | width: 20px; 40 | height: 20px; 41 | padding: 16px; 42 | line-height: 20px; 43 | cursor: default; 44 | font-weight: normal; 45 | -webkit-box-sizing: content-box; 46 | -moz-box-sizing: content-box; 47 | box-sizing: content-box; 48 | text-align: center; 49 | margin: -1px 0 0 -1px; 50 | } 51 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/third_party/font_awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal{text-align:left;padding:20px 20px 10px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal .fr-font-awesome-list{margin-bottom:20px}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal .fr-font-awesome-title{font-size:20px;padding:6px 0 4px;margin:15px 0 5px;border-bottom:solid 1px #f0f0f0}.fr-modal .fr-modal-wrapper .fr-modal-body .fr-font-awesome-modal .fr-font-awesome{display:inline-block;font-size:16px;width:20px;height:20px;padding:16px;line-height:20px;cursor:default;font-weight:400;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;text-align:center;margin:-1px 0 0 -1px} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/third_party/image_tui.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after { 8 | clear: both; 9 | display: block; 10 | content: ""; 11 | height: 0; 12 | } 13 | .hide-by-clipping { 14 | position: absolute; 15 | width: 1px; 16 | height: 1px; 17 | padding: 0; 18 | margin: -1px; 19 | overflow: hidden; 20 | clip: rect(0, 0, 0, 0); 21 | border: 0; 22 | } 23 | .tui-image-editor-container { 24 | position: fixed; 25 | top: 0; 26 | left: 0; 27 | bottom: 0; 28 | right: 0; 29 | height: 100%; 30 | width: 100%; 31 | z-index: 10; 32 | } 33 | .tui-editor-cancel-btn { 34 | background-color: #ffffff; 35 | border: 1px solid #cccccc; 36 | color: #222; 37 | } 38 | .tui-editor-save-btn { 39 | background-color: #fdba3b; 40 | border: 1px solid #fdba3b; 41 | color: #ffffff; 42 | } 43 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/third_party/image_tui.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.tui-image-editor-container{position:fixed;top:0;left:0;bottom:0;right:0;height:100%;width:100%;z-index:10}.tui-editor-cancel-btn{background-color:#fff;border:1px solid #ccc;color:#222}.tui-editor-save-btn{background-color:#fdba3b;border:1px solid #fdba3b;color:#fff} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/css/third_party/spell_checker.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | .clearfix::after{clear:both;display:block;content:"";height:0}.hide-by-clipping{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.examples-variante>a{font-size:14px;font-family:Arial,Helvetica,sans-serif}.sc-cm-holder>.sc-cm{border-top:5px solid #222!important;padding:0!important;line-height:200%!important;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 1px 1px rgba(0,0,0,.16);-moz-box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 1px 1px rgba(0,0,0,.16);box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 1px 1px rgba(0,0,0,.16)}.sc-cm .sc-cm__item.examples-variante.sc-cm__item_active>a>i{display:none!important}.sc-cm .sc-cm__item.examples-variante>a>i{display:none!important}.sc-cm__item_dropdown .i-icon{display:none!important}.sc-cm__item_dropdown .i-icon::before{display:none!important}.sc-cm::before{display:none!important}div.sc-cm-holder.sc-cm_show>ul>li.sc-cm__item.sc-cm__item_dropdown.sc-cm__item_arrow>div>ul{border-style:none!important;padding:0!important}.sc-cm__item_dropdown:hover>a,.sc-cm a:hover{background-color:#ebebeb!important}.sc-cm__item_active>a,.sc-cm__item_active>a:hover,.sc-cm a:active,.sc-cm a:focus{background-color:#d6d6d6!important}.sc-cm__item>a{line-height:200%!important}.sc-cm-holder>.sc-cm:before{background-color:#ebebeb!important}.sc-cm-holder{display:none} -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/editor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/froala/wysiwyg-editor-dotnet-sdk/a85ae4fbf05e11e0277a62cd5a4fedadeaeceb50/demo-core/wwwroot/lib/froala-wysiwyg-editor/editor.jpg -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/js/plugins/char_counter.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return t===undefined&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t)}:n(window.jQuery)}(function(a){a.extend(a.FE.DEFAULTS,{charCounterMax:-1,charCounterCount:!0}),a.FE.PLUGINS.charCounter=function(n){var r;function o(){return(n.el.textContent||"").replace(/\u200B/g,"").length}function e(e){if(n.opts.charCounterMax<0)return!0;if(o()").html(e).text().length+o()<=n.opts.charCounterMax?e:(n.events.trigger("charCounter.exceeded"),"")}function u(){if(n.opts.charCounterCount){var e=o()+(0')).css("bottom",n.$wp.css("border-bottom-width")),n.$box.append(r),n.events.on("keydown",e,!0),n.events.on("paste.afterCleanup",t),n.events.on("keyup contentChanged input",function(){n.events.trigger("charCounter.update")}),n.events.on("charCounter.update",u),n.events.trigger("charCounter.update"),void n.events.on("destroy",function(){a(n.o_win).off("resize.char"+n.id),r.removeData().remove(),r=null}))},count:o}}}); -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/js/plugins/inline_class.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | !function(i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof module&&module.exports?module.exports=function(n,e){return e===undefined&&(e="undefined"!=typeof window?require("jquery"):require("jquery")(n)),i(e)}:i(window.jQuery)}(function(s){s.extend(s.FE.DEFAULTS,{inlineClasses:{"fr-class-code":"Code","fr-class-highlighted":"Highlighted","fr-class-transparency":"Transparent"}}),s.FE.PLUGINS.inlineClass=function(i){return{apply:function(n){i.format.toggle("span",{"class":n})},refreshOnShow:function(n,e){e.find(".fr-command").each(function(){var n=s(this).data("param1"),e=i.format.is("span",{"class":n});s(this).toggleClass("fr-active",e).attr("aria-selected",e)})}}},s.FE.RegisterCommand("inlineClass",{type:"dropdown",title:"Inline Class",html:function(){var n='"},callback:function(n,e){this.inlineClass.apply(e)},refreshOnShow:function(n,e){this.inlineClass.refreshOnShow(n,e)},plugin:"inlineClass"}),s.FE.DefineIcon("inlineClass",{NAME:"tag"})}); -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/js/plugins/inline_style.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | !function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&module.exports?module.exports=function(e,n){return n===undefined&&(n="undefined"!=typeof window?require("jquery"):require("jquery")(e)),t(n)}:t(window.jQuery)}(function(o){o.extend(o.FE.DEFAULTS,{inlineStyles:{"Big Red":"font-size: 20px; color: red;","Small Blue":"font-size: 14px; color: blue;"}}),o.FE.PLUGINS.inlineStyle=function(l){return{apply:function(e){if(""!==l.selection.text())for(var n=e.split(";"),t=0;t'+o.FE.INVISIBLE_SPACE+o.FE.MARKERS+"")}}},o.FE.RegisterCommand("inlineStyle",{type:"dropdown",html:function(){var e='"},title:"Inline Style",callback:function(e,n){this.inlineStyle.apply(n)},plugin:"inlineStyle"}),o.FE.DefineIcon("inlineStyle",{NAME:"paint-brush"})}); -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/js/plugins/line_height.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return t===undefined&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t)}:n(window.jQuery)}(function(o){o.extend(o.FE.DEFAULTS,{lineHeights:{Default:"",Single:"1",1.15:"1.15",1.5:"1.5",Double:"2"}}),o.FE.PLUGINS.lineHeight=function(r){return{_init:function(){},apply:function(e){r.selection.save(),r.html.wrap(!0,!0,!0,!0),r.selection.restore();var t=r.selection.blocks();r.selection.save();for(var n=0;n'+this.language.translate(n)+"");return e+=""},title:"Line Height",callback:function(e,t){this.lineHeight.apply(t)},refreshOnShow:function(e,t){this.lineHeight.refreshOnShow(e,t)},plugin:"lineHeight"}),o.FE.DefineIcon("lineHeight",{NAME:"arrows-v",FA5NAME:"arrows-alt-v"})}); -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/js/plugins/quote.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return t===undefined&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t)}:n(window.jQuery)}(function(i){i.FE.PLUGINS.quote=function(r){function o(e){for(;e.parentNode&&e.parentNode!=r.el;)e=e.parentNode;return e}return{apply:function(e){r.selection.save(),r.html.wrap(!0,!0,!0,!0),r.selection.restore(),"increase"==e?function(){var e,t=r.selection.blocks();for(e=0;e");for(n.insertBefore(t[0]),e=0;e"+this.language.translate(t[n])+""}return e+=""},callback:function(e,t){this.quote.apply(t)},plugin:"quote"}),i.FE.DefineIcon("quote",{NAME:"quote-left"})}); -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/froala-wysiwyg-editor/js/plugins/save.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * froala_editor v2.9.2 (https://www.froala.com/wysiwyg-editor) 3 | * License https://froala.com/wysiwyg-editor/terms/ 4 | * Copyright 2014-2019 Froala Labs 5 | */ 6 | 7 | !function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return t===undefined&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t)}:n(window.jQuery)}(function(l){l.extend(l.FE.DEFAULTS,{saveInterval:1e4,saveURL:null,saveParams:{},saveParam:"body",saveMethod:"POST"}),l.FE.PLUGINS.save=function(i){var e=null,u=null,t=!1,v=1,f=2,n={};function d(e,t){i.events.trigger("save.error",[{code:e,message:n[e]},t])}function s(e){void 0===e&&(e=i.html.get());var t=e,n=i.events.trigger("save.before",[e]);if(!1===n)return!1;if("string"==typeof n&&(e=n),i.opts.saveURL){var s={};for(var o in i.opts.saveParams)if(i.opts.saveParams.hasOwnProperty(o)){var a=i.opts.saveParams[o];s[o]="function"==typeof a?a.call(this):a}var r={};r[i.opts.saveParam]=e,l.ajax({type:i.opts.saveMethod,url:i.opts.saveURL,data:l.extend(r,s),crossDomain:i.opts.requestWithCORS,xhrFields:{withCredentials:i.opts.requestWithCredentials},headers:i.opts.requestHeaders}).done(function(e){u=t,i.events.trigger("save.after",[e])}).fail(function(e){d(f,e.response||e.responseText)})}else d(v)}function o(){clearTimeout(e),e=setTimeout(function(){var e=i.html.get();(u!=e||t)&&(t=!1,s(u=e))},i.opts.saveInterval)}return n[v]="Missing saveURL option.",n[f]="Something went wrong during save.",{_init:function(){i.opts.saveInterval&&(u=i.html.get(),i.events.on("contentChanged",o),i.events.on("keydown destroy",function(){clearTimeout(e)}))},save:s,reset:function(){o(),t=!1},force:function(){t=!0}}},l.FE.DefineIcon("save",{NAME:"floppy-o",FA5NAME:"save"}),l.FE.RegisterCommand("save",{title:"Save",undo:!1,focus:!1,refreshAfterCallback:!1,callback:function(){this.save.save()},plugin:"save"})}); -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/jquery/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ], 14 | "homepage": "https://github.com/jquery/jquery-dist", 15 | "version": "3.3.1", 16 | "_release": "3.3.1", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "3.3.1", 20 | "commit": "9e8ec3d10fad04748176144f108d7355662ae75e" 21 | }, 22 | "_source": "https://github.com/jquery/jquery-dist.git", 23 | "_target": ">=1.11.0", 24 | "_originalSource": "jquery" 25 | } -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/jquery/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright JS Foundation and other contributors, https://js.foundation/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/jquery 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ] 14 | } -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/jquery/external/sizzle/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright jQuery Foundation and other contributors, https://jquery.org/ 2 | 3 | This software consists of voluntary contributions made by many 4 | individuals. For exact contribution history, see the revision history 5 | available at https://github.com/jquery/sizzle 6 | 7 | The following license applies to all parts of this software except as 8 | documented below: 9 | 10 | ==== 11 | 12 | Permission is hereby granted, free of charge, to any person obtaining 13 | a copy of this software and associated documentation files (the 14 | "Software"), to deal in the Software without restriction, including 15 | without limitation the rights to use, copy, modify, merge, publish, 16 | distribute, sublicense, and/or sell copies of the Software, and to 17 | permit persons to whom the Software is furnished to do so, subject to 18 | the following conditions: 19 | 20 | The above copyright notice and this permission notice shall be 21 | included in all copies or substantial portions of the Software. 22 | 23 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 24 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 25 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 26 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 27 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 28 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 29 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 30 | 31 | ==== 32 | 33 | All files located in the node_modules and external directories are 34 | externally maintained libraries used by this software which have their 35 | own licenses; we recommend you read them, as their terms may differ from 36 | the terms above. 37 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/jquery/src/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "../.eslintrc-browser.json" 5 | } 6 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/jquery/src/ajax/parseXML.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | // Cross-browser xml parsing 8 | jQuery.parseXML = function( data ) { 9 | var xml; 10 | if ( !data || typeof data !== "string" ) { 11 | return null; 12 | } 13 | 14 | // Support: IE 9 - 11 only 15 | // IE throws on parseFromString with invalid input. 16 | try { 17 | xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 18 | } catch ( e ) { 19 | xml = undefined; 20 | } 21 | 22 | if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 23 | jQuery.error( "Invalid XML: " + data ); 24 | } 25 | return xml; 26 | }; 27 | 28 | return jQuery.parseXML; 29 | 30 | } ); 31 | -------------------------------------------------------------------------------- /demo-core/wwwroot/lib/jquery/src/ajax/script.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../var/document", 4 | "../ajax" 5 | ], function( jQuery, document ) { 6 | 7 | "use strict"; 8 | 9 | // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 10 | jQuery.ajaxPrefilter( function( s ) { 11 | if ( s.crossDomain ) { 12 | s.contents.script = false; 13 | } 14 | } ); 15 | 16 | // Install script dataType 17 | jQuery.ajaxSetup( { 18 | accepts: { 19 | script: "text/javascript, application/javascript, " + 20 | "application/ecmascript, application/x-ecmascript" 21 | }, 22 | contents: { 23 | script: /\b(?:java|ecma)script\b/ 24 | }, 25 | converters: { 26 | "text script": function( text ) { 27 | jQuery.globalEval( text ); 28 | return text; 29 | } 30 | } 31 | } ); 32 | 33 | // Handle cache's special case and crossDomain 34 | jQuery.ajaxPrefilter( "script", function( s ) { 35 | if ( s.cache === undefined ) { 36 | s.cache = false; 37 | } 38 | if ( s.crossDomain ) { 39 | s.type = "GET"; 40 | } 41 | } ); 42 | 43 | // Bind script tag hack transport 44 | jQuery.ajaxTransport( "script", function( s ) { 45 | 46 | // This transport only deals with cross domain requests 47 | if ( s.crossDomain ) { 48 | var script, callback; 49 | return { 50 | send: function( _, complete ) { 51 | script = jQuery( "