{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/moment/moment.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/@stimulus/core/dist/src/event_listener.js","webpack:///./node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:///./node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:///./node_modules/@stimulus/core/dist/src/action.js","webpack:///./node_modules/@stimulus/core/dist/src/binding.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:///./node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:///./node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:///./node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:///./node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/context.js","webpack:///./node_modules/@stimulus/core/dist/src/definition.js","webpack:///./node_modules/@stimulus/core/dist/src/module.js","webpack:///./node_modules/@stimulus/core/dist/src/data_map.js","webpack:///./node_modules/@stimulus/core/dist/src/selectors.js","webpack:///./node_modules/@stimulus/core/dist/src/target_set.js","webpack:///./node_modules/@stimulus/core/dist/src/scope.js","webpack:///./node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:///./node_modules/@stimulus/core/dist/src/router.js","webpack:///./node_modules/@stimulus/core/dist/src/schema.js","webpack:///./node_modules/@stimulus/core/dist/src/application.js","webpack:///./node_modules/@stimulus/core/dist/src/target_properties.js","webpack:///./node_modules/@stimulus/core/dist/src/controller.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///./node_modules/css-loader/dist/runtime/api.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/tinymce/tinymce.js","webpack:///./app/javascript/packs/chosenjs.js","webpack:///./node_modules/chosen-js/chosen.css?c147","webpack:///./node_modules/chosen-js/chosen.css","webpack:///./node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./node_modules/chosen-js/chosen-sprite.png","webpack:///./node_modules/chosen-js/chosen-sprite@2x.png","webpack:///./node_modules/chosen-js/chosen.jquery.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/deepmerge/dist/cjs.js","webpack:///./node_modules/symbol-observable/es/index.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/fuse.js/dist/fuse.js","webpack:///./node_modules/symbol-observable/es/ponyfill.js","webpack:///./node_modules/flatpickr/dist/flatpickr.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/trix/dist/trix.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/chartkick/dist/chartkick.js","webpack:///./node_modules/chart.js/dist/Chart.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/bootswatch/dist/pulse/bootstrap.min.css?50b9","webpack:///./node_modules/bootswatch/dist/pulse/bootstrap.min.css","webpack:///./app/javascript/stylesheets/application.scss?b7c6","webpack:///./app/javascript/stylesheets/application.scss","webpack:///./node_modules/@fortawesome/fontawesome-free/js/all.js","webpack:///./app/javascript/controllers sync _controller\\.js$","webpack:///(webpack)/buildin/harmony-module.js","webpack:///./node_modules/choices.js/src/styles/choices.scss?4b97","webpack:///./node_modules/choices.js/src/styles/choices.scss","webpack:///./app/javascript/controllers/hello_controller.js","webpack:///./app/javascript/controllers/places_controller.js","webpack:///./app/javascript/controllers/posts_controller.js","webpack:///./node_modules/tinymce/plugins/table/index.js","webpack:///./node_modules/tinymce/plugins/table/plugin.js","webpack:///./node_modules/tinymce/plugins/lists/index.js","webpack:///./node_modules/tinymce/plugins/lists/plugin.js","webpack:///./node_modules/tinymce/plugins/image/index.js","webpack:///./node_modules/tinymce/plugins/image/plugin.js","webpack:///./node_modules/tinymce/plugins/imagetools/index.js","webpack:///./node_modules/tinymce/plugins/imagetools/plugin.js","webpack:///./node_modules/tinymce/plugins/media/index.js","webpack:///./node_modules/tinymce/plugins/media/plugin.js","webpack:///./node_modules/tinymce/plugins/code/index.js","webpack:///./node_modules/tinymce/plugins/code/plugin.js","webpack:///./node_modules/tinymce/themes/silver/theme.js","webpack:///./node_modules/tinymce/skins/ui/oxide/skin.min.css?1bae","webpack:///./node_modules/tinymce/skins/ui/oxide/skin.min.css","webpack:///./app/javascript/controllers/search_controller.js","webpack:///./node_modules/easy-autocomplete/dist/jquery.easy-autocomplete.js","webpack:///./app/javascript/stylesheets/my_bootstrap.scss?e9d6","webpack:///./app/javascript/stylesheets/my_bootstrap.scss","webpack:///./node_modules/flatpickr/dist/flatpickr.css?7119","webpack:///./node_modules/flatpickr/dist/flatpickr.css","webpack:///./node_modules/toastr/toastr.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///./node_modules/redux/es/redux.js","webpack:///./node_modules/choices.js/src/scripts/reducers/items.js","webpack:///./node_modules/choices.js/src/scripts/reducers/groups.js","webpack:///./node_modules/choices.js/src/scripts/reducers/choices.js","webpack:///./node_modules/choices.js/src/scripts/reducers/general.js","webpack:///./node_modules/choices.js/src/scripts/lib/utils.js","webpack:///./node_modules/choices.js/src/scripts/reducers/index.js","webpack:///./node_modules/choices.js/src/scripts/store/store.js","webpack:///./node_modules/choices.js/src/scripts/components/dropdown.js","webpack:///./node_modules/choices.js/src/scripts/constants.js","webpack:///./node_modules/choices.js/src/scripts/components/container.js","webpack:///./node_modules/choices.js/src/scripts/components/input.js","webpack:///./node_modules/choices.js/src/scripts/components/list.js","webpack:///./node_modules/choices.js/src/scripts/components/wrapped-element.js","webpack:///./node_modules/choices.js/src/scripts/components/wrapped-input.js","webpack:///./node_modules/choices.js/src/scripts/components/wrapped-select.js","webpack:///./node_modules/choices.js/src/scripts/templates.js","webpack:///./node_modules/choices.js/src/scripts/actions/choices.js","webpack:///./node_modules/choices.js/src/scripts/actions/items.js","webpack:///./node_modules/choices.js/src/scripts/actions/groups.js","webpack:///./node_modules/choices.js/src/scripts/actions/misc.js","webpack:///./node_modules/choices.js/src/scripts/choices.js","webpack:///./app/javascript/controllers/choices_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:///./node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","_typeof","iterator","obj","constructor","hookCallback","some","hooks","apply","arguments","isArray","input","Array","toString","isObject","hasOwnProp","a","b","isObjectEmpty","getOwnPropertyNames","length","k","isUndefined","isNumber","isDate","Date","map","arr","fn","res","push","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","updateInProgress","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","zeroFill","number","targetLength","forceSign","absNumber","Math","abs","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","makeGetSet","keepTime","set$1","month","date","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","indexOf","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","split","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","parseInt","getSetYear","createDate","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","w","ww","MM","yy","meridiemParse","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","result","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","setUTCMinutes","getUTCMinutes","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","second","millisecond","configFromObject","configFromInput","isUTC","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","parts","matches","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","isString","String","isMomentInput","arrayTest","dataTypeTest","filter","item","isNumberOrStringArray","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","prefix","suffix","zone","isLocal","for","toJSON","unix","creationData","eraName","since","until","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","_eras","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","assign","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","global","document","window","noGlobal","getProto","getPrototypeOf","_slice","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","nodeType","isWindow","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","jQuery","selector","context","init","isArrayLike","jquery","num","pushStack","elems","merge","prevObject","each","elem","first","eq","last","even","grep","_elem","odd","end","splice","options","copy","copyIsArray","target","deep","isPlainObject","expando","random","isReady","error","noop","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","invert","callbackExpect","guid","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","disabled","nodeName","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","testContext","scope","toSelector","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","attrId","find","getAttributeNode","tag","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","unmatched","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","reset","combinator","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","_dir","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","locked","fireWith","fired","Deferred","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","uid","configurable","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","removeData","_removeData","dequeue","startLength","_queueHooks","stop","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","createTextNode","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","_on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","on","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","old","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","height","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","expand","expanded","propHooks","run","percent","eased","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","trim","_jQuery","_$","$","noConflict","EventListener","eventTarget","eventName","unorderedBindings","Set","connect","disconnect","bindingConnected","binding","bindingDisconnected","delete","handleEvent","extendedEvent","stopImmediatePropagation_1","immediatePropagationStopped","extendEvent","bindings","leftIndex","rightIndex","Dispatcher","application","eventListenerMaps","Map","started","eventListeners","eventListener","reduce","listeners","fetchEventListenerForBinding","handleError","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","descriptorPattern","parseEventTarget","eventTargetName","Action","element","descriptor","tagName","defaultEventNames","getDefaultEventNameForElement","methodName","forToken","descriptorString","eventNameSuffix","Binding","action","willBeInvokedByEvent","invokeWithEvent","controller","Element","containsElement","ElementObserver","_this","mutationObserver","MutationObserver","mutations","processMutations","observe","childList","subtree","refresh","takeRecords","matchElementsInTree","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","elementAttributeChanged","matchElement","elementFromNode","processTree","elementIsActive","tree","processor","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","getValuesForKey","getKeysForValue","__extends","setPrototypeOf","__proto__","__","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","char","attributeValueContainsToken","TargetSet","targetName","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","targetDescriptor","targetAttribute","Scope","tail","filterElements","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","fulfilled","rejected","__generator","f","g","label","sent","trys","ops","verb","op","Application","router","register","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","defineTargetProperties","ancestors","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","capitalize","webpackPolyfill","paths","memo","isOldIE","Boolean","all","atob","getTarget","styleTarget","querySelector","HTMLIFrameElement","stylesInDom","getIndexByIdentifier","modulesToDom","idCountMap","media","sourceMap","references","updater","addStyle","insertStyleElement","textStore","replaceText","replacement","applyToSingletonTag","styleSheet","cssNode","applyToTag","btoa","unescape","stringify","singleton","singletonCounter","update","styleIndex","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","useSourceMap","cssMapping","sourceMapping","base64","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","Timeout","clearFn","_id","_clearFn","setInterval","clearInterval","close","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setImmediate","clearImmediate","typeOf$1","isPrototypeOf","eq$2","eqString","eqArray","eqa","eqSortedArray","compareFn","contramap","xs","sort$1","eqRecord","kx","ky","q","eqAny","tx","isEquatableType","isType$1","isSimpleType","eq$1","isString$1","isArray$1","isNull","isBoolean","isNullable","isNonNullable","compose","fa","fb","compose1","fbc","fab","constant","identity","tripleEquals","curry","initialArgs","restArgs","never","none","NONE","thunk","fold","_s","isSome","isNone","getOr","getOrThunk","getOrDie","getOrNull","getOrUndefined","or","orThunk","exists","forall","constant_a","me","Optional","nativeSlice","nativeIndexOf","nativePush","rawIndexOf","ts","contains$3","pred","map$3","each$k","eachr","partition","pass","filter$4","foldr","acc","foldl","findUntil$1","find$3","findIndex$2","flatten","difference","a1","a2","comparator","get$a","last$2","findMap","hasOwnProperty$1","each$j","map$2","tupleMap","objAcc","internalFilter","onTrue","onFalse","filter$3","mapToArray","get$9","has$2","hasNonNullableKey","each$i","cb","map$1","filter$2","indexOf$1","iteratee","accumulator","findIndex$1","predicate","last$1","_assign","__spreadArray","pack","ar","called","unknown$2","nu$4","major","minor","Version","nu","detect","versionRegexes","agent","cleanedAgent","firstMatch","group","Number","find$2","unknown","detect$2","candidates","userAgent","candidate","search","contains$2","str","startsWith","checkRange","blank","trim$4","lTrim","rTrim","isNotEmpty","isEmpty$3","normalVersionRegex","checkContains","uastring","browsers","brand","oses","PlatformInfo","edge","chrome","opera","firefox","safari","nu$3","info","isBrowser","isEdge","isChrome","isIE","isOpera","isFirefox","isSafari","Browser","ie","windows","android","linux","solaris","freebsd","chromeos","nu$2","isOS","isWindows","isiOS","isAndroid","isOSX","isLinux","isSolaris","isFreeBSD","isChromeOS","OperatingSystem","ios","osx","PlatformDetection","userAgentDataOpt","mediaMatch","browser","userAgentData","brands","uaBrand","lcBrand","detectBrowser$1","detectBrowser","os","detectOs","deviceType","isiPad","isiPhone","isMobile","isTouch","isTablet","isPhone","iOSwebview","isDesktop","isWebView","DeviceType","query","matchMedia","platform$2","navigator","platform$1","browser$4","webkit","fileApi","URL","createObjectURL","windowsPhone","Env","gecko","mac","iOS","contentEditable","transparentSrc","caretAfter","range","getSelection","documentMode","ceFalse","cacheSuffix","experimentalShadowDom","canHaveCSP","desktop","whiteSpaceRegExp$2","trim$3","is$3","Tools","makeMap","items","delim","exts","ext","name_1","sp","scn","de","cn","createNS","onCreate","static","walk","walk$3","explode","_addCacheSuffix","fromDom$2","dom","SugarElement","fromHtml","hasChildNodes","fromTag","fromText","fromDom","fromPoint","docElm","elementFromPoint","recurse","is$2","bypassSelector","childElementCount","e1","e2","ieContains","DOCUMENT_POSITION_CONTAINED_BY","contains$1","d1","d2","regularContains","isType","isElement$6","isText$8","isDocument$2","isDocumentFragment$1","owner$1","documentOrOwner","dos","prevSibling","previousSibling","prevSiblings","nextSiblings","child$1","cs","childNodesCount","isShadowRoot","supported","attachShadow","isSupported$1","getStyleContainer","getHead","getShadowHost","isOpenShadowHost","shadowRoot","before$4","marker","after$3","append$1","rogue","remove$7","wrapper","children$1","inBody","getShadowRoot","SugarPosition","translate","firstDefinedOrZero","viewport","offsetLeft","offsetTop","boxPosition","get$8","_DOC","intoView","alignToTop","scrollIntoViewIfNeeded","scrollIntoView","bounds","bottom","getBounds","_win","scroll","get$7","clientWidth","clientHeight","visualViewport","pageLeft","pageTop","isNodeType","isRestrictedNode","isElement$5","matchNodeNames","lowercasedNames","matchStyleValues","attrName","isBogus$2","isTable$3","hasContentEditableState","isTextareaOrInput","isText$7","isComment","isDocument$1","isDocumentFragment","isBr$5","isImg","isContentEditableTrue$4","isContentEditableFalse$b","isTableCell$5","isMedia$2","is$1","lhs","rhs","lift2","oa","ob","isSupported","rawSet","setAll$1","get$6","getOpt","remove$6","setAll","internalSet","get$5","getUnsafeProperty","getRaw","getAllRaw","ruleName","browser$3","firstElement","hasChild","elm","child","getPos","rootElm","clientLeft","clientTop","castOffsetParent","bodyTop","captionTop","captionHeight","getTableCaptionDeltaY","exports$1","module$1","define","require","amd","globalThis","EphoxContactWrapper","commonjsGlobal","setTimeoutFunc","_handled","_value","_deferreds","doResolve","_immediateFn","newValue","finale","_unhandledRejectionFn","Handler","reason","prom","race","_setImmediateFn","_setUnhandledRejectionFn","promisePolyfill","boltExport","Promise$1","nu$1","baseFn","callbacks","nCallback","cbs","LazyValue","errorReporter","make","aFutureB","toPromise","anonBind","futureB","toLazy","toCached","Future","par$1","asyncValues","asyncValue","value$1","isValue","isError","_opt","onValue","mapError","toOptional","onError","Result","Adt","cases","constructors","adt","acase","keys$1","argLength","branches","branchKeys","reqKey","foldArgs","log","bothErrors","firstError","secondError","bothValues","unite","ClosestOrAncestor","ancestor","isRoot","requestAnimationFramePromise","attrValue","select$1","document$1","ancestor$3","closest$3","ancestor$2","descendant","closest$2","promiseObj","wrappedSetTimeout","wrappedSetInterval","debounce","Delay","requestAnimationFrameFunc","vendors","_requestAnimationFrame","setEditorTimeout","editor","removed","setEditorInterval","throttle","StyleSheetLoader","documentOrShadowRoot","idCount","loadedStates","edos","maxLoadTime","failure","link","urlWithSuffix","passed","failed","getOrCreateState","linkElem","rel","contentCssCors","referrerPolicy","waitForWebKitLinkLoaded","testCallback","waitCallback","styleSheets","ownerNode","loadF","styleContainer","loadAll","urls","futures","unloadAll","_setReferrerPolicy","instance","forElement","referenceElement","rootDom","sl","create$8","DomTreeWalker","startNode","rootNode","prev2","shallow","findSibling","findPreviousNode","startName","siblingName","lazyLookup","lookup","mapToObject","isHeading","isBlock$2","isInline$1","isBr$4","isTextBlock$2","isList","isListItem","isTableSection","isTableCell$4","isWsPreserveElement","nbsp","ZWSP$1","isZwsp","trim$2","isElement$4","isText$6","isCaretContainerBlock$1","isCaretContainerInline","isCaretContainer$2","isBeforeInline","isAtStart","isAfterInline","isAtEnd","insertBlock$1","blockName","br","blockNode","startsWithCaretContainer$1","endsWithCaretContainer$1","showCaretContainerBlock","caretContainer","brs","lastBr","isRangeInCaretContainerBlock","startContainer","isContentEditableTrue$3","isContentEditableFalse$a","isBr$3","isText$5","isInvalidTextElement","isAtomicInline","isTable$1","isCaretContainer$1","isCaretCandidate$3","isNonUiContentEditableFalse","isUnselectable","isEditableCaretCandidate$1","isInEditable","whiteSpaceRegExp$1","isWhitespaceText","hasWhitespacePreserveParent","rootElement","isContent$1","isWhitespace","isNamedAnchor","isBookmark","isBogus$1","isBogusAll","isEmpty$2","skipBogus","targetNode","brCount","walker","isEmptyNode","isInlineContent","isBookmarkNode$2","isSpan","isKeepTextNode","prevIsInline","nextIsInline","surroundedByInlineContent","trimNode","currentChildren","isDocument","isKeepElement","makeMap$3","attrsCharsRegExp","textCharsRegExp","rawCharsRegExp","entityRegExp","asciiMap","baseEntities","reverseEntities","buildEntitiesLookup","radix","chr","entity","namedEntities","encodeRaw","encodeNumeric","encodeNamed","entities","Entities","encodeAllRaw","getEncodeFunc","entitiesMap","nameMap","named","numeric","decode","innerText","nativeDecode","mapCache","dummyObj","makeMap$2","each$h","extend$5","explode$3","inArray$2","split$1","compileElementMap","Schema","patternElements","customElementsMap","specialElements","createLookupTable","extendWith","schemaItems","globalAttributes","blockContent","phrasingContent","flowContent","html4BlockContent","html4PhrasingContent","ni","attributesOrder","arrayToMap","addAttrs","schemaItem","compileSchema","verify_html","valid_elements","validStyles","valid_styles","invalidStyles","invalid_styles","validClasses","valid_classes","whiteSpaceElementsMap","selfClosingElementsMap","shortEndedElementsMap","boolAttrMap","nonEmptyOrMoveCaretBeforeOnEnter","nonEmptyElementsMap","moveCaretBeforeOnEnterElementsMap","textBlockElementsMap","blockElementsMap","textInlineElementsMap","patternToRegExp","addValidElements","validElements","ei","ai","al","attrData","elementName","attrType","outputName","globalAttributesOrder","elementRuleRegExp","attrRuleRegExp","hasPatternsRegExp","validElementsArr","paddEmpty","removeEmpty","removeEmptyAttrs","attributesRequired","required","attributesDefault","attributesForced","forcedValue","validValues","attributePatterns","setValidElements","addCustomElements","customElements","customElementRegExp","text_block_elements","block_elements","rule","inline","cloneName","customRule","elmName","addValidChildren","validChildren","childRuleRegExp","getElementRule","custom_elements","valid_children","extended_valid_elements","dt","li","legend","area","parentsRequired","invalid_elements","getValidStyles","getInvalidStyles","getValidClasses","getBoolAttrs","getBlockElements","getTextBlockElements","getTextInlineElements","getShortEndedElements","getSelfClosingElements","getNonEmptyElements","getMoveCaretBeforeOnEnterElements","getWhiteSpaceElements","getSpecialElements","getCustomElements","isValidChild","attrPatterns","_toHex","hex","Styles","rgbRegExp","urlOrStrRegExp","styleRegExp","trimRightRegExp","encodingLookup","invisibleChar","encodingItems","toHex","color","isEncoded","urlConverter","url_converter","urlConverterScope","url_converter_scope","compress","noJoin","canCompress","encode","keepSlashes","decodeSingleHexSequence","escSeq","decodeHexSequences","processUrl","url2","url3","str2","allow_script_urls","scriptUrl","allow_svg_data_urls","serializeStyles","styleList","i_1","styleMap","deprecated","keyLocation","layerX","layerY","webkitMovementX","webkitMovementY","keyIdentifier","mozPressure","isNativeEvent","initEvent","normalize$3","fallbackTarget","composedPath","clone$2","srcElement","needsNormalizing","cancelBubble","hasIsDefaultPrevented","mouseEventRe","addEvent","capture","detachEvent","isMouseEvent","eventDoc","mouseEvent","bindOnReady","eventUtils","domLoaded","readyHandler","EventUtils","hasMouseEnterLeave","hasFocusIn","callbackList","fakeName","nativeHandler","defaultNativeHandler","executeHandlers","namesList","mouseEnterLeave","ci","eventMap","clean","destroy","cancel","strundefined","MAX_NEGATIVE","push_native","push$1","slice$1","rattributeQuotes","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","rquickExpr$1","rescape","escaped","escapedWhitespace","getTop","enabled","header","lt","gt","nth","Event$1","skipUniques","isDefined","createFragment$1","fragDoc","frag","domManipulate","targetNodes","sourceItem","getElementDocument","DomQuery","_hasClass","wrap$2","lastParent","newWrapper","numericCssMap","booleanMap","class","readonly","cssFix","float","DomQueryConstructor","whiteSpaceRegExp","trim$1","each$g","grep$2","camel","dashed","removeProperty","currentStyle","classState","existingClassName","sibling$1","firstSibling","contentWindow","wrappedResult","overrideDefaults","sub","each$f","grep$1","simpleSelectorRe","updateInternalStyleAttr","$elm","rawValue","findNodeIndex","normalized","lastNodeType","DOMUtils","addedStyles","files","counter","styleSheetLoader","boundEvents","ownEvents","getRoot","$$","getAttrib","defaultVal","getAttribs","setAttrib","originalValue","onSetAttrib","attrElm","root_element","getPos$1","getStyle","getSize","elms","getParents","collect","selectorVal","_findSib","setAttribs","setHTML","canHaveHTML","parentElm","newElm","keepChildren","$node","cls","oldElm","isNonEmptyElement","createRng","createRange","getContentEditable","stdMode","boxModel","isBlock","clone_1","getViewPort","argWin","vp","getRect","getParent","getNext","getPrev","createHTML","outHtml","createFragment","setStyle","update_styles","setStyles","stylesArg","removeAllAttribs","removeAttributeNode","parseStyle","serializeStyle","styleElm","DOM","loadCSS","isHidden","uniqueId","getOuterHTML","outerHTML","setOuterHTML","reference","referenceNode","rename","attrNode","findCommonAncestor","pe","ps","rgbVal","isEmpty","bogusVal","splitElm","replacementElm","beforeFragment","afterFragment","setStart","setEnd","extractContents","rv","getContentEditableParent","isChildOf","dumpRng","startOffset","endContainer","endOffset","getContext","keepValues","keep_values","keepUrlHook","setupAttrHooks","DOM$a","each$e","ScriptLoader","states","scriptLoadedCallbacks","queueLoadedCallbacks","loading","loadScript","cleanup","isDone","markDone","loadQueue","loadScripts","failures","execCallbacks","loadingScripts","notifyCallbacks","Cell","currentCode","getLanguageData","I18n","setCode","newCode","getCode","translation","getLangData","textstr","removeContext","isTokenised","values_1","$1","$2","isRtl","hasCode","AddOnManager","_listeners","runListeners","matchedListeners","listener","dependencies","createUrl","baseUrl","dep","resource","loadDependencies","addOnUrl","deps","newUrl","urlString","baseURL","substring","lastIndexOf","waitFor","requireLangPack","languages","languageLoad","language","addOn","addOnConstructor","addComponents","pluginName","pluginUrl","PluginManager","ThemeManager","subject","doRevoke","revoke","isSet","rate","read$4","supports","classList","add$2","add$3","remove$4","remove$5","add$1","cleanClass","get$4","descendants$1","descendants","annotation","dataAnnotation","dataAnnotationId","identify","annotationName","rng","getRng","getBody","an","newStart","getAttr","has$1","findMarkers","setup$n","_registry","changeCallbacks","initData","previous","withCallbacks","updateCallbacks","callbackMap","outputData","onNodeChange","annotations","fireNoAnnotation","fireCallbacks","addListener","setup$m","registry","serializer","addNodeFilter","spans","span","identifyParserNode","persistent","generate","docDom","contentElements","clone$1","isDeep","deep$1","TextWalker","isBoundary","TextSeeker","isBlockBoundary","newOffset","backwards","forwards","round$2","collapse","toStart","isValidOverflow","rect1","rect2","isAbove$1","halfHeight","isBelow$1","containsXY","getSelectedNode","getNode$1","safeOffset","clamp$2","extendingChars","isExtendingChar","isElement$3","isCaretCandidate$2","isBlock$1","isFloated","isValidElementCaretCandidate","and","isNotPre","isText$4","isBr$2","nodeIndex$1","resolveIndex$1","createRange$1","isWhiteSpace$1","isRange","isHiddenWhiteSpaceRange","getBoundingClientRectWebKitText","sc","ec","so","eo","newRng","cloneRange","setEndAfter","getBoundingClientRect$1","isZeroRect","clientRect","clientRects","brNode","nbsp$1","getBrClientRect","collapseAndInflateWidth","newClientRect","getCaretPositionClientRects","caretPosition","addUniqueAndValidRect","addCharacterOffset","beforeNode","CaretPosition","toRange","isVisible","isEqual","getNode","fromRangeStart","fromRangeEnd","isAbove","isBelow","isTextPosition","isElementPosition","HDirection","trimEmptyTextNode$1","rangeInsertNode","insertNode","insertFragment","isText$3","isBogus","normalizedParent","getChildNodes","equal","normalizedNodeIndex","numTextFragments","createPathItem","create$6","outputOffset","path","normalizedTextOffset","parentsUntil$1","resolve$2","resolvePathItem","dataLen","targetOffset","findTextPosition","isContentEditableFalse$9","getPoint","point","trimmedOffset","getNormalizedTextOffset","moveEndPoint$1","normalizeTableCellSelection","getOffsetBookmark","findAdjacentContentEditableFalseElm","bookmark","isCollapsed","isFakeCaret","getLocation","createBookmarkSpan","filled","getPersistentBookmark","collapsed","rng2","endBookmarkNode","startBookmarkNode","moveToBookmark","keep","getBookmark$2","getCaretBookmark","getRangeBookmark","getUndoBookmark","DOM$9","getBodySetting","getParam","bodyObj","getContentSecurityPolicy","getForcedRootBlock","block","getForcedRootBlockAttrs","isAutomaticUploadsEnabled","shouldReuseFileName","getIconPackName","getImageUploadUrl","getImageUploadBasePath","getImagesUploadCredentials","getImagesUploadHandler","shouldUseContentCssCors","getReferrerPolicy","getLanguageCode","shouldIndentUseMargin","getFontCss","fontCss","getObjectResizing","getEventRoot","getTheme","shouldValidate","isInlineBoundariesEnabled","hasContentCssCors","getPlugins","isElement$2","isText$2","removeNode$1","trimCount","trimmedText","deleteZwspChars","deleteData","removeUnchanged","remove$2","removeElementAndReposition","newPosition","indexOf$2","removeTextCaretContainer","removeTextAndReposition","removeAndReposition","removeElementCaretContainer","caretContainerNode","browser$2","isContentEditableFalse$8","isMedia$1","isTableCell$3","getAbsoluteClientRect","scrollX","scrollY","rootRect","FakeCaret","cursorInterval","lastVisualCaret","rootBlock","caretBlock","fakeCaretTargetNodes","trimInlineCaretContainers","caretState","caret","startBlink","textNode","splitText","insertInline$1","isInlineFakeCaretTarget","getCss","reposition","isFakeCaretTableBrowser","isFakeCaretTarget","isContentEditableFalse$7","isMedia","isBlockLike","isCaretContainer","isCaretContainerBlock","isElement$1","isCaretCandidate$1","isForwards","isBackwards","skipCaretContainers","findNode$1","predicateFn","isCefOrCaretContainer","getParentBlock$2","isInSameBlock","caretPosition1","caretPosition2","getChildNodeAtRelativeOffset","relativeOffset","beforeAfter","setStartBefore","setEndBefore","setStartAfter","isNodesInSameBlock","node1","node2","lean","before$2","after$2","normalizeRange","leanLeft","leanRight","location_1","getRelativeCefElm","getNormalizedRangeEndPoint","normalizedRange","getElementFromPosition","getVisualCaretPosition","walkFn","isMoveInsideSameBlock","inSameBlock","expected","isContentEditableFalse$6","isText$1","isElement","isBr$1","isCaretCandidate","isAtomic","isAtomicContentEditableFalse","isEditableCaretCandidate","nodeAtIndex","getCaretCandidatePosition","moveForwardFromBr","nextNode","findCaretPosition$1","Forwards","startPos","innerNode","rootContentEditableFalseElm","getParents$3","CaretWalker","Backwards","isBeforeOrStart","isAfterOrEnd","isBeforeAfterSameElement","shouldSkipPosition","fromPosition","navigate","navigateIgnore","ignoreFilter","positionIn","walkToPositionIn","nextPosition","prevPosition","firstPositionIn","lastPositionIn","CARET_ID$1","isCaretNode","getParentCaretContainer","isPathBookmark","addBogus","tryFindRangePosition","padEmptyCaretContainer","isEmpty$1","insertZwsp","setEndPoint","isValidTextNode","restoreEndPoint","appendData","resolve$1","resolvePaths","isStringPathBookmark","resolveCaretPositionBookmark","isIdBookmark","endPos","spos","epos","resolveId","isIndexBookmark","selectNode","resolveIndex","isRangeBookmark","getBookmark$1","setRng","isBookmarkNode$1","isNbsp","actual","isWhiteSpace","isContent","isNode","moveStart","isInlineBlock","isWhiteSpaceNode$1","getNonWhiteSpaceSibling","inc","nextName","isTextBlock$1","ed","allowSpaces","replaceVars","vars","isEq$5","str1","normalizeStyleValue","getTextDecoration","decoration","getParents$2","areSimilarFormats","formatName","otherFormatName","validKeys","filterObj","validKey","formatter","fmt1","filteredFmt1","fmt2","filteredFmt2","equal$1","isBlockFormat","isSelectorFormat","isInlineFormat","shouldExpandToSelector","isBookmarkNode","getParents$1","isWhiteSpaceNode","isTextBlock","findParentContentEditable","walkText","findSpace","findContent","findWordEndPoint","includeTrailingSpaces","lastTextNode","textSeeker","textOffset","findSelectorEndPoint","formatList","curFormat","findBlockEndPoint","scopeRoot","isAtBlockBoundary$1","findParentContainer","block_expand","isSelfOrParentBookmark","expandRng","includeTrailingSpace","walk$2","exclude","firstNode","lastNode","collectSiblings","endNode","findEndPoint","walkBoundary","parent_1","siblings_1","startPoint","endPoint","getRanges","ranges","rangeCount","getRangeAt","getCellsFromRanges","getSelectedNodes","getCellsFromElementOrRanges","selectedCells","getCellsFromEditor","getSel","getClosestTable","cell","getFirstChildren","getLastChildren$1","hasAllContentsSelected","getStartNode","getEndNode","moveEndPoint","hasAnyRanges","runOnRanges","executor","fakeSelectionNodes","fakeNodeRng","preserve","fillBookmark","api$1","getOption","NodeValue","get$2","wrapName","isZeroWidth","isAnnotation","makeAnnotation","eDoc","decorate","getOwnPropertySymbols","propertyIsEnumerable","__rest","_e","annotate","newWrappers","getDoc","finishWrapper","processElements","processElement","wrap$3","processNodes","annotateWithBookmark","undoManager","transact","initialRng","hasFakeSelection","applyWordGrab","selectionRng","Annotator","changes","annotationChanged","directory","markers","nodesAlready","BookmarkManager","getBookmark","getContentEditableRoot$1","isXYWithinRange","fireError","errorType","fireFormatApply","fireFormatRemove","VK","BACKSPACE","DELETE","DOWN","ENTER","ESC","LEFT","RIGHT","SPACEBAR","TAB","UP","PAGE_UP","PAGE_DOWN","END","HOME","modifierPressed","metaKeyPressed","isContentEditableFalse$5","ControlSelection","selectedElm","selectedElmGhost","resizeHelper","selectedHandle","resizeBackdrop","startX","startY","startW","startH","ratio","resizeStarted","startScrollWidth","startScrollHeight","elementSelectionAttr","editableDoc","rootDocument","resizeHandles","nw","ne","se","sw","isImage","contextMenuSelectImage","touch","isEventOnImageOutsideRange","getResizeTargets","isResizable","setSizeProp","setGhostElmSize","ghostElm","resizeGhostElement","deltaX","deltaY","proportional","resizeHelperX","resizeHelperY","getResizeImgProportional","selectedElmX","selectedElmY","scrollWidth","scrollHeight","origin","fireObjectResizeStart","endGhostResize","wasResizeStarted","showResizeRect","fireObjectResized","nodeChanged","targetElm","unbindResizeHandleEvents","targetWidth","targetHeight","hideResizeRect","selectedValue","handleElm","startDrag","updateResizeRect","controlElm","isChildOrEqual","img","disableGeckoResize","getStart","getEnd","isWithinContentEditableFalse","execCommand","handleMSControlSelect_1","delayedSelect","throttledUpdateResizeRect","composing","hasCeProperty","pointDoc","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","rects","moveToElementText","findClosestIeRange","findParent$1","moveOutOfContentEditableFalse","isEq$4","rng1","hasParent$1","findParent","hasParentWithName","isTable","isTableCell$2","isCeFalseCaretContainer","hasBrBeforeAfter","findTextNodeRelative","isAfterNode","lastInlineElement","parentBlockContainer","normalizeEndPoint","directionLeft","hasContentEditableFalseParent","isPrevNode","normalize$2","normRng","RangeUtils","normalize","normalizedRng","compareRanges","getCaretRangeFromPoint","documentFocusInHandler","api","getOffset","aggregate","getOuter","cumulativeInclusions","Dimension","walkUp","navigation","pathTo","Navigation","freeze","frameElement","excludeFromDescend","markerInfo","cleanupFun","absolute","createMarker","descend","withMarker","preserveWith","applyWithMarker","withScrollEvents","fireScrollIntoViewEvent","fireAfterScrollIntoViewEvent","withElement","elementMarker","startElement","endElement","scrollToMarker","viewHeight","intoWindowIfNeeded","viewportBottom","markerTop","markerBottom","largerThanViewport","intoWindow","innerHeight","intoFrame","frameViewHeight","frames","loc","find$1","viewportBounds","rangeIntoWindow","elementIntoWindow","rangeIntoFrame","elementIntoFrame","scrollRangeIntoView","hasFocus$1","SimRange","soffset","foffset","adt$1","Situ","situ","domRange","exact","SimSelection","exactFromRange","simRange","getWin","startSitu","_finishSitu","_soffset","_finish","_foffset","getStart$1","browser$1","clamp$1","normalizeRng","isOrContains","isRngInRoot","shouldStore","nativeRangeToSelectionRange","readRange","bookmarkToNativeRng","store","newBookmark","validate","FocusManager","isEditorUIElement","registerEditorEvents","throttledStore","registerFocusOut","registerMouseUp","selectionChange","isManualNodeChange","register$3","mouseUpPage","registerPageMouseUp","DOM$8","isUIElement","customSelector","getCustomUiSelector","registerEvents$1","editorManager","focusedEditor","setActive","blurredEditor","getElement","getActiveElement","activeEditor","getOriginalEventTarget","unregisterDocumentEvents","getFocusInElement","getCollapsedNode","normalizeSelection$1","caretPos","focusBody","hasElementFocus","rawBody","hasInlineFocus","iframeElement","hasIframeFocus","hasEditorOrUiFocus","hasUiFocus","activateEditor","skipFocus","quirks","refreshContentEditable","bookmarkRng","contentEditableHost","getContentEditableHost","focusEditor","getEndpointElement","real","skipEmptyTextNodes","processRanges","typeLookup","walk$1","isEmptyTextNode","AstNode","selfAttrs","cloneAttrs","selfAttr","shortEnded","refNode","restoreDataUris","re","imageId","uris","each$d","queryParts","DEFAULT_PORTS","ftp","http","https","mailto","safeSvgDataUrlElements","isInvalidUri","uri","allow_html_data_urls","allowSvgDataUrls","blockSvgDataUris","URI","baseUri","base_uri","isProtocolRelative","toAbsPath","urlMatch","part","userInfo","port","parseDataUri","uriComponents","decodeURIComponent","isDomSafe","decodedUri","getDocumentBaseUrl","pathname","setPath","pathMatch","getURI","toRelative","relativeUri","tu","uu","toRelPath","toAbsolute","noHost","absoluteUri","isSameOrigin","defaultPort","breakPoint","normalizedBase","outPath","nb","normalizedPath","noProtoHost","filteredClobberElements","findMatchingEndTagIndex","startIndex","startTagRegExp","endTagRegExp","shortEndedElements","startMatch","findCommentEndIndex","endMatch","lcHtml","isConditionalComment","endIfIndex","endIndex","endCommentRegexp","checkBogusAttribute","regExp","attrString","SaxParser","form","fix_self_closing","comment","cdata","pi","doctype","parseInternal","base64Extract","endRegExp","attrList","textData","isInternalElement","isShortEnded","elementRule","isValidElement","attribsValue","validAttributesMap","validAttributePatterns","filteredUrlAttrs","parsingMode","processEndTag","valid","processText","processComment","allow_conditional_comments","processMalformedComment","startTag","parseAttribute","val2","val3","processAttr","fillAttrsMap","isValidPrefixAttrName","attrRule","tokenRegExp","attrRegExp","selfClosing","self_closing_elements","removeInternalElements","remove_internals","fixSelfClosing","processHtml","matchText","bogusValue","preserve_cdata","dataImageUri","chunks","extractBase64DataUris","findEndTag","trimInternal","bogusAllRegExp","tempAttrs","trimContentRegExp","trimHtml","getTempAttrs","matchLength","endTagIndex","trimExternal","getContentFromBody","defaultedArgs","getInner","setupArgs$3","updatedArgs","no_events","emptyRegExp","trimEmptyContents","each$c","ElementUtils","attribs","compareObjects","obj1","obj2","makeMap$1","Writer","indent","indentBefore","indent_before","indentAfter","indent_after","entity_encoding","htmlOutput","element_format","_text","getContent","HtmlSerializer","writer","sortedAttrs","inner","nonInheritableStyles","shorthandStyleProps","getStyleProps","hasInheritableStyles","isNonInheritableStyle","hasStyleConflict","nodeStyleProps","parentNodeStyleProps","valueMismatch","parentValue","nodeStyleProp","propExists","longhandProps","isChar","isBeforeSpace","isAfterSpace","isEmptyText","matchesElementPosition","isImageBlock","isCefNode","isBogusAll$1","isBeforeImageBlock","isAfterImageBlock","isBeforeMedia","isAfterMedia","isBeforeTable","isAfterTable","isBeforeContentEditableFalse","isAfterContentEditableFalse","removeTrailingBr","allBrs","rawNode","getLastChildren","fillWithPaddingBr","trimBlockTrailingBr","lastChildPrevSibling","rawParent","parents$1","parentsAndSelf","navigateIgnoreEmptyTextNodes","getClosestBlock$1","isAtBeforeAfterBlockBoundary","newPos","fromBlock","isAtBlockBoundary","isAtStartOfBlock","isAtEndOfBlock","isBeforeBlock","isAfterBlock","isBr","findBr","parentBlocks","isBeforeBr$1","isAfterBr","getElementFromPrevPosition","findPreviousBr","findNextBr","isInMiddleOfText","getClosestBlock","hasSpaceBefore","hasSpaceAfter","isInPre","isPreValue","isAtLineBoundary","isAtBeginningOfBody","isAtEndOfBody","needsToBeNbspLeft","needsToBeNbspRight","needsToBeNbsp","isNbspAt","hasNbsp","normalizeNbspInMiddleOfTextNode","newText","chars","normalizeNbspMiddle","normalizeNbsps","firstPos","normalizeNbspAtStart","lastPos","normalizeNbspAtEnd","normalizeNbspsInEditor","normalize$1","isEndOfContent","isStartOfContent","replaceData","previousCharIsSpace","normalizeContent","normalizeWhitespaceAfter","whitespaceCount","normalizeWhitespaceBefore","mergeTextNodes","prevNode","normalizeWhitespace","mergeToPrev","whitespaceOffset","newNode","removeNode","insertData","needsReposition","getPreviousSiblingCaretPosition","getNextSiblingCaretPosition","findCaretPositionBackwards","startPosition","findCaretPositionBackwardsFromElm","findCaretPositionForward","findCaretPositionForwardsFromElm","findCaretPosOutsideElmAfterDelete","findCaretPosition","setSelection$1","paddEmptyBlock","deleteNormalized","afterDeletePosOpt","oc","prevTextOpt","nextTextOpt","deleteElement$2","moveCaret","afterDeletePos","parentBlock","normalizedAfterDeletePos","isInlineElement","setContent","setCursorLocation","paddPos","getTableCells","tableCellRng","deleteAction","singleCellTable","fullTable","partialTable","multiTable","getClosestCell$1","isExpandedCellRng","cellRng","getTableFromCellRng","startParentTable","endParentTable","getTableSelectionFromCellRng","cells","tableSelection","getTableSelections","selectionDetails","isSameTable","sameTableSelection","startCell","endCell","startTableSelection","getCellRangeFromStartTable","endTableSelection","getCellRangeFromEndTable","getCellIndex","getSelectedCells","isSingleCellTableContentSelected","optCellRng","rows","isSingleCellTable","unselectCells","startTable","endTable","otherContentRng","getActionFromRange","isRootFromElement","getCellRng","getTable","isStartInTable","isEndInTable","isMultiTable","getTableDetailsFromRange","startTableSelectedCells","endTableSelectedCells","handleMultiTable","handleSingleTable","freefallRtl","cleanCells","deleteContentInsideCell","isFirstCellInSelection","insideTableRng","deleteCellContents","collapseAndRestoreCellSelection","selectedNode","emptySingleTableCells","outsideDetails","editorRng","cellsToClean","outsideBlock","getOutsideBlock","deleteContents","startInTable","emptyBlock","handleEmptyBlock","endPointCell","emptyMultiTableCells","startTableCells","endTableCells","betweenRng","startTableCellsToClean","endTableCellsToClean","moveSelection","lastBlock","additionalCleanupNodes","deleteTableElement","deleteTableRange","startElm","getParentCaption","deleteCellRange","emptyElement","deleteCaptionRange","getParentCell","deleteCaretInsideCaption","fromCaption","isDeleteOfLastCharPos","emptyCaretCaption","toCaption","validateCaretCaption","deleteCaretCells","fromCell","toCell","deleteBetweenCells","isNearTable","deleteCaret$3","fromPos","isBeforeOrAfterTable","deleteCaretCaption","backspaceDelete$9","deleteRange$2","normalizeBlockSelectionRange","commonAncestorContainer","newEndPos","isPaddedEmptyBlock","hasOnlyOneChild$1","isPaddingNode","isListFragment","nonEmptyElements","isEmptyFragmentElement","isListItemPadded","isPadding","trimListItems","getParentLi","findLastOf","newCaretPos","insertBefore$1","findFirstIn","insertAtCaret$1","domFragment","cleanupDomFragment","toDomFragment","liTarget","liElms","isAt","caretWalker","insertAfter$1","beforeRng","afterRng","cloneContents","getSplit","insertMiddle","isTableCell$1","deleteSelectedContent","isTableCellContentSelected","insertHtmlAtCaret","details","trimOrPadLeftRight","parser","bookmarkHtml","paste","caretElement","canHaveChildren","parserArgs","isParentBlockLi","markFragmentElements","_selectionOverrides","showBlockCaretContainer","validInsertion","textInlineElements","root_1","elementUtils_1","reduceInlineTextElements","nextRng","parentEditableElm","isPartOfFragment","findNextCaretRng","moveSelectionToMarker","trimBrsFromTableCell","addVisual","traverse","filter$1","nodeFilters","attributeFilters","nodeMatches","attrMatches","name_2","findMatchingNodes","isTreeNode","setEditorHtml","noSelection","setContentInternal","setupArgs$2","getNodeFilters","getAttributeFilters","no_selection","setContentTree","padd","forcedRootBlockName","isRootContent","setContentString","sibling$2","ensureIsRoot","closest$1","transform","transformed","isEq$3","matchesUnInheritedFormatSelector","inherit","matchParents","similar","_matchNode","matchName$1","matchItems","itemName","onmatch","expectedValue","isEmptyValue","match$2","_closest","rawElm","matchAllOnNode","formatNames","matchSimilar","isVariableValue","fieldValues","isVariableFormatName","matchNode","ZWSP","CARET_ID","isCaretContainerEmpty","getEmptyCaretContainers","findFirstTextNode","createCaretContainer","fill","removeCaretContainerNode","trimZwspFromCaretContainer","removeCaretContainer","appendNode","insertFormatNodesIntoCaretContainer","formatNodes","innerMostFormatNode","formatNode","removeCaretFormat","hasContentAfter","expandedRng","newCaretContainer","insertCaretContainerNode","cleanedFormatNode","validFormats","matchedFormats","fmtName","clonedFormatNode","cleanFormatNode","caretTextNode","setup$k","disableCaretContainer","isFormatElement","inlineElements","postProcessHooks","each$b","addPostProcessHook","blocks","isPre","getSelectedBlocks","pre","pre1","pre2","each$a","isElementNode$1","findElementSibling","mergeSiblingsNodes","elementUtils","tmpSibling","mergeSiblings","merge_siblings","processChildElements","hasStyle","applyStyle","unwrapEmptySpan","removeResult","MCE_ATTR_RE","each$9","isEq$2","isChildOfInlineParent","getContainer","lastIdx","normalizeTableSelection","isTableCellOrRow","childNode","wrap$1","wrapWithSiblings","rootBlockElm","forcedRootBlock","list_block","forced_root_block_attrs","isMixedFormat","removeFormatInternal","compareNode","stylesModified","matchName","links","isColorFormatAndAnchor","preserve_attributes","attrsToPreserve","remove_similar","valueOut","removeFormat$1","newName","removeFormatFromClone","remove$1","splitToFormatRoot","formatRoot","findFormatRoot","lastClone","firstClone","formatRootParent","mixed","wrapAndSplit","removeNodeFormat","fmt","lastContentEditable","currentNodeMatches","textDecoration","isRemoveBookmarkNode","removeRngStyle","ceFalseOverride","each$8","mergeWithChildren","clear_child_styles","clearChildStyles","each$7","isElementNode","applyFormat$1","setElementFormat","onformat","styleVal","applyNodeStyle","found","createWrapElement","wrapElm","applyRngStyle","nodeSpecific","currentWrapElm","parentName","canFormatEmptyLines","validBRParentElements","figcaption","summary","hasCaretNodeSibling","canFormatBR","childCount","isEmptyTextNode$1","getChildCount","childElement","mergeStyles","merge_with_parents","mergeWithParents","backgroundColor","mergeBackgroundColorAndFontSize","processTextDecorationsAndColor","mergeTextDecorationsAndColor","mergeSubSup","wordcharRegex","importNode","applyCaretFormat","curSelNode","firstFormat","forced_root_block","defaultBlock","fake","postProcess$1","formatItem","hasVars","fallbackElement","matchingNode","matchingFormat","updateAndFireChangeCallbacks","registeredCallbacks","runIfChanged","spec","node_1","withSimilar","withoutSimilar","withVars","formatChangedInternal","registeredFormatListeners","nodeOrRange","setup$j","formatChangeItems","getCurrent","toAppendTo","addListeners","removeListeners","fromElements","tableModel","tableRow","cellPosition","getSpan","cellExists","getWidth","row","findElementPos","extractRows","sx","sy","ey","newRows","tableElm","rowspan","colspan","y2","x2","fillout","skipCellsX","toDom","tableElement","tableBody","createDomTable","modelRowsToDomRows","subsection","subTable","getFullySelectedListWrappers","_li","findParentListContainer","listCont","listElm","listStyles","_style","getWrapElements","commonAnchorContainer","wrapElements","listWrappers","allWrappers","directListWrappers","emptyFragment","getFragmentFromRange","innerElm","wrapped","getTableFragment","selectedTableCells","firstCell","lastCell","fullTableModel","sectionedTableModel","read$3","getSelectionFragment","isCollapsibleWhitespace","getInnerText","bin","shouldTrim","trimLeadingCollapsibleText","getSelectedContentInternal","setupArgs$1","parentBlockOpt","contextNodeName","getContextNodeName","shouldTrimSpaces","nonRenderedText","parentBlockText","textIndex","getTextContent","tmpElm","contextual","getSerializedContent","getOuterHtml","insertAt","write","fragments","vDown","vUp","buildSnake","getMiddleSnake","currentFragments","removeAt","applyDiff","diag","end1","end2","snake","start1","start2","sum","buildScript","middle","i2","lazyTempDocument","createFromEditor","trimmedFragments","trimmed","beforeBookmark","createFragmentedLevel","createCompleteLevel","applyToEditor","level","getLevelContent","getCleanLevelContent","isEq$1","level1","level2","hasEqualContent","hasEqualCleanedContent","isUnlocked","locks","setTyping","typing","endTyping","makePlainAdaptor","beforeChange","beforeChange$1","currentLevel","lastLevel","bm","customUndoRedoLevels","getCustomUndoRedoLevels","setDirty","addUndoLevel$1","undo","undo$1","redo","redo$1","clear$1","reset$1","hasUndo","hasUndo$1","hasRedo","hasRedo$1","ignore","transact$1","ignore$1","callback1","callback2","extra$1","matchAll","matchedFormatNames","checkedMap","_matchAll","canApply","_canApply","_toggle","formatChanged","getContentInternal","insertContent","hasVisual","isVisualAidsEnabled","matchedElm","getVisualAidsTableClass","value_1","cls_1","getVisualAidsAnchorClass","addVisualInternal","getModel","isRtc","plugins","setup$i","editorCast","rtcPlugin","getRtcSetup","rtcInstance","nul","makeNoopAdaptor","rtcEditor","defaultVars","_undoManager","_locks","_node","_similar","_rfl","_format","_details","getRawModel","makeRtcAdaptor","rtc","isRemote","getRtcInstanceWithFallback","getRtcInstanceWithError","getContent$1","getSelectedContent","mergeAndNormalizeText","outerNode","outer","outerElm","oldLength","innerTextNode","walkPastBookmark","normalizeTextIfRequired","setContent$1","setupArgs","eventArgs","contextBlock","contextArgs","cleanContent","prevText","nextText","rngSetContent","createContextualFragment","deleteFromCallbackMap","newCallbacks","merger","isNativeIeSelection","isAttachedToDom","EditorSelection","selectedRange","explicitRange","selectorChangedWithUnbind","selectorChangedData","currentSelectors","findMatchingNode","SelectorChanged","getRng$1","tryCompareBoundaryPoints","how","sourceRange","destinationRange","compareBoundaryPoints","anchorNode","START_TO_START","END_TO_END","isValidRange","ieRange","removeAllRanges","addRange","setBaseAndExtent","focusNode","isForward","anchorRange","anchorOffset","focusRange","focusOffset","bookmarkManager","controlSelection","compareEndPoints","setNode","endElm","selectedBlocks","selectorChanged","getScrollContainer","scrollContainer","scrollElementIntoView","placeCaretAt","addFontToSpansFilter","domParser","fontSizes","face","removeAttrs","addFilters","convert_fonts_to_spans","font_size_legacy_values","addStrikeToSpanFilter","uriParts","buildBlob","Uint8Array","Blob","uriToBlob","rejectWithError","xhr_1","blobUriToBlob","count$1","imageToBlobInfo","blobCache","blobInfo","getByData","blob","getByUri","reader","FileReader","onloadend","readAsDataURL","blobToDataUri","dataUri","ImageScanner","uploadStatus","cachedPromises","images","getAllImages","isUploaded","promises","imageInfo","newPromise","paddEmptyNode","blockElements","padd_empty_with_br","hasOnlyChild","whitespaceElements","isPadded","registerBase64ImageFilter","blob_cache","processImage","inputSrc","isInternalImageSource","isBogusImage","parseDataUri$1","images_dataimg_filter","imgElem_1","Image","isValidDataImg","blobUri","addAttributeFilter","each$6","explode$2","extend$4","DomParser","matchedNodes","matchedAttributes","root_name","filterNode","fi","fl","invalidChildren","rootBlockName","getRootBlockName","whiteSpaceElements","startWhiteSpaceRegExp","endWhiteSpaceRegExp","allWhiteSpaceRegExp","isAllWhiteSpaceRegExp","isInWhiteSpacePreservedElement","createNode","removeWhitespaceBefore","textVal","textNodeNext","cloneAndExcludeBlocks","_text2","isLineBreakNode","parent_2","attrFiltersLen","tempNode","isPaddedWithNbsp","nonSplitableElements","textBlockElements","removeOrUnwrapInvalidNode","originalNodeParent","children_1","newParent","fixed","currentNode","fixInvalidChildren","rootBlockNode","addRootBlocks","remove_trailing_brs","prevName","newRel","allow_unsafe_link_target","appendRel","allow_html_in_named_anchor","fix_list_elements","classValue","validClassesMap","register$1","inline_styles","register$2","hasEventListeners","shouldFireEvent","oldDoc","clonedNode","impl","doc_1","firePreProcess","preProcess","addTempAttr","htmlParser","toHtml","serializeNode","outArgs","firePostProcess","postProcess","DomSerializerImpl","internalName","hasChildren","getHtmlFromNode","brNode1","brNode2","trimTrailingBr","parseHtml","addRules","setRules","DomSerializer","domSerializer","getContent$2","setContent$2","DOM$7","safeDestroy","editorUpload","save","is_removing","unbindAllNativeEvents","hasHiddenInput","fireRemove","orgDisplay","restoreOriginalStyles","fireDetach","automatic","destroyed","_beforeUnload","theme","formElement","_mceOldSubmit","formEventDelegate","restoreForm","contentAreaContainer","editorContainer","bodyElement","clearDomReferences","deepMerge","objects","curObject","deprecatedSettings","deprecatedPlugins","movedToPremiumPlugins","getDeprecatedSettings","settingNames","setting","getDeprecatedPlugins","hasPlugin","plugin","pluginNames","deviceDetection","legacyMobilePlugins","defaultTouchSettings","table_grid","object_resizing","resize","normalizePlugins","trimmedPlugins","extractSections","sections","sectionResult","hasSection","getToolbarMode","getDefaultMobileSettings","mobileSettings","defaultMobileSettings","toolbar_mode","toolbar_sticky","menubar","getExternalPlugins","overrideSettings","userDefinedExternalPlugins","external_plugins","getPlatformPlugins","isMobileDevice","desktopPlugins","mobilePlugins","section","isSectionTheme","processPlugins","defaultOverrideSettings","forcedPlugins","forced_plugins","mobileConfig","getSectionConfig","combinedPlugins","combinePlugins","combineSettings","defaultSettings","defaultDeviceSettings","mobile","extendedSettings","isOnMobile","sectionSettings","getSection","getEditorSettings","documentBaseUrl","baseDefaults","document_base_url","add_form_submit_trigger","submit_patch","add_unload_trigger","convert_urls","relative_urls","remove_script_host","visual","hidden_input","convertURL","getDefaultSettings","finalSettings","deprecation_warnings","rawSettings","hasDeprecatedPlugins","hasDeprecatedSettings","isLegacyMobileTheme","listJoiner","themesMessage","pluginsMessage","settingsMessage","logDeprecationsWarning","getFiltered","getParamObject","IconManager","iconPack","icons","getProp","propName","getComputedSizeProp","getClientWidth","getClientHeight","getMarginTop","getMarginLeft","isXYInContentArea","bodyElm","transposedPoint","transpose","isInsideElementContentArea","isEditorAttachedToDom","rawContainer","getContentAreaContainer","NotificationManager","notifications","getImplementation","unimplemented","getNotificationManagerImpl","getArgs","getTopNotification","closeNotification","notification","otherNotification","fireEvent","progressBar","getEl","addNotification","getNotifications","serviceMessage","getServiceMessage","registerEvents","WindowManager","dialogs","getWindowManagerImpl","openUrl","alert","confirm","getParams","setParams","funcBind","addDialog","dialog","fireOpenEvent","closeDialog","fireCloseEvent","otherDialog","storeSelectionAndOpenDialog","openDialog","windowManagerImpl","displayNotification","notificationManager","displayError","_skinLoaded","logError","createLoadError","pluginLoadError","initError","getContentCssUrls","transformToUrls","contentCss","getContentCss","cssLinks","skinUrl","contentCssFile","isContentCssSkinName","documentBaseURI","appendContentCssFromSettings","contentCSS","getFontCssUrls","UploadStatus","blobUriStatuses","createStatus","resultUri","hasBlobUri","getResultUri","isPending","markPending","markUploaded","removeFailed","uuid","rnd","Uploader","pendingPromises","defaultHandler","withCredentials","credentials","upload","onprogress","loaded","path1","path2","basePath","formData","FormData","filename","handlerSuccess","handlerFailure","resolvePending","uploadBlobs","blobInfos","openNotification","pendingUploadBlobInfo","closeNotification_1","failureOptions","uploadBlobInfo","createUploader","EditorUpload","uploader","imageScanner","toBlobInfo","mime","findFirst","cachedBlobInfo","removeByUri","revokeObjectURL","BlobCache","urlFilters","changeHandler","lastChangedLevel","fireIfChanged","UploadChangeHandler","aliveGuard","replaceString","replaceImageUrl","targetUrl","replacementUrl","replacementString","replaceUrlInUndoStack","uploadImages","scanForImages","imageInfos","imagesToRemove","filteredResult","uploadInfo","shouldReplaceBlobUris","replaceImageUriInView","uploadError","uploadUri","uploadImagesAuto","isValidDataUriImage","imgElm","dataImgFilter","getImagesDataImgFilter","resultItem","replaceBlobUris","source_view","addFilter","FormatRegistry","valigntop","verticalAlign","valignmiddle","valignbottom","alignleft","preview","textAlign","aligncenter","marginRight","alignright","alignjustify","bold","italic","fontStyle","underline","strikethrough","forecolor","hilitecolor","fontname","fontFamily","fontsize","fontSize","lineheight","lineHeight","fontsize_class","blockquote","subscript","superscript","_fmt","_itemName","customValue","removeformat","getFormats","unregister","each$5","parsedSelectorToHtml","ancestry","sItem","wrapInHtml","parentCandidate","ancestorName","parentRequired","elmRule","getRequiredParent","siblingElm","parseSelectorItem","$0","$3","$4","getCssText","previewFrag","parentFontSize","previewCss","previewStyles","getPreviewStyles","removeVars","previewOpt","previewElm","Formatter","formatChangeState","addShortcut","setup$h","applyFormat","removeFormat","toggleFormat","matchFormat","closestFormat","matchAllFormats","matchNodeFormat","canApplyFormat","_formatChanged","shouldIgnoreCommand","cmd","UndoManager","_beforeChange","addUndoLevel","_undo","_redo","_clear","_reset","_hasUndo","_hasRedo","_transact","_ignore","_extra","isFirstTypedCharacter","addNonTypingUndoLevel","command","isDirty","modKey","inputType","isInsertFromPasteOrDrop","addKeyboardShortcuts","nonTypingKeycodes","placeholderAttr","isKeyboardEvent","isDeleteEvent","setup$g","placeholder","getPlaceholder","updatePlaceholder","isNonTypingKeyboardEvent","showPlaceholder","isTypingKeyboardEvent","isForcedRootBlockFalse","isVisuallyEmpty","firePlaceholderToggle","strongRtl","isInlineTarget","getInlineBoundarySelector","findRootInline","findInlineParents","normalizePosition","normalizeForwards","normalizeBackwards","isTextBlockOrListItem","getParentBlock$1","isBeforeRoot","paddEmptyBody","placeCaretInEmptyBody","blockBoundary","getBlockPosition","containerElm","blockPosition","readFromRange","fromBlockPos","toBlockPos","blockPos","lastPositionInBlock","skipLastBr","isDifferentBlocks","parent1","parent2","hasSameParent","isEditable$1","getChildrenUntilBlockBoundary","extractChildren","removeEmptyRoot","nestedBlockMerge","toBlock","insertionPoint","sidelongBlockMerge","getInsertionPoint","parentsAndSelf$1","findInsertionPoint","trimBr","mergeBlockInto","mergeBlocks","block1","block2","backspaceDelete$8","read$1","isRawNodeInTable","isEverythingSelected","noPrevious","noNext","isSelectionInTable","deleteRange$1","emptyEditor","deleteRangeMergeBlocks","backspaceDelete$7","_forward","isContentEditableTrue$2","isContentEditableFalse$4","showCaret","getNodeRange","renderCaretAtRange","caretPositionNode","caretPositionBeforeNode","ceRoot","renderRangeCaret","isBeforeBoundary","isAfterBoundary","deleteContentAndShowCaret","peekCaretPosition","caretRange","deleteRange","trimEmptyTextNode","backspaceDelete$6","getNextPosFn","isBeforeFn","nextCaretPosition","deleteBoundaryText","DeleteAction","moveToElement","moveToPosition","deleteEmptyBlockOrMoveToCef","toCefElm","blockElm","findCefPosition","isDeleteFromCefDifferentBlocks","getContentEditableAction","caretLocation","isAtContentEditableBlockCaret","getContentEditableBlockAction","skipMoveToActionFromInlineCefToContent","getAncestorCe","backspaceDeleteCaret","read","hideFakeCaret","deleteElement$1","backspaceDeleteRange","paddEmptyElement","backspaceDelete$5","backspaceDelete$4","deleteCaret$2","isText","startsWithCaretContainer","endsWithCaretContainer","createZwsp","insertInline","insertInlineBefore","insertInlineAfter","insertInlinePos","isPosCaretContainer","caretNode","renderCaret","evaluateUntil","Location","rescope$1","nPos","isNotInsideFormatCaretContainer","findInsideRootInline","start$1","isValidLocation","readLocation","getName","outside","inside","betweenInlines","fromInline","toInline","hasSameParentBlock","skipNoMovement","fromLocation","toLocation","location2","location1","findLocationSimple","findLocation$1","findLocationTraverse","BreakType","moveRel","modify","moveByWord","hasSelectionModifyApi","VDirection","flip","positions","getBreakType","currentPos","nextPos","Br","Block","Wrap","getPositionsUntil","breakType","breakAt","Eol","getAdjacentLinePositions","getPositionsUntilBreak","findClosestHorizontalPositionFromPoint","lastRect","newRect","lastDist","findClosestHorizontalPosition","targetRect","getPositionsUntilPreviousLine","getPositionsUntilNextLine","getPositionsAbove","getPositionsBelow","getNodeClientRects","toArrayWithNode","customEventRootDelegates","beforeUnloadDelegate","walkUntil$1","isAboveFn","isBeflowFn","line","targetClientRect","findUntil","upUntil","Up","downUntil","Down","isAboveLine","lineNumber","aboveLineNumber","isLine","isLineNumber","isContentEditableFalse$3","findNode","distanceToRectLeft","distanceToRectRight","isInsideX","isInsideY","findClosestClientRect","allowInside","oldClientRect","oldDistance","newDistance","walkUntil","includeChildren","closestFakeCaret","fakeTargetNodeRects","getFakeCaretTargets","targetNodeRects","checkInside","closestNodeRect","targetNodeRect","checkPosFn","lineRects","findLineNodeRects","caretInfo","moveToRange","renderRangeCaretOpt","moveHorizontally","rangeIsInContainerBlock","moveVertically","caretClientRect","linePositions","nextLinePositions","nextLineRect","dist1","dist2","caretPositions","isBelowFn","getClientRect","positionsUntil","closestNextLineRect","getLineEndPoint","moveToLineEndPoint$3","setCaretPosition","setSelected","renderCaretLocation","safeRemoveCaretContainer","isAtZwsp","move$2","isInlineTarget$1","findLocation","moveWord","_caret","setupSelectedState","inlineBoundaries","selectedInlines","targetInlines","toggleInlines","inlines","_inline","renderInsideInlineCaret","moveNextWord","movePrevWord","moveToLineEndPoint$2","linePoint","outsideLoc","setCaretLocation","deleteFromTo","rangeFromPositions","backspaceDeleteCollapsed","rescope","toPosition","normalizedFirstPos","normalizedLastPos","hasOnlyTwoOrLessPositionsLeft","backspaceDelete$3","hasOnlyOneChild","deleteLastPosition","parentInlines","isFormatElement$1","innerMost","replaceWithCaretFormat","deleteCaret$1","getParentInlines","normalizedFromPos","prevPos","willDeleteLastPositionInElement","backspaceDelete$2","deleteElement","backspaceDelete$1","isNearMedia","deleteCaret","parseIndentValue","getIndentStyleName","useMargin","canOutdent","getBlocksToIndent","isReadOnly","indentStyleName","intentValue","validateBlocks","isListComponent","parentIsListComponent","indentation","getIndentation","indentUnit","indentValue","queryCommandState","styleValue","indentElement","backspaceDelete","nativeCommand","setup$f","addCommand","deleteCommand","forwardDeleteCommand","getTouch","setup$e","startData","longpressFired","debounceLongpress","distX","distY","isFarEnough","isEqualNode","isBlockElement","isValidTarget","shouldRemoveTextNode","rootNodeName","hasBlockParent","restoreSelection","blockCaretContainer","removeIeControlRect","handleBlockContainer","findBlockCaretContainer","isContentEditableFalse$2","exitPreBlock","getVisualCaretPosition$1","hasForcedRootBlock","newBlock","textBlock","createTextBlock","getHorizontalRange","moveToCeFalseHorizontally","getVerticalRange","down","moveToCeFalseVertically","moveH$2","newRange","moveV$3","moveToLineEndPoint$1","isTarget","rangeBefore","insertElement","insertEmptyLine","insertBr","insertBlock","isAtFirstOrLastLine","isAtLastLine","isAtFirstLine","moveCaretToNewEmptyLine","rootBlockAttrs","getClosestTargetBlock","moveV$2","match$1","patterns","defaultPatterns","matchesEvent","execute","moveH$1","moveV$1","moveToLineEndPoint","getClosestCell","getYAxisValue","isTargetCorner","corners","tds","deflate","getCorners","corner","newCorner","oldCorner","oldDist","sqrt","newDist","findClosestCorner","getClosestCellAbove","getClosestCellBelow","findClosestPositionInAboveCell","findClosestPositionInBelowCell","isAtTableCellLine","lineInfo","startsWithWrapBreak","startsWithBrBreak","breakPos","hasNextBreak","isAtFirstTableCellLine","isAtLastTableCellLine","navigateHorizontally","_td","isCaretAtStartOrEndOfTable","renderBlock","navigateVertically","getClosestAbovePosition","getClosestBelowPosition","move$1","mover","moveH","moveV","setup$b","executeKeydownOverride$3","setup$a","executeKeydownOverride$2","executeKeyupOverride","moveToCaretPosition","firstNonWhiteSpaceNodeSibling","getParentBlock","hasParent","isListBlock","getContainerBlock","containerBlock","containerBlockParent","isFirstOrLastLi","insert$3","createNewBlock","newBlockName","isFirstChild","tmpRng","hasFirstChild","trimZwsp","isEmptyAnchor","containerAndSiblingName","canSplitBlock","normalizeZwspOffset","getEditableRoot","editableRoot","setForcedBlockAttrs","forcedRootBlockAttrs","attrStyles","currentStyles","newStyles","attrClassesOpt","attrClasses","currentClassesOpt","currentClasses","filteredClasses","newClasses","appliedAttrs","remainingAttrs","applyAttributes","insert$2","parentBlockName","isAfterLastNodeInContainer","shouldKeepStyles","isCaretAtStartOrEndOfBlock","normalizedOffset","insertNewBlockAfter","containerBlockName","shouldEndContainerOnEmptyBlock","isTableCell","wrapSelfAndSiblingsInDefaultBlock","includeZwspInRange","trimLeadingLineBreaks","firstChilds","trimInlineElementsOnLeftSideOfBlock","addBrToBlockIfNeeded","moveSelectionToBr","brElm","extraBr","insertBrAtCaret","isControlKey","hasRightSideContent","insertBrBefore","insertBrAfter","hasBrAfter","isAnchorLink","isInsideAnchor","insertBrOutsideAnchor","insert$1","anchorLocation","readInlineAnchorLocation","newLineAction","shouldBlockNewLine","_shiftKey","getNoNewLineSelector","shouldBlockNewLine$1","isBrMode","requiredState","inListBlock","isListItemParentBlock","inBlock","getParentBlockName","inPreBlock","shouldPutBrInPre","shouldPutBrInPre$1","inBrContext","getBrNewLineSelector","shouldInsertBr","hasShiftKey","_editor","canInsertIntoEditableRoot","rootEditable","getEditableRoot$1","predicates","getAction","setup$9","handleEnterKeyEvent","setup$8","executeKeydownOverride$1","setup$7","keypressThrotter","setupIeInput","isComposing","platform","isPageUpDown","setNodeChangeBlocker","blocked","setup$6","executeKeyupAction","insertTextAtPosition","insertNbspAtPosition","insertSpaceAtPosition","insertInlineBoundarySpaceOrNbsp","checkPos","needsToHaveNbsp","insertSpaceOrNbspAtSelection","locationToCaretPosition","setSelection","setup$5","executeKeydownOverride","registerKeyboardOverrides","setup$c","NodeChange","lastRng","lastPath","nativeRng","fakeRng","isSameElementPath","initialized","currentPath","setup$3","preventSummaryToggle","filterDetails","isTextBlockNode","setup$2","normalizeSelection","getAbsolutePosition","calc","bodyPosition","getBodyPosition","scrollPosition","getScrollPosition","mousePosition","iframePosition","inlineScroll","iframeScroll","getBodyScroll","getMousePosition","isContentEditableFalse$1","isContentEditableTrue$1","createGhost","clonedElm","boxSizing","isLeftMouseButtonPressed","ceElm","elmPos","dragging","maxX","maxY","relX","relY","ghost","drop","targetElement","dragElement","isValidDropTarget","targetClone_1","cloneElm","removeDragState","bindFakeDragEvents","pageDom","dragStartHandler","dragHandler","throttledPlaceCaretAt","movement","targetPos","applyRelPos","moveGhost","move","dropHandler","dragEndHandler","init$2","realTarget","blockIeDrop","shouldBlockUnsupportedDrop","preventFileDrop","dataTransfer","preventFileDropIfUIElement","editorRoot","eventNames","blockUnsupportedFileDrop","isContentEditableTrue","isContentEditableFalse","getContentEditableRoot","SelectionOverrides","selectedElement","fakeCaret","realSelectionId","isFakeSelectionTargetElement","isNearFakeSelectionElement","setRange","getRange","isWithinCaretContainer","isRangeInCaretContainer","normalizeShortEndedElementSelection","selectElement","targetClone","origTargetClone","$realSelectionContainer","setupOffscreenSelection","nodeElm","setElementSelection","afterNode","removeElementSelection","contentEditableRoot","hasBetterMouseTarget","targetBlock","hasNormalCaretPosition","fakeCaretInfo","clipboardData","realSelectionElement","clearData","setData","outerText","renderFocusCaret","setup$1","Quirks","getAttributeApplyFunction","isSelectionAcrossElements","isGecko","isWebKit","mceInternalUrlPrefix","mceInternalDataType","setEditorCommandState","emptyEditorWhenDeleting","serializeRng","allRng","allContentsSelected","selectAll","shortcuts","documentElementEditingFocus","Range","body_1","selectControlElements","disableBackspaceIntoATable","setGeckoEditingOptions","isReadOnly$1","addBrAfterLastLinks","showBrokenImageIcon","contentStyles","restoreFocusOnKeyDown","bodyHeight","blockCmdArrowNavigation","tapLinksAndImages","blockFormSubmitInsideEditor","ieInternalDragAndDrop","selectionHtml","internalContent","setMceInternalContent","getMceInternalContent","internal","queryCommandSupported","template","setAttributeNode","DOM$6","getRootName","removeUndefined","mkParserSettings","moveSelectionToFirstCaretPosition","storeNative","initEditor","bindPendingEventDelegates","fireInit","execCallback","auto_focus","autoFocus","getStyleSheetLoader$1","ui","loadContentCss","removeCss","contentCssText_1","allStylesheets","framedFonts","makeStylesheetLoadingPromises","content_style","appendStyle","preInit","firePreInit","browser_spellcheck","gecko_spellcheck","spellcheck","firePostRender","directionality","getDirectionality","protect","initEditorWithInitialContent","startContent","loadInitialContent","initContentBody","skipWrite","orgVisibility","iframeHTML","hex_colors","force_hex_style_colors","createParser","boolean_attributes","move_caret_before_on_enter_elements","non_empty_elements","short_ended_elements","text_inline_elements","whitespace_elements","mkSerializerSettings","annotator","_nodeChangeDispatcher","setup$4","setup$d","setupRtcThunk","setupRtc","setProgressState","_rtcMode","DOM$5","getIframeHtml","getDocType","bodyId","getBodyId","bodyClass","getBodyClass","translatedAriaText","getIframeAriaText","createIframe","title","customAttrs","iframe","iframeTitle","ifr","getIframeAttrs","frameBorder","allowTransparency","isDomainRelaxed","domain","hostname","bodyUuid","domainRelaxUrl","relaxDomain","iframeContainer","DOM$4","initPlugin","initializedPlugins","Plugin","pluginInstance","pluginInitError","trimLegacyPrefix","createThemeFalseResult","renderThemeFalse","renderThemeFalseIframe","renderThemeUi","renderUI","renderFromLoadedTheme","iframeHeight","renderFromThemeFunc","iconPackName","currentIcons","loadIcons","svgData","icon","addIcon","initIcons","Theme","initTheme","initPlugins","renderInfo","uiApiFacade","enable","augmentEditorUiApi","boxInfo","init$1","DOM$3","hasSkipLoadPrefix","loadLanguage","scriptLoader","languageCode","languageUrl","getLanguageUrl","url_1","languageLoadError","getIconsUrlMetaFromName","defaultIconsUrl","customIconsUrl","getIconsUrl","getIconsUrlMetaFromUrl","cat","urlMeta","iconsLoadError","themeUrl","getThemeUrl","loadTheme","getExternalPlugins$1","depPlugin","url_2","loadPlugins","render","snapshot","clone$3","getStyleSheetLoader","isInline","resetContent","shouldPatchSubmit","triggerSave","windowManager","isEncodingXml","shouldAddFormSubmitTrigger","shouldAddUnloadTrigger","set_dirty","addVisual$1","legacyPropNames","getSpecifiedFontProp","legacyPropName","getProperty","getFontProp","getComputedFontProp","getFontSize","getFontFamily","findFirstCaretElement","bindRange","binder","getCaretElement","mapRange","mapper","fromFontSizeNumber","fontSizeNumber","getFontStyleValues","fontClasses","getFontSizeClasses","normalizeFontNames","font","fonts","insertAtCaret","processValue","each$4","EditorCommands","commands","setupCommands","skip_focus","customCommand","queryCommandValue","addCommands","commandList","addQueryStateHandler","addQueryValueHandler","hasCustomCommand","execNativeCommand","isFormatMatch","storeSelection","selectionBookmark","_command","_ui","queryCommandEnabled","align","listParent","fontNameAction","fontSizeAction","lineHeightAction","customCode","editingHost","selectNodeContents","alignStates","Undo","Redo","fontNameQuery","fontSizeQuery","specifiedStyle","lineHeightQuery","internalContentEditableAttr","setContentEditable","toggleReadOnly","removeFakeSelection","switchOnContentEditableTrue","restoreFakeSelection","_isReadOnly","registerFilters","processReadonlyEvents","isClickEvent","getAnchorHrefOpt","targetEl","numChars","removeFromStart","nativeEvents","EventDispatcher","toggleEvent","isNative","lcName","beforeFire","wrappedCallback","currentName","bindingName","filteredHandlers","getEventDispatcher","_eventDispatcher","toggleNativeEvent","Observable","bubble","dispatcherArgs","DOM$2","getEventTarget","eventRoot","isListening","bindEventDelegate","delegates","eventRootElm","editors","EditorObservable","_pendingNativeEvents","defaultModes","switchToMode","activeMode","availableModes","oldMode","newMode","activate","deactivate","editorReadOnly","fireSwitchMode","create$4","design","registerReadOnlyContentFilters","registerReadOnlySelectionBlockers","setMode","registerMode","each$3","explode$1","keyCodeLookup","f1","f2","f3","f4","f5","f6","f7","f8","f9","f10","f11","f12","modifierNames","parseShortcut","shortcut","alt","ctrl","meta","Shortcuts","pendingPatterns","hasModifier","isFunctionKey","matchShortcut","subpatterns","executeShortcutAction","desc","cmdFunc","normalizeCommandFunc","createShortcut","bridge","menuItems","popups","contextMenus","contextToolbars","sidebars","addButton","addGroupToolbarButton","addToggleButton","addMenuButton","addSplitButton","addMenuItem","addNestedMenuItem","addToggleMenuItem","addAutocompleter","addContextMenu","addContextToolbar","addContextForm","addSidebar","create$3","DOM$1","extend$3","each$2","Editor","loadedCSS","isNotDirty","documentBaseURL","base_url","_setBaseUrl","baseURI","referrer_policy","language_load","editorCommands","cache_suffix","modeInstance","callbackLookup","initialContent","oldState","urlconverter_callback","_scanForImages","each$1","extend$2","instanceCounter","boundGlobalEvents","legacyEditors","globalEventDelegate","EditorManager","toggleGlobalEvents","removeEditorFromList","targetEditor","oldEditors","isQuirksMode","compatMode","majorVersion","minorVersion","releaseDate","i18n","tinymce","tinyMCEPreInit","srcScript","currentScript","pluginBaseUrls","plugin_base_urls","pluginBaseUrl","invalidInlineTargets","createId","provideResults","initEditors","initCount","createEditor","forms","editor_deselector","editor_selector","findTargets","isInvalidInlineTarget","addI18n","tasks","resultFns","_extendClass","initializing","min$1","max$1","round$1","relativePosition","targetW","targetH","relChars","create$2","Rect","inflate","findBestRelativePosition","constrainRect","rels","intersect","cropRect","x1","y1","clamp","clampRect","fixedSize","cx2","cy2","underflowX1","underflowY1","overflowX2","overflowY2","fromClientRect","Resource","loadErrMsg","runErrMsg","task","waiter","resolveCb","rejectCb","completer","awaiter","extend$1","Class","mixins","mixin","Mixins","dummy","Methods","Properties","fieldName","Statics","Defaults","member","createMethod","localStorage","JSONUtils","hexCode","JSONP","XHR","success_scope","error_scope","content_type","requestheaders","JSONRequest","sendRPC","ecb","scb","xhrArgs","ty","setItem","removeItem","storage","getItem","publicApi","geom","util","LocalStorage","Color","hue","saturation","brightness","side","chroma","hsvToRgb","toRgb","toHsv","minRGB","maxRGB","rgb2hsv","ImageUploader","showNotification","TreeWalker","Serializer","Selection","isMac","tinyMCE","exportToWindowGlobal","exportToModuleLoaders","chosen","default","locals","___CSS_LOADER_API_IMPORT___","___CSS_LOADER_GET_URL_IMPORT___","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","needQuotes","AbstractChosen","Chosen","SelectParser","hasProp","options_index","add_node","add_group","add_option","group_position","results1","array_index","group_disabled","group_array_index","group_label","select_to_array","form_field","options1","label_click_handler","browser_is_supported","is_multiple","multiple","set_default_text","set_default_values","set_up_html","register_observers","on_ready","click_test_action","test_active_click","activate_action","activate_field","active_field","mouse_on_container","results_showing","result_highlighted","is_rtl","rtl","allow_single_deselect","disable_search_threshold","disable_search","enable_split_word_search","group_search","search_contains","single_backstroke_delete","max_selected_options","Infinity","inherit_select_classes","display_selected_options","display_disabled_options","include_group_label_in_selected","max_shown_results","POSITIVE_INFINITY","case_sensitive_search","hide_results_on_select","default_text","placeholder_text_multiple","placeholder_text","default_multiple_text","placeholder_text_single","default_single_text","escape_html","results_none_found","no_results_text","default_no_result_text","choice_label","mouse_enter","mouse_leave","input_focus","container_mousedown","input_blur","blur_test","results_option_build","data_content","shown_results","results_data","result_add_group","result_add_option","choice_build","single_set_selected_text","option_el","search_match","include_option_in_results","highlighted_html","group_el","group_match","active_options","results_update_field","results_reset_cleanup","result_clear_highlight","results_build","winnow_results","reset_single_select_options","results_toggle","results_hide","results_show","results_search","escapedQuery","results_group","startpos","no_results_clear","get_search_text","get_search_regex","search_string_match","update_results_content","no_results","skip_highlight","winnow_results_set_highlight","escaped_search_string","regex_flag","regex_string","search_string","choices_count","selected_option_count","choices_click","is_disabled","keydown_checker","stroke","search_field_scale","pending_backstroke","clear_backstroke","backstroke_length","get_search_field_value","result_select","keyup_arrow","keydown_arrow","keyup_checker","keydown_backstroke","clipboard_event_checker","container_width","search_results_touchstart","touch_started","search_results_mouseover","search_results_touchmove","search_results_mouseout","search_results_touchend","search_results_mouseup","get_single_html","get_multi_html","get_no_results_html","terms","appName","input_field","$this","superClass","__super__","ctor","form_field_jq","current_selectedIndex","container_classes","container_props","dropdown","search_field","search_results","search_no_results","search_choices","search_container","selected_item","set_tab_index","set_label_behavior","container_mouseup","search_results_mousewheel","close_field","form_field_label","search_field_disabled","results_reset","wheelDelta","show_search_field_default","active_container","parsing","readOnly","result_do_highlight","high_bottom","high_top","maxHeight","visible_bottom","visible_top","result_highlight","outerHeight","ti","choice","close_link","choice_destroy_link_click","choice_destroy","result_deselect","trigger_form_field_change","single_deselect_control_build","result_data","deselected","do_high","selected_results","no_results_html","next_sib","prev_sibs","next_available_destroy","style_block","whiteSpace","outerWidth","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","lo","hi","md51_array","subarray","rhex","toUtf8","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","concatenateArrayBuffers","byteLength","buffer","hexToBinaryString","bytes","SparkMD5","targetArray","sourceArray","begin","appendBinary","_buff","_length","_hash","getState","setState","hashBinary","classCallCheck","Constructor","createClass","defineProperties","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","readAsArrayBuffer","dispatchEvent","eventInit","createEvent","toArray$1","BlobRecord","checksum","byte_size","csrfToken","getMetaValue","requestDidLoad","requestDidError","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","_len","messages","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","_this2","uploadRequestDidProgress","DirectUploadsController","inputs","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","submitForm","ActiveStorage","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","getKeys","symbol","getEnumerableOwnPropertySymbols","propertyIsOnObject","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","arrayMerge","sourceIsArray","deepmerge_1","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","relativeTimeWithPlural","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","lastNumber","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","isUpper","eifelerRegelAppliesToNumber","translateSingular","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","hundred","ten","word","numberAsNoun","processHoursFunction","nominative","accusative","genitive","timeoutDuration","longerTimeoutBrowsers","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","isIE11","MSInputMethodContext","isIE10","getOffsetParent","noOffsetParent","nextElementSibling","findCommonOffsetParent","element1","element2","order","DOCUMENT_POSITION_FOLLOWING","element1root","getScroll","upperSide","scrollingElement","includeScroll","modifier","getBordersSize","axis","sideA","sideB","computedStyle","getWindowSizes","_extends","offsets","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","innerWidth","isFixed","getFixedPositionOffsetParent","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","sortedAreas","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","modifiers","ends","isDestroyed","arrowStyles","flipped","positionFixed","originalPlacement","isCreated","onUpdate","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","BEHAVIORS","parseOffset","basePlacement","useHeight","divider","splitRegex","mergeWithPrevious","toValue","index2","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","primary","escapeWithReference","secondary","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","onLoad","modifierOptions","Popper","Utils","PopperUtils","deepValue","distance","maxPatternLength","caseSensitive","tokenSeparator","findAllMatches","minMatchCharLength","S","shouldSort","getFn","A","O","sortFn","C","I","matchAllTokens","F","T","includeMatches","N","z","includeScore","verbose","K","isCaseSensitive","setCollection","_processKeys","_keyWeights","_keyNames","weight","_log","_prepareSearchers","tokenSearchers","fullSearcher","_search","_computeScore","_sort","_analyze","record","resultMap","arrayIndex","isMatch","matchedIndices","EPSILON","indices","patternAlphabet","errors","currentLocation","expectedLocation","isNum","symbolObservablePonyfill","_Symbol","observable","HOOKS","_disable","_enable","allowInput","altFormat","altInput","altInputClass","ariaDateFormat","clickOpens","closeOnSelect","conjunction","defaultHour","defaultMinute","defaultSeconds","disableMobile","enableSeconds","enableTime","errorHandler","getWeek","givenDate","setHours","setDate","week1","hourIncrement","ignoredFocusElements","minuteIncrement","monthSelectorType","nextArrow","noCalendar","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","positionElement","prevArrow","shorthandCurrentMonth","showMonths","time_24hr","weekNumbers","english","longhand","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","hourAriaLabel","minuteAriaLabel","pad","int","immediate","arrayify","clearNode","condition","createNumberInput","inputClassName","numInput","arrowUp","arrowDown","doNothing","monthToStr","monthNumber","revFormat","D","dateObj","G","H","J","getHours","shortMonth","setSeconds","U","unixSeconds","weekNum","weekNumber","Y","Z","ISODate","setMinutes","unixMillSeconds","tokenRegex","getSeconds","getMinutes","createDateFormatter","l10n","frmt","overrideLocale","formatDate","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","parseDate","matchIndex","regexStr","token_1","isBackSlash","compareDates","date1","date2","FlatpickrInstance","instanceConfig","flatpickr","defaultConfig","bindToInstance","setCalendarWidth","calendarContainer","daysContainer","daysWidth","weekWrapper","updateTime","selectedDates","setDefaultTime","isKeyDown","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","timeWrapper","prevValue","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDate","minDateHasTime","latestSelectedDateObj","maxTime","maxDate","maxDateHasTime","setHoursFromDate","setDefaultHours","minHr","minMinutes","maxHr","maxMinutes","onYearInput","changeYear","ev","onClick","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","buildMonthSwitch","redraw","timeIncrement","inputElem","createDay","dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","onMouseOver","getFirstAvailableDay","startMonth","endMonth","focusOnDay","dayFocused","isInView","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayIndex","dayNum","dayContainer","buildDays","shouldBuildMonth","monthsDropdownContainer","buildMonth","monthElement","monthNavFragment","selectedMonth","yearInput","yearElement","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","documentClick","isOpen","eventTarget_1","isCalendarElement","isInput","lostFocus","isIgnored","timeContainer","newYear","newYearNum","isNewYear","dateToCheck","allowKeydown","allowInlineKeydown","isTimeObj","focusAndClose","selectDate","delta_1","currentYearElement","pluginElements","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","_loop_1","ts1","ts2","dayElem","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","setupLocale","l10ns","dataset","customPositionElement","_positionElement","calendarHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","showOnTop","rightMost","centerMost","bodyWidth","centerLeft","centerIndex","cssRules","centerStyle","insertRule","centerBefore","msMaxTouchPoints","selectedDate","shouldChangeMonth","showTimeInput","single","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","_type","wasOpen","CALLBACKS","setSelectedDate","inputDate","parseDateRules","getDateStr","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","pluginConf","parseConfig","preloadedDate","defaultDate","_showTimeInput","setupDates","yr","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","rContainer","hourInput","minuteInput","military2ampm","secondInput","buildTime","customAppend","build","setupMobile","debouncedResize","ontouchstart","selText","bindEvents","_flatpickr","nodeList","HTMLElement","instances","args_1","HTMLCollection","NodeList","en","localize","setDefaults","fp_incr","toastr","tooltip","popover","googleMapsLoaded","Rails","linkClickSelector","buttonClickSelector","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","cspNonce","csrfParam","CSRFProtection","refreshCSRFTokens","CustomEvent","initCustomEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","DONE","isCrossDomain","serializeElement","additionalParam","formElements","allowAction","handleConfirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","originalText","handleMethod","formContent","handleRemote","enctype","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","Turbolinks","history","pushState","visit","clearCache","setProgressBarDelay","copyObject","absoluteURL","requestURL","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isPrefixedBy","isEqualTo","toCacheKey","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","notifyApplicationBeforeRequestStart","setProgress","requestStarted","lengthComputable","endRequest","requestCompletedWithResponse","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","trickleInterval","BrowserAdapter","showProgressBar","_t3","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","findMetaElementByName","Snapshot","headDetails","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","put","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","getTimingMetrics","snapshotCached","frame","_t9","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","channels","webpackEmptyContext","req","registerElement","uid_","nodes_","observer","removeTransientObservers","callback_","enqueue","records_","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","postMessage","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","addListeners_","removeListeners_","addTransientObserver","relatedNode","attrChange","MutationEvent","ADDITION","_isPolyfilled","performance","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","WebComponents","CustomElements","addModule","initializeModules","hasNative","useNative","HTMLImports","olderShadowRoot","import","IMPORT_LINK_TYPE","forDocumentTree","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","_URL","localName","DOCUMENT_FRAGMENT_NODE","groupEnd","__observer","hasPolyfillMutations","hasThrottledAttached","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","createdCallback","getOwnPropertyDescriptor","native","HTMLTemplateElement","getRegisteredDefinition","extends","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","createElementNS","__name","lifecycle","instanceof","reservedTagList","readyTime","elapsed","unwrapIfNeeded","__importsParsingHook","eager","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","fromJSONString","fromJSON","hasSameConstructorAs","contentsForInspection","toJSONString","toUTF16String","UTF16String","getCacheKey","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","escapeHTML","summarizeStringChange","added","_n","utf16String","codepoints","fromCodepoints","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","findElementFromContainerAndOffset","findChildIndexOfNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","rangeIsCollapsed","rangesAreEqual","connectedCallback","disconnectedCallback","_n2","getDOMSelection","getDOMRange","setDOMRange","selectionChangeObserver","dataTransferIsPlainText","dataTransferIsWritable","keyEventIsKeyboardCommand","Hash","fromCommonAttributesOfObjects","getKeysCommonToHash","ObjectGroup","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","ObjectMap","ElementStore","trixStoreKey","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","perform","release","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","attachFiles","bullets","captionPlaceholder","heading1","numbers","outdent","quote","strike","unlink","urlPlaceholder","GB","KB","MB","PB","TB","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","exclusive","fileSize","precision","byte","inheritable","groupTagName","frozen","serializers","Document","fromHTML","toSerializableDocument","DocumentView","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","presentation","keyNames","level2Enabled","getLevel","pickFiles","fileInputId","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","objectGroup","getChildViews","createContainerElement","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","InputController","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","Level0InputController","resetInputSummary","setInputSummary","inputSummary","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyName","inputControllerDidReceiveKeyboardCommand","keypress","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","inputControllerWillCutText","deleteInDirection","R","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","insertText","Text","textForStringWithAttributes","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","isEnded","getSelectedDocument","Files","inputController","isSignificant","insertPlaceholder","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","reparse","scheduleRender","afterRender","withEvent","inputTypes","selectionContainsAttachments","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","getFilename","getFormattedFilesize","getCaption","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","createCaptionElement","getUploadProgress","getCaptionConfig","getType","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","updateAttributesForImage","getURL","getPreviewURL","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","getLastAttribute","shouldAddExtraNewlineElement","getBlockBreakPosition","elementStore","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","didSync","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","revision","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","textForAttachmentWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","getListItemAttributes","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","sanitizeElement","previousElementSibling","HTMLParser","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","currentBlockElement","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","appendStringWithAttributes","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","loadSnapshot","compositionWillLoadSnapshot","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","undoEntries","redoEntries","consolidatable","createEntry","description","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","selectionManager","_t18","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","getClientRectsForDOMRange","SelectionChangeObserver","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","unlock","clearSelection","selectionIsCollapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","inputElement","editorController","registerResetListener","unregisterResetListener","resetListener","resetBubbled","registerImmediate","channel","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","attachTo","nextTick","runIfPresent","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","env","argv","versions","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","cwd","chdir","umask","variable","DATE_PATTERN","ISO8601_PATTERN","DECIMAL_SEPARATOR","toStr","toFloat","parseISO8601","toArr","jsOptionsFunc","defaultOptions","hideLegend","setTitle","setMin","setMax","setStacked","setXtitle","setYtitle","chart","chartOptions","series","negativeValues","stacked","colors","xtitle","ytitle","library","sortByTime","sortByNumberSeries","sortByNumber","isMinute","getMilliseconds","isHour","isDay","isWeek","dayOfWeek","isMonth","isYear","formatValue","byteScale","baseValue","toPrecision","zeros","thousands","decimal","seriesOption","baseOptions","maintainAspectRatio","tooltips","displayColors","fontColor","scales","yAxes","ticks","maxTicksLimit","scaleLabel","xAxes","gridLines","drawOnChartArea","defaultColors","_hideLegend","setBarMin","setBarMax","labelString","notnull","setFormatOptions","chartType","formatOptions","myAxes","stepSize","datasets","datasetIndex","xLabel","yLabel","dataPoint","tooltipItem","dataLabel","labels","valueLabel","jsOptions","createDataTable","i$1","s$1","j$1","rows2","xtype","sortedLabels","i$2","s$2","d$1","j$2","borderColor","pointBackgroundColor","borderWidth","pointHoverBackgroundColor","lineTension","pointRadius","pointHitRadius","xmin","xmax","ticksKey","helpers","timeDiff","displayFormats","unitStepSize","tooltipFormat","defaultExport","renderLineChart","allZeros","drawChart","renderPieChart","donut","cutoutPercentage","renderColumnChart","barOptions","maxLabelSize","setLabelSize","renderAreaChart","renderBarChart","renderScatterChart","showLines","renderBubbleChart","ctx","defaultOptions$1","xAxis","yAxis","credits","plotOptions","areaspline","hideLegend$1","layout","setTitle$1","jsOptions$1","stackedValue","stacking","setFormatOptions$1","pointFormatter","defaultExport$1","curve","points","pie","innerSize","categories","newSeries","renderTo","Chart","defaultOptions$2","chartArea","fontName","pointSize","textStyle","alignment","curveType","hAxis","titleTextStyle","gridlines","baselineColor","viewWindow","vAxis","hideLegend$2","setTitle$2","setBarMin$1","setBarMax$1","setStacked$2","isStacked","setXtitle$2","setYtitle$2","jsOptions$2","defaultExport$2","this$1","waitForLoaded","pieHole","visualization","DataTable","addColumn","addRows","areaOpacity","renderGeoChart","colorAxis","renderTimeline","clearChart","draw","runCallbacks","loadOptions","packages","__config","mapsApiKey","charts","LineChart","Timeline","columnType","pendingRequests","runningRequests","runNext","Zepto","requestComplete","ajaxCall","textStatus","errorThrown","adapters","setText","chartError","noPrefix","errorCatcher","__render","fetchDataSource","dataSource","rawData","fn2","childOf","addAdapter","adapterType","product","getAdapterType","renderChart","dataEmpty","fnName","adapterName","Highcharts","google","__adapterObject","callAdapter","download","__downloadAttached","zIndex","__enterEvent","toImage","__leaveEvent","addDownloadButton","toFormattedKey","keyType","formatSeriesData","detectXTypeWithFunction","processSeries","noDatetime","discrete","detectXType","copySeries","processSimple","perfectData","elementId","Chartkick","startRefresh","getDataSource","getOptions","getChartObject","getAdapter","updateData","__updateOptions","setOptions","refreshData","sep","intervalId","stopRefresh","background","canvas","tmpCanvas","tmpCtx","fillStyle","fillRect","drawImage","toDataURL","toBase64Image","updateRefresh","__processData","__chartName","PieChart","ColumnChart","BarChart","AreaChart","GeoChart","ScatterChart","BubbleChart","configure","setDefaultOptions","eachChart","chartId","use","colorName","conversions","reverseKeywords","convert","rgb","hsl","hsv","hwb","cmyk","xyz","lab","lch","keyword","ansi16","ansi256","hcg","apple","gray","rdif","gdif","bdif","diffc","reversed","currentClosestKeyword","currentClosestDistance","t1","t2","t3","smin","lmin","vmin","wh","bl","z2","atan2","hr","sin","ansi","mult","rem","colorString","integer","mg","pure","deriveBFS","fromModel","graph","models","buildGraph","adjacents","adjacent","wrapConversion","toModel","conversion","routes","route","wrappedFn","wrapRounded","wrapRaw","colorConvert","colorName$1","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","vals","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","setValues","red","lightness","whiteness","cyan","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","color1","w1","w2","spaces","maxes","getValues","space","capped","chans","sname","svalues","chartjsColor","isValidKey","isNullOrUndef","_isFinite","_x","valueOrDefault","valueAtIndexOrDefault","loopable","arrayEquals","a0","ilen","v0","v1","klen","_merger","tval","sval","_mergerIf","mergeIf","dst","inherits","extensions","ChartElement","Surrogate","_deprecated","helpers_core","callCallback","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","effects","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","clearRect","roundedRect","radius","moveTo","arc","closePath","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","restore","beginPath","lineTo","SQRT1_2","_isPointInArea","epsilon","clipArea","clip","unclipArea","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","core_defaults","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","family","toFontString","cacheable","exports$2","_factorize","log10","exponent","LOG10E","powerOf10","helpers_math","helpers_rtl","getRtlAdapter","rectX","_x2","setWidth","xPlus","leftForLtr","itemWidth","_x3","_itemWidth","overrideTextDirection","getPropertyPriority","prevTextDirection","restoreTextDirection","helpers$1","math","configuration","pivot","_view","_model","_start","transition","ease","c0","c1","interpolate","tooltipPosition","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onComplete","core_animations","animations","addAnimation","lazy","animating","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","stub","_chartjs","DatasetController","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","getDataset","scalesOpts","xAxisID","yAxisID","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_chart","_datasetIndex","createMetaData","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","resyncElements","_configure","_cachedDataOpts","easingValue","_resolveDatasetElementOptions","_resolveDataElementOptions","readKey","datasetOpts","custom","elementOptions","dataIndex","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawBorder","vm","borderAlign","lineWidth","lineJoin","fullCircles","drawFullCircleBorders","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","centreAngle","rangeFromCentre","circumference","strokeStyle","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","pointStyle","element_point","mouseY","inXRange","inYRange","defaultColor$2","getBarBounds","half","v2","parseBorderWidth","maxW","maxH","borderSkipped","horizontal","parseBorderSkipped","_inRange","skipX","skipY","rectangle","element_rectangle","boundingRects","Arc","Line","Point","Rectangle","valueOrDefault$3","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","curr","pixels","getTicks","getPixelForTick","computeMinSampleSize","categoryPercentage","barPercentage","chunk","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","_getStacks","metasets","_getMatchingVisibleMetas","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","computeFlexCategoryTraits","stackIndex","indexOpts","valueOpts","valueOrDefault$4","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","generateLabels","legendItem","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","ratioX","ratioY","arcs","cutout","chartWeight","_getRingWeight","endX","endY","contains0","contains90","contains270","minX","minY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","isPointInArea","scaleClip","halfBorderWidth","tickOpts","defaultClip","toClip","controller_line","showLine","_showLine","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","polarArea","radar","getRelativePosition","parseVisibleItems","metadata","jlen","getIntersectItems","getNearestItems","distanceMetric","minDistance","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","indexMode","core_interaction","modes","nearest","intersectsItem","filterByPosition","where","sortByWeight","getCombinedMax","maxPadding","updateDims","newWidth","newHeight","getPadding","boxPadding","getMargins","marginForPositions","fitBoxes","boxes","refit","changed","refitBoxes","fullWidth","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","layoutOptions","availableWidth","availableHeight","layoutBoxes","wrapBoxes","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","vBoxMaxWidth","hBoxMaxHeight","layouts","setLayoutDims","updatePos","change","handleMaxPadding","stylesheet","CSS_SIZE_MONITOR","CSS_PREFIX","CSS_RENDER_MONITOR","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerdown","pointermove","pointerup","pointerout","readUsedSize","supportsEventListenerOptions","eventListenerOptions","createDiv","addResizeListener","ticking","resizer","maxSize","shrink","createResizer","renderProxy","animationName","reflow","watchForRender","removeResizeListener","unwatchForRender","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","containsStyles","injectCSS","acquireContext","renderHeight","renderWidth","displayWidth","aspectRatio","displayHeight","initCanvas","releaseContext","proxies","fromNativeEvent","core_plugins","_plugins","_cacheId","descriptors","$plugins","_invalidate","core_scaleService","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","lines","getBeforeBody","bodyItems","bodyItem","getAfterBody","getFooter","indexScale","valueScale","existingModel","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","getLabelForIndex","itemSort","dataPoints","combinedBodyLength","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","lf","rf","olf","orf","yf","midX","midY","determineAlignment","paddingAndSize","radiusAndPadding","getBackgroundPoint","drawCaret","tooltipPoint","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","onHover","animationDuration","responsive","responsiveAnimationDuration","initConfig","_bufferedRender","retinaScale","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","_chartInstance","eventHandler","updateHoverStyle","bufferedRequest","core_controller","abstract","DateAdapter","configMerge","scaleMerge","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","getPixelForGridLine","validIndex","lineValue","computeLabelSizes","tickFonts","caches","tickFont","nestedLabel","widest","highest","widths","heights","widestLabelSize","highestLabelSize","gc","valueAt","gcLen","garbageCollect","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","parseTickFontOptions","nonSkipped","ticksToFilter","filtered","spacing","majorStart","majorEnd","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","paddingLeft","paddingTop","paddingRight","paddingBottom","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","numItems","increment","sample","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","toDegrees","scaleLabelOpts","gridLineOpts","isBottom","firstLabelSize","lastLabelSize","lineSpace","tickPadding","isRotated","angleRadians","toRadians","cosRotation","sinRotation","labelHeight","offsetRight","labelWidth","handleMargins","isFullWidth","_getScaleLabel","getValueForPixel","getDecimalForPixel","pixel","getBaseValue","avgMajorSpacing","axisLength","ticksLimit","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","factors","factor","evenMajorSpacing","getEvenSpacing","calculateSpacing","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","_computeLabelItems","lineCount","isMirrored","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","scale_linearbase","handleTickRangeOptions","minSign","maxSign","suggestedMin","suggestedMax","getTickLimit","maxTicks","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","generationOptions","dataRange","niceMin","niceMax","numSpaces","maxNumSpaces","rmin","rmax","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","_endValue","defaultConfig$1","stackData","neg","getOrCreateStack","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","_defaults$1","valueOrDefault$b","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","minNotZero","valuesPerStack","valuesForType","minVal","maxVal","exp","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","scale_radialLinear","drawingArea","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","longestText","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","pointLabelPosition","pointLabelFontColor","drawPointLabels","drawRadiusLine","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","common","steps","UNITS","sorter","getMin","getMax","interpolate$1","skey","tkey","mid","i0","i1","toTimestamp","_adapter","determineUnitForAutoTicks","minUnit","capacity","ticksFromTimestamps","majorUnit","setMajorTicks","scale_time","labelsAdded","timestamps","dataLabels","arrayUnique","_table","_timestamps","timeOpts","getLabelCapacity","distribution","_unit","determineUnitForFormatting","_majorUnit","determineMajorUnit","buildLookupTable","_offsets","computeOffsets","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","displayFormat","category","radialLinear","FORMATS","amount","filler","propagate","mappers","boundary","decodeFill","computeBoundary","cx","cy","computeCircularBoundary","scaleBottom","scaleTop","scaleZero","computeLinearBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","loop","p0","d0","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","alignmentOffset","blockSize","itemHeight","textWidth","realX","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","filterCallback","findNextWhere","arrayToSearch","currentItem","findPreviousWhere","rounded","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","oRequestAnimationFrame","msRequestAnimationFrame","boundingRect","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","forceRatio","pixelRatio","pixelSize","arrayOfThings","thing","nestedThing","longest","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","webpackContext","webpackContextResolve","_defineProperties","_createClass","_defineProperty","ownKeys","enumerableOnly","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","TRANSITION_END","transitionEndEmulator","Util","triggerTransitionEnd","getUID","getSelectorFromElement","hrefAttr","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","supportsTransitionEnd","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","findShadowRoot","ShadowRoot","jQueryDetection","emulateTransitionEnd","DATA_KEY","JQUERY_NO_CONFLICT","Alert","_proto","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","DATA_KEY$1","JQUERY_NO_CONFLICT$1","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_INPUT","SELECTOR_BUTTON","Button","addAriaPressed","initialButton","inputBtn","_button","NAME$2","DATA_KEY$2","EVENT_KEY$2","JQUERY_NO_CONFLICT$2","Default","keyboard","slide","pause","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","EVENT_SLID","CLASS_NAME_ACTIVE$1","SELECTOR_ACTIVE_ITEM","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","visibilityState","activeIndex","_getItemIndex","_handleSwipe","absDeltax","_keydown","_addTouchEventListeners","_this3","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","defaultInterval","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","DATA_KEY$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","CLASS_NAME_SHOW$1","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","DIMENSION_WIDTH","SELECTOR_DATA_TOGGLE$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","startEvent","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","$trigger","$target","NAME$4","DATA_KEY$4","EVENT_KEY$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_CLICK_DATA_API$4","EVENT_KEYDOWN_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW$2","CLASS_NAME_MENURIGHT","SELECTOR_DATA_TOGGLE$2","SELECTOR_MENU","Default$2","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","_getPopperConfig","hideEvent","_getPlacement","$parentDropdown","_getOffset","toggles","clickEvent","dropdownMenu","_dataApiKeydownHandler","NAME$5","DATA_KEY$5","EVENT_KEY$5","JQUERY_NO_CONFLICT$5","Default$3","backdrop","DefaultType$3","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$3","CLASS_NAME_STATIC","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_hideModal","handleUpdate","_triggerBackdropTransition","hideEventPrevented","modalTransitionDuration","modalBody","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","isModalOverflowing","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","scrollDiv","scrollbarWidth","_this11","uriAttrs","DefaultWhitelist","em","h1","h2","h3","h4","h5","h6","ol","small","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrRegex","allowedAttribute","NAME$6","DATA_KEY$6","EVENT_KEY$6","JQUERY_NO_CONFLICT$6","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","fallbackPlacement","AttachmentMap","AUTO","TOP","BOTTOM","Default$4","HOVER_STATE_SHOW","HOVER_STATE_OUT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$4","TRIGGER_HOVER","TRIGGER_FOCUS","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","isInTheDom","tipId","NAME","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","CLASS_PREFIX","setElementContent","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","initConfigAnimation","NAME$7","DATA_KEY$7","EVENT_KEY$7","JQUERY_NO_CONFLICT$7","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","Popover","_Tooltip","subClass","_getContent","CLASS_PREFIX$1","CLASS_NAME_FADE$3","NAME$8","DATA_KEY$8","EVENT_KEY$8","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","CLASS_NAME_ACTIVE$2","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","METHOD_POSITION","ScrollSpy","_scrollElement","_targets","_activeTarget","_scrollHeight","_process","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","maxScroll","_activate","queries","$link","scrollSpys","$spy","DATA_KEY$9","JQUERY_NO_CONFLICT$9","CLASS_NAME_ACTIVE$3","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$6","SELECTOR_ACTIVE$2","SELECTOR_ACTIVE_UL","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","NAME$a","DATA_KEY$a","JQUERY_NO_CONFLICT$a","EVENT_CLICK_DISMISS$1","CLASS_NAME_HIDE","CLASS_NAME_SHOW$7","CLASS_NAME_SHOWING","DefaultType$7","autohide","Default$7","Toast","_close","Scrollspy","_typeof2","_WINDOW","_DOCUMENT","_ref$userAgent","WINDOW","DOCUMENT","PRODUCTION","_objectSpread","shims","defineIcons","_params$skipHooks","skipHooks","iconName","addPack","bunker","_slicedToArray","_arrayWithHoles","_arr","_iterableToArrayLimit","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","_MUTATION_OBSERVER","_PERFORMANCE","mark","MUTATION_OBSERVER","PERFORMANCE","IS_BROWSER","IS_DOM","IS_IE","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PREFIX_TO_STYLE","STYLE_TO_PREFIX","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","FONT_WEIGHT_TO_PREFIX","oneToTen","oneToTwenty","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","RESERVED_CLASSES","FontAwesomeConfig","coerce","getAttrConfig","familyPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","functions","domready","asyncTimer","PENDING","SETTLED","FULFILLED","REJECTED","NOOP","asyncSetTimer","asyncQueue","asyncFlush","asyncCall","invokeCallback","subscriber","settled","handleThenable","resolved","fulfill","publishFulfillment","publishRejection","publish","_then","notifyRejectionHandled","resolver","rejectPromise","invokeResolver","onFulfillment","onRejection","picked","meaninglessTransform","flipX","flipY","insertCss","headChildren","beforeChild","nextUniqueId","classArray","getIconName","htmlEscape","joinStyles","styleName","transformIsMeaningful","transformForSvg","containerWidth","iconWidth","innerTranslate","innerScale","innerRotate","ALL_SPACE","fillBlack","force","makeInlineSvgAbstract","_params$icons","main","mask","maskId","titleId","_params$watchable","watchable","widthClass","attrClass","role","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","makeIconMasking","styleString","makeIconStandard","asSymbol","asIcon","makeLayersTextAbstract","_params$watchable2","_ref2$width","_ref2$height","_ref2$startCentered","startCentered","transformForCss","makeLayersCounterAbstract","preamble","perf","initialValue","thisContext","bindInternal4","unicode","_byUnicode","_byLigature","_byOldName","reducer","ligatures","ligature","hasRegular","shim","oldName","byUnicode","styles$1","getCanonicalIcon","autoFetchSvg","iconFromMapping","mapping","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","joinAttributes","isWatched","mutators","newOuterHTML","nest","forSvg","splitClasses","toSvg","toNode","newInnerHTML","performOperationSync","callbackFunction","mutator","enableObservation","mo","treeCallback","nodeCallback","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","mutationRecord","_getCanonicalIcon","classParser","existingPrefix","existingIconName","parseTransformString","transformString","parseMeta","_classParser","extraClasses","extraStyles","styleParser","transformParser","symbolParser","extraAttributes","attributesParser","maskParser","MissingIcon","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","RING","OPACITY_ANIMATE","missing","styles$2","asFoundIcon","vectorData","findIcon","FontAwesomeKitConfig","styles$3","generateMutation","nodeMeta","computedFontSize","boundingClientRect","generateLayersText","generateSvgReplacementMutation","onTree","htmlClassList","hclAdd","hclRemove","prefixesDomQuery","resolvedMutations","onNode","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","hexValue","iconIdentifier","processable","operations","dfp","drc","fp","rc","dPatt","customPropPatt","rPatt","Library","_classCallCheck","_pullDefinitions","_normalized$key","ensureCss","_cssInserted","apiObject","abstractCreator","findIconDefinition","iconLookup","_iconLookup$prefix","i2svg","_params$node","_params$callback","watch","autoReplaceSvgRoot","autoReplace","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$title","_params$titleId","_params$classes","_params$attributes","_params$styles","maybeIconDefinition","noAuto","_params$transform2","_params$title2","_params$classes2","_params$attributes2","_params$styles2","_params$title3","_params$classes3","_params$attributes3","_params$styles3","layer","assembler","_params$classes4","_params$autoReplaceSv","FontAwesome","addShims","_namespace$shims","originalModule","myoutputTarget","initMap","initMap2","lat","lng","myCoords","maps","LatLng","mapOptions","zoom","Marker","refreshMarker","setPosition","setCenter","DROP","draggable","autocomplete","places","Autocomplete","bindTo","setFields","placeChanged","onchange","newlat","newlng","panTo","place","getPlace","geometry","fitBounds","setZoom","setVisible","tinymceremove","tinymcecontrol","skin","content_css","image_title","automatic_uploads","file_picker_types","file_picker_callback","none$2","range$1","flatten$1","bind$2","get$d","detect$5","endsWith","detect$3","fromDom$1","get$c","validSectionList","rowdetail","elementnew","isNew","isLocked","rowcells","type$1","isTag","children$3","child$3","getBody$1","ancestors$3","ancestors$4","children$2","all$1","ancestor$1","child$2","set$2","get$b","someIf","getRaw$2","internalRemove","getAttrValue","fallback","hasColspan","cellOrCol","hasRowspan","getCssValue","minHeight","firstLayer","filterFirstLayer","tags","cells$1","columns$1","columnGroups","columnGroup","rows$1","fromRowsOrColGroups","column","getParentSection","isValidSection","fromTable$1","addCells","gridRow","existingCells","newCells","setCells","addCell","mutateCell","getCell","getCellElement","cellLength","extractGridDetails","grid","cols","cloneRow","cloneCell","LOCKED_COL_ATTR","getLockedColumnsFromTable","lockedColStr","lockedCols","getLockedColumnsFromGrid","lockedArr","_val","filterItems","warehouse","generate$1","lockedColumns","rowData","maxRows","maxColumns","rowCount","colgroupRows","currentRow","rowCell","extended","occupiedColumnPosition","occupiedRowPosition","columnPosition","newpos","columns","columnsGroup","columnIndex","colIndex","columnext","generateColumns","colgroup$1","colgroups","grid$1","Warehouse","fromTable","getAt","findItem","justCells","justColumns","hasColumns","getColumnAt","inSelection","leftEdge","rightEdge","topEdge","bottomEdge","finishCol","startCol","finishRow","startRow","isWithin","getAnyBox","finishCell","startCoords","finishCoords","fc","detailA","detailB","getBox$1","isRect","detailIsWithin","isRectangular","intercepts$1","parentCell","innerCell","c2","moveBy","deltaRow","deltaColumn","moveBy$1","getWarehouse","intercepts","nestedIntercepts","firstTable","lastTable","optStartCell","optLastCell","after$5","firstChild$1","after$4","api$2","TagBoundaries","DomUniverse","up","copyTo","afterAll","appendAll","comparePosition","getLanguage","isEmptyTag","isNonEditable","decimalDigits","exponentPart","unsignedDecimalLiteral","unsafeOne","universe","look","commonElement","sharedOne$1","ancestors$1","ps1","ps2","ind","pruned1","pruned2","shared","firstpath","secondpath","universe$3","sharedOne","_universe","lookupTable","getIsRoot","rootTable","finishTable","ancestorCells","lca","lcaTable","finishAncestorCells","startAncestorCells","retrieve$1","sels","getEdges","firstSelectedSelector","lastSelectedSelector","shiftSelection","getLast","identified","expandTo","retrieve","retrieveBox","edges","sectionSelector","firstAncestor","lastAncestor","fA","lA","getBox","cata$2","onNone","onMultiple","onSingle","none$1","global$3","shallowAs","needManualCalc","toNumber","px","getBoxSizing","calcContentBoxSize","upper","lower","getCalculatedWidth","getOuter$2","getRuntime$1","isValidCell","rowsArr","decide","getFallback","deduce","aa","extras","onDirection","isLtr","getDirection","getOuter$1","getRuntime","getCalculatedHeight","rowInfo","colInfo","rtlEdge","ltrEdge","getLeftEdge","getRightEdge","getTop$1","getTopEdge","getBottomEdge","findPositions","getInnerEdge","getOuterEdge","cellOption","lastLine","optElements","ltr$1","rtl$1","unsupportedLength","dot","accepted","unitRaw","isUnit","rPercentageBasedSizeRegex","rPixelBasedSizeRegex","isCol$2","getPercentSize","outerGetter","innerGetter","relativeParent","setPixelWidth","setPercentageWidth","setHeight","normalizePixelSize","getTotalHeight","getHeightValue","getRaw$1","getRawWidth$1","getPercentageWidth","getPixelWidth$1","setGenericWidth","getPercentTableWidth","percentageBasedSizeRegex","isCol$1","getRawW","getRawH","getDimension","cellOpt","backups","getWidthFrom","columnCells","justCols","colFilter","supportsColWidths","isValidColumn","getDeduced","deduced","getPixelWidths","tableSize","minCellWidth","getHeightFrom","widthLookup","noneSize","zero","getWidths","getCellDelta","singleColumnWidth","setElementWidth","adjustTableWidth","isRelative","percentageSize","getFloatWidth","cellWidth","getPercentageWidths","_delta","currentWidth","TableSize","chooseSize","makeCell","seenSelected","rowIndex","extract$1","selectedSelector","isSelected","replica","replicaHouse","replicaStats","house","totalColumns","minRow","minCol","maxRow","maxCol","allCells","endRow","endCol","statsStruct","findSelectedStats","unselectedCells","stats","totalRows","fillInGaps","widthDelta","colWidths","allColsWidth","selectedColsWidth","getTableWidthDelta","emptyRows","elementsWithCursorPosition","isCursorPosition","child_1","descendantRtl","transferableAttributes","createCell","createCol","createColgroup","createRow$1","replace$1","cloneChildren","copy$1","pasteReplace","cellOperations","mutate","formatsToClone","cloneCss","sourceDom","targetDom","oldCell","newCell","firstText","formatSelector","clonedFormat","cloneFormats","validAttributes","attribute","cloneAppropriateAttributes","colGap","gap","paste$1","getPixelWidth","getPixelHeight","addPxSuffix","removeDataStyle","removeStyleAttribute","getSelectionStart","selections","unmergable","hasSpan","mergable","ephemera","strSelected","strFirstSelected","strLastSelected","firstSelected","lastSelected","forMenu","getSelectionFromSelector","initCell","cellName","getSelectionCellOrCaption","getSelectionCell","getCellsFromSelection","extractSelected","serializeElements","generators","pasteCells","adt$7","only","ColumnContext","determine","neighbours","calcLeftEdgeDeltas","calcMiddleDeltas","calcRightEdgeDeltas","measures","recalculateHeightForCells","recalculate","recalculateWidthForColumns","recalculateWidthForCells","recalculateAndApply","newSizes","adjustWidth","resizing","isLastColumn","clampedStep","clampTableDelta","deltas","newWidths","dx","resizeTable","adjustHeight","getPixelHeights","newHeights","dy","newCellSizes","newRowSizes","matchRowHeight","surround","clampDeltaHelper","minCellSize","clampNegativeDelta","clampDelta","calcRelativeDeltas","newThis","clampedDelta","calcFixedDeltas","_prev","calcRedestributedWidths","pixelDelta","ratio_1","preserveTable","maxDelta","_minCellSize","_totalWidth","_pixelDelta","_isRelative","ResizeWire","adt$6","validateFor","rawAmount","Size","redistributeValues","newWidthType","newTotalWidth","pc","redistributeToPx","_pc","redistributeToPercent","redistribute$1","newType","floats","redistributeEmpty","scan","remainder","floored","roundDown","getUnit","redistribute","optWidth","optHeight","widthUnit","oldWidths","getRawWidths","nuWidths","redistributeToColumns","redistributeToW","hUnit","oldHeights","getRawHeights","redistributeToH","isPercentSizing","isPixelSizing","isNoneSizing","getGridSize","fields","typeDefs","baseWith","handleUnsupported","sorted","validateStrArr","reqMessage","invalidKeys","incorrect","invalidTypeMessage","handleExact","unsupported","unsuppMessage","exactly","DragMode","DragSink","DragApi","InDrag","onEvent","extract","Movement","noDragState","inDragState","dragState","isOn","sink","throttledDrop","runIfActive","forceDrop","delayDrop","go","fromRawEvent$1","rawEvent","prevent","kill","mkEvent","useCapture","handle$2","bind$1","fromRawEvent","dashNamespace","MouseDrag","dragApi","blocker","layerClass","Blocker","mdown","mup","mmove","mout","assumeEditable","BarMutation","drag","Mutation","xDelta","yDelta","resizeBar","resizeRowBar","resizeColBar","wire","drawBar","cpOption","cp","refreshCol","colPositions","tableHeight","colBar","refreshRow","rowPositions","tableWidth","rowBar","refreshGrid","warhouse","resizableRowBars","resizableRows","resizableRowPositions","_pos","barIndex","resizableColBars","resizableCols","colElmOpt","resizableColumns","resizableColPositions","bars","resizeBarDragging","BarManager","transform$1","hoverTable","getResizer","_dataRow","_dataCol","currentCol","getDelta","startAdjust","mousedown","isColBar","mouseover","tbl","hideBars","showBars","TableResize","lazySizing","hdirection","vdirection","manager","beforeResize","afterResize","_event","fireNewRow","fireNewCell","fireTableModified","styleModified","structureModified","styleAndStructureModified","defaultStyles","defaultCellBorderWidths","defaultCellBorderStyles","defaultAttributes","defaultColumnResizingBehaviour","getTableSizingMode","getTableResponseWidth","getTableBorderWidths","getTableBorderStyles","getDefaultAttributes","getDefaultStyles","isPixelsForced","contentWidth","isResponsiveForced","determineDefaultStyles","hasAdvancedCellTab","hasAdvancedRowTab","hasAdvancedTableTab","shouldStyleWithCss","getCellClassList","getTableClassList","isPercentagesForced","useColumnGroup","getTableHeaderType","getColumnResizingBehaviour","givenMode","isPreserveTableColumnResizing","isResizeTableColumnResizing","getCloneElements","cloneElements","getTableBackgroundColorMap","getTableBorderColorMap","cleanupLegacyAttributes","enforcePercentage","enforcePixels","getPixelTableWidth","enforceNone","rowElements","createContainer","barResizerPrefix","getResizeHandler","startRawW","lazyResize","lazyResizingBehaviour","afterCornerResize","isRightEdgeResize","getNumColumns","isPercentage$1","percentW","isPixel","computedWidth","syncPixels","rawWire","get$3","objectResizing","hasObjectResizing","hasTableResizeBars","sz","rawTable","getRawWidth","origin_1","lazyWire","scan$1","toEnd","freefallRtl$1","freefallRtl$2","universe$2","halve","getGenericWidth","isHeaderCell","isHeaderCells","getRowHeaderType","isHeaderRow","getRowType$1","findCommonCellType","subType","headerCells","transformCell","substitution","_transformRow","transformRow","fixedCell","mutate$1","sectionCells","TableSection","rowType","findTableRowHeaderType","setIfNot","render$1","syncRows","gridSection","syncColGroup","colGroup","renderSection","sectionName","newSection","generateSection","sectionElems","renderOrRemoveSection","removeSection","headSection","bodySection","footSection","columnGroupsSection","findDiff","comp","subgrid","getRow","isColRow","getColumn","toDetails","seen","updateSeen","rowdetailnew","toGrid","colgroupCols","rowCells","rowDetail","toDetailList","findInWarehouse","extractCells","cell$1","lc","operation","adjustment","postAction","genWrappers","behaviours","tableSection","fromWarehouse","newElements","tableSizing","sizing","onPasteByEditor","onCells","onUnlockedCells","allUnlocked","isUnlockedTableCell","onUnlockedMergable","_warehouse","onMergable","mergeable","onUnlockedUnmergable","onUnmergable","unmerge","currentCell","isToReplace","splitRows","uniqueCells","measureWidth","gridA","gridB","rowDelta","colDelta","measureHeight","generateElements","rowFill","exampleRow","colFill","newChildren","tailor","fillCols","fillRows","gridWidth","isLastColLocked","modifiedCols","newLockedColumns","isSpanning","matching","getLockedColumnsWithinBounds","startAddress","colNum","merge$1","validStartAddress","currentStartAddress","gridColLength","adjustedRowAddress","possibleColAddresses","validColAddress","getValidStartAddress","gridBRows","lockedColumnsWithinBounds","rowRemainder","colRemainder","colRequired","rowRequired","fittedGrid","newLockedColumnsWithinBounds","lockedColumnObj","skippedCol","gridBColIndex","newCellElm","mergeTables","insertCols","prevCell","splitCols","fittedNewGrid","secondDelta","fittedOldGrid","insertRows","oldCols","oldRows","newLocked","secondDiff","fittedGridB","newChild","lockedColFill","insertRowAt","example","newRow","insertColumnAt","withinSpan","getElementFor","isDuplicatedCell","notInStartRow","notInStartColumn","determineScope","applyScope","newScope","isInHeader","getScope","substitute","replaceIn","replacer","genScope","shouldReplace","mapCells","newCell_1","getColumnCells","replaceColumns","indexes","rowHeaders","shouldReplaceCell","targetColumn","_colIndex","columnReplacePredicate","scopeGenerator","columnScopeGenerator","replaceRows","targetRow","getRowCells","columnHeaders","_cell","newGrid","_rowIndex","rowReplacerPredicate","rowScopeGenerator","replaceCells","targetCells","uniqueColumns","currentDetail","isCol","isColgroup","isRow$1","elementToData","getScopeAttribute","Generators","toData","nuCell","recent","getOrInit","makeNew","replaceOrInit","stringAttributes","baseScope_1","scopes_1","getScopeProperty","universe$1","isList$1","isEmptyTag$1","markCell","rightSiblingIsBlock","rightSibling","advancedBr","isEditable","outcome","elementFromGrid","findEditableCursorPosition","bundle","cursorElement","uniqueRows","makeRowsSection","initialGrid","rowIndexes","opMakeRowsHeader","opMakeRowsBody","opMakeRowsFooter","gridifyRows","pasteDetails","fromPastedRows","_info","adjustWidthTo","adjustAndRedistributeWidths","resizeBehaviour","tablePixelWidth","adjustAndRedistributeWidths$1","firstColumnIsLocked","lastColumnIsLocked","getColumnsWidth","uniqueCols","insertColumnsExtractor","pasteColumnsExtractor","headerCellGenerator","bodyCellGenerator","insertRowsBefore","insertRowsAfter","newG","insertColumnsBefore","extractDetail","insertColumnsAfter","eraseColumns","_comparator","_genWrappers","deleteColumnsAt","maxColIndex","eraseRows","deleteRowsAt","maxRowIndex","makeColumnsHeader","columnIndexes","unmakeColumnsHeader","makeRowsHeader","makeRowsBody","makeRowsFooter","makeCellsHeader","unmakeCellsHeader","mergeCells","merge$2","unmergeCells","gridify","address","pasteColsBefore","mergedGrid","pasteColsAfter","pasteRowsBefore","pasteRowsAfter","getColumnsType","lastSelectedCell","minColRange","maxColRange","selectedColumnCells","getCellsType","getRowsType","minRowRange","maxRowRange","rowTypes","hasHeader","hasFooter","hasBody","findCommonRowType","TableActions","cellSelection","isTableBody","colMutationOp","getTableSectionType","setSelectionFromAction","des","guard","effect","noEvents","deleteRow","deleteColumn","getTableRowType","getTableCellType","getTableColType","DefaultRenderOptions","colGroups","createGroupRow","createRows","createRow","placeCaretInCell","colHeaders","headerType","renderOpts","rowHeadersGoInThead","actualRowHeaders","theadRows","tbodyRows","isPercentage","fireEvents","selectFirstCellInTable","insertTableWithDataValidation","errorMsg","checkInput","headerRows","headerColumns","getClipboardElements","getClipboard","setClipboardElements","setClipboard","elmsOpt","insertTable","constrainSpan","currentColspan","copyCols","fakeColGroups","colsToCopy","copiedCols","clonedCol","fakeColgroup","generateColGroup","fakeRows","cellsToCopy","copiedCells","clonedCell","fakeTR","generateRows","copyRows","slicedGrid","filteredGrid","slicedDetails","global$2","getTDTHOverallStyle","firstChildStyle","checkChildren","applyAlign","unApplyAlign","verticalAlignValues","shorthandRegex","longformRegex","normalizeHex","fromString$1","isHexString","component","fromRgba","rgbaColour","hexColour","rgbRegex","rgbaRegex","fromStringValues","anyToHex","rgbMatch","rgbaMatch","canvasContext","getImageData","onSetupToggle","boundCallback","checkNode","isListGroup","buildListItems","menu","buildMenuItems","_onAction","getSubmenuItems","onAction","onSetup","applyTableCellStyle","filterNoneItem","generateMenuItemsCallback","buildColorMenu","colorList","colorMap","entry","fancytype","allowCustomColors","changeRowHeader","changeColumnHeader","getItems$2","getClassList$1","getAdvancedTab","advTabItems","testTruthy","setFormat","DomModifier","normal","ifTruthy","rgbToHex","extractAdvancedStyles","borderwidth","borderstyle","bordercolor","backgroundcolor","getSharedValues","baseData","comparisonData","itemValue","itemKey","comparisonValue","getAlignment","getHAlignment","getVAlignment","getRowType","cellA","cellB","applyStyleData$1","isSingleCell","cellElm","colModifier","updateSimpleProps$1","updateAdvancedProps$1","unApplyVAlign","halign","valign","applyVAlign","onSubmitCellForm","oldData","modifiedData","celltype","applyStructureData$1","applyCellData","cellsData","colElm","extractDataFromCellElement","open$2","dialogTabPanel","tabs","dialogPanel","initialData","onSubmit","formChildren","getItems$1","getRowClassList","getClassList","applyStyleData","isSingleRow","rowElm","updateSimpleProps","updateAdvancedProps","onSubmitRowForm","typeModified_1","styleModified_1","applyStructureData","applyRowData","open$1","rowsOpt","rowsData","extractDataFromRowElement","getItems","insertNewTable","rowColCountItems","inputMode","appearanceItems","hasAppearanceOptions","classListItem","styleTDTH","onSubmitTableForm","removePxSuffix","cellspacing","cellpadding","applyDataToElement","captionElm","captionModified","hasAdvTableTab","advStyle","extractDataFromSettings","optBorderWidth","getBorder","extractDataFromTableElement","generalPanel","dialogBody","getSelectionStartCellOrCaption","registerCommands","getTableFromCell","performActionOnSelection","getSelectionStartCell","postExecute","actOnSelection","copyRowSelection","copyColSelection","pasteOnSelection","getRows","clonedRows","pasteRows","actOnType","mceTableSplitCells","mceTableMergeCells","mceTableInsertRowBefore","mceTableInsertRowAfter","mceTableInsertColBefore","mceTableInsertColAfter","mceTableDeleteCol","mceTableDeleteRow","mceTableCutCol","setColumns","mceTableCutRow","setRows","mceTableCopyCol","mceTableCopyRow","mceTablePasteColBefore","getColumns","mceTablePasteColAfter","mceTablePasteRowBefore","mceTablePasteRowAfter","mceTableDelete","cellOrCaption","mceTableCellToggleClass","allHaveClass","formatterAction","mceTableToggleClass","mceTableToggleCaption","appendAt","mceTableSizingMode","setSizingMode","mceTableCellType","mceTableColType","mceTableRowType","mceTableProps","mceTableRowProps","mceTableCellProps","getFormatName","validArgs","genericBase","cellBase","cellFormats","tablecellbackgroundcolor","tablecellverticalalign","tablecellbordercolor","tablecellclass","tableclass","tablecellborderstyle","borderStyle","tablecellborderwidth","adt$5","CellLocation","isEligible","newIndex","detect$1","adt$4","cata","onBefore","onOn","onAfter","adt$3","selectNodeContentsUsing","relativeToNative","finishSitu","setFinish","exactToNative","toRect","adt$2","ltr","fromRange","diagnose","rev","doDiagnose","asLtrRange","inRect","locateOffset","textnode","rangeForOffset","rectForOffset","curDeltaX","searchForPoint","searchInChildren","locateNode","locate$1","getCollapseDirection","createCollapsedNode","collapseDirection","locateInElement","cursorRange","locateInEmpty","searchTextNodes","boundedX","boundedY","locate","searchFromPoint","availableSearch","beforeSpecial","name$1","preprocessRelative","preprocessExact","makeRange","same","getNativeSelection","doSetNativeRange","doSetRange","setRangeFromRelative","setLegacyRtlRange","setExact","setRelative","toNative","getDomRange","preprocess","firstRng","doGetExact","focus_1","setToElement","selectNodeContents$1","getExact","getFirstRect","getFirstRect$1","getAtPoint","global$1","go$1","backward","getCellFirstCursorPosition","rootElements","Response","Situs","convertToRange","makeSitus","selectRange","cellSel","backtrack","_direction","sidestep","successors","rules","succ","Walkers","hone","isLeaf","seekLeft$1","seekRight$1","before$1","after$1","failedUp","failedDown","isRow","BeforeAfter","verify","beforeOffset","afterOffset","afterCell","beforeCell","beforeBounds","afterBounds","isOverlapping","_sharedRow","onSuccess","onFailedUp","onFailedDown","gatherer","cand","gather","handleParent","inParent","indexInParent","tryBr","handleBr","tgt","moveDown","moveUp","toCaret","getElemBox","getBoxAt","getRangedRect","getPartialBox","getEntireBox","retry","inOutsideBlock","isOutside","downMovement","adjuster","guessBox","lowerCaret","adjustForTable","numRetries","adjustTil","isAtTable","situsFromPoint","guess","newCaret","moved","getInnerHeight","checkScroll","scrollBy","Retries","tryUp","higherCaret","tryDown","ieTryUp","ieTryDown","getJumpSize","findSpot","brNeighbour","fromSitus","analysis","_message","tryCursor","situs","tryAgain","tryAt","otherRetry","ieRetry","spot","inSameTable","precheck","firstUpCheck","seekLeft","lastOffset","lastDownCheck","seekRight","findCell","isKey","keycode","isUp","isDown","isNavigation","isBackward","WindowBridge","exactAdt","collapseSelection","setRelativeSelection","selectContents","getScrollY","by","mouse","clearstate","applySelection","clearBeforeUpdate","singleCell","isNonEditableCell","isCellClosestContentEditable","mouseup","MouseSelection","clearToNavigate","realEvent","update$1","attempts","newSels","keyup","SelectionAnnotation","onSelection","onClear","removeSelectionAttributes","addSelectionAttribute","getOtherCells","upOrLeftCells","upGrid","upDetails","slicedCells","getUpOrLeftCells","downOrRightCells","downGrid","downDetails","getDownOrRightCells","hasInternalTarget","CellSelection","selectionTargets","otherCells","fireTableSelectionChange","fireTableSelectionClear","mouseHandlers","keyHandlers","external$1","external","lastTarget","lastTimeStamp","handleResponse","isLeftMouse","doubleTap","touchEnd","lT","lTS","wrappedEvent","getSelectionTargets","changeHandlers","isCaption","isDisabledForSelection","getSelectionEnd","startCellOrCaption","oot","noMenu","getExtractedDetails","onAny","onFirst","onLast","unmergeable","resetTargets","setupHandler","setDisabled","onSetupWithToggle","isDisabledFromLocked","lockedDisable","onSetupTableHeaders","onSetupTableRowHeaders","onSetupTableColumnHeaders","onSetupTable","onSetupCellOrRow","onSetupColumn","onSetupPasteable","getClipboardData","onSetupPasteableColumn","onSetupMergeable","onSetupUnmergeable","onSetupTableWithCaption","lazyRoot","Selections","resizeHandler","clearRows","clearColumns","Clipboard","lookupOnSelection","registerQueryCommands","insertTableAction","numRows","numColumns","tableProperties","deleteTable","hasTableGrid","tableClassList","tableCellClassList","addMenuItems","addButtons","getToolbar","addToolbars","registerFormats","hasTabNavigation","isRoot_1","handle$1","setClipboardRows","getClipboardRows","setClipboardCols","getClipboardCols","getApi","global$7","global$6","global$5","global$4","matchNodeName","isTextNode","isListNode","isOlUlNode","isOlNode","isListItemNode","isDlItemNode","isTableCellNode","keepBookmarks","isChildOfBody","contentNode","hasContentNode","isDescriptionDetail","isDescriptionTerm","outdentDlItem","dl","bookmarks","splitList","indentDlItem","getNormalizedPoint","outRng","rangeStart","rangeEnd","getParentList","selectionStart","getClosestListRootElm","getSelectedSubLists","parentList","isParentListSelected","findSubLists","getSelectedListItems","listItemsElms","findParentListItemsNodes","parentTableCell","findLastParentListNode","parentLists","getSelectedListRoots","selectedLists","firstList","subsequentLists","getSelectedLists","getUniqueListRoots","lists","listRoots","fireListEvent","joinSegment","createSegment","listType","segment","writeShallow","cast","newCast","createItem","itemAttributes","appendItem","listAttributes","normalizeSegment","writeDeep","segments","createSegments","joinSegments","populateSegments","hasFirstChildList","isIndented","cloneItemContent","normalizeEntries","entries","dirty","closestSiblingEntry","cleanListProperties","matchingEntry","parseItem","itemSelection","selectionState","currentItemEntry","childListEntries","parseList","outdentedComposer","normalizedEntries","indentedComposer","composeList","listIndentation","entrySets","sourceList","parseLists","selectedListItems","getItemSelection","entrySet","indentEntry","indentSelectedEntries","composedLists","wasType","groupBy","composeEntries","composedList","selectionIndentation","dlItems","getSelectedDlItems","isHandled","dlIndentation","indentListSelection","outdentListSelection","flattenListSelection","createBookmark","setupEndPoint","resolveBookmark","listToggleActionFromListName","listName","isCustomList","listState","nodeChangeHandler","inList","updateListWithDetails","updateListStyle","updateListAttrs","getEndPointNode","applyList","listItemName","selectedTextBlocks","textBlocks","getSelectedTextBlocks","listBlock","sib","sibStyle","detailStyle","hasCompatibleStyle","removeStyles","mergeWithAdjacentLists","shouldMerge","list1","list2","isValidLists","hasSameListStyle","elm2","toggleMultipleLists","parentIsList","hasListStyleDetail","allLists","updateList$1","_detail","selectedSubLists","toggleSingleList","normalizeLists","normalizeList","findNextCaretContainer","nonEmptyBlocks","isBogusBr","hasOnlyOneBlockChild","moveChildren","fromElm","toElm","unwrapSingleBlockChild","mergeLiElements","listNode","nestedLists","mergeForward","fromLi","toLi","mergeIntoEmptyLi","backspaceDeleteFromListToListCaret","selectionStartElm","rng_1","otherLi_1","resolvedBookmark","mergeBackward","otherLi_2","removeBlock","backspaceDeleteIntoListCaret","_backspaceDelete","parseAlphabeticBase26","charValue","composeAlphabeticBase26","currentList","listStyleType","isLowercase","deduceListType","parseStartValue","queryListCommandState","registerDialog","updateList","shouldIndentOnTab","setupTabKey","listProperties","hasDimensions","parseIntAndGetMax","val1","removePixelSuffix","addPixelSuffix","mergeMargins","splitMargin","isPlaceholderImage","isSafeImageUrl","getHspace","getVspace","hasCaption","updateAttrib","toggleCaption","figureElm","removeFigure","wrapInFigure","normalizeStyle","normalizeCss","setSize","setHspace","pxValue","setVspace","setBorder","setBorderStyle","isFigure","getIsDecorative","getAlt","getStyleValue","hspace","vspace","getBorderStyle","isDecorative","updateProp","newData","setAlt","sugarImage","updateAlt","normalizeCss$1","mergedCss","compressed","getSelectedImage","splitTextBlock","figure","insertImageAtCaret","insertedElm","writeImageDataToSelection","syncSrcAttr","selectImage","waitLoadImage","insertOrUpdateImage","partialData","selectedImageData","sanitizedData","sanitizeImageData","deleteImage","sanitizeList","extractValue","sanitizer","extractor","findEntryDelegate","isGroup","ListUtils","optList","AdvTab","urlListSanitizer","futureImageList","imageList","getImageList","createImageList","hasAdvTab$1","hasAdvTab","hasUploadTab$1","hasUploadTab","hasUploadUrl$1","hasUploadUrl","hasUploadHandler$1","hasUploadHandler","readImageDataFromSelection","hasDescription$1","hasDescription","hasImageTitle$1","hasImageTitle","hasDimensions$1","hasImageCaption$1","hasImageCaption","hasAccessibilityOptions","showAccessibilityOptions","automaticUploads","prependURL","getPrependUrl","preUrl","makeItems","useColumns","imageDescription","filetype","MainTab","UploadTab","fromImageData","dimensions","fileinput","toImageData","removeEmptyAlt","addPrependUrl","srcURL","prependUrl","addPrependUrl2","formFillFromMeta","formFillFromMeta2","changeSrc","imageSize","calculateImageSize","prevImage","updateImagesDropdown","changeStyle2","dataCopy","calcVSpace","calcHSpace","calcBorderWidth","calcBorderStyle","calcStyle","changeFileInput","unblock","finalize","updateSrcAndSwitchTab","showTab","dataUrl","createBlobCache","uploadImage","alertErr","addToBlobCache","prevAlt","changeImages","changeStyle","changeAStyle","closeHandler","makeDialogBody","makeDialog","createState","submitHandler","getImageSize","Dialog","hasImageClass","toggleContentEditableState","toggleContentEditable","buttonApi","create$1","tCanvas","get2dContext","blobToImage$1","blobUrl","anyUriToBlob","dataUriToBlob","mimetype","sliceSize","byteCharacters","bytesLength","slicesCount","byteArrays","sliceIndex","dataUriToBlobSync","canvasToBlob","quality","HTMLCanvasElement","toBlob","revokeImageUrl","imageToBlob$1","imageToBlob$2","getCanvas","initialType","toAdjustedDataURL","canvasToDataURL","toBase64","toAdjustedBlob","toAdjustedBase64","dataurl","toCanvas","fromBlob","blobToCanvas","fromCanvas","ceilWithPrecision","mul","applyRotate","applyFlip","flip$1","ir","flip$2","rotate$1","rotate$2","sendRequest","friendlyHttpErrors","friendlyServiceErrors","traverseJson","handleHttpError","getHttpErrorMsg","getServiceErrorMsg","getServiceError","serviceError","parseJson","handleServiceError","readAsText","readBlobText","requestServiceBlob","apiKey","appendApiKey","isServiceErrorCode","getUrl","requestBlob","blobToImageResult","getToolbarItems","getProxyUrl","isPxValue","getNaturalImageSize","getFigureImg","imgNode","getEditableImage","isLocalImage","isCorsImage","extractFilename","getCorsHosts","defaultFetchImage","getCredentialsHosts","isCorsWithCredentialsImage","proxyUrl","getApiKey","imageToBlob","getFetchImage","customFetchImage","findBlob","cancelTimedUpload","imageUploadTimerState","updateSelectedImage","origBlob","uploadImmediately","selectedImage","useFilename","shouldReuseFilename","imageLoadedHandler","imageUploadTimer","getUploadTimeout","startTimedUpload","selectedImageOperation","imageResult","flippedSize","handleDialogBlob","originalSize","blobToImage","newImage","setImageSize","makeOpen","originalImgOpt","originalSizeOpt","origImg","currentState","imagetools","originalImg","onCancel","lastSelectedImageState","mceImageRotateLeft","mceImageRotateRight","mceImageFlipVertical","mceImageFlipHorizontal","mceEditImage","isEditableImage","lastSelectedImage","global$9","getScripts","hasLiveEmbeds","global$8","getVideoScriptMatch","trimPx","htmlToData","isEphoxEmbed","altsource","poster","getEphoxEmbedData","movie","videoScript","mp3","m4a","wav","mp4","webm","ogg","swf","addPx","updatedAttrs","updateHtml","updateAll","hasImage","sourceCount","updateEphoxEmbed","imgAttrs","urlPatterns","allowFullscreen","protocolMatches","getProtocol","dataToHtml","dataIn","embed","sourcemime","altsourcemime","allowfullscreen","audioTemplateCallback","getAudioTemplateCallback","videoTemplateCallback","getVideoTemplateCallback","getFlashHtml","getAudioHtml","getScriptHtml","getVideoHtml","isMediaElement","loadedData","getEmbedHtml","embedHandler","getUrlResolver","rej","wrappedResolve","embedPromise","defaultPromise","sourceInput","mainData","extractMeta","getFromData","getFromMetaData","getNonEmptyValue","dims","getDimensions","errorMessage","snippetToData","embedSnippet","addEmbedHtml","snippetData","nuData","handleInsert","beforeObjects","afterObjects","prevData","editorData","snippet","getEditorData","currentData","sizeInput","constrain","generalTab","embedTab","advancedFormItems","hasAltSource","hasPoster","advancedTab","serviceData","handleSource","dataFromEmbed","handleEmbed","shouldFilterHtml","isLiveEmbedNode","previewNode","useDefaults","defaultWidth","fallbackHeight","defaultHeight","createPlaceholderNode","placeHolder","retainAttributesAndInnerHtml","createPreviewNode","previewWrapper","frameborder","sanitizedHtml","appendNodeContent","shimNode","sourceNode","innerHtml","isPageEmbedWrapper","nodeClass","isWithinEmbedWrapper","boolAttrs","placeHolderConverter","realElm","realElmName","editorContent","typeOf","isArrayOf","constant$1","identity$1","die","global$g","range$2","chunk$1","partition$3","find$5","bind$3","pure$2","get$f","find$4","get$e","SimpleResultType","name$2","unknown$3","nu$d","nu$c","nu$b","documentPositionContainedBy","owner$4","leaf","getContentContainer","set$8","set$7","api$3","r$1","absolute$3","viewport$1","append$2","prepend$1","bounds$1","getBounds$3","box$1","xy","absolute$2","value$3","error$1","fold$1","stype","serror","svalue","Value","SimpleResult","field$2","newKey","presence","ifField","ifCustom","instantiator","baseMerge","defaultedThunk","fallbackThunk","defaulted$1","mergeWithThunk","baseThunk","mergeErrors$1","ResultCombine","partitions","formatObj","nu$a","getErrorInfo","value$2","validator","anyValue$1","requiredAccess","missingRequired","fallbackAccess","extractField","av","bundleAsOption","optValue","ov","optionAccess","optionDefaultedAccess","valueThunk","getDelegate","getSetKeys","objOfOnly","objOf","fieldNames","unsupportedFields","fields_1","extractFields","fieldStrings","_okey","_presence","_instantiator","arrOf","oneOf","props_1","setOf$1","validatedKeys","validateKeys","vk","arrOfObj","anyValue","typedValue","expectedType","actualType","boolean","functionProcessor","isPostMessageable","every","postMessageable","chooseFrom","branch","missingBranch","choose$2","missingKey","setOf","asRaw","errs","extraction","errInfo","formatError","asRawOrDie$1","es","choose$1","field$1","customField","validateEnum","required$1","requiredOf","requiredNumber","requiredString","requiredStringEnum","requiredFunction","requiredObjOf","objSchema","requiredArrayOfObj","objFields","requiredArrayOf","optionOf","optionNumber","optionString","optionFunction","optionArrayOf","optionObjOf","defaulted","defaultedOf","defaultedNumber","defaultedString","defaultedStringEnum","defaultedBoolean","defaultedFunction","defaultedArrayOf","defaultedObjOf","_a$2","exclude$1","keyvalues","kv","wrapAll$1","objs","partition$1","mergeValues","closest$4","isSource","simulatedEvent","defaultEventHandler","can","nu$9","fuse$1","all$2","any","touchcancel","mousemove","mouseout","focusout","transitioncancel","transitionend","transitionstart","selectstart","prefixName","alloy","tap","focus$4","postBlur","postPaste","receive","execute$5","focusItem","longpress","sandboxClose","typeaheadCancel","systemInit","documentTouchmove","documentTouchend","windowScroll","windowResize","attachedToDom","detachedFromDom","dismissRequested","repositionRequested","focusShifted","slotVisibility","changeTab","dismissTab","highlight$1","dehighlight$1","dispatchWith","emitWith","emitExecute","getSystem","derive$2","configs","run$1","runActionExtra","runOnSourceName","redirectToPart","partName","getByUid","redirectee","redirectToUid","partUids","runWithTarget","getByDom","cutter","stopper","runOnSource","runOnAttached","runOnDetached","runOnInit","runOnExecute$1","runOnName","set$5","getHtml","events$i","originator","isRecursive","DefaultEvents","generate$6","prefix$1","idAttr$1","idAttr","writeOnly","generate$5","make$8","NoContextApi","getComp","getMessage","debugInfo","triggerFocus","triggerEscape","broadcast","broadcastOn","broadcastEvent","addToWorld","removeFromWorld","addToGui","removeFromGui","singleton$1","cleanParameters","parameters","markAsExtraApi","extraName","openBracketIndex","toFunctionAnnotation","premadeTag","premade$1","makeApi","apiFunction","markAsSketchApi","getApis","NoState","nu$8","readState","byInnerKey","indexKey","chain","nu$7","getCurried","descHandler","cHandler","behaviourTuple","groupByEvents","behaviourEvents","behaviour","nameToHandlers","assemble","rawHandler","read$2","fuse","eventOrder","aKey","bKey","aIndex","bIndex","sortKeys","sortedTuples","missingOrderError","combineGroups","byEventName","assembled","purpose","uncurried","baseBehaviour","schema$z","mergeWith","toEvents","add$4","remove$3","set$4","generateFrom","validated","optBlobThunk","generateFrom$1","generate$4","getBehaviours$2","getDomDefinition","bList","bData","defnA","mod","domChildren","components","infoModification","domModification","toModification","baseModification","modification","baseMod","modsByBehaviour","exhibit","byAspect","combineObjects","combinedClasses","combinedAttributes","combinedStyles","combine$2","getEvents","baseEvents","combine$1","build$2","getMe","systemApi","toInfo","bBlob","getBehaviours$3","getData$2","renderToDom","subcomponents","hasConfigured","behaviourName","apis","newApi","syncComponents","subs","buildFromSpec","userSpec","specEvents","build$1","buildSubcomponents","completeSpec","external$2","extSpec","uids","getPremade","userSpecWithUid","isSketchSpec$1","premade","EventConfiguration","ariaId","isAriaPartOf","queryElem","dependent","isPartOf$1","eventConfig","processEvent","initialTarget","NORMAL","noLogger","LOGGING","logger","sequence","logEventCut","logEventStopped","logNoParent","logEventNoHandlers","logEventResponse","finishTime","makeEventLogger","STOP","monitorEvent","menuFields","itemFields","itemSchema$3","_initSize","tieredMenuMarkers","markers$1","onPresenceHandler","getTrace","onHandler","onKeyboardHandler","onStrictHandler","onStrictKeyboardHandler","output$1","initSize","nu$6","boundsRestriction","labelPrefix","alwaysFit","restriction","adt$a","southeast","southwest","northeast","northwest","south","north","east","west","southeast$3","southwest$3","northeast$3","northwest$3","south$3","north$3","east$3","west$3","cycleBy","restrictions","getRestriction","labelPrefix$2","eastX$1","middleX$1","westX$1","northY$2","southY$2","centreY$1","southeast$2","southwest$2","northeast$2","northwest$2","north$2","south$2","east$2","eastEdgeX$1","west$2","westEdgeX$1","allRtl$1","aboveOrBelow","aboveOrBelowRtl","belowOrAbove","belowOrAboveRtl","ActiveReceiving","receiveConfig","channelMap","receivingData","targetChannels","universal","chooseChannels","channelInfo","channelSchema","onReceive","ReceivingSchema","loadEvent","bConfig","bState","_simulatedEvent","wrapApi","bName","apiName","markAsBehaviourApi","revokeBehaviour","doCreate","configSchema","schemaSchema","getConfig","wrappedApis","apiF","wrappedExtra","extraF","prepared","configAsRaw","initialConfig","behaviourInfo","exhibitor","derive$1","capabilities","simpleSchema","create$7","modeSchema","createModes","createModes$1","branchKey","Receiving","ActivePosition","posConfig","useFixed","focus$3","preserve$1","refocus","oldFocus","newFocus","NuPositionCss","toPx","applyPositionCss","toOptions","adt$9","positionWithDirection","posName","decision","decisionRect","decisionX","decisionY","decisionRight","decisionBottom","toBox","translate$2","outerScroll","AttributeValue","relative$1","fixed$1","anchorBox","placementAttribute","getPlacement","adt$8","nofit","attempt","bubbleOffset","adjustedBounds","applyRestriction","isVerticalAxis","adjustedLeft","adjustedTop","adjustedRight","adjustedBottom","adjustBounds","newX","newY","boundsX","boundsY","boundsRight","boundsBottom","originInBounds","sizeInBounds","visibleW","visibleH","determinePosition","fits","fittedBox","restrictedX","restrictedY","restrictedWidth","restrictedHeight","calcReposition","isPartlyVisible","upAvailable","downAvailable","cataVertical","westAvailable","eastAvailable","cataHorizontal","calcMaxSizes","classesOn","classesOff","testY","destroyable","unbindable","capture$1","timerAttr","isTransitioning$1","hasAll","hasChanges","intermediate","setupTransitionListeners","transitionEnd","transitionCancel","isSourceTransition","pseudoElement","propertyName","transitionDone","transitionStarted","transitionStart_1","getTransitionDuration","applyTransitionCss","lastPlacement","shouldTransition","placer","shouldApplyTransitionCss","intermediatePosition_1","intermediateCssOptions","timerId","startTransitioning","elementBox","panelWidth","panelHeight","attemptBestFit","attemptLayout","newReposition","newVisibleW","newVisibleH","newIsVisible","abc","bestNext","preference","setPlacement","setPlacement$1","setMaxHeight","absMax","setMax$1","anchored","available","expandable$1","defaultOr","dephault","positionCss","position$2","classInfo","setClasses","maxHeightFunction","maxWidthFunction","allAlignments","nu$5","insetModifier","insetXOffset","insetYOffset","getClasses","alignmentsOn","alignmentsOff","insetNortheast","insetNorthwest","insetNorth","insetSoutheast","insetSouthwest","insetSouth","insetEast","insetWest","Attribute","isBottomToTopDir","BottomToTop","schema$y","defaultLtr","defaultRtl","defaultBottomLtr","defaultBottomRtl","dirElement","isBottomToTop","customLtr","ls","onLtr","customRtl","onRtl","onBottomLtr","onBottomRtl","HotspotAnchor","anchorInfo","hotspot","overrides","MakeshiftAnchor","screen","sumAsAbsolute","absolute$1","getRootPoint","frameOwner","compOwner","pointed","calcNewAnchor","optBox","rootPoint","onRelative","onFixed","topLeft","sumAsFixed","layoutsLtr","showAbove","layoutsRtl","NodeAnchor","nodeBox","FocusInsideModes","hasCursorPosition","all$3","getBounds$1","getBounds$2","point$1","descendOnce$1","descendOnce","getAnchorSelection","modStart","modFinish","SelectionAnchor","selectionBox","optRect","rawRect","labelPrefix$1","eastX","westX","northY$1","southY$1","southeast$1","southwest$1","northeast$1","northwest$1","allRtl","SubmenuAnchor","submenuInfo","AnchorSchema","submenu","makeshift","TransitionSchema","PositionSchema","PlacementSchema","anchoring","placee","lastPlace","overrideOptions","positionWithin","posState","placementSpec","boxElement","boundsBox","positionWithinBounds","placeeDetail","anchorage","placeeState","oldVisibility","getRelativeOrigin","newState","doPlace","vis","PositionApis","getMode","pConfig","_pState","reset$2","PositioningState","Positioning","fireDetaching","fireAttaching","attach$1","replaceChildren","childComp","detachChildren$1","deleted","attach","attachWith","insertion","doDetach","parent$1","detachChildren","attachSystem","guiSystem","attachSystemWith","inserter","detachSystem","rebuild","sandbox","sConfig","sState","getAttachPoint","built","close$1","isOpen$1","_sandbox","_sConfig","cloak","_sState","cssKey","cloakVisibilityAttr","decloak","hasPosition","SandboxApis","openWhileCloaked","transaction","isPartOf","ActiveSandbox","sandboxConfig","sandboxState","SandboxSchema","SandboxState","Sandboxing","dismissPopups","repositionPopups","mouseReleased","schema$x","receivingChannel$1","rawSpec","isExtraPart","fireEventInstead","fe","schema$w","receivingChannel","doReposition","onLoad$5","repConfig","repState","onUnload$2","onUnload","RepresentApis","ActiveRepresenting","resetOnDom","_se","memory$1","isNotSet","dataByValue","dataByText","itemString","currentDataByValue","currentDataByText","newDataByValue","newDataByText","RepresentState","manual","setValue$2","onSetValue","DatasetStore","getDataKey","getFallbackEntry","ManualStore","_repState","MemoryStore","initVal","RepresentSchema","Representing","setValueFrom","forbidden","_v","dump","augment","SketchBehaviours","_placeholder","isSubstituted","compSpec","placeholders","uiType","newSpec","subPlaceholder","childSpecs","substituted","valuesThunk","preprocessor","substituteAll","substitutePlaces","ph","replacements","used","single$2","fFactory","sketch","fSchema","fName","fPname","typeSpec","fGroupSchema","fDefaults","fOverrides","requiredSpec","externalSpec","optionalSpec","groupSpec","asNamedPart","adtConstructor","partSchema","PartType","asCommon","combine","partSpec","partValidated","generate$3","np","doGenerateOne","pname","generateOne$1","schemas","substitutes","internals","externals","_partSpec","_partValidated","components$1","getPart","partKey","getPartOrDie","getParts","partKeys","system","pk","getAllParts","pUid","_k","getAllPartNames","getPartsOrDie","defaultUids","baseUid","partTypes","partNames","pn","defaultUidsSchema","AlloyParts","generateOne","asRawOrDie","partSchemas","partUidsSchemas","baseS","composite$1","specWithUid","supplyUid","partUidsSchema","hasUid","singleSchema","compositeSchema","rawConfig","extraApis","configFields","single$1","composite","partFields","ComposeApis","composeConfig","_composeState","ComposeSchema","Composing","nativeDisabled","onLoad$1","disableConfig","disableState","disable$1","enable$1","nativeDisable","nativeEnable","ariaDisable","ariaEnable","_disableState","disableClass","onDisabled","onEnabled","nativeIsDisabled","ariaIsDisabled","DisableApis","ActiveDisable","DisableSchema","Disabling","dehighlightAllExcept","hConfig","hState","highlighted","highlightClass","skipComp","onDehighlight","highlight","isHighlighted","onHighlight","queryTarget","getByIndex","itemClass","getFirst","_hState","getDelta$2","getCandidates","HighlightApis","dehighlightAll","dehighlight","highlightFirst","firstComp","highlightLast","lastComp","highlightAt","highlightBy","getHighlighted","getPrevious","HighlightSchema","Highlighting","ESCAPE","SPACE","cyclePrev","tryPrev","cycleNext","tryNext","inSet","preds","isShift","isControl","isNotShift","classification","reportFocusShifting","prevFocus","dom$2","focusee","highlights","initialState","typical","infoSchema","stateInit","getKeydownRules","getKeyupRules","optFocusIn","processKey","getRules","keyingConfig","keyingState","transitions","onFocusHandler","focusInside","OnFocusMode","focusIn","keyboardEvents","isEnterOrSpace","OnEnterOrSpaceMode","tryGoInsideComponent","create$5","cyclicField","tabbingConfig","visibilitySelector","_tabbingState","tabstops","visibles","firstTabstop","findInitial","focusManager","goFromTabstop","stopIndex","useTabstopAt","isTabstop","cyclic","findCurrent","tabstop","onEscape","onEnter","AcyclicType","CyclicType","defaultExecute","doDefaultExecute","stopEventForFirefox","_component","schema$v","execute$4","executeConfig","ExecutionType","_executeState","spaceExec","useSpace","enterExec","useEnter","downExec","useDown","execKeys","useControlEnter","flatgrid$1","setGridSize","getNumRows","KeyingState","flatgrid","useH","west$1","moveLeft","moveRight","east$1","useV","north$1","south$1","isHidden$1","locateVisible","withGrid","numCols","cycleHorizontal$1","oldRow","oldColumn","colsInRow","newColumn","cycleVertical$1","newCol","schema$u","focusIn$3","gridConfig","_gridState","doMove$2","gridState","handleTab","captureTab","moveLeft$3","moveRight$3","moveNorth$1","moveSouth$1","getKeydownRules$4","findCurrent$1","getKeyupRules$4","FlatgridType","tryCycle","schema$t","execute$2","flowConfig","focusIn$2","getInitial","moveLeft$2","moveRight$2","doMove$1","flowState","executeOnMove","doEscape","getKeyupRules$3","FlowType","_flowState","westMovers","allowVertical","eastMovers","matrix","cycleHorizontal","deltaCol","newColIndex","cycleVertical","nextRowIndex","colsInNextRow","nextColIndex","moveHorizontal","moveVertical","schema$s","focusIn$1","matrixConfig","previousSelector","doMove","ifCycle","ifMove","cycles","inRow","cellsInRow","allRows","toMatrix","moveNorth","moveSouth","getKeydownRules$2","getKeyupRules$2","MatrixType","schema$r","menuConfig","getKeydownRules$1","menuState","moveOnTab","getKeyupRules$1","MenuType","schema$q","SpecialType","specialInfo","onSpace","onShiftEnter","onShiftTab","onTab","onUp","onDown","onLeft","onRight","stopSpaceKeyup","acyclic","flow","execution","Keying","keyConfig","keyState","sendFocusIn","isFlatgridState","replaceConfig","childSpec","replaceState","removee","foundChild","_replaceConfig","replaceAt","replaceeIndex","replacee","ReplaceApis","appendee","prependee","replaceBy","replaceePred","Replacing","eventHandlers","events$d","focus$2","focusConfig","onFocus","FocusApis","blur$1","ActiveFocus","stopMousedown","FocusSchema","Focusing","updateAriaState","toggleConfig","toggleState","ariaInfo","aria","updateClass","toggle$2","ToggleApis","ActiveToggle","toggleOnExecute","updateExpanded","ToggleSchema","pressed","syncWithExpanded","Toggling","pointerEvents","events$a","optAction","hoverEvent","focusEvent","onFocus$1","focus$1","schema$p","toggling","hasSubmenu","itemBehaviours","tConfig","ignoreFocus","schema$o","owner$2","parts$h","schema$n","focusWidget","widget","onHorizontalArrow","autofocus","setSource","_widget","widgetBehaviours","itemSchema$2","parts$g","itemInfo","builder","fakeFocus","schema$m","movementInfo","rowSelector","Menu","_spec","_externals","menuBehaviours","selectedItem","trace","byItem","byMenu","triggerItem","triggerMenu","generate$2","menus","expansions","menuPaths","_triggerItem","extractPreparedMenu","prep","LayeredState","getTriggerData","menuValue","getItemByValue","getPreparedMenu","getTriggeringItem","triggeringItemValue","triggeredItem","triggeredMenu","triggeringItem","triggeringPath","lookupMenu","lookupItem","setMenuBuilt","menuName","setContents","sPrimary","sMenus","sExpansions","sPaths","otherMenus","menuValues","getPrimary","getMenus","isClear","getTriggeringPath","extraPath","revPath","menuIndex","collapseItem$1","tieredMenu","collapseMenu","tmenu","highlightPrimary","repositionMenus","_rawUiSpec","ExpandHighlightDecision","submenuParentItems","layeredState","componentMap","primaryName","makeSketch","nbMenu","buildMenus","toDirectory","getItemValue","_container","_menuName","setActiveMenu","mv","closeOthers","others","backgroundMenu","stayInDom","updateAriaExpansions","parentItems","itemComp","getSubmenuParents","updateMenuPath","latestMenuName","menuPrep","activeMenu","expandRight","HighlightSubmenu","activeMenuPrep","buildIfRequired","onOpenSubmenu","collapseLeft","onCollapseMenu","keyOnItem","getSource","onExecute","onOpenMenu","highlightImmediately","navigateOnHover","updateView","HighlightParent","getActiveItem","maybeActivePrimary","allMenus","preparedMenus","extractMenuFromContainer","primaryMenu","onRepositionMenu","tmenuBehaviours","_keyInfo","selectedMenu","tieredData","singleData","collapseItem","InlineView","showWithin","showWithinBounds","lazySink","showMenuWithinBounds","menuSpec","menuSandbox","getSubmenuLayouts","triggeringPaths","isFirstTierSubmenu","submenuTriggers","st","submenuLayouts","makeMenu","showAt","showMenuAt","inlineBehaviours","getRelated","isPartOfRelated","onShow","onHide","fireDismissalEventInstead","fireRepositionEventInstead","westEdgeX","middleX","eastEdgeX","northY","southY","centreY","lookupPreserveLayout","lookupFlippedLayout","global$f","lookupAttr","buttonBehaviours","roleAttrs","getModAttributes","isSketchSpec","anyInSystem","asSpec","global$e","rtlTransform","defaultIconName","defaultIcon","rtlName","addToEnd","ensureTrailing","lookupIcon","iconProvider","addFocusableBehaviour","svg","renderIcon$2","fallbackIcon","rtlIconClasses","needsRtlTransform","iconHtml","render$3","notificationIconMap","warning","Notification","iconNames","memBannerText","translationProvider","renderPercentBar","renderPercentText","memBannerProgress","updateProgress","updateText","text$1","banner","iconChoices","memButton","notificationIconSpec","closeButton","NotificationManagerImpl","uiMothership","sharedBackstage","backstage","closeCallback","hideCloseButton","notificationWrapper","providers","getSink","isPositionedAtTop","contentArea","win$1","notificationSpec","anchorOverrides","layoutDirection_1","getLayoutDirection","nodeAnchor","anchors","nuText","ItemResponse","global$d","repeatLeft","stripTriggerChar","triggerCh","findStart","initRange","minChars","findChar","triggerChar","AutocompleterEditorEvents","onKeypress","redirectKeyToItem","getView","cancelIfNecessary","isMenuOpen","isProcessingAction","global$c","toLast","toLeaf","isStartOfWord","isPreviousCharContent","lookup$2","getDatabase","database","triggerChars","getTriggerContext","lookupWithContext","fetchOptions","startText","autocompleters","lookupByChar","autocompleter","lookupData","ac","maxResults","highlightOn","separatorMenuItemSchema","autocompleterItemSchema","autocompleterSchema","baseToolbarButtonFields","toolbarButtonSchema","createToolbarButton","baseToolbarToggleButtonFields","toggleButtonSchema","createToggleButton","contextBarFields","contextButtonFields","contextToggleButtonFields","launchButtonFields","launchToggleButtonFields","toggleOrNormal","contextformbutton","contextformtogglebutton","contextFormSchema","contextToolbarSchema","register$b","popup","stringArray","datasetValues","dv","ToolbarMode","ItemResponse$1","navClass","selectableClass","colorClass","presetClasses","tickedClass","iconClass","textClass","caretClass","activeClass","containerClass","containerRowClass","classForPreset","presets","hasIcons","menuClasses","dom$1","rowDom","preprocessCollection","isSeparator","allSplits","currentSplit","forCollection","initItems","_hasIcons","_item","menuHasIcons","createHorizontalPartialMenuWithAlloyItems","_columns","_presets","createPartialMenuWithAlloyItems","forSwatch","forToolbar","cardImageFields","cardImageSchema","cardTextFields","cardTextSchema","itemSchema$1","cardimage","cardtext","cardcontainer","cardContainerSchema","commonMenuItemFields","cardMenuItemSchema","choiceMenuItemSchema","baseFields","insertTableFields","colorSwatchFields","fancyMenuItemSchema","inserttable","colorswatch","menuItemSchema","nestedMenuItemSchema","toggleMenuItemSchema","detectSize","selectorClass","columnLength","thisTop","cTop","namedEvents","SimpleBehaviours","ExclusivityChannel","ShowTooltipEvent","HideTooltipEvent","hideAllExclusive","_tConfig","_tState","TooltippingApis","setComponents","tState","specs","getTooltip","ActiveTooltipping","tooltipConfig","clearTooltip","clearTimer","resetTimer","isShowing","tooltipDom","tooltipComponents","setTooltip","TooltippingSchema","Tooltipping","global$b","global$a","getHeightSetting","getWidthSetting","getMinWidthSetting","getMinHeightSetting","getMaxWidthSetting","getMaxHeightSetting","isMenubarEnabled","isToolbarEnabled","isToolbarTrue","isToolbarString","isToolbarObjectArray","isMultipleToolbars","getMultipleToolbarsSetting","toolbars","toolbarArray","ToolbarLocation","_a$1","getToolbarLocation","auto","isToolbarLocationBottom","fixedContainerTarget","fixedContainerSelector","fixedToolbarContainerTarget","useFixedContainer","getUiContainer","isDistractionFree","isStickyToolbar","getMenubar","getAnchorTop","getAnchorBottom","ReadOnlyChannel","ReadOnlyDataSchema","broadcastReadonly","uiComponents","outerContainer","mothership","setupReadonlyModeSwitch","receivingConfig","DisablingConfigs","runWithApi","onControlAttached","editorOffCell","onControlDetached","onMenuItemExecute","itemResponse","triggersSubmenu","CLOSE_ON_EXECUTE","menuItemEventOrder","componentRenderPipeline","renderCommonItem","providersbackstage","optComponents","buildData","convertText","renderIcon$1","renderText","renderHtml","renderStyledText","renderShortcut","renderCheckmark","renderColorStructure","providerBackstage","baseDom","itemText","ariaLabel","iconSvg","iconContent","renderItemDomStructure","domTitle","renderItemStructure","providersBackstage","renderIcons","iconSpec","leftIcon","checkmark","checkMark","textRender","htmlContent","shortcutContent","renderNormalItemStructure","tooltipBehaviour","tooltipWorker","_tooltip","encoded","encodeText","escapedMatchRegex","render$2","directionClass","alignClass","getValignClass","renderContainer","renderImage","shouldHighlight","cardText","parts$f","removeLeading","extractValues","longForm","getLongForm","splitForm","isRgbaComponent","fromHsv","fromHex","fireResizeContent","hsvColour","fromRgb","hsvToHex","storageName","FocusMode","choiceItem","colorCache","storageString","localstorage","ColorCache","hasCustomColors$1","getColors$2","unmapped","getColorMap","mapColors","addColor","fallbackColor","getColorCols$1","defaultCols","calcCols","getColorCols$2","getAdditionalColors","hasCustom","applyColor","onChoice","colorPickerDialog","colorOpt","getColors$1","getFetch$1","setIconColor","splitButtonApi","newColor","setIconFill","registerTextColorButton","lastColor","optCurrentRgb","getCurrentColor","currentRgb","currentHex","_splitButtonApi","onItemAction","fireTextColorChange","registerTextColorMenuItem","colorpicker","_api","createPartialChoiceMenu","onItemValueHandler","alloyItems","createChoiceItems","itemPresets","useText","renderChoiceItem","deriveMenuMovement","menuMarkers","getColorItems","useCustomColors","colorinput","hasCustomColors","getColors","cellOverEvent","cellExecuteEvent","labelId","makeComponents","cellRow","makeLabelText","fancyMenuItems","sizeLabelId","makeCells","emptyLabelText","memLabel","selectedRow","selectedColumn","selectCells","getColorCols","widgetSpec","separator$3","nested","downwardsCaret","renderSubmenuCaret","toggle$1","fancy","card","createMenuItemFromBridge","isHorizontalMenu","parseForHorizontalMenu","menuitem","createNestedMenuItem","createToggleMenuItem","createSeparatorMenuItem","createFancyMenuItem","createAutocompleteItems","createCardMenuItem","createAutocompleterItem","createPartialMenu","itemHasIcon","createTieredDataFrom","partialMenu","Autocompleter","activeAutocompleter","processingAction","hideIfNecessary","getAutocompleters","getCombinedItems","choices","itemMeta","nr","autocompleterApi","BUBBLE_TO_SANDBOX","ld","focusMode","ContentFocus","createMenuFrom","doLookup","lookupInfo","commenceIfNecessary","combinedItems","autocompleterUiApi","DelayedFunction","monitor","longpress$1","fireIfReady","stopBackspace","tapEvent","simpleEvents","tapStopped","pasteTimeout","onPaste","onKeydown","isDangerous","onFocusIn","bindFocus","focusoutTimeout","onFocusOut","bindBlur","derive","rawTarget","resume","doTriggerHandler","isStopped","isCut","fromSource","handlerInfo","doTriggerOnUntilStopped","_logger","fromExternal","triggerOnUntilStopped","EventRegistry","registerId","extraArgs","curryArgs","unregisterId","handlersById","_eventName","filterByType","broadcastHandler","isAboveRoot","findHandler","Registry","readOrTag","tagId","conflict","failOnDuplicate","Container","domWithoutAttributes","containerBehaviours","takeover","domEvents","triggerUntilStopped","_alloyId","_getByUid","_getByDom","_addToWorld","_removeFromWorld","broadcast$1","_broadcastOn","_broadcastEvent","broadcastData","receivers","receiver","schema$l","parts$e","excludeFactory","FormField","fieldBehaviours","descriptorId","getField","getLabel","ActiveTabstopping","tabConfig","tabAttr","TabstopSchema","Tabstopping","renderFormFieldWith","pLabel","pField","extraBehaviours","renderFormFieldSpecWith","renderFormFieldDomWith","renderLabel$2","formChangeEvent","formCloseEvent","formCancelEvent","formActionEvent","formSubmitEvent","formBlockEvent","formUnblockEvent","formTabChangeEvent","formResizeEvent","renderCollection","runOnItem","collectionEvents","currentActive","iterCollectionItems","childElm","htmlLines","mapItemName","schema$k","focusBehaviours","selectOnFocus","setSelectionRange","inputBehaviours","inputAttributes","inputStyles","inputClasses","Input","HighlightOnOpen","make$5","ariaElements","isAriaElement","markValid","invalidConfig","invalidClass","notifyInfo","validHtml","onValid","markInvalid","invalidState","onInvalid","_invalidState","validatorInfo","onValidate","InvalidateApis","isInvalid","ActiveInvalidate","validateOnLoad","InvalidateSchema","Invalidating","validation","CouplingApis","getCoupled","coupleConfig","coupleState","getOrCreate","CouplingSchema","CouplingState","coupled","Coupling","partType$1","kernel","colorFn","getAnchor","getHotspot","getAnchorOverrides","mapFetch","onOpenSync","highlightOnOpen","processed","futureData","fetcher","getLazySink","tdata","HighlightFirst","openF","_onOpenSync","_highlightOnOpen","togglePopup","matchWidth","useMinWidth","buttonWidth","set$6","sinkDetail","internalSink","lazySinkFn","doRepositionMenus","makeSandbox$1","ariaOwner","sandboxClasses","sandboxBehaviours","_repositionMenus","sandboxFields","schema$j","parts$d","switchToMenu","HighlightNone","triggerExecute","dropdownBehaviours","ActiveUnselecting","unselectable","Unselecting","colorInputChangeEvent","colorSwatchChangeEvent","colorPickerCancelEvent","renderColorInput","colorInputBackstage","inputValue","emitSwatchChange","colorBit","memColorButton","renderPanelButton","colorPicker","valueOpt","colorButton","_field","labelPart","edgePart","edgeActions","det","mouseIsDown","tlEdgePart","tedgePart","trEdgePart","redgePart","brEdgePart","bedgePart","blEdgePart","ledgePart","thumbPart","spectrumPart","getValueFromEvent","spectrum","SliderParts","sliderChangeEvent","getEventSource","isTouchEvent$2","touchEvent","min1X","min1Y","max1X","max1Y","yRange","halfX","halfY","snap","snapToGrid","snapStart","hasEdge","edgeName","hasLEdge","hasREdge","hasTEdge","hasBEdge","xValue","yValue","xyValue","fireSliderChange$3","reduceBy","increaseBy","capValue","findValueOf","hasMinEdge","hasMaxEdge","minBound","maxBound","screenRange","capMin","capMax","findOffsetOf","initValue","extraValue","rawSteps","maxSteps","snapValueOf","findOffsetOfValue$2","maxOffset","centerMinEdge","centerMaxEdge","getBoundsProperty","getMinXBounds","getMaxXBounds","getMinYBounds","getMaxYBounds","getXScreenRange","getYScreenRange","getCenterOffsetOf","componentMinEdge","componentMaxEdge","spectrumMinEdge","getXCenterOffSetOf","componentBounds","spectrumBounds","getYCenterOffSetOf","fireSliderChange$2","sliderValue$2","findValueOfOffset$1","handleMovement$2","moveBy$2","findPositionOfValue$1","slider","minEdge","maxEdge","minOffset","findOffsetOfValue$1","onLeft$2","onRight$2","onUp$2","onDown$2","edgeActions$2","HorizontalModel","sliderVal","setToMin","setToMax","findValueOfOffset","findPositionOfValue","setPositionFromValue","thumb","getSpectrum","thumbRadius","fireSliderChange$1","sliderValue$1","handleMovement$1","findOffsetOfValue","onLeft$1","onRight$1","onUp$1","onDown$1","edgeActions$1","VerticalModel","fireSliderChange","sliderValue","handleMovement","isVerticalMovement","TwoDModel","mX","mY","xPos","yPos","thumbXRadius","thumbYRadius","Slider","getThumb","modelDetail","choose","wasDown","onChoose","onDragStart","onDragEnd","sliderBehaviours","changeValue","getInitialValue","onInit","resetToMin","resetToMax","fieldsUpdate","sliderUpdate","paletteUpdate","schema$i","getPartName$1","make$4","formBehaviours","resPs","resPThunk","pName","Form","fSpec","fieldParts","validInput","invalidInput","validatingInput","translatePrefix","rgbFormFactory","onValidHexx","onInvalidHexx","invalidation","renderTextField","helptext","comps","concats","copyRgbToForm","memPreview","updatePreview","rgbFormSketcher","setValueRgb","onInvalidInput","onValidRgb","hexField","copyRgbToHex","onValidInput","isHexInputEvent","onValidHex","formPartStrings","redStrings","greenStrings","blueStrings","hexStrings","updateHex","copyHexToRgb","paletteFactory","_translate","setColour","grdWhite","createLinearGradient","addColorStop","grdBlack","saturationBrightnessPaletteSketcher","_thumb","_slider","setHue","_apis","setPaletteHue","setThumb","setPaletteThumb","makeFactory","colourPickerSketcher","updates","rgbForm","onInvalidHex","sbPalette","hueDegreesToSlider","paletteRgba","paletteHue","memSlider","sliderFactory","memPalette","memRgb","updatePalette","_hex","palette","updateFields","updateSlider","updatePaletteThumb","runUpdates","updateState","hexToHsv","oldHue","newHsv","newHex","onPaletteUpdate","hueSliderToDegrees","oldRgb","oldHsv","onSliderUpdate","ComposingConfigs","mem","translate$1","getEnglishText","processors","withComp","optInitialValue","RepresentingConfigs","rawProcessors","postprocess","renderDropZone","onDrop","transferEvent","handleFiles","onSelect","allowedImageFileTypes","filterByExtension","memInput","beforeObject","afterObject","craftWithClasses","outline","craft","triggerTab","targetComp","isPseudoStop","platformNeedsSandboxing","renderIFrame","isSandbox","sandboxed","sourcing","cachedValue","_frameComponent","frameComponent","getDynamicSource","resize$3","getWidth$1","getHeight$1","parsedValue","DELTA_INDEX","multiply","matrix1","matrix2","colorFilter","applyColorFilter","pixelsData","m0","m1","m2","m3","m4","m5","m6","m7","m8","m9","m10","m11","m12","m13","m14","m15","m16","m17","m18","m19","applyMatrix","putImageData","applyConvoluteFilter","pixelsIn","pixelsOut","pIn","pOut","aMatrix","halfSide","drgba","scx","innerOffset","wt","complexAdjustableColorFilter","matrixAdjustFn","adjust","invert$1","basicColorFilter","brightness$1","contrast$1","colorize$1","adjustR","adjustG","adjustB","adjustColors","sharpen$1","convoluteFilter","gamma$1","applyLookup","filterImpl","dW","dH","sW","sH","wRatio","hRatio","scaleCapped","scaled","applyCrop","resize$2","newCanvas","sharpen","gamma","crop","crop$1","renderIcon","iconsProvider","renderIconFromPack","renderReplacableIconFromPack","renderLabel$1","internalToolbarButtonExecute","toolbarButtonEventOrder","updateMenuText","updateMenuIcon","renderCommonDropdown","optMemDisplayText","optMemDisplayIcon","onLeftOrRightInMenu","tooltipAttributes","translatedTooltip","displayText","displayIcon","isSeparator$1","separator$2","unwrapReferences","realItems","isMenuItemReference","getFromItem","isExpandingMenuItem","submenuItems","getFromExpandingItem","itemWithValue","generateValueIfRequired","mainMenu","submenus","getMenuButtonApi","renderMenuButton","_comp","getFetch","getButton","getMenuItemAction","getMenuItemSetup","renderCommonSpec","actionOpt","domFinal","renderIconButtonSpec","renderIconButton","iconButtonSpec","renderButtonSpec","translatedText","borderless","renderButton","buttonSpec","buttonType","renderFooterButton","isMenuFooterButtonSpec","menuButtonSpec","fixedSpec","memButton_1","isNormalFooterButtonSpec","renderDialogButton","schema$h","coupledPart","selfName","otherName","onLockedChange","parts$c","lockClass","FormCoupledInputs","coupledFieldBehaviours","field1Name","field1","field2Name","field2","getField1","getField2","getLock","parseSize","sizeText","convertUnit","inInch","noSizeConversion","makeRatioConverter","currentFieldText","otherFieldText","cValue","oValue","cSize","oSize","ratioSizeConversion","renderSizeInput","converter","ratioEvent","makeIcon","pLock","formGroup","getFieldPart","isField1","widthField","heightField","_lock","unitDec","numText","formatSize","optCurrent","optOther","value1","value2","back","tempTransform","transformApply","saveState","renderEditPanel","imagePanel","createButton","createIconButton","disableAllComponents","eventcomp","enableAllComponents","panelDom","emit$1","emitDisable","emitEnable","emitTransform","getBackSwap","memContainer","ButtonPanel","emitTransformApply","createBackButton","createSpacer","createApplyButton","cropPanelComponents","hideCrop","CropPanel","memSize","makeResizeTransform","resize$1","resizePanelComponents","ResizePanel","makeValueTransform","horizontalFlip","verticalFlip","counterclockwiseRotate","clockwiseRotate","flipRotateOnAction","emitTempTransform","flipRotateComponents","FlipRotatePanel","makeSlider","makeVariableSlider","valTransform","createVariableFilterPanel","filterPanelComponents","variableFilterPanelComponents","FilterPanel","BrightnessPanel","ContrastPanel","GammaPanel","makeColorTransform","colorize","makeColorSlider","redOpt","memRed","blueOpt","memBlue","greenOpt","memGreen","colorizePanelComponents","ColorizePanel","getTransformPanelEvent","panel","sharpenTransform","invertTransform","buttonPanelComponents","_anyInSystem","showCrop","measurements","getMeasurements","getApplyButton","updateWithTouchData","isTouchEvent$1","DragHelper","eventOverlay","downButton","handleEvents","overlayEvents","sugarDoc","handleElement","docSize","getDocumentSize","CropRect","currentRect","viewPortRect","dragHelpers","handles","xMul","yMul","deltaW","deltaH","blockers","getRelativeRect","outerRect","innerRect","moveRect","startRect","setInnerRect","repaint","updateElementRect","setRect","relativeRect","cropContainer","blockerElm","cropBlocker","cropHandle","handleFocus","activeHandle","moveAndBlock","toggleVisibility","setClampRect","getInnerRect","setViewPortRect","helper","renderImagePanel","initialUrl","memBg","zoomState","rectState","viewRectState","repaintImg","panelW","panelH","bg","cRect","updateSrc","aImg","lastViewRect","viewRect","zoomFit","currentZoom","newZoom","setButtonEnabled","Delimiter","makeState","blobState","tempState","undoStack","setBlobState","destroyState","destroyTempState","addBlobState","getBlobState","getTempState","updateTempState","newTempState","addTempState","applyTempState","postApply","getHistoryStates","undoEnabled","redoEnabled","renderImageTools","updateButtonUndoStates","historyStates","sideBar","imageResultToBlob","editPanel","applyButton","blobManipulate","manipulate","currentUrl","memUndo","memRedo","renderSideBar","_oImg","tempManipulate","manipulateApply","disableUndoRedo","isSingleListItem","dataAttribute","fetchItems","dropdownComp","findItemByValue","renderListBox","initialItem","sketchSpec","listBoxWrap","HtmlSelect","initialValues","selectClasses","selectAttributes","selectBehaviours","baseInputBehaviours","multiline","validatingBehaviours","vl","inputmode","classname","extraClasses2","flex","maximized","ActiveStreaming","streamConfig","streamState","stream","streams","cancelEvent","setTimer","StreamingState","StreamingSchema","streamInfo","sInfo","throttler","onStream","stopEvent","Streaming","setValueFromItem","itemData","setCursorAtEnd","setSelectionOn","attemptSelectOver","selectsOver","inputDisplay_1","getDisplayText","setSelectionToEnd","itemExecute","schema$g","parts$b","previewing","populateFromBrowse","typeahead","Typeahead","navigateList","highlighter","focusBehaviours$1","responseTime","previousValue_1","pv","sandboxIsOpen","openClass","onItemExecute","dismissOnBlur","typeaheadBehaviours","bindFuture","resA","bindResult","mapResult","foldResult","whenError","whenValue","withTimeout","errorThunk","timedOut","worker","FutureResult","separator$1","toMenuItem","staticMenuItem","filteredTargets","toMenuItems","filterLinkTargets","headerTargets","linkInfo","anchorTargets","anchorTargetTop","anchorTop","anchorTargetBottom","anchorBottom","filterByQuery","term","lowerCaseTerm","fileType","urlBackstage","urlInputValue","getLinkInformation","historyTargets","getHistory","errorId","make$2","factories","interpreter","renderBar","alertbanner","iconTooltip","renderAlertBanner","renderInput","textarea","renderTextarea","backstageShared","renderLabel","iframeSpec","makeIframe","repBehaviour","toggleCheckboxHandler","memIcons","renderCheckbox","colourPickerFactory","memPicker","picker","dropzone","renderGrid","listbox","selectbox","translatedOptions","chevron","selectWrap","renderSelectBox","sizeinput","urlinput","updateHistory","urlEntry","addToHistory","memUrlBox","_newValue","getValidationHandler","memInvalidIcon","invalidComp","_entry","errId","memStatus","optUrlPicker","getUrlPicker","browseUrlEvent","memUrlPickerButton","componentData","urlData","fieldname","chosenData","renderUrlInput","customeditor","editorApi","memReplaced","ta","isOldCustomEditor","scriptId","ea","cvalue","htmlpanel","renderTh","renderTd","renderTr","renderTable","renderPanel","noFormParts","interpretInForm","oldBackstage","newBackstage","interpretParts","bubbleAlignments$2","valignCentre","alignCentre","alignLeft","alignRight","getInlineDialogAnchor","contentAreaElement","lazyAnchorbar","lazyUseEditableAreaAnchor","getBannerAnchor","getCursorAnchor","getNodeAnchor$1","getAnchors","isToolbarTop","useFixedToolbarContainer","inlineDialog","ColorInputBackstage","isDraggableModal","isDraggableModal$1","DialogBackstage","defaultStyleFormats","mapFormats","userFormats","customFormats","formatNameWithPrefix","getStyleFormats","getUserStyleFormats","registeredUserFormats","registerCustomFormats","isMergeStyleFormats","processBasic","isSelectedFor","getPreviewFor","formatterSpec","getStylePreview","register$8","doEnrich","newItems","enrichMenu","getStyleItems","enrichSupported","customSpec","newItem","enrichCustom","init$8","settingsFormats","settingsFlattenedFormats","eventsFormats","eventsFlattenedFormats","replaceSettings","enriched","modifications","fromSettings","fromEvents","getFlattenedKeys","getElementText","isValidAnchor","isAnchor","isHeader","isChildOfContentEditableTrue","isValidHeader","headerTarget","headerId","getOrGenerateId","anchorTarget","anchorId","anchorText","getTargetElements","hasTitle","LinkTargets","getHeaderTargets","getAnchorTargets","STORAGE_KEY","isHttpUrl","isRecordOfUrlArray","getAllHistory","unparsedHistory","itemsWithoutUrl","setAllHistory","isTruthy","getPicker","getFilePickerCallback","getPickerSetting","pickerTypes","optFileTypes","getFilePickerTypes","optLegacyTypes","getFileBrowserCallbackTypes","optTypes","_picker","getPickerTypes","getTextSetting","UrlInputBackstage","noTypeaheadUrls","_getLinkInformation","getFilePickerValidatorHandler","_getValidationHandler","_getUrlPicker","init$7","contextMenuState","getDockingMode","setDockingMode","HeaderBackstage","interpretWithoutForm","styleselect","isContextMenuOpen","setContextMenuState","parts$a","partType","schema$f","itemsPart","parts$9","CustomList","_external","shell","getListContainer","listBehaviours","setItems","itemComps","numListsRequired","numListsToAdd","itemsToAdd","makeItem","itemsToRemove","builtLists","setupItem","schema$e","parts$8","Toolbar","getGroupContainer","toolbarBehaviours","setGroups","isDocked$2","getBehaviours$1","StaticHeader","isDocked","getBehaviours","offsetParent$1","morphAdt","appear","contextualInfo","transitionClass","fadeOutClass","fadeInClass","disappear","isVisibleForModes","isBottomCompletelyVisible","isTopCompletelyVisible","getPrior","getInitialPos","revertToOriginal","clearInitialPos","offsetBox_1","_left","_top","_right","_bottom","morphToFixed","getModes","setInitialPos","storePrior","winBox","top_1","isTop","getMorph","morphToOriginal","morphToStatic","setDocked","onUndocked","morphToCoord","onDocked","updateVisibility","morphToDocked","contextInfo","lazyContext","isPartiallyVisible","resetInternal","getMorphToOriginal","morph","refresh$4","lazyViewport","refreshInternal","DockingApis","setModes","ActiveDocking","dockInfo","dockState","onShown","onHidden","DockingSchema","Docking","docked","initialBounds","toolbarHeightChange","editorStickyOnClass","editorStickyOffClass","isDockedMode","updateIframeContentFlow","parentElem","parentWidth","getOccupiedHeight","updateSinkVisibility","sinkElem","updateEditorClasses","focusedElm","runOnSinkElement","onDockingSwitch","additionalBehaviours","getIframeBehaviours","headerHeight","boxHeight","topBound","headerElem","focusedElem","ownerDoc","activeElm","findFocusedElem","getStickyToolbarOffset","StickyHeader","lazyHeader","containerHeader","scrollPos","markerElement","markerPos","markerHeight","editorHeaderPos","editorHeaderHeight","editorHeaderTop","editorHeaderBottom","editorHeaderDockedAtTop","editorHeaderDockedAtBottom","scrollFromBehindHeader","groupToolbarButtonSchema","baseMenuButtonFields","MenuButtonSchema","createMenuButton","splitButtonSchema","SilverMenubar","setMenus","newMenus","activeButton","hoveredButton","activeComp","hoveredComp","getAnimationRoot","slideConfig","getDimensionProperty","disableTransitions","shrinkingClass","growingClass","setShrunk","closedClass","setGrown","doImmediateShrink","slideState","_calculatedSize","setCollapsed","onStartShrink","onShrunk","doStartShrink","calculatedSize","doStartSmartShrink","doStartGrow","wasShrinking","beforeSize","fullSize","setExpanded","onStartGrow","isGrowing","_slideState","isShrinking","SlidingApis","isExpanded","grow","immediateShrink","hasGrown","hasShrunk","toggleGrow","ActiveSliding","onGrown","SlidingSchema","Sliding","schema$d","getPartName","make$1","getSlotNames","onSlot","def","slot","doShowing","hideSlot","hideSlots","showSlot","getSlot","hideAllSlots","slotBehaviours","slotApis","SlotContainer","sSpec","sidebarSchema","makePanels","panelConfigs","bridged","createSidebar","sidepanel","optSidePanelSpec","sidePanelSpec","makeSidebar","slotContainer","_whichSidebar","sidebar","fixSize","autoSize","BlockingApis","getBusySpec","blockerBehaviours","blockSpec","isBlocked","onBlock","blockWith","onUnblock","BlockingSchema","Blocking","getAttrs","focusBusyComponent","throbber","toggleThrobber","tabIndexAttr","dataTabIndexAttr","toggleEditorTabIndex","_root","_behaviours","getBusySpec$1","throbberFocus","busyComp","lazyThrobber","throbberState","stealFocus","isFocusEvent","within","withinWidth","apportion","parray","toUnit","overflower","divide","tryFit","fitLast","fitAll","setGroups$1","storedGroups","bGroups","refresh$2","setOverflow","builtGroups","overflowGroup","focusedComp","overflows","schema$c","schema$b","parts$7","expandable","schema$a","parts$6","toggledClass","toolbarSandbox","bounder","_setGroups","FloatingToolbarButton","makeSandbox","schema$9","parts$5","ToolbarGroup","tgroupBehaviours","buildGroups","refresh$1","memFloatingToolbarButton","overflowGroups","floatingToolbarButton","SplitFloatingToolbar","getOverflowBounds","overflowToggledClass","splitToolbarBehaviours","getOverflow","schema$8","parts$4","onClosed","onOpened","toggleToolbar","overf","_refresh","SplitSlidingToolbar","toolbarToggleEvent","doSetGroups","_isOpen","renderToolbarGroupCommon","toolbarGroup","renderToolbarGroup","getToolbarbehaviours","toolbarSpec","modeName","onAttached","initGroups","renderMoreToolbarCommon","cyclicKeying","renderFloatingMoreToolbar","baseSpec","moreDrawerData","headerBounds","docBounds","overflowXOffset","renderSlidingMoreToolbar","renderToolbar","scrolling","partMenubar","partMultipleToolbar","_mToolbar","tc","partToolbar","renderer","sliding","floating","toolbarFactory","lazyToolbar","lazyMoreButton","partHeader","sticky","partSocket","partSidebar","partThrobber","OuterContainer","getSocket","setSidebar","_setSidebar","toggleSidebar","_toggleSidebar","whichSidebar","getHeader","setToolbar","setToolbars","mToolbar","refreshToolbar","toggleToolbarDrawer","isToolbarDrawerToggled","getThrobber","focusToolbar","setMenubar","focusMenubar","grps","grp","renderedToolbars","defaultMenus","edit","tools","help","parseItemsString","identifyMenus","rawMenuData","userDefinedMenus","validMenus","isDefaultMenu","menuData","removedMenuItems","getRemovedMenuItems","removedMenuItem","fireSkinLoaded","fireSkinLoaded$1","loadStylesheet","stylesheetUrl","loadUiSkins","loadShadowDomUiSkins","loadSkin","skinName","getSkinUrl","isSkinDisabled","fireSkinLoadError$1","fireSkinLoadError","onSetupFormatToggle","onSetupEvent","onActionToggleFormat$1","rawItem","onActionExecCommand","generateSelectItems","generateItem","si","validateItems","preItems","getCurrentValue","shouldHide","createMenuItems","createSelectButton","getComponent","ResizeTypes","buildBasicSettingsDataset","settingName","delimiter","rawFormats","SemiColon","alignMenuItems","getSpec$4","systemStackFonts","splitFonts","getSpec$3","systemFont","getMatchingValue","getFirstFont","matchOpt","isSystemFontStack","legacyFontSizes","keywordFontSizes","toPt","getSpec$2","legacy","toLegacy","Space","findNearest","getSpec$1","fallbackFormat","getSpec","flattenedItems","getFormatItems","ActiveReflecting","reflectingConfig","reflectingState","renderComponents","newComponents","ReflectingApis","reflectState","ReflectingSchema","ReflectingState","Reflecting","schema$7","arrowPart","buttonPart","btn","splitDropdown","parts$3","SplitDropdown","executeOnButton","buttonEvents","splitDropdownBehaviours","getButtonApi","getToggleApi","getTooltipAttributes","focusButtonEvent","renderCommonStructure","renderCommonToolbarButton","specialisation","itemApi","toolbarButtonBehaviours","renderToolbarButtonWith","bonusEvents","renderToolbarToggleButtonWith","fetchChoices","defaultToolbar","renderFromBridge","bridgeBuilder","togglebutton","menubutton","splitbutton","displayChannel","underlinePath","setIconStroke","buttonComp","renderSplitButton","grouptoolbarbutton","TopToBottom","identifyButtons","renderFloatingToolbarButton","allowToolbarGroups","styleSelectButton","createStyleSelect","fontsizeSelectButton","createFontsizeSelect","fontSelectButton","createFontSelect","formatButton","createFormatSelect","alignMenuButton","createAlignSelect","bespokeButtons","fontsizeselect","fontselect","formatselect","createToolbar","toolbarConfig","groupsStrings","filteredItemGroups","subItem","removeUnusedDefaults","isToolbarGroupSettingArray","lookupButton","toolbarItem","extractFrom","toolbarGroups","rawUiConfig","toolbarButtonsConfig","detection","isiOS12","Iframe","lastToolbarWidth","eTargetNode","uiRoot","attachSystemAfter","initialDocEle","lastWindowDimensions","lastDocumentDimensions","resizeWindow","resizeDocument","docEle","fireScrollContent","elementLoad","setupEvents$1","socket","unbinder","toolbarMode","parseToInt","numToPx","calcCappedSize","minOverride","maxOverride","getHeightWithFallback","baseHeight","baseWidth","InlineHeader","floatContainer","isSticky","editorMaxWidthOpt","headerBackstage","isSplitToolbar","calcToolbarOffset","tbar","repositionPopups$1","updateChromeUi","resetDocking","bodyMargin","targetBounds","updateChromePosition","floatContainerComp","updateMode","updateUi","currentMode","toolbar_1","toolbarHeight","docHeight","calcMode","verticalDir","setupMode","getTargetPosAndBounds","Inline","toolbarPersist","isToolbarPersist","uiContainer","prevPosAndBounds","resizeContent","prevBounds","hasResized","setupEvents","delayedRender","hideContextToolbarEvent","runOnExecute","formApi","getFormApi","renderContextToggleButton","renderContextButton","buildInitGroups","findPrimary","mementos","asSpecs","compInSystem","ContextForm","isVerticalOverlap","getSelectionBounds","leaf$1","getRangeRect","scroll_1","bodyPos","getContextToolbarBounds","toolbarType","contentAreaBox","toolbarOrMenubarEnabled","getHorizontalBounds","isToolbarLocationTop","headerBox","isToolbarBelowContentArea","isToolbarAbove","containerBounds","getVerticalBounds","bubbleAlignments$1","inset","shouldUseInsetLayouts","determineInsetLayout","contextbar","selectionBounds","isSameAnchorElement","isEntireElementSelected","currentPosition","preservePosition","isReposition","getAnchorSpec$2","smartInsetLayout","newAnchor","getInsetLayouts","matchTargetWith","ctxs","toolbarApi","contextForms","matchStartNode","nodeCandidates","editorCandidates","editorMatches","doesPositionExist","filterToolbarsByPosition","hasSelectionToolbars","hasNodeToolbars","nodeToolbars","selectionToolbars","filterByPositionForStartNode","matchAncestor","scopes","ancestorElem","inNodeScope","findPosition_1","basePosition","filterByPositionForAncestorNode","categorise","inEditorScope","formNavigators","registerForm","contextForm","launch","registerToolbar","contextToolbar","forwardSlideEvent","backSlideEvent","changeSlideEvent","resizingClass","register$7","registryContextToolbars","lastTrigger","lastContextPosition","newContents","oldContents","forwardContents","canLaunchToolbar","shouldContextToolbarHide","contextToolbarBounds","anchorBounds","getAnchorElementBounds","hideOrRepositionIfNecessary","contextBarEle","wrapInPopDialog","getScopes","alloySpec","buildToolbar","allButtons","buildContextToolbarGroups","buildContextFormGroups","anchorLayout","getAnchorLayout","launchContext","launchContextToolbar","isSameLaunchElement","rootElem","isOutsideRoot","lookup$1","toolbarKey","registerController","getMenuItems","oldApi","unbindWatcher","watcher","setCurrent","onToolbarSetup","onMenuSetup","lineHeightSpec","normalise","register$5","settingsOpt","getContentLanguages","ele","languageSpec","register$4","alignSelectMenu","fontSelectMenu","styleSelectMenu","formatSelectMenu","fontsizeSelectMenu","onSetupOutdentState","registerButtons$2","onActionToggleFormat","registerButtons$1","registerFormatButtons","registerCommandButtons","registerCommandToggleButtons","registerMenuItems$2","onSetupUndoRedoState","registerMenuItems$1","registerButtons","onSetupVisualAidState","registerToolbarButton","registerMenuItems","register$6","lastForeColor","lastBackColor","register$a","isTouchEvent","transposeContentAreaContainer","containerPos","getPointAnchor","fromPageXY","fromClientXY","getSelectionAnchor","getAnchorSpec$1","anchorType","getNodeAnchor","initAndShow$1","buildMenu","contextmenu","anchorSpec","bubbleAlignments","getAnchorSpec","initAndShow","openiOS_1","originalSelection","selectionReset","unbindEventListeners","preventMousedown","clearSelectionReset","setupiOSOverrides","touch_1","rngRect","isTouchWithinSelection","patchPipeConfig","shouldNeverUseNative","getContextMenu","defaultItems","makeContextItem","commonMenuItem","addContextMenuGroup","groupItems","lastMenuItem","isTriggeredByKeyboard","getSelectedElement","hideContextMenu","showContextMenu","isNativeOverrideKeyEvent","isContextMenuDisabled","getAvoidOverlapSelector","getAnchorType","allItems","generateContextMenu","hideEvents","asFixed","coord","asAbsolute","asOffset","toStyles","stylesOpt","absorb","partialCoord","originalCoord","absorbOne","stencil","optX","optY","parseAttrToInt","getCoords","snapInfo","snapsInfo","leftAttr","topAttr","moveOrSnap","newCoord","mustSnap","findClosestSnap","findSnap","fixedCoord","spanned","stopDrag","findMatchingSnap","snaps","sensor","coord1","coord2","withinRange","getSnapPoints","bestSnap","getDeltas","bestDeltas","DraggingApis","snapTo","dragConfig","repositionTarget","snapPin","snapTo$1","initialAttribute","instigate","anyComponent","zindex","changeZIndex","discard","resetZIndex","createComponent","blockerClass","blockerEvents","SnapSchema","schema$6","getCurrentCoord","calcNewCoord","optSnaps","currentCoord","coords","absoluteCoord","newCoords","offset$1","clampCoords","translated","snapping","onSensor","calcStartData","_move","dragMode","dragStartData","getStartData","dlt","onDrag","dragBy","updateStartState","setStartData","MouseData","events$2","stop$1","schema$5","TouchData","getDataFrom","events$1","blockerSingleton","stopBlocking","mouseOrTouch","DraggingBranches","DragState","dragEvent","calculateDelta","Dragging","dragger","calcSnap","selectorOpt","snapWidth","selectorHandle","sensorLeft","sensorTop","getSnapsConfig","currentTd","isSameCell","createSelector","tlTds","brTds","getTopLeftSnap","memTopLeft","getBottomRightSnap","memBottomRight","topLeftSnaps","bottomRightSnaps","bottomRight","getSnapConfig","cellRect","viewportHeight","aboveViewport","belowViewport","showOrHideHandle","snapTopLeft","snapBottomRight","renderElementPath","newPathElements","newPath","updatePath","_btn","newAcc","resizeType","originalHeight","originalWidth","Both","dim","fireResizeEditor","keyboardHandler","renderResizeHandler","None","Vertical","getResizeType","_target","renderStatusbar","getTextComponents","replaceCountText","characters","currentVal","wordCount","renderWordCount","getComponents","isGridUiContainer","sinkSpec","reactiveWidthSpec","lazyOuterContainer","platformClasses","deviceClasses","isToolbarBottom","dirAttributes","verticalDirAttributes","_lazyHeader","resizeUiMothership","memAnchorBar","statusbar","socketSidebarContainer","hasMultipleToolbar","hasToolbar","hasMenubar","editorComponents","containerComponents","ship","fireDismissPopups","onTouchstart","onTouchmove","onTouchend","onMousedown","onMouseup","onContentClick","onContentMouseup","onContentMousedown","loopEditor","onWindowScroll","onWindowResize","onEditorResize","onEditorProgress","onDismissPopups","setEditorSize","parsedHeight","parsedWidth","getWidthWithFallback","handleToggle","getToolbarGroups","toolbarGroupButtonConfig","toolbarOpt","getUi","broadcastAll","schema$2","basic","parts$2","dragBlockClass","getDragBounds","ModalDialog","dialogComp","modalEventsId","externalBlocker","blockerDom","setIdle","setBusy","modalBehaviours","labelledElement","labelElement","describedElement","describeElement","describeId","dialogToggleMenuItemSchema","dialogToggleMenuItemDataProcessor","baseFooterButtonFields","dialogFooterButtonFields","normalFooterButtonFields","menuFooterButtonFields","dialogFooterButtonSchema","alertBannerFields","alertBannerSchema","buttonFields","buttonSchema","checkboxFields","checkboxSchema","checkboxDataProcessor","formComponentFields","formComponentWithLabelFields","collectionFields","collectionSchema","collectionDataProcessor","colorInputSchema","colorInputDataProcessor","colorPickerSchema","colorPickerDataProcessor","customEditorFields","defaultedPostMsg","customEditorFieldsOld","customEditorSchema","customEditorDataProcessor","dropZoneSchema","dropZoneDataProcessor","createGridFields","itemsField","htmlPanelFields","htmlPanelSchema","iframeFields","iframeSchema","iframeDataProcessor","imageToolsFields","imageToolsSchema","inputFields","inputSchema","inputDataProcessor","createLabelFields","listBoxSingleItemFields","listBoxNestedItemFields","getP","thunkOf","listBoxItemSchema","listBoxFields","listBoxSchema","listBoxDataProcessor","selectBoxFields","selectBoxSchema","selectBoxDataProcessor","sizeInputFields","sizeInputSchema","sizeInputDataProcessor","tableFields","tableSchema","textAreaFields","textAreaSchema","textAreaDataProcessor","urlInputFields","urlInputSchema","urlInputDataProcessor","createItemsField","itemSchema","sErr","passValue","panelSchema","panelFields","tabFields","tabPanelFields","tabPanelSchema","dialogButtonFields","dialogButtonSchema","dialogSchema","tabpanel","urlDialogButtonSchema","urlDialogSchema","getAllObjects","isNamedItem","dataProcessors","togglemenuitem","getNamedItems","createDataValidator","namedItems","getDataProcessor","internalDialog","dataValidator","DialogManager","redial","toValidValues","renderBodyPanel","memForm","formValue","TabButton","tabButtonBehaviours","schema$1","tabsPart","barDetail","dismissTab$1","tabbar","changeTab$1","clickToDismiss","parts$1","Tabbar","tabbarBehaviours","selectedClass","Tabview","tabviewBehaviours","barPart","viewPart","TabSection","changeTabBy","byPred","tabSectionBehaviours","selectFirst","tabValue","tabview","tabWithValue","tabData","onChangeTab","onDismissTab","getViewItems","tabKey","setTabviewHeight","updateTabviewHeight","maxTabHeight","tablist","documentElement$1","tabviewHeight","currentTabHeight","dialogTopMargin","dialogBottomMargin","getMaxTabviewHeight","getTabview","allTabs","extraEvents","smartTabHeight","tabviewComp","_tab","measureHeights","maxTabHeightOpt","getMaxHeight","oldHeight","naiveTabHeight","SendDataToSectionChannel","SendDataToViewChannel","renderTabPanel","storedValue","updateDataWithForm","validData","setDataOnForm","oldTab","tabMode","_viewItems","tsection","dialogChannel","titleChannel","bodyChannel","footerChannel","bodySendMessageChannel","renderBody","ariaAttrs","incoming","isTabPanel","hiddenHeader","pClose","pUntitled","pBodyMessage","pFooter","pFooterGroup","startButtons","endButtons","renderDialog$1","dialogClass","blockerBackdropClass","scrollLockClass","dialogEvents","renderClose","renderTitle","renderDragHandle","pTitle","pHandle","draghandle","renderModalHeader","bs","getEventExtras","lazyDialog","closeWindow","blockEvent","renderModalDialog","mapMenuButtons","mapItems","extractCellsToObject","innerAcc","initCommonEvents","fireApiEvent","SilverDialogEvents","getInstanceApi","withSpec","currentDialog","currentDialogInit","onTabChange","newTabName","oldTabName","footerButtons","buttonGroups","makeGroup","memento","renderFooter","initSpec","makeButton","lookupByName","buttonName","renderModalFooter","getCompByName","form_1","getFormWrapper","getDialogApi","doRedial","menuItemStates","withRoot","instanceApi","valueComp","representedValues","menuItemCurrentState","mergedData","newInternalData","dialogState","validateData$1","tabSection","dialogInit","renderDialog","bodySpec","renderModalBody","storagedMenuButtons","objOfCells","dialogSize","getDialogSizeClasses","modalAccess","outerForm","renderInlineDialog","dialogLabelId","dialogContentId","memHeader","memBody","contentId","renderInlineBody","memFooter","renderInlineFooter","SUPPORTED_MESSAGE_ACTIONS","isSupportedMessage","mceAction","renderUrlDialog","renderIframeBody","iframeUri","iframeDomain","messageHandlerUnbinder","handleMessage","isCustomMessage","onMessage","iframeEle","sendMessage","inlineAdditionalBehaviours","isStickyToolbar$1","alertDialog","memFooterClose","titleSpec","closeSpec","footerCloseButton","confirmDialog","memFooterYes","footerNo","footerYesButton","openModalUrlDialog","_closeWindow","openModalDialog","_closeWindow2","internalInitialData","openInlineDialog","config$1","_closeWindow3","refreshDocking","dialogUi","inlineDialogComp","isAlertOrConfirmDialog","windowMgr","queryString","searchterm","URLSearchParams","$input","phrase","listLocation","onChooseEvent","getSelectedItemData","requestDelay","easyAutocomplete","EasyAutocomplete","requestDelayTimeoutId","consts","Constans","Configuration","Logger","Template","listBuilderService","ListBuilderService","proccess","checkParam","equals","$field","$container","elementsList","prepareField","$elements_container","escapedPhrase","highlightPhrase","$wrapper","getTemplateClass","fieldWidth","createWrapper","getContainerId","showAnimation","animationTime","onShowListEvent","hideAnimation","onHideListEvent","onSelectItemEvent","listBuilders","$item","$listContainer","builderIndex","listBuildersLength","listData","listDataLength","maxListSize","itemCounter","elementsValue","onClickEvent","onMouseOverEvent","onMouseOutEvent","onLoadEvent","showContainer","hideContainer","loadElements","getConstants","getConfiguration","getSelectedItemIndex","getItemData","checkDataUrlProperties","checkRequiredProperties","bindAllEvents","removeAutocomplete","bindFocusOut","bindKeyup","bindKeydown","bindKeypress","fieldValue","inputPhrase","hideOnEmptyPhrase","loadData","updateCategories","createAjaxSettings","convertXml","checkInputPhraseMatchResponse","checkIfDataExists","suppressKeypress","onKeyEnterEvent","eacHandles","getHandle","inputHasId","assignRandomId","fieldId","setHandle","genericTemplates","cssClass","iconLeft","iconRight","iconSrc","_cssClass","emptyStringFunction","templateClass","_fields","buildMethod","elementValue","prepareBuildMethod","listBuilder","preparedList","findMatch","maxNumberOfElements","reduceElementsInList","proccessResponseData","convertToListBuilder","xmlElementName","convertXmlToListBuilder","convertDataToListBuilder","defaultsGetValue","convertXmlToList","simpleList","constants","CONTAINER_CLASS","CONTAINER_ID","WRAPPER_CSS_CLASS","autocompleteOff","ajaxCallback","matchResponseProperty","cssClasses","minCharNumber","preparePostData","loggerEnabled","categoriesAssigned","externalObjects","printPropertiesThatDoesntExist","consol","optionsToCheck","checkPropertiesIfExist","isAssigned","prepareDefaults","mergeObjects","mergedObject","defaultUrl","defaultlistLocation","processAfterMerge","eacHandle","inputId","previousToast","toastId","toastType","$toastElement","clearOptions","clearToast","toastsToClear","clearContainer","removeToast","optionsOverride","iconClasses","subscribe","containerId","positionClass","hideMethod","hideDuration","hideEasing","preventDuplicates","shouldExit","$titleElement","$messageElement","$progressElement","$closeElement","closeHtml","hideEta","maxHideTime","toastClass","escapeHtml","titleClass","messageClass","setMessage","closeClass","progressClass","newestOnTop","ariaValue","setAria","showMethod","showDuration","showEasing","timeOut","hideToast","closeOnHover","stickAround","delayedHideToast","onclick","tapToDismiss","onCloseClick","debug","closeMethod","closeDuration","closeEasing","endTime","extendedTimeOut","percentage","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","preloadedState","enhancer","currentReducer","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","replaceReducer","nextReducer","outerSubscribe","observeState","unsubscribe","getUndefinedStateErrorMessage","actionType","_arrayLikeToArray","minLen","_unsupportedIterableToArray","defaultState","tmpEl","isLoading","generateChars","generateId","sanitise","strToEl","cleanedInput","firldChild","sortByScore","cloneObject","aKeys","bKeys","appReducer","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","nextState","previousStateForKey","nextStateForKey","combineReducers","choiceId","groupId","customProperties","activateOptions","general","passedState","Store","_store","__REDUX_DEVTOOLS_EXTENSION__","selectableChoices","hasActiveOptions","activeChoices","activeState","DEFAULT_CONFIG","renderChoiceLimit","maxItemCount","addItems","addItemFilter","removeItems","removeItemButton","editItems","duplicateItemsAllowed","searchEnabled","searchChoices","searchFloor","searchResultLimit","searchFields","resetScrollPosition","shouldSortItems","_ref$label","_ref2$label","label2","localeCompare","sensitivity","ignorePunctuation","placeholderValue","searchPlaceholderValue","prependValue","appendValue","renderSelectedChoices","loadingText","noResultsText","noChoicesText","itemSelectText","uniqueItemText","customAddItemText","addItemText","maxItemText","valueComparer","fuseOptions","callbackOnInit","callbackOnCreateTemplates","containerOuter","containerInner","inputCloned","listItems","listSingle","listDropdown","itemSelectable","itemDisabled","itemChoice","groupHeading","focusState","openState","disabledState","highlightedState","selectedState","flippedState","loadingState","noResults","noChoices","EVENTS","ACTION_TYPES","KEY_CODES","TEXT_TYPE","SELECT_ONE_TYPE","SELECT_MULTIPLE_TYPE","isFlipped","isFocussed","_onFocus","_onBlur","dropdownPos","shouldFlip","activeDescendantID","removeActiveDescendant","preventPaste","_onPaste","_onInput","_this$element","List","listHeight","listScrollPosition","elementHeight","elementPos","_animateScroll","strength","choiceListScrollTop","continueAnimation","_scrollDown","_scrollUp","WrappedElement","HTMLInputElement","HTMLSelectElement","origStyle","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","sham","Proxy","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","ReferenceError","_assertThisInitialized","WrappedInput","_WrappedElement","_inherits","joinedValues","WrappedSelect","optionData","appendDocFragment","TEMPLATES","isSelectElement","isSelectOneElement","passedElementType","itemList","_ref3","_ref4","_ref5","_ref6","isPlaceholder","deletable","REMOVE_ITEM_TEXT","removeButton","choiceList","_ref7","choiceGroup","_ref8","_ref9","_ref10","_ref11","selectText","choiceDisabled","choiceSelectable","_ref12","autocapitalize","_ref13","notice","_ref14","_ref15","Option","setIsLoading","IS_IE11","USER_DEFAULTS","Choices","invalidConfigOptions","passedElement","_isTextElement","_isSelectOneElement","_isSelectMultipleElement","_isSelectElement","includes","_templates","initialised","_initialState","_currentState","_prevState","_currentValue","_canSearch","_isScrollingOnIe","_highlightPosition","_wasTap","_placeholderValue","_generatePlaceholderValue","_baseId","_window$getComputedSt","elementDirection","_window$getComputedSt2","documentDirection","_idNames","_presetGroups","optionGroups","_presetOptions","_presetChoices","_presetItems","_render","_onKeyUp","_onKeyDown","_onClick","_onTouchMove","_onTouchEnd","_onMouseDown","_onMouseOver","_onFormReset","_onAKey","_onEnterKey","_onEscapeKey","_onDirectionKey","_onDeleteKey","_createTemplates","_createElements","_createStructure","_removeEventListeners","reveal","clearStore","runEvent","_item$groupId","_item$value","_item$label","getGroupById","groupValue","_item$groupId2","_item$value2","_item$label2","highlightItem","unhighlightItem","activeItems","_removeItem","excludedId","highlightedActiveItems","_triggerChange","preventInputFocus","distanceFromTopWindow","preventInputBlur","valueOnly","selectedItems","_setChoiceOrItem","_findAndSelectChoiceByValue","choicesArrayOrFetcher","replaceChoices","clearChoices","_handleLoadingState","setChoices","removeLoadingState","_startLoading","groupOrChoice","_addGroup","valueKey","labelKey","_addChoice","_stopLoading","shouldSetInputWidth","_isSearching","stateChanged","shouldRenderChoices","shouldRenderItems","_renderChoices","_renderItems","_this12","_this$_store","activeGroups","choiceListFragment","activePlaceholders","activeChoice","_createChoicesFragment","_createGroupsFragment","canAddItem","_canAddItem","_highlightChoice","_getTemplate","dropdownItem","itemListFragment","_createItemsFragment","_this13","getGroupChoices","groupChoices","dropdownGroup","_this14","withinGroup","_this$config","appendChoice","rendererableChoices","_rendererableChoices$","placeholderChoices","normalChoices","choiceLimit","sortedChoices","_this15","_this$config2","addItemToFragment","placeholderChoice","_addItem","itemId","itemToRemove","_selectPlaceholderChoice","_this16","passedId","getChoiceById","passedKeyCode","hasActiveDropdown","clearInput","hideDropdown","lastItem","hasHighlightedItems","removeHighlightedItems","setLoading","placeholderItem","getChild","addLoadingState","_this$config3","hasUnactiveChoices","resultCount","_searchChoices","isDuplicateValue","existsInArray","haystack","searchableChoices","needle","addEventListeners","removeEventListeners","_keyDownActions","hasFocusedInput","hasItems","keyString","BACK_KEY","DELETE_KEY","ENTER_KEY","A_KEY","ESC_KEY","UP_KEY","DOWN_KEY","PAGE_UP_KEY","PAGE_DOWN_KEY","hasCtrlDownKeyPressed","showDropdown","keyDownActions","backKey","deleteKey","userHasRemovedValue","canReactivateChoices","canSearch","_handleSearch","highlightAll","enterKey","targetWasButton","_handleButtonAction","highlightedChoice","_handleChoiceAction","downKey","pageUpKey","pageDownKey","nextEl","directionInt","selectableChoiceIdentifier","currentEl","startEl","getAdjacentEl","isScrolledIntoView","scrollToChildElement","_handleBackspace","firstChoice","isOnScrollbar","_handleItemAction","unhighlightAll","removeFocusState","_focusActions","_this17","addFocusState","_this18","_blurActions","_this19","passedEl","highlightedChoices","setActiveDescendant","_ref13$label","_ref13$choiceId","_ref13$groupId","_ref13$customProperti","_ref13$placeholder","_ref13$keyCode","passedValue","passedCustomProperties","passedLabel","passedOptionId","removeActiveItems","_ref14$label","_ref14$isSelected","_ref14$isDisabled","_ref14$groupId","_ref14$customProperti","_ref14$placeholder","_ref14$keyCode","choiceLabel","choiceElementId","_this20","_ref15$valueKey","_ref15$labelKey","isOptDisabled","_this$_templates$temp","userTemplates","conceal","_addPredefinedGroups","_addPredefinedChoices","_addPredefinedItems","_this21","placeholderOption","_this22","hasSelectedChoice","firstEnabledChoiceIndex","_this23","_this24","_this25","foundChoice","_this$config4","preventExtensions","templates","choicesinputTargets","autoConstructChoices","jsonStringArray","choicesarray","itemsarray","choicesArray","itemsArray","jsonData","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-83447bae33f45d6610e3.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 156);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n//! moment.js\n//! version : 2.27.0\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidEra && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [],\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n } // Moment prototype object\n\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (_typeof(arguments[i]) === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\n\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return typeof Function !== 'undefined' && input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n\n this._config = config; // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.match(formattingTokens).map(function (tok) {\n if (tok === 'MMMM' || tok === 'MM' || tok === 'DD' || tok === 'dddd') {\n return tok.slice(1);\n }\n\n return tok;\n }).join('');\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years'\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output) ? output(number, withoutSuffix, string, isFuture) : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n value = toInt(value);\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\n\n return this;\n }\n\n function stringSet(units, value) {\n if (_typeof(units) === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n\n return this;\n }\n\n var match1 = /\\d/,\n // 0 - 9\n match2 = /\\d\\d/,\n // 00 - 99\n match3 = /\\d{3}/,\n // 000 - 999\n match4 = /\\d{4}/,\n // 0000 - 9999\n match6 = /[+-]?\\d{6}/,\n // -999999 - 999999\n match1to2 = /\\d\\d?/,\n // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/,\n // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/,\n // 99999 - 999999\n match1to3 = /\\d{1,3}/,\n // 0 - 999\n match1to4 = /\\d{1,4}/,\n // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/,\n // -999999 - 999999\n matchUnsigned = /\\d+/,\n // 0 - inf\n matchSigned = /[+-]?\\d+/,\n // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi,\n // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi,\n // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/,\n // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return (n % x + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date; // the date constructor remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n } // start-of-first-week - start-of-year\n\n\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0,\n // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 6th is the first week of the year.\n\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n }); // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n } // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n }); // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n } // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n\n\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && commonPrefix(split, next) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire; // TODO: Find a better way to register and load all the locales in Node\n\n if (locales[name] === undefined && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n\n return locales[name];\n } // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n\n\n function getSetGlobalLocale(key, values) {\n var data;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n } // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n\n\n getSetGlobalLocale(name);\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n } // backwards compat for now: also set the locale\n\n\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n\n if (locale) {\n return locale;\n }\n\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n\n\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/], ['YYYYMM', /\\d{6}/, false], ['YYYY', /\\d{4}/, false]],\n // iso time formats and regexes\n isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n }; // date from iso format\n\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n\n if (match) {\n parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged and will be removed in an upcoming major release. Please refer to ' + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // Pick the first defined of two or three arguments.\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\n\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n } // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n\n\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n } // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n } // constant that refers to the ISO standard\n\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); // handle era\n\n era = getParsingFlags(config).era;\n\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (scoreToBeat == null || currentScore < scoreToBeat || validFormatFound) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }),\n prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }); // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n\n for (key in m) {\n if (hasOwnProp(m, key) && !(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n\n this._days = +days + weeks * 7; // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n } // compare two arrays, return the number of differences\n\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n } // HOOKS\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n\n\n hooks.updateOffset = function () {}; // MOMENTS\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if (match = aspNetRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n\n };\n } else if (match = isoRegex.exec(input)) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign)\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n } // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n\n\n function isMomentInput(input) {\n return isMoment(input) || isDate(input) || isString(input) || isNumber(input) || isNumberOrStringArray(input) || isMomentInputObject(input) || input === null || input === undefined;\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['years', 'year', 'y', 'months', 'month', 'M', 'days', 'day', 'd', 'dates', 'date', 'D', 'hours', 'hour', 'h', 'minutes', 'minute', 'm', 'seconds', 'second', 's', 'milliseconds', 'millisecond', 'ms'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n\n if (arrayTest) {\n dataTypeTest = input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = ['sameDay', 'nextDay', 'lastDay', 'nextWeek', 'lastWeek', 'sameElse'],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n } // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n\n\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n } // difference in months\n\n\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n } // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (_typeof(eras[i].since)) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (_typeof(eras[i].until)) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1; // truncate time\n\n val = this.startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until || eras[i].until <= val && val <= eras[i].since) {\n return (this.year() - hooks(eras[i].since).year()) * dir + eras[i].offset;\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp('^(' + narrowPieces.join('|') + ')', 'i');\n } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token, getSetMillisecond;\n\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [{\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD'\n }, {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC'\n }],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n\n var days,\n months,\n milliseconds = this._milliseconds;\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month/week\n w: null,\n // weeks to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days];\n\n if (thresholds.w != null) {\n a = a || weeks <= 1 && ['w'] || weeks < thresholds.w && ['ww', weeks];\n }\n\n a = a || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (_typeof(argWithSuffix) === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n\n if (_typeof(argThresholds) === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n } // 3600 seconds -> 60 minutes -> 1 hour\n\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (years ? ymSign + years + 'Y' : '') + (months ? ymSign + months + 'M' : '') + (days ? daysSign + days + 'D' : '') + (hours || minutes || seconds ? 'T' : '') + (hours ? hmsSign + hours + 'H' : '') + (minutes ? hmsSign + minutes + 'M' : '') + (seconds ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); //! moment.js\n\n hooks.version = '2.27.0';\n setHookCallback(createLocal);\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.5.1\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function\n /* fnDone, fnFail, fnProgress */\n pipe() {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n .catch(function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function which(event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var final = jQuery.cssProps[name] || vendorProps[name];\n\n if (final) {\n return final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s.throws) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n\n var _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n };\n\n var _config = _objectSpread({}, _default, initial);\n\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n\n var config = _objectSpread({}, _config);\n\n WINDOW.FontAwesomeConfig = config;\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n var functions = [];\n\n var listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n\n var loaded = false;\n\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n }\n\n function domready(fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n var PENDING = 'pending';\n var SETTLED = 'settled';\n var FULFILLED = 'fulfilled';\n var REJECTED = 'rejected';\n\n var NOOP = function NOOP() {};\n\n var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\n var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\n var asyncQueue = [];\n var asyncTimer;\n\n function asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n }\n\n function asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n }\n\n function invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n }\n\n function invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n }\n\n function handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n }\n\n function resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n }\n\n function fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n }\n\n function publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n }\n\n function publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n }\n\n function publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n }\n\n function notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n }\n /**\n * @class\n */\n\n\n function P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n }\n\n P.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n };\n\n P.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n };\n\n P.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n };\n\n P.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n };\n\n P.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n };\n\n var picked = typeof Promise === 'function' ? Promise : P;\n var d = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n\n function nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n }\n\n function toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n }\n\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n\n function getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n }\n\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n\n function fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n }\n\n function deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n }\n\n function makeIconMasking(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n }\n\n function makeIconStandard(_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n }\n\n function asIcon(_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n\n function asSymbol(_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n }\n\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var widthClass = \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: extra.styles\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n\n var noop$1 = function noop() {};\n\n var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"5.13.0\\\"\";\n\n var begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n\n var end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n\n var perf = {\n begin: begin,\n end: end\n };\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n };\n\n function toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n }\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var styles = namespace.styles,\n shims = namespace.shims;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = ('far' in styles);\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n };\n\n build();\n\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n\n var styles$1 = namespace.styles;\n\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n\n function getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && ['fas', 'far', 'fal', 'fad', 'fab', 'fa'].indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n }\n\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n\n var noop$2 = function noop() {};\n\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n\n function performOperationSync(op) {\n op();\n }\n\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n\n var disabled = false;\n\n function disableObservation() {\n disabled = true;\n }\n\n function enableObservation() {\n disabled = false;\n }\n\n var mo = null;\n\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function styleParser(node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n }\n\n function classParser(node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n }\n\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n };\n\n function transformParser(node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n }\n\n function symbolParser(node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n }\n\n function attributesParser(node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n }\n\n function maskParser(node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n }\n\n function blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n\n function parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n }\n\n function MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n }\n\n MissingIcon.prototype = Object.create(Error.prototype);\n MissingIcon.prototype.constructor = MissingIcon;\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n var RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n };\n\n var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n });\n\n var DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n };\n var QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n };\n var EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n };\n var missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n };\n var styles$2 = namespace.styles;\n\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n\n function findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n var headers = {};\n\n if (_typeof(WINDOW.FontAwesomeKitConfig) === 'object' && typeof window.FontAwesomeKitConfig.token === 'string') {\n headers['fa-kit-token'] = WINDOW.FontAwesomeKitConfig.token;\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n }\n\n var styles$3 = namespace.styles;\n\n function generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n }\n\n function generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n }\n\n function generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n }\n\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n }\n\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands'].indexOf(fontFamily[1]) ? STYLE_TO_PREFIX[fontFamily[1].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(content.length === 3 ? content.substr(1, 1) : content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n\n function replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n }\n\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n\n function searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n\n var baseStyles = \"svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}\";\n\n function css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n }\n\n var Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n }();\n\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n }\n\n function apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n\n function findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n }\n\n var library = new Library();\n\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n };\n\n var _cssInserted = false;\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n };\n var parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n };\n var icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n });\n\n var text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n\n var counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n\n var layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n };\n\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n };\n\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n\n function bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n\n domready(function () {\n autoReplace();\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements\n });\n });\n }\n\n namespace.hooks = _objectSpread({}, namespace.hooks, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, icons);\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n build();\n autoReplace();\n }\n });\n }\n\n bunker(bootstrap);\n})();","var map = {\n\t\"./choices_controller.js\": 203,\n\t\"./hello_controller.js\": 177,\n\t\"./places_controller.js\": 178,\n\t\"./posts_controller.js\": 179,\n\t\"./search_controller.js\": 195\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 173;","module.exports = function (originalModule) {\n if (!originalModule.webpackPolyfill) {\n var module = Object.create(originalModule); // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n Object.defineProperty(module, \"exports\", {\n enumerable: true\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","var api = require(\"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../css-loader/dist/cjs.js??ref--6-1!../../../postcss-loader/src/index.js??ref--6-2!../../../sass-loader/dist/cjs.js??ref--6-3!./choices.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \".choices{position:relative;margin-bottom:24px;font-size:16px}.choices:focus{outline:none}.choices:last-child{margin-bottom:0}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none !important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.5}.choices[data-type*=select-one] .choices__button:hover,.choices[data-type*=select-one] .choices__button:focus{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0px 0px 0px 2px #00bcd4}.choices[data-type*=select-one] .choices__item[data-value=\\\"\\\"] .choices__button{display:none}.choices[data-type*=select-one]:after{content:\\\"\\\";height:0;width:0;border-style:solid;border-color:#333 transparent transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333 transparent;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin-top:0;margin-right:-4px;margin-bottom:0;margin-left:8px;padding-left:16px;border-left:1px solid #008fa1;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=text] .choices__button:hover,.choices[data-type*=text] .choices__button:focus{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#00bcd4;border:1px solid #00a5bb;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#00a5bb;border:1px solid #008fa1}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown{visibility:hidden;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all;will-change:visibility}.choices__list--dropdown.is-active{visibility:visible}.is-open .choices__list--dropdown{border-color:#b7b7b7}.is-flipped .choices__list--dropdown{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item{text-align:right}@media(min-width: 640px){.choices__list--dropdown .choices__item--selectable{padding-right:100px}.choices__list--dropdown .choices__item--selectable:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus{outline:none}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input:focus{outline:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}\", \"\",{\"version\":3,\"sources\":[\"/home/henry/Deployments/fs2020/node_modules/choices.js/src/styles/choices.scss\"],\"names\":[],\"mappings\":\"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\",\"file\":\"choices.scss\",\"sourcesContent\":[\"/*===============================\\n= Choices =\\n===============================*/\\n\\n$choices-selector: 'choices' !default;\\n$choices-font-size-lg: 16px !default;\\n$choices-font-size-md: 14px !default;\\n$choices-font-size-sm: 12px !default;\\n$choices-guttering: 24px !default;\\n$choices-border-radius: 2.5px !default;\\n$choices-border-radius-item: 20px !default;\\n$choices-bg-color: #f9f9f9 !default;\\n$choices-bg-color-disabled: #eaeaea !default;\\n$choices-bg-color-dropdown: #ffffff !default;\\n$choices-text-color: #333333 !default;\\n$choices-keyline-color: #dddddd !default;\\n$choices-primary-color: #00bcd4 !default;\\n$choices-disabled-color: #eaeaea !default;\\n$choices-highlight-color: $choices-primary-color !default;\\n$choices-button-dimension: 8px !default;\\n$choices-button-offset: 8px !default;\\n$choices-icon-cross: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==) !default;\\n$choices-icon-cross-inverse: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==) !default;\\n\\n.#{$choices-selector} {\\n position: relative;\\n margin-bottom: $choices-guttering;\\n font-size: $choices-font-size-lg;\\n &:focus {\\n outline: none;\\n }\\n &:last-child {\\n margin-bottom: 0;\\n }\\n &.is-disabled {\\n .#{$choices-selector}__inner,\\n .#{$choices-selector}__input {\\n background-color: $choices-bg-color-disabled;\\n cursor: not-allowed;\\n user-select: none;\\n }\\n .#{$choices-selector}__item {\\n cursor: not-allowed;\\n }\\n }\\n\\n [hidden] {\\n display: none !important;\\n }\\n}\\n\\n.#{$choices-selector}[data-type*='select-one'] {\\n cursor: pointer;\\n .#{$choices-selector}__inner {\\n padding-bottom: 7.5px;\\n }\\n .#{$choices-selector}__input {\\n display: block;\\n width: 100%;\\n padding: 10px;\\n border-bottom: 1px solid $choices-keyline-color;\\n background-color: #ffffff;\\n margin: 0;\\n }\\n .#{$choices-selector}__button {\\n background-image: $choices-icon-cross-inverse;\\n padding: 0;\\n background-size: 8px;\\n position: absolute;\\n top: 50%;\\n right: 0;\\n margin-top: -10px;\\n margin-right: 25px;\\n height: 20px;\\n width: 20px;\\n border-radius: 10em;\\n opacity: 0.5;\\n &:hover,\\n &:focus {\\n opacity: 1;\\n }\\n &:focus {\\n box-shadow: 0px 0px 0px 2px $choices-highlight-color;\\n }\\n }\\n .#{$choices-selector}__item[data-value=''] .#{$choices-selector}__button {\\n display: none;\\n }\\n &:after {\\n content: '';\\n height: 0;\\n width: 0;\\n border-style: solid;\\n border-color: $choices-text-color transparent transparent transparent;\\n border-width: 5px;\\n position: absolute;\\n right: 11.5px;\\n top: 50%;\\n margin-top: -2.5px;\\n pointer-events: none;\\n }\\n &.is-open:after {\\n border-color: transparent transparent $choices-text-color transparent;\\n margin-top: -7.5px;\\n }\\n &[dir='rtl'] {\\n &:after {\\n left: 11.5px;\\n right: auto;\\n }\\n .#{$choices-selector}__button {\\n right: auto;\\n left: 0;\\n margin-left: 25px;\\n margin-right: 0;\\n }\\n }\\n}\\n\\n.#{$choices-selector}[data-type*='select-multiple'],\\n.#{$choices-selector}[data-type*='text'] {\\n .#{$choices-selector}__inner {\\n cursor: text;\\n }\\n .#{$choices-selector}__button {\\n position: relative;\\n display: inline-block;\\n margin-top: 0;\\n margin-right: -$choices-button-offset/2;\\n margin-bottom: 0;\\n margin-left: $choices-button-offset;\\n padding-left: $choices-button-offset * 2;\\n border-left: 1px solid darken($choices-primary-color, 10%);\\n background-image: $choices-icon-cross;\\n background-size: $choices-button-dimension;\\n width: $choices-button-dimension;\\n line-height: 1;\\n opacity: 0.75;\\n border-radius: 0;\\n &:hover,\\n &:focus {\\n opacity: 1;\\n }\\n }\\n}\\n\\n.#{$choices-selector}__inner {\\n display: inline-block;\\n vertical-align: top;\\n width: 100%;\\n background-color: $choices-bg-color;\\n padding: 7.5px 7.5px 3.75px;\\n border: 1px solid $choices-keyline-color;\\n border-radius: $choices-border-radius;\\n font-size: $choices-font-size-md;\\n min-height: 44px;\\n overflow: hidden;\\n .is-focused &,\\n .is-open & {\\n border-color: darken($choices-keyline-color, 15%);\\n }\\n .is-open & {\\n border-radius: $choices-border-radius $choices-border-radius 0 0;\\n }\\n .is-flipped.is-open & {\\n border-radius: 0 0 $choices-border-radius $choices-border-radius;\\n }\\n}\\n\\n.#{$choices-selector}__list {\\n margin: 0;\\n padding-left: 0;\\n list-style: none;\\n}\\n\\n.#{$choices-selector}__list--single {\\n display: inline-block;\\n padding: 4px 16px 4px 4px;\\n width: 100%;\\n [dir='rtl'] & {\\n padding-right: 4px;\\n padding-left: 16px;\\n }\\n .#{$choices-selector}__item {\\n width: 100%;\\n }\\n}\\n\\n.#{$choices-selector}__list--multiple {\\n display: inline;\\n .#{$choices-selector}__item {\\n display: inline-block;\\n vertical-align: middle;\\n border-radius: $choices-border-radius-item;\\n padding: 4px 10px;\\n font-size: $choices-font-size-sm;\\n font-weight: 500;\\n margin-right: 3.75px;\\n margin-bottom: 3.75px;\\n background-color: $choices-primary-color;\\n border: 1px solid darken($choices-primary-color, 5%);\\n color: #ffffff;\\n word-break: break-all;\\n box-sizing: border-box;\\n &[data-deletable] {\\n padding-right: 5px;\\n }\\n [dir='rtl'] & {\\n margin-right: 0;\\n margin-left: 3.75px;\\n }\\n &.is-highlighted {\\n background-color: darken($choices-primary-color, 5%);\\n border: 1px solid darken($choices-primary-color, 10%);\\n }\\n .is-disabled & {\\n background-color: darken($choices-disabled-color, 25%);\\n border: 1px solid darken($choices-disabled-color, 35%);\\n }\\n }\\n}\\n\\n.#{$choices-selector}__list--dropdown {\\n visibility: hidden;\\n z-index: 1;\\n position: absolute;\\n width: 100%;\\n background-color: $choices-bg-color-dropdown;\\n border: 1px solid $choices-keyline-color;\\n top: 100%;\\n margin-top: -1px;\\n border-bottom-left-radius: $choices-border-radius;\\n border-bottom-right-radius: $choices-border-radius;\\n overflow: hidden;\\n word-break: break-all;\\n will-change: visibility;\\n &.is-active {\\n visibility: visible;\\n }\\n .is-open & {\\n border-color: darken($choices-keyline-color, 15%);\\n }\\n .is-flipped & {\\n top: auto;\\n bottom: 100%;\\n margin-top: 0;\\n margin-bottom: -1px;\\n border-radius: 0.25rem 0.25rem 0 0;\\n }\\n .#{$choices-selector}__list {\\n position: relative;\\n max-height: 300px;\\n overflow: auto;\\n -webkit-overflow-scrolling: touch;\\n will-change: scroll-position;\\n }\\n .#{$choices-selector}__item {\\n position: relative;\\n padding: 10px;\\n font-size: $choices-font-size-md;\\n [dir='rtl'] & {\\n text-align: right;\\n }\\n }\\n .#{$choices-selector}__item--selectable {\\n @media (min-width: 640px) {\\n padding-right: 100px;\\n &:after {\\n content: attr(data-select-text);\\n font-size: $choices-font-size-sm;\\n opacity: 0;\\n position: absolute;\\n right: 10px;\\n top: 50%;\\n transform: translateY(-50%);\\n }\\n [dir='rtl'] & {\\n text-align: right;\\n padding-left: 100px;\\n padding-right: 10px;\\n &:after {\\n right: auto;\\n left: 10px;\\n }\\n }\\n }\\n &.is-highlighted {\\n background-color: mix(#000000, #ffffff, 5%);\\n &:after {\\n opacity: 0.5;\\n }\\n }\\n }\\n}\\n\\n.#{$choices-selector}__item {\\n cursor: default;\\n}\\n\\n.#{$choices-selector}__item--selectable {\\n cursor: pointer;\\n}\\n\\n.#{$choices-selector}__item--disabled {\\n cursor: not-allowed;\\n user-select: none;\\n opacity: 0.5;\\n}\\n\\n.#{$choices-selector}__heading {\\n font-weight: 600;\\n font-size: $choices-font-size-sm;\\n padding: 10px;\\n border-bottom: 1px solid lighten($choices-keyline-color, 10%);\\n color: lighten(#333, 30%);\\n}\\n\\n.#{$choices-selector}__button {\\n text-indent: -9999px;\\n -webkit-appearance: none;\\n appearance: none;\\n border: 0;\\n background-color: transparent;\\n background-repeat: no-repeat;\\n background-position: center;\\n cursor: pointer;\\n &:focus {\\n outline: none;\\n }\\n}\\n\\n.#{$choices-selector}__input {\\n display: inline-block;\\n vertical-align: baseline;\\n background-color: $choices-bg-color;\\n font-size: $choices-font-size-md;\\n margin-bottom: 5px;\\n border: 0;\\n border-radius: 0;\\n max-width: 100%;\\n padding: 4px 0 4px 2px;\\n &:focus {\\n outline: 0;\\n }\\n [dir='rtl'] & {\\n padding-right: 2px;\\n padding-left: 0;\\n }\\n}\\n\\n.#{$choices-selector}__placeholder {\\n opacity: 0.5;\\n}\\n\\n/*===== End of Choices ======*/\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","// Visit The Stimulus Handbook for more details \n// https://stimulusjs.org/handbook/introduction\n// \n// This example controller works with specially annotated HTML like:\n//\n//
\n//

\n//
\n\nimport { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [\"myoutput\"]\n\n connect() {\n // console.log(\"hello from stimulusjs\")\n this.myoutputTarget.textContent = 'Hello, ' + this.data.get(\"varone\") + \" \" + this.data.get(\"vartwo\") + ', from Stimulus!'\n }\n}","import { Controller } from \"stimulus\"\n\nexport default class extends Controller {\n static targets = [\"myoutput\"]\n\n initialize() {\n // for this form, prevent enter key from auto submitting\n $(document).on('turbolinks:load', () => {\n $('form').on('keypress', e => {\n if (e.keyCode == 13) {\n return false;\n }\n });\n });\n }\n\n connect() {\n // debug message\n // this.myoutputTarget.textContent = 'Display map for: ' + this.data.get(\"longitude\") + \",\" + this.data.get(\"latitude\") + \" \" + this.data.get(\"funcname\")\n\n switch (this.data.get(\"funcname\")) {\n case \"initMap\":\n this.initMap(this.data.get(\"latitude\"), this.data.get(\"longitude\"))\n break\n\n case \"initMap2\":\n this.initMap2()\n break\n default:\n alert(\"No function on connect\")\n break\n }\n }\n\n initMap(lat, lng) {\n var myCoords = new google.maps.LatLng(lat, lng)\n var mapOptions = {\n center: myCoords,\n zoom: 14\n }\n this.map = new google.maps.Map(document.getElementById('map'), mapOptions)\n this.marker = new google.maps.Marker({\n position: myCoords,\n map: this.map\n })\n // alert(\"initMap\")\n }\n\n initMap2() {\n var lat = document.getElementById('place_latitude').value\n var lng = document.getElementById('place_longitude').value\n\n // if not defined create default position\n if (!lat || !lng) {\n lat = 51.5\n lng = -0.125\n document.getElementById('place_latitude').value = lat\n document.getElementById('place_longitude').value = lng\n }\n\n var myCoords = new google.maps.LatLng(lat, lng)\n var mapOptions = {\n center: myCoords,\n zoom: 14\n }\n this.map = new google.maps.Map(document.getElementById('map2'), mapOptions)\n this.marker = new google.maps.Marker({\n position: myCoords,\n animation: google.maps.Animation.DROP,\n map: this.map,\n draggable: true\n })\n\n // add autocomplete\n this.autocomplete = new google.maps.places.Autocomplete(document.getElementById('place_name'))\n this.autocomplete.bindTo('bounds', this.map)\n this.autocomplete.setFields(['address_components', 'geometry', 'icon', 'name'])\n this.autocomplete.addListener('place_changed', this.placeChanged.bind(this))\n\n // refresh marker position and recenter map on marker\n function refreshMarker() {\n var lat = document.getElementById('place_latitude').value\n var lng = document.getElementById('place_longitude').value\n var myCoords = new google.maps.LatLng(lat, lng)\n this.marker.setPosition(myCoords)\n this.map.setCenter(this.marker.getPosition())\n }\n // when input values change call refreshMarker\n document.getElementById('place_latitude').onchange = refreshMarker\n document.getElementById('place_longitude').onchange = refreshMarker\n // when marker is dragged update input values\n\n\n google.maps.event.addListener(this.marker, 'drag', function() {\n // console.log('Dragging...')\n // console.log(this.getPosition().lat())\n // console.log(this.getPosition().lng())\n var newlat = (Math.round(this.getPosition().lat() * 1000000)) / 1000000\n var newlng = (Math.round(this.getPosition().lng() * 1000000)) / 1000000\n document.getElementById('place_latitude').value = newlat\n document.getElementById('place_longitude').value = newlng\n })\n\n google.maps.event.addListener(this.marker, 'dragend', function() {\n // console.log('Drag end...')\n // console.log(this.getPosition().lat())\n // console.log(this.getPosition().lng())\n var myCoords = new google.maps.LatLng(this.getPosition().lat(), this.getPosition().lng())\n this.map.panTo(myCoords)\n })\n\n // alert(\"initMap2\")\n }\n\n placeChanged() {\n let place = this.autocomplete.getPlace()\n\n if (!place.geometry) {\n // window.alert(`No details available for input: ${place.name}`)\n return\n }\n\n if (place.geometry.viewport) {\n this.map.fitBounds(place.geometry.viewport)\n } else {\n this.map.setCenter(place.geometry.location)\n this.map.setZoom(17)\n }\n\n this.marker.setPosition(place.geometry.location)\n this.marker.setVisible(true)\n\n document.getElementById('place_latitude').value = place.geometry.location.lat()\n document.getElementById('place_longitude').value = place.geometry.location.lng()\n }\n\n}","import { Controller } from \"stimulus\"\n\nimport tinymce from 'tinymce/tinymce';\nimport 'tinymce/plugins/table';\nimport 'tinymce/plugins/lists';\nimport 'tinymce/plugins/image';\nimport 'tinymce/plugins/imagetools';\nimport 'tinymce/plugins/media';\nimport 'tinymce/plugins/code';\n// MUST declare the themes to pull into webpacker; use filemanager to navigate the node modules to see which files to import\n// the chrome console also gives clues to what is missing and causing the webpacker load to fail\nimport 'tinymce/themes/silver/theme';\nimport 'tinymce/skins/ui/oxide/skin.min.css';\n\n// import 'tinymce/skins/content/default/content.css';\n\n\nexport default class extends Controller {\n static targets = [\"myoutput\"]\n\n initialize() {\n this.tinymceremove();\n this.tinymcecontrol();\n }\n\n connect() {\n // debug message\n // this.myoutputTarget.textContent = 'TinyMCE loaded!';\n }\n\n disconnect() {}\n tinymceremove() {\n // alert('remove');\n tinymce.remove();\n }\n\n tinymcecontrol() {\n // alert('init');\n tinymce.init({\n // declare false for skin and content_css as workarounds\n skin: false,\n content_css: false,\n selector: 'textarea.tinymce',\n // some other settings, like height, language, // order of buttons on your toolbar etc.\n plugins: ['table', 'lists', 'image', 'imagetools', 'media', 'code'],\n // enable title field in the Image dialog\n image_title: true,\n // enable automatic uploads of images represented by blob or data URIs\n automatic_uploads: true,\n // URL of our upload handler (for more details check: https://www.tinymce.com/docs/configure/file-image-upload/#images_upload_url)\n // images_upload_url: 'postAcceptor.php',\n // here we add custom filepicker only to Image dialog\n file_picker_types: 'image',\n // and here's our custom image picker\n file_picker_callback: function(cb, value, meta) {\n var input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('accept', 'image/*');\n\n // Note: In modern browsers input[type=\"file\"] is functional without \n // even adding it to the DOM, but that might not be the case in some older\n // or quirky browsers like IE, so you might want to add it to the DOM\n // just in case, and visually hide it. And do not forget do remove it\n // once you do not need it anymore.\n\n input.onchange = function() {\n var file = this.files[0];\n\n var reader = new FileReader();\n reader.onload = function() {\n // Note: Now we need to register the blob in TinyMCEs image blob\n // registry. In the next release this part hopefully won't be\n // necessary, as we are looking to handle it internally.\n var id = 'blobid' + (new Date()).getTime();\n var blobCache = tinymce.activeEditor.editorUpload.blobCache;\n var base64 = reader.result.split(',')[1];\n var blobInfo = blobCache.create(id, file, base64);\n blobCache.add(blobInfo);\n\n // call the callback and populate the Title field with the file name\n cb(blobInfo.blobUri(), { title: file.name });\n };\n reader.readAsDataURL(file);\n };\n\n input.click();\n }\n });\n }\n}","// Exports the \"table\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/table')\n// ES2015:\n// import 'tinymce/plugins/table'\nrequire('./plugin.js');","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.3 (2022-02-09)\n */\n(function () {\n 'use strict';\n\n var typeOf = function typeOf(x) {\n var t = _typeof(x);\n\n if (x === null) {\n return 'null';\n } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n } else {\n return t;\n }\n };\n\n var isType$1 = function isType$1(type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n\n var isSimpleType = function isSimpleType(type) {\n return function (value) {\n return _typeof(value) === type;\n };\n };\n\n var eq$2 = function eq$2(t) {\n return function (a) {\n return t === a;\n };\n };\n\n var isString = isType$1('string');\n var isObject = isType$1('object');\n var isArray = isType$1('array');\n var isNull = eq$2(null);\n var isBoolean = isSimpleType('boolean');\n var isUndefined = eq$2(undefined);\n\n var isNullable = function isNullable(a) {\n return a === null || a === undefined;\n };\n\n var isNonNullable = function isNonNullable(a) {\n return !isNullable(a);\n };\n\n var isFunction = isSimpleType('function');\n var isNumber = isSimpleType('number');\n\n var noop = function noop() {};\n\n var compose = function compose(fa, fb) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return fa(fb.apply(null, args));\n };\n };\n\n var compose1 = function compose1(fbc, fab) {\n return function (a) {\n return fbc(fab(a));\n };\n };\n\n var constant = function constant(value) {\n return function () {\n return value;\n };\n };\n\n var identity = function identity(x) {\n return x;\n };\n\n var tripleEquals = function tripleEquals(a, b) {\n return a === b;\n };\n\n function curry(fn) {\n var initialArgs = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n\n return function () {\n var restArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n\n var not = function not(f) {\n return function (t) {\n return !f(t);\n };\n };\n\n var die = function die(msg) {\n return function () {\n throw new Error(msg);\n };\n };\n\n var never = constant(false);\n var always = constant(true);\n\n var none$2 = function none$2() {\n return NONE;\n };\n\n var NONE = function () {\n var call = function call(thunk) {\n return thunk();\n };\n\n var id = identity;\n var me = {\n fold: function fold(n, _s) {\n return n();\n },\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function getOrDie(msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none$2,\n each: noop,\n bind: none$2,\n exists: never,\n forall: always,\n filter: function filter() {\n return none$2();\n },\n toArray: function toArray() {\n return [];\n },\n toString: constant('none()')\n };\n return me;\n }();\n\n var some = function some(a) {\n var constant_a = constant(a);\n\n var self = function self() {\n return me;\n };\n\n var bind = function bind(f) {\n return f(a);\n };\n\n var me = {\n fold: function fold(n, s) {\n return s(a);\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function map(f) {\n return some(f(a));\n },\n each: function each(f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function filter(f) {\n return f(a) ? me : NONE;\n },\n toArray: function toArray() {\n return [a];\n },\n toString: function toString() {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n\n var from$1 = function from$1(value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n\n var Optional = {\n some: some,\n none: none$2,\n from: from$1\n };\n var nativeSlice = Array.prototype.slice;\n var nativeIndexOf = Array.prototype.indexOf;\n var nativePush = Array.prototype.push;\n\n var rawIndexOf = function rawIndexOf(ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n\n var contains$2 = function contains$2(xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n\n var exists = function exists(xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return true;\n }\n }\n\n return false;\n };\n\n var range$1 = function range$1(num, f) {\n var r = [];\n\n for (var i = 0; i < num; i++) {\n r.push(f(i));\n }\n\n return r;\n };\n\n var map$1 = function map$1(xs, f) {\n var len = xs.length;\n var r = new Array(len);\n\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n\n return r;\n };\n\n var each$2 = function each$2(xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n\n var eachr = function eachr(xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i);\n }\n };\n\n var partition = function partition(xs, pred) {\n var pass = [];\n var fail = [];\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n\n return {\n pass: pass,\n fail: fail\n };\n };\n\n var filter$2 = function filter$2(xs, pred) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n r.push(x);\n }\n }\n\n return r;\n };\n\n var foldr = function foldr(xs, f, acc) {\n eachr(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n\n var foldl = function foldl(xs, f, acc) {\n each$2(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n\n var findUntil = function findUntil(xs, pred, until) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n\n return Optional.none();\n };\n\n var find$1 = function find$1(xs, pred) {\n return findUntil(xs, pred, never);\n };\n\n var findIndex = function findIndex(xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n\n return Optional.none();\n };\n\n var flatten$1 = function flatten$1(xs) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n\n nativePush.apply(r, xs[i]);\n }\n\n return r;\n };\n\n var bind$2 = function bind$2(xs, f) {\n return flatten$1(map$1(xs, f));\n };\n\n var forall = function forall(xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n\n if (pred(x, i) !== true) {\n return false;\n }\n }\n\n return true;\n };\n\n var reverse = function reverse(xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n\n var mapToObject = function mapToObject(xs, f) {\n var r = {};\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n r[String(x)] = f(x, i);\n }\n\n return r;\n };\n\n var pure = function pure(x) {\n return [x];\n };\n\n var sort$1 = function sort$1(xs, comparator) {\n var copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n\n var get$d = function get$d(xs, i) {\n return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n };\n\n var head = function head(xs) {\n return get$d(xs, 0);\n };\n\n var last$2 = function last$2(xs) {\n return get$d(xs, xs.length - 1);\n };\n\n var findMap = function findMap(arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n\n if (r.isSome()) {\n return r;\n }\n }\n\n return Optional.none();\n };\n\n var _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n };\n\n function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n }\n\n var cached = function cached(f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n\n return r;\n };\n };\n\n var DeviceType = function DeviceType(os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n var firstMatch = function firstMatch(regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n\n if (x.test(s)) {\n return x;\n }\n }\n\n return undefined;\n };\n\n var find = function find(regexes, agent) {\n var r = firstMatch(regexes, agent);\n\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n\n var group = function group(i) {\n return Number(agent.replace(r, '$' + i));\n };\n\n return nu$2(group(1), group(2));\n };\n\n var detect$6 = function detect$6(versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n\n if (versionRegexes.length === 0) {\n return unknown$2();\n }\n\n return find(versionRegexes, cleanedAgent);\n };\n\n var unknown$2 = function unknown$2() {\n return nu$2(0, 0);\n };\n\n var nu$2 = function nu$2(major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n\n var Version = {\n nu: nu$2,\n detect: detect$6,\n unknown: unknown$2\n };\n\n var detectBrowser$1 = function detectBrowser$1(browsers, userAgentData) {\n return findMap(userAgentData.brands, function (uaBrand) {\n var lcBrand = uaBrand.brand.toLowerCase();\n return find$1(browsers, function (browser) {\n var _a;\n\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(function (info) {\n return {\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n };\n });\n });\n };\n\n var detect$5 = function detect$5(candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find$1(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n\n var detectBrowser = function detectBrowser(browsers, userAgent) {\n return detect$5(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n\n var detectOs = function detectOs(oses, userAgent) {\n return detect$5(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n\n var removeFromStart = function removeFromStart(str, numChars) {\n return str.substring(numChars);\n };\n\n var checkRange = function checkRange(str, substr, start) {\n return substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n };\n\n var removeLeading = function removeLeading(str, prefix) {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n\n var contains$1 = function contains$1(str, substr) {\n return str.indexOf(substr) !== -1;\n };\n\n var startsWith = function startsWith(str, prefix) {\n return checkRange(str, prefix, 0);\n };\n\n var endsWith = function endsWith(str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n\n var blank = function blank(r) {\n return function (s) {\n return s.replace(r, '');\n };\n };\n\n var trim = blank(/^\\s+|\\s+$/g);\n\n var isNotEmpty = function isNotEmpty(s) {\n return s.length > 0;\n };\n\n var isEmpty$1 = function isEmpty$1(s) {\n return !isNotEmpty(s);\n };\n\n var toFloat = function toFloat(value) {\n var num = parseFloat(value);\n return isNaN(num) ? Optional.none() : Optional.some(num);\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n\n var checkContains = function checkContains(target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n\n var browsers = [{\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function search(uastring) {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n }, {\n name: 'Chrome',\n brand: 'Chromium',\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/, normalVersionRegex],\n search: function search(uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n }, {\n name: 'IE',\n versionRegexes: [/.*?msie\\ ?([0-9]+)\\.([0-9]+).*/, /.*?rv:([0-9]+)\\.([0-9]+).*/],\n search: function search(uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n }, {\n name: 'Opera',\n versionRegexes: [normalVersionRegex, /.*?opera\\/([0-9]+)\\.([0-9]+).*/],\n search: checkContains('opera')\n }, {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n }, {\n name: 'Safari',\n versionRegexes: [normalVersionRegex, /.*?cpu os ([0-9]+)_([0-9]+).*/],\n search: function search(uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }];\n var oses = [{\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n }, {\n name: 'iOS',\n search: function search(uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [/.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/]\n }, {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n }, {\n name: 'OSX',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n }, {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n }, {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n }, {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }, {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n\n var unknown$1 = function unknown$1() {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n\n var nu$1 = function nu$1(info) {\n var current = info.current;\n var version = info.version;\n\n var isBrowser = function isBrowser(name) {\n return function () {\n return current === name;\n };\n };\n\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge),\n isChrome: isBrowser(chrome),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var chromeos = 'ChromeOS';\n\n var unknown = function unknown() {\n return nu({\n current: undefined,\n version: Version.unknown()\n });\n };\n\n var nu = function nu(info) {\n var current = info.current;\n var version = info.version;\n\n var isOS = function isOS(name) {\n return function () {\n return current === name;\n };\n };\n\n return {\n current: current,\n version: version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isOSX: isOS(osx),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n\n var OperatingSystem = {\n unknown: unknown,\n nu: nu,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd),\n chromeos: constant(chromeos)\n };\n\n var detect$4 = function detect$4(userAgent, userAgentDataOpt, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = userAgentDataOpt.bind(function (userAgentData) {\n return detectBrowser$1(browsers, userAgentData);\n }).orThunk(function () {\n return detectBrowser(browsers, userAgent);\n }).fold(Browser.unknown, Browser.nu);\n var os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n\n var PlatformDetection = {\n detect: detect$4\n };\n\n var mediaMatch = function mediaMatch(query) {\n return window.matchMedia(query).matches;\n };\n\n var platform = cached(function () {\n return PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch);\n });\n\n var detect$3 = function detect$3() {\n return platform();\n };\n\n var compareDocumentPosition = function compareDocumentPosition(a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n\n var documentPositionContainedBy = function documentPositionContainedBy(a, b) {\n return compareDocumentPosition(a, b, Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n\n var COMMENT = 8;\n var DOCUMENT = 9;\n var DOCUMENT_FRAGMENT = 11;\n var ELEMENT = 1;\n var TEXT = 3;\n\n var fromHtml$1 = function fromHtml$1(html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n\n return fromDom$1(div.childNodes[0]);\n };\n\n var fromTag = function fromTag(tag, scope) {\n var doc = scope || document;\n var node = doc.createElement(tag);\n return fromDom$1(node);\n };\n\n var fromText = function fromText(text, scope) {\n var doc = scope || document;\n var node = doc.createTextNode(text);\n return fromDom$1(node);\n };\n\n var fromDom$1 = function fromDom$1(node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n\n return {\n dom: node\n };\n };\n\n var fromPoint$1 = function fromPoint$1(docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom$1);\n };\n\n var SugarElement = {\n fromHtml: fromHtml$1,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom$1,\n fromPoint: fromPoint$1\n };\n\n var is$2 = function is$2(element, selector) {\n var dom = element.dom;\n\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n var elem = dom;\n\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n\n var bypassSelector = function bypassSelector(dom) {\n return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n };\n\n var all$1 = function all$1(selector, scope) {\n var base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$1(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n\n var one = function one(selector, scope) {\n var base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n var eq$1 = function eq$1(e1, e2) {\n return e1.dom === e2.dom;\n };\n\n var regularContains = function regularContains(e1, e2) {\n var d1 = e1.dom;\n var d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n var ieContains = function ieContains(e1, e2) {\n return documentPositionContainedBy(e1.dom, e2.dom);\n };\n\n var contains = function contains(e1, e2) {\n return detect$3().browser.isIE() ? ieContains(e1, e2) : regularContains(e1, e2);\n };\n\n var is$1 = is$2;\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n\n var each$1 = function each$1(obj, f) {\n var props = keys(obj);\n\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n\n var map = function map(obj, f) {\n return tupleMap(obj, function (x, i) {\n return {\n k: i,\n v: f(x, i)\n };\n });\n };\n\n var tupleMap = function tupleMap(obj, f) {\n var r = {};\n each$1(obj, function (x, i) {\n var tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n\n var objAcc = function objAcc(r) {\n return function (x, i) {\n r[i] = x;\n };\n };\n\n var internalFilter = function internalFilter(obj, pred, onTrue, onFalse) {\n var r = {};\n each$1(obj, function (x, i) {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n return r;\n };\n\n var filter$1 = function filter$1(obj, pred) {\n var t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n\n var mapToArray = function mapToArray(obj, f) {\n var r = [];\n each$1(obj, function (value, name) {\n r.push(f(value, name));\n });\n return r;\n };\n\n var values = function values(obj) {\n return mapToArray(obj, identity);\n };\n\n var size = function size(obj) {\n return keys(obj).length;\n };\n\n var get$c = function get$c(obj, key) {\n return has$1(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n\n var has$1 = function has$1(obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var hasNonNullableKey = function hasNonNullableKey(obj, key) {\n return has$1(obj, key) && obj[key] !== undefined && obj[key] !== null;\n };\n\n var isEmpty = function isEmpty(r) {\n for (var x in r) {\n if (hasOwnProperty.call(r, x)) {\n return false;\n }\n }\n\n return true;\n };\n\n var validSectionList = ['tfoot', 'thead', 'tbody', 'colgroup'];\n\n var isValidSection = function isValidSection(parentName) {\n return contains$2(validSectionList, parentName);\n };\n\n var grid = function grid(rows, columns) {\n return {\n rows: rows,\n columns: columns\n };\n };\n\n var address = function address(row, column) {\n return {\n row: row,\n column: column\n };\n };\n\n var detail = function detail(element, rowspan, colspan) {\n return {\n element: element,\n rowspan: rowspan,\n colspan: colspan\n };\n };\n\n var detailnew = function detailnew(element, rowspan, colspan, isNew) {\n return {\n element: element,\n rowspan: rowspan,\n colspan: colspan,\n isNew: isNew\n };\n };\n\n var extended = function extended(element, rowspan, colspan, row, column, isLocked) {\n return {\n element: element,\n rowspan: rowspan,\n colspan: colspan,\n row: row,\n column: column,\n isLocked: isLocked\n };\n };\n\n var rowdetail = function rowdetail(element, cells, section) {\n return {\n element: element,\n cells: cells,\n section: section\n };\n };\n\n var rowdetailnew = function rowdetailnew(element, cells, section, isNew) {\n return {\n element: element,\n cells: cells,\n section: section,\n isNew: isNew\n };\n };\n\n var elementnew = function elementnew(element, isNew, isLocked) {\n return {\n element: element,\n isNew: isNew,\n isLocked: isLocked\n };\n };\n\n var rowcells = function rowcells(element, cells, section, isNew) {\n return {\n element: element,\n cells: cells,\n section: section,\n isNew: isNew\n };\n };\n\n var bounds = function bounds(startRow, startCol, finishRow, finishCol) {\n return {\n startRow: startRow,\n startCol: startCol,\n finishRow: finishRow,\n finishCol: finishCol\n };\n };\n\n var columnext = function columnext(element, colspan, column) {\n return {\n element: element,\n colspan: colspan,\n column: column\n };\n };\n\n var colgroup = function colgroup(element, columns) {\n return {\n element: element,\n columns: columns\n };\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n var name = function name(element) {\n var r = element.dom.nodeName;\n return r.toLowerCase();\n };\n\n var type$1 = function type$1(element) {\n return element.dom.nodeType;\n };\n\n var isType = function isType(t) {\n return function (element) {\n return type$1(element) === t;\n };\n };\n\n var isComment = function isComment(element) {\n return type$1(element) === COMMENT || name(element) === '#comment';\n };\n\n var isElement = isType(ELEMENT);\n var isText = isType(TEXT);\n var isDocument = isType(DOCUMENT);\n var isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n\n var isTag = function isTag(tag) {\n return function (e) {\n return isElement(e) && name(e) === tag;\n };\n };\n\n var owner = function owner(element) {\n return SugarElement.fromDom(element.dom.ownerDocument);\n };\n\n var documentOrOwner = function documentOrOwner(dos) {\n return isDocument(dos) ? dos : owner(dos);\n };\n\n var defaultView = function defaultView(element) {\n return SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n };\n\n var parent = function parent(element) {\n return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n };\n\n var parentElement = function parentElement(element) {\n return Optional.from(element.dom.parentElement).map(SugarElement.fromDom);\n };\n\n var parents = function parents(element, isRoot) {\n var stop = isFunction(isRoot) ? isRoot : never;\n var dom = element.dom;\n var ret = [];\n\n while (dom.parentNode !== null && dom.parentNode !== undefined) {\n var rawParent = dom.parentNode;\n var p = SugarElement.fromDom(rawParent);\n ret.push(p);\n\n if (stop(p) === true) {\n break;\n } else {\n dom = rawParent;\n }\n }\n\n return ret;\n };\n\n var prevSibling = function prevSibling(element) {\n return Optional.from(element.dom.previousSibling).map(SugarElement.fromDom);\n };\n\n var nextSibling = function nextSibling(element) {\n return Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n };\n\n var children$3 = function children$3(element) {\n return map$1(element.dom.childNodes, SugarElement.fromDom);\n };\n\n var child$3 = function child$3(element, index) {\n var cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n\n var firstChild = function firstChild(element) {\n return child$3(element, 0);\n };\n\n var isShadowRoot = function isShadowRoot(dos) {\n return isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n };\n\n var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);\n var isSupported$1 = constant(supported);\n var getRootNode = supported ? function (e) {\n return SugarElement.fromDom(e.dom.getRootNode());\n } : documentOrOwner;\n\n var getShadowRoot = function getShadowRoot(e) {\n var r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n\n var getShadowHost = function getShadowHost(e) {\n return SugarElement.fromDom(e.dom.host);\n };\n\n var getOriginalEventTarget = function getOriginalEventTarget(event) {\n if (isSupported$1() && isNonNullable(event.target)) {\n var el = SugarElement.fromDom(event.target);\n\n if (isElement(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n var composedPath = event.composedPath();\n\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n\n return Optional.from(event.target);\n };\n\n var isOpenShadowHost = function isOpenShadowHost(element) {\n return isNonNullable(element.dom.shadowRoot);\n };\n\n var inBody = function inBody(element) {\n var dom = isText(element) ? element.dom.parentNode : element.dom;\n\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n\n var doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(function () {\n return doc.body.contains(dom);\n }, compose1(inBody, getShadowHost));\n };\n\n var body$1 = function body$1() {\n return getBody$1(SugarElement.fromDom(document));\n };\n\n var getBody$1 = function getBody$1(doc) {\n var b = doc.dom.body;\n\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n\n return SugarElement.fromDom(b);\n };\n\n var ancestors$4 = function ancestors$4(scope, predicate, isRoot) {\n return filter$2(parents(scope, isRoot), predicate);\n };\n\n var children$2 = function children$2(scope, predicate) {\n return filter$2(children$3(scope), predicate);\n };\n\n var descendants$1 = function descendants$1(scope, predicate) {\n var result = [];\n each$2(children$3(scope), function (x) {\n if (predicate(x)) {\n result = result.concat([x]);\n }\n\n result = result.concat(descendants$1(x, predicate));\n });\n return result;\n };\n\n var ancestors$3 = function ancestors$3(scope, selector, isRoot) {\n return ancestors$4(scope, function (e) {\n return is$2(e, selector);\n }, isRoot);\n };\n\n var children$1 = function children$1(scope, selector) {\n return children$2(scope, function (e) {\n return is$2(e, selector);\n });\n };\n\n var descendants = function descendants(scope, selector) {\n return all$1(selector, scope);\n };\n\n function ClosestOrAncestor(is, ancestor, scope, a, isRoot) {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n }\n\n var ancestor$2 = function ancestor$2(scope, predicate, isRoot) {\n var element = scope.dom;\n var stop = isFunction(isRoot) ? isRoot : never;\n\n while (element.parentNode) {\n element = element.parentNode;\n var el = SugarElement.fromDom(element);\n\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n\n return Optional.none();\n };\n\n var closest$2 = function closest$2(scope, predicate, isRoot) {\n var is = function is(s, test) {\n return test(s);\n };\n\n return ClosestOrAncestor(is, ancestor$2, scope, predicate, isRoot);\n };\n\n var child$2 = function child$2(scope, predicate) {\n var pred = function pred(node) {\n return predicate(SugarElement.fromDom(node));\n };\n\n var result = find$1(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n\n var descendant$1 = function descendant$1(scope, predicate) {\n var descend = function descend(node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n var child_1 = SugarElement.fromDom(node.childNodes[i]);\n\n if (predicate(child_1)) {\n return Optional.some(child_1);\n }\n\n var res = descend(node.childNodes[i]);\n\n if (res.isSome()) {\n return res;\n }\n }\n\n return Optional.none();\n };\n\n return descend(scope.dom);\n };\n\n var ancestor$1 = function ancestor$1(scope, selector, isRoot) {\n return ancestor$2(scope, function (e) {\n return is$2(e, selector);\n }, isRoot);\n };\n\n var child$1 = function child$1(scope, selector) {\n return child$2(scope, function (e) {\n return is$2(e, selector);\n });\n };\n\n var descendant = function descendant(scope, selector) {\n return one(selector, scope);\n };\n\n var closest$1 = function closest$1(scope, selector, isRoot) {\n var is = function is(element, selector) {\n return is$2(element, selector);\n };\n\n return ClosestOrAncestor(is, ancestor$1, scope, selector, isRoot);\n };\n\n var rawSet = function rawSet(dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n\n var set$2 = function set$2(element, key, value) {\n rawSet(element.dom, key, value);\n };\n\n var setAll$1 = function setAll$1(element, attrs) {\n var dom = element.dom;\n each$1(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n\n var setOptions = function setOptions(element, attrs) {\n each$1(attrs, function (v, k) {\n v.fold(function () {\n remove$7(element, k);\n }, function (value) {\n rawSet(element.dom, k, value);\n });\n });\n };\n\n var get$b = function get$b(element, key) {\n var v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n\n var getOpt = function getOpt(element, key) {\n return Optional.from(get$b(element, key));\n };\n\n var remove$7 = function remove$7(element, key) {\n element.dom.removeAttribute(key);\n };\n\n var clone$2 = function clone$2(element) {\n return foldl(element.dom.attributes, function (acc, attr) {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n };\n\n var is = function is(lhs, rhs, comparator) {\n if (comparator === void 0) {\n comparator = tripleEquals;\n }\n\n return lhs.exists(function (left) {\n return comparator(left, rhs);\n });\n };\n\n var cat = function cat(arr) {\n var r = [];\n\n var push = function push(x) {\n r.push(x);\n };\n\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n\n return r;\n };\n\n var lift2 = function lift2(oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n };\n\n var bindFrom = function bindFrom(a, f) {\n return a !== undefined && a !== null ? f(a) : Optional.none();\n };\n\n var flatten = function flatten(oot) {\n return oot.bind(identity);\n };\n\n var someIf = function someIf(b, a) {\n return b ? Optional.some(a) : Optional.none();\n };\n\n var isSupported = function isSupported(dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var internalSet = function internalSet(dom, property, value) {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n\n var internalRemove = function internalRemove(dom, property) {\n if (isSupported(dom)) {\n dom.style.removeProperty(property);\n }\n };\n\n var set$1 = function set$1(element, property, value) {\n var dom = element.dom;\n internalSet(dom, property, value);\n };\n\n var setAll = function setAll(element, css) {\n var dom = element.dom;\n each$1(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n\n var get$a = function get$a(element, property) {\n var dom = element.dom;\n var styles = window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n\n var getUnsafeProperty = function getUnsafeProperty(dom, property) {\n return isSupported(dom) ? dom.style.getPropertyValue(property) : '';\n };\n\n var getRaw$2 = function getRaw$2(element, property) {\n var dom = element.dom;\n var raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n\n var remove$6 = function remove$6(element, property) {\n var dom = element.dom;\n internalRemove(dom, property);\n\n if (is(getOpt(element, 'style').map(trim), '')) {\n remove$7(element, 'style');\n }\n };\n\n var copy$2 = function copy$2(source, target) {\n var sourceDom = source.dom;\n var targetDom = target.dom;\n\n if (isSupported(sourceDom) && isSupported(targetDom)) {\n targetDom.style.cssText = sourceDom.style.cssText;\n }\n };\n\n var getAttrValue = function getAttrValue(cell, name, fallback) {\n if (fallback === void 0) {\n fallback = 0;\n }\n\n return getOpt(cell, name).map(function (value) {\n return parseInt(value, 10);\n }).getOr(fallback);\n };\n\n var getSpan = function getSpan(cell, type) {\n return getAttrValue(cell, type, 1);\n };\n\n var hasColspan = function hasColspan(cellOrCol) {\n if (isTag('col')(cellOrCol)) {\n return getAttrValue(cellOrCol, 'span', 1) > 1;\n } else {\n return getSpan(cellOrCol, 'colspan') > 1;\n }\n };\n\n var hasRowspan = function hasRowspan(cell) {\n return getSpan(cell, 'rowspan') > 1;\n };\n\n var getCssValue = function getCssValue(element, property) {\n return parseInt(get$a(element, property), 10);\n };\n\n var minWidth = constant(10);\n var minHeight = constant(10);\n\n var firstLayer = function firstLayer(scope, selector) {\n return filterFirstLayer(scope, selector, always);\n };\n\n var filterFirstLayer = function filterFirstLayer(scope, selector, predicate) {\n return bind$2(children$3(scope), function (x) {\n if (is$2(x, selector)) {\n return predicate(x) ? [x] : [];\n } else {\n return filterFirstLayer(x, selector, predicate);\n }\n });\n };\n\n var lookup = function lookup(tags, element, isRoot) {\n if (isRoot === void 0) {\n isRoot = never;\n }\n\n if (isRoot(element)) {\n return Optional.none();\n }\n\n if (contains$2(tags, name(element))) {\n return Optional.some(element);\n }\n\n var isRootOrUpperTable = function isRootOrUpperTable(elm) {\n return is$2(elm, 'table') || isRoot(elm);\n };\n\n return ancestor$1(element, tags.join(','), isRootOrUpperTable);\n };\n\n var cell = function cell(element, isRoot) {\n return lookup(['td', 'th'], element, isRoot);\n };\n\n var cells$1 = function cells$1(ancestor) {\n return firstLayer(ancestor, 'th,td');\n };\n\n var columns$1 = function columns$1(ancestor) {\n if (is$2(ancestor, 'colgroup')) {\n return children$1(ancestor, 'col');\n } else {\n return bind$2(columnGroups(ancestor), function (columnGroup) {\n return children$1(columnGroup, 'col');\n });\n }\n };\n\n var table = function table(element, isRoot) {\n return closest$1(element, 'table', isRoot);\n };\n\n var rows$1 = function rows$1(ancestor) {\n return firstLayer(ancestor, 'tr');\n };\n\n var columnGroups = function columnGroups(ancestor) {\n return table(ancestor).fold(constant([]), function (table) {\n return children$1(table, 'colgroup');\n });\n };\n\n var fromRowsOrColGroups = function fromRowsOrColGroups(elems, getSection) {\n return map$1(elems, function (row) {\n if (name(row) === 'colgroup') {\n var cells = map$1(columns$1(row), function (column) {\n var colspan = getAttrValue(column, 'span', 1);\n return detail(column, 1, colspan);\n });\n return rowdetail(row, cells, 'colgroup');\n } else {\n var cells = map$1(cells$1(row), function (cell) {\n var rowspan = getAttrValue(cell, 'rowspan', 1);\n var colspan = getAttrValue(cell, 'colspan', 1);\n return detail(cell, rowspan, colspan);\n });\n return rowdetail(row, cells, getSection(row));\n }\n });\n };\n\n var getParentSection = function getParentSection(group) {\n return parent(group).map(function (parent) {\n var parentName = name(parent);\n return isValidSection(parentName) ? parentName : 'tbody';\n }).getOr('tbody');\n };\n\n var fromTable$1 = function fromTable$1(table) {\n var rows = rows$1(table);\n var columnGroups$1 = columnGroups(table);\n\n var elems = __spreadArray(__spreadArray([], columnGroups$1, true), rows, true);\n\n return fromRowsOrColGroups(elems, getParentSection);\n };\n\n var fromPastedRows = function fromPastedRows(elems, section) {\n return fromRowsOrColGroups(elems, function () {\n return section;\n });\n };\n\n var addCells = function addCells(gridRow, index, cells) {\n var existingCells = gridRow.cells;\n var before = existingCells.slice(0, index);\n var after = existingCells.slice(index);\n var newCells = before.concat(cells).concat(after);\n return setCells(gridRow, newCells);\n };\n\n var addCell = function addCell(gridRow, index, cell) {\n return addCells(gridRow, index, [cell]);\n };\n\n var mutateCell = function mutateCell(gridRow, index, cell) {\n var cells = gridRow.cells;\n cells[index] = cell;\n };\n\n var setCells = function setCells(gridRow, cells) {\n return rowcells(gridRow.element, cells, gridRow.section, gridRow.isNew);\n };\n\n var mapCells = function mapCells(gridRow, f) {\n var cells = gridRow.cells;\n var r = map$1(cells, f);\n return rowcells(gridRow.element, r, gridRow.section, gridRow.isNew);\n };\n\n var getCell = function getCell(gridRow, index) {\n return gridRow.cells[index];\n };\n\n var getCellElement = function getCellElement(gridRow, index) {\n return getCell(gridRow, index).element;\n };\n\n var cellLength = function cellLength(gridRow) {\n return gridRow.cells.length;\n };\n\n var extractGridDetails = function extractGridDetails(grid) {\n var result = partition(grid, function (row) {\n return row.section === 'colgroup';\n });\n return {\n rows: result.fail,\n cols: result.pass\n };\n };\n\n var clone$1 = function clone$1(gridRow, cloneRow, cloneCell) {\n var newCells = map$1(gridRow.cells, cloneCell);\n return rowcells(cloneRow(gridRow.element), newCells, gridRow.section, true);\n };\n\n var LOCKED_COL_ATTR = 'data-snooker-locked-cols';\n\n var getLockedColumnsFromTable = function getLockedColumnsFromTable(table) {\n return getOpt(table, LOCKED_COL_ATTR).bind(function (lockedColStr) {\n return Optional.from(lockedColStr.match(/\\d+/g));\n }).map(function (lockedCols) {\n return mapToObject(lockedCols, always);\n });\n };\n\n var getLockedColumnsFromGrid = function getLockedColumnsFromGrid(grid) {\n var locked = foldl(extractGridDetails(grid).rows, function (acc, row) {\n each$2(row.cells, function (cell, idx) {\n if (cell.isLocked) {\n acc[idx] = true;\n }\n });\n return acc;\n }, {});\n var lockedArr = mapToArray(locked, function (_val, key) {\n return parseInt(key, 10);\n });\n return sort$1(lockedArr);\n };\n\n var key = function key(row, column) {\n return row + ',' + column;\n };\n\n var getAt = function getAt(warehouse, row, column) {\n return Optional.from(warehouse.access[key(row, column)]);\n };\n\n var findItem = function findItem(warehouse, item, comparator) {\n var filtered = filterItems(warehouse, function (detail) {\n return comparator(item, detail.element);\n });\n return filtered.length > 0 ? Optional.some(filtered[0]) : Optional.none();\n };\n\n var filterItems = function filterItems(warehouse, predicate) {\n var all = bind$2(warehouse.all, function (r) {\n return r.cells;\n });\n return filter$2(all, predicate);\n };\n\n var generateColumns = function generateColumns(rowData) {\n var columnsGroup = {};\n var index = 0;\n each$2(rowData.cells, function (column) {\n var colspan = column.colspan;\n range$1(colspan, function (columnIndex) {\n var colIndex = index + columnIndex;\n columnsGroup[colIndex] = columnext(column.element, colspan, colIndex);\n });\n index += colspan;\n });\n return columnsGroup;\n };\n\n var generate$1 = function generate$1(list) {\n var access = {};\n var cells = [];\n var tableOpt = head(list).map(function (rowData) {\n return rowData.element;\n }).bind(table);\n var lockedColumns = tableOpt.bind(getLockedColumnsFromTable).getOr({});\n var maxRows = 0;\n var maxColumns = 0;\n var rowCount = 0;\n\n var _a = partition(list, function (rowData) {\n return rowData.section === 'colgroup';\n }),\n colgroupRows = _a.pass,\n rows = _a.fail;\n\n each$2(rows, function (rowData) {\n var currentRow = [];\n each$2(rowData.cells, function (rowCell) {\n var start = 0;\n\n while (access[key(rowCount, start)] !== undefined) {\n start++;\n }\n\n var isLocked = hasNonNullableKey(lockedColumns, start.toString());\n var current = extended(rowCell.element, rowCell.rowspan, rowCell.colspan, rowCount, start, isLocked);\n\n for (var occupiedColumnPosition = 0; occupiedColumnPosition < rowCell.colspan; occupiedColumnPosition++) {\n for (var occupiedRowPosition = 0; occupiedRowPosition < rowCell.rowspan; occupiedRowPosition++) {\n var rowPosition = rowCount + occupiedRowPosition;\n var columnPosition = start + occupiedColumnPosition;\n var newpos = key(rowPosition, columnPosition);\n access[newpos] = current;\n maxColumns = Math.max(maxColumns, columnPosition + 1);\n }\n }\n\n currentRow.push(current);\n });\n maxRows++;\n cells.push(rowdetail(rowData.element, currentRow, rowData.section));\n rowCount++;\n });\n\n var _b = last$2(colgroupRows).map(function (rowData) {\n var columns = generateColumns(rowData);\n var colgroup$1 = colgroup(rowData.element, values(columns));\n return {\n colgroups: [colgroup$1],\n columns: columns\n };\n }).getOrThunk(function () {\n return {\n colgroups: [],\n columns: {}\n };\n }),\n columns = _b.columns,\n colgroups = _b.colgroups;\n\n var grid$1 = grid(maxRows, maxColumns);\n return {\n grid: grid$1,\n access: access,\n all: cells,\n columns: columns,\n colgroups: colgroups\n };\n };\n\n var fromTable = function fromTable(table) {\n var list = fromTable$1(table);\n return generate$1(list);\n };\n\n var justCells = function justCells(warehouse) {\n return bind$2(warehouse.all, function (w) {\n return w.cells;\n });\n };\n\n var justColumns = function justColumns(warehouse) {\n return values(warehouse.columns);\n };\n\n var hasColumns = function hasColumns(warehouse) {\n return keys(warehouse.columns).length > 0;\n };\n\n var getColumnAt = function getColumnAt(warehouse, columnIndex) {\n return Optional.from(warehouse.columns[columnIndex]);\n };\n\n var Warehouse = {\n fromTable: fromTable,\n generate: generate$1,\n getAt: getAt,\n findItem: findItem,\n filterItems: filterItems,\n justCells: justCells,\n justColumns: justColumns,\n hasColumns: hasColumns,\n getColumnAt: getColumnAt\n };\n\n var inSelection = function inSelection(bounds, detail) {\n var leftEdge = detail.column;\n var rightEdge = detail.column + detail.colspan - 1;\n var topEdge = detail.row;\n var bottomEdge = detail.row + detail.rowspan - 1;\n return leftEdge <= bounds.finishCol && rightEdge >= bounds.startCol && topEdge <= bounds.finishRow && bottomEdge >= bounds.startRow;\n };\n\n var isWithin = function isWithin(bounds, detail) {\n return detail.column >= bounds.startCol && detail.column + detail.colspan - 1 <= bounds.finishCol && detail.row >= bounds.startRow && detail.row + detail.rowspan - 1 <= bounds.finishRow;\n };\n\n var isRectangular = function isRectangular(warehouse, bounds) {\n var isRect = true;\n var detailIsWithin = curry(isWithin, bounds);\n\n for (var i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (var j = bounds.startCol; j <= bounds.finishCol; j++) {\n isRect = isRect && Warehouse.getAt(warehouse, i, j).exists(detailIsWithin);\n }\n }\n\n return isRect ? Optional.some(bounds) : Optional.none();\n };\n\n var getBounds = function getBounds(detailA, detailB) {\n return bounds(Math.min(detailA.row, detailB.row), Math.min(detailA.column, detailB.column), Math.max(detailA.row + detailA.rowspan - 1, detailB.row + detailB.rowspan - 1), Math.max(detailA.column + detailA.colspan - 1, detailB.column + detailB.colspan - 1));\n };\n\n var getAnyBox = function getAnyBox(warehouse, startCell, finishCell) {\n var startCoords = Warehouse.findItem(warehouse, startCell, eq$1);\n var finishCoords = Warehouse.findItem(warehouse, finishCell, eq$1);\n return startCoords.bind(function (sc) {\n return finishCoords.map(function (fc) {\n return getBounds(sc, fc);\n });\n });\n };\n\n var getBox$1 = function getBox$1(warehouse, startCell, finishCell) {\n return getAnyBox(warehouse, startCell, finishCell).bind(function (bounds) {\n return isRectangular(warehouse, bounds);\n });\n };\n\n var moveBy$1 = function moveBy$1(warehouse, cell, row, column) {\n return Warehouse.findItem(warehouse, cell, eq$1).bind(function (detail) {\n var startRow = row > 0 ? detail.row + detail.rowspan - 1 : detail.row;\n var startCol = column > 0 ? detail.column + detail.colspan - 1 : detail.column;\n var dest = Warehouse.getAt(warehouse, startRow + row, startCol + column);\n return dest.map(function (d) {\n return d.element;\n });\n });\n };\n\n var intercepts$1 = function intercepts$1(warehouse, start, finish) {\n return getAnyBox(warehouse, start, finish).map(function (bounds) {\n var inside = Warehouse.filterItems(warehouse, curry(inSelection, bounds));\n return map$1(inside, function (detail) {\n return detail.element;\n });\n });\n };\n\n var parentCell = function parentCell(warehouse, innerCell) {\n var isContainedBy = function isContainedBy(c1, c2) {\n return contains(c2, c1);\n };\n\n return Warehouse.findItem(warehouse, innerCell, isContainedBy).map(function (detail) {\n return detail.element;\n });\n };\n\n var moveBy = function moveBy(cell, deltaRow, deltaColumn) {\n return table(cell).bind(function (table) {\n var warehouse = getWarehouse(table);\n return moveBy$1(warehouse, cell, deltaRow, deltaColumn);\n });\n };\n\n var intercepts = function intercepts(table, first, last) {\n var warehouse = getWarehouse(table);\n return intercepts$1(warehouse, first, last);\n };\n\n var nestedIntercepts = function nestedIntercepts(table, first, firstTable, last, lastTable) {\n var warehouse = getWarehouse(table);\n var optStartCell = eq$1(table, firstTable) ? Optional.some(first) : parentCell(warehouse, first);\n var optLastCell = eq$1(table, lastTable) ? Optional.some(last) : parentCell(warehouse, last);\n return optStartCell.bind(function (startCell) {\n return optLastCell.bind(function (lastCell) {\n return intercepts$1(warehouse, startCell, lastCell);\n });\n });\n };\n\n var getBox = function getBox(table, first, last) {\n var warehouse = getWarehouse(table);\n return getBox$1(warehouse, first, last);\n };\n\n var getWarehouse = Warehouse.fromTable;\n\n var before$4 = function before$4(marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n\n var after$5 = function after$5(marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append$1(v, element);\n });\n }, function (v) {\n before$4(v, element);\n });\n };\n\n var prepend = function prepend(parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append$1(parent, element);\n }, function (v) {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n\n var append$1 = function append$1(parent, element) {\n parent.dom.appendChild(element.dom);\n };\n\n var appendAt = function appendAt(parent, element, index) {\n child$3(parent, index).fold(function () {\n append$1(parent, element);\n }, function (v) {\n before$4(v, element);\n });\n };\n\n var wrap = function wrap(element, wrapper) {\n before$4(element, wrapper);\n append$1(wrapper, element);\n };\n\n var before$3 = function before$3(marker, elements) {\n each$2(elements, function (x) {\n before$4(marker, x);\n });\n };\n\n var after$4 = function after$4(marker, elements) {\n each$2(elements, function (x, i) {\n var e = i === 0 ? marker : elements[i - 1];\n after$5(e, x);\n });\n };\n\n var append = function append(parent, elements) {\n each$2(elements, function (x) {\n append$1(parent, x);\n });\n };\n\n var empty = function empty(element) {\n element.dom.textContent = '';\n each$2(children$3(element), function (rogue) {\n remove$5(rogue);\n });\n };\n\n var remove$5 = function remove$5(element) {\n var dom = element.dom;\n\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var unwrap = function unwrap(wrapper) {\n var children = children$3(wrapper);\n\n if (children.length > 0) {\n before$3(wrapper, children);\n }\n\n remove$5(wrapper);\n };\n\n var NodeValue = function NodeValue(is, name) {\n var get = function get(element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n\n return getOption(element).getOr('');\n };\n\n var getOption = function getOption(element) {\n return is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n };\n\n var set = function set(element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n\n element.dom.nodeValue = value;\n };\n\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n };\n\n var api$2 = NodeValue(isText, 'text');\n\n var get$9 = function get$9(element) {\n return api$2.get(element);\n };\n\n var getOption = function getOption(element) {\n return api$2.getOption(element);\n };\n\n var set = function set(element, value) {\n return api$2.set(element, value);\n };\n\n var TagBoundaries = ['body', 'p', 'div', 'article', 'aside', 'figcaption', 'figure', 'footer', 'header', 'nav', 'section', 'ol', 'ul', 'li', 'table', 'thead', 'tbody', 'tfoot', 'caption', 'tr', 'td', 'th', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'pre', 'address'];\n\n function DomUniverse() {\n var clone = function clone(element) {\n return SugarElement.fromDom(element.dom.cloneNode(false));\n };\n\n var document = function document(element) {\n return documentOrOwner(element).dom;\n };\n\n var isBoundary = function isBoundary(element) {\n if (!isElement(element)) {\n return false;\n }\n\n if (name(element) === 'body') {\n return true;\n }\n\n return contains$2(TagBoundaries, name(element));\n };\n\n var isEmptyTag = function isEmptyTag(element) {\n if (!isElement(element)) {\n return false;\n }\n\n return contains$2(['br', 'img', 'hr', 'input'], name(element));\n };\n\n var isNonEditable = function isNonEditable(element) {\n return isElement(element) && get$b(element, 'contenteditable') === 'false';\n };\n\n var comparePosition = function comparePosition(element, other) {\n return element.dom.compareDocumentPosition(other.dom);\n };\n\n var copyAttributesTo = function copyAttributesTo(source, destination) {\n var as = clone$2(source);\n setAll$1(destination, as);\n };\n\n var isSpecial = function isSpecial(element) {\n var tag = name(element);\n return contains$2(['script', 'noscript', 'iframe', 'noframes', 'noembed', 'title', 'style', 'textarea', 'xmp'], tag);\n };\n\n var getLanguage = function getLanguage(element) {\n return isElement(element) ? getOpt(element, 'lang') : Optional.none();\n };\n\n return {\n up: constant({\n selector: ancestor$1,\n closest: closest$1,\n predicate: ancestor$2,\n all: parents\n }),\n down: constant({\n selector: descendants,\n predicate: descendants$1\n }),\n styles: constant({\n get: get$a,\n getRaw: getRaw$2,\n set: set$1,\n remove: remove$6\n }),\n attrs: constant({\n get: get$b,\n set: set$2,\n remove: remove$7,\n copyTo: copyAttributesTo\n }),\n insert: constant({\n before: before$4,\n after: after$5,\n afterAll: after$4,\n append: append$1,\n appendAll: append,\n prepend: prepend,\n wrap: wrap\n }),\n remove: constant({\n unwrap: unwrap,\n remove: remove$5\n }),\n create: constant({\n nu: SugarElement.fromTag,\n clone: clone,\n text: SugarElement.fromText\n }),\n query: constant({\n comparePosition: comparePosition,\n prevSibling: prevSibling,\n nextSibling: nextSibling\n }),\n property: constant({\n children: children$3,\n name: name,\n parent: parent,\n document: document,\n isText: isText,\n isComment: isComment,\n isElement: isElement,\n isSpecial: isSpecial,\n getLanguage: getLanguage,\n getText: get$9,\n setText: set,\n isBoundary: isBoundary,\n isEmptyTag: isEmptyTag,\n isNonEditable: isNonEditable\n }),\n eq: eq$1,\n is: is$1\n };\n }\n\n var all = function all(universe, look, elements, f) {\n var head = elements[0];\n var tail = elements.slice(1);\n return f(universe, look, head, tail);\n };\n\n var oneAll = function oneAll(universe, look, elements) {\n return elements.length > 0 ? all(universe, look, elements, unsafeOne) : Optional.none();\n };\n\n var unsafeOne = function unsafeOne(universe, look, head, tail) {\n var start = look(universe, head);\n return foldr(tail, function (b, a) {\n var current = look(universe, a);\n return commonElement(universe, b, current);\n }, start);\n };\n\n var commonElement = function commonElement(universe, start, end) {\n return start.bind(function (s) {\n return end.filter(curry(universe.eq, s));\n });\n };\n\n var eq = function eq(universe, item) {\n return curry(universe.eq, item);\n };\n\n var ancestors$2 = function ancestors$2(universe, start, end, isRoot) {\n if (isRoot === void 0) {\n isRoot = never;\n }\n\n var ps1 = [start].concat(universe.up().all(start));\n var ps2 = [end].concat(universe.up().all(end));\n\n var prune = function prune(path) {\n var index = findIndex(path, isRoot);\n return index.fold(function () {\n return path;\n }, function (ind) {\n return path.slice(0, ind + 1);\n });\n };\n\n var pruned1 = prune(ps1);\n var pruned2 = prune(ps2);\n var shared = find$1(pruned1, function (x) {\n return exists(pruned2, eq(universe, x));\n });\n return {\n firstpath: pruned1,\n secondpath: pruned2,\n shared: shared\n };\n };\n\n var sharedOne$1 = oneAll;\n var ancestors$1 = ancestors$2;\n var universe$3 = DomUniverse();\n\n var sharedOne = function sharedOne(look, elements) {\n return sharedOne$1(universe$3, function (_universe, element) {\n return look(element);\n }, elements);\n };\n\n var ancestors = function ancestors(start, finish, isRoot) {\n return ancestors$1(universe$3, start, finish, isRoot);\n };\n\n var lookupTable = function lookupTable(container) {\n return ancestor$1(container, 'table');\n };\n\n var identify = function identify(start, finish, isRoot) {\n var getIsRoot = function getIsRoot(rootTable) {\n return function (element) {\n return isRoot !== undefined && isRoot(element) || eq$1(element, rootTable);\n };\n };\n\n if (eq$1(start, finish)) {\n return Optional.some({\n boxes: Optional.some([start]),\n start: start,\n finish: finish\n });\n } else {\n return lookupTable(start).bind(function (startTable) {\n return lookupTable(finish).bind(function (finishTable) {\n if (eq$1(startTable, finishTable)) {\n return Optional.some({\n boxes: intercepts(startTable, start, finish),\n start: start,\n finish: finish\n });\n } else if (contains(startTable, finishTable)) {\n var ancestorCells = ancestors$3(finish, 'td,th', getIsRoot(startTable));\n var finishCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : finish;\n return Optional.some({\n boxes: nestedIntercepts(startTable, start, startTable, finish, finishTable),\n start: start,\n finish: finishCell\n });\n } else if (contains(finishTable, startTable)) {\n var ancestorCells = ancestors$3(start, 'td,th', getIsRoot(finishTable));\n var startCell = ancestorCells.length > 0 ? ancestorCells[ancestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(finishTable, start, startTable, finish, finishTable),\n start: start,\n finish: startCell\n });\n } else {\n return ancestors(start, finish).shared.bind(function (lca) {\n return closest$1(lca, 'table', isRoot).bind(function (lcaTable) {\n var finishAncestorCells = ancestors$3(finish, 'td,th', getIsRoot(lcaTable));\n var finishCell = finishAncestorCells.length > 0 ? finishAncestorCells[finishAncestorCells.length - 1] : finish;\n var startAncestorCells = ancestors$3(start, 'td,th', getIsRoot(lcaTable));\n var startCell = startAncestorCells.length > 0 ? startAncestorCells[startAncestorCells.length - 1] : start;\n return Optional.some({\n boxes: nestedIntercepts(lcaTable, start, startTable, finish, finishTable),\n start: startCell,\n finish: finishCell\n });\n });\n });\n }\n });\n });\n }\n };\n\n var retrieve$1 = function retrieve$1(container, selector) {\n var sels = descendants(container, selector);\n return sels.length > 0 ? Optional.some(sels) : Optional.none();\n };\n\n var getLast = function getLast(boxes, lastSelectedSelector) {\n return find$1(boxes, function (box) {\n return is$2(box, lastSelectedSelector);\n });\n };\n\n var getEdges = function getEdges(container, firstSelectedSelector, lastSelectedSelector) {\n return descendant(container, firstSelectedSelector).bind(function (first) {\n return descendant(container, lastSelectedSelector).bind(function (last) {\n return sharedOne(lookupTable, [first, last]).map(function (table) {\n return {\n first: first,\n last: last,\n table: table\n };\n });\n });\n });\n };\n\n var expandTo = function expandTo(finish, firstSelectedSelector) {\n return ancestor$1(finish, 'table').bind(function (table) {\n return descendant(table, firstSelectedSelector).bind(function (start) {\n return identify(start, finish).bind(function (identified) {\n return identified.boxes.map(function (boxes) {\n return {\n boxes: boxes,\n start: identified.start,\n finish: identified.finish\n };\n });\n });\n });\n });\n };\n\n var shiftSelection = function shiftSelection(boxes, deltaRow, deltaColumn, firstSelectedSelector, lastSelectedSelector) {\n return getLast(boxes, lastSelectedSelector).bind(function (last) {\n return moveBy(last, deltaRow, deltaColumn).bind(function (finish) {\n return expandTo(finish, firstSelectedSelector);\n });\n });\n };\n\n var retrieve = function retrieve(container, selector) {\n return retrieve$1(container, selector);\n };\n\n var retrieveBox = function retrieveBox(container, firstSelectedSelector, lastSelectedSelector) {\n return getEdges(container, firstSelectedSelector, lastSelectedSelector).bind(function (edges) {\n var isRoot = function isRoot(ancestor) {\n return eq$1(container, ancestor);\n };\n\n var sectionSelector = 'thead,tfoot,tbody,table';\n var firstAncestor = ancestor$1(edges.first, sectionSelector, isRoot);\n var lastAncestor = ancestor$1(edges.last, sectionSelector, isRoot);\n return firstAncestor.bind(function (fA) {\n return lastAncestor.bind(function (lA) {\n return eq$1(fA, lA) ? getBox(edges.table, edges.first, edges.last) : Optional.none();\n });\n });\n });\n };\n\n var generate = function generate(cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n\n var constructors = [];\n var adt = {};\n each$2(cases, function (acase, count) {\n var keys$1 = keys(acase);\n\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n\n var key = keys$1[0];\n var value = acase[key];\n\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n\n constructors.push(key);\n\n adt[key] = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var argLength = args.length;\n\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n\n var match = function match(branches) {\n var branchKeys = keys(branches);\n\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n\n var allReqd = forall(constructors, function (reqKey) {\n return contains$2(branchKeys, reqKey);\n });\n\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n\n return branches[key].apply(null, args);\n };\n\n return {\n fold: function fold() {\n var foldArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n foldArgs[_i] = arguments[_i];\n }\n\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n\n var target = foldArgs[count];\n return target.apply(null, args);\n },\n match: match,\n log: function log(label) {\n console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n\n var Adt = {\n generate: generate\n };\n var type = Adt.generate([{\n none: []\n }, {\n multiple: ['elements']\n }, {\n single: ['element']\n }]);\n\n var cata$2 = function cata$2(subject, onNone, onMultiple, onSingle) {\n return subject.fold(onNone, onMultiple, onSingle);\n };\n\n var none$1 = type.none;\n var multiple = type.multiple;\n var single = type.single;\n\n var Selections = function Selections(lazyRoot, getStart, selectedSelector) {\n var get = function get() {\n return retrieve(lazyRoot(), selectedSelector).fold(function () {\n return getStart().fold(none$1, single);\n }, function (cells) {\n return multiple(cells);\n });\n };\n\n return {\n get: get\n };\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var clone = function clone(original, isDeep) {\n return SugarElement.fromDom(original.dom.cloneNode(isDeep));\n };\n\n var shallow = function shallow(original) {\n return clone(original, false);\n };\n\n var deep = function deep(original) {\n return clone(original, true);\n };\n\n var shallowAs = function shallowAs(original, tag) {\n var nu = SugarElement.fromTag(tag);\n var attributes = clone$2(original);\n setAll$1(nu, attributes);\n return nu;\n };\n\n var copy$1 = function copy$1(original, tag) {\n var nu = shallowAs(original, tag);\n var cloneChildren = children$3(deep(original));\n append(nu, cloneChildren);\n return nu;\n };\n\n var mutate$1 = function mutate$1(original, tag) {\n var nu = shallowAs(original, tag);\n before$4(original, nu);\n var children = children$3(original);\n append(nu, children);\n remove$5(original);\n return nu;\n };\n\n var Dimension = function Dimension(name, getOffset) {\n var set = function set(element, h) {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n\n var dom = element.dom;\n\n if (isSupported(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n\n var get = function get(element) {\n var r = getOffset(element);\n\n if (r <= 0 || r === null) {\n var css = get$a(element, name);\n return parseFloat(css) || 0;\n }\n\n return r;\n };\n\n var getOuter = get;\n\n var aggregate = function aggregate(element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$a(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n\n var max = function max(element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\n };\n\n var needManualCalc = function needManualCalc() {\n var browser = detect$3().browser;\n return browser.isIE() || browser.isEdge();\n };\n\n var toNumber = function toNumber(px, fallback) {\n return toFloat(px).getOr(fallback);\n };\n\n var getProp = function getProp(element, name, fallback) {\n return toNumber(get$a(element, name), fallback);\n };\n\n var getBoxSizing = function getBoxSizing(element) {\n return get$a(element, 'box-sizing');\n };\n\n var calcContentBoxSize = function calcContentBoxSize(element, size, upper, lower) {\n var paddingUpper = getProp(element, 'padding-' + upper, 0);\n var paddingLower = getProp(element, 'padding-' + lower, 0);\n var borderUpper = getProp(element, 'border-' + upper + '-width', 0);\n var borderLower = getProp(element, 'border-' + lower + '-width', 0);\n return size - paddingUpper - paddingLower - borderUpper - borderLower;\n };\n\n var getCalculatedHeight = function getCalculatedHeight(element, boxSizing) {\n var dom = element.dom;\n var height = dom.getBoundingClientRect().height || dom.offsetHeight;\n return boxSizing === 'border-box' ? height : calcContentBoxSize(element, height, 'top', 'bottom');\n };\n\n var getCalculatedWidth = function getCalculatedWidth(element, boxSizing) {\n var dom = element.dom;\n var width = dom.getBoundingClientRect().width || dom.offsetWidth;\n return boxSizing === 'border-box' ? width : calcContentBoxSize(element, width, 'left', 'right');\n };\n\n var getHeight$1 = function getHeight$1(element) {\n return needManualCalc() ? getCalculatedHeight(element, getBoxSizing(element)) : getProp(element, 'height', element.dom.offsetHeight);\n };\n\n var getWidth = function getWidth(element) {\n return needManualCalc() ? getCalculatedWidth(element, getBoxSizing(element)) : getProp(element, 'width', element.dom.offsetWidth);\n };\n\n var getInnerWidth = function getInnerWidth(element) {\n return getCalculatedWidth(element, 'content-box');\n };\n\n var api$1 = Dimension('width', function (element) {\n return element.dom.offsetWidth;\n });\n\n var get$8 = function get$8(element) {\n return api$1.get(element);\n };\n\n var getOuter$2 = function getOuter$2(element) {\n return api$1.getOuter(element);\n };\n\n var getInner = getInnerWidth;\n var getRuntime$1 = getWidth;\n\n var columns = function columns(warehouse, isValidCell) {\n if (isValidCell === void 0) {\n isValidCell = always;\n }\n\n var grid = warehouse.grid;\n var cols = range$1(grid.columns, identity);\n var rowsArr = range$1(grid.rows, identity);\n return map$1(cols, function (col) {\n var getBlock = function getBlock() {\n return bind$2(rowsArr, function (r) {\n return Warehouse.getAt(warehouse, r, col).filter(function (detail) {\n return detail.column === col;\n }).toArray();\n });\n };\n\n var isValid = function isValid(detail) {\n return detail.colspan === 1 && isValidCell(detail.element);\n };\n\n var getFallback = function getFallback() {\n return Warehouse.getAt(warehouse, 0, col);\n };\n\n return decide(getBlock, isValid, getFallback);\n });\n };\n\n var decide = function decide(getBlock, isValid, getFallback) {\n var inBlock = getBlock();\n var validInBlock = find$1(inBlock, isValid);\n var detailOption = validInBlock.orThunk(function () {\n return Optional.from(inBlock[0]).orThunk(getFallback);\n });\n return detailOption.map(function (detail) {\n return detail.element;\n });\n };\n\n var rows = function rows(warehouse) {\n var grid = warehouse.grid;\n var rowsArr = range$1(grid.rows, identity);\n var cols = range$1(grid.columns, identity);\n return map$1(rowsArr, function (row) {\n var getBlock = function getBlock() {\n return bind$2(cols, function (c) {\n return Warehouse.getAt(warehouse, row, c).filter(function (detail) {\n return detail.row === row;\n }).fold(constant([]), function (detail) {\n return [detail];\n });\n });\n };\n\n var isSingle = function isSingle(detail) {\n return detail.rowspan === 1;\n };\n\n var getFallback = function getFallback() {\n return Warehouse.getAt(warehouse, row, 0);\n };\n\n return decide(getBlock, isSingle, getFallback);\n });\n };\n\n var deduce = function deduce(xs, index) {\n if (index < 0 || index >= xs.length - 1) {\n return Optional.none();\n }\n\n var current = xs[index].fold(function () {\n var rest = reverse(xs.slice(0, index));\n return findMap(rest, function (a, i) {\n return a.map(function (aa) {\n return {\n value: aa,\n delta: i + 1\n };\n });\n });\n }, function (c) {\n return Optional.some({\n value: c,\n delta: 0\n });\n });\n var next = xs[index + 1].fold(function () {\n var rest = xs.slice(index + 1);\n return findMap(rest, function (a, i) {\n return a.map(function (aa) {\n return {\n value: aa,\n delta: i + 1\n };\n });\n });\n }, function (n) {\n return Optional.some({\n value: n,\n delta: 1\n });\n });\n return current.bind(function (c) {\n return next.map(function (n) {\n var extras = n.delta + c.delta;\n return Math.abs(n.value - c.value) / extras;\n });\n });\n };\n\n var onDirection = function onDirection(isLtr, isRtl) {\n return function (element) {\n return getDirection(element) === 'rtl' ? isRtl : isLtr;\n };\n };\n\n var getDirection = function getDirection(element) {\n return get$a(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var api = Dimension('height', function (element) {\n var dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n\n var get$7 = function get$7(element) {\n return api.get(element);\n };\n\n var getOuter$1 = function getOuter$1(element) {\n return api.getOuter(element);\n };\n\n var getRuntime = getHeight$1;\n\n var r = function r(left, top) {\n var translate = function translate(x, y) {\n return r(left + x, top + y);\n };\n\n return {\n left: left,\n top: top,\n translate: translate\n };\n };\n\n var SugarPosition = r;\n\n var boxPosition = function boxPosition(dom) {\n var box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n\n var firstDefinedOrZero = function firstDefinedOrZero(a, b) {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n\n var absolute = function absolute(element) {\n var doc = element.dom.ownerDocument;\n var body = doc.body;\n var win = doc.defaultView;\n var html = doc.documentElement;\n\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n\n var scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n\n var viewport = function viewport(element) {\n var dom = element.dom;\n var doc = dom.ownerDocument;\n var body = doc.body;\n\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n\n return boxPosition(dom);\n };\n\n var rowInfo = function rowInfo(row, y) {\n return {\n row: row,\n y: y\n };\n };\n\n var colInfo = function colInfo(col, x) {\n return {\n col: col,\n x: x\n };\n };\n\n var rtlEdge = function rtlEdge(cell) {\n var pos = absolute(cell);\n return pos.left + getOuter$2(cell);\n };\n\n var ltrEdge = function ltrEdge(cell) {\n return absolute(cell).left;\n };\n\n var getLeftEdge = function getLeftEdge(index, cell) {\n return colInfo(index, ltrEdge(cell));\n };\n\n var getRightEdge = function getRightEdge(index, cell) {\n return colInfo(index, rtlEdge(cell));\n };\n\n var getTop$1 = function getTop$1(cell) {\n return absolute(cell).top;\n };\n\n var getTopEdge = function getTopEdge(index, cell) {\n return rowInfo(index, getTop$1(cell));\n };\n\n var getBottomEdge = function getBottomEdge(index, cell) {\n return rowInfo(index, getTop$1(cell) + getOuter$1(cell));\n };\n\n var findPositions = function findPositions(getInnerEdge, getOuterEdge, array) {\n if (array.length === 0) {\n return [];\n }\n\n var lines = map$1(array.slice(1), function (cellOption, index) {\n return cellOption.map(function (cell) {\n return getInnerEdge(index, cell);\n });\n });\n var lastLine = array[array.length - 1].map(function (cell) {\n return getOuterEdge(array.length - 1, cell);\n });\n return lines.concat([lastLine]);\n };\n\n var negate = function negate(step) {\n return -step;\n };\n\n var height = {\n delta: identity,\n positions: function positions(optElements) {\n return findPositions(getTopEdge, getBottomEdge, optElements);\n },\n edge: getTop$1\n };\n var ltr$1 = {\n delta: identity,\n edge: ltrEdge,\n positions: function positions(optElements) {\n return findPositions(getLeftEdge, getRightEdge, optElements);\n }\n };\n var rtl$1 = {\n delta: negate,\n edge: rtlEdge,\n positions: function positions(optElements) {\n return findPositions(getRightEdge, getLeftEdge, optElements);\n }\n };\n var detect$2 = onDirection(ltr$1, rtl$1);\n var width = {\n delta: function delta(amount, table) {\n return detect$2(table).delta(amount, table);\n },\n positions: function positions(cols, table) {\n return detect$2(table).positions(cols, table);\n },\n edge: function edge(cell) {\n return detect$2(cell).edge(cell);\n }\n };\n var units = {\n unsupportedLength: ['em', 'ex', 'cap', 'ch', 'ic', 'rem', 'lh', 'rlh', 'vw', 'vh', 'vi', 'vb', 'vmin', 'vmax', 'cm', 'mm', 'Q', 'in', 'pc', 'pt', 'px'],\n fixed: ['px', 'pt'],\n relative: ['%'],\n empty: ['']\n };\n\n var pattern = function () {\n var decimalDigits = '[0-9]+';\n var signedInteger = '[+-]?' + decimalDigits;\n var exponentPart = '[eE]' + signedInteger;\n var dot = '\\\\.';\n\n var opt = function opt(input) {\n return '(?:' + input + ')?';\n };\n\n var unsignedDecimalLiteral = ['Infinity', decimalDigits + dot + opt(decimalDigits) + opt(exponentPart), dot + decimalDigits + opt(exponentPart), decimalDigits + opt(exponentPart)].join('|');\n var float = '[+-]?(?:' + unsignedDecimalLiteral + ')';\n return new RegExp('^(' + float + ')(.*)$');\n }();\n\n var isUnit = function isUnit(unit, accepted) {\n return exists(accepted, function (acc) {\n return exists(units[acc], function (check) {\n return unit === check;\n });\n });\n };\n\n var parse = function parse(input, accepted) {\n var match = Optional.from(pattern.exec(input));\n return match.bind(function (array) {\n var value = Number(array[1]);\n var unitRaw = array[2];\n\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value: value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n\n var rPercentageBasedSizeRegex = /(\\d+(\\.\\d+)?)%/;\n var rPixelBasedSizeRegex = /(\\d+(\\.\\d+)?)px|em/;\n var isCol$2 = isTag('col');\n\n var getPercentSize = function getPercentSize(elm, outerGetter, innerGetter) {\n var relativeParent = parentElement(elm).getOrThunk(function () {\n return getBody$1(owner(elm));\n });\n return outerGetter(elm) / innerGetter(relativeParent) * 100;\n };\n\n var setPixelWidth = function setPixelWidth(cell, amount) {\n set$1(cell, 'width', amount + 'px');\n };\n\n var setPercentageWidth = function setPercentageWidth(cell, amount) {\n set$1(cell, 'width', amount + '%');\n };\n\n var setHeight = function setHeight(cell, amount) {\n set$1(cell, 'height', amount + 'px');\n };\n\n var getHeightValue = function getHeightValue(cell) {\n return getRuntime(cell) + 'px';\n };\n\n var convert = function convert(cell, number, getter, setter) {\n var newSize = table(cell).map(function (table) {\n var total = getter(table);\n return Math.floor(number / 100 * total);\n }).getOr(number);\n setter(cell, newSize);\n return newSize;\n };\n\n var normalizePixelSize = function normalizePixelSize(value, cell, getter, setter) {\n var number = parseFloat(value);\n return endsWith(value, '%') && name(cell) !== 'table' ? convert(cell, number, getter, setter) : number;\n };\n\n var getTotalHeight = function getTotalHeight(cell) {\n var value = getHeightValue(cell);\n\n if (!value) {\n return get$7(cell);\n }\n\n return normalizePixelSize(value, cell, get$7, setHeight);\n };\n\n var get$6 = function get$6(cell, type, f) {\n var v = f(cell);\n var span = getSpan(cell, type);\n return v / span;\n };\n\n var getRaw$1 = function getRaw$1(element, prop) {\n return getRaw$2(element, prop).orThunk(function () {\n return getOpt(element, prop).map(function (val) {\n return val + 'px';\n });\n });\n };\n\n var getRawWidth$1 = function getRawWidth$1(element) {\n return getRaw$1(element, 'width');\n };\n\n var getRawHeight = function getRawHeight(element) {\n return getRaw$1(element, 'height');\n };\n\n var getPercentageWidth = function getPercentageWidth(cell) {\n return getPercentSize(cell, get$8, getInner);\n };\n\n var getPixelWidth$1 = function getPixelWidth$1(cell) {\n return isCol$2(cell) ? get$8(cell) : getRuntime$1(cell);\n };\n\n var getHeight = function getHeight(cell) {\n return get$6(cell, 'rowspan', getTotalHeight);\n };\n\n var getGenericWidth = function getGenericWidth(cell) {\n var width = getRawWidth$1(cell);\n return width.bind(function (w) {\n return parse(w, ['fixed', 'relative', 'empty']);\n });\n };\n\n var setGenericWidth = function setGenericWidth(cell, amount, unit) {\n set$1(cell, 'width', amount + unit);\n };\n\n var getPixelTableWidth = function getPixelTableWidth(table) {\n return get$8(table) + 'px';\n };\n\n var getPercentTableWidth = function getPercentTableWidth(table) {\n return getPercentSize(table, get$8, getInner) + '%';\n };\n\n var isPercentSizing$1 = function isPercentSizing$1(table) {\n return getRawWidth$1(table).exists(function (size) {\n return rPercentageBasedSizeRegex.test(size);\n });\n };\n\n var isPixelSizing$1 = function isPixelSizing$1(table) {\n return getRawWidth$1(table).exists(function (size) {\n return rPixelBasedSizeRegex.test(size);\n });\n };\n\n var isNoneSizing$1 = function isNoneSizing$1(table) {\n return getRawWidth$1(table).isNone();\n };\n\n var percentageBasedSizeRegex = constant(rPercentageBasedSizeRegex);\n var isCol$1 = isTag('col');\n\n var getRawW = function getRawW(cell) {\n return getRawWidth$1(cell).getOrThunk(function () {\n return getPixelWidth$1(cell) + 'px';\n });\n };\n\n var getRawH = function getRawH(cell) {\n return getRawHeight(cell).getOrThunk(function () {\n return getHeight(cell) + 'px';\n });\n };\n\n var justCols = function justCols(warehouse) {\n return map$1(Warehouse.justColumns(warehouse), function (column) {\n return Optional.from(column.element);\n });\n };\n\n var isValidColumn = function isValidColumn(cell) {\n var browser = detect$3().browser;\n var supportsColWidths = browser.isChrome() || browser.isFirefox();\n return isCol$1(cell) ? supportsColWidths : true;\n };\n\n var getDimension = function getDimension(cellOpt, index, backups, filter, getter, fallback) {\n return cellOpt.filter(filter).fold(function () {\n return fallback(deduce(backups, index));\n }, function (cell) {\n return getter(cell);\n });\n };\n\n var getWidthFrom = function getWidthFrom(warehouse, table, getWidth, fallback) {\n var columnCells = columns(warehouse);\n var columns$1 = Warehouse.hasColumns(warehouse) ? justCols(warehouse) : columnCells;\n var backups = [Optional.some(width.edge(table))].concat(map$1(width.positions(columnCells, table), function (pos) {\n return pos.map(function (p) {\n return p.x;\n });\n }));\n var colFilter = not(hasColspan);\n return map$1(columns$1, function (cellOption, c) {\n return getDimension(cellOption, c, backups, colFilter, function (column) {\n if (isValidColumn(column)) {\n return getWidth(column);\n } else {\n var cell = bindFrom(columnCells[c], identity);\n return getDimension(cell, c, backups, colFilter, function (cell) {\n return fallback(Optional.some(get$8(cell)));\n }, fallback);\n }\n }, fallback);\n });\n };\n\n var getDeduced = function getDeduced(deduced) {\n return deduced.map(function (d) {\n return d + 'px';\n }).getOr('');\n };\n\n var getRawWidths = function getRawWidths(warehouse, table) {\n return getWidthFrom(warehouse, table, getRawW, getDeduced);\n };\n\n var getPercentageWidths = function getPercentageWidths(warehouse, table, tableSize) {\n return getWidthFrom(warehouse, table, getPercentageWidth, function (deduced) {\n return deduced.fold(function () {\n return tableSize.minCellWidth();\n }, function (cellWidth) {\n return cellWidth / tableSize.pixelWidth() * 100;\n });\n });\n };\n\n var getPixelWidths = function getPixelWidths(warehouse, table, tableSize) {\n return getWidthFrom(warehouse, table, getPixelWidth$1, function (deduced) {\n return deduced.getOrThunk(tableSize.minCellWidth);\n });\n };\n\n var getHeightFrom = function getHeightFrom(warehouse, table, direction, getHeight, fallback) {\n var rows$1 = rows(warehouse);\n var backups = [Optional.some(direction.edge(table))].concat(map$1(direction.positions(rows$1, table), function (pos) {\n return pos.map(function (p) {\n return p.y;\n });\n }));\n return map$1(rows$1, function (cellOption, c) {\n return getDimension(cellOption, c, backups, not(hasRowspan), getHeight, fallback);\n });\n };\n\n var getPixelHeights = function getPixelHeights(warehouse, table, direction) {\n return getHeightFrom(warehouse, table, direction, getHeight, function (deduced) {\n return deduced.getOrThunk(minHeight);\n });\n };\n\n var getRawHeights = function getRawHeights(warehouse, table, direction) {\n return getHeightFrom(warehouse, table, direction, getRawH, getDeduced);\n };\n\n var widthLookup = function widthLookup(table, getter) {\n return function () {\n if (inBody(table)) {\n return getter(table);\n } else {\n return parseFloat(getRaw$2(table, 'width').getOr('0'));\n }\n };\n };\n\n var noneSize = function noneSize(table) {\n var getWidth = widthLookup(table, get$8);\n var zero = constant(0);\n\n var getWidths = function getWidths(warehouse, tableSize) {\n return getPixelWidths(warehouse, table, tableSize);\n };\n\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths: getWidths,\n getCellDelta: zero,\n singleColumnWidth: constant([0]),\n minCellWidth: zero,\n setElementWidth: noop,\n adjustTableWidth: noop,\n isRelative: true,\n label: 'none'\n };\n };\n\n var percentageSize = function percentageSize(table) {\n var getFloatWidth = widthLookup(table, function (elem) {\n return parseFloat(getPercentTableWidth(elem));\n });\n var getWidth = widthLookup(table, get$8);\n\n var getCellDelta = function getCellDelta(delta) {\n return delta / getWidth() * 100;\n };\n\n var singleColumnWidth = function singleColumnWidth(w, _delta) {\n return [100 - w];\n };\n\n var minCellWidth = function minCellWidth() {\n return minWidth() / getWidth() * 100;\n };\n\n var adjustTableWidth = function adjustTableWidth(delta) {\n var currentWidth = getFloatWidth();\n var change = delta / 100 * currentWidth;\n var newWidth = currentWidth + change;\n setPercentageWidth(table, newWidth);\n };\n\n var getWidths = function getWidths(warehouse, tableSize) {\n return getPercentageWidths(warehouse, table, tableSize);\n };\n\n return {\n width: getFloatWidth,\n pixelWidth: getWidth,\n getWidths: getWidths,\n getCellDelta: getCellDelta,\n singleColumnWidth: singleColumnWidth,\n minCellWidth: minCellWidth,\n setElementWidth: setPercentageWidth,\n adjustTableWidth: adjustTableWidth,\n isRelative: true,\n label: 'percent'\n };\n };\n\n var pixelSize = function pixelSize(table) {\n var getWidth = widthLookup(table, get$8);\n var getCellDelta = identity;\n\n var singleColumnWidth = function singleColumnWidth(w, delta) {\n var newNext = Math.max(minWidth(), w + delta);\n return [newNext - w];\n };\n\n var adjustTableWidth = function adjustTableWidth(delta) {\n var newWidth = getWidth() + delta;\n setPixelWidth(table, newWidth);\n };\n\n var getWidths = function getWidths(warehouse, tableSize) {\n return getPixelWidths(warehouse, table, tableSize);\n };\n\n return {\n width: getWidth,\n pixelWidth: getWidth,\n getWidths: getWidths,\n getCellDelta: getCellDelta,\n singleColumnWidth: singleColumnWidth,\n minCellWidth: minWidth,\n setElementWidth: setPixelWidth,\n adjustTableWidth: adjustTableWidth,\n isRelative: false,\n label: 'pixel'\n };\n };\n\n var chooseSize = function chooseSize(element, width) {\n var percentMatch = percentageBasedSizeRegex().exec(width);\n\n if (percentMatch !== null) {\n return percentageSize(element);\n } else {\n return pixelSize(element);\n }\n };\n\n var getTableSize = function getTableSize(table) {\n var width = getRawWidth$1(table);\n return width.fold(function () {\n return noneSize(table);\n }, function (w) {\n return chooseSize(table, w);\n });\n };\n\n var TableSize = {\n getTableSize: getTableSize,\n pixelSize: pixelSize,\n percentageSize: percentageSize,\n noneSize: noneSize\n };\n\n var statsStruct = function statsStruct(minRow, minCol, maxRow, maxCol, allCells, selectedCells) {\n return {\n minRow: minRow,\n minCol: minCol,\n maxRow: maxRow,\n maxCol: maxCol,\n allCells: allCells,\n selectedCells: selectedCells\n };\n };\n\n var findSelectedStats = function findSelectedStats(house, isSelected) {\n var totalColumns = house.grid.columns;\n var totalRows = house.grid.rows;\n var minRow = totalRows;\n var minCol = totalColumns;\n var maxRow = 0;\n var maxCol = 0;\n var allCells = [];\n var selectedCells = [];\n each$1(house.access, function (detail) {\n allCells.push(detail);\n\n if (isSelected(detail)) {\n selectedCells.push(detail);\n var startRow = detail.row;\n var endRow = startRow + detail.rowspan - 1;\n var startCol = detail.column;\n var endCol = startCol + detail.colspan - 1;\n\n if (startRow < minRow) {\n minRow = startRow;\n } else if (endRow > maxRow) {\n maxRow = endRow;\n }\n\n if (startCol < minCol) {\n minCol = startCol;\n } else if (endCol > maxCol) {\n maxCol = endCol;\n }\n }\n });\n return statsStruct(minRow, minCol, maxRow, maxCol, allCells, selectedCells);\n };\n\n var makeCell = function makeCell(list, seenSelected, rowIndex) {\n var row = list[rowIndex].element;\n var td = SugarElement.fromTag('td');\n append$1(td, SugarElement.fromTag('br'));\n var f = seenSelected ? append$1 : prepend;\n f(row, td);\n };\n\n var fillInGaps = function fillInGaps(list, house, stats, isSelected) {\n var totalColumns = house.grid.columns;\n var totalRows = house.grid.rows;\n\n for (var i = 0; i < totalRows; i++) {\n var seenSelected = false;\n\n for (var j = 0; j < totalColumns; j++) {\n if (!(i < stats.minRow || i > stats.maxRow || j < stats.minCol || j > stats.maxCol)) {\n var needCell = Warehouse.getAt(house, i, j).filter(isSelected).isNone();\n\n if (needCell) {\n makeCell(list, seenSelected, i);\n } else {\n seenSelected = true;\n }\n }\n }\n }\n };\n\n var clean = function clean(replica, stats, house, widthDelta) {\n each$1(house.columns, function (col) {\n if (col.column < stats.minCol || col.column > stats.maxCol) {\n remove$5(col.element);\n }\n });\n var emptyRows = filter$2(firstLayer(replica, 'tr'), function (row) {\n return row.dom.childElementCount === 0;\n });\n each$2(emptyRows, remove$5);\n\n if (stats.minCol === stats.maxCol || stats.minRow === stats.maxRow) {\n each$2(firstLayer(replica, 'th,td'), function (cell) {\n remove$7(cell, 'rowspan');\n remove$7(cell, 'colspan');\n });\n }\n\n remove$7(replica, LOCKED_COL_ATTR);\n remove$7(replica, 'data-snooker-col-series');\n var tableSize = TableSize.getTableSize(replica);\n tableSize.adjustTableWidth(widthDelta);\n };\n\n var getTableWidthDelta = function getTableWidthDelta(table, warehouse, tableSize, stats) {\n if (stats.minCol === 0 && warehouse.grid.columns === stats.maxCol + 1) {\n return 0;\n }\n\n var colWidths = getPixelWidths(warehouse, table, tableSize);\n var allColsWidth = foldl(colWidths, function (acc, width) {\n return acc + width;\n }, 0);\n var selectedColsWidth = foldl(colWidths.slice(stats.minCol, stats.maxCol + 1), function (acc, width) {\n return acc + width;\n }, 0);\n var newWidth = selectedColsWidth / allColsWidth * tableSize.pixelWidth();\n var delta = newWidth - tableSize.pixelWidth();\n return tableSize.getCellDelta(delta);\n };\n\n var extract$1 = function extract$1(table, selectedSelector) {\n var isSelected = function isSelected(detail) {\n return is$2(detail.element, selectedSelector);\n };\n\n var replica = deep(table);\n var list = fromTable$1(replica);\n var tableSize = TableSize.getTableSize(table);\n var replicaHouse = Warehouse.generate(list);\n var replicaStats = findSelectedStats(replicaHouse, isSelected);\n var selector = 'th:not(' + selectedSelector + ')' + ',td:not(' + selectedSelector + ')';\n var unselectedCells = filterFirstLayer(replica, 'th,td', function (cell) {\n return is$2(cell, selector);\n });\n each$2(unselectedCells, remove$5);\n fillInGaps(list, replicaHouse, replicaStats, isSelected);\n var house = Warehouse.fromTable(table);\n var widthDelta = getTableWidthDelta(table, house, tableSize, replicaStats);\n clean(replica, replicaStats, replicaHouse, widthDelta);\n return replica;\n };\n\n var nbsp = '\\xA0';\n\n var getEnd = function getEnd(element) {\n return name(element) === 'img' ? 1 : getOption(element).fold(function () {\n return children$3(element).length;\n }, function (v) {\n return v.length;\n });\n };\n\n var isTextNodeWithCursorPosition = function isTextNodeWithCursorPosition(el) {\n return getOption(el).filter(function (text) {\n return text.trim().length !== 0 || text.indexOf(nbsp) > -1;\n }).isSome();\n };\n\n var elementsWithCursorPosition = ['img', 'br'];\n\n var isCursorPosition = function isCursorPosition(elem) {\n var hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains$2(elementsWithCursorPosition, name(elem));\n };\n\n var first = function first(element) {\n return descendant$1(element, isCursorPosition);\n };\n\n var last$1 = function last$1(element) {\n return descendantRtl(element, isCursorPosition);\n };\n\n var descendantRtl = function descendantRtl(scope, predicate) {\n var descend = function descend(element) {\n var children = children$3(element);\n\n for (var i = children.length - 1; i >= 0; i--) {\n var child = children[i];\n\n if (predicate(child)) {\n return Optional.some(child);\n }\n\n var res = descend(child);\n\n if (res.isSome()) {\n return res;\n }\n }\n\n return Optional.none();\n };\n\n return descend(scope);\n };\n\n var transferableAttributes = {\n scope: ['row', 'col']\n };\n\n var createCell = function createCell(doc) {\n return function () {\n var td = SugarElement.fromTag('td', doc.dom);\n append$1(td, SugarElement.fromTag('br', doc.dom));\n return td;\n };\n };\n\n var createCol = function createCol(doc) {\n return function () {\n return SugarElement.fromTag('col', doc.dom);\n };\n };\n\n var createColgroup = function createColgroup(doc) {\n return function () {\n return SugarElement.fromTag('colgroup', doc.dom);\n };\n };\n\n var createRow$1 = function createRow$1(doc) {\n return function () {\n return SugarElement.fromTag('tr', doc.dom);\n };\n };\n\n var replace$1 = function replace$1(cell, tag, attrs) {\n var replica = copy$1(cell, tag);\n each$1(attrs, function (v, k) {\n if (v === null) {\n remove$7(replica, k);\n } else {\n set$2(replica, k, v);\n }\n });\n return replica;\n };\n\n var pasteReplace = function pasteReplace(cell) {\n return cell;\n };\n\n var cloneFormats = function cloneFormats(oldCell, newCell, formats) {\n var first$1 = first(oldCell);\n return first$1.map(function (firstText) {\n var formatSelector = formats.join(',');\n var parents = ancestors$3(firstText, formatSelector, function (element) {\n return eq$1(element, oldCell);\n });\n return foldr(parents, function (last, parent) {\n var clonedFormat = shallow(parent);\n remove$7(clonedFormat, 'contenteditable');\n append$1(last, clonedFormat);\n return clonedFormat;\n }, newCell);\n }).getOr(newCell);\n };\n\n var cloneAppropriateAttributes = function cloneAppropriateAttributes(original, clone) {\n each$1(transferableAttributes, function (validAttributes, attributeName) {\n return getOpt(original, attributeName).filter(function (attribute) {\n return contains$2(validAttributes, attribute);\n }).each(function (attribute) {\n return set$2(clone, attributeName, attribute);\n });\n });\n };\n\n var cellOperations = function cellOperations(mutate, doc, formatsToClone) {\n var cloneCss = function cloneCss(prev, clone) {\n copy$2(prev.element, clone);\n remove$6(clone, 'height');\n\n if (prev.colspan !== 1) {\n remove$6(clone, 'width');\n }\n };\n\n var newCell = function newCell(prev) {\n var td = SugarElement.fromTag(name(prev.element), doc.dom);\n var formats = formatsToClone.getOr(['strong', 'em', 'b', 'i', 'span', 'font', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'div']);\n var lastNode = formats.length > 0 ? cloneFormats(prev.element, td, formats) : td;\n append$1(lastNode, SugarElement.fromTag('br'));\n cloneCss(prev, td);\n cloneAppropriateAttributes(prev.element, td);\n mutate(prev.element, td);\n return td;\n };\n\n var newCol = function newCol(prev) {\n var col = SugarElement.fromTag(name(prev.element), doc.dom);\n cloneCss(prev, col);\n mutate(prev.element, col);\n return col;\n };\n\n return {\n col: newCol,\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: newCell,\n replace: replace$1,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n\n var paste$1 = function paste$1(doc) {\n return {\n col: createCol(doc),\n colgroup: createColgroup(doc),\n row: createRow$1(doc),\n cell: createCell(doc),\n replace: pasteReplace,\n colGap: createCol(doc),\n gap: createCell(doc)\n };\n };\n\n var fromHtml = function fromHtml(html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children$3(SugarElement.fromDom(div));\n };\n\n var fromDom = function fromDom(nodes) {\n return map$1(nodes, SugarElement.fromDom);\n };\n\n var getNodeName = function getNodeName(elm) {\n return elm.nodeName.toLowerCase();\n };\n\n var getBody = function getBody(editor) {\n return SugarElement.fromDom(editor.getBody());\n };\n\n var getPixelWidth = function getPixelWidth(elm) {\n return elm.getBoundingClientRect().width;\n };\n\n var getPixelHeight = function getPixelHeight(elm) {\n return elm.getBoundingClientRect().height;\n };\n\n var getIsRoot = function getIsRoot(editor) {\n return function (element) {\n return eq$1(element, getBody(editor));\n };\n };\n\n var removePxSuffix = function removePxSuffix(size) {\n return size ? size.replace(/px$/, '') : '';\n };\n\n var addPxSuffix = function addPxSuffix(size) {\n return /^\\d+(\\.\\d+)?$/.test(size) ? size + 'px' : size;\n };\n\n var removeDataStyle = function removeDataStyle(table) {\n remove$7(table, 'data-mce-style');\n\n var removeStyleAttribute = function removeStyleAttribute(element) {\n return remove$7(element, 'data-mce-style');\n };\n\n each$2(cells$1(table), removeStyleAttribute);\n each$2(columns$1(table), removeStyleAttribute);\n each$2(rows$1(table), removeStyleAttribute);\n };\n\n var getRawWidth = function getRawWidth(editor, elm) {\n var raw = editor.dom.getStyle(elm, 'width') || editor.dom.getAttrib(elm, 'width');\n return Optional.from(raw).filter(isNotEmpty);\n };\n\n var isPercentage$1 = function isPercentage$1(value) {\n return /^(\\d+(\\.\\d+)?)%$/.test(value);\n };\n\n var isPixel = function isPixel(value) {\n return /^(\\d+(\\.\\d+)?)px$/.test(value);\n };\n\n var getSelectionStart = function getSelectionStart(editor) {\n return SugarElement.fromDom(editor.selection.getStart());\n };\n\n var getSelectionEnd = function getSelectionEnd(editor) {\n return SugarElement.fromDom(editor.selection.getEnd());\n };\n\n var selection = function selection(selections) {\n return cata$2(selections.get(), constant([]), identity, pure);\n };\n\n var unmergable = function unmergable(selections) {\n var hasSpan = function hasSpan(elem, type) {\n return getOpt(elem, type).exists(function (span) {\n return parseInt(span, 10) > 1;\n });\n };\n\n var hasRowOrColSpan = function hasRowOrColSpan(elem) {\n return hasSpan(elem, 'rowspan') || hasSpan(elem, 'colspan');\n };\n\n var candidates = selection(selections);\n return candidates.length > 0 && forall(candidates, hasRowOrColSpan) ? Optional.some(candidates) : Optional.none();\n };\n\n var mergable = function mergable(table, selections, ephemera) {\n return cata$2(selections.get(), Optional.none, function (cells) {\n if (cells.length <= 1) {\n return Optional.none();\n } else {\n return retrieveBox(table, ephemera.firstSelectedSelector, ephemera.lastSelectedSelector).map(function (bounds) {\n return {\n bounds: bounds,\n cells: cells\n };\n });\n }\n }, Optional.none);\n };\n\n var strSelected = 'data-mce-selected';\n var strSelectedSelector = 'td[' + strSelected + '],th[' + strSelected + ']';\n var strAttributeSelector = '[' + strSelected + ']';\n var strFirstSelected = 'data-mce-first-selected';\n var strFirstSelectedSelector = 'td[' + strFirstSelected + '],th[' + strFirstSelected + ']';\n var strLastSelected = 'data-mce-last-selected';\n var strLastSelectedSelector = 'td[' + strLastSelected + '],th[' + strLastSelected + ']';\n var attributeSelector = strAttributeSelector;\n var ephemera = {\n selected: strSelected,\n selectedSelector: strSelectedSelector,\n firstSelected: strFirstSelected,\n firstSelectedSelector: strFirstSelectedSelector,\n lastSelected: strLastSelected,\n lastSelectedSelector: strLastSelectedSelector\n };\n\n var noMenu = function noMenu(cell) {\n return {\n element: cell,\n mergable: Optional.none(),\n unmergable: Optional.none(),\n selection: [cell]\n };\n };\n\n var forMenu = function forMenu(selections, table, cell) {\n return {\n element: cell,\n mergable: mergable(table, selections, ephemera),\n unmergable: unmergable(selections),\n selection: selection(selections)\n };\n };\n\n var paste = function paste(element, clipboard, generators) {\n return {\n element: element,\n clipboard: clipboard,\n generators: generators\n };\n };\n\n var pasteRows = function pasteRows(selections, cell, clipboard, generators) {\n return {\n selection: selection(selections),\n clipboard: clipboard,\n generators: generators\n };\n };\n\n var getSelectionCellFallback = function getSelectionCellFallback(element) {\n return table(element).bind(function (table) {\n return retrieve(table, ephemera.firstSelectedSelector);\n }).fold(constant(element), function (cells) {\n return cells[0];\n });\n };\n\n var getSelectionFromSelector = function getSelectionFromSelector(selector) {\n return function (initCell, isRoot) {\n var cellName = name(initCell);\n var cell = cellName === 'col' || cellName === 'colgroup' ? getSelectionCellFallback(initCell) : initCell;\n return closest$1(cell, selector, isRoot);\n };\n };\n\n var getSelectionCellOrCaption = getSelectionFromSelector('th,td,caption');\n var getSelectionCell = getSelectionFromSelector('th,td');\n\n var getCellsFromSelection = function getCellsFromSelection(selections) {\n return selection(selections);\n };\n\n var getRowsFromSelection = function getRowsFromSelection(selected, selector) {\n var cellOpt = getSelectionCell(selected);\n var rowsOpt = cellOpt.bind(function (cell) {\n return table(cell);\n }).map(function (table) {\n return rows$1(table);\n });\n return lift2(cellOpt, rowsOpt, function (cell, rows) {\n return filter$2(rows, function (row) {\n return exists(fromDom(row.dom.cells), function (rowCell) {\n return get$b(rowCell, selector) === '1' || eq$1(rowCell, cell);\n });\n });\n }).getOr([]);\n };\n\n var extractSelected = function extractSelected(cells) {\n return table(cells[0]).map(function (table) {\n var replica = extract$1(table, attributeSelector);\n removeDataStyle(replica);\n return [replica];\n });\n };\n\n var serializeElements = function serializeElements(editor, elements) {\n return map$1(elements, function (elm) {\n return editor.selection.serializer.serialize(elm.dom, {});\n }).join('');\n };\n\n var getTextContent = function getTextContent(elements) {\n return map$1(elements, function (element) {\n return element.dom.innerText;\n }).join('');\n };\n\n var registerEvents = function registerEvents(editor, selections, actions) {\n editor.on('BeforeGetContent', function (e) {\n var multiCellContext = function multiCellContext(cells) {\n e.preventDefault();\n extractSelected(cells).each(function (elements) {\n e.content = e.format === 'text' ? getTextContent(elements) : serializeElements(editor, elements);\n });\n };\n\n if (e.selection === true) {\n cata$2(selections.get(), noop, multiCellContext, noop);\n }\n });\n editor.on('BeforeSetContent', function (e) {\n if (e.selection === true && e.paste === true) {\n var selectedCells = getCellsFromSelection(selections);\n head(selectedCells).each(function (cell) {\n table(cell).each(function (table) {\n var elements = filter$2(fromHtml(e.content), function (content) {\n return name(content) !== 'meta';\n });\n var isTable = isTag('table');\n\n if (elements.length === 1 && isTable(elements[0])) {\n e.preventDefault();\n var doc = SugarElement.fromDom(editor.getDoc());\n var generators = paste$1(doc);\n var targets = paste(cell, elements[0], generators);\n actions.pasteCells(table, targets).each(function () {\n editor.focus();\n });\n }\n });\n });\n }\n });\n };\n\n var adt$7 = Adt.generate([{\n none: []\n }, {\n only: ['index']\n }, {\n left: ['index', 'next']\n }, {\n middle: ['prev', 'index', 'next']\n }, {\n right: ['prev', 'index']\n }]);\n\n var ColumnContext = _assign({}, adt$7);\n\n var neighbours = function neighbours(input, index) {\n if (input.length === 0) {\n return ColumnContext.none();\n }\n\n if (input.length === 1) {\n return ColumnContext.only(0);\n }\n\n if (index === 0) {\n return ColumnContext.left(0, 1);\n }\n\n if (index === input.length - 1) {\n return ColumnContext.right(index - 1, index);\n }\n\n if (index > 0 && index < input.length - 1) {\n return ColumnContext.middle(index - 1, index, index + 1);\n }\n\n return ColumnContext.none();\n };\n\n var determine = function determine(input, column, step, tableSize, resize) {\n var result = input.slice(0);\n var context = neighbours(input, column);\n var onNone = constant(map$1(result, constant(0)));\n\n var onOnly = function onOnly(index) {\n return tableSize.singleColumnWidth(result[index], step);\n };\n\n var onLeft = function onLeft(index, next) {\n return resize.calcLeftEdgeDeltas(result, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n };\n\n var onMiddle = function onMiddle(prev, index, next) {\n return resize.calcMiddleDeltas(result, prev, index, next, step, tableSize.minCellWidth(), tableSize.isRelative);\n };\n\n var onRight = function onRight(prev, index) {\n return resize.calcRightEdgeDeltas(result, prev, index, step, tableSize.minCellWidth(), tableSize.isRelative);\n };\n\n return context.fold(onNone, onOnly, onLeft, onMiddle, onRight);\n };\n\n var total = function total(start, end, measures) {\n var r = 0;\n\n for (var i = start; i < end; i++) {\n r += measures[i] !== undefined ? measures[i] : 0;\n }\n\n return r;\n };\n\n var recalculateWidthForCells = function recalculateWidthForCells(warehouse, widths) {\n var all = Warehouse.justCells(warehouse);\n return map$1(all, function (cell) {\n var width = total(cell.column, cell.column + cell.colspan, widths);\n return {\n element: cell.element,\n width: width,\n colspan: cell.colspan\n };\n });\n };\n\n var recalculateWidthForColumns = function recalculateWidthForColumns(warehouse, widths) {\n var groups = Warehouse.justColumns(warehouse);\n return map$1(groups, function (column, index) {\n return {\n element: column.element,\n width: widths[index],\n colspan: column.colspan\n };\n });\n };\n\n var recalculateHeightForCells = function recalculateHeightForCells(warehouse, heights) {\n var all = Warehouse.justCells(warehouse);\n return map$1(all, function (cell) {\n var height = total(cell.row, cell.row + cell.rowspan, heights);\n return {\n element: cell.element,\n height: height,\n rowspan: cell.rowspan\n };\n });\n };\n\n var matchRowHeight = function matchRowHeight(warehouse, heights) {\n return map$1(warehouse.all, function (row, i) {\n return {\n element: row.element,\n height: heights[i]\n };\n });\n };\n\n var sumUp = function sumUp(newSize) {\n return foldr(newSize, function (b, a) {\n return b + a;\n }, 0);\n };\n\n var recalculate = function recalculate(warehouse, widths) {\n if (Warehouse.hasColumns(warehouse)) {\n return recalculateWidthForColumns(warehouse, widths);\n } else {\n return recalculateWidthForCells(warehouse, widths);\n }\n };\n\n var recalculateAndApply = function recalculateAndApply(warehouse, widths, tableSize) {\n var newSizes = recalculate(warehouse, widths);\n each$2(newSizes, function (cell) {\n tableSize.setElementWidth(cell.element, cell.width);\n });\n };\n\n var adjustWidth = function adjustWidth(table, delta, index, resizing, tableSize) {\n var warehouse = Warehouse.fromTable(table);\n var step = tableSize.getCellDelta(delta);\n var widths = tableSize.getWidths(warehouse, tableSize);\n var isLastColumn = index === warehouse.grid.columns - 1;\n var clampedStep = resizing.clampTableDelta(widths, index, step, tableSize.minCellWidth(), isLastColumn);\n var deltas = determine(widths, index, clampedStep, tableSize, resizing);\n var newWidths = map$1(deltas, function (dx, i) {\n return dx + widths[i];\n });\n recalculateAndApply(warehouse, newWidths, tableSize);\n resizing.resizeTable(tableSize.adjustTableWidth, clampedStep, isLastColumn);\n };\n\n var adjustHeight = function adjustHeight(table, delta, index, direction) {\n var warehouse = Warehouse.fromTable(table);\n var heights = getPixelHeights(warehouse, table, direction);\n var newHeights = map$1(heights, function (dy, i) {\n return index === i ? Math.max(delta + dy, minHeight()) : dy;\n });\n var newCellSizes = recalculateHeightForCells(warehouse, newHeights);\n var newRowSizes = matchRowHeight(warehouse, newHeights);\n each$2(newRowSizes, function (row) {\n setHeight(row.element, row.height);\n });\n each$2(newCellSizes, function (cell) {\n setHeight(cell.element, cell.height);\n });\n var total = sumUp(newHeights);\n setHeight(table, total);\n };\n\n var adjustAndRedistributeWidths$1 = function adjustAndRedistributeWidths$1(_table, list, details, tableSize, resizeBehaviour) {\n var warehouse = Warehouse.generate(list);\n var sizes = tableSize.getWidths(warehouse, tableSize);\n var tablePixelWidth = tableSize.pixelWidth();\n\n var _a = resizeBehaviour.calcRedestributedWidths(sizes, tablePixelWidth, details.pixelDelta, tableSize.isRelative),\n newSizes = _a.newSizes,\n delta = _a.delta;\n\n recalculateAndApply(warehouse, newSizes, tableSize);\n tableSize.adjustTableWidth(delta);\n };\n\n var adjustWidthTo = function adjustWidthTo(_table, list, _info, tableSize) {\n var warehouse = Warehouse.generate(list);\n var widths = tableSize.getWidths(warehouse, tableSize);\n recalculateAndApply(warehouse, widths, tableSize);\n };\n\n var zero = function zero(array) {\n return map$1(array, constant(0));\n };\n\n var surround = function surround(sizes, startIndex, endIndex, results, f) {\n return f(sizes.slice(0, startIndex)).concat(results).concat(f(sizes.slice(endIndex)));\n };\n\n var clampDeltaHelper = function clampDeltaHelper(predicate) {\n return function (sizes, index, delta, minCellSize) {\n if (!predicate(delta)) {\n return delta;\n } else {\n var newSize = Math.max(minCellSize, sizes[index] - Math.abs(delta));\n var diff = Math.abs(newSize - sizes[index]);\n return delta >= 0 ? diff : -diff;\n }\n };\n };\n\n var clampNegativeDelta = clampDeltaHelper(function (delta) {\n return delta < 0;\n });\n var clampDelta = clampDeltaHelper(always);\n\n var resizeTable = function resizeTable() {\n var calcFixedDeltas = function calcFixedDeltas(sizes, index, next, delta, minCellSize) {\n var clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return surround(sizes, index, next + 1, [clampedDelta, 0], zero);\n };\n\n var calcRelativeDeltas = function calcRelativeDeltas(sizes, index, delta, minCellSize) {\n var ratio = (100 + delta) / 100;\n var newThis = Math.max(minCellSize, (sizes[index] + delta) / ratio);\n return map$1(sizes, function (size, idx) {\n var newSize = idx === index ? newThis : size / ratio;\n return newSize - size;\n });\n };\n\n var calcLeftEdgeDeltas = function calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize, isRelative) {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n return calcFixedDeltas(sizes, index, next, delta, minCellSize);\n }\n };\n\n var calcMiddleDeltas = function calcMiddleDeltas(sizes, _prev, index, next, delta, minCellSize, isRelative) {\n return calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize, isRelative);\n };\n\n var resizeTable = function resizeTable(resizer, delta) {\n return resizer(delta);\n };\n\n var calcRightEdgeDeltas = function calcRightEdgeDeltas(sizes, _prev, index, delta, minCellSize, isRelative) {\n if (isRelative) {\n return calcRelativeDeltas(sizes, index, delta, minCellSize);\n } else {\n var clampedDelta = clampNegativeDelta(sizes, index, delta, minCellSize);\n return zero(sizes.slice(0, index)).concat([clampedDelta]);\n }\n };\n\n var calcRedestributedWidths = function calcRedestributedWidths(sizes, totalWidth, pixelDelta, isRelative) {\n if (isRelative) {\n var tableWidth = totalWidth + pixelDelta;\n var ratio_1 = tableWidth / totalWidth;\n var newSizes = map$1(sizes, function (size) {\n return size / ratio_1;\n });\n return {\n delta: ratio_1 * 100 - 100,\n newSizes: newSizes\n };\n } else {\n return {\n delta: pixelDelta,\n newSizes: sizes\n };\n }\n };\n\n return {\n resizeTable: resizeTable,\n clampTableDelta: clampNegativeDelta,\n calcLeftEdgeDeltas: calcLeftEdgeDeltas,\n calcMiddleDeltas: calcMiddleDeltas,\n calcRightEdgeDeltas: calcRightEdgeDeltas,\n calcRedestributedWidths: calcRedestributedWidths\n };\n };\n\n var preserveTable = function preserveTable() {\n var calcLeftEdgeDeltas = function calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize) {\n var idx = delta >= 0 ? next : index;\n var clampedDelta = clampDelta(sizes, idx, delta, minCellSize);\n return surround(sizes, index, next + 1, [clampedDelta, -clampedDelta], zero);\n };\n\n var calcMiddleDeltas = function calcMiddleDeltas(sizes, _prev, index, next, delta, minCellSize) {\n return calcLeftEdgeDeltas(sizes, index, next, delta, minCellSize);\n };\n\n var resizeTable = function resizeTable(resizer, delta, isLastColumn) {\n if (isLastColumn) {\n resizer(delta);\n }\n };\n\n var calcRightEdgeDeltas = function calcRightEdgeDeltas(sizes, _prev, _index, delta, _minCellSize, isRelative) {\n if (isRelative) {\n return zero(sizes);\n } else {\n var diff = delta / sizes.length;\n return map$1(sizes, constant(diff));\n }\n };\n\n var clampTableDelta = function clampTableDelta(sizes, index, delta, minCellSize, isLastColumn) {\n if (isLastColumn) {\n if (delta >= 0) {\n return delta;\n } else {\n var maxDelta = foldl(sizes, function (a, b) {\n return a + b - minCellSize;\n }, 0);\n return Math.max(-maxDelta, delta);\n }\n } else {\n return clampNegativeDelta(sizes, index, delta, minCellSize);\n }\n };\n\n var calcRedestributedWidths = function calcRedestributedWidths(sizes, _totalWidth, _pixelDelta, _isRelative) {\n return {\n delta: 0,\n newSizes: sizes\n };\n };\n\n return {\n resizeTable: resizeTable,\n clampTableDelta: clampTableDelta,\n calcLeftEdgeDeltas: calcLeftEdgeDeltas,\n calcMiddleDeltas: calcMiddleDeltas,\n calcRightEdgeDeltas: calcRightEdgeDeltas,\n calcRedestributedWidths: calcRedestributedWidths\n };\n };\n\n var only = function only(element, isResizable) {\n var parent = Optional.from(element.dom.documentElement).map(SugarElement.fromDom).getOr(element);\n return {\n parent: constant(parent),\n view: constant(element),\n origin: constant(SugarPosition(0, 0)),\n isResizable: isResizable\n };\n };\n\n var detached = function detached(editable, chrome, isResizable) {\n var origin = function origin() {\n return absolute(chrome);\n };\n\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin: origin,\n isResizable: isResizable\n };\n };\n\n var body = function body(editable, chrome, isResizable) {\n return {\n parent: constant(chrome),\n view: constant(editable),\n origin: constant(SugarPosition(0, 0)),\n isResizable: isResizable\n };\n };\n\n var ResizeWire = {\n only: only,\n detached: detached,\n body: body\n };\n var adt$6 = Adt.generate([{\n invalid: ['raw']\n }, {\n pixels: ['value']\n }, {\n percent: ['value']\n }]);\n\n var validateFor = function validateFor(suffix, type, value) {\n var rawAmount = value.substring(0, value.length - suffix.length);\n var amount = parseFloat(rawAmount);\n return rawAmount === amount.toString() ? type(amount) : adt$6.invalid(value);\n };\n\n var from = function from(value) {\n if (endsWith(value, '%')) {\n return validateFor('%', adt$6.percent, value);\n }\n\n if (endsWith(value, 'px')) {\n return validateFor('px', adt$6.pixels, value);\n }\n\n return adt$6.invalid(value);\n };\n\n var Size = _assign(_assign({}, adt$6), {\n from: from\n });\n\n var redistributeToPercent = function redistributeToPercent(widths, totalWidth) {\n return map$1(widths, function (w) {\n var colType = Size.from(w);\n return colType.fold(function () {\n return w;\n }, function (px) {\n var ratio = px / totalWidth * 100;\n return ratio + '%';\n }, function (pc) {\n return pc + '%';\n });\n });\n };\n\n var redistributeToPx = function redistributeToPx(widths, totalWidth, newTotalWidth) {\n var scale = newTotalWidth / totalWidth;\n return map$1(widths, function (w) {\n var colType = Size.from(w);\n return colType.fold(function () {\n return w;\n }, function (px) {\n return px * scale + 'px';\n }, function (pc) {\n return pc / 100 * newTotalWidth + 'px';\n });\n });\n };\n\n var redistributeEmpty = function redistributeEmpty(newWidthType, columns) {\n var f = newWidthType.fold(function () {\n return constant('');\n }, function (pixels) {\n var num = pixels / columns;\n return constant(num + 'px');\n }, function () {\n var num = 100 / columns;\n return constant(num + '%');\n });\n return range$1(columns, f);\n };\n\n var redistributeValues = function redistributeValues(newWidthType, widths, totalWidth) {\n return newWidthType.fold(function () {\n return widths;\n }, function (px) {\n return redistributeToPx(widths, totalWidth, px);\n }, function (_pc) {\n return redistributeToPercent(widths, totalWidth);\n });\n };\n\n var redistribute$1 = function redistribute$1(widths, totalWidth, newWidth) {\n var newType = Size.from(newWidth);\n var floats = forall(widths, function (s) {\n return s === '0px';\n }) ? redistributeEmpty(newType, widths.length) : redistributeValues(newType, widths, totalWidth);\n return normalize(floats);\n };\n\n var sum = function sum(values, fallback) {\n if (values.length === 0) {\n return fallback;\n }\n\n return foldr(values, function (rest, v) {\n return Size.from(v).fold(constant(0), identity, identity) + rest;\n }, 0);\n };\n\n var roundDown = function roundDown(num, unit) {\n var floored = Math.floor(num);\n return {\n value: floored + unit,\n remainder: num - floored\n };\n };\n\n var add$3 = function add$3(value, amount) {\n return Size.from(value).fold(constant(value), function (px) {\n return px + amount + 'px';\n }, function (pc) {\n return pc + amount + '%';\n });\n };\n\n var normalize = function normalize(values) {\n if (values.length === 0) {\n return values;\n }\n\n var scan = foldr(values, function (rest, value) {\n var info = Size.from(value).fold(function () {\n return {\n value: value,\n remainder: 0\n };\n }, function (num) {\n return roundDown(num, 'px');\n }, function (num) {\n return {\n value: num + '%',\n remainder: 0\n };\n });\n return {\n output: [info.value].concat(rest.output),\n remainder: rest.remainder + info.remainder\n };\n }, {\n output: [],\n remainder: 0\n });\n var r = scan.output;\n return r.slice(0, r.length - 1).concat([add$3(r[r.length - 1], Math.round(scan.remainder))]);\n };\n\n var validate = Size.from;\n\n var redistributeToW = function redistributeToW(newWidths, cells, unit) {\n each$2(cells, function (cell) {\n var widths = newWidths.slice(cell.column, cell.colspan + cell.column);\n var w = sum(widths, minWidth());\n set$1(cell.element, 'width', w + unit);\n });\n };\n\n var redistributeToColumns = function redistributeToColumns(newWidths, columns, unit) {\n each$2(columns, function (column, index) {\n var width = sum([newWidths[index]], minWidth());\n set$1(column.element, 'width', width + unit);\n });\n };\n\n var redistributeToH = function redistributeToH(newHeights, rows, cells, unit) {\n each$2(cells, function (cell) {\n var heights = newHeights.slice(cell.row, cell.rowspan + cell.row);\n var h = sum(heights, minHeight());\n set$1(cell.element, 'height', h + unit);\n });\n each$2(rows, function (row, i) {\n set$1(row.element, 'height', newHeights[i]);\n });\n };\n\n var getUnit = function getUnit(newSize) {\n return validate(newSize).fold(constant('px'), constant('px'), constant('%'));\n };\n\n var redistribute = function redistribute(table, optWidth, optHeight) {\n var warehouse = Warehouse.fromTable(table);\n var rows = warehouse.all;\n var cells = Warehouse.justCells(warehouse);\n var columns = Warehouse.justColumns(warehouse);\n optWidth.each(function (newWidth) {\n var widthUnit = getUnit(newWidth);\n var totalWidth = get$8(table);\n var oldWidths = getRawWidths(warehouse, table);\n var nuWidths = redistribute$1(oldWidths, totalWidth, newWidth);\n\n if (Warehouse.hasColumns(warehouse)) {\n redistributeToColumns(nuWidths, columns, widthUnit);\n } else {\n redistributeToW(nuWidths, cells, widthUnit);\n }\n\n set$1(table, 'width', newWidth);\n });\n optHeight.each(function (newHeight) {\n var hUnit = getUnit(newHeight);\n var totalHeight = get$7(table);\n var oldHeights = getRawHeights(warehouse, table, height);\n var nuHeights = redistribute$1(oldHeights, totalHeight, newHeight);\n redistributeToH(nuHeights, rows, cells, hUnit);\n set$1(table, 'height', newHeight);\n });\n };\n\n var isPercentSizing = isPercentSizing$1;\n var isPixelSizing = isPixelSizing$1;\n var isNoneSizing = isNoneSizing$1;\n\n var getGridSize = function getGridSize(table) {\n var warehouse = Warehouse.fromTable(table);\n return warehouse.grid;\n };\n\n var Event = function Event(fields) {\n var handlers = [];\n\n var bind = function bind(handler) {\n if (handler === undefined) {\n throw new Error('Event bind error: undefined handler');\n }\n\n handlers.push(handler);\n };\n\n var unbind = function unbind(handler) {\n handlers = filter$2(handlers, function (h) {\n return h !== handler;\n });\n };\n\n var trigger = function trigger() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var event = {};\n each$2(fields, function (name, i) {\n event[name] = args[i];\n });\n each$2(handlers, function (handler) {\n handler(event);\n });\n };\n\n return {\n bind: bind,\n unbind: unbind,\n trigger: trigger\n };\n };\n\n var create$4 = function create$4(typeDefs) {\n var registry = map(typeDefs, function (event) {\n return {\n bind: event.bind,\n unbind: event.unbind\n };\n });\n var trigger = map(typeDefs, function (event) {\n return event.trigger;\n });\n return {\n registry: registry,\n trigger: trigger\n };\n };\n\n var last = function last(fn, rate) {\n var timer = null;\n\n var cancel = function cancel() {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n var throttle = function throttle() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n cancel();\n timer = setTimeout(function () {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var sort = function sort(arr) {\n return arr.slice(0).sort();\n };\n\n var reqMessage = function reqMessage(required, keys) {\n throw new Error('All required keys (' + sort(required).join(', ') + ') were not specified. Specified keys were: ' + sort(keys).join(', ') + '.');\n };\n\n var unsuppMessage = function unsuppMessage(unsupported) {\n throw new Error('Unsupported keys for object: ' + sort(unsupported).join(', '));\n };\n\n var validateStrArr = function validateStrArr(label, array) {\n if (!isArray(array)) {\n throw new Error('The ' + label + ' fields must be an array. Was: ' + array + '.');\n }\n\n each$2(array, function (a) {\n if (!isString(a)) {\n throw new Error('The value ' + a + ' in the ' + label + ' fields was not a string.');\n }\n });\n };\n\n var invalidTypeMessage = function invalidTypeMessage(incorrect, type) {\n throw new Error('All values need to be of type: ' + type + '. Keys (' + sort(incorrect).join(', ') + ') were not.');\n };\n\n var checkDupes = function checkDupes(everything) {\n var sorted = sort(everything);\n var dupe = find$1(sorted, function (s, i) {\n return i < sorted.length - 1 && s === sorted[i + 1];\n });\n dupe.each(function (d) {\n throw new Error('The field: ' + d + ' occurs more than once in the combined fields: [' + sorted.join(', ') + '].');\n });\n };\n\n var base = function base(handleUnsupported, required) {\n return baseWith(handleUnsupported, required, {\n validate: isFunction,\n label: 'function'\n });\n };\n\n var baseWith = function baseWith(handleUnsupported, required, pred) {\n if (required.length === 0) {\n throw new Error('You must specify at least one required field.');\n }\n\n validateStrArr('required', required);\n checkDupes(required);\n return function (obj) {\n var keys$1 = keys(obj);\n var allReqd = forall(required, function (req) {\n return contains$2(keys$1, req);\n });\n\n if (!allReqd) {\n reqMessage(required, keys$1);\n }\n\n handleUnsupported(required, keys$1);\n var invalidKeys = filter$2(required, function (key) {\n return !pred.validate(obj[key], key);\n });\n\n if (invalidKeys.length > 0) {\n invalidTypeMessage(invalidKeys, pred.label);\n }\n\n return obj;\n };\n };\n\n var handleExact = function handleExact(required, keys) {\n var unsupported = filter$2(keys, function (key) {\n return !contains$2(required, key);\n });\n\n if (unsupported.length > 0) {\n unsuppMessage(unsupported);\n }\n };\n\n var exactly = function exactly(required) {\n return base(handleExact, required);\n };\n\n var DragMode = exactly(['compare', 'extract', 'mutate', 'sink']);\n var DragSink = exactly(['element', 'start', 'stop', 'destroy']);\n var DragApi = exactly(['forceDrop', 'drop', 'move', 'delayDrop']);\n\n var InDrag = function InDrag() {\n var previous = Optional.none();\n\n var reset = function reset() {\n previous = Optional.none();\n };\n\n var update = function update(mode, nu) {\n var result = previous.map(function (old) {\n return mode.compare(old, nu);\n });\n previous = Optional.some(nu);\n return result;\n };\n\n var onEvent = function onEvent(event, mode) {\n var dataOption = mode.extract(event);\n dataOption.each(function (data) {\n var offset = update(mode, data);\n offset.each(function (d) {\n events.trigger.move(d);\n });\n });\n };\n\n var events = create$4({\n move: Event(['info'])\n });\n return {\n onEvent: onEvent,\n reset: reset,\n events: events.registry\n };\n };\n\n var NoDrag = function NoDrag() {\n var events = create$4({\n move: Event(['info'])\n });\n return {\n onEvent: noop,\n reset: noop,\n events: events.registry\n };\n };\n\n var Movement = function Movement() {\n var noDragState = NoDrag();\n var inDragState = InDrag();\n var dragState = noDragState;\n\n var on = function on() {\n dragState.reset();\n dragState = inDragState;\n };\n\n var off = function off() {\n dragState.reset();\n dragState = noDragState;\n };\n\n var onEvent = function onEvent(event, mode) {\n dragState.onEvent(event, mode);\n };\n\n var isOn = function isOn() {\n return dragState === inDragState;\n };\n\n return {\n on: on,\n off: off,\n isOn: isOn,\n onEvent: onEvent,\n events: inDragState.events\n };\n };\n\n var setup = function setup(mutation, mode, settings) {\n var active = false;\n var events = create$4({\n start: Event([]),\n stop: Event([])\n });\n var movement = Movement();\n\n var drop = function drop() {\n sink.stop();\n\n if (movement.isOn()) {\n movement.off();\n events.trigger.stop();\n }\n };\n\n var throttledDrop = last(drop, 200);\n\n var go = function go(parent) {\n sink.start(parent);\n movement.on();\n events.trigger.start();\n };\n\n var mousemove = function mousemove(event) {\n throttledDrop.cancel();\n movement.onEvent(event, mode);\n };\n\n movement.events.move.bind(function (event) {\n mode.mutate(mutation, event.info);\n });\n\n var on = function on() {\n active = true;\n };\n\n var off = function off() {\n active = false;\n };\n\n var runIfActive = function runIfActive(f) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (active) {\n f.apply(null, args);\n }\n };\n };\n\n var sink = mode.sink(DragApi({\n forceDrop: drop,\n drop: runIfActive(drop),\n move: runIfActive(mousemove),\n delayDrop: runIfActive(throttledDrop.throttle)\n }), settings);\n\n var destroy = function destroy() {\n sink.destroy();\n };\n\n return {\n element: sink.element,\n go: go,\n on: on,\n off: off,\n destroy: destroy,\n events: events.registry\n };\n };\n\n var mkEvent = function mkEvent(target, x, y, stop, prevent, kill, raw) {\n return {\n target: target,\n x: x,\n y: y,\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: raw\n };\n };\n\n var fromRawEvent$1 = function fromRawEvent$1(rawEvent) {\n var target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n\n var stop = function stop() {\n return rawEvent.stopPropagation();\n };\n\n var prevent = function prevent() {\n return rawEvent.preventDefault();\n };\n\n var kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n\n var handle$2 = function handle$2(filter, handler) {\n return function (rawEvent) {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n };\n\n var binder = function binder(element, event, filter, handler, useCapture) {\n var wrapped = handle$2(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return {\n unbind: curry(unbind, element, event, wrapped, useCapture)\n };\n };\n\n var bind$1 = function bind$1(element, event, filter, handler) {\n return binder(element, event, filter, handler, false);\n };\n\n var unbind = function unbind(element, event, handler, useCapture) {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n var filter = always;\n\n var bind = function bind(element, event, handler) {\n return bind$1(element, event, filter, handler);\n };\n\n var fromRawEvent = fromRawEvent$1;\n\n var read = function read(element, attr) {\n var value = get$b(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n\n var add$2 = function add$2(element, attr, id) {\n var old = read(element, attr);\n var nu = old.concat([id]);\n set$2(element, attr, nu.join(' '));\n return true;\n };\n\n var remove$4 = function remove$4(element, attr, id) {\n var nu = filter$2(read(element, attr), function (v) {\n return v !== id;\n });\n\n if (nu.length > 0) {\n set$2(element, attr, nu.join(' '));\n } else {\n remove$7(element, attr);\n }\n\n return false;\n };\n\n var supports = function supports(element) {\n return element.dom.classList !== undefined;\n };\n\n var get$5 = function get$5(element) {\n return read(element, 'class');\n };\n\n var add$1 = function add$1(element, clazz) {\n return add$2(element, 'class', clazz);\n };\n\n var remove$3 = function remove$3(element, clazz) {\n return remove$4(element, 'class', clazz);\n };\n\n var add = function add(element, clazz) {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$1(element, clazz);\n }\n };\n\n var cleanClass = function cleanClass(element) {\n var classList = supports(element) ? element.dom.classList : get$5(element);\n\n if (classList.length === 0) {\n remove$7(element, 'class');\n }\n };\n\n var remove$2 = function remove$2(element, clazz) {\n if (supports(element)) {\n var classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n\n cleanClass(element);\n };\n\n var has = function has(element, clazz) {\n return supports(element) && element.dom.classList.contains(clazz);\n };\n\n var css = function css(namespace) {\n var dashNamespace = namespace.replace(/\\./g, '-');\n\n var resolve = function resolve(str) {\n return dashNamespace + '-' + str;\n };\n\n return {\n resolve: resolve\n };\n };\n\n var styles$1 = css('ephox-dragster');\n var resolve$1 = styles$1.resolve;\n\n var Blocker = function Blocker(options) {\n var settings = _assign({\n layerClass: resolve$1('blocker')\n }, options);\n\n var div = SugarElement.fromTag('div');\n set$2(div, 'role', 'presentation');\n setAll(div, {\n position: 'fixed',\n left: '0px',\n top: '0px',\n width: '100%',\n height: '100%'\n });\n add(div, resolve$1('blocker'));\n add(div, settings.layerClass);\n var element = constant(div);\n\n var destroy = function destroy() {\n remove$5(div);\n };\n\n return {\n element: element,\n destroy: destroy\n };\n };\n\n var compare = function compare(old, nu) {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n\n var extract = function extract(event) {\n return Optional.some(SugarPosition(event.x, event.y));\n };\n\n var mutate = function mutate(mutation, info) {\n mutation.mutate(info.left, info.top);\n };\n\n var sink = function sink(dragApi, settings) {\n var blocker = Blocker(settings);\n var mdown = bind(blocker.element(), 'mousedown', dragApi.forceDrop);\n var mup = bind(blocker.element(), 'mouseup', dragApi.drop);\n var mmove = bind(blocker.element(), 'mousemove', dragApi.move);\n var mout = bind(blocker.element(), 'mouseout', dragApi.delayDrop);\n\n var destroy = function destroy() {\n blocker.destroy();\n mup.unbind();\n mmove.unbind();\n mout.unbind();\n mdown.unbind();\n };\n\n var start = function start(parent) {\n append$1(parent, blocker.element());\n };\n\n var stop = function stop() {\n remove$5(blocker.element());\n };\n\n return DragSink({\n element: blocker.element,\n start: start,\n stop: stop,\n destroy: destroy\n });\n };\n\n var MouseDrag = DragMode({\n compare: compare,\n extract: extract,\n sink: sink,\n mutate: mutate\n });\n\n var transform$1 = function transform$1(mutation, settings) {\n if (settings === void 0) {\n settings = {};\n }\n\n var mode = settings.mode !== undefined ? settings.mode : MouseDrag;\n return setup(mutation, mode, settings);\n };\n\n var closest = function closest(target) {\n return closest$1(target, '[contenteditable]');\n };\n\n var isEditable$1 = function isEditable$1(element, assumeEditable) {\n if (assumeEditable === void 0) {\n assumeEditable = false;\n }\n\n if (!detect$3().browser.isIE() && inBody(element)) {\n return element.dom.isContentEditable;\n } else {\n return closest(element).fold(constant(assumeEditable), function (editable) {\n return getRaw(editable) === 'true';\n });\n }\n };\n\n var getRaw = function getRaw(element) {\n return element.dom.contentEditable;\n };\n\n var styles = css('ephox-snooker');\n var resolve = styles.resolve;\n\n var Mutation = function Mutation() {\n var events = create$4({\n drag: Event(['xDelta', 'yDelta'])\n });\n\n var mutate = function mutate(x, y) {\n events.trigger.drag(x, y);\n };\n\n return {\n mutate: mutate,\n events: events.registry\n };\n };\n\n var BarMutation = function BarMutation() {\n var events = create$4({\n drag: Event(['xDelta', 'yDelta', 'target'])\n });\n var target = Optional.none();\n var delegate = Mutation();\n delegate.events.drag.bind(function (event) {\n target.each(function (t) {\n events.trigger.drag(event.xDelta, event.yDelta, t);\n });\n });\n\n var assign = function assign(t) {\n target = Optional.some(t);\n };\n\n var get = function get() {\n return target;\n };\n\n return {\n assign: assign,\n get: get,\n mutate: delegate.mutate,\n events: events.registry\n };\n };\n\n var col = function col(column, x, y, w, h) {\n var bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x - w / 2 + 'px',\n top: y + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-column': column,\n 'role': 'presentation'\n });\n return bar;\n };\n\n var row = function row(r, x, y, w, h) {\n var bar = SugarElement.fromTag('div');\n setAll(bar, {\n position: 'absolute',\n left: x + 'px',\n top: y - h / 2 + 'px',\n height: h + 'px',\n width: w + 'px'\n });\n setAll$1(bar, {\n 'data-row': r,\n 'role': 'presentation'\n });\n return bar;\n };\n\n var resizeBar = resolve('resizer-bar');\n var resizeRowBar = resolve('resizer-rows');\n var resizeColBar = resolve('resizer-cols');\n var BAR_THICKNESS = 7;\n\n var resizableRows = function resizableRows(warehouse, isResizable) {\n return bind$2(warehouse.all, function (row, i) {\n return isResizable(row.element) ? [i] : [];\n });\n };\n\n var resizableColumns = function resizableColumns(warehouse, isResizable) {\n var resizableCols = [];\n range$1(warehouse.grid.columns, function (index) {\n var colElmOpt = Warehouse.getColumnAt(warehouse, index).map(function (col) {\n return col.element;\n });\n\n if (colElmOpt.forall(isResizable)) {\n resizableCols.push(index);\n }\n });\n return filter$2(resizableCols, function (colIndex) {\n var columnCells = Warehouse.filterItems(warehouse, function (cell) {\n return cell.column === colIndex;\n });\n return forall(columnCells, function (cell) {\n return isResizable(cell.element);\n });\n });\n };\n\n var destroy = function destroy(wire) {\n var previous = descendants(wire.parent(), '.' + resizeBar);\n each$2(previous, remove$5);\n };\n\n var drawBar = function drawBar(wire, positions, create) {\n var origin = wire.origin();\n each$2(positions, function (cpOption) {\n cpOption.each(function (cp) {\n var bar = create(origin, cp);\n add(bar, resizeBar);\n append$1(wire.parent(), bar);\n });\n });\n };\n\n var refreshCol = function refreshCol(wire, colPositions, position, tableHeight) {\n drawBar(wire, colPositions, function (origin, cp) {\n var colBar = col(cp.col, cp.x - origin.left, position.top - origin.top, BAR_THICKNESS, tableHeight);\n add(colBar, resizeColBar);\n return colBar;\n });\n };\n\n var refreshRow = function refreshRow(wire, rowPositions, position, tableWidth) {\n drawBar(wire, rowPositions, function (origin, cp) {\n var rowBar = row(cp.row, position.left - origin.left, cp.y - origin.top, tableWidth, BAR_THICKNESS);\n add(rowBar, resizeRowBar);\n return rowBar;\n });\n };\n\n var refreshGrid = function refreshGrid(warhouse, wire, table, rows, cols) {\n var position = absolute(table);\n var isResizable = wire.isResizable;\n var rowPositions = rows.length > 0 ? height.positions(rows, table) : [];\n var resizableRowBars = rowPositions.length > 0 ? resizableRows(warhouse, isResizable) : [];\n var resizableRowPositions = filter$2(rowPositions, function (_pos, i) {\n return exists(resizableRowBars, function (barIndex) {\n return i === barIndex;\n });\n });\n refreshRow(wire, resizableRowPositions, position, getOuter$2(table));\n var colPositions = cols.length > 0 ? width.positions(cols, table) : [];\n var resizableColBars = colPositions.length > 0 ? resizableColumns(warhouse, isResizable) : [];\n var resizableColPositions = filter$2(colPositions, function (_pos, i) {\n return exists(resizableColBars, function (barIndex) {\n return i === barIndex;\n });\n });\n refreshCol(wire, resizableColPositions, position, getOuter$1(table));\n };\n\n var refresh = function refresh(wire, table) {\n destroy(wire);\n\n if (wire.isResizable(table)) {\n var warehouse = Warehouse.fromTable(table);\n var rows$1 = rows(warehouse);\n var cols = columns(warehouse);\n refreshGrid(warehouse, wire, table, rows$1, cols);\n }\n };\n\n var each = function each(wire, f) {\n var bars = descendants(wire.parent(), '.' + resizeBar);\n each$2(bars, f);\n };\n\n var hide = function hide(wire) {\n each(wire, function (bar) {\n set$1(bar, 'display', 'none');\n });\n };\n\n var show = function show(wire) {\n each(wire, function (bar) {\n set$1(bar, 'display', 'block');\n });\n };\n\n var isRowBar = function isRowBar(element) {\n return has(element, resizeRowBar);\n };\n\n var isColBar = function isColBar(element) {\n return has(element, resizeColBar);\n };\n\n var resizeBarDragging = resolve('resizer-bar-dragging');\n\n var BarManager = function BarManager(wire) {\n var mutation = BarMutation();\n var resizing = transform$1(mutation, {});\n var hoverTable = Optional.none();\n\n var getResizer = function getResizer(element, type) {\n return Optional.from(get$b(element, type));\n };\n\n mutation.events.drag.bind(function (event) {\n getResizer(event.target, 'data-row').each(function (_dataRow) {\n var currentRow = getCssValue(event.target, 'top');\n set$1(event.target, 'top', currentRow + event.yDelta + 'px');\n });\n getResizer(event.target, 'data-column').each(function (_dataCol) {\n var currentCol = getCssValue(event.target, 'left');\n set$1(event.target, 'left', currentCol + event.xDelta + 'px');\n });\n });\n\n var getDelta = function getDelta(target, dir) {\n var newX = getCssValue(target, dir);\n var oldX = getAttrValue(target, 'data-initial-' + dir, 0);\n return newX - oldX;\n };\n\n resizing.events.stop.bind(function () {\n mutation.get().each(function (target) {\n hoverTable.each(function (table) {\n getResizer(target, 'data-row').each(function (row) {\n var delta = getDelta(target, 'top');\n remove$7(target, 'data-initial-top');\n events.trigger.adjustHeight(table, delta, parseInt(row, 10));\n });\n getResizer(target, 'data-column').each(function (column) {\n var delta = getDelta(target, 'left');\n remove$7(target, 'data-initial-left');\n events.trigger.adjustWidth(table, delta, parseInt(column, 10));\n });\n refresh(wire, table);\n });\n });\n });\n\n var handler = function handler(target, dir) {\n events.trigger.startAdjust();\n mutation.assign(target);\n set$2(target, 'data-initial-' + dir, getCssValue(target, dir));\n add(target, resizeBarDragging);\n set$1(target, 'opacity', '0.2');\n resizing.go(wire.parent());\n };\n\n var mousedown = bind(wire.parent(), 'mousedown', function (event) {\n if (isRowBar(event.target)) {\n handler(event.target, 'top');\n }\n\n if (isColBar(event.target)) {\n handler(event.target, 'left');\n }\n });\n\n var isRoot = function isRoot(e) {\n return eq$1(e, wire.view());\n };\n\n var findClosestEditableTable = function findClosestEditableTable(target) {\n return closest$1(target, 'table', isRoot).filter(isEditable$1);\n };\n\n var mouseover = bind(wire.view(), 'mouseover', function (event) {\n findClosestEditableTable(event.target).fold(function () {\n if (inBody(event.target)) {\n destroy(wire);\n }\n }, function (table) {\n hoverTable = Optional.some(table);\n refresh(wire, table);\n });\n });\n\n var destroy$1 = function destroy$1() {\n mousedown.unbind();\n mouseover.unbind();\n resizing.destroy();\n destroy(wire);\n };\n\n var refresh$1 = function refresh$1(tbl) {\n refresh(wire, tbl);\n };\n\n var events = create$4({\n adjustHeight: Event(['table', 'delta', 'row']),\n adjustWidth: Event(['table', 'delta', 'column']),\n startAdjust: Event([])\n });\n return {\n destroy: destroy$1,\n refresh: refresh$1,\n on: resizing.on,\n off: resizing.off,\n hideBars: curry(hide, wire),\n showBars: curry(show, wire),\n events: events.registry\n };\n };\n\n var create$3 = function create$3(wire, resizing, lazySizing) {\n var hdirection = height;\n var vdirection = width;\n var manager = BarManager(wire);\n var events = create$4({\n beforeResize: Event(['table', 'type']),\n afterResize: Event(['table', 'type']),\n startDrag: Event([])\n });\n manager.events.adjustHeight.bind(function (event) {\n var table = event.table;\n events.trigger.beforeResize(table, 'row');\n var delta = hdirection.delta(event.delta, table);\n adjustHeight(table, delta, event.row, hdirection);\n events.trigger.afterResize(table, 'row');\n });\n manager.events.startAdjust.bind(function (_event) {\n events.trigger.startDrag();\n });\n manager.events.adjustWidth.bind(function (event) {\n var table = event.table;\n events.trigger.beforeResize(table, 'col');\n var delta = vdirection.delta(event.delta, table);\n var tableSize = lazySizing(table);\n adjustWidth(table, delta, event.column, resizing, tableSize);\n events.trigger.afterResize(table, 'col');\n });\n return {\n on: manager.on,\n off: manager.off,\n hideBars: manager.hideBars,\n showBars: manager.showBars,\n destroy: manager.destroy,\n events: events.registry\n };\n };\n\n var TableResize = {\n create: create$3\n };\n\n var fireNewRow = function fireNewRow(editor, row) {\n return editor.fire('newrow', {\n node: row\n });\n };\n\n var fireNewCell = function fireNewCell(editor, cell) {\n return editor.fire('newcell', {\n node: cell\n });\n };\n\n var fireObjectResizeStart = function fireObjectResizeStart(editor, target, width, height, origin) {\n editor.fire('ObjectResizeStart', {\n target: target,\n width: width,\n height: height,\n origin: origin\n });\n };\n\n var fireObjectResized = function fireObjectResized(editor, target, width, height, origin) {\n editor.fire('ObjectResized', {\n target: target,\n width: width,\n height: height,\n origin: origin\n });\n };\n\n var fireTableSelectionChange = function fireTableSelectionChange(editor, cells, start, finish, otherCells) {\n editor.fire('TableSelectionChange', {\n cells: cells,\n start: start,\n finish: finish,\n otherCells: otherCells\n });\n };\n\n var fireTableSelectionClear = function fireTableSelectionClear(editor) {\n editor.fire('TableSelectionClear');\n };\n\n var fireTableModified = function fireTableModified(editor, table, data) {\n editor.fire('TableModified', _assign(_assign({}, data), {\n table: table\n }));\n };\n\n var styleModified = {\n structure: false,\n style: true\n };\n var structureModified = {\n structure: true,\n style: false\n };\n var styleAndStructureModified = {\n structure: true,\n style: true\n };\n var defaultTableToolbar = 'tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol';\n var defaultStyles = {\n 'border-collapse': 'collapse',\n 'width': '100%'\n };\n var defaultCellBorderWidths = range$1(5, function (i) {\n var size = i + 1 + 'px';\n return {\n title: size,\n value: size\n };\n });\n var defaultCellBorderStyles = map$1(['Solid', 'Dotted', 'Dashed', 'Double', 'Groove', 'Ridge', 'Inset', 'Outset', 'None', 'Hidden'], function (type) {\n return {\n title: type,\n value: type.toLowerCase()\n };\n });\n\n var determineDefaultStyles = function determineDefaultStyles(editor) {\n var _a;\n\n if (isPixelsForced(editor)) {\n var dom = editor.dom;\n var parentBlock = (_a = dom.getParent(editor.selection.getStart(), dom.isBlock)) !== null && _a !== void 0 ? _a : editor.getBody();\n var contentWidth = getInner(SugarElement.fromDom(parentBlock));\n return _assign(_assign({}, defaultStyles), {\n width: contentWidth + 'px'\n });\n } else if (isResponsiveForced(editor)) {\n return filter$1(defaultStyles, function (_value, key) {\n return key !== 'width';\n });\n } else {\n return defaultStyles;\n }\n };\n\n var defaultAttributes = {\n border: '1'\n };\n var defaultColumnResizingBehaviour = 'preservetable';\n\n var getTableSizingMode = function getTableSizingMode(editor) {\n return editor.getParam('table_sizing_mode', 'auto');\n };\n\n var getTableResponseWidth = function getTableResponseWidth(editor) {\n return editor.getParam('table_responsive_width');\n };\n\n var getTableBorderWidths = function getTableBorderWidths(editor) {\n return editor.getParam('table_border_widths', defaultCellBorderWidths, 'array');\n };\n\n var getTableBorderStyles = function getTableBorderStyles(editor) {\n return editor.getParam('table_border_styles', defaultCellBorderStyles, 'array');\n };\n\n var getDefaultAttributes = function getDefaultAttributes(editor) {\n return editor.getParam('table_default_attributes', defaultAttributes, 'object');\n };\n\n var getDefaultStyles = function getDefaultStyles(editor) {\n return editor.getParam('table_default_styles', determineDefaultStyles(editor), 'object');\n };\n\n var hasTableResizeBars = function hasTableResizeBars(editor) {\n return editor.getParam('table_resize_bars', true, 'boolean');\n };\n\n var hasTabNavigation = function hasTabNavigation(editor) {\n return editor.getParam('table_tab_navigation', true, 'boolean');\n };\n\n var hasAdvancedCellTab = function hasAdvancedCellTab(editor) {\n return editor.getParam('table_cell_advtab', true, 'boolean');\n };\n\n var hasAdvancedRowTab = function hasAdvancedRowTab(editor) {\n return editor.getParam('table_row_advtab', true, 'boolean');\n };\n\n var hasAdvancedTableTab = function hasAdvancedTableTab(editor) {\n return editor.getParam('table_advtab', true, 'boolean');\n };\n\n var hasAppearanceOptions = function hasAppearanceOptions(editor) {\n return editor.getParam('table_appearance_options', true, 'boolean');\n };\n\n var hasTableGrid = function hasTableGrid(editor) {\n return editor.getParam('table_grid', true, 'boolean');\n };\n\n var shouldStyleWithCss = function shouldStyleWithCss(editor) {\n return editor.getParam('table_style_by_css', false, 'boolean');\n };\n\n var getCellClassList = function getCellClassList(editor) {\n return editor.getParam('table_cell_class_list', [], 'array');\n };\n\n var getRowClassList = function getRowClassList(editor) {\n return editor.getParam('table_row_class_list', [], 'array');\n };\n\n var getTableClassList = function getTableClassList(editor) {\n return editor.getParam('table_class_list', [], 'array');\n };\n\n var isPercentagesForced = function isPercentagesForced(editor) {\n return getTableSizingMode(editor) === 'relative' || getTableResponseWidth(editor) === true;\n };\n\n var isPixelsForced = function isPixelsForced(editor) {\n return getTableSizingMode(editor) === 'fixed' || getTableResponseWidth(editor) === false;\n };\n\n var isResponsiveForced = function isResponsiveForced(editor) {\n return getTableSizingMode(editor) === 'responsive';\n };\n\n var getToolbar = function getToolbar(editor) {\n return editor.getParam('table_toolbar', defaultTableToolbar);\n };\n\n var useColumnGroup = function useColumnGroup(editor) {\n return editor.getParam('table_use_colgroups', false, 'boolean');\n };\n\n var getTableHeaderType = function getTableHeaderType(editor) {\n var defaultValue = 'section';\n var value = editor.getParam('table_header_type', defaultValue, 'string');\n var validValues = ['section', 'cells', 'sectionCells', 'auto'];\n\n if (!contains$2(validValues, value)) {\n return defaultValue;\n } else {\n return value;\n }\n };\n\n var getColumnResizingBehaviour = function getColumnResizingBehaviour(editor) {\n var validModes = ['preservetable', 'resizetable'];\n var givenMode = editor.getParam('table_column_resizing', defaultColumnResizingBehaviour, 'string');\n return find$1(validModes, function (mode) {\n return mode === givenMode;\n }).getOr(defaultColumnResizingBehaviour);\n };\n\n var isPreserveTableColumnResizing = function isPreserveTableColumnResizing(editor) {\n return getColumnResizingBehaviour(editor) === 'preservetable';\n };\n\n var isResizeTableColumnResizing = function isResizeTableColumnResizing(editor) {\n return getColumnResizingBehaviour(editor) === 'resizetable';\n };\n\n var getCloneElements = function getCloneElements(editor) {\n var cloneElements = editor.getParam('table_clone_elements');\n\n if (isString(cloneElements)) {\n return Optional.some(cloneElements.split(/[ ,]/));\n } else if (Array.isArray(cloneElements)) {\n return Optional.some(cloneElements);\n } else {\n return Optional.none();\n }\n };\n\n var hasObjectResizing = function hasObjectResizing(editor) {\n var objectResizing = editor.getParam('object_resizing', true);\n return isString(objectResizing) ? objectResizing === 'table' : objectResizing;\n };\n\n var getTableBackgroundColorMap = function getTableBackgroundColorMap(editor) {\n return editor.getParam('table_background_color_map', [], 'array');\n };\n\n var getTableBorderColorMap = function getTableBorderColorMap(editor) {\n return editor.getParam('table_border_color_map', [], 'array');\n };\n\n var get$4 = function get$4(editor, table) {\n if (isPercentagesForced(editor)) {\n return TableSize.percentageSize(table);\n } else if (isPixelsForced(editor)) {\n return TableSize.pixelSize(table);\n } else {\n return TableSize.getTableSize(table);\n }\n };\n\n var cleanupLegacyAttributes = function cleanupLegacyAttributes(element) {\n remove$7(element, 'width');\n };\n\n var convertToPercentSize = function convertToPercentSize(table) {\n var newWidth = getPercentTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n\n var convertToPixelSize = function convertToPixelSize(table) {\n var newWidth = getPixelTableWidth(table);\n redistribute(table, Optional.some(newWidth), Optional.none());\n cleanupLegacyAttributes(table);\n };\n\n var convertToNoneSize = function convertToNoneSize(table) {\n remove$6(table, 'width');\n var columns = columns$1(table);\n var rowElements = columns.length > 0 ? columns : cells$1(table);\n each$2(rowElements, function (cell) {\n remove$6(cell, 'width');\n cleanupLegacyAttributes(cell);\n });\n cleanupLegacyAttributes(table);\n };\n\n var enforcePercentage = convertToPercentSize;\n var enforcePixels = convertToPixelSize;\n var enforceNone = convertToNoneSize;\n\n var syncPixels = function syncPixels(table) {\n var warehouse = Warehouse.fromTable(table);\n\n if (!Warehouse.hasColumns(warehouse)) {\n each$2(cells$1(table), function (cell) {\n var computedWidth = get$a(cell, 'width');\n set$1(cell, 'width', computedWidth);\n remove$7(cell, 'width');\n });\n }\n };\n\n var createContainer = function createContainer() {\n var container = SugarElement.fromTag('div');\n setAll(container, {\n position: 'static',\n height: '0',\n width: '0',\n padding: '0',\n margin: '0',\n border: '0'\n });\n append$1(body$1(), container);\n return container;\n };\n\n var get$3 = function get$3(editor, isResizable) {\n return editor.inline ? ResizeWire.body(getBody(editor), createContainer(), isResizable) : ResizeWire.only(SugarElement.fromDom(editor.getDoc()), isResizable);\n };\n\n var remove$1 = function remove$1(editor, wire) {\n if (editor.inline) {\n remove$5(wire.parent());\n }\n };\n\n var barResizerPrefix = 'bar-';\n\n var isResizable = function isResizable(elm) {\n return get$b(elm, 'data-mce-resize') !== 'false';\n };\n\n var getResizeHandler = function getResizeHandler(editor) {\n var selectionRng = Optional.none();\n var resize = Optional.none();\n var wire = Optional.none();\n var startW;\n var startRawW;\n\n var isTable = function isTable(elm) {\n return elm.nodeName === 'TABLE';\n };\n\n var lazyResize = function lazyResize() {\n return resize;\n };\n\n var lazyWire = function lazyWire() {\n return wire.getOr(ResizeWire.only(SugarElement.fromDom(editor.getBody()), isResizable));\n };\n\n var lazySizing = function lazySizing(table) {\n return get$4(editor, table);\n };\n\n var lazyResizingBehaviour = function lazyResizingBehaviour() {\n return isPreserveTableColumnResizing(editor) ? preserveTable() : resizeTable();\n };\n\n var getNumColumns = function getNumColumns(table) {\n return getGridSize(table).columns;\n };\n\n var afterCornerResize = function afterCornerResize(table, origin, width) {\n var isRightEdgeResize = endsWith(origin, 'e');\n\n if (startRawW === '') {\n enforcePercentage(table);\n }\n\n if (width !== startW && startRawW !== '') {\n set$1(table, 'width', startRawW);\n var resizing = lazyResizingBehaviour();\n var tableSize = lazySizing(table);\n var col = isPreserveTableColumnResizing(editor) || isRightEdgeResize ? getNumColumns(table) - 1 : 0;\n adjustWidth(table, width - startW, col, resizing, tableSize);\n } else if (isPercentage$1(startRawW)) {\n var percentW = parseFloat(startRawW.replace('%', ''));\n var targetPercentW = width * percentW / startW;\n set$1(table, 'width', targetPercentW + '%');\n }\n\n if (isPixel(startRawW)) {\n syncPixels(table);\n }\n };\n\n var destroy = function destroy() {\n resize.each(function (sz) {\n sz.destroy();\n });\n wire.each(function (w) {\n remove$1(editor, w);\n });\n };\n\n editor.on('init', function () {\n var rawWire = get$3(editor, isResizable);\n wire = Optional.some(rawWire);\n\n if (hasObjectResizing(editor) && hasTableResizeBars(editor)) {\n var resizing = lazyResizingBehaviour();\n var sz = TableResize.create(rawWire, resizing, lazySizing);\n sz.on();\n sz.events.startDrag.bind(function (_event) {\n selectionRng = Optional.some(editor.selection.getRng());\n });\n sz.events.beforeResize.bind(function (event) {\n var rawTable = event.table.dom;\n fireObjectResizeStart(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n });\n sz.events.afterResize.bind(function (event) {\n var table = event.table;\n var rawTable = table.dom;\n removeDataStyle(table);\n selectionRng.each(function (rng) {\n editor.selection.setRng(rng);\n editor.focus();\n });\n fireObjectResized(editor, rawTable, getPixelWidth(rawTable), getPixelHeight(rawTable), barResizerPrefix + event.type);\n editor.undoManager.add();\n });\n resize = Optional.some(sz);\n }\n });\n editor.on('ObjectResizeStart', function (e) {\n var targetElm = e.target;\n\n if (isTable(targetElm)) {\n var table = SugarElement.fromDom(targetElm);\n each$2(editor.dom.select('.mce-clonedresizable'), function (clone) {\n editor.dom.addClass(clone, 'mce-' + getColumnResizingBehaviour(editor) + '-columns');\n });\n\n if (!isPixelSizing(table) && isPixelsForced(editor)) {\n enforcePixels(table);\n } else if (!isPercentSizing(table) && isPercentagesForced(editor)) {\n enforcePercentage(table);\n }\n\n if (isNoneSizing(table) && startsWith(e.origin, barResizerPrefix)) {\n enforcePercentage(table);\n }\n\n startW = e.width;\n startRawW = isResponsiveForced(editor) ? '' : getRawWidth(editor, targetElm).getOr('');\n }\n });\n editor.on('ObjectResized', function (e) {\n var targetElm = e.target;\n\n if (isTable(targetElm)) {\n var table = SugarElement.fromDom(targetElm);\n var origin_1 = e.origin;\n\n if (startsWith(origin_1, 'corner-')) {\n afterCornerResize(table, origin_1, e.width);\n }\n\n removeDataStyle(table);\n fireTableModified(editor, table.dom, styleModified);\n }\n });\n editor.on('SwitchMode', function () {\n lazyResize().each(function (resize) {\n if (editor.mode.isReadOnly()) {\n resize.hideBars();\n } else {\n resize.showBars();\n }\n });\n });\n return {\n lazyResize: lazyResize,\n lazyWire: lazyWire,\n destroy: destroy\n };\n };\n\n var point = function point(element, offset) {\n return {\n element: element,\n offset: offset\n };\n };\n\n var scan$1 = function scan$1(universe, element, direction) {\n if (universe.property().isText(element) && universe.property().getText(element).trim().length === 0 || universe.property().isComment(element)) {\n return direction(element).bind(function (elem) {\n return scan$1(universe, elem, direction).orThunk(function () {\n return Optional.some(elem);\n });\n });\n } else {\n return Optional.none();\n }\n };\n\n var toEnd = function toEnd(universe, element) {\n if (universe.property().isText(element)) {\n return universe.property().getText(element).length;\n }\n\n var children = universe.property().children(element);\n return children.length;\n };\n\n var freefallRtl$2 = function freefallRtl$2(universe, element) {\n var candidate = scan$1(universe, element, universe.query().prevSibling).getOr(element);\n\n if (universe.property().isText(candidate)) {\n return point(candidate, toEnd(universe, candidate));\n }\n\n var children = universe.property().children(candidate);\n return children.length > 0 ? freefallRtl$2(universe, children[children.length - 1]) : point(candidate, toEnd(universe, candidate));\n };\n\n var freefallRtl$1 = freefallRtl$2;\n var universe$2 = DomUniverse();\n\n var freefallRtl = function freefallRtl(element) {\n return freefallRtl$1(universe$2, element);\n };\n\n var halve = function halve(main, other) {\n var colspan = getSpan(main, 'colspan');\n\n if (colspan === 1) {\n var width = getGenericWidth(main);\n width.each(function (w) {\n var newWidth = w.value / 2;\n setGenericWidth(main, newWidth, w.unit);\n setGenericWidth(other, newWidth, w.unit);\n });\n }\n };\n\n var isHeaderCell = isTag('th');\n\n var isHeaderCells = function isHeaderCells(cells) {\n return forall(cells, function (cell) {\n return isHeaderCell(cell.element);\n });\n };\n\n var getRowHeaderType = function getRowHeaderType(isHeaderRow, isHeaderCells) {\n if (isHeaderRow && isHeaderCells) {\n return 'sectionCells';\n } else if (isHeaderRow) {\n return 'section';\n } else {\n return 'cells';\n }\n };\n\n var getRowType$1 = function getRowType$1(row) {\n var isHeaderRow = row.section === 'thead';\n var isHeaderCells = is(findCommonCellType(row.cells), 'th');\n\n if (isHeaderRow || isHeaderCells) {\n return {\n type: 'header',\n subType: getRowHeaderType(isHeaderRow, isHeaderCells)\n };\n } else if (row.section === 'tfoot') {\n return {\n type: 'footer'\n };\n } else {\n return {\n type: 'body'\n };\n }\n };\n\n var findCommonCellType = function findCommonCellType(cells) {\n var headerCells = filter$2(cells, function (cell) {\n return isHeaderCell(cell.element);\n });\n\n if (headerCells.length === 0) {\n return Optional.some('td');\n } else if (headerCells.length === cells.length) {\n return Optional.some('th');\n } else {\n return Optional.none();\n }\n };\n\n var findCommonRowType = function findCommonRowType(rows) {\n var rowTypes = map$1(rows, function (row) {\n return getRowType$1(row).type;\n });\n var hasHeader = contains$2(rowTypes, 'header');\n var hasFooter = contains$2(rowTypes, 'footer');\n\n if (!hasHeader && !hasFooter) {\n return Optional.some('body');\n } else {\n var hasBody = contains$2(rowTypes, 'body');\n\n if (hasHeader && !hasBody && !hasFooter) {\n return Optional.some('header');\n } else if (!hasHeader && !hasBody && hasFooter) {\n return Optional.some('footer');\n } else {\n return Optional.none();\n }\n }\n };\n\n var findTableRowHeaderType = function findTableRowHeaderType(warehouse) {\n return findMap(warehouse.all, function (row) {\n var rowType = getRowType$1(row);\n return rowType.type === 'header' ? Optional.from(rowType.subType) : Optional.none();\n });\n };\n\n var transformCell = function transformCell(cell, comparator, substitution) {\n return elementnew(substitution(cell.element, comparator), true, cell.isLocked);\n };\n\n var _transformRow = function transformRow(row, section) {\n return row.section !== section ? rowcells(row.element, row.cells, section, row.isNew) : row;\n };\n\n var section = function section() {\n return {\n transformRow: _transformRow,\n transformCell: function transformCell(cell, comparator, substitution) {\n var newCell = substitution(cell.element, comparator);\n var fixedCell = name(newCell) !== 'td' ? mutate$1(newCell, 'td') : newCell;\n return elementnew(fixedCell, cell.isNew, cell.isLocked);\n }\n };\n };\n\n var sectionCells = function sectionCells() {\n return {\n transformRow: _transformRow,\n transformCell: transformCell\n };\n };\n\n var cells = function cells() {\n return {\n transformRow: function transformRow(row, section) {\n var newSection = section === 'thead' ? 'tbody' : section;\n return _transformRow(row, newSection);\n },\n transformCell: transformCell\n };\n };\n\n var fallback = function fallback() {\n return {\n transformRow: identity,\n transformCell: transformCell\n };\n };\n\n var getTableSectionType = function getTableSectionType(table, fallback) {\n var warehouse = Warehouse.fromTable(table);\n var type = findTableRowHeaderType(warehouse).getOr(fallback);\n\n switch (type) {\n case 'section':\n return section();\n\n case 'sectionCells':\n return sectionCells();\n\n case 'cells':\n return cells();\n }\n };\n\n var TableSection = {\n getTableSectionType: getTableSectionType,\n section: section,\n sectionCells: sectionCells,\n cells: cells,\n fallback: fallback\n };\n\n var setIfNot = function setIfNot(element, property, value, ignore) {\n if (value === ignore) {\n remove$7(element, property);\n } else {\n set$2(element, property, value);\n }\n };\n\n var insert$1 = function insert$1(table, selector, element) {\n last$2(children$1(table, selector)).fold(function () {\n return prepend(table, element);\n }, function (child) {\n return after$5(child, element);\n });\n };\n\n var generateSection = function generateSection(table, sectionName) {\n var section = child$1(table, sectionName).getOrThunk(function () {\n var newSection = SugarElement.fromTag(sectionName, owner(table).dom);\n\n if (sectionName === 'thead') {\n insert$1(table, 'caption,colgroup', newSection);\n } else if (sectionName === 'colgroup') {\n insert$1(table, 'caption', newSection);\n } else {\n append$1(table, newSection);\n }\n\n return newSection;\n });\n empty(section);\n return section;\n };\n\n var render$1 = function render$1(table, grid) {\n var newRows = [];\n var newCells = [];\n\n var syncRows = function syncRows(gridSection) {\n return map$1(gridSection, function (row) {\n if (row.isNew) {\n newRows.push(row.element);\n }\n\n var tr = row.element;\n empty(tr);\n each$2(row.cells, function (cell) {\n if (cell.isNew) {\n newCells.push(cell.element);\n }\n\n setIfNot(cell.element, 'colspan', cell.colspan, 1);\n setIfNot(cell.element, 'rowspan', cell.rowspan, 1);\n append$1(tr, cell.element);\n });\n return tr;\n });\n };\n\n var syncColGroup = function syncColGroup(gridSection) {\n return bind$2(gridSection, function (colGroup) {\n return map$1(colGroup.cells, function (col) {\n setIfNot(col.element, 'span', col.colspan, 1);\n return col.element;\n });\n });\n };\n\n var renderSection = function renderSection(gridSection, sectionName) {\n var section = generateSection(table, sectionName);\n var sync = sectionName === 'colgroup' ? syncColGroup : syncRows;\n var sectionElems = sync(gridSection);\n append(section, sectionElems);\n };\n\n var removeSection = function removeSection(sectionName) {\n child$1(table, sectionName).each(remove$5);\n };\n\n var renderOrRemoveSection = function renderOrRemoveSection(gridSection, sectionName) {\n if (gridSection.length > 0) {\n renderSection(gridSection, sectionName);\n } else {\n removeSection(sectionName);\n }\n };\n\n var headSection = [];\n var bodySection = [];\n var footSection = [];\n var columnGroupsSection = [];\n each$2(grid, function (row) {\n switch (row.section) {\n case 'thead':\n headSection.push(row);\n break;\n\n case 'tbody':\n bodySection.push(row);\n break;\n\n case 'tfoot':\n footSection.push(row);\n break;\n\n case 'colgroup':\n columnGroupsSection.push(row);\n break;\n }\n });\n renderOrRemoveSection(columnGroupsSection, 'colgroup');\n renderOrRemoveSection(headSection, 'thead');\n renderOrRemoveSection(bodySection, 'tbody');\n renderOrRemoveSection(footSection, 'tfoot');\n return {\n newRows: newRows,\n newCells: newCells\n };\n };\n\n var copy = function copy(grid) {\n return map$1(grid, function (row) {\n var tr = shallow(row.element);\n each$2(row.cells, function (cell) {\n var clonedCell = deep(cell.element);\n setIfNot(clonedCell, 'colspan', cell.colspan, 1);\n setIfNot(clonedCell, 'rowspan', cell.rowspan, 1);\n append$1(tr, clonedCell);\n });\n return tr;\n });\n };\n\n var getColumn = function getColumn(grid, index) {\n return map$1(grid, function (row) {\n return getCell(row, index);\n });\n };\n\n var getRow = function getRow(grid, index) {\n return grid[index];\n };\n\n var findDiff = function findDiff(xs, comp) {\n if (xs.length === 0) {\n return 0;\n }\n\n var first = xs[0];\n var index = findIndex(xs, function (x) {\n return !comp(first.element, x.element);\n });\n return index.getOr(xs.length);\n };\n\n var subgrid = function subgrid(grid, row, column, comparator) {\n var gridRow = getRow(grid, row);\n var isColRow = gridRow.section === 'colgroup';\n var colspan = findDiff(gridRow.cells.slice(column), comparator);\n var rowspan = isColRow ? 1 : findDiff(getColumn(grid.slice(row), column), comparator);\n return {\n colspan: colspan,\n rowspan: rowspan\n };\n };\n\n var toDetails = function toDetails(grid, comparator) {\n var seen = map$1(grid, function (row) {\n return map$1(row.cells, never);\n });\n\n var updateSeen = function updateSeen(rowIndex, columnIndex, rowspan, colspan) {\n for (var row = rowIndex; row < rowIndex + rowspan; row++) {\n for (var column = columnIndex; column < columnIndex + colspan; column++) {\n seen[row][column] = true;\n }\n }\n };\n\n return map$1(grid, function (row, rowIndex) {\n var details = bind$2(row.cells, function (cell, columnIndex) {\n if (seen[rowIndex][columnIndex] === false) {\n var result = subgrid(grid, rowIndex, columnIndex, comparator);\n updateSeen(rowIndex, columnIndex, result.rowspan, result.colspan);\n return [detailnew(cell.element, result.rowspan, result.colspan, cell.isNew)];\n } else {\n return [];\n }\n });\n return rowdetailnew(row.element, details, row.section, row.isNew);\n });\n };\n\n var toGrid = function toGrid(warehouse, generators, isNew) {\n var grid = [];\n each$2(warehouse.colgroups, function (colgroup) {\n var colgroupCols = [];\n\n for (var columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n var element = Warehouse.getColumnAt(warehouse, columnIndex).map(function (column) {\n return elementnew(column.element, isNew, false);\n }).getOrThunk(function () {\n return elementnew(generators.colGap(), true, false);\n });\n colgroupCols.push(element);\n }\n\n grid.push(rowcells(colgroup.element, colgroupCols, 'colgroup', isNew));\n });\n\n for (var rowIndex = 0; rowIndex < warehouse.grid.rows; rowIndex++) {\n var rowCells = [];\n\n for (var columnIndex = 0; columnIndex < warehouse.grid.columns; columnIndex++) {\n var element = Warehouse.getAt(warehouse, rowIndex, columnIndex).map(function (item) {\n return elementnew(item.element, isNew, item.isLocked);\n }).getOrThunk(function () {\n return elementnew(generators.gap(), true, false);\n });\n rowCells.push(element);\n }\n\n var rowDetail = warehouse.all[rowIndex];\n var row = rowcells(rowDetail.element, rowCells, rowDetail.section, isNew);\n grid.push(row);\n }\n\n return grid;\n };\n\n var fromWarehouse = function fromWarehouse(warehouse, generators) {\n return toGrid(warehouse, generators, false);\n };\n\n var toDetailList = function toDetailList(grid) {\n return toDetails(grid, eq$1);\n };\n\n var findInWarehouse = function findInWarehouse(warehouse, element) {\n return findMap(warehouse.all, function (r) {\n return find$1(r.cells, function (e) {\n return eq$1(element, e.element);\n });\n });\n };\n\n var extractCells = function extractCells(warehouse, target, predicate) {\n var details = map$1(target.selection, function (cell$1) {\n return cell(cell$1).bind(function (lc) {\n return findInWarehouse(warehouse, lc);\n }).filter(predicate);\n });\n var cells = cat(details);\n return someIf(cells.length > 0, cells);\n };\n\n var run = function run(operation, extract, adjustment, postAction, genWrappers) {\n return function (wire, table, target, generators, behaviours) {\n var warehouse = Warehouse.fromTable(table);\n var tableSection = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.section).getOrThunk(TableSection.fallback);\n var output = extract(warehouse, target).map(function (info) {\n var model = fromWarehouse(warehouse, generators);\n var result = operation(model, info, eq$1, genWrappers(generators), tableSection);\n var lockedColumns = getLockedColumnsFromGrid(result.grid);\n var grid = toDetailList(result.grid);\n return {\n info: info,\n grid: grid,\n cursor: result.cursor,\n lockedColumns: lockedColumns\n };\n });\n return output.bind(function (out) {\n var newElements = render$1(table, out.grid);\n var tableSizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.sizing).getOrThunk(function () {\n return TableSize.getTableSize(table);\n });\n var resizing = Optional.from(behaviours === null || behaviours === void 0 ? void 0 : behaviours.resize).getOrThunk(preserveTable);\n adjustment(table, out.grid, out.info, {\n sizing: tableSizing,\n resize: resizing,\n section: tableSection\n });\n postAction(table);\n refresh(wire, table);\n remove$7(table, LOCKED_COL_ATTR);\n\n if (out.lockedColumns.length > 0) {\n set$2(table, LOCKED_COL_ATTR, out.lockedColumns.join(','));\n }\n\n return Optional.some({\n cursor: out.cursor,\n newRows: newElements.newRows,\n newCells: newElements.newCells\n });\n });\n };\n };\n\n var onPaste = function onPaste(warehouse, target) {\n return cell(target.element).bind(function (cell) {\n return findInWarehouse(warehouse, cell).map(function (details) {\n var value = _assign(_assign({}, details), {\n generators: target.generators,\n clipboard: target.clipboard\n });\n\n return value;\n });\n });\n };\n\n var onPasteByEditor = function onPasteByEditor(warehouse, target) {\n return extractCells(warehouse, target, always).map(function (cells) {\n return {\n cells: cells,\n generators: target.generators,\n clipboard: target.clipboard\n };\n });\n };\n\n var onMergable = function onMergable(_warehouse, target) {\n return target.mergable;\n };\n\n var onUnmergable = function onUnmergable(_warehouse, target) {\n return target.unmergable;\n };\n\n var onCells = function onCells(warehouse, target) {\n return extractCells(warehouse, target, always);\n };\n\n var onUnlockedCells = function onUnlockedCells(warehouse, target) {\n return extractCells(warehouse, target, function (detail) {\n return !detail.isLocked;\n });\n };\n\n var isUnlockedTableCell = function isUnlockedTableCell(warehouse, cell) {\n return findInWarehouse(warehouse, cell).exists(function (detail) {\n return !detail.isLocked;\n });\n };\n\n var allUnlocked = function allUnlocked(warehouse, cells) {\n return forall(cells, function (cell) {\n return isUnlockedTableCell(warehouse, cell);\n });\n };\n\n var onUnlockedMergable = function onUnlockedMergable(warehouse, target) {\n return onMergable(warehouse, target).filter(function (mergeable) {\n return allUnlocked(warehouse, mergeable.cells);\n });\n };\n\n var onUnlockedUnmergable = function onUnlockedUnmergable(warehouse, target) {\n return onUnmergable(warehouse, target).filter(function (cells) {\n return allUnlocked(warehouse, cells);\n });\n };\n\n var merge$2 = function merge$2(grid, bounds, comparator, substitution) {\n var rows = extractGridDetails(grid).rows;\n\n if (rows.length === 0) {\n return grid;\n }\n\n for (var i = bounds.startRow; i <= bounds.finishRow; i++) {\n for (var j = bounds.startCol; j <= bounds.finishCol; j++) {\n var row = rows[i];\n var isLocked = getCell(row, j).isLocked;\n mutateCell(row, j, elementnew(substitution(), false, isLocked));\n }\n }\n\n return grid;\n };\n\n var unmerge = function unmerge(grid, target, comparator, substitution) {\n var rows = extractGridDetails(grid).rows;\n var first = true;\n\n for (var i = 0; i < rows.length; i++) {\n for (var j = 0; j < cellLength(rows[0]); j++) {\n var row = rows[i];\n var currentCell = getCell(row, j);\n var currentCellElm = currentCell.element;\n var isToReplace = comparator(currentCellElm, target);\n\n if (isToReplace === true && first === false) {\n mutateCell(row, j, elementnew(substitution(), true, currentCell.isLocked));\n } else if (isToReplace === true) {\n first = false;\n }\n }\n }\n\n return grid;\n };\n\n var uniqueCells = function uniqueCells(row, comparator) {\n return foldl(row, function (rest, cell) {\n return exists(rest, function (currentCell) {\n return comparator(currentCell.element, cell.element);\n }) ? rest : rest.concat([cell]);\n }, []);\n };\n\n var splitCols = function splitCols(grid, index, comparator, substitution) {\n if (index > 0 && index < grid[0].cells.length) {\n each$2(grid, function (row) {\n var prevCell = row.cells[index - 1];\n var current = row.cells[index];\n var isToReplace = comparator(current.element, prevCell.element);\n\n if (isToReplace) {\n mutateCell(row, index, elementnew(substitution(), true, current.isLocked));\n }\n });\n }\n\n return grid;\n };\n\n var splitRows = function splitRows(grid, index, comparator, substitution) {\n var rows = extractGridDetails(grid).rows;\n\n if (index > 0 && index < rows.length) {\n var rowPrevCells = rows[index - 1].cells;\n var cells = uniqueCells(rowPrevCells, comparator);\n each$2(cells, function (cell) {\n var replacement = Optional.none();\n\n for (var i = index; i < rows.length; i++) {\n var _loop_1 = function _loop_1(j) {\n var row = rows[i];\n var current = getCell(row, j);\n var isToReplace = comparator(current.element, cell.element);\n\n if (isToReplace) {\n if (replacement.isNone()) {\n replacement = Optional.some(substitution());\n }\n\n replacement.each(function (sub) {\n mutateCell(row, j, elementnew(sub, true, current.isLocked));\n });\n }\n };\n\n for (var j = 0; j < cellLength(rows[0]); j++) {\n _loop_1(j);\n }\n }\n });\n }\n\n return grid;\n };\n\n var value$1 = function value$1(o) {\n var or = function or(_opt) {\n return value$1(o);\n };\n\n var orThunk = function orThunk(_f) {\n return value$1(o);\n };\n\n var map = function map(f) {\n return value$1(f(o));\n };\n\n var mapError = function mapError(_f) {\n return value$1(o);\n };\n\n var each = function each(f) {\n f(o);\n };\n\n var bind = function bind(f) {\n return f(o);\n };\n\n var fold = function fold(_, onValue) {\n return onValue(o);\n };\n\n var exists = function exists(f) {\n return f(o);\n };\n\n var forall = function forall(f) {\n return f(o);\n };\n\n var toOptional = function toOptional() {\n return Optional.some(o);\n };\n\n return {\n isValue: always,\n isError: never,\n getOr: constant(o),\n getOrThunk: constant(o),\n getOrDie: constant(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOptional: toOptional\n };\n };\n\n var error = function error(message) {\n var getOrThunk = function getOrThunk(f) {\n return f();\n };\n\n var getOrDie = function getOrDie() {\n return die(String(message))();\n };\n\n var or = identity;\n\n var orThunk = function orThunk(f) {\n return f();\n };\n\n var map = function map(_f) {\n return error(message);\n };\n\n var mapError = function mapError(f) {\n return error(f(message));\n };\n\n var bind = function bind(_f) {\n return error(message);\n };\n\n var fold = function fold(onError, _) {\n return onError(message);\n };\n\n return {\n isValue: never,\n isError: always,\n getOr: identity,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOptional: Optional.none\n };\n };\n\n var fromOption = function fromOption(opt, err) {\n return opt.fold(function () {\n return error(err);\n }, value$1);\n };\n\n var Result = {\n value: value$1,\n error: error,\n fromOption: fromOption\n };\n\n var measure = function measure(startAddress, gridA, gridB) {\n if (startAddress.row >= gridA.length || startAddress.column > cellLength(gridA[0])) {\n return Result.error('invalid start address out of table bounds, row: ' + startAddress.row + ', column: ' + startAddress.column);\n }\n\n var rowRemainder = gridA.slice(startAddress.row);\n var colRemainder = rowRemainder[0].cells.slice(startAddress.column);\n var colRequired = cellLength(gridB[0]);\n var rowRequired = gridB.length;\n return Result.value({\n rowDelta: rowRemainder.length - rowRequired,\n colDelta: colRemainder.length - colRequired\n });\n };\n\n var measureWidth = function measureWidth(gridA, gridB) {\n var colLengthA = cellLength(gridA[0]);\n var colLengthB = cellLength(gridB[0]);\n return {\n rowDelta: 0,\n colDelta: colLengthA - colLengthB\n };\n };\n\n var measureHeight = function measureHeight(gridA, gridB) {\n var rowLengthA = gridA.length;\n var rowLengthB = gridB.length;\n return {\n rowDelta: rowLengthA - rowLengthB,\n colDelta: 0\n };\n };\n\n var generateElements = function generateElements(amount, row, generators, isLocked) {\n var generator = row.section === 'colgroup' ? generators.col : generators.cell;\n return range$1(amount, function (idx) {\n return elementnew(generator(), true, isLocked(idx));\n });\n };\n\n var rowFill = function rowFill(grid, amount, generators, lockedColumns) {\n var exampleRow = grid[grid.length - 1];\n return grid.concat(range$1(amount, function () {\n var generator = exampleRow.section === 'colgroup' ? generators.colgroup : generators.row;\n var row = clone$1(exampleRow, generator, identity);\n var elements = generateElements(row.cells.length, row, generators, function (idx) {\n return has$1(lockedColumns, idx.toString());\n });\n return setCells(row, elements);\n }));\n };\n\n var colFill = function colFill(grid, amount, generators, startIndex) {\n return map$1(grid, function (row) {\n var newChildren = generateElements(amount, row, generators, never);\n return addCells(row, startIndex, newChildren);\n });\n };\n\n var lockedColFill = function lockedColFill(grid, generators, lockedColumns) {\n return map$1(grid, function (row) {\n return foldl(lockedColumns, function (acc, colNum) {\n var newChild = generateElements(1, row, generators, always)[0];\n return addCell(acc, colNum, newChild);\n }, row);\n });\n };\n\n var tailor = function tailor(gridA, delta, generators) {\n var fillCols = delta.colDelta < 0 ? colFill : identity;\n var fillRows = delta.rowDelta < 0 ? rowFill : identity;\n var lockedColumns = getLockedColumnsFromGrid(gridA);\n var gridWidth = cellLength(gridA[0]);\n var isLastColLocked = exists(lockedColumns, function (locked) {\n return locked === gridWidth - 1;\n });\n var modifiedCols = fillCols(gridA, Math.abs(delta.colDelta), generators, isLastColLocked ? gridWidth - 1 : gridWidth);\n var newLockedColumns = getLockedColumnsFromGrid(modifiedCols);\n return fillRows(modifiedCols, Math.abs(delta.rowDelta), generators, mapToObject(newLockedColumns, always));\n };\n\n var isSpanning = function isSpanning(grid, row, col, comparator) {\n var candidate = getCell(grid[row], col);\n var matching = curry(comparator, candidate.element);\n var currentRow = grid[row];\n return grid.length > 1 && cellLength(currentRow) > 1 && (col > 0 && matching(getCellElement(currentRow, col - 1)) || col < currentRow.cells.length - 1 && matching(getCellElement(currentRow, col + 1)) || row > 0 && matching(getCellElement(grid[row - 1], col)) || row < grid.length - 1 && matching(getCellElement(grid[row + 1], col)));\n };\n\n var mergeTables = function mergeTables(startAddress, gridA, gridB, generator, comparator, lockedColumns) {\n var startRow = startAddress.row;\n var startCol = startAddress.column;\n var mergeHeight = gridB.length;\n var mergeWidth = cellLength(gridB[0]);\n var endRow = startRow + mergeHeight;\n var endCol = startCol + mergeWidth + lockedColumns.length;\n var lockedColumnObj = mapToObject(lockedColumns, always);\n\n for (var r = startRow; r < endRow; r++) {\n var skippedCol = 0;\n\n for (var c = startCol; c < endCol; c++) {\n if (lockedColumnObj[c]) {\n skippedCol++;\n continue;\n }\n\n if (isSpanning(gridA, r, c, comparator)) {\n unmerge(gridA, getCellElement(gridA[r], c), comparator, generator.cell);\n }\n\n var gridBColIndex = c - startCol - skippedCol;\n var newCell = getCell(gridB[r - startRow], gridBColIndex);\n var newCellElm = newCell.element;\n var replacement = generator.replace(newCellElm);\n mutateCell(gridA[r], c, elementnew(replacement, true, newCell.isLocked));\n }\n }\n\n return gridA;\n };\n\n var getValidStartAddress = function getValidStartAddress(currentStartAddress, grid, lockedColumns) {\n var gridColLength = cellLength(grid[0]);\n var adjustedRowAddress = extractGridDetails(grid).cols.length + currentStartAddress.row;\n var possibleColAddresses = range$1(gridColLength - currentStartAddress.column, function (num) {\n return num + currentStartAddress.column;\n });\n var validColAddress = find$1(possibleColAddresses, function (num) {\n return forall(lockedColumns, function (col) {\n return col !== num;\n });\n }).getOr(gridColLength - 1);\n return {\n row: adjustedRowAddress,\n column: validColAddress\n };\n };\n\n var getLockedColumnsWithinBounds = function getLockedColumnsWithinBounds(startAddress, grid, lockedColumns) {\n return filter$2(lockedColumns, function (colNum) {\n return colNum >= startAddress.column && colNum <= cellLength(grid[0]) + startAddress.column;\n });\n };\n\n var merge$1 = function merge$1(startAddress, gridA, gridB, generator, comparator) {\n var lockedColumns = getLockedColumnsFromGrid(gridA);\n var validStartAddress = getValidStartAddress(startAddress, gridA, lockedColumns);\n var gridBRows = extractGridDetails(gridB).rows;\n var lockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, lockedColumns);\n var result = measure(validStartAddress, gridA, gridBRows);\n return result.map(function (diff) {\n var delta = _assign(_assign({}, diff), {\n colDelta: diff.colDelta - lockedColumnsWithinBounds.length\n });\n\n var fittedGrid = tailor(gridA, delta, generator);\n var newLockedColumns = getLockedColumnsFromGrid(fittedGrid);\n var newLockedColumnsWithinBounds = getLockedColumnsWithinBounds(validStartAddress, gridBRows, newLockedColumns);\n return mergeTables(validStartAddress, fittedGrid, gridBRows, generator, comparator, newLockedColumnsWithinBounds);\n });\n };\n\n var insertCols = function insertCols(index, gridA, gridB, generator, comparator) {\n splitCols(gridA, index, comparator, generator.cell);\n var delta = measureHeight(gridB, gridA);\n var fittedNewGrid = tailor(gridB, delta, generator);\n var secondDelta = measureHeight(gridA, fittedNewGrid);\n var fittedOldGrid = tailor(gridA, secondDelta, generator);\n return map$1(fittedOldGrid, function (gridRow, i) {\n return addCells(gridRow, index, fittedNewGrid[i].cells);\n });\n };\n\n var insertRows = function insertRows(index, gridA, gridB, generator, comparator) {\n splitRows(gridA, index, comparator, generator.cell);\n var locked = getLockedColumnsFromGrid(gridA);\n var diff = measureWidth(gridA, gridB);\n\n var delta = _assign(_assign({}, diff), {\n colDelta: diff.colDelta - locked.length\n });\n\n var fittedOldGrid = tailor(gridA, delta, generator);\n\n var _a = extractGridDetails(fittedOldGrid),\n oldCols = _a.cols,\n oldRows = _a.rows;\n\n var newLocked = getLockedColumnsFromGrid(fittedOldGrid);\n var secondDiff = measureWidth(gridB, gridA);\n\n var secondDelta = _assign(_assign({}, secondDiff), {\n colDelta: secondDiff.colDelta + newLocked.length\n });\n\n var fittedGridB = lockedColFill(gridB, generator, newLocked);\n var fittedNewGrid = tailor(fittedGridB, secondDelta, generator);\n return oldCols.concat(oldRows.slice(0, index)).concat(fittedNewGrid).concat(oldRows.slice(index, oldRows.length));\n };\n\n var cloneRow = function cloneRow(row, cloneCell, comparator, substitution) {\n return clone$1(row, function (elem) {\n return substitution(elem, comparator);\n }, cloneCell);\n };\n\n var insertRowAt = function insertRowAt(grid, index, example, comparator, substitution) {\n var _a = extractGridDetails(grid),\n rows = _a.rows,\n cols = _a.cols;\n\n var before = rows.slice(0, index);\n var after = rows.slice(index);\n var newRow = cloneRow(rows[example], function (ex, c) {\n var withinSpan = index > 0 && index < rows.length && comparator(getCellElement(rows[index - 1], c), getCellElement(rows[index], c));\n var ret = withinSpan ? getCell(rows[index], c) : elementnew(substitution(ex.element, comparator), true, ex.isLocked);\n return ret;\n }, comparator, substitution);\n return cols.concat(before).concat([newRow]).concat(after);\n };\n\n var getElementFor = function getElementFor(row, column, section, withinSpan, example, comparator, substitution) {\n if (section === 'colgroup' || !withinSpan) {\n var cell = getCell(row, example);\n return elementnew(substitution(cell.element, comparator), true, false);\n } else {\n return getCell(row, column);\n }\n };\n\n var insertColumnAt = function insertColumnAt(grid, index, example, comparator, substitution) {\n return map$1(grid, function (row) {\n var withinSpan = index > 0 && index < cellLength(row) && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n var sub = getElementFor(row, index, row.section, withinSpan, example, comparator, substitution);\n return addCell(row, index, sub);\n });\n };\n\n var deleteColumnsAt = function deleteColumnsAt(grid, columns) {\n return bind$2(grid, function (row) {\n var existingCells = row.cells;\n var cells = foldr(columns, function (acc, column) {\n return column >= 0 && column < acc.length ? acc.slice(0, column).concat(acc.slice(column + 1)) : acc;\n }, existingCells);\n return cells.length > 0 ? [rowcells(row.element, cells, row.section, row.isNew)] : [];\n });\n };\n\n var deleteRowsAt = function deleteRowsAt(grid, start, finish) {\n var _a = extractGridDetails(grid),\n rows = _a.rows,\n cols = _a.cols;\n\n return cols.concat(rows.slice(0, start)).concat(rows.slice(finish + 1));\n };\n\n var notInStartRow = function notInStartRow(grid, rowIndex, colIndex, comparator) {\n return getCellElement(grid[rowIndex], colIndex) !== undefined && rowIndex > 0 && comparator(getCellElement(grid[rowIndex - 1], colIndex), getCellElement(grid[rowIndex], colIndex));\n };\n\n var notInStartColumn = function notInStartColumn(row, index, comparator) {\n return index > 0 && comparator(getCellElement(row, index - 1), getCellElement(row, index));\n };\n\n var isDuplicatedCell = function isDuplicatedCell(grid, rowIndex, colIndex, comparator) {\n return notInStartRow(grid, rowIndex, colIndex, comparator) || notInStartColumn(grid[rowIndex], colIndex, comparator);\n };\n\n var rowReplacerPredicate = function rowReplacerPredicate(targetRow, columnHeaders) {\n var entireTableIsHeader = forall(columnHeaders, identity) && isHeaderCells(targetRow.cells);\n return entireTableIsHeader ? always : function (cell, _rowIndex, colIndex) {\n var type = name(cell.element);\n return !(type === 'th' && columnHeaders[colIndex]);\n };\n };\n\n var columnReplacePredicate = function columnReplacePredicate(targetColumn, rowHeaders) {\n var entireTableIsHeader = forall(rowHeaders, identity) && isHeaderCells(targetColumn);\n return entireTableIsHeader ? always : function (cell, rowIndex, _colIndex) {\n var type = name(cell.element);\n return !(type === 'th' && rowHeaders[rowIndex]);\n };\n };\n\n var determineScope = function determineScope(applyScope, element, newScope, isInHeader) {\n var hasSpan = function hasSpan(scope) {\n return scope === 'row' ? hasRowspan(element) : hasColspan(element);\n };\n\n var getScope = function getScope(scope) {\n return hasSpan(scope) ? scope + 'group' : scope;\n };\n\n if (applyScope) {\n return isHeaderCell(element) ? getScope(newScope) : null;\n } else if (isInHeader && isHeaderCell(element)) {\n var oppositeScope = newScope === 'row' ? 'col' : 'row';\n return getScope(oppositeScope);\n } else {\n return null;\n }\n };\n\n var rowScopeGenerator = function rowScopeGenerator(applyScope, columnHeaders) {\n return function (cell, rowIndex, columnIndex) {\n return Optional.some(determineScope(applyScope, cell.element, 'col', columnHeaders[columnIndex]));\n };\n };\n\n var columnScopeGenerator = function columnScopeGenerator(applyScope, rowHeaders) {\n return function (cell, rowIndex) {\n return Optional.some(determineScope(applyScope, cell.element, 'row', rowHeaders[rowIndex]));\n };\n };\n\n var replace = function replace(cell, comparator, substitute) {\n return elementnew(substitute(cell.element, comparator), true, cell.isLocked);\n };\n\n var replaceIn = function replaceIn(grid, targets, comparator, substitute, replacer, genScope, shouldReplace) {\n var isTarget = function isTarget(cell) {\n return exists(targets, function (target) {\n return comparator(cell.element, target.element);\n });\n };\n\n return map$1(grid, function (row, rowIndex) {\n return mapCells(row, function (cell, colIndex) {\n if (isTarget(cell)) {\n var newCell_1 = shouldReplace(cell, rowIndex, colIndex) ? replacer(cell, comparator, substitute) : cell;\n genScope(newCell_1, rowIndex, colIndex).each(function (scope) {\n setOptions(newCell_1.element, {\n scope: Optional.from(scope)\n });\n });\n return newCell_1;\n } else {\n return cell;\n }\n });\n });\n };\n\n var getColumnCells = function getColumnCells(rows, columnIndex, comparator) {\n return bind$2(rows, function (row, i) {\n return isDuplicatedCell(rows, i, columnIndex, comparator) ? [] : [getCell(row, columnIndex)];\n });\n };\n\n var getRowCells = function getRowCells(rows, rowIndex, comparator) {\n var targetRow = rows[rowIndex];\n return bind$2(targetRow.cells, function (item, i) {\n return isDuplicatedCell(rows, rowIndex, i, comparator) ? [] : [item];\n });\n };\n\n var replaceColumns = function replaceColumns(grid, indexes, applyScope, comparator, substitution) {\n var rows = extractGridDetails(grid).rows;\n var targets = bind$2(indexes, function (index) {\n return getColumnCells(rows, index, comparator);\n });\n var rowHeaders = map$1(grid, function (row) {\n return isHeaderCells(row.cells);\n });\n var shouldReplaceCell = columnReplacePredicate(targets, rowHeaders);\n var scopeGenerator = columnScopeGenerator(applyScope, rowHeaders);\n return replaceIn(grid, targets, comparator, substitution, replace, scopeGenerator, shouldReplaceCell);\n };\n\n var replaceRows = function replaceRows(grid, indexes, section, applyScope, comparator, substitution, tableSection) {\n var _a = extractGridDetails(grid),\n cols = _a.cols,\n rows = _a.rows;\n\n var targetRow = rows[indexes[0]];\n var targets = bind$2(indexes, function (index) {\n return getRowCells(rows, index, comparator);\n });\n var columnHeaders = map$1(targetRow.cells, function (_cell, index) {\n return isHeaderCells(getColumnCells(rows, index, comparator));\n });\n\n var newRows = __spreadArray([], rows, true);\n\n each$2(indexes, function (index) {\n newRows[index] = tableSection.transformRow(rows[index], section);\n });\n var newGrid = cols.concat(newRows);\n var shouldReplaceCell = rowReplacerPredicate(targetRow, columnHeaders);\n var scopeGenerator = rowScopeGenerator(applyScope, columnHeaders);\n return replaceIn(newGrid, targets, comparator, substitution, tableSection.transformCell, scopeGenerator, shouldReplaceCell);\n };\n\n var replaceCells = function replaceCells(grid, details, comparator, substitution) {\n var rows = extractGridDetails(grid).rows;\n var targetCells = map$1(details, function (detail) {\n return getCell(rows[detail.row], detail.column);\n });\n return replaceIn(grid, targetCells, comparator, substitution, replace, Optional.none, always);\n };\n\n var uniqueColumns = function uniqueColumns(details) {\n var uniqueCheck = function uniqueCheck(rest, detail) {\n var columnExists = exists(rest, function (currentDetail) {\n return currentDetail.column === detail.column;\n });\n return columnExists ? rest : rest.concat([detail]);\n };\n\n return foldl(details, uniqueCheck, []).sort(function (detailA, detailB) {\n return detailA.column - detailB.column;\n });\n };\n\n var isCol = isTag('col');\n var isColgroup = isTag('colgroup');\n\n var isRow$1 = function isRow$1(element) {\n return name(element) === 'tr' || isColgroup(element);\n };\n\n var elementToData = function elementToData(element) {\n var colspan = getAttrValue(element, 'colspan', 1);\n var rowspan = getAttrValue(element, 'rowspan', 1);\n return {\n element: element,\n colspan: colspan,\n rowspan: rowspan\n };\n };\n\n var modification = function modification(generators, toData) {\n if (toData === void 0) {\n toData = elementToData;\n }\n\n var nuCell = function nuCell(data) {\n return isCol(data.element) ? generators.col(data) : generators.cell(data);\n };\n\n var nuRow = function nuRow(data) {\n return isColgroup(data.element) ? generators.colgroup(data) : generators.row(data);\n };\n\n var add = function add(element) {\n if (isRow$1(element)) {\n return nuRow({\n element: element\n });\n } else {\n var replacement = nuCell(toData(element));\n recent = Optional.some({\n item: element,\n replacement: replacement\n });\n return replacement;\n }\n };\n\n var recent = Optional.none();\n\n var getOrInit = function getOrInit(element, comparator) {\n return recent.fold(function () {\n return add(element);\n }, function (p) {\n return comparator(element, p.item) ? p.replacement : add(element);\n });\n };\n\n return {\n getOrInit: getOrInit\n };\n };\n\n var transform = function transform(tag) {\n return function (generators) {\n var list = [];\n\n var find = function find(element, comparator) {\n return find$1(list, function (x) {\n return comparator(x.item, element);\n });\n };\n\n var makeNew = function makeNew(element) {\n var attrs = tag === 'td' ? {\n scope: null\n } : {};\n var cell = generators.replace(element, tag, attrs);\n list.push({\n item: element,\n sub: cell\n });\n return cell;\n };\n\n var replaceOrInit = function replaceOrInit(element, comparator) {\n if (isRow$1(element) || isCol(element)) {\n return element;\n } else {\n return find(element, comparator).fold(function () {\n return makeNew(element);\n }, function (p) {\n return comparator(element, p.item) ? p.sub : makeNew(element);\n });\n }\n };\n\n return {\n replaceOrInit: replaceOrInit\n };\n };\n };\n\n var getScopeAttribute = function getScopeAttribute(cell) {\n return getOpt(cell, 'scope').map(function (attribute) {\n return attribute.substr(0, 3);\n });\n };\n\n var merging = function merging(generators) {\n var unmerge = function unmerge(cell) {\n var scope = getScopeAttribute(cell);\n scope.each(function (attribute) {\n return set$2(cell, 'scope', attribute);\n });\n return function () {\n var raw = generators.cell({\n element: cell,\n colspan: 1,\n rowspan: 1\n });\n remove$6(raw, 'width');\n remove$6(cell, 'width');\n scope.each(function (attribute) {\n return set$2(raw, 'scope', attribute);\n });\n return raw;\n };\n };\n\n var merge = function merge(cells) {\n var getScopeProperty = function getScopeProperty() {\n var stringAttributes = cat(map$1(cells, getScopeAttribute));\n\n if (stringAttributes.length === 0) {\n return Optional.none();\n } else {\n var baseScope_1 = stringAttributes[0];\n var scopes_1 = ['row', 'col'];\n var isMixed = exists(stringAttributes, function (attribute) {\n return attribute !== baseScope_1 && contains$2(scopes_1, attribute);\n });\n return isMixed ? Optional.none() : Optional.from(baseScope_1);\n }\n };\n\n remove$6(cells[0], 'width');\n getScopeProperty().fold(function () {\n return remove$7(cells[0], 'scope');\n }, function (attribute) {\n return set$2(cells[0], 'scope', attribute + 'group');\n });\n return constant(cells[0]);\n };\n\n return {\n unmerge: unmerge,\n merge: merge\n };\n };\n\n var Generators = {\n modification: modification,\n transform: transform,\n merging: merging\n };\n var blockList = ['body', 'p', 'div', 'article', 'aside', 'figcaption', 'figure', 'footer', 'header', 'nav', 'section', 'ol', 'ul', 'table', 'thead', 'tfoot', 'tbody', 'caption', 'tr', 'td', 'th', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'pre', 'address'];\n\n var isList$1 = function isList$1(universe, item) {\n var tagName = universe.property().name(item);\n return contains$2(['ol', 'ul'], tagName);\n };\n\n var isBlock$1 = function isBlock$1(universe, item) {\n var tagName = universe.property().name(item);\n return contains$2(blockList, tagName);\n };\n\n var isEmptyTag$1 = function isEmptyTag$1(universe, item) {\n return contains$2(['br', 'img', 'hr', 'input'], universe.property().name(item));\n };\n\n var universe$1 = DomUniverse();\n\n var isBlock = function isBlock(element) {\n return isBlock$1(universe$1, element);\n };\n\n var isList = function isList(element) {\n return isList$1(universe$1, element);\n };\n\n var isEmptyTag = function isEmptyTag(element) {\n return isEmptyTag$1(universe$1, element);\n };\n\n var merge = function merge(cells) {\n var isBr = function isBr(el) {\n return name(el) === 'br';\n };\n\n var advancedBr = function advancedBr(children) {\n return forall(children, function (c) {\n return isBr(c) || isText(c) && get$9(c).trim().length === 0;\n });\n };\n\n var isListItem = function isListItem(el) {\n return name(el) === 'li' || ancestor$2(el, isList).isSome();\n };\n\n var siblingIsBlock = function siblingIsBlock(el) {\n return nextSibling(el).map(function (rightSibling) {\n if (isBlock(rightSibling)) {\n return true;\n }\n\n if (isEmptyTag(rightSibling)) {\n return name(rightSibling) === 'img' ? false : true;\n }\n\n return false;\n }).getOr(false);\n };\n\n var markCell = function markCell(cell) {\n return last$1(cell).bind(function (rightEdge) {\n var rightSiblingIsBlock = siblingIsBlock(rightEdge);\n return parent(rightEdge).map(function (parent) {\n return rightSiblingIsBlock === true || isListItem(parent) || isBr(rightEdge) || isBlock(parent) && !eq$1(cell, parent) ? [] : [SugarElement.fromTag('br')];\n });\n }).getOr([]);\n };\n\n var markContent = function markContent() {\n var content = bind$2(cells, function (cell) {\n var children = children$3(cell);\n return advancedBr(children) ? [] : children.concat(markCell(cell));\n });\n return content.length === 0 ? [SugarElement.fromTag('br')] : content;\n };\n\n var contents = markContent();\n empty(cells[0]);\n append(cells[0], contents);\n };\n\n var isEditable = function isEditable(elem) {\n return isEditable$1(elem, true);\n };\n\n var prune = function prune(table) {\n var cells = cells$1(table);\n\n if (cells.length === 0) {\n remove$5(table);\n }\n };\n\n var outcome = function outcome(grid, cursor) {\n return {\n grid: grid,\n cursor: cursor\n };\n };\n\n var findEditableCursorPosition = function findEditableCursorPosition(rows) {\n return findMap(rows, function (row) {\n return findMap(row.cells, function (cell) {\n var elem = cell.element;\n return someIf(isEditable(elem), elem);\n });\n });\n };\n\n var elementFromGrid = function elementFromGrid(grid, row, column) {\n var _a, _b;\n\n var rows = extractGridDetails(grid).rows;\n return Optional.from((_b = (_a = rows[row]) === null || _a === void 0 ? void 0 : _a.cells[column]) === null || _b === void 0 ? void 0 : _b.element).filter(isEditable).orThunk(function () {\n return findEditableCursorPosition(rows);\n });\n };\n\n var bundle = function bundle(grid, row, column) {\n var cursorElement = elementFromGrid(grid, row, column);\n return outcome(grid, cursorElement);\n };\n\n var uniqueRows = function uniqueRows(details) {\n var rowCompilation = function rowCompilation(rest, detail) {\n var rowExists = exists(rest, function (currentDetail) {\n return currentDetail.row === detail.row;\n });\n return rowExists ? rest : rest.concat([detail]);\n };\n\n return foldl(details, rowCompilation, []).sort(function (detailA, detailB) {\n return detailA.row - detailB.row;\n });\n };\n\n var opInsertRowsBefore = function opInsertRowsBefore(grid, details, comparator, genWrappers) {\n var targetIndex = details[0].row;\n var rows = uniqueRows(details);\n var newGrid = foldr(rows, function (acc, row) {\n var newG = insertRowAt(acc.grid, targetIndex, row.row + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid: grid,\n delta: 0\n }).grid;\n return bundle(newGrid, targetIndex, details[0].column);\n };\n\n var opInsertRowsAfter = function opInsertRowsAfter(grid, details, comparator, genWrappers) {\n var rows = uniqueRows(details);\n var target = rows[rows.length - 1];\n var targetIndex = target.row + target.rowspan;\n var newGrid = foldr(rows, function (newG, row) {\n return insertRowAt(newG, targetIndex, row.row, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, targetIndex, details[0].column);\n };\n\n var opInsertColumnsBefore = function opInsertColumnsBefore(grid, extractDetail, comparator, genWrappers) {\n var details = extractDetail.details;\n var columns = uniqueColumns(details);\n var targetIndex = columns[0].column;\n var newGrid = foldr(columns, function (acc, col) {\n var newG = insertColumnAt(acc.grid, targetIndex, col.column + acc.delta, comparator, genWrappers.getOrInit);\n return {\n grid: newG,\n delta: acc.delta + 1\n };\n }, {\n grid: grid,\n delta: 0\n }).grid;\n return bundle(newGrid, details[0].row, targetIndex);\n };\n\n var opInsertColumnsAfter = function opInsertColumnsAfter(grid, extractDetail, comparator, genWrappers) {\n var details = extractDetail.details;\n var target = details[details.length - 1];\n var targetIndex = target.column + target.colspan;\n var columns = uniqueColumns(details);\n var newGrid = foldr(columns, function (newG, col) {\n return insertColumnAt(newG, targetIndex, col.column, comparator, genWrappers.getOrInit);\n }, grid);\n return bundle(newGrid, details[0].row, targetIndex);\n };\n\n var opMakeColumnsHeader = function opMakeColumnsHeader(initialGrid, details, comparator, genWrappers) {\n var columns = uniqueColumns(details);\n var columnIndexes = map$1(columns, function (detail) {\n return detail.column;\n });\n var newGrid = replaceColumns(initialGrid, columnIndexes, true, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n\n var opMakeCellsHeader = function opMakeCellsHeader(initialGrid, details, comparator, genWrappers) {\n var newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n\n var opUnmakeColumnsHeader = function opUnmakeColumnsHeader(initialGrid, details, comparator, genWrappers) {\n var columns = uniqueColumns(details);\n var columnIndexes = map$1(columns, function (detail) {\n return detail.column;\n });\n var newGrid = replaceColumns(initialGrid, columnIndexes, false, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n\n var opUnmakeCellsHeader = function opUnmakeCellsHeader(initialGrid, details, comparator, genWrappers) {\n var newGrid = replaceCells(initialGrid, details, comparator, genWrappers.replaceOrInit);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n\n var makeRowsSection = function makeRowsSection(section, applyScope) {\n return function (initialGrid, details, comparator, genWrappers, tableSection) {\n var rows = uniqueRows(details);\n var rowIndexes = map$1(rows, function (detail) {\n return detail.row;\n });\n var newGrid = replaceRows(initialGrid, rowIndexes, section, applyScope, comparator, genWrappers.replaceOrInit, tableSection);\n return bundle(newGrid, details[0].row, details[0].column);\n };\n };\n\n var opMakeRowsHeader = makeRowsSection('thead', true);\n var opMakeRowsBody = makeRowsSection('tbody', false);\n var opMakeRowsFooter = makeRowsSection('tfoot', false);\n\n var opEraseColumns = function opEraseColumns(grid, extractDetail, _comparator, _genWrappers) {\n var columns = uniqueColumns(extractDetail.details);\n var newGrid = deleteColumnsAt(grid, map$1(columns, function (column) {\n return column.column;\n }));\n var maxColIndex = newGrid.length > 0 ? newGrid[0].cells.length - 1 : 0;\n return bundle(newGrid, columns[0].row, Math.min(columns[0].column, maxColIndex));\n };\n\n var opEraseRows = function opEraseRows(grid, details, _comparator, _genWrappers) {\n var rows = uniqueRows(details);\n var newGrid = deleteRowsAt(grid, rows[0].row, rows[rows.length - 1].row);\n var maxRowIndex = newGrid.length > 0 ? newGrid.length - 1 : 0;\n return bundle(newGrid, Math.min(details[0].row, maxRowIndex), details[0].column);\n };\n\n var opMergeCells = function opMergeCells(grid, mergable, comparator, genWrappers) {\n var cells = mergable.cells;\n merge(cells);\n var newGrid = merge$2(grid, mergable.bounds, comparator, genWrappers.merge(cells));\n return outcome(newGrid, Optional.from(cells[0]));\n };\n\n var opUnmergeCells = function opUnmergeCells(grid, unmergable, comparator, genWrappers) {\n var unmerge$1 = function unmerge$1(b, cell) {\n return unmerge(b, cell, comparator, genWrappers.unmerge(cell));\n };\n\n var newGrid = foldr(unmergable, unmerge$1, grid);\n return outcome(newGrid, Optional.from(unmergable[0]));\n };\n\n var opPasteCells = function opPasteCells(grid, pasteDetails, comparator, _genWrappers) {\n var gridify = function gridify(table, generators) {\n var wh = Warehouse.fromTable(table);\n return toGrid(wh, generators, true);\n };\n\n var gridB = gridify(pasteDetails.clipboard, pasteDetails.generators);\n var startAddress = address(pasteDetails.row, pasteDetails.column);\n var mergedGrid = merge$1(startAddress, grid, gridB, pasteDetails.generators, comparator);\n return mergedGrid.fold(function () {\n return outcome(grid, Optional.some(pasteDetails.element));\n }, function (newGrid) {\n return bundle(newGrid, pasteDetails.row, pasteDetails.column);\n });\n };\n\n var gridifyRows = function gridifyRows(rows, generators, context) {\n var pasteDetails = fromPastedRows(rows, context.section);\n var wh = Warehouse.generate(pasteDetails);\n return toGrid(wh, generators, true);\n };\n\n var opPasteColsBefore = function opPasteColsBefore(grid, pasteDetails, comparator, _genWrappers) {\n var rows = extractGridDetails(grid).rows;\n var index = pasteDetails.cells[0].column;\n var context = rows[pasteDetails.cells[0].row];\n var gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n var mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n\n var opPasteColsAfter = function opPasteColsAfter(grid, pasteDetails, comparator, _genWrappers) {\n var rows = extractGridDetails(grid).rows;\n var index = pasteDetails.cells[pasteDetails.cells.length - 1].column + pasteDetails.cells[pasteDetails.cells.length - 1].colspan;\n var context = rows[pasteDetails.cells[0].row];\n var gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n var mergedGrid = insertCols(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n\n var opPasteRowsBefore = function opPasteRowsBefore(grid, pasteDetails, comparator, _genWrappers) {\n var rows = extractGridDetails(grid).rows;\n var index = pasteDetails.cells[0].row;\n var context = rows[index];\n var gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n var mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n\n var opPasteRowsAfter = function opPasteRowsAfter(grid, pasteDetails, comparator, _genWrappers) {\n var rows = extractGridDetails(grid).rows;\n var index = pasteDetails.cells[pasteDetails.cells.length - 1].row + pasteDetails.cells[pasteDetails.cells.length - 1].rowspan;\n var context = rows[pasteDetails.cells[0].row];\n var gridB = gridifyRows(pasteDetails.clipboard, pasteDetails.generators, context);\n var mergedGrid = insertRows(index, grid, gridB, pasteDetails.generators, comparator);\n return bundle(mergedGrid, pasteDetails.cells[0].row, pasteDetails.cells[0].column);\n };\n\n var opGetColumnsType = function opGetColumnsType(table, target) {\n var house = Warehouse.fromTable(table);\n var details = onCells(house, target);\n return details.bind(function (selectedCells) {\n var lastSelectedCell = selectedCells[selectedCells.length - 1];\n var minColRange = selectedCells[0].column;\n var maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n var selectedColumnCells = flatten$1(map$1(house.all, function (row) {\n return filter$2(row.cells, function (cell) {\n return cell.column >= minColRange && cell.column < maxColRange;\n });\n }));\n return findCommonCellType(selectedColumnCells);\n }).getOr('');\n };\n\n var opGetCellsType = function opGetCellsType(table, target) {\n var house = Warehouse.fromTable(table);\n var details = onCells(house, target);\n return details.bind(findCommonCellType).getOr('');\n };\n\n var opGetRowsType = function opGetRowsType(table, target) {\n var house = Warehouse.fromTable(table);\n var details = onCells(house, target);\n return details.bind(function (selectedCells) {\n var lastSelectedCell = selectedCells[selectedCells.length - 1];\n var minRowRange = selectedCells[0].row;\n var maxRowRange = lastSelectedCell.row + lastSelectedCell.rowspan;\n var selectedRows = house.all.slice(minRowRange, maxRowRange);\n return findCommonRowType(selectedRows);\n }).getOr('');\n };\n\n var resize = function resize(table, list, details, behaviours) {\n return adjustWidthTo(table, list, details, behaviours.sizing);\n };\n\n var adjustAndRedistributeWidths = function adjustAndRedistributeWidths(table, list, details, behaviours) {\n return adjustAndRedistributeWidths$1(table, list, details, behaviours.sizing, behaviours.resize);\n };\n\n var firstColumnIsLocked = function firstColumnIsLocked(_warehouse, details) {\n return exists(details, function (detail) {\n return detail.column === 0 && detail.isLocked;\n });\n };\n\n var lastColumnIsLocked = function lastColumnIsLocked(warehouse, details) {\n return exists(details, function (detail) {\n return detail.column + detail.colspan >= warehouse.grid.columns && detail.isLocked;\n });\n };\n\n var getColumnsWidth = function getColumnsWidth(warehouse, details) {\n var columns$1 = columns(warehouse);\n var uniqueCols = uniqueColumns(details);\n return foldl(uniqueCols, function (acc, detail) {\n var column = columns$1[detail.column];\n var colWidth = column.map(getOuter$2).getOr(0);\n return acc + colWidth;\n }, 0);\n };\n\n var insertColumnsExtractor = function insertColumnsExtractor(before) {\n return function (warehouse, target) {\n return onCells(warehouse, target).filter(function (details) {\n var checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details);\n }).map(function (details) {\n return {\n details: details,\n pixelDelta: getColumnsWidth(warehouse, details)\n };\n });\n };\n };\n\n var eraseColumnsExtractor = function eraseColumnsExtractor(warehouse, target) {\n return onUnlockedCells(warehouse, target).map(function (details) {\n return {\n details: details,\n pixelDelta: -getColumnsWidth(warehouse, details)\n };\n });\n };\n\n var pasteColumnsExtractor = function pasteColumnsExtractor(before) {\n return function (warehouse, target) {\n return onPasteByEditor(warehouse, target).filter(function (details) {\n var checkLocked = before ? firstColumnIsLocked : lastColumnIsLocked;\n return !checkLocked(warehouse, details.cells);\n });\n };\n };\n\n var headerCellGenerator = Generators.transform('th');\n var bodyCellGenerator = Generators.transform('td');\n var insertRowsBefore = run(opInsertRowsBefore, onCells, noop, noop, Generators.modification);\n var insertRowsAfter = run(opInsertRowsAfter, onCells, noop, noop, Generators.modification);\n var insertColumnsBefore = run(opInsertColumnsBefore, insertColumnsExtractor(true), adjustAndRedistributeWidths, noop, Generators.modification);\n var insertColumnsAfter = run(opInsertColumnsAfter, insertColumnsExtractor(false), adjustAndRedistributeWidths, noop, Generators.modification);\n var eraseColumns = run(opEraseColumns, eraseColumnsExtractor, adjustAndRedistributeWidths, prune, Generators.modification);\n var eraseRows = run(opEraseRows, onCells, noop, prune, Generators.modification);\n var makeColumnsHeader = run(opMakeColumnsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n var unmakeColumnsHeader = run(opUnmakeColumnsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n var makeRowsHeader = run(opMakeRowsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n var makeRowsBody = run(opMakeRowsBody, onUnlockedCells, noop, noop, bodyCellGenerator);\n var makeRowsFooter = run(opMakeRowsFooter, onUnlockedCells, noop, noop, bodyCellGenerator);\n var makeCellsHeader = run(opMakeCellsHeader, onUnlockedCells, noop, noop, headerCellGenerator);\n var unmakeCellsHeader = run(opUnmakeCellsHeader, onUnlockedCells, noop, noop, bodyCellGenerator);\n var mergeCells = run(opMergeCells, onUnlockedMergable, resize, noop, Generators.merging);\n var unmergeCells = run(opUnmergeCells, onUnlockedUnmergable, resize, noop, Generators.merging);\n var pasteCells = run(opPasteCells, onPaste, resize, noop, Generators.modification);\n var pasteColsBefore = run(opPasteColsBefore, pasteColumnsExtractor(true), noop, noop, Generators.modification);\n var pasteColsAfter = run(opPasteColsAfter, pasteColumnsExtractor(false), noop, noop, Generators.modification);\n var pasteRowsBefore = run(opPasteRowsBefore, onPasteByEditor, noop, noop, Generators.modification);\n var pasteRowsAfter = run(opPasteRowsAfter, onPasteByEditor, noop, noop, Generators.modification);\n var getColumnsType = opGetColumnsType;\n var getCellsType = opGetCellsType;\n var getRowsType = opGetRowsType;\n\n var TableActions = function TableActions(editor, cellSelection, lazyWire) {\n var isTableBody = function isTableBody(editor) {\n return name(getBody(editor)) === 'table';\n };\n\n var lastRowGuard = function lastRowGuard(table) {\n return isTableBody(editor) === false || getGridSize(table).rows > 1;\n };\n\n var lastColumnGuard = function lastColumnGuard(table) {\n return isTableBody(editor) === false || getGridSize(table).columns > 1;\n };\n\n var cloneFormats = getCloneElements(editor);\n var colMutationOp = isResizeTableColumnResizing(editor) ? noop : halve;\n\n var getTableSectionType = function getTableSectionType(table) {\n switch (getTableHeaderType(editor)) {\n case 'section':\n return TableSection.section();\n\n case 'sectionCells':\n return TableSection.sectionCells();\n\n case 'cells':\n return TableSection.cells();\n\n default:\n return TableSection.getTableSectionType(table, 'section');\n }\n };\n\n var setSelectionFromAction = function setSelectionFromAction(table, result) {\n return result.cursor.fold(function () {\n var cells = cells$1(table);\n return head(cells).filter(inBody).map(function (firstCell) {\n cellSelection.clear(table);\n var rng = editor.dom.createRng();\n rng.selectNode(firstCell.dom);\n editor.selection.setRng(rng);\n set$2(firstCell, 'data-mce-selected', '1');\n return rng;\n });\n }, function (cell) {\n var des = freefallRtl(cell);\n var rng = editor.dom.createRng();\n rng.setStart(des.element.dom, des.offset);\n rng.setEnd(des.element.dom, des.offset);\n editor.selection.setRng(rng);\n cellSelection.clear(table);\n return Optional.some(rng);\n });\n };\n\n var execute = function execute(operation, guard, mutate, lazyWire, effect) {\n return function (table, target, noEvents) {\n if (noEvents === void 0) {\n noEvents = false;\n }\n\n removeDataStyle(table);\n var wire = lazyWire();\n var doc = SugarElement.fromDom(editor.getDoc());\n var generators = cellOperations(mutate, doc, cloneFormats);\n var behaviours = {\n sizing: get$4(editor, table),\n resize: isResizeTableColumnResizing(editor) ? resizeTable() : preserveTable(),\n section: getTableSectionType(table)\n };\n return guard(table) ? operation(wire, table, target, generators, behaviours).bind(function (result) {\n each$2(result.newRows, function (row) {\n fireNewRow(editor, row.dom);\n });\n each$2(result.newCells, function (cell) {\n fireNewCell(editor, cell.dom);\n });\n var range = setSelectionFromAction(table, result);\n\n if (inBody(table)) {\n removeDataStyle(table);\n\n if (!noEvents) {\n fireTableModified(editor, table.dom, effect);\n }\n }\n\n return range.map(function (rng) {\n return {\n rng: rng,\n effect: effect\n };\n });\n }) : Optional.none();\n };\n };\n\n var deleteRow = execute(eraseRows, lastRowGuard, noop, lazyWire, structureModified);\n var deleteColumn = execute(eraseColumns, lastColumnGuard, noop, lazyWire, structureModified);\n var insertRowsBefore$1 = execute(insertRowsBefore, always, noop, lazyWire, structureModified);\n var insertRowsAfter$1 = execute(insertRowsAfter, always, noop, lazyWire, structureModified);\n var insertColumnsBefore$1 = execute(insertColumnsBefore, always, colMutationOp, lazyWire, structureModified);\n var insertColumnsAfter$1 = execute(insertColumnsAfter, always, colMutationOp, lazyWire, structureModified);\n var mergeCells$1 = execute(mergeCells, always, noop, lazyWire, structureModified);\n var unmergeCells$1 = execute(unmergeCells, always, noop, lazyWire, structureModified);\n var pasteColsBefore$1 = execute(pasteColsBefore, always, noop, lazyWire, structureModified);\n var pasteColsAfter$1 = execute(pasteColsAfter, always, noop, lazyWire, structureModified);\n var pasteRowsBefore$1 = execute(pasteRowsBefore, always, noop, lazyWire, structureModified);\n var pasteRowsAfter$1 = execute(pasteRowsAfter, always, noop, lazyWire, structureModified);\n var pasteCells$1 = execute(pasteCells, always, noop, lazyWire, styleAndStructureModified);\n var makeCellsHeader$1 = execute(makeCellsHeader, always, noop, lazyWire, structureModified);\n var unmakeCellsHeader$1 = execute(unmakeCellsHeader, always, noop, lazyWire, structureModified);\n var makeColumnsHeader$1 = execute(makeColumnsHeader, always, noop, lazyWire, structureModified);\n var unmakeColumnsHeader$1 = execute(unmakeColumnsHeader, always, noop, lazyWire, structureModified);\n var makeRowsHeader$1 = execute(makeRowsHeader, always, noop, lazyWire, structureModified);\n var makeRowsBody$1 = execute(makeRowsBody, always, noop, lazyWire, structureModified);\n var makeRowsFooter$1 = execute(makeRowsFooter, always, noop, lazyWire, structureModified);\n var getTableCellType = getCellsType;\n var getTableColType = getColumnsType;\n var getTableRowType = getRowsType;\n return {\n deleteRow: deleteRow,\n deleteColumn: deleteColumn,\n insertRowsBefore: insertRowsBefore$1,\n insertRowsAfter: insertRowsAfter$1,\n insertColumnsBefore: insertColumnsBefore$1,\n insertColumnsAfter: insertColumnsAfter$1,\n mergeCells: mergeCells$1,\n unmergeCells: unmergeCells$1,\n pasteColsBefore: pasteColsBefore$1,\n pasteColsAfter: pasteColsAfter$1,\n pasteRowsBefore: pasteRowsBefore$1,\n pasteRowsAfter: pasteRowsAfter$1,\n pasteCells: pasteCells$1,\n makeCellsHeader: makeCellsHeader$1,\n unmakeCellsHeader: unmakeCellsHeader$1,\n makeColumnsHeader: makeColumnsHeader$1,\n unmakeColumnsHeader: unmakeColumnsHeader$1,\n makeRowsHeader: makeRowsHeader$1,\n makeRowsBody: makeRowsBody$1,\n makeRowsFooter: makeRowsFooter$1,\n getTableRowType: getTableRowType,\n getTableCellType: getTableCellType,\n getTableColType: getTableColType\n };\n };\n\n var DefaultRenderOptions = {\n styles: {\n 'border-collapse': 'collapse',\n 'width': '100%'\n },\n attributes: {\n border: '1'\n },\n colGroups: false\n };\n\n var tableHeaderCell = function tableHeaderCell() {\n return SugarElement.fromTag('th');\n };\n\n var tableCell = function tableCell() {\n return SugarElement.fromTag('td');\n };\n\n var tableColumn = function tableColumn() {\n return SugarElement.fromTag('col');\n };\n\n var createRow = function createRow(columns, rowHeaders, columnHeaders, rowIndex) {\n var tr = SugarElement.fromTag('tr');\n\n for (var j = 0; j < columns; j++) {\n var td = rowIndex < rowHeaders || j < columnHeaders ? tableHeaderCell() : tableCell();\n\n if (j < columnHeaders) {\n set$2(td, 'scope', 'row');\n }\n\n if (rowIndex < rowHeaders) {\n set$2(td, 'scope', 'col');\n }\n\n append$1(td, SugarElement.fromTag('br'));\n append$1(tr, td);\n }\n\n return tr;\n };\n\n var createGroupRow = function createGroupRow(columns) {\n var columnGroup = SugarElement.fromTag('colgroup');\n range$1(columns, function () {\n return append$1(columnGroup, tableColumn());\n });\n return columnGroup;\n };\n\n var createRows = function createRows(rows, columns, rowHeaders, columnHeaders) {\n return range$1(rows, function (r) {\n return createRow(columns, rowHeaders, columnHeaders, r);\n });\n };\n\n var render = function render(rows, columns, rowHeaders, columnHeaders, headerType, renderOpts) {\n if (renderOpts === void 0) {\n renderOpts = DefaultRenderOptions;\n }\n\n var table = SugarElement.fromTag('table');\n var rowHeadersGoInThead = headerType !== 'cells';\n setAll(table, renderOpts.styles);\n setAll$1(table, renderOpts.attributes);\n\n if (renderOpts.colGroups) {\n append$1(table, createGroupRow(columns));\n }\n\n var actualRowHeaders = Math.min(rows, rowHeaders);\n\n if (rowHeadersGoInThead && rowHeaders > 0) {\n var thead = SugarElement.fromTag('thead');\n append$1(table, thead);\n var theadRowHeaders = headerType === 'sectionCells' ? actualRowHeaders : 0;\n var theadRows = createRows(rowHeaders, columns, theadRowHeaders, columnHeaders);\n append(thead, theadRows);\n }\n\n var tbody = SugarElement.fromTag('tbody');\n append$1(table, tbody);\n var numRows = rowHeadersGoInThead ? rows - actualRowHeaders : rows;\n var numRowHeaders = rowHeadersGoInThead ? 0 : rowHeaders;\n var tbodyRows = createRows(numRows, columns, numRowHeaders, columnHeaders);\n append(tbody, tbodyRows);\n return table;\n };\n\n var get$2 = function get$2(element) {\n return element.dom.innerHTML;\n };\n\n var getOuter = function getOuter(element) {\n var container = SugarElement.fromTag('div');\n var clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$1(container, clone);\n return get$2(container);\n };\n\n var placeCaretInCell = function placeCaretInCell(editor, cell) {\n editor.selection.select(cell.dom, true);\n editor.selection.collapse(true);\n };\n\n var selectFirstCellInTable = function selectFirstCellInTable(editor, tableElm) {\n descendant(tableElm, 'td,th').each(curry(placeCaretInCell, editor));\n };\n\n var fireEvents = function fireEvents(editor, table) {\n each$2(descendants(table, 'tr'), function (row) {\n fireNewRow(editor, row.dom);\n each$2(descendants(row, 'th,td'), function (cell) {\n fireNewCell(editor, cell.dom);\n });\n });\n };\n\n var isPercentage = function isPercentage(width) {\n return isString(width) && width.indexOf('%') !== -1;\n };\n\n var insert = function insert(editor, columns, rows, colHeaders, rowHeaders) {\n var defaultStyles = getDefaultStyles(editor);\n var options = {\n styles: defaultStyles,\n attributes: getDefaultAttributes(editor),\n colGroups: useColumnGroup(editor)\n };\n editor.undoManager.ignore(function () {\n var table = render(rows, columns, rowHeaders, colHeaders, getTableHeaderType(editor), options);\n set$2(table, 'data-mce-id', '__mce');\n var html = getOuter(table);\n editor.insertContent(html);\n editor.addVisual();\n });\n return descendant(getBody(editor), 'table[data-mce-id=\"__mce\"]').map(function (table) {\n if (isPixelsForced(editor)) {\n enforcePixels(table);\n } else if (isResponsiveForced(editor)) {\n enforceNone(table);\n } else if (isPercentagesForced(editor) || isPercentage(defaultStyles.width)) {\n enforcePercentage(table);\n }\n\n removeDataStyle(table);\n remove$7(table, 'data-mce-id');\n fireEvents(editor, table);\n selectFirstCellInTable(editor, table);\n return table.dom;\n }).getOr(null);\n };\n\n var insertTableWithDataValidation = function insertTableWithDataValidation(editor, rows, columns, options, errorMsg) {\n if (options === void 0) {\n options = {};\n }\n\n var checkInput = function checkInput(val) {\n return isNumber(val) && val > 0;\n };\n\n if (checkInput(rows) && checkInput(columns)) {\n var headerRows = options.headerRows || 0;\n var headerColumns = options.headerColumns || 0;\n return insert(editor, columns, rows, headerColumns, headerRows);\n } else {\n console.error(errorMsg);\n return null;\n }\n };\n\n var getClipboardElements = function getClipboardElements(getClipboard) {\n return function () {\n return getClipboard().fold(function () {\n return [];\n }, function (elems) {\n return map$1(elems, function (e) {\n return e.dom;\n });\n });\n };\n };\n\n var setClipboardElements = function setClipboardElements(setClipboard) {\n return function (elems) {\n var elmsOpt = elems.length > 0 ? Optional.some(fromDom(elems)) : Optional.none();\n setClipboard(elmsOpt);\n };\n };\n\n var insertTable = function insertTable(editor) {\n return function (columns, rows, options) {\n if (options === void 0) {\n options = {};\n }\n\n var table = insertTableWithDataValidation(editor, rows, columns, options, 'Invalid values for insertTable - rows and columns values are required to insert a table.');\n editor.undoManager.add();\n return table;\n };\n };\n\n var getApi = function getApi(editor, clipboard, resizeHandler, selectionTargets) {\n return {\n insertTable: insertTable(editor),\n setClipboardRows: setClipboardElements(clipboard.setRows),\n getClipboardRows: getClipboardElements(clipboard.getRows),\n setClipboardCols: setClipboardElements(clipboard.setColumns),\n getClipboardCols: getClipboardElements(clipboard.getColumns),\n resizeHandler: resizeHandler,\n selectionTargets: selectionTargets\n };\n };\n\n var constrainSpan = function constrainSpan(element, property, value) {\n var currentColspan = getAttrValue(element, property, 1);\n\n if (value === 1 || currentColspan <= 1) {\n remove$7(element, property);\n } else {\n set$2(element, property, Math.min(value, currentColspan));\n }\n };\n\n var generateColGroup = function generateColGroup(house, minColRange, maxColRange) {\n if (Warehouse.hasColumns(house)) {\n var colsToCopy = filter$2(Warehouse.justColumns(house), function (col) {\n return col.column >= minColRange && col.column < maxColRange;\n });\n var copiedCols = map$1(colsToCopy, function (c) {\n var clonedCol = deep(c.element);\n constrainSpan(clonedCol, 'span', maxColRange - minColRange);\n return clonedCol;\n });\n var fakeColgroup = SugarElement.fromTag('colgroup');\n append(fakeColgroup, copiedCols);\n return [fakeColgroup];\n } else {\n return [];\n }\n };\n\n var generateRows = function generateRows(house, minColRange, maxColRange) {\n return map$1(house.all, function (row) {\n var cellsToCopy = filter$2(row.cells, function (cell) {\n return cell.column >= minColRange && cell.column < maxColRange;\n });\n var copiedCells = map$1(cellsToCopy, function (cell) {\n var clonedCell = deep(cell.element);\n constrainSpan(clonedCell, 'colspan', maxColRange - minColRange);\n return clonedCell;\n });\n var fakeTR = SugarElement.fromTag('tr');\n append(fakeTR, copiedCells);\n return fakeTR;\n });\n };\n\n var copyCols = function copyCols(table, target) {\n var house = Warehouse.fromTable(table);\n var details = onUnlockedCells(house, target);\n return details.map(function (selectedCells) {\n var lastSelectedCell = selectedCells[selectedCells.length - 1];\n var minColRange = selectedCells[0].column;\n var maxColRange = lastSelectedCell.column + lastSelectedCell.colspan;\n var fakeColGroups = generateColGroup(house, minColRange, maxColRange);\n var fakeRows = generateRows(house, minColRange, maxColRange);\n return __spreadArray(__spreadArray([], fakeColGroups, true), fakeRows, true);\n });\n };\n\n var copyRows = function copyRows(table, target, generators) {\n var warehouse = Warehouse.fromTable(table);\n var details = onCells(warehouse, target);\n return details.bind(function (selectedCells) {\n var grid = toGrid(warehouse, generators, false);\n var rows = extractGridDetails(grid).rows;\n var slicedGrid = rows.slice(selectedCells[0].row, selectedCells[selectedCells.length - 1].row + selectedCells[selectedCells.length - 1].rowspan);\n var filteredGrid = bind$2(slicedGrid, function (row) {\n var newCells = filter$2(row.cells, function (cell) {\n return !cell.isLocked;\n });\n return newCells.length > 0 ? [_assign(_assign({}, row), {\n cells: newCells\n })] : [];\n });\n var slicedDetails = toDetailList(filteredGrid);\n return someIf(slicedDetails.length > 0, slicedDetails);\n }).map(function (slicedDetails) {\n return copy(slicedDetails);\n });\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var getTDTHOverallStyle = function getTDTHOverallStyle(dom, elm, name) {\n var cells = dom.select('td,th', elm);\n var firstChildStyle;\n\n var checkChildren = function checkChildren(firstChildStyle, elms) {\n for (var i = 0; i < elms.length; i++) {\n var currentStyle = dom.getStyle(elms[i], name);\n\n if (typeof firstChildStyle === 'undefined') {\n firstChildStyle = currentStyle;\n }\n\n if (firstChildStyle !== currentStyle) {\n return '';\n }\n }\n\n return firstChildStyle;\n };\n\n return checkChildren(firstChildStyle, cells);\n };\n\n var applyAlign = function applyAlign(editor, elm, name) {\n if (name) {\n editor.formatter.apply('align' + name, {}, elm);\n }\n };\n\n var applyVAlign = function applyVAlign(editor, elm, name) {\n if (name) {\n editor.formatter.apply('valign' + name, {}, elm);\n }\n };\n\n var unApplyAlign = function unApplyAlign(editor, elm) {\n global$2.each('left center right'.split(' '), function (name) {\n editor.formatter.remove('align' + name, {}, elm);\n });\n };\n\n var unApplyVAlign = function unApplyVAlign(editor, elm) {\n global$2.each('top middle bottom'.split(' '), function (name) {\n editor.formatter.remove('valign' + name, {}, elm);\n });\n };\n\n var verticalAlignValues = [{\n text: 'None',\n value: ''\n }, {\n text: 'Top',\n value: 'top'\n }, {\n text: 'Middle',\n value: 'middle'\n }, {\n text: 'Bottom',\n value: 'bottom'\n }];\n\n var hexColour = function hexColour(value) {\n return {\n value: value\n };\n };\n\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n\n var isHexString = function isHexString(hex) {\n return shorthandRegex.test(hex) || longformRegex.test(hex);\n };\n\n var normalizeHex = function normalizeHex(hex) {\n return removeLeading(hex, '#').toUpperCase();\n };\n\n var fromString$1 = function fromString$1(hex) {\n return isHexString(hex) ? Optional.some({\n value: normalizeHex(hex)\n }) : Optional.none();\n };\n\n var toHex = function toHex(component) {\n var hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n\n var fromRgba = function fromRgba(rgbaColour) {\n var value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n\n var rgbRegex = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/;\n var rgbaRegex = /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d?(?:\\.\\d+)?)\\)/;\n\n var rgbaColour = function rgbaColour(red, green, blue, alpha) {\n return {\n red: red,\n green: green,\n blue: blue,\n alpha: alpha\n };\n };\n\n var fromStringValues = function fromStringValues(red, green, blue, alpha) {\n var r = parseInt(red, 10);\n var g = parseInt(green, 10);\n var b = parseInt(blue, 10);\n var a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n\n var fromString = function fromString(rgbaString) {\n if (rgbaString === 'transparent') {\n return Optional.some(rgbaColour(0, 0, 0, 0));\n }\n\n var rgbMatch = rgbRegex.exec(rgbaString);\n\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n\n var rgbaMatch = rgbaRegex.exec(rgbaString);\n\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n\n return Optional.none();\n };\n\n var anyToHex = function anyToHex(color) {\n return fromString$1(color).orThunk(function () {\n return fromString(color).map(fromRgba);\n }).getOrThunk(function () {\n var canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n var canvasContext = canvas.getContext('2d');\n canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvasContext.fillStyle = '#FFFFFF';\n canvasContext.fillStyle = color;\n canvasContext.fillRect(0, 0, 1, 1);\n var rgba = canvasContext.getImageData(0, 0, 1, 1).data;\n var r = rgba[0];\n var g = rgba[1];\n var b = rgba[2];\n var a = rgba[3];\n return fromRgba(rgbaColour(r, g, b, a));\n });\n };\n\n var Cell = function Cell(initial) {\n var value = initial;\n\n var get = function get() {\n return value;\n };\n\n var set = function set(v) {\n value = v;\n };\n\n return {\n get: get,\n set: set\n };\n };\n\n var singleton = function singleton(doRevoke) {\n var subject = Cell(Optional.none());\n\n var revoke = function revoke() {\n return subject.get().each(doRevoke);\n };\n\n var clear = function clear() {\n revoke();\n subject.set(Optional.none());\n };\n\n var isSet = function isSet() {\n return subject.get().isSome();\n };\n\n var get = function get() {\n return subject.get();\n };\n\n var set = function set(s) {\n revoke();\n subject.set(Optional.some(s));\n };\n\n return {\n clear: clear,\n isSet: isSet,\n get: get,\n set: set\n };\n };\n\n var unbindable = function unbindable() {\n return singleton(function (s) {\n return s.unbind();\n });\n };\n\n var value = function value() {\n var subject = singleton(noop);\n\n var on = function on(f) {\n return subject.get().each(f);\n };\n\n return _assign(_assign({}, subject), {\n on: on\n });\n };\n\n var onSetupToggle = function onSetupToggle(editor, selections, formatName, formatValue) {\n return function (api) {\n var boundCallback = unbindable();\n var isNone = isEmpty$1(formatValue);\n\n var init = function init() {\n var selectedCells = getCellsFromSelection(selections);\n\n var checkNode = function checkNode(cell) {\n return editor.formatter.match(formatName, {\n value: formatValue\n }, cell.dom, isNone);\n };\n\n if (isNone) {\n api.setActive(!exists(selectedCells, checkNode));\n boundCallback.set(editor.formatter.formatChanged(formatName, function (match) {\n return api.setActive(!match);\n }, true));\n } else {\n api.setActive(forall(selectedCells, checkNode));\n boundCallback.set(editor.formatter.formatChanged(formatName, api.setActive, false, {\n value: formatValue\n }));\n }\n };\n\n editor.initialized ? init() : editor.on('init', init);\n return boundCallback.clear;\n };\n };\n\n var isListGroup = function isListGroup(item) {\n return hasNonNullableKey(item, 'menu');\n };\n\n var buildListItems = function buildListItems(items) {\n return map$1(items, function (item) {\n var text = item.text || item.title;\n\n if (isListGroup(item)) {\n return {\n text: text,\n items: buildListItems(item.menu)\n };\n } else {\n return {\n text: text,\n value: item.value\n };\n }\n });\n };\n\n var buildMenuItems = function buildMenuItems(editor, selections, items, format, _onAction) {\n return map$1(items, function (item) {\n var text = item.text || item.title;\n\n if (isListGroup(item)) {\n return {\n type: 'nestedmenuitem',\n text: text,\n getSubmenuItems: function getSubmenuItems() {\n return buildMenuItems(editor, selections, item.menu, format, _onAction);\n }\n };\n } else {\n return {\n text: text,\n type: 'togglemenuitem',\n onAction: function onAction() {\n return _onAction(item.value);\n },\n onSetup: onSetupToggle(editor, selections, format, item.value)\n };\n }\n });\n };\n\n var applyTableCellStyle = function applyTableCellStyle(editor, style) {\n return function (value) {\n var _a;\n\n editor.execCommand('mceTableApplyCellStyle', false, (_a = {}, _a[style] = value, _a));\n };\n };\n\n var filterNoneItem = function filterNoneItem(list) {\n return bind$2(list, function (item) {\n if (isListGroup(item)) {\n return [_assign(_assign({}, item), {\n menu: filterNoneItem(item.menu)\n })];\n } else {\n return isNotEmpty(item.value) ? [item] : [];\n }\n });\n };\n\n var generateMenuItemsCallback = function generateMenuItemsCallback(editor, selections, items, format, onAction) {\n return function (callback) {\n return callback(buildMenuItems(editor, selections, items, format, onAction));\n };\n };\n\n var buildColorMenu = function buildColorMenu(editor, colorList, style) {\n var colorMap = map$1(colorList, function (entry) {\n return {\n text: entry.title,\n value: '#' + anyToHex(entry.value).value,\n type: 'choiceitem'\n };\n });\n return [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n initData: {\n colors: colorMap.length > 0 ? colorMap : undefined,\n allowCustomColors: false\n },\n onAction: function onAction(data) {\n var _a;\n\n var value = data.value === 'remove' ? '' : data.value;\n editor.execCommand('mceTableApplyCellStyle', false, (_a = {}, _a[style] = value, _a));\n }\n }];\n };\n\n var changeRowHeader = function changeRowHeader(editor) {\n return function () {\n var currentType = editor.queryCommandValue('mceTableRowType');\n var newType = currentType === 'header' ? 'body' : 'header';\n editor.execCommand('mceTableRowType', false, {\n type: newType\n });\n };\n };\n\n var changeColumnHeader = function changeColumnHeader(editor) {\n return function () {\n var currentType = editor.queryCommandValue('mceTableColType');\n var newType = currentType === 'th' ? 'td' : 'th';\n editor.execCommand('mceTableColType', false, {\n type: newType\n });\n };\n };\n\n var getClassList$1 = function getClassList$1(editor) {\n var classes = buildListItems(getCellClassList(editor));\n\n if (classes.length > 0) {\n return Optional.some({\n name: 'class',\n type: 'listbox',\n label: 'Class',\n items: classes\n });\n }\n\n return Optional.none();\n };\n\n var children = [{\n name: 'width',\n type: 'input',\n label: 'Width'\n }, {\n name: 'height',\n type: 'input',\n label: 'Height'\n }, {\n name: 'celltype',\n type: 'listbox',\n label: 'Cell type',\n items: [{\n text: 'Cell',\n value: 'td'\n }, {\n text: 'Header cell',\n value: 'th'\n }]\n }, {\n name: 'scope',\n type: 'listbox',\n label: 'Scope',\n items: [{\n text: 'None',\n value: ''\n }, {\n text: 'Row',\n value: 'row'\n }, {\n text: 'Column',\n value: 'col'\n }, {\n text: 'Row group',\n value: 'rowgroup'\n }, {\n text: 'Column group',\n value: 'colgroup'\n }]\n }, {\n name: 'halign',\n type: 'listbox',\n label: 'Horizontal align',\n items: [{\n text: 'None',\n value: ''\n }, {\n text: 'Left',\n value: 'left'\n }, {\n text: 'Center',\n value: 'center'\n }, {\n text: 'Right',\n value: 'right'\n }]\n }, {\n name: 'valign',\n type: 'listbox',\n label: 'Vertical align',\n items: verticalAlignValues\n }];\n\n var getItems$2 = function getItems$2(editor) {\n return children.concat(getClassList$1(editor).toArray());\n };\n\n var getAdvancedTab = function getAdvancedTab(editor, dialogName) {\n var emptyBorderStyle = [{\n text: 'Select...',\n value: ''\n }];\n var advTabItems = [{\n name: 'borderstyle',\n type: 'listbox',\n label: 'Border style',\n items: emptyBorderStyle.concat(buildListItems(getTableBorderStyles(editor)))\n }, {\n name: 'bordercolor',\n type: 'colorinput',\n label: 'Border color'\n }, {\n name: 'backgroundcolor',\n type: 'colorinput',\n label: 'Background color'\n }];\n var borderWidth = {\n name: 'borderwidth',\n type: 'input',\n label: 'Border width'\n };\n var items = dialogName === 'cell' ? [borderWidth].concat(advTabItems) : advTabItems;\n return {\n title: 'Advanced',\n name: 'advanced',\n items: items\n };\n };\n\n var modifiers = function modifiers(testTruthy) {\n return function (editor, node) {\n var dom = editor.dom;\n\n var setAttrib = function setAttrib(attr, value) {\n if (!testTruthy || value) {\n dom.setAttrib(node, attr, value);\n }\n };\n\n var setStyle = function setStyle(prop, value) {\n if (!testTruthy || value) {\n dom.setStyle(node, prop, value);\n }\n };\n\n var setFormat = function setFormat(formatName, value) {\n if (!testTruthy || value) {\n if (value === '') {\n editor.formatter.remove(formatName, {\n value: null\n }, node, true);\n } else {\n editor.formatter.apply(formatName, {\n value: value\n }, node);\n }\n }\n };\n\n return {\n setAttrib: setAttrib,\n setStyle: setStyle,\n setFormat: setFormat\n };\n };\n };\n\n var DomModifier = {\n normal: modifiers(false),\n ifTruthy: modifiers(true)\n };\n\n var rgbToHex = function rgbToHex(dom) {\n return function (value) {\n return startsWith(value, 'rgb') ? dom.toHex(value) : value;\n };\n };\n\n var extractAdvancedStyles = function extractAdvancedStyles(dom, elm) {\n var element = SugarElement.fromDom(elm);\n return {\n borderwidth: getRaw$2(element, 'border-width').getOr(''),\n borderstyle: getRaw$2(element, 'border-style').getOr(''),\n bordercolor: getRaw$2(element, 'border-color').map(rgbToHex(dom)).getOr(''),\n backgroundcolor: getRaw$2(element, 'background-color').map(rgbToHex(dom)).getOr('')\n };\n };\n\n var getSharedValues = function getSharedValues(data) {\n var baseData = data[0];\n var comparisonData = data.slice(1);\n each$2(comparisonData, function (items) {\n each$2(keys(baseData), function (key) {\n each$1(items, function (itemValue, itemKey) {\n var comparisonValue = baseData[key];\n\n if (comparisonValue !== '' && key === itemKey) {\n if (comparisonValue !== itemValue) {\n baseData[key] = '';\n }\n }\n });\n });\n });\n return baseData;\n };\n\n var getAlignment = function getAlignment(formats, formatName, editor, elm) {\n return find$1(formats, function (name) {\n return !isUndefined(editor.formatter.matchNode(elm, formatName + name));\n }).getOr('');\n };\n\n var getHAlignment = curry(getAlignment, ['left', 'center', 'right'], 'align');\n var getVAlignment = curry(getAlignment, ['top', 'middle', 'bottom'], 'valign');\n\n var extractDataFromSettings = function extractDataFromSettings(editor, hasAdvTableTab) {\n var style = getDefaultStyles(editor);\n var attrs = getDefaultAttributes(editor);\n\n var extractAdvancedStyleData = function extractAdvancedStyleData(dom) {\n return {\n borderstyle: get$c(style, 'border-style').getOr(''),\n bordercolor: rgbToHex(dom)(get$c(style, 'border-color').getOr('')),\n backgroundcolor: rgbToHex(dom)(get$c(style, 'background-color').getOr(''))\n };\n };\n\n var defaultData = {\n height: '',\n width: '100%',\n cellspacing: '',\n cellpadding: '',\n caption: false,\n class: '',\n align: '',\n border: ''\n };\n\n var getBorder = function getBorder() {\n var borderWidth = style['border-width'];\n\n if (shouldStyleWithCss(editor) && borderWidth) {\n return {\n border: borderWidth\n };\n }\n\n return get$c(attrs, 'border').fold(function () {\n return {};\n }, function (border) {\n return {\n border: border\n };\n });\n };\n\n var advStyle = hasAdvTableTab ? extractAdvancedStyleData(editor.dom) : {};\n\n var getCellPaddingCellSpacing = function getCellPaddingCellSpacing() {\n var spacing = get$c(style, 'border-spacing').or(get$c(attrs, 'cellspacing')).fold(function () {\n return {};\n }, function (cellspacing) {\n return {\n cellspacing: cellspacing\n };\n });\n var padding = get$c(style, 'border-padding').or(get$c(attrs, 'cellpadding')).fold(function () {\n return {};\n }, function (cellpadding) {\n return {\n cellpadding: cellpadding\n };\n });\n return _assign(_assign({}, spacing), padding);\n };\n\n var data = _assign(_assign(_assign(_assign(_assign(_assign({}, defaultData), style), attrs), advStyle), getBorder()), getCellPaddingCellSpacing());\n\n return data;\n };\n\n var getRowType = function getRowType(elm) {\n return table(SugarElement.fromDom(elm)).map(function (table) {\n var target = {\n selection: fromDom(elm.cells)\n };\n return getRowsType(table, target);\n }).getOr('');\n };\n\n var extractDataFromTableElement = function extractDataFromTableElement(editor, elm, hasAdvTableTab) {\n var getBorder = function getBorder(dom, elm) {\n var optBorderWidth = getRaw$2(SugarElement.fromDom(elm), 'border-width');\n\n if (shouldStyleWithCss(editor) && optBorderWidth.isSome()) {\n return optBorderWidth.getOr('');\n }\n\n return dom.getAttrib(elm, 'border') || getTDTHOverallStyle(editor.dom, elm, 'border-width') || getTDTHOverallStyle(editor.dom, elm, 'border');\n };\n\n var dom = editor.dom;\n var cellspacing = shouldStyleWithCss(editor) ? dom.getStyle(elm, 'border-spacing') || dom.getAttrib(elm, 'cellspacing') : dom.getAttrib(elm, 'cellspacing') || dom.getStyle(elm, 'border-spacing');\n var cellpadding = shouldStyleWithCss(editor) ? getTDTHOverallStyle(dom, elm, 'padding') || dom.getAttrib(elm, 'cellpadding') : dom.getAttrib(elm, 'cellpadding') || getTDTHOverallStyle(dom, elm, 'padding');\n return _assign({\n width: dom.getStyle(elm, 'width') || dom.getAttrib(elm, 'width'),\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n cellspacing: cellspacing,\n cellpadding: cellpadding,\n border: getBorder(dom, elm),\n caption: !!dom.select('caption', elm)[0],\n class: dom.getAttrib(elm, 'class', ''),\n align: getHAlignment(editor, elm)\n }, hasAdvTableTab ? extractAdvancedStyles(dom, elm) : {});\n };\n\n var extractDataFromRowElement = function extractDataFromRowElement(editor, elm, hasAdvancedRowTab) {\n var dom = editor.dom;\n return _assign({\n height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),\n class: dom.getAttrib(elm, 'class', ''),\n type: getRowType(elm),\n align: getHAlignment(editor, elm)\n }, hasAdvancedRowTab ? extractAdvancedStyles(dom, elm) : {});\n };\n\n var extractDataFromCellElement = function extractDataFromCellElement(editor, cell, hasAdvancedCellTab, column) {\n var dom = editor.dom;\n var colElm = column.getOr(cell);\n\n var getStyle = function getStyle(element, style) {\n return dom.getStyle(element, style) || dom.getAttrib(element, style);\n };\n\n return _assign({\n width: getStyle(colElm, 'width'),\n height: getStyle(cell, 'height'),\n scope: dom.getAttrib(cell, 'scope'),\n celltype: getNodeName(cell),\n class: dom.getAttrib(cell, 'class', ''),\n halign: getHAlignment(editor, cell),\n valign: getVAlignment(editor, cell)\n }, hasAdvancedCellTab ? extractAdvancedStyles(dom, cell) : {});\n };\n\n var getSelectedCells = function getSelectedCells(table, cells) {\n var warehouse = Warehouse.fromTable(table);\n var allCells = Warehouse.justCells(warehouse);\n var filtered = filter$2(allCells, function (cellA) {\n return exists(cells, function (cellB) {\n return eq$1(cellA.element, cellB);\n });\n });\n return map$1(filtered, function (cell) {\n return {\n element: cell.element.dom,\n column: Warehouse.getColumnAt(warehouse, cell.column).map(function (col) {\n return col.element.dom;\n })\n };\n });\n };\n\n var updateSimpleProps$1 = function updateSimpleProps$1(modifier, colModifier, data) {\n modifier.setAttrib('scope', data.scope);\n modifier.setAttrib('class', data.class);\n modifier.setStyle('height', addPxSuffix(data.height));\n colModifier.setStyle('width', addPxSuffix(data.width));\n };\n\n var updateAdvancedProps$1 = function updateAdvancedProps$1(modifier, data) {\n modifier.setFormat('tablecellbackgroundcolor', data.backgroundcolor);\n modifier.setFormat('tablecellbordercolor', data.bordercolor);\n modifier.setFormat('tablecellborderstyle', data.borderstyle);\n modifier.setFormat('tablecellborderwidth', addPxSuffix(data.borderwidth));\n };\n\n var applyStyleData$1 = function applyStyleData$1(editor, cells, data) {\n var isSingleCell = cells.length === 1;\n each$2(cells, function (item) {\n var cellElm = item.element;\n var modifier = isSingleCell ? DomModifier.normal(editor, cellElm) : DomModifier.ifTruthy(editor, cellElm);\n var colModifier = item.column.map(function (col) {\n return isSingleCell ? DomModifier.normal(editor, col) : DomModifier.ifTruthy(editor, col);\n }).getOr(modifier);\n updateSimpleProps$1(modifier, colModifier, data);\n\n if (hasAdvancedCellTab(editor)) {\n updateAdvancedProps$1(modifier, data);\n }\n\n if (isSingleCell) {\n unApplyAlign(editor, cellElm);\n unApplyVAlign(editor, cellElm);\n }\n\n if (data.halign) {\n applyAlign(editor, cellElm, data.halign);\n }\n\n if (data.valign) {\n applyVAlign(editor, cellElm, data.valign);\n }\n });\n };\n\n var applyStructureData$1 = function applyStructureData$1(editor, data) {\n editor.execCommand('mceTableCellType', false, {\n type: data.celltype,\n no_events: true\n });\n };\n\n var applyCellData = function applyCellData(editor, cells, oldData, data) {\n var modifiedData = filter$1(data, function (value, key) {\n return oldData[key] !== value;\n });\n\n if (size(modifiedData) > 0 && cells.length >= 1) {\n table(cells[0]).each(function (table) {\n var selectedCells = getSelectedCells(table, cells);\n var styleModified = size(filter$1(modifiedData, function (_value, key) {\n return key !== 'scope' && key !== 'celltype';\n })) > 0;\n var structureModified = has$1(modifiedData, 'celltype');\n\n if (styleModified || has$1(modifiedData, 'scope')) {\n applyStyleData$1(editor, selectedCells, data);\n }\n\n if (structureModified) {\n applyStructureData$1(editor, data);\n }\n\n fireTableModified(editor, table.dom, {\n structure: structureModified,\n style: styleModified\n });\n });\n }\n };\n\n var onSubmitCellForm = function onSubmitCellForm(editor, cells, oldData, api) {\n var data = api.getData();\n api.close();\n editor.undoManager.transact(function () {\n applyCellData(editor, cells, oldData, data);\n editor.focus();\n });\n };\n\n var getData = function getData(editor, cells) {\n var cellsData = table(cells[0]).map(function (table) {\n return map$1(getSelectedCells(table, cells), function (item) {\n return extractDataFromCellElement(editor, item.element, hasAdvancedCellTab(editor), item.column);\n });\n });\n return getSharedValues(cellsData.getOrDie());\n };\n\n var open$2 = function open$2(editor, selections) {\n var cells = getCellsFromSelection(selections);\n\n if (cells.length === 0) {\n return;\n }\n\n var data = getData(editor, cells);\n var dialogTabPanel = {\n type: 'tabpanel',\n tabs: [{\n title: 'General',\n name: 'general',\n items: getItems$2(editor)\n }, getAdvancedTab(editor, 'cell')]\n };\n var dialogPanel = {\n type: 'panel',\n items: [{\n type: 'grid',\n columns: 2,\n items: getItems$2(editor)\n }]\n };\n editor.windowManager.open({\n title: 'Cell Properties',\n size: 'normal',\n body: hasAdvancedCellTab(editor) ? dialogTabPanel : dialogPanel,\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n initialData: data,\n onSubmit: curry(onSubmitCellForm, editor, cells, data)\n });\n };\n\n var getClassList = function getClassList(editor) {\n var classes = buildListItems(getRowClassList(editor));\n\n if (classes.length > 0) {\n return Optional.some({\n name: 'class',\n type: 'listbox',\n label: 'Class',\n items: classes\n });\n }\n\n return Optional.none();\n };\n\n var formChildren = [{\n type: 'listbox',\n name: 'type',\n label: 'Row type',\n items: [{\n text: 'Header',\n value: 'header'\n }, {\n text: 'Body',\n value: 'body'\n }, {\n text: 'Footer',\n value: 'footer'\n }]\n }, {\n type: 'listbox',\n name: 'align',\n label: 'Alignment',\n items: [{\n text: 'None',\n value: ''\n }, {\n text: 'Left',\n value: 'left'\n }, {\n text: 'Center',\n value: 'center'\n }, {\n text: 'Right',\n value: 'right'\n }]\n }, {\n label: 'Height',\n name: 'height',\n type: 'input'\n }];\n\n var getItems$1 = function getItems$1(editor) {\n return formChildren.concat(getClassList(editor).toArray());\n };\n\n var updateSimpleProps = function updateSimpleProps(modifier, data) {\n modifier.setAttrib('class', data.class);\n modifier.setStyle('height', addPxSuffix(data.height));\n };\n\n var updateAdvancedProps = function updateAdvancedProps(modifier, data) {\n modifier.setStyle('background-color', data.backgroundcolor);\n modifier.setStyle('border-color', data.bordercolor);\n modifier.setStyle('border-style', data.borderstyle);\n };\n\n var applyStyleData = function applyStyleData(editor, rows, data, oldData) {\n var isSingleRow = rows.length === 1;\n each$2(rows, function (rowElm) {\n var modifier = isSingleRow ? DomModifier.normal(editor, rowElm) : DomModifier.ifTruthy(editor, rowElm);\n updateSimpleProps(modifier, data);\n\n if (hasAdvancedRowTab(editor)) {\n updateAdvancedProps(modifier, data);\n }\n\n if (data.align !== oldData.align) {\n unApplyAlign(editor, rowElm);\n applyAlign(editor, rowElm, data.align);\n }\n });\n };\n\n var applyStructureData = function applyStructureData(editor, data) {\n editor.execCommand('mceTableRowType', false, {\n type: data.type,\n no_events: true\n });\n };\n\n var applyRowData = function applyRowData(editor, rows, oldData, data) {\n var modifiedData = filter$1(data, function (value, key) {\n return oldData[key] !== value;\n });\n\n if (size(modifiedData) > 0) {\n var typeModified_1 = has$1(modifiedData, 'type');\n var styleModified_1 = typeModified_1 ? size(modifiedData) > 1 : true;\n\n if (styleModified_1) {\n applyStyleData(editor, rows, data, oldData);\n }\n\n if (typeModified_1) {\n applyStructureData(editor, data);\n }\n\n table(SugarElement.fromDom(rows[0])).each(function (table) {\n return fireTableModified(editor, table.dom, {\n structure: typeModified_1,\n style: styleModified_1\n });\n });\n }\n };\n\n var onSubmitRowForm = function onSubmitRowForm(editor, rows, oldData, api) {\n var data = api.getData();\n api.close();\n editor.undoManager.transact(function () {\n applyRowData(editor, rows, oldData, data);\n editor.focus();\n });\n };\n\n var open$1 = function open$1(editor) {\n var rows = getRowsFromSelection(getSelectionStart(editor), ephemera.selected);\n\n if (rows.length === 0) {\n return;\n }\n\n var rowsData = map$1(rows, function (rowElm) {\n return extractDataFromRowElement(editor, rowElm.dom, hasAdvancedRowTab(editor));\n });\n var data = getSharedValues(rowsData);\n var dialogTabPanel = {\n type: 'tabpanel',\n tabs: [{\n title: 'General',\n name: 'general',\n items: getItems$1(editor)\n }, getAdvancedTab(editor, 'row')]\n };\n var dialogPanel = {\n type: 'panel',\n items: [{\n type: 'grid',\n columns: 2,\n items: getItems$1(editor)\n }]\n };\n editor.windowManager.open({\n title: 'Row Properties',\n size: 'normal',\n body: hasAdvancedRowTab(editor) ? dialogTabPanel : dialogPanel,\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n initialData: data,\n onSubmit: curry(onSubmitRowForm, editor, map$1(rows, function (r) {\n return r.dom;\n }), data)\n });\n };\n\n var getItems = function getItems(editor, classes, insertNewTable) {\n var rowColCountItems = !insertNewTable ? [] : [{\n type: 'input',\n name: 'cols',\n label: 'Cols',\n inputMode: 'numeric'\n }, {\n type: 'input',\n name: 'rows',\n label: 'Rows',\n inputMode: 'numeric'\n }];\n var alwaysItems = [{\n type: 'input',\n name: 'width',\n label: 'Width'\n }, {\n type: 'input',\n name: 'height',\n label: 'Height'\n }];\n var appearanceItems = hasAppearanceOptions(editor) ? [{\n type: 'input',\n name: 'cellspacing',\n label: 'Cell spacing',\n inputMode: 'numeric'\n }, {\n type: 'input',\n name: 'cellpadding',\n label: 'Cell padding',\n inputMode: 'numeric'\n }, {\n type: 'input',\n name: 'border',\n label: 'Border width'\n }, {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n }] : [];\n var alignmentItem = [{\n type: 'listbox',\n name: 'align',\n label: 'Alignment',\n items: [{\n text: 'None',\n value: ''\n }, {\n text: 'Left',\n value: 'left'\n }, {\n text: 'Center',\n value: 'center'\n }, {\n text: 'Right',\n value: 'right'\n }]\n }];\n var classListItem = classes.length > 0 ? [{\n type: 'listbox',\n name: 'class',\n label: 'Class',\n items: classes\n }] : [];\n return rowColCountItems.concat(alwaysItems).concat(appearanceItems).concat(alignmentItem).concat(classListItem);\n };\n\n var styleTDTH = function styleTDTH(dom, elm, name, value) {\n if (elm.tagName === 'TD' || elm.tagName === 'TH') {\n if (isString(name)) {\n dom.setStyle(elm, name, value);\n } else {\n dom.setStyle(elm, name);\n }\n } else {\n if (elm.children) {\n for (var i = 0; i < elm.children.length; i++) {\n styleTDTH(dom, elm.children[i], name, value);\n }\n }\n }\n };\n\n var applyDataToElement = function applyDataToElement(editor, tableElm, data) {\n var dom = editor.dom;\n var attrs = {};\n var styles = {};\n attrs.class = data.class;\n styles.height = addPxSuffix(data.height);\n\n if (dom.getAttrib(tableElm, 'width') && !shouldStyleWithCss(editor)) {\n attrs.width = removePxSuffix(data.width);\n } else {\n styles.width = addPxSuffix(data.width);\n }\n\n if (shouldStyleWithCss(editor)) {\n styles['border-width'] = addPxSuffix(data.border);\n styles['border-spacing'] = addPxSuffix(data.cellspacing);\n } else {\n attrs.border = data.border;\n attrs.cellpadding = data.cellpadding;\n attrs.cellspacing = data.cellspacing;\n }\n\n if (shouldStyleWithCss(editor) && tableElm.children) {\n for (var i = 0; i < tableElm.children.length; i++) {\n styleTDTH(dom, tableElm.children[i], {\n 'border-width': addPxSuffix(data.border),\n 'padding': addPxSuffix(data.cellpadding)\n });\n\n if (hasAdvancedTableTab(editor)) {\n styleTDTH(dom, tableElm.children[i], {\n 'border-color': data.bordercolor\n });\n }\n }\n }\n\n if (hasAdvancedTableTab(editor)) {\n styles['background-color'] = data.backgroundcolor;\n styles['border-color'] = data.bordercolor;\n styles['border-style'] = data.borderstyle;\n }\n\n attrs.style = dom.serializeStyle(_assign(_assign({}, getDefaultStyles(editor)), styles));\n dom.setAttribs(tableElm, _assign(_assign({}, getDefaultAttributes(editor)), attrs));\n };\n\n var onSubmitTableForm = function onSubmitTableForm(editor, tableElm, oldData, api) {\n var dom = editor.dom;\n var data = api.getData();\n var modifiedData = filter$1(data, function (value, key) {\n return oldData[key] !== value;\n });\n api.close();\n\n if (data.class === '') {\n delete data.class;\n }\n\n editor.undoManager.transact(function () {\n if (!tableElm) {\n var cols = parseInt(data.cols, 10) || 1;\n var rows = parseInt(data.rows, 10) || 1;\n tableElm = insert(editor, cols, rows, 0, 0);\n }\n\n if (size(modifiedData) > 0) {\n applyDataToElement(editor, tableElm, data);\n var captionElm = dom.select('caption', tableElm)[0];\n\n if (captionElm && !data.caption || !captionElm && data.caption) {\n editor.execCommand('mceTableToggleCaption');\n }\n\n if (data.align === '') {\n unApplyAlign(editor, tableElm);\n } else {\n applyAlign(editor, tableElm, data.align);\n }\n }\n\n editor.focus();\n editor.addVisual();\n\n if (size(modifiedData) > 0) {\n var captionModified = has$1(modifiedData, 'caption');\n var styleModified = captionModified ? size(modifiedData) > 1 : true;\n fireTableModified(editor, tableElm, {\n structure: captionModified,\n style: styleModified\n });\n }\n });\n };\n\n var open = function open(editor, insertNewTable) {\n var dom = editor.dom;\n var tableElm;\n var data = extractDataFromSettings(editor, hasAdvancedTableTab(editor));\n\n if (insertNewTable === false) {\n tableElm = dom.getParent(editor.selection.getStart(), 'table', editor.getBody());\n\n if (tableElm) {\n data = extractDataFromTableElement(editor, tableElm, hasAdvancedTableTab(editor));\n } else {\n if (hasAdvancedTableTab(editor)) {\n data.borderstyle = '';\n data.bordercolor = '';\n data.backgroundcolor = '';\n }\n }\n } else {\n data.cols = '1';\n data.rows = '1';\n\n if (hasAdvancedTableTab(editor)) {\n data.borderstyle = '';\n data.bordercolor = '';\n data.backgroundcolor = '';\n }\n }\n\n var classes = buildListItems(getTableClassList(editor));\n\n if (classes.length > 0) {\n if (data.class) {\n data.class = data.class.replace(/\\s*mce\\-item\\-table\\s*/g, '');\n }\n }\n\n var generalPanel = {\n type: 'grid',\n columns: 2,\n items: getItems(editor, classes, insertNewTable)\n };\n\n var nonAdvancedForm = function nonAdvancedForm() {\n return {\n type: 'panel',\n items: [generalPanel]\n };\n };\n\n var advancedForm = function advancedForm() {\n return {\n type: 'tabpanel',\n tabs: [{\n title: 'General',\n name: 'general',\n items: [generalPanel]\n }, getAdvancedTab(editor, 'table')]\n };\n };\n\n var dialogBody = hasAdvancedTableTab(editor) ? advancedForm() : nonAdvancedForm();\n editor.windowManager.open({\n title: 'Table Properties',\n size: 'normal',\n body: dialogBody,\n onSubmit: curry(onSubmitTableForm, editor, tableElm, data),\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n initialData: data\n });\n };\n\n var getSelectionStartCellOrCaption = function getSelectionStartCellOrCaption(editor) {\n return getSelectionCellOrCaption(getSelectionStart(editor), getIsRoot(editor));\n };\n\n var getSelectionStartCell = function getSelectionStartCell(editor) {\n return getSelectionCell(getSelectionStart(editor), getIsRoot(editor));\n };\n\n var registerCommands = function registerCommands(editor, actions, cellSelection, selections, clipboard) {\n var isRoot = getIsRoot(editor);\n\n var eraseTable = function eraseTable() {\n return getSelectionStartCellOrCaption(editor).each(function (cellOrCaption) {\n table(cellOrCaption, isRoot).filter(not(isRoot)).each(function (table) {\n var cursor = SugarElement.fromText('');\n after$5(table, cursor);\n remove$5(table);\n\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n } else {\n var rng = editor.dom.createRng();\n rng.setStart(cursor.dom, 0);\n rng.setEnd(cursor.dom, 0);\n editor.selection.setRng(rng);\n editor.nodeChanged();\n }\n });\n });\n };\n\n var setSizingMode = function setSizingMode(sizing) {\n return getSelectionStartCellOrCaption(editor).each(function (cellOrCaption) {\n var isForcedSizing = isResponsiveForced(editor) || isPixelsForced(editor) || isPercentagesForced(editor);\n\n if (!isForcedSizing) {\n table(cellOrCaption, isRoot).each(function (table) {\n if (sizing === 'relative' && !isPercentSizing(table)) {\n enforcePercentage(table);\n } else if (sizing === 'fixed' && !isPixelSizing(table)) {\n enforcePixels(table);\n } else if (sizing === 'responsive' && !isNoneSizing(table)) {\n enforceNone(table);\n }\n\n removeDataStyle(table);\n fireTableModified(editor, table.dom, structureModified);\n });\n }\n });\n };\n\n var getTableFromCell = function getTableFromCell(cell) {\n return table(cell, isRoot);\n };\n\n var performActionOnSelection = function performActionOnSelection(action) {\n return getSelectionStartCell(editor).bind(function (cell) {\n return getTableFromCell(cell).map(function (table) {\n return action(table, cell);\n });\n });\n };\n\n var toggleTableClass = function toggleTableClass(_ui, clazz) {\n performActionOnSelection(function (table) {\n editor.formatter.toggle('tableclass', {\n value: clazz\n }, table.dom);\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n\n var toggleTableCellClass = function toggleTableCellClass(_ui, clazz) {\n performActionOnSelection(function (table) {\n var selectedCells = getCellsFromSelection(selections);\n var allHaveClass = forall(selectedCells, function (cell) {\n return editor.formatter.match('tablecellclass', {\n value: clazz\n }, cell.dom);\n });\n var formatterAction = allHaveClass ? editor.formatter.remove : editor.formatter.apply;\n each$2(selectedCells, function (cell) {\n return formatterAction('tablecellclass', {\n value: clazz\n }, cell.dom);\n });\n fireTableModified(editor, table.dom, styleModified);\n });\n };\n\n var toggleCaption = function toggleCaption() {\n getSelectionStartCellOrCaption(editor).each(function (cellOrCaption) {\n table(cellOrCaption, isRoot).each(function (table) {\n child$1(table, 'caption').fold(function () {\n var caption = SugarElement.fromTag('caption');\n append$1(caption, SugarElement.fromText('Caption'));\n appendAt(table, caption, 0);\n editor.selection.setCursorLocation(caption.dom, 0);\n }, function (caption) {\n if (isTag('caption')(cellOrCaption)) {\n one('td', table).each(function (td) {\n return editor.selection.setCursorLocation(td.dom, 0);\n });\n }\n\n remove$5(caption);\n });\n fireTableModified(editor, table.dom, structureModified);\n });\n });\n };\n\n var postExecute = function postExecute(_data) {\n editor.focus();\n };\n\n var actOnSelection = function actOnSelection(execute, noEvents) {\n if (noEvents === void 0) {\n noEvents = false;\n }\n\n return performActionOnSelection(function (table, startCell) {\n var targets = forMenu(selections, table, startCell);\n execute(table, targets, noEvents).each(postExecute);\n });\n };\n\n var copyRowSelection = function copyRowSelection() {\n return performActionOnSelection(function (table, startCell) {\n var targets = forMenu(selections, table, startCell);\n var generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), Optional.none());\n return copyRows(table, targets, generators);\n });\n };\n\n var copyColSelection = function copyColSelection() {\n return performActionOnSelection(function (table, startCell) {\n var targets = forMenu(selections, table, startCell);\n return copyCols(table, targets);\n });\n };\n\n var pasteOnSelection = function pasteOnSelection(execute, getRows) {\n return getRows().each(function (rows) {\n var clonedRows = map$1(rows, function (row) {\n return deep(row);\n });\n performActionOnSelection(function (table, startCell) {\n var generators = paste$1(SugarElement.fromDom(editor.getDoc()));\n var targets = pasteRows(selections, startCell, clonedRows, generators);\n execute(table, targets).each(postExecute);\n });\n });\n };\n\n var actOnType = function actOnType(getAction) {\n return function (_ui, args) {\n return get$c(args, 'type').each(function (type) {\n actOnSelection(getAction(type), args.no_events);\n });\n };\n };\n\n each$1({\n mceTableSplitCells: function mceTableSplitCells() {\n return actOnSelection(actions.unmergeCells);\n },\n mceTableMergeCells: function mceTableMergeCells() {\n return actOnSelection(actions.mergeCells);\n },\n mceTableInsertRowBefore: function mceTableInsertRowBefore() {\n return actOnSelection(actions.insertRowsBefore);\n },\n mceTableInsertRowAfter: function mceTableInsertRowAfter() {\n return actOnSelection(actions.insertRowsAfter);\n },\n mceTableInsertColBefore: function mceTableInsertColBefore() {\n return actOnSelection(actions.insertColumnsBefore);\n },\n mceTableInsertColAfter: function mceTableInsertColAfter() {\n return actOnSelection(actions.insertColumnsAfter);\n },\n mceTableDeleteCol: function mceTableDeleteCol() {\n return actOnSelection(actions.deleteColumn);\n },\n mceTableDeleteRow: function mceTableDeleteRow() {\n return actOnSelection(actions.deleteRow);\n },\n mceTableCutCol: function mceTableCutCol() {\n return copyColSelection().each(function (selection) {\n clipboard.setColumns(selection);\n actOnSelection(actions.deleteColumn);\n });\n },\n mceTableCutRow: function mceTableCutRow() {\n return copyRowSelection().each(function (selection) {\n clipboard.setRows(selection);\n actOnSelection(actions.deleteRow);\n });\n },\n mceTableCopyCol: function mceTableCopyCol() {\n return copyColSelection().each(function (selection) {\n return clipboard.setColumns(selection);\n });\n },\n mceTableCopyRow: function mceTableCopyRow() {\n return copyRowSelection().each(function (selection) {\n return clipboard.setRows(selection);\n });\n },\n mceTablePasteColBefore: function mceTablePasteColBefore() {\n return pasteOnSelection(actions.pasteColsBefore, clipboard.getColumns);\n },\n mceTablePasteColAfter: function mceTablePasteColAfter() {\n return pasteOnSelection(actions.pasteColsAfter, clipboard.getColumns);\n },\n mceTablePasteRowBefore: function mceTablePasteRowBefore() {\n return pasteOnSelection(actions.pasteRowsBefore, clipboard.getRows);\n },\n mceTablePasteRowAfter: function mceTablePasteRowAfter() {\n return pasteOnSelection(actions.pasteRowsAfter, clipboard.getRows);\n },\n mceTableDelete: eraseTable,\n mceTableCellToggleClass: toggleTableCellClass,\n mceTableToggleClass: toggleTableClass,\n mceTableToggleCaption: toggleCaption,\n mceTableSizingMode: function mceTableSizingMode(_ui, sizing) {\n return setSizingMode(sizing);\n },\n mceTableCellType: actOnType(function (type) {\n return type === 'th' ? actions.makeCellsHeader : actions.unmakeCellsHeader;\n }),\n mceTableColType: actOnType(function (type) {\n return type === 'th' ? actions.makeColumnsHeader : actions.unmakeColumnsHeader;\n }),\n mceTableRowType: actOnType(function (type) {\n switch (type) {\n case 'header':\n return actions.makeRowsHeader;\n\n case 'footer':\n return actions.makeRowsFooter;\n\n default:\n return actions.makeRowsBody;\n }\n })\n }, function (func, name) {\n return editor.addCommand(name, func);\n });\n each$1({\n mceTableProps: curry(open, editor, false),\n mceTableRowProps: curry(open$1, editor),\n mceTableCellProps: curry(open$2, editor, selections)\n }, function (func, name) {\n return editor.addCommand(name, function () {\n return func();\n });\n });\n editor.addCommand('mceInsertTable', function (_ui, args) {\n if (isObject(args) && keys(args).length > 0) {\n insertTableWithDataValidation(editor, args.rows, args.columns, args.options, 'Invalid values for mceInsertTable - rows and columns values are required to insert a table.');\n } else {\n open(editor, true);\n }\n });\n editor.addCommand('mceTableApplyCellStyle', function (_ui, args) {\n var getFormatName = function getFormatName(style) {\n return 'tablecell' + style.toLowerCase().replace('-', '');\n };\n\n if (!isObject(args)) {\n return;\n }\n\n var cells = getCellsFromSelection(selections);\n\n if (cells.length === 0) {\n return;\n }\n\n var validArgs = filter$1(args, function (value, style) {\n return editor.formatter.has(getFormatName(style)) && isString(value);\n });\n\n if (isEmpty(validArgs)) {\n return;\n }\n\n each$1(validArgs, function (value, style) {\n each$2(cells, function (cell) {\n DomModifier.normal(editor, cell.dom).setFormat(getFormatName(style), value);\n });\n });\n getTableFromCell(cells[0]).each(function (table) {\n return fireTableModified(editor, table.dom, styleModified);\n });\n });\n };\n\n var registerQueryCommands = function registerQueryCommands(editor, actions, selections) {\n var isRoot = getIsRoot(editor);\n\n var lookupOnSelection = function lookupOnSelection(action) {\n return getSelectionCell(getSelectionStart(editor)).bind(function (cell) {\n return table(cell, isRoot).map(function (table) {\n var targets = forMenu(selections, table, cell);\n return action(table, targets);\n });\n }).getOr('');\n };\n\n each$1({\n mceTableRowType: function mceTableRowType() {\n return lookupOnSelection(actions.getTableRowType);\n },\n mceTableCellType: function mceTableCellType() {\n return lookupOnSelection(actions.getTableCellType);\n },\n mceTableColType: function mceTableColType() {\n return lookupOnSelection(actions.getTableColType);\n }\n }, function (func, name) {\n return editor.addQueryValueHandler(name, func);\n });\n };\n\n var Clipboard = function Clipboard() {\n var rows = value();\n var cols = value();\n return {\n getRows: rows.get,\n setRows: function setRows(r) {\n r.fold(rows.clear, rows.set);\n cols.clear();\n },\n clearRows: rows.clear,\n getColumns: cols.get,\n setColumns: function setColumns(c) {\n c.fold(cols.clear, cols.set);\n rows.clear();\n },\n clearColumns: cols.clear\n };\n };\n\n var genericBase = {\n remove_similar: true,\n inherit: false\n };\n\n var cellBase = _assign({\n selector: 'td,th'\n }, genericBase);\n\n var cellFormats = {\n tablecellbackgroundcolor: _assign({\n styles: {\n backgroundColor: '%value'\n }\n }, cellBase),\n tablecellverticalalign: _assign({\n styles: {\n 'vertical-align': '%value'\n }\n }, cellBase),\n tablecellbordercolor: _assign({\n styles: {\n borderColor: '%value'\n }\n }, cellBase),\n tablecellclass: _assign({\n classes: ['%value']\n }, cellBase),\n tableclass: _assign({\n selector: 'table',\n classes: ['%value']\n }, genericBase),\n tablecellborderstyle: _assign({\n styles: {\n borderStyle: '%value'\n }\n }, cellBase),\n tablecellborderwidth: _assign({\n styles: {\n borderWidth: '%value'\n }\n }, cellBase)\n };\n\n var registerFormats = function registerFormats(editor) {\n editor.formatter.register(cellFormats);\n };\n\n var adt$5 = Adt.generate([{\n none: ['current']\n }, {\n first: ['current']\n }, {\n middle: ['current', 'target']\n }, {\n last: ['current']\n }]);\n\n var none = function none(current) {\n if (current === void 0) {\n current = undefined;\n }\n\n return adt$5.none(current);\n };\n\n var CellLocation = _assign(_assign({}, adt$5), {\n none: none\n });\n\n var walk = function walk(all, current, index, direction, isEligible) {\n if (isEligible === void 0) {\n isEligible = always;\n }\n\n var forwards = direction === 1;\n\n if (!forwards && index <= 0) {\n return CellLocation.first(all[0]);\n } else if (forwards && index >= all.length - 1) {\n return CellLocation.last(all[all.length - 1]);\n } else {\n var newIndex = index + direction;\n var elem = all[newIndex];\n return isEligible(elem) ? CellLocation.middle(current, elem) : walk(all, current, newIndex, direction, isEligible);\n }\n };\n\n var detect$1 = function detect$1(current, isRoot) {\n return table(current, isRoot).bind(function (table) {\n var all = cells$1(table);\n var index = findIndex(all, function (x) {\n return eq$1(current, x);\n });\n return index.map(function (index) {\n return {\n index: index,\n all: all\n };\n });\n });\n };\n\n var next = function next(current, isEligible, isRoot) {\n var detection = detect$1(current, isRoot);\n return detection.fold(function () {\n return CellLocation.none(current);\n }, function (info) {\n return walk(info.all, current, info.index, 1, isEligible);\n });\n };\n\n var prev = function prev(current, isEligible, isRoot) {\n var detection = detect$1(current, isRoot);\n return detection.fold(function () {\n return CellLocation.none();\n }, function (info) {\n return walk(info.all, current, info.index, -1, isEligible);\n });\n };\n\n var create$2 = function create$2(start, soffset, finish, foffset) {\n return {\n start: start,\n soffset: soffset,\n finish: finish,\n foffset: foffset\n };\n };\n\n var SimRange = {\n create: create$2\n };\n var adt$4 = Adt.generate([{\n before: ['element']\n }, {\n on: ['element', 'offset']\n }, {\n after: ['element']\n }]);\n\n var cata$1 = function cata$1(subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n\n var getStart$1 = function getStart$1(situ) {\n return situ.fold(identity, identity, identity);\n };\n\n var before$2 = adt$4.before;\n var on = adt$4.on;\n var after$3 = adt$4.after;\n var Situ = {\n before: before$2,\n on: on,\n after: after$3,\n cata: cata$1,\n getStart: getStart$1\n };\n var adt$3 = Adt.generate([{\n domRange: ['rng']\n }, {\n relative: ['startSitu', 'finishSitu']\n }, {\n exact: ['start', 'soffset', 'finish', 'foffset']\n }]);\n\n var exactFromRange = function exactFromRange(simRange) {\n return adt$3.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n };\n\n var getStart = function getStart(selection) {\n return selection.match({\n domRange: function domRange(rng) {\n return SugarElement.fromDom(rng.startContainer);\n },\n relative: function relative(startSitu, _finishSitu) {\n return Situ.getStart(startSitu);\n },\n exact: function exact(start, _soffset, _finish, _foffset) {\n return start;\n }\n });\n };\n\n var domRange = adt$3.domRange;\n var relative = adt$3.relative;\n var exact = adt$3.exact;\n\n var getWin = function getWin(selection) {\n var start = getStart(selection);\n return defaultView(start);\n };\n\n var range = SimRange.create;\n var SimSelection = {\n domRange: domRange,\n relative: relative,\n exact: exact,\n exactFromRange: exactFromRange,\n getWin: getWin,\n range: range\n };\n\n var selectNode = function selectNode(win, element) {\n var rng = win.document.createRange();\n rng.selectNode(element.dom);\n return rng;\n };\n\n var selectNodeContents = function selectNodeContents(win, element) {\n var rng = win.document.createRange();\n selectNodeContentsUsing(rng, element);\n return rng;\n };\n\n var selectNodeContentsUsing = function selectNodeContentsUsing(rng, element) {\n return rng.selectNodeContents(element.dom);\n };\n\n var setStart = function setStart(rng, situ) {\n situ.fold(function (e) {\n rng.setStartBefore(e.dom);\n }, function (e, o) {\n rng.setStart(e.dom, o);\n }, function (e) {\n rng.setStartAfter(e.dom);\n });\n };\n\n var setFinish = function setFinish(rng, situ) {\n situ.fold(function (e) {\n rng.setEndBefore(e.dom);\n }, function (e, o) {\n rng.setEnd(e.dom, o);\n }, function (e) {\n rng.setEndAfter(e.dom);\n });\n };\n\n var relativeToNative = function relativeToNative(win, startSitu, finishSitu) {\n var range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n\n var exactToNative = function exactToNative(win, start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n\n var toRect = function toRect(rect) {\n return {\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n };\n };\n\n var getFirstRect$1 = function getFirstRect$1(rng) {\n var rects = rng.getClientRects();\n var rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n var adt$2 = Adt.generate([{\n ltr: ['start', 'soffset', 'finish', 'foffset']\n }, {\n rtl: ['start', 'soffset', 'finish', 'foffset']\n }]);\n\n var fromRange = function fromRange(win, type, range) {\n return type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n };\n\n var getRanges = function getRanges(win, selection) {\n return selection.match({\n domRange: function domRange(rng) {\n return {\n ltr: constant(rng),\n rtl: Optional.none\n };\n },\n relative: function relative(startSitu, finishSitu) {\n return {\n ltr: cached(function () {\n return relativeToNative(win, startSitu, finishSitu);\n }),\n rtl: cached(function () {\n return Optional.some(relativeToNative(win, finishSitu, startSitu));\n })\n };\n },\n exact: function exact(start, soffset, finish, foffset) {\n return {\n ltr: cached(function () {\n return exactToNative(win, start, soffset, finish, foffset);\n }),\n rtl: cached(function () {\n return Optional.some(exactToNative(win, finish, foffset, start, soffset));\n })\n };\n }\n });\n };\n\n var doDiagnose = function doDiagnose(win, ranges) {\n var rng = ranges.ltr();\n\n if (rng.collapsed) {\n var reversed = ranges.rtl().filter(function (rev) {\n return rev.collapsed === false;\n });\n return reversed.map(function (rev) {\n return adt$2.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$2.ltr, rng);\n });\n } else {\n return fromRange(win, adt$2.ltr, rng);\n }\n };\n\n var diagnose = function diagnose(win, selection) {\n var ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n\n var asLtrRange = function asLtrRange(win, selection) {\n var diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: function ltr(start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: function rtl(start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n\n adt$2.ltr;\n adt$2.rtl;\n\n var searchForPoint = function searchForPoint(rectForOffset, x, y, maxX, length) {\n if (length === 0) {\n return 0;\n } else if (x === maxX) {\n return length - 1;\n }\n\n var xDelta = maxX;\n\n for (var i = 1; i < length; i++) {\n var rect = rectForOffset(i);\n var curDeltaX = Math.abs(x - rect.left);\n\n if (y <= rect.bottom) {\n if (y < rect.top || curDeltaX > xDelta) {\n return i - 1;\n } else {\n xDelta = curDeltaX;\n }\n }\n }\n\n return 0;\n };\n\n var inRect = function inRect(rect, x, y) {\n return x >= rect.left && x <= rect.right && y >= rect.top && y <= rect.bottom;\n };\n\n var locateOffset = function locateOffset(doc, textnode, x, y, rect) {\n var rangeForOffset = function rangeForOffset(o) {\n var r = doc.dom.createRange();\n r.setStart(textnode.dom, o);\n r.collapse(true);\n return r;\n };\n\n var rectForOffset = function rectForOffset(o) {\n var r = rangeForOffset(o);\n return r.getBoundingClientRect();\n };\n\n var length = get$9(textnode).length;\n var offset = searchForPoint(rectForOffset, x, y, rect.right, length);\n return rangeForOffset(offset);\n };\n\n var locate$1 = function locate$1(doc, node, x, y) {\n var r = doc.dom.createRange();\n r.selectNode(node.dom);\n var rects = r.getClientRects();\n var foundRect = findMap(rects, function (rect) {\n return inRect(rect, x, y) ? Optional.some(rect) : Optional.none();\n });\n return foundRect.map(function (rect) {\n return locateOffset(doc, node, x, y, rect);\n });\n };\n\n var searchInChildren = function searchInChildren(doc, node, x, y) {\n var r = doc.dom.createRange();\n var nodes = children$3(node);\n return findMap(nodes, function (n) {\n r.selectNode(n.dom);\n return inRect(r.getBoundingClientRect(), x, y) ? locateNode(doc, n, x, y) : Optional.none();\n });\n };\n\n var locateNode = function locateNode(doc, node, x, y) {\n return isText(node) ? locate$1(doc, node, x, y) : searchInChildren(doc, node, x, y);\n };\n\n var locate = function locate(doc, node, x, y) {\n var r = doc.dom.createRange();\n r.selectNode(node.dom);\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locateNode(doc, node, boundedX, boundedY);\n };\n\n var COLLAPSE_TO_LEFT = true;\n var COLLAPSE_TO_RIGHT = false;\n\n var getCollapseDirection = function getCollapseDirection(rect, x) {\n return x - rect.left < rect.right - x ? COLLAPSE_TO_LEFT : COLLAPSE_TO_RIGHT;\n };\n\n var createCollapsedNode = function createCollapsedNode(doc, target, collapseDirection) {\n var r = doc.dom.createRange();\n r.selectNode(target.dom);\n r.collapse(collapseDirection);\n return r;\n };\n\n var locateInElement = function locateInElement(doc, node, x) {\n var cursorRange = doc.dom.createRange();\n cursorRange.selectNode(node.dom);\n var rect = cursorRange.getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n var f = collapseDirection === COLLAPSE_TO_LEFT ? first : last$1;\n return f(node).map(function (target) {\n return createCollapsedNode(doc, target, collapseDirection);\n });\n };\n\n var locateInEmpty = function locateInEmpty(doc, node, x) {\n var rect = node.dom.getBoundingClientRect();\n var collapseDirection = getCollapseDirection(rect, x);\n return Optional.some(createCollapsedNode(doc, node, collapseDirection));\n };\n\n var search = function search(doc, node, x) {\n var f = children$3(node).length === 0 ? locateInEmpty : locateInElement;\n return f(doc, node, x);\n };\n\n var caretPositionFromPoint = function caretPositionFromPoint(doc, x, y) {\n var _a, _b;\n\n return Optional.from((_b = (_a = doc.dom).caretPositionFromPoint) === null || _b === void 0 ? void 0 : _b.call(_a, x, y)).bind(function (pos) {\n if (pos.offsetNode === null) {\n return Optional.none();\n }\n\n var r = doc.dom.createRange();\n r.setStart(pos.offsetNode, pos.offset);\n r.collapse();\n return Optional.some(r);\n });\n };\n\n var caretRangeFromPoint = function caretRangeFromPoint(doc, x, y) {\n var _a, _b;\n\n return Optional.from((_b = (_a = doc.dom).caretRangeFromPoint) === null || _b === void 0 ? void 0 : _b.call(_a, x, y));\n };\n\n var searchTextNodes = function searchTextNodes(doc, node, x, y) {\n var r = doc.dom.createRange();\n r.selectNode(node.dom);\n var rect = r.getBoundingClientRect();\n var boundedX = Math.max(rect.left, Math.min(rect.right, x));\n var boundedY = Math.max(rect.top, Math.min(rect.bottom, y));\n return locate(doc, node, boundedX, boundedY);\n };\n\n var searchFromPoint = function searchFromPoint(doc, x, y) {\n return SugarElement.fromPoint(doc, x, y).bind(function (elem) {\n var fallback = function fallback() {\n return search(doc, elem, x);\n };\n\n return children$3(elem).length === 0 ? fallback() : searchTextNodes(doc, elem, x, y).orThunk(fallback);\n });\n };\n\n var availableSearch = function () {\n if (document.caretPositionFromPoint) {\n return caretPositionFromPoint;\n } else if (document.caretRangeFromPoint) {\n return caretRangeFromPoint;\n } else {\n return searchFromPoint;\n }\n }();\n\n var fromPoint = function fromPoint(win, x, y) {\n var doc = SugarElement.fromDom(win.document);\n return availableSearch(doc, x, y).map(function (rng) {\n return SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset);\n });\n };\n\n var beforeSpecial = function beforeSpecial(element, offset) {\n var name$1 = name(element);\n\n if ('input' === name$1) {\n return Situ.after(element);\n } else if (!contains$2(['br', 'img'], name$1)) {\n return Situ.on(element, offset);\n } else {\n return offset === 0 ? Situ.before(element) : Situ.after(element);\n }\n };\n\n var preprocessRelative = function preprocessRelative(startSitu, finishSitu) {\n var start = startSitu.fold(Situ.before, beforeSpecial, Situ.after);\n var finish = finishSitu.fold(Situ.before, beforeSpecial, Situ.after);\n return SimSelection.relative(start, finish);\n };\n\n var preprocessExact = function preprocessExact(start, soffset, finish, foffset) {\n var startSitu = beforeSpecial(start, soffset);\n var finishSitu = beforeSpecial(finish, foffset);\n return SimSelection.relative(startSitu, finishSitu);\n };\n\n var preprocess = function preprocess(selection) {\n return selection.match({\n domRange: function domRange(rng) {\n var start = SugarElement.fromDom(rng.startContainer);\n var finish = SugarElement.fromDom(rng.endContainer);\n return preprocessExact(start, rng.startOffset, finish, rng.endOffset);\n },\n relative: preprocessRelative,\n exact: preprocessExact\n });\n };\n\n var makeRange = function makeRange(start, soffset, finish, foffset) {\n var doc = owner(start);\n var rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n\n var after$2 = function after$2(start, soffset, finish, foffset) {\n var r = makeRange(start, soffset, finish, foffset);\n var same = eq$1(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n var getNativeSelection = function getNativeSelection(win) {\n return Optional.from(win.getSelection());\n };\n\n var doSetNativeRange = function doSetNativeRange(win, rng) {\n getNativeSelection(win).each(function (selection) {\n selection.removeAllRanges();\n selection.addRange(rng);\n });\n };\n\n var doSetRange = function doSetRange(win, start, soffset, finish, foffset) {\n var rng = exactToNative(win, start, soffset, finish, foffset);\n doSetNativeRange(win, rng);\n };\n\n var setLegacyRtlRange = function setLegacyRtlRange(win, selection, start, soffset, finish, foffset) {\n selection.collapse(start.dom, soffset);\n selection.extend(finish.dom, foffset);\n };\n\n var setRangeFromRelative = function setRangeFromRelative(win, relative) {\n return diagnose(win, relative).match({\n ltr: function ltr(start, soffset, finish, foffset) {\n doSetRange(win, start, soffset, finish, foffset);\n },\n rtl: function rtl(start, soffset, finish, foffset) {\n getNativeSelection(win).each(function (selection) {\n if (selection.setBaseAndExtent) {\n selection.setBaseAndExtent(start.dom, soffset, finish.dom, foffset);\n } else if (selection.extend) {\n try {\n setLegacyRtlRange(win, selection, start, soffset, finish, foffset);\n } catch (e) {\n doSetRange(win, finish, foffset, start, soffset);\n }\n } else {\n doSetRange(win, finish, foffset, start, soffset);\n }\n });\n }\n });\n };\n\n var setExact = function setExact(win, start, soffset, finish, foffset) {\n var relative = preprocessExact(start, soffset, finish, foffset);\n setRangeFromRelative(win, relative);\n };\n\n var setRelative = function setRelative(win, startSitu, finishSitu) {\n var relative = preprocessRelative(startSitu, finishSitu);\n setRangeFromRelative(win, relative);\n };\n\n var toNative = function toNative(selection) {\n var win = SimSelection.getWin(selection).dom;\n\n var getDomRange = function getDomRange(start, soffset, finish, foffset) {\n return exactToNative(win, start, soffset, finish, foffset);\n };\n\n var filtered = preprocess(selection);\n return diagnose(win, filtered).match({\n ltr: getDomRange,\n rtl: getDomRange\n });\n };\n\n var readRange = function readRange(selection) {\n if (selection.rangeCount > 0) {\n var firstRng = selection.getRangeAt(0);\n var lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n\n var doGetExact = function doGetExact(selection) {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n var anchor = SugarElement.fromDom(selection.anchorNode);\n var focus_1 = SugarElement.fromDom(selection.focusNode);\n return after$2(anchor, selection.anchorOffset, focus_1, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus_1, selection.focusOffset)) : readRange(selection);\n }\n };\n\n var setToElement = function setToElement(win, element, selectNodeContents$1) {\n if (selectNodeContents$1 === void 0) {\n selectNodeContents$1 = true;\n }\n\n var rngGetter = selectNodeContents$1 ? selectNodeContents : selectNode;\n var rng = rngGetter(win, element);\n doSetNativeRange(win, rng);\n };\n\n var getExact = function getExact(win) {\n return getNativeSelection(win).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n\n var get$1 = function get$1(win) {\n return getExact(win).map(function (range) {\n return SimSelection.exact(range.start, range.soffset, range.finish, range.foffset);\n });\n };\n\n var getFirstRect = function getFirstRect(win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n\n var getAtPoint = function getAtPoint(win, x, y) {\n return fromPoint(win, x, y);\n };\n\n var clear = function clear(win) {\n getNativeSelection(win).each(function (selection) {\n return selection.removeAllRanges();\n });\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var forward = function forward(editor, isRoot, cell) {\n return go$1(editor, isRoot, next(cell, isEditable$1));\n };\n\n var backward = function backward(editor, isRoot, cell) {\n return go$1(editor, isRoot, prev(cell, isEditable$1));\n };\n\n var getCellFirstCursorPosition = function getCellFirstCursorPosition(editor, cell) {\n var selection = SimSelection.exact(cell, 0, cell, 0);\n return toNative(selection);\n };\n\n var go$1 = function go$1(editor, isRoot, cell) {\n return cell.fold(Optional.none, Optional.none, function (current, next) {\n return first(next).map(function (cell) {\n return getCellFirstCursorPosition(editor, cell);\n });\n }, function (current) {\n editor.execCommand('mceTableInsertRowAfter');\n return forward(editor, isRoot, current);\n });\n };\n\n var rootElements = ['table', 'li', 'dl'];\n\n var handle$1 = function handle$1(event, editor, cellSelection) {\n if (event.keyCode === global$1.TAB) {\n var body_1 = getBody(editor);\n\n var isRoot_1 = function isRoot_1(element) {\n var name$1 = name(element);\n return eq$1(element, body_1) || contains$2(rootElements, name$1);\n };\n\n var rng = editor.selection.getRng();\n var container = SugarElement.fromDom(event.shiftKey ? rng.startContainer : rng.endContainer);\n cell(container, isRoot_1).each(function (cell) {\n event.preventDefault();\n table(cell, isRoot_1).each(cellSelection.clear);\n editor.selection.collapse(event.shiftKey);\n var navigation = event.shiftKey ? backward : forward;\n var rng = navigation(editor, isRoot_1, cell);\n rng.each(function (range) {\n editor.selection.setRng(range);\n });\n });\n }\n };\n\n var create$1 = function create$1(selection, kill) {\n return {\n selection: selection,\n kill: kill\n };\n };\n\n var Response = {\n create: create$1\n };\n\n var create = function create(start, soffset, finish, foffset) {\n return {\n start: Situ.on(start, soffset),\n finish: Situ.on(finish, foffset)\n };\n };\n\n var Situs = {\n create: create\n };\n\n var convertToRange = function convertToRange(win, selection) {\n var rng = asLtrRange(win, selection);\n return SimRange.create(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset);\n };\n\n var makeSitus = Situs.create;\n\n var sync = function sync(container, isRoot, start, soffset, finish, foffset, selectRange) {\n if (!(eq$1(start, finish) && soffset === foffset)) {\n return closest$1(start, 'td,th', isRoot).bind(function (s) {\n return closest$1(finish, 'td,th', isRoot).bind(function (f) {\n return detect(container, isRoot, s, f, selectRange);\n });\n });\n } else {\n return Optional.none();\n }\n };\n\n var detect = function detect(container, isRoot, start, finish, selectRange) {\n if (!eq$1(start, finish)) {\n return identify(start, finish, isRoot).bind(function (cellSel) {\n var boxes = cellSel.boxes.getOr([]);\n\n if (boxes.length > 1) {\n selectRange(container, boxes, cellSel.start, cellSel.finish);\n return Optional.some(Response.create(Optional.some(makeSitus(start, 0, start, getEnd(start))), true));\n } else {\n return Optional.none();\n }\n });\n } else {\n return Optional.none();\n }\n };\n\n var update = function update(rows, columns, container, selected, annotations) {\n var updateSelection = function updateSelection(newSels) {\n annotations.clearBeforeUpdate(container);\n annotations.selectRange(container, newSels.boxes, newSels.start, newSels.finish);\n return newSels.boxes;\n };\n\n return shiftSelection(selected, rows, columns, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(updateSelection);\n };\n\n var traverse = function traverse(item, mode) {\n return {\n item: item,\n mode: mode\n };\n };\n\n var backtrack = function backtrack(universe, item, _direction, transition) {\n if (transition === void 0) {\n transition = sidestep;\n }\n\n return universe.property().parent(item).map(function (p) {\n return traverse(p, transition);\n });\n };\n\n var sidestep = function sidestep(universe, item, direction, transition) {\n if (transition === void 0) {\n transition = advance;\n }\n\n return direction.sibling(universe, item).map(function (p) {\n return traverse(p, transition);\n });\n };\n\n var advance = function advance(universe, item, direction, transition) {\n if (transition === void 0) {\n transition = advance;\n }\n\n var children = universe.property().children(item);\n var result = direction.first(children);\n return result.map(function (r) {\n return traverse(r, transition);\n });\n };\n\n var successors = [{\n current: backtrack,\n next: sidestep,\n fallback: Optional.none()\n }, {\n current: sidestep,\n next: advance,\n fallback: Optional.some(backtrack)\n }, {\n current: advance,\n next: advance,\n fallback: Optional.some(sidestep)\n }];\n\n var go = function go(universe, item, mode, direction, rules) {\n if (rules === void 0) {\n rules = successors;\n }\n\n var ruleOpt = find$1(rules, function (succ) {\n return succ.current === mode;\n });\n return ruleOpt.bind(function (rule) {\n return rule.current(universe, item, direction, rule.next).orThunk(function () {\n return rule.fallback.bind(function (fb) {\n return go(universe, item, fb, direction);\n });\n });\n });\n };\n\n var left$1 = function left$1() {\n var sibling = function sibling(universe, item) {\n return universe.query().prevSibling(item);\n };\n\n var first = function first(children) {\n return children.length > 0 ? Optional.some(children[children.length - 1]) : Optional.none();\n };\n\n return {\n sibling: sibling,\n first: first\n };\n };\n\n var right$1 = function right$1() {\n var sibling = function sibling(universe, item) {\n return universe.query().nextSibling(item);\n };\n\n var first = function first(children) {\n return children.length > 0 ? Optional.some(children[0]) : Optional.none();\n };\n\n return {\n sibling: sibling,\n first: first\n };\n };\n\n var Walkers = {\n left: left$1,\n right: right$1\n };\n\n var hone = function hone(universe, item, predicate, mode, direction, isRoot) {\n var next = go(universe, item, mode, direction);\n return next.bind(function (n) {\n if (isRoot(n.item)) {\n return Optional.none();\n } else {\n return predicate(n.item) ? Optional.some(n.item) : hone(universe, n.item, predicate, n.mode, direction, isRoot);\n }\n });\n };\n\n var left = function left(universe, item, predicate, isRoot) {\n return hone(universe, item, predicate, sidestep, Walkers.left(), isRoot);\n };\n\n var right = function right(universe, item, predicate, isRoot) {\n return hone(universe, item, predicate, sidestep, Walkers.right(), isRoot);\n };\n\n var isLeaf = function isLeaf(universe) {\n return function (element) {\n return universe.property().children(element).length === 0;\n };\n };\n\n var before$1 = function before$1(universe, item, isRoot) {\n return seekLeft$1(universe, item, isLeaf(universe), isRoot);\n };\n\n var after$1 = function after$1(universe, item, isRoot) {\n return seekRight$1(universe, item, isLeaf(universe), isRoot);\n };\n\n var seekLeft$1 = left;\n var seekRight$1 = right;\n var universe = DomUniverse();\n\n var before = function before(element, isRoot) {\n return before$1(universe, element, isRoot);\n };\n\n var after = function after(element, isRoot) {\n return after$1(universe, element, isRoot);\n };\n\n var seekLeft = function seekLeft(element, predicate, isRoot) {\n return seekLeft$1(universe, element, predicate, isRoot);\n };\n\n var seekRight = function seekRight(element, predicate, isRoot) {\n return seekRight$1(universe, element, predicate, isRoot);\n };\n\n var ancestor = function ancestor(scope, predicate, isRoot) {\n return ancestor$2(scope, predicate, isRoot).isSome();\n };\n\n var adt$1 = Adt.generate([{\n none: ['message']\n }, {\n success: []\n }, {\n failedUp: ['cell']\n }, {\n failedDown: ['cell']\n }]);\n\n var isOverlapping = function isOverlapping(bridge, before, after) {\n var beforeBounds = bridge.getRect(before);\n var afterBounds = bridge.getRect(after);\n return afterBounds.right > beforeBounds.left && afterBounds.left < beforeBounds.right;\n };\n\n var isRow = function isRow(elem) {\n return closest$1(elem, 'tr');\n };\n\n var verify = function verify(bridge, before, beforeOffset, after, afterOffset, failure, isRoot) {\n return closest$1(after, 'td,th', isRoot).bind(function (afterCell) {\n return closest$1(before, 'td,th', isRoot).map(function (beforeCell) {\n if (!eq$1(afterCell, beforeCell)) {\n return sharedOne(isRow, [afterCell, beforeCell]).fold(function () {\n return isOverlapping(bridge, beforeCell, afterCell) ? adt$1.success() : failure(beforeCell);\n }, function (_sharedRow) {\n return failure(beforeCell);\n });\n } else {\n return eq$1(after, afterCell) && getEnd(afterCell) === afterOffset ? failure(beforeCell) : adt$1.none('in same cell');\n }\n });\n }).getOr(adt$1.none('default'));\n };\n\n var cata = function cata(subject, onNone, onSuccess, onFailedUp, onFailedDown) {\n return subject.fold(onNone, onSuccess, onFailedUp, onFailedDown);\n };\n\n var BeforeAfter = _assign(_assign({}, adt$1), {\n verify: verify,\n cata: cata\n });\n\n var inParent = function inParent(parent, children, element, index) {\n return {\n parent: parent,\n children: children,\n element: element,\n index: index\n };\n };\n\n var indexInParent = function indexInParent(element) {\n return parent(element).bind(function (parent) {\n var children = children$3(parent);\n return indexOf(children, element).map(function (index) {\n return inParent(parent, children, element, index);\n });\n });\n };\n\n var indexOf = function indexOf(elements, element) {\n return findIndex(elements, curry(eq$1, element));\n };\n\n var isBr = function isBr(elem) {\n return name(elem) === 'br';\n };\n\n var gatherer = function gatherer(cand, gather, isRoot) {\n return gather(cand, isRoot).bind(function (target) {\n return isText(target) && get$9(target).trim().length === 0 ? gatherer(target, gather, isRoot) : Optional.some(target);\n });\n };\n\n var handleBr = function handleBr(isRoot, element, direction) {\n return direction.traverse(element).orThunk(function () {\n return gatherer(element, direction.gather, isRoot);\n }).map(direction.relative);\n };\n\n var findBr = function findBr(element, offset) {\n return child$3(element, offset).filter(isBr).orThunk(function () {\n return child$3(element, offset - 1).filter(isBr);\n });\n };\n\n var handleParent = function handleParent(isRoot, element, offset, direction) {\n return findBr(element, offset).bind(function (br) {\n return direction.traverse(br).fold(function () {\n return gatherer(br, direction.gather, isRoot).map(direction.relative);\n }, function (adjacent) {\n return indexInParent(adjacent).map(function (info) {\n return Situ.on(info.parent, info.index);\n });\n });\n });\n };\n\n var tryBr = function tryBr(isRoot, element, offset, direction) {\n var target = isBr(element) ? handleBr(isRoot, element, direction) : handleParent(isRoot, element, offset, direction);\n return target.map(function (tgt) {\n return {\n start: tgt,\n finish: tgt\n };\n });\n };\n\n var process = function process(analysis) {\n return BeforeAfter.cata(analysis, function (_message) {\n return Optional.none();\n }, function () {\n return Optional.none();\n }, function (cell) {\n return Optional.some(point(cell, 0));\n }, function (cell) {\n return Optional.some(point(cell, getEnd(cell)));\n });\n };\n\n var moveDown = function moveDown(caret, amount) {\n return {\n left: caret.left,\n top: caret.top + amount,\n right: caret.right,\n bottom: caret.bottom + amount\n };\n };\n\n var moveUp = function moveUp(caret, amount) {\n return {\n left: caret.left,\n top: caret.top - amount,\n right: caret.right,\n bottom: caret.bottom - amount\n };\n };\n\n var translate = function translate(caret, xDelta, yDelta) {\n return {\n left: caret.left + xDelta,\n top: caret.top + yDelta,\n right: caret.right + xDelta,\n bottom: caret.bottom + yDelta\n };\n };\n\n var getTop = function getTop(caret) {\n return caret.top;\n };\n\n var getBottom = function getBottom(caret) {\n return caret.bottom;\n };\n\n var getPartialBox = function getPartialBox(bridge, element, offset) {\n if (offset >= 0 && offset < getEnd(element)) {\n return bridge.getRangedRect(element, offset, element, offset + 1);\n } else if (offset > 0) {\n return bridge.getRangedRect(element, offset - 1, element, offset);\n }\n\n return Optional.none();\n };\n\n var toCaret = function toCaret(rect) {\n return {\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom\n };\n };\n\n var getElemBox = function getElemBox(bridge, element) {\n return Optional.some(bridge.getRect(element));\n };\n\n var getBoxAt = function getBoxAt(bridge, element, offset) {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return getPartialBox(bridge, element, offset).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n\n var getEntireBox = function getEntireBox(bridge, element) {\n if (isElement(element)) {\n return getElemBox(bridge, element).map(toCaret);\n } else if (isText(element)) {\n return bridge.getRangedRect(element, 0, element, getEnd(element)).map(toCaret);\n } else {\n return Optional.none();\n }\n };\n\n var JUMP_SIZE = 5;\n var NUM_RETRIES = 100;\n var adt = Adt.generate([{\n none: []\n }, {\n retry: ['caret']\n }]);\n\n var isOutside = function isOutside(caret, box) {\n return caret.left < box.left || Math.abs(box.right - caret.left) < 1 || caret.left > box.right;\n };\n\n var inOutsideBlock = function inOutsideBlock(bridge, element, caret) {\n return closest$2(element, isBlock).fold(never, function (cell) {\n return getEntireBox(bridge, cell).exists(function (box) {\n return isOutside(caret, box);\n });\n });\n };\n\n var adjustDown = function adjustDown(bridge, element, guessBox, original, caret) {\n var lowerCaret = moveDown(caret, JUMP_SIZE);\n\n if (Math.abs(guessBox.bottom - original.bottom) < 1) {\n return adt.retry(lowerCaret);\n } else if (guessBox.top > caret.bottom) {\n return adt.retry(lowerCaret);\n } else if (guessBox.top === caret.bottom) {\n return adt.retry(moveDown(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt.retry(translate(lowerCaret, JUMP_SIZE, 0)) : adt.none();\n }\n };\n\n var adjustUp = function adjustUp(bridge, element, guessBox, original, caret) {\n var higherCaret = moveUp(caret, JUMP_SIZE);\n\n if (Math.abs(guessBox.top - original.top) < 1) {\n return adt.retry(higherCaret);\n } else if (guessBox.bottom < caret.top) {\n return adt.retry(higherCaret);\n } else if (guessBox.bottom === caret.top) {\n return adt.retry(moveUp(caret, 1));\n } else {\n return inOutsideBlock(bridge, element, caret) ? adt.retry(translate(higherCaret, JUMP_SIZE, 0)) : adt.none();\n }\n };\n\n var upMovement = {\n point: getTop,\n adjuster: adjustUp,\n move: moveUp,\n gather: before\n };\n var downMovement = {\n point: getBottom,\n adjuster: adjustDown,\n move: moveDown,\n gather: after\n };\n\n var isAtTable = function isAtTable(bridge, x, y) {\n return bridge.elementFromPoint(x, y).filter(function (elm) {\n return name(elm) === 'table';\n }).isSome();\n };\n\n var adjustForTable = function adjustForTable(bridge, movement, original, caret, numRetries) {\n return adjustTil(bridge, movement, original, movement.move(caret, JUMP_SIZE), numRetries);\n };\n\n var adjustTil = function adjustTil(bridge, movement, original, caret, numRetries) {\n if (numRetries === 0) {\n return Optional.some(caret);\n }\n\n if (isAtTable(bridge, caret.left, movement.point(caret))) {\n return adjustForTable(bridge, movement, original, caret, numRetries - 1);\n }\n\n return bridge.situsFromPoint(caret.left, movement.point(caret)).bind(function (guess) {\n return guess.start.fold(Optional.none, function (element) {\n return getEntireBox(bridge, element).bind(function (guessBox) {\n return movement.adjuster(bridge, element, guessBox, original, caret).fold(Optional.none, function (newCaret) {\n return adjustTil(bridge, movement, original, newCaret, numRetries - 1);\n });\n }).orThunk(function () {\n return Optional.some(caret);\n });\n }, Optional.none);\n });\n };\n\n var ieTryDown = function ieTryDown(bridge, caret) {\n return bridge.situsFromPoint(caret.left, caret.bottom + JUMP_SIZE);\n };\n\n var ieTryUp = function ieTryUp(bridge, caret) {\n return bridge.situsFromPoint(caret.left, caret.top - JUMP_SIZE);\n };\n\n var checkScroll = function checkScroll(movement, adjusted, bridge) {\n if (movement.point(adjusted) > bridge.getInnerHeight()) {\n return Optional.some(movement.point(adjusted) - bridge.getInnerHeight());\n } else if (movement.point(adjusted) < 0) {\n return Optional.some(-movement.point(adjusted));\n } else {\n return Optional.none();\n }\n };\n\n var retry = function retry(movement, bridge, caret) {\n var moved = movement.move(caret, JUMP_SIZE);\n var adjusted = adjustTil(bridge, movement, caret, moved, NUM_RETRIES).getOr(moved);\n return checkScroll(movement, adjusted, bridge).fold(function () {\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted));\n }, function (delta) {\n bridge.scrollBy(0, delta);\n return bridge.situsFromPoint(adjusted.left, movement.point(adjusted) - delta);\n });\n };\n\n var Retries = {\n tryUp: curry(retry, upMovement),\n tryDown: curry(retry, downMovement),\n ieTryUp: ieTryUp,\n ieTryDown: ieTryDown,\n getJumpSize: constant(JUMP_SIZE)\n };\n var MAX_RETRIES = 20;\n\n var findSpot = function findSpot(bridge, isRoot, direction) {\n return bridge.getSelection().bind(function (sel) {\n return tryBr(isRoot, sel.finish, sel.foffset, direction).fold(function () {\n return Optional.some(point(sel.finish, sel.foffset));\n }, function (brNeighbour) {\n var range = bridge.fromSitus(brNeighbour);\n var analysis = BeforeAfter.verify(bridge, sel.finish, sel.foffset, range.finish, range.foffset, direction.failure, isRoot);\n return process(analysis);\n });\n });\n };\n\n var scan = function scan(bridge, isRoot, element, offset, direction, numRetries) {\n if (numRetries === 0) {\n return Optional.none();\n }\n\n return tryCursor(bridge, isRoot, element, offset, direction).bind(function (situs) {\n var range = bridge.fromSitus(situs);\n var analysis = BeforeAfter.verify(bridge, element, offset, range.finish, range.foffset, direction.failure, isRoot);\n return BeforeAfter.cata(analysis, function () {\n return Optional.none();\n }, function () {\n return Optional.some(situs);\n }, function (cell) {\n if (eq$1(element, cell) && offset === 0) {\n return tryAgain(bridge, element, offset, moveUp, direction);\n } else {\n return scan(bridge, isRoot, cell, 0, direction, numRetries - 1);\n }\n }, function (cell) {\n if (eq$1(element, cell) && offset === getEnd(cell)) {\n return tryAgain(bridge, element, offset, moveDown, direction);\n } else {\n return scan(bridge, isRoot, cell, getEnd(cell), direction, numRetries - 1);\n }\n });\n });\n };\n\n var tryAgain = function tryAgain(bridge, element, offset, move, direction) {\n return getBoxAt(bridge, element, offset).bind(function (box) {\n return tryAt(bridge, direction, move(box, Retries.getJumpSize()));\n });\n };\n\n var tryAt = function tryAt(bridge, direction, box) {\n var browser = detect$3().browser;\n\n if (browser.isChrome() || browser.isSafari() || browser.isFirefox() || browser.isEdge()) {\n return direction.otherRetry(bridge, box);\n } else if (browser.isIE()) {\n return direction.ieRetry(bridge, box);\n } else {\n return Optional.none();\n }\n };\n\n var tryCursor = function tryCursor(bridge, isRoot, element, offset, direction) {\n return getBoxAt(bridge, element, offset).bind(function (box) {\n return tryAt(bridge, direction, box);\n });\n };\n\n var handle = function handle(bridge, isRoot, direction) {\n return findSpot(bridge, isRoot, direction).bind(function (spot) {\n return scan(bridge, isRoot, spot.element, spot.offset, direction, MAX_RETRIES).map(bridge.fromSitus);\n });\n };\n\n var inSameTable = function inSameTable(elem, table) {\n return ancestor(elem, function (e) {\n return parent(e).exists(function (p) {\n return eq$1(p, table);\n });\n });\n };\n\n var simulate = function simulate(bridge, isRoot, direction, initial, anchor) {\n return closest$1(initial, 'td,th', isRoot).bind(function (start) {\n return closest$1(start, 'table', isRoot).bind(function (table) {\n if (!inSameTable(anchor, table)) {\n return Optional.none();\n }\n\n return handle(bridge, isRoot, direction).bind(function (range) {\n return closest$1(range.finish, 'td,th', isRoot).map(function (finish) {\n return {\n start: start,\n finish: finish,\n range: range\n };\n });\n });\n });\n });\n };\n\n var navigate = function navigate(bridge, isRoot, direction, initial, anchor, precheck) {\n if (detect$3().browser.isIE()) {\n return Optional.none();\n } else {\n return precheck(initial, isRoot).orThunk(function () {\n return simulate(bridge, isRoot, direction, initial, anchor).map(function (info) {\n var range = info.range;\n return Response.create(Optional.some(makeSitus(range.start, range.soffset, range.finish, range.foffset)), true);\n });\n });\n }\n };\n\n var firstUpCheck = function firstUpCheck(initial, isRoot) {\n return closest$1(initial, 'tr', isRoot).bind(function (startRow) {\n return closest$1(startRow, 'table', isRoot).bind(function (table) {\n var rows = descendants(table, 'tr');\n\n if (eq$1(startRow, rows[0])) {\n return seekLeft(table, function (element) {\n return last$1(element).isSome();\n }, isRoot).map(function (last) {\n var lastOffset = getEnd(last);\n return Response.create(Optional.some(makeSitus(last, lastOffset, last, lastOffset)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n\n var lastDownCheck = function lastDownCheck(initial, isRoot) {\n return closest$1(initial, 'tr', isRoot).bind(function (startRow) {\n return closest$1(startRow, 'table', isRoot).bind(function (table) {\n var rows = descendants(table, 'tr');\n\n if (eq$1(startRow, rows[rows.length - 1])) {\n return seekRight(table, function (element) {\n return first(element).isSome();\n }, isRoot).map(function (first) {\n return Response.create(Optional.some(makeSitus(first, 0, first, 0)), true);\n });\n } else {\n return Optional.none();\n }\n });\n });\n };\n\n var select = function select(bridge, container, isRoot, direction, initial, anchor, selectRange) {\n return simulate(bridge, isRoot, direction, initial, anchor).bind(function (info) {\n return detect(container, isRoot, info.start, info.finish, selectRange);\n });\n };\n\n var findCell = function findCell(target, isRoot) {\n return closest$1(target, 'td,th', isRoot);\n };\n\n var MouseSelection = function MouseSelection(bridge, container, isRoot, annotations) {\n var cursor = value();\n var clearstate = cursor.clear;\n\n var applySelection = function applySelection(event) {\n cursor.on(function (start) {\n annotations.clearBeforeUpdate(container);\n findCell(event.target, isRoot).each(function (finish) {\n identify(start, finish, isRoot).each(function (cellSel) {\n var boxes = cellSel.boxes.getOr([]);\n\n if (boxes.length === 1) {\n var singleCell = boxes[0];\n var isNonEditableCell = getRaw(singleCell) === 'false';\n var isCellClosestContentEditable = is(closest(event.target), singleCell, eq$1);\n\n if (isNonEditableCell && isCellClosestContentEditable) {\n annotations.selectRange(container, boxes, singleCell, singleCell);\n bridge.selectContents(singleCell);\n }\n } else if (boxes.length > 1) {\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n }\n });\n });\n });\n };\n\n var mousedown = function mousedown(event) {\n annotations.clear(container);\n findCell(event.target, isRoot).each(cursor.set);\n };\n\n var mouseover = function mouseover(event) {\n applySelection(event);\n };\n\n var mouseup = function mouseup(event) {\n applySelection(event);\n clearstate();\n };\n\n return {\n clearstate: clearstate,\n mousedown: mousedown,\n mouseover: mouseover,\n mouseup: mouseup\n };\n };\n\n var down = {\n traverse: nextSibling,\n gather: after,\n relative: Situ.before,\n otherRetry: Retries.tryDown,\n ieRetry: Retries.ieTryDown,\n failure: BeforeAfter.failedDown\n };\n var up = {\n traverse: prevSibling,\n gather: before,\n relative: Situ.before,\n otherRetry: Retries.tryUp,\n ieRetry: Retries.ieTryUp,\n failure: BeforeAfter.failedUp\n };\n\n var isKey = function isKey(key) {\n return function (keycode) {\n return keycode === key;\n };\n };\n\n var isUp = isKey(38);\n var isDown = isKey(40);\n\n var isNavigation = function isNavigation(keycode) {\n return keycode >= 37 && keycode <= 40;\n };\n\n var ltr = {\n isBackward: isKey(37),\n isForward: isKey(39)\n };\n var rtl = {\n isBackward: isKey(39),\n isForward: isKey(37)\n };\n\n var get = function get(_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom : document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n\n var by = function by(x, y, _DOC) {\n var doc = _DOC !== undefined ? _DOC.dom : document;\n var win = doc.defaultView;\n\n if (win) {\n win.scrollBy(x, y);\n }\n };\n\n var WindowBridge = function WindowBridge(win) {\n var elementFromPoint = function elementFromPoint(x, y) {\n return SugarElement.fromPoint(SugarElement.fromDom(win.document), x, y);\n };\n\n var getRect = function getRect(element) {\n return element.dom.getBoundingClientRect();\n };\n\n var getRangedRect = function getRangedRect(start, soffset, finish, foffset) {\n var sel = SimSelection.exact(start, soffset, finish, foffset);\n return getFirstRect(win, sel);\n };\n\n var getSelection = function getSelection() {\n return get$1(win).map(function (exactAdt) {\n return convertToRange(win, exactAdt);\n });\n };\n\n var fromSitus = function fromSitus(situs) {\n var relative = SimSelection.relative(situs.start, situs.finish);\n return convertToRange(win, relative);\n };\n\n var situsFromPoint = function situsFromPoint(x, y) {\n return getAtPoint(win, x, y).map(function (exact) {\n return Situs.create(exact.start, exact.soffset, exact.finish, exact.foffset);\n });\n };\n\n var clearSelection = function clearSelection() {\n clear(win);\n };\n\n var collapseSelection = function collapseSelection(toStart) {\n if (toStart === void 0) {\n toStart = false;\n }\n\n get$1(win).each(function (sel) {\n return sel.fold(function (rng) {\n return rng.collapse(toStart);\n }, function (startSitu, finishSitu) {\n var situ = toStart ? startSitu : finishSitu;\n setRelative(win, situ, situ);\n }, function (start, soffset, finish, foffset) {\n var node = toStart ? start : finish;\n var offset = toStart ? soffset : foffset;\n setExact(win, node, offset, node, offset);\n });\n });\n };\n\n var selectNode = function selectNode(element) {\n setToElement(win, element, false);\n };\n\n var selectContents = function selectContents(element) {\n setToElement(win, element);\n };\n\n var setSelection = function setSelection(sel) {\n setExact(win, sel.start, sel.soffset, sel.finish, sel.foffset);\n };\n\n var setRelativeSelection = function setRelativeSelection(start, finish) {\n setRelative(win, start, finish);\n };\n\n var getInnerHeight = function getInnerHeight() {\n return win.innerHeight;\n };\n\n var getScrollY = function getScrollY() {\n var pos = get(SugarElement.fromDom(win.document));\n return pos.top;\n };\n\n var scrollBy = function scrollBy(x, y) {\n by(x, y, SugarElement.fromDom(win.document));\n };\n\n return {\n elementFromPoint: elementFromPoint,\n getRect: getRect,\n getRangedRect: getRangedRect,\n getSelection: getSelection,\n fromSitus: fromSitus,\n situsFromPoint: situsFromPoint,\n clearSelection: clearSelection,\n collapseSelection: collapseSelection,\n setSelection: setSelection,\n setRelativeSelection: setRelativeSelection,\n selectNode: selectNode,\n selectContents: selectContents,\n getInnerHeight: getInnerHeight,\n getScrollY: getScrollY,\n scrollBy: scrollBy\n };\n };\n\n var rc = function rc(rows, cols) {\n return {\n rows: rows,\n cols: cols\n };\n };\n\n var mouse = function mouse(win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n var handlers = MouseSelection(bridge, container, isRoot, annotations);\n return {\n clearstate: handlers.clearstate,\n mousedown: handlers.mousedown,\n mouseover: handlers.mouseover,\n mouseup: handlers.mouseup\n };\n };\n\n var keyboard = function keyboard(win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n\n var clearToNavigate = function clearToNavigate() {\n annotations.clear(container);\n return Optional.none();\n };\n\n var keydown = function keydown(event, start, soffset, finish, foffset, direction) {\n var realEvent = event.raw;\n var keycode = realEvent.which;\n var shiftKey = realEvent.shiftKey === true;\n var handler = retrieve$1(container, annotations.selectedSelector).fold(function () {\n if (isNavigation(keycode) && !shiftKey) {\n annotations.clearBeforeUpdate(container);\n }\n\n if (isDown(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, down, finish, start, annotations.selectRange);\n } else if (isUp(keycode) && shiftKey) {\n return curry(select, bridge, container, isRoot, up, finish, start, annotations.selectRange);\n } else if (isDown(keycode)) {\n return curry(navigate, bridge, isRoot, down, finish, start, lastDownCheck);\n } else if (isUp(keycode)) {\n return curry(navigate, bridge, isRoot, up, finish, start, firstUpCheck);\n } else {\n return Optional.none;\n }\n }, function (selected) {\n var update$1 = function update$1(attempts) {\n return function () {\n var navigation = findMap(attempts, function (delta) {\n return update(delta.rows, delta.cols, container, selected, annotations);\n });\n return navigation.fold(function () {\n return getEdges(container, annotations.firstSelectedSelector, annotations.lastSelectedSelector).map(function (edges) {\n var relative = isDown(keycode) || direction.isForward(keycode) ? Situ.after : Situ.before;\n bridge.setRelativeSelection(Situ.on(edges.first, 0), relative(edges.table));\n annotations.clear(container);\n return Response.create(Optional.none(), true);\n });\n }, function (_) {\n return Optional.some(Response.create(Optional.none(), true));\n });\n };\n };\n\n if (isDown(keycode) && shiftKey) {\n return update$1([rc(+1, 0)]);\n } else if (isUp(keycode) && shiftKey) {\n return update$1([rc(-1, 0)]);\n } else if (direction.isBackward(keycode) && shiftKey) {\n return update$1([rc(0, -1), rc(-1, 0)]);\n } else if (direction.isForward(keycode) && shiftKey) {\n return update$1([rc(0, +1), rc(+1, 0)]);\n } else if (isNavigation(keycode) && !shiftKey) {\n return clearToNavigate;\n } else {\n return Optional.none;\n }\n });\n return handler();\n };\n\n var keyup = function keyup(event, start, soffset, finish, foffset) {\n return retrieve$1(container, annotations.selectedSelector).fold(function () {\n var realEvent = event.raw;\n var keycode = realEvent.which;\n var shiftKey = realEvent.shiftKey === true;\n\n if (!shiftKey) {\n return Optional.none();\n }\n\n if (isNavigation(keycode)) {\n return sync(container, isRoot, start, soffset, finish, foffset, annotations.selectRange);\n } else {\n return Optional.none();\n }\n }, Optional.none);\n };\n\n return {\n keydown: keydown,\n keyup: keyup\n };\n };\n\n var external = function external(win, container, isRoot, annotations) {\n var bridge = WindowBridge(win);\n return function (start, finish) {\n annotations.clearBeforeUpdate(container);\n identify(start, finish, isRoot).each(function (cellSel) {\n var boxes = cellSel.boxes.getOr([]);\n annotations.selectRange(container, boxes, cellSel.start, cellSel.finish);\n bridge.selectContents(finish);\n bridge.collapseSelection();\n });\n };\n };\n\n var remove = function remove(element, classes) {\n each$2(classes, function (x) {\n remove$2(element, x);\n });\n };\n\n var addClass = function addClass(clazz) {\n return function (element) {\n add(element, clazz);\n };\n };\n\n var removeClasses = function removeClasses(classes) {\n return function (element) {\n remove(element, classes);\n };\n };\n\n var byClass = function byClass(ephemera) {\n var addSelectionClass = addClass(ephemera.selected);\n var removeSelectionClasses = removeClasses([ephemera.selected, ephemera.lastSelected, ephemera.firstSelected]);\n\n var clear = function clear(container) {\n var sels = descendants(container, ephemera.selectedSelector);\n each$2(sels, removeSelectionClasses);\n };\n\n var selectRange = function selectRange(container, cells, start, finish) {\n clear(container);\n each$2(cells, addSelectionClass);\n add(start, ephemera.firstSelected);\n add(finish, ephemera.lastSelected);\n };\n\n return {\n clearBeforeUpdate: clear,\n clear: clear,\n selectRange: selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n\n var byAttr = function byAttr(ephemera, onSelection, onClear) {\n var removeSelectionAttributes = function removeSelectionAttributes(element) {\n remove$7(element, ephemera.selected);\n remove$7(element, ephemera.firstSelected);\n remove$7(element, ephemera.lastSelected);\n };\n\n var addSelectionAttribute = function addSelectionAttribute(element) {\n set$2(element, ephemera.selected, '1');\n };\n\n var clear = function clear(container) {\n clearBeforeUpdate(container);\n onClear();\n };\n\n var clearBeforeUpdate = function clearBeforeUpdate(container) {\n var sels = descendants(container, ephemera.selectedSelector + ',' + ephemera.firstSelectedSelector + ',' + ephemera.lastSelectedSelector);\n each$2(sels, removeSelectionAttributes);\n };\n\n var selectRange = function selectRange(container, cells, start, finish) {\n clear(container);\n each$2(cells, addSelectionAttribute);\n set$2(start, ephemera.firstSelected, '1');\n set$2(finish, ephemera.lastSelected, '1');\n onSelection(cells, start, finish);\n };\n\n return {\n clearBeforeUpdate: clearBeforeUpdate,\n clear: clear,\n selectRange: selectRange,\n selectedSelector: ephemera.selectedSelector,\n firstSelectedSelector: ephemera.firstSelectedSelector,\n lastSelectedSelector: ephemera.lastSelectedSelector\n };\n };\n\n var SelectionAnnotation = {\n byClass: byClass,\n byAttr: byAttr\n };\n\n var getUpOrLeftCells = function getUpOrLeftCells(grid, selectedCells) {\n var upGrid = grid.slice(0, selectedCells[selectedCells.length - 1].row + 1);\n var upDetails = toDetailList(upGrid);\n return bind$2(upDetails, function (detail) {\n var slicedCells = detail.cells.slice(0, selectedCells[selectedCells.length - 1].column + 1);\n return map$1(slicedCells, function (cell) {\n return cell.element;\n });\n });\n };\n\n var getDownOrRightCells = function getDownOrRightCells(grid, selectedCells) {\n var downGrid = grid.slice(selectedCells[0].row + selectedCells[0].rowspan - 1, grid.length);\n var downDetails = toDetailList(downGrid);\n return bind$2(downDetails, function (detail) {\n var slicedCells = detail.cells.slice(selectedCells[0].column + selectedCells[0].colspan - 1, detail.cells.length);\n return map$1(slicedCells, function (cell) {\n return cell.element;\n });\n });\n };\n\n var getOtherCells = function getOtherCells(table, target, generators) {\n var warehouse = Warehouse.fromTable(table);\n var details = onCells(warehouse, target);\n return details.map(function (selectedCells) {\n var grid = toGrid(warehouse, generators, false);\n var upOrLeftCells = getUpOrLeftCells(grid, selectedCells);\n var downOrRightCells = getDownOrRightCells(grid, selectedCells);\n return {\n upOrLeftCells: upOrLeftCells,\n downOrRightCells: downOrRightCells\n };\n });\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.Env');\n\n var hasInternalTarget = function hasInternalTarget(e) {\n return has(SugarElement.fromDom(e.target), 'ephox-snooker-resizer-bar') === false;\n };\n\n function CellSelection(editor, lazyResize, selectionTargets) {\n var onSelection = function onSelection(cells, start, finish) {\n selectionTargets.targets().each(function (targets) {\n var tableOpt = table(start);\n tableOpt.each(function (table) {\n var cloneFormats = getCloneElements(editor);\n var generators = cellOperations(noop, SugarElement.fromDom(editor.getDoc()), cloneFormats);\n var otherCells = getOtherCells(table, targets, generators);\n fireTableSelectionChange(editor, cells, start, finish, otherCells);\n });\n });\n };\n\n var onClear = function onClear() {\n return fireTableSelectionClear(editor);\n };\n\n var annotations = SelectionAnnotation.byAttr(ephemera, onSelection, onClear);\n editor.on('init', function (_e) {\n var win = editor.getWin();\n var body = getBody(editor);\n var isRoot = getIsRoot(editor);\n\n var syncSelection = function syncSelection() {\n var sel = editor.selection;\n var start = SugarElement.fromDom(sel.getStart());\n var end = SugarElement.fromDom(sel.getEnd());\n var shared = sharedOne(table, [start, end]);\n shared.fold(function () {\n return annotations.clear(body);\n }, noop);\n };\n\n var mouseHandlers = mouse(win, body, isRoot, annotations);\n var keyHandlers = keyboard(win, body, isRoot, annotations);\n var external$1 = external(win, body, isRoot, annotations);\n\n var hasShiftKey = function hasShiftKey(event) {\n return event.raw.shiftKey === true;\n };\n\n editor.on('TableSelectorChange', function (e) {\n return external$1(e.start, e.finish);\n });\n\n var handleResponse = function handleResponse(event, response) {\n if (!hasShiftKey(event)) {\n return;\n }\n\n if (response.kill) {\n event.kill();\n }\n\n response.selection.each(function (ns) {\n var relative = SimSelection.relative(ns.start, ns.finish);\n var rng = asLtrRange(win, relative);\n editor.selection.setRng(rng);\n });\n };\n\n var keyup = function keyup(event) {\n var wrappedEvent = fromRawEvent(event);\n\n if (wrappedEvent.raw.shiftKey && isNavigation(wrappedEvent.raw.which)) {\n var rng = editor.selection.getRng();\n var start = SugarElement.fromDom(rng.startContainer);\n var end = SugarElement.fromDom(rng.endContainer);\n keyHandlers.keyup(wrappedEvent, start, rng.startOffset, end, rng.endOffset).each(function (response) {\n handleResponse(wrappedEvent, response);\n });\n }\n };\n\n var keydown = function keydown(event) {\n var wrappedEvent = fromRawEvent(event);\n lazyResize().each(function (resize) {\n return resize.hideBars();\n });\n var rng = editor.selection.getRng();\n var start = SugarElement.fromDom(rng.startContainer);\n var end = SugarElement.fromDom(rng.endContainer);\n var direction = onDirection(ltr, rtl)(SugarElement.fromDom(editor.selection.getStart()));\n keyHandlers.keydown(wrappedEvent, start, rng.startOffset, end, rng.endOffset, direction).each(function (response) {\n handleResponse(wrappedEvent, response);\n });\n lazyResize().each(function (resize) {\n return resize.showBars();\n });\n };\n\n var isLeftMouse = function isLeftMouse(raw) {\n return raw.button === 0;\n };\n\n var isLeftButtonPressed = function isLeftButtonPressed(raw) {\n if (raw.buttons === undefined) {\n return true;\n }\n\n if (global.browser.isEdge() && raw.buttons === 0) {\n return true;\n }\n\n return (raw.buttons & 1) !== 0;\n };\n\n var dragStart = function dragStart(_e) {\n mouseHandlers.clearstate();\n };\n\n var mouseDown = function mouseDown(e) {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mousedown(fromRawEvent(e));\n }\n };\n\n var mouseOver = function mouseOver(e) {\n if (isLeftButtonPressed(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseover(fromRawEvent(e));\n }\n };\n\n var mouseUp = function mouseUp(e) {\n if (isLeftMouse(e) && hasInternalTarget(e)) {\n mouseHandlers.mouseup(fromRawEvent(e));\n }\n };\n\n var getDoubleTap = function getDoubleTap() {\n var lastTarget = Cell(SugarElement.fromDom(body));\n var lastTimeStamp = Cell(0);\n\n var touchEnd = function touchEnd(t) {\n var target = SugarElement.fromDom(t.target);\n\n if (name(target) === 'td' || name(target) === 'th') {\n var lT = lastTarget.get();\n var lTS = lastTimeStamp.get();\n\n if (eq$1(lT, target) && t.timeStamp - lTS < 300) {\n t.preventDefault();\n external$1(target, target);\n }\n }\n\n lastTarget.set(target);\n lastTimeStamp.set(t.timeStamp);\n };\n\n return {\n touchEnd: touchEnd\n };\n };\n\n var doubleTap = getDoubleTap();\n editor.on('dragstart', dragStart);\n editor.on('mousedown', mouseDown);\n editor.on('mouseover', mouseOver);\n editor.on('mouseup', mouseUp);\n editor.on('touchend', doubleTap.touchEnd);\n editor.on('keyup', keyup);\n editor.on('keydown', keydown);\n editor.on('NodeChange', syncSelection);\n });\n return {\n clear: annotations.clear\n };\n }\n\n var child = function child(scope, selector) {\n return child$1(scope, selector).isSome();\n };\n\n var getSelectionTargets = function getSelectionTargets(editor, selections) {\n var targets = Cell(Optional.none());\n var changeHandlers = Cell([]);\n var selectionDetails = Optional.none();\n var isCaption = isTag('caption');\n\n var isDisabledForSelection = function isDisabledForSelection(key) {\n return selectionDetails.forall(function (details) {\n return !details[key];\n });\n };\n\n var getStart = function getStart() {\n return getSelectionCellOrCaption(getSelectionStart(editor), getIsRoot(editor));\n };\n\n var getEnd = function getEnd() {\n return getSelectionCellOrCaption(getSelectionEnd(editor), getIsRoot(editor));\n };\n\n var findTargets = function findTargets() {\n return getStart().bind(function (startCellOrCaption) {\n return flatten(lift2(table(startCellOrCaption), getEnd().bind(table), function (startTable, endTable) {\n if (eq$1(startTable, endTable)) {\n if (isCaption(startCellOrCaption)) {\n return Optional.some(noMenu(startCellOrCaption));\n } else {\n return Optional.some(forMenu(selections, startTable, startCellOrCaption));\n }\n }\n\n return Optional.none();\n }));\n });\n };\n\n var getExtractedDetails = function getExtractedDetails(targets) {\n var tableOpt = table(targets.element);\n return tableOpt.map(function (table) {\n var warehouse = Warehouse.fromTable(table);\n var selectedCells = onCells(warehouse, targets).getOr([]);\n var locked = foldl(selectedCells, function (acc, cell) {\n if (cell.isLocked) {\n acc.onAny = true;\n\n if (cell.column === 0) {\n acc.onFirst = true;\n } else if (cell.column + cell.colspan >= warehouse.grid.columns) {\n acc.onLast = true;\n }\n }\n\n return acc;\n }, {\n onAny: false,\n onFirst: false,\n onLast: false\n });\n return {\n mergeable: onUnlockedMergable(warehouse, targets).isSome(),\n unmergeable: onUnlockedUnmergable(warehouse, targets).isSome(),\n locked: locked\n };\n });\n };\n\n var resetTargets = function resetTargets() {\n targets.set(cached(findTargets)());\n selectionDetails = targets.get().bind(getExtractedDetails);\n each$2(changeHandlers.get(), function (handler) {\n return handler();\n });\n };\n\n var setupHandler = function setupHandler(handler) {\n handler();\n changeHandlers.set(changeHandlers.get().concat([handler]));\n return function () {\n changeHandlers.set(filter$2(changeHandlers.get(), function (h) {\n return h !== handler;\n }));\n };\n };\n\n var onSetup = function onSetup(api, isDisabled) {\n return setupHandler(function () {\n return targets.get().fold(function () {\n api.setDisabled(true);\n }, function (targets) {\n api.setDisabled(isDisabled(targets));\n });\n });\n };\n\n var onSetupWithToggle = function onSetupWithToggle(api, isDisabled, isActive) {\n return setupHandler(function () {\n return targets.get().fold(function () {\n api.setDisabled(true);\n api.setActive(false);\n }, function (targets) {\n api.setDisabled(isDisabled(targets));\n api.setActive(isActive(targets));\n });\n });\n };\n\n var isDisabledFromLocked = function isDisabledFromLocked(lockedDisable) {\n return selectionDetails.exists(function (details) {\n return details.locked[lockedDisable];\n });\n };\n\n var onSetupTable = function onSetupTable(api) {\n return onSetup(api, function (_) {\n return false;\n });\n };\n\n var onSetupCellOrRow = function onSetupCellOrRow(api) {\n return onSetup(api, function (targets) {\n return isCaption(targets.element);\n });\n };\n\n var onSetupColumn = function onSetupColumn(lockedDisable) {\n return function (api) {\n return onSetup(api, function (targets) {\n return isCaption(targets.element) || isDisabledFromLocked(lockedDisable);\n });\n };\n };\n\n var onSetupPasteable = function onSetupPasteable(getClipboardData) {\n return function (api) {\n return onSetup(api, function (targets) {\n return isCaption(targets.element) || getClipboardData().isNone();\n });\n };\n };\n\n var onSetupPasteableColumn = function onSetupPasteableColumn(getClipboardData, lockedDisable) {\n return function (api) {\n return onSetup(api, function (targets) {\n return isCaption(targets.element) || getClipboardData().isNone() || isDisabledFromLocked(lockedDisable);\n });\n };\n };\n\n var onSetupMergeable = function onSetupMergeable(api) {\n return onSetup(api, function (_targets) {\n return isDisabledForSelection('mergeable');\n });\n };\n\n var onSetupUnmergeable = function onSetupUnmergeable(api) {\n return onSetup(api, function (_targets) {\n return isDisabledForSelection('unmergeable');\n });\n };\n\n var onSetupTableWithCaption = function onSetupTableWithCaption(api) {\n return onSetupWithToggle(api, never, function (targets) {\n var tableOpt = table(targets.element, getIsRoot(editor));\n return tableOpt.exists(function (table) {\n return child(table, 'caption');\n });\n });\n };\n\n var onSetupTableHeaders = function onSetupTableHeaders(command, headerType) {\n return function (api) {\n return onSetupWithToggle(api, function (targets) {\n return isCaption(targets.element);\n }, function () {\n return editor.queryCommandValue(command) === headerType;\n });\n };\n };\n\n var onSetupTableRowHeaders = onSetupTableHeaders('mceTableRowType', 'header');\n var onSetupTableColumnHeaders = onSetupTableHeaders('mceTableColType', 'th');\n editor.on('NodeChange ExecCommand TableSelectorChange', resetTargets);\n return {\n onSetupTable: onSetupTable,\n onSetupCellOrRow: onSetupCellOrRow,\n onSetupColumn: onSetupColumn,\n onSetupPasteable: onSetupPasteable,\n onSetupPasteableColumn: onSetupPasteableColumn,\n onSetupMergeable: onSetupMergeable,\n onSetupUnmergeable: onSetupUnmergeable,\n resetTargets: resetTargets,\n onSetupTableWithCaption: onSetupTableWithCaption,\n onSetupTableRowHeaders: onSetupTableRowHeaders,\n onSetupTableColumnHeaders: onSetupTableColumnHeaders,\n targets: targets.get\n };\n };\n\n var addButtons = function addButtons(editor, selections, selectionTargets, clipboard) {\n editor.ui.registry.addMenuButton('table', {\n tooltip: 'Table',\n icon: 'table',\n fetch: function fetch(callback) {\n return callback('inserttable | cell row column | advtablesort | tableprops deletetable');\n }\n });\n\n var cmd = function cmd(command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n\n editor.ui.registry.addButton('tableprops', {\n tooltip: 'Table properties',\n onAction: cmd('mceTableProps'),\n icon: 'table',\n onSetup: selectionTargets.onSetupTable\n });\n editor.ui.registry.addButton('tabledelete', {\n tooltip: 'Delete table',\n onAction: cmd('mceTableDelete'),\n icon: 'table-delete-table',\n onSetup: selectionTargets.onSetupTable\n });\n editor.ui.registry.addButton('tablecellprops', {\n tooltip: 'Cell properties',\n onAction: cmd('mceTableCellProps'),\n icon: 'table-cell-properties',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablemergecells', {\n tooltip: 'Merge cells',\n onAction: cmd('mceTableMergeCells'),\n icon: 'table-merge-cells',\n onSetup: selectionTargets.onSetupMergeable\n });\n editor.ui.registry.addButton('tablesplitcells', {\n tooltip: 'Split cell',\n onAction: cmd('mceTableSplitCells'),\n icon: 'table-split-cells',\n onSetup: selectionTargets.onSetupUnmergeable\n });\n editor.ui.registry.addButton('tableinsertrowbefore', {\n tooltip: 'Insert row before',\n onAction: cmd('mceTableInsertRowBefore'),\n icon: 'table-insert-row-above',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertrowafter', {\n tooltip: 'Insert row after',\n onAction: cmd('mceTableInsertRowAfter'),\n icon: 'table-insert-row-after',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tabledeleterow', {\n tooltip: 'Delete row',\n onAction: cmd('mceTableDeleteRow'),\n icon: 'table-delete-row',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablerowprops', {\n tooltip: 'Row properties',\n onAction: cmd('mceTableRowProps'),\n icon: 'table-row-properties',\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tableinsertcolbefore', {\n tooltip: 'Insert column before',\n onAction: cmd('mceTableInsertColBefore'),\n icon: 'table-insert-column-before',\n onSetup: selectionTargets.onSetupColumn('onFirst')\n });\n editor.ui.registry.addButton('tableinsertcolafter', {\n tooltip: 'Insert column after',\n onAction: cmd('mceTableInsertColAfter'),\n icon: 'table-insert-column-after',\n onSetup: selectionTargets.onSetupColumn('onLast')\n });\n editor.ui.registry.addButton('tabledeletecol', {\n tooltip: 'Delete column',\n onAction: cmd('mceTableDeleteCol'),\n icon: 'table-delete-column',\n onSetup: selectionTargets.onSetupColumn('onAny')\n });\n editor.ui.registry.addButton('tablecutrow', {\n tooltip: 'Cut row',\n icon: 'cut-row',\n onAction: cmd('mceTableCutRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablecopyrow', {\n tooltip: 'Copy row',\n icon: 'duplicate-row',\n onAction: cmd('mceTableCopyRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addButton('tablepasterowbefore', {\n tooltip: 'Paste row before',\n icon: 'paste-row-before',\n onAction: cmd('mceTablePasteRowBefore'),\n onSetup: selectionTargets.onSetupPasteable(clipboard.getRows)\n });\n editor.ui.registry.addButton('tablepasterowafter', {\n tooltip: 'Paste row after',\n icon: 'paste-row-after',\n onAction: cmd('mceTablePasteRowAfter'),\n onSetup: selectionTargets.onSetupPasteable(clipboard.getRows)\n });\n editor.ui.registry.addButton('tablecutcol', {\n tooltip: 'Cut column',\n icon: 'cut-column',\n onAction: cmd('mceTableCutCol'),\n onSetup: selectionTargets.onSetupColumn('onAny')\n });\n editor.ui.registry.addButton('tablecopycol', {\n tooltip: 'Copy column',\n icon: 'duplicate-column',\n onAction: cmd('mceTableCopyCol'),\n onSetup: selectionTargets.onSetupColumn('onAny')\n });\n editor.ui.registry.addButton('tablepastecolbefore', {\n tooltip: 'Paste column before',\n icon: 'paste-column-before',\n onAction: cmd('mceTablePasteColBefore'),\n onSetup: selectionTargets.onSetupPasteableColumn(clipboard.getColumns, 'onFirst')\n });\n editor.ui.registry.addButton('tablepastecolafter', {\n tooltip: 'Paste column after',\n icon: 'paste-column-after',\n onAction: cmd('mceTablePasteColAfter'),\n onSetup: selectionTargets.onSetupPasteableColumn(clipboard.getColumns, 'onLast')\n });\n editor.ui.registry.addButton('tableinsertdialog', {\n tooltip: 'Insert table',\n onAction: cmd('mceInsertTable'),\n icon: 'table'\n });\n var tableClassList = filterNoneItem(getTableClassList(editor));\n\n if (tableClassList.length !== 0) {\n editor.ui.registry.addMenuButton('tableclass', {\n icon: 'table-classes',\n tooltip: 'Table styles',\n fetch: generateMenuItemsCallback(editor, selections, tableClassList, 'tableclass', function (value) {\n return editor.execCommand('mceTableToggleClass', false, value);\n }),\n onSetup: selectionTargets.onSetupTable\n });\n }\n\n var tableCellClassList = filterNoneItem(getCellClassList(editor));\n\n if (tableCellClassList.length !== 0) {\n editor.ui.registry.addMenuButton('tablecellclass', {\n icon: 'table-cell-classes',\n tooltip: 'Cell styles',\n fetch: generateMenuItemsCallback(editor, selections, tableCellClassList, 'tablecellclass', function (value) {\n return editor.execCommand('mceTableCellToggleClass', false, value);\n }),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n }\n\n editor.ui.registry.addMenuButton('tablecellvalign', {\n icon: 'vertical-align',\n tooltip: 'Vertical align',\n fetch: generateMenuItemsCallback(editor, selections, verticalAlignValues, 'tablecellverticalalign', applyTableCellStyle(editor, 'vertical-align')),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuButton('tablecellborderwidth', {\n icon: 'border-width',\n tooltip: 'Border width',\n fetch: generateMenuItemsCallback(editor, selections, getTableBorderWidths(editor), 'tablecellborderwidth', applyTableCellStyle(editor, 'border-width')),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuButton('tablecellborderstyle', {\n icon: 'border-style',\n tooltip: 'Border style',\n fetch: generateMenuItemsCallback(editor, selections, getTableBorderStyles(editor), 'tablecellborderstyle', applyTableCellStyle(editor, 'border-style')),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addToggleButton('tablecaption', {\n tooltip: 'Table caption',\n onAction: cmd('mceTableToggleCaption'),\n icon: 'table-caption',\n onSetup: selectionTargets.onSetupTableWithCaption\n });\n editor.ui.registry.addMenuButton('tablecellbackgroundcolor', {\n icon: 'cell-background-color',\n tooltip: 'Background color',\n fetch: function fetch(callback) {\n return callback(buildColorMenu(editor, getTableBackgroundColorMap(editor), 'background-color'));\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuButton('tablecellbordercolor', {\n icon: 'cell-border-color',\n tooltip: 'Border color',\n fetch: function fetch(callback) {\n return callback(buildColorMenu(editor, getTableBorderColorMap(editor), 'border-color'));\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addToggleButton('tablerowheader', {\n tooltip: 'Row header',\n icon: 'table-top-header',\n onAction: changeRowHeader(editor),\n onSetup: selectionTargets.onSetupTableRowHeaders\n });\n editor.ui.registry.addToggleButton('tablecolheader', {\n tooltip: 'Column header',\n icon: 'table-left-header',\n onAction: changeColumnHeader(editor),\n onSetup: selectionTargets.onSetupTableColumnHeaders\n });\n };\n\n var addToolbars = function addToolbars(editor) {\n var isTable = function isTable(table) {\n return editor.dom.is(table, 'table') && editor.getBody().contains(table);\n };\n\n var toolbar = getToolbar(editor);\n\n if (toolbar.length > 0) {\n editor.ui.registry.addContextToolbar('table', {\n predicate: isTable,\n items: toolbar,\n scope: 'node',\n position: 'node'\n });\n }\n };\n\n var addMenuItems = function addMenuItems(editor, selections, selectionTargets, clipboard) {\n var cmd = function cmd(command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n\n var insertTableAction = function insertTableAction(data) {\n editor.execCommand('mceInsertTable', false, {\n rows: data.numRows,\n columns: data.numColumns\n });\n };\n\n var tableProperties = {\n text: 'Table properties',\n onSetup: selectionTargets.onSetupTable,\n onAction: cmd('mceTableProps')\n };\n var deleteTable = {\n text: 'Delete table',\n icon: 'table-delete-table',\n onSetup: selectionTargets.onSetupTable,\n onAction: cmd('mceTableDelete')\n };\n editor.ui.registry.addMenuItem('tableinsertrowbefore', {\n text: 'Insert row before',\n icon: 'table-insert-row-above',\n onAction: cmd('mceTableInsertRowBefore'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuItem('tableinsertrowafter', {\n text: 'Insert row after',\n icon: 'table-insert-row-after',\n onAction: cmd('mceTableInsertRowAfter'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuItem('tabledeleterow', {\n text: 'Delete row',\n icon: 'table-delete-row',\n onAction: cmd('mceTableDeleteRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuItem('tablerowprops', {\n text: 'Row properties',\n icon: 'table-row-properties',\n onAction: cmd('mceTableRowProps'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuItem('tablecutrow', {\n text: 'Cut row',\n icon: 'cut-row',\n onAction: cmd('mceTableCutRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuItem('tablecopyrow', {\n text: 'Copy row',\n icon: 'duplicate-row',\n onAction: cmd('mceTableCopyRow'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuItem('tablepasterowbefore', {\n text: 'Paste row before',\n icon: 'paste-row-before',\n onAction: cmd('mceTablePasteRowBefore'),\n onSetup: selectionTargets.onSetupPasteable(clipboard.getRows)\n });\n editor.ui.registry.addMenuItem('tablepasterowafter', {\n text: 'Paste row after',\n icon: 'paste-row-after',\n onAction: cmd('mceTablePasteRowAfter'),\n onSetup: selectionTargets.onSetupPasteable(clipboard.getRows)\n });\n var row = {\n type: 'nestedmenuitem',\n text: 'Row',\n getSubmenuItems: constant('tableinsertrowbefore tableinsertrowafter tabledeleterow tablerowprops | tablecutrow tablecopyrow tablepasterowbefore tablepasterowafter')\n };\n editor.ui.registry.addMenuItem('tableinsertcolumnbefore', {\n text: 'Insert column before',\n icon: 'table-insert-column-before',\n onAction: cmd('mceTableInsertColBefore'),\n onSetup: selectionTargets.onSetupColumn('onFirst')\n });\n editor.ui.registry.addMenuItem('tableinsertcolumnafter', {\n text: 'Insert column after',\n icon: 'table-insert-column-after',\n onAction: cmd('mceTableInsertColAfter'),\n onSetup: selectionTargets.onSetupColumn('onLast')\n });\n editor.ui.registry.addMenuItem('tabledeletecolumn', {\n text: 'Delete column',\n icon: 'table-delete-column',\n onAction: cmd('mceTableDeleteCol'),\n onSetup: selectionTargets.onSetupColumn('onAny')\n });\n editor.ui.registry.addMenuItem('tablecutcolumn', {\n text: 'Cut column',\n icon: 'cut-column',\n onAction: cmd('mceTableCutCol'),\n onSetup: selectionTargets.onSetupColumn('onAny')\n });\n editor.ui.registry.addMenuItem('tablecopycolumn', {\n text: 'Copy column',\n icon: 'duplicate-column',\n onAction: cmd('mceTableCopyCol'),\n onSetup: selectionTargets.onSetupColumn('onAny')\n });\n editor.ui.registry.addMenuItem('tablepastecolumnbefore', {\n text: 'Paste column before',\n icon: 'paste-column-before',\n onAction: cmd('mceTablePasteColBefore'),\n onSetup: selectionTargets.onSetupPasteableColumn(clipboard.getColumns, 'onFirst')\n });\n editor.ui.registry.addMenuItem('tablepastecolumnafter', {\n text: 'Paste column after',\n icon: 'paste-column-after',\n onAction: cmd('mceTablePasteColAfter'),\n onSetup: selectionTargets.onSetupPasteableColumn(clipboard.getColumns, 'onLast')\n });\n var column = {\n type: 'nestedmenuitem',\n text: 'Column',\n getSubmenuItems: constant('tableinsertcolumnbefore tableinsertcolumnafter tabledeletecolumn | tablecutcolumn tablecopycolumn tablepastecolumnbefore tablepastecolumnafter')\n };\n editor.ui.registry.addMenuItem('tablecellprops', {\n text: 'Cell properties',\n icon: 'table-cell-properties',\n onAction: cmd('mceTableCellProps'),\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addMenuItem('tablemergecells', {\n text: 'Merge cells',\n icon: 'table-merge-cells',\n onAction: cmd('mceTableMergeCells'),\n onSetup: selectionTargets.onSetupMergeable\n });\n editor.ui.registry.addMenuItem('tablesplitcells', {\n text: 'Split cell',\n icon: 'table-split-cells',\n onAction: cmd('mceTableSplitCells'),\n onSetup: selectionTargets.onSetupUnmergeable\n });\n var cell = {\n type: 'nestedmenuitem',\n text: 'Cell',\n getSubmenuItems: constant('tablecellprops tablemergecells tablesplitcells')\n };\n\n if (hasTableGrid(editor) === false) {\n editor.ui.registry.addMenuItem('inserttable', {\n text: 'Table',\n icon: 'table',\n onAction: cmd('mceInsertTable')\n });\n } else {\n editor.ui.registry.addNestedMenuItem('inserttable', {\n text: 'Table',\n icon: 'table',\n getSubmenuItems: function getSubmenuItems() {\n return [{\n type: 'fancymenuitem',\n fancytype: 'inserttable',\n onAction: insertTableAction\n }];\n }\n });\n }\n\n editor.ui.registry.addMenuItem('inserttabledialog', {\n text: 'Insert table',\n icon: 'table',\n onAction: cmd('mceInsertTable')\n });\n editor.ui.registry.addMenuItem('tableprops', tableProperties);\n editor.ui.registry.addMenuItem('deletetable', deleteTable);\n editor.ui.registry.addNestedMenuItem('row', row);\n editor.ui.registry.addNestedMenuItem('column', column);\n editor.ui.registry.addNestedMenuItem('cell', cell);\n editor.ui.registry.addContextMenu('table', {\n update: function update() {\n selectionTargets.resetTargets();\n return selectionTargets.targets().fold(constant(''), function (targets) {\n if (name(targets.element) === 'caption') {\n return 'tableprops deletetable';\n } else {\n return 'cell row column | advtablesort | tableprops deletetable';\n }\n });\n }\n });\n var tableClassList = filterNoneItem(getTableClassList(editor));\n\n if (tableClassList.length !== 0) {\n editor.ui.registry.addNestedMenuItem('tableclass', {\n icon: 'table-classes',\n text: 'Table styles',\n getSubmenuItems: function getSubmenuItems() {\n return buildMenuItems(editor, selections, tableClassList, 'tableclass', function (value) {\n return editor.execCommand('mceTableToggleClass', false, value);\n });\n },\n onSetup: selectionTargets.onSetupTable\n });\n }\n\n var tableCellClassList = filterNoneItem(getCellClassList(editor));\n\n if (tableCellClassList.length !== 0) {\n editor.ui.registry.addNestedMenuItem('tablecellclass', {\n icon: 'table-cell-classes',\n text: 'Cell styles',\n getSubmenuItems: function getSubmenuItems() {\n return buildMenuItems(editor, selections, tableCellClassList, 'tablecellclass', function (value) {\n return editor.execCommand('mceTableCellToggleClass', false, value);\n });\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n }\n\n editor.ui.registry.addNestedMenuItem('tablecellvalign', {\n icon: 'vertical-align',\n text: 'Vertical align',\n getSubmenuItems: function getSubmenuItems() {\n return buildMenuItems(editor, selections, verticalAlignValues, 'tablecellverticalalign', applyTableCellStyle(editor, 'vertical-align'));\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addNestedMenuItem('tablecellborderwidth', {\n icon: 'border-width',\n text: 'Border width',\n getSubmenuItems: function getSubmenuItems() {\n return buildMenuItems(editor, selections, getTableBorderWidths(editor), 'tablecellborderwidth', applyTableCellStyle(editor, 'border-width'));\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addNestedMenuItem('tablecellborderstyle', {\n icon: 'border-style',\n text: 'Border style',\n getSubmenuItems: function getSubmenuItems() {\n return buildMenuItems(editor, selections, getTableBorderStyles(editor), 'tablecellborderstyle', applyTableCellStyle(editor, 'border-style'));\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addToggleMenuItem('tablecaption', {\n icon: 'table-caption',\n text: 'Table caption',\n onAction: cmd('mceTableToggleCaption'),\n onSetup: selectionTargets.onSetupTableWithCaption\n });\n editor.ui.registry.addNestedMenuItem('tablecellbackgroundcolor', {\n icon: 'cell-background-color',\n text: 'Background color',\n getSubmenuItems: function getSubmenuItems() {\n return buildColorMenu(editor, getTableBackgroundColorMap(editor), 'background-color');\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addNestedMenuItem('tablecellbordercolor', {\n icon: 'cell-border-color',\n text: 'Border color',\n getSubmenuItems: function getSubmenuItems() {\n return buildColorMenu(editor, getTableBorderColorMap(editor), 'border-color');\n },\n onSetup: selectionTargets.onSetupCellOrRow\n });\n editor.ui.registry.addToggleMenuItem('tablerowheader', {\n text: 'Row header',\n icon: 'table-top-header',\n onAction: changeRowHeader(editor),\n onSetup: selectionTargets.onSetupTableRowHeaders\n });\n editor.ui.registry.addToggleMenuItem('tablecolheader', {\n text: 'Column header',\n icon: 'table-left-header',\n onAction: changeColumnHeader(editor),\n onSetup: selectionTargets.onSetupTableColumnHeaders\n });\n };\n\n var Plugin = function Plugin(editor) {\n var selections = Selections(function () {\n return getBody(editor);\n }, function () {\n return getSelectionCell(getSelectionStart(editor), getIsRoot(editor));\n }, ephemera.selectedSelector);\n var selectionTargets = getSelectionTargets(editor, selections);\n var resizeHandler = getResizeHandler(editor);\n var cellSelection = CellSelection(editor, resizeHandler.lazyResize, selectionTargets);\n var actions = TableActions(editor, cellSelection, resizeHandler.lazyWire);\n var clipboard = Clipboard();\n registerCommands(editor, actions, cellSelection, selections, clipboard);\n registerQueryCommands(editor, actions, selections);\n registerEvents(editor, selections, actions);\n addMenuItems(editor, selections, selectionTargets, clipboard);\n addButtons(editor, selections, selectionTargets, clipboard);\n addToolbars(editor);\n editor.on('PreInit', function () {\n editor.serializer.addTempAttr(ephemera.firstSelected);\n editor.serializer.addTempAttr(ephemera.lastSelected);\n registerFormats(editor);\n });\n\n if (hasTabNavigation(editor)) {\n editor.on('keydown', function (e) {\n handle$1(e, editor, cellSelection);\n });\n }\n\n editor.on('remove', function () {\n resizeHandler.destroy();\n });\n return getApi(editor, clipboard, resizeHandler, selectionTargets);\n };\n\n function Plugin$1() {\n global$3.add('table', Plugin);\n }\n\n Plugin$1();\n})();","// Exports the \"lists\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/lists')\n// ES2015:\n// import 'tinymce/plugins/lists'\nrequire('./plugin.js');","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.3 (2022-02-09)\n */\n(function () {\n 'use strict';\n\n var global$7 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var typeOf = function typeOf(x) {\n var t = _typeof(x);\n\n if (x === null) {\n return 'null';\n } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n } else {\n return t;\n }\n };\n\n var isType$1 = function isType$1(type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n\n var isSimpleType = function isSimpleType(type) {\n return function (value) {\n return _typeof(value) === type;\n };\n };\n\n var isString = isType$1('string');\n var isObject = isType$1('object');\n var isArray = isType$1('array');\n var isBoolean = isSimpleType('boolean');\n var isFunction = isSimpleType('function');\n var isNumber = isSimpleType('number');\n\n var noop = function noop() {};\n\n var constant = function constant(value) {\n return function () {\n return value;\n };\n };\n\n var identity = function identity(x) {\n return x;\n };\n\n var tripleEquals = function tripleEquals(a, b) {\n return a === b;\n };\n\n var not = function not(f) {\n return function (t) {\n return !f(t);\n };\n };\n\n var never = constant(false);\n var always = constant(true);\n\n var none = function none() {\n return NONE;\n };\n\n var NONE = function () {\n var call = function call(thunk) {\n return thunk();\n };\n\n var id = identity;\n var me = {\n fold: function fold(n, _s) {\n return n();\n },\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function getOrDie(msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: function filter() {\n return none();\n },\n toArray: function toArray() {\n return [];\n },\n toString: constant('none()')\n };\n return me;\n }();\n\n var some = function some(a) {\n var constant_a = constant(a);\n\n var self = function self() {\n return me;\n };\n\n var bind = function bind(f) {\n return f(a);\n };\n\n var me = {\n fold: function fold(n, s) {\n return s(a);\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function map(f) {\n return some(f(a));\n },\n each: function each(f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function filter(f) {\n return f(a) ? me : NONE;\n },\n toArray: function toArray() {\n return [a];\n },\n toString: function toString() {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n\n var from = function from(value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n\n var Optional = {\n some: some,\n none: none,\n from: from\n };\n var nativeSlice = Array.prototype.slice;\n var nativePush = Array.prototype.push;\n\n var map = function map(xs, f) {\n var len = xs.length;\n var r = new Array(len);\n\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n\n return r;\n };\n\n var each$1 = function each$1(xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n\n var filter$1 = function filter$1(xs, pred) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n r.push(x);\n }\n }\n\n return r;\n };\n\n var groupBy = function groupBy(xs, f) {\n if (xs.length === 0) {\n return [];\n } else {\n var wasType = f(xs[0]);\n var r = [];\n var group = [];\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var type = f(x);\n\n if (type !== wasType) {\n r.push(group);\n group = [];\n }\n\n wasType = type;\n group.push(x);\n }\n\n if (group.length !== 0) {\n r.push(group);\n }\n\n return r;\n }\n };\n\n var foldl = function foldl(xs, f, acc) {\n each$1(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n\n var findUntil = function findUntil(xs, pred, until) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n\n return Optional.none();\n };\n\n var find$1 = function find$1(xs, pred) {\n return findUntil(xs, pred, never);\n };\n\n var flatten = function flatten(xs) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n\n nativePush.apply(r, xs[i]);\n }\n\n return r;\n };\n\n var bind = function bind(xs, f) {\n return flatten(map(xs, f));\n };\n\n var reverse = function reverse(xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n\n var get$1 = function get$1(xs, i) {\n return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n };\n\n var head = function head(xs) {\n return get$1(xs, 0);\n };\n\n var last = function last(xs) {\n return get$1(xs, xs.length - 1);\n };\n\n var findMap = function findMap(arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n\n if (r.isSome()) {\n return r;\n }\n }\n\n return Optional.none();\n };\n\n var _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n };\n\n function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n }\n\n var cached = function cached(f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n\n return r;\n };\n };\n\n var DeviceType = function DeviceType(os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant(isiPad),\n isiPhone: constant(isiPhone),\n isTablet: constant(isTablet),\n isPhone: constant(isPhone),\n isTouch: constant(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant(iOSwebview),\n isDesktop: constant(isDesktop)\n };\n };\n\n var firstMatch = function firstMatch(regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n\n if (x.test(s)) {\n return x;\n }\n }\n\n return undefined;\n };\n\n var find = function find(regexes, agent) {\n var r = firstMatch(regexes, agent);\n\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n\n var group = function group(i) {\n return Number(agent.replace(r, '$' + i));\n };\n\n return nu$2(group(1), group(2));\n };\n\n var detect$3 = function detect$3(versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n\n if (versionRegexes.length === 0) {\n return unknown$2();\n }\n\n return find(versionRegexes, cleanedAgent);\n };\n\n var unknown$2 = function unknown$2() {\n return nu$2(0, 0);\n };\n\n var nu$2 = function nu$2(major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n\n var Version = {\n nu: nu$2,\n detect: detect$3,\n unknown: unknown$2\n };\n\n var detectBrowser$1 = function detectBrowser$1(browsers, userAgentData) {\n return findMap(userAgentData.brands, function (uaBrand) {\n var lcBrand = uaBrand.brand.toLowerCase();\n return find$1(browsers, function (browser) {\n var _a;\n\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(function (info) {\n return {\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n };\n });\n });\n };\n\n var detect$2 = function detect$2(candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find$1(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n\n var detectBrowser = function detectBrowser(browsers, userAgent) {\n return detect$2(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n\n var detectOs = function detectOs(oses, userAgent) {\n return detect$2(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n\n var contains$1 = function contains$1(str, substr) {\n return str.indexOf(substr) !== -1;\n };\n\n var blank = function blank(r) {\n return function (s) {\n return s.replace(r, '');\n };\n };\n\n var trim = blank(/^\\s+|\\s+$/g);\n\n var isNotEmpty = function isNotEmpty(s) {\n return s.length > 0;\n };\n\n var isEmpty$1 = function isEmpty$1(s) {\n return !isNotEmpty(s);\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n\n var checkContains = function checkContains(target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n\n var browsers = [{\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function search(uastring) {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n }, {\n name: 'Chrome',\n brand: 'Chromium',\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/, normalVersionRegex],\n search: function search(uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n }, {\n name: 'IE',\n versionRegexes: [/.*?msie\\ ?([0-9]+)\\.([0-9]+).*/, /.*?rv:([0-9]+)\\.([0-9]+).*/],\n search: function search(uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n }, {\n name: 'Opera',\n versionRegexes: [normalVersionRegex, /.*?opera\\/([0-9]+)\\.([0-9]+).*/],\n search: checkContains('opera')\n }, {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n }, {\n name: 'Safari',\n versionRegexes: [normalVersionRegex, /.*?cpu os ([0-9]+)_([0-9]+).*/],\n search: function search(uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }];\n var oses = [{\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n }, {\n name: 'iOS',\n search: function search(uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [/.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/]\n }, {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n }, {\n name: 'OSX',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n }, {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n }, {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n }, {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }, {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }];\n var PlatformInfo = {\n browsers: constant(browsers),\n oses: constant(oses)\n };\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n\n var unknown$1 = function unknown$1() {\n return nu$1({\n current: undefined,\n version: Version.unknown()\n });\n };\n\n var nu$1 = function nu$1(info) {\n var current = info.current;\n var version = info.version;\n\n var isBrowser = function isBrowser(name) {\n return function () {\n return current === name;\n };\n };\n\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge),\n isChrome: isBrowser(chrome),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n\n var Browser = {\n unknown: unknown$1,\n nu: nu$1,\n edge: constant(edge),\n chrome: constant(chrome),\n ie: constant(ie),\n opera: constant(opera),\n firefox: constant(firefox),\n safari: constant(safari)\n };\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var chromeos = 'ChromeOS';\n\n var unknown = function unknown() {\n return nu({\n current: undefined,\n version: Version.unknown()\n });\n };\n\n var nu = function nu(info) {\n var current = info.current;\n var version = info.version;\n\n var isOS = function isOS(name) {\n return function () {\n return current === name;\n };\n };\n\n return {\n current: current,\n version: version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isOSX: isOS(osx),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n\n var OperatingSystem = {\n unknown: unknown,\n nu: nu,\n windows: constant(windows),\n ios: constant(ios),\n android: constant(android),\n linux: constant(linux),\n osx: constant(osx),\n solaris: constant(solaris),\n freebsd: constant(freebsd),\n chromeos: constant(chromeos)\n };\n\n var detect$1 = function detect$1(userAgent, userAgentDataOpt, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = userAgentDataOpt.bind(function (userAgentData) {\n return detectBrowser$1(browsers, userAgentData);\n }).orThunk(function () {\n return detectBrowser(browsers, userAgent);\n }).fold(Browser.unknown, Browser.nu);\n var os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n\n var PlatformDetection = {\n detect: detect$1\n };\n\n var mediaMatch = function mediaMatch(query) {\n return window.matchMedia(query).matches;\n };\n\n var platform = cached(function () {\n return PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch);\n });\n\n var detect = function detect() {\n return platform();\n };\n\n var compareDocumentPosition = function compareDocumentPosition(a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n\n var documentPositionContainedBy = function documentPositionContainedBy(a, b) {\n return compareDocumentPosition(a, b, Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n\n var ELEMENT = 1;\n\n var fromHtml = function fromHtml(html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n\n return fromDom(div.childNodes[0]);\n };\n\n var fromTag = function fromTag(tag, scope) {\n var doc = scope || document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n\n var fromText = function fromText(text, scope) {\n var doc = scope || document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n\n var fromDom = function fromDom(node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n\n return {\n dom: node\n };\n };\n\n var fromPoint = function fromPoint(docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n };\n\n var SugarElement = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var is$2 = function is$2(element, selector) {\n var dom = element.dom;\n\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n var elem = dom;\n\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n\n var eq = function eq(e1, e2) {\n return e1.dom === e2.dom;\n };\n\n var regularContains = function regularContains(e1, e2) {\n var d1 = e1.dom;\n var d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n var ieContains = function ieContains(e1, e2) {\n return documentPositionContainedBy(e1.dom, e2.dom);\n };\n\n var contains = function contains(e1, e2) {\n return detect().browser.isIE() ? ieContains(e1, e2) : regularContains(e1, e2);\n };\n\n var is$1 = is$2;\n var global$6 = tinymce.util.Tools.resolve('tinymce.dom.RangeUtils');\n var global$5 = tinymce.util.Tools.resolve('tinymce.dom.TreeWalker');\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.VK');\n var keys = Object.keys;\n\n var each = function each(obj, f) {\n var props = keys(obj);\n\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n\n var objAcc = function objAcc(r) {\n return function (x, i) {\n r[i] = x;\n };\n };\n\n var internalFilter = function internalFilter(obj, pred, onTrue, onFalse) {\n var r = {};\n each(obj, function (x, i) {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n return r;\n };\n\n var filter = function filter(obj, pred) {\n var t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n var name = function name(element) {\n var r = element.dom.nodeName;\n return r.toLowerCase();\n };\n\n var type = function type(element) {\n return element.dom.nodeType;\n };\n\n var isType = function isType(t) {\n return function (element) {\n return type(element) === t;\n };\n };\n\n var isElement = isType(ELEMENT);\n\n var isTag = function isTag(tag) {\n return function (e) {\n return isElement(e) && name(e) === tag;\n };\n };\n\n var rawSet = function rawSet(dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n\n var setAll = function setAll(element, attrs) {\n var dom = element.dom;\n each(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n\n var clone$1 = function clone$1(element) {\n return foldl(element.dom.attributes, function (acc, attr) {\n acc[attr.name] = attr.value;\n return acc;\n }, {});\n };\n\n var parent = function parent(element) {\n return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n };\n\n var children = function children(element) {\n return map(element.dom.childNodes, SugarElement.fromDom);\n };\n\n var child = function child(element, index) {\n var cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n\n var firstChild = function firstChild(element) {\n return child(element, 0);\n };\n\n var lastChild = function lastChild(element) {\n return child(element, element.dom.childNodes.length - 1);\n };\n\n var before$1 = function before$1(marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n\n var append$1 = function append$1(parent, element) {\n parent.dom.appendChild(element.dom);\n };\n\n var before = function before(marker, elements) {\n each$1(elements, function (x) {\n before$1(marker, x);\n });\n };\n\n var append = function append(parent, elements) {\n each$1(elements, function (x) {\n append$1(parent, x);\n });\n };\n\n var remove = function remove(element) {\n var dom = element.dom;\n\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var clone = function clone(original, isDeep) {\n return SugarElement.fromDom(original.dom.cloneNode(isDeep));\n };\n\n var deep = function deep(original) {\n return clone(original, true);\n };\n\n var shallowAs = function shallowAs(original, tag) {\n var nu = SugarElement.fromTag(tag);\n var attributes = clone$1(original);\n setAll(nu, attributes);\n return nu;\n };\n\n var mutate = function mutate(original, tag) {\n var nu = shallowAs(original, tag);\n before$1(original, nu);\n var children$1 = children(original);\n append(nu, children$1);\n remove(original);\n return nu;\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var matchNodeName = function matchNodeName(name) {\n return function (node) {\n return node && node.nodeName.toLowerCase() === name;\n };\n };\n\n var matchNodeNames = function matchNodeNames(regex) {\n return function (node) {\n return node && regex.test(node.nodeName);\n };\n };\n\n var isTextNode = function isTextNode(node) {\n return node && node.nodeType === 3;\n };\n\n var isListNode = matchNodeNames(/^(OL|UL|DL)$/);\n var isOlUlNode = matchNodeNames(/^(OL|UL)$/);\n var isOlNode = matchNodeName('ol');\n var isListItemNode = matchNodeNames(/^(LI|DT|DD)$/);\n var isDlItemNode = matchNodeNames(/^(DT|DD)$/);\n var isTableCellNode = matchNodeNames(/^(TH|TD)$/);\n var isBr = matchNodeName('br');\n\n var isFirstChild = function isFirstChild(node) {\n return node.parentNode.firstChild === node;\n };\n\n var isTextBlock = function isTextBlock(editor, node) {\n return node && !!editor.schema.getTextBlockElements()[node.nodeName];\n };\n\n var isBlock = function isBlock(node, blockElements) {\n return node && node.nodeName in blockElements;\n };\n\n var isBogusBr = function isBogusBr(dom, node) {\n if (!isBr(node)) {\n return false;\n }\n\n return dom.isBlock(node.nextSibling) && !isBr(node.previousSibling);\n };\n\n var isEmpty = function isEmpty(dom, elm, keepBookmarks) {\n var empty = dom.isEmpty(elm);\n\n if (keepBookmarks && dom.select('span[data-mce-type=bookmark]', elm).length > 0) {\n return false;\n }\n\n return empty;\n };\n\n var isChildOfBody = function isChildOfBody(dom, elm) {\n return dom.isChildOf(elm, dom.getRoot());\n };\n\n var shouldIndentOnTab = function shouldIndentOnTab(editor) {\n return editor.getParam('lists_indent_on_tab', true);\n };\n\n var getForcedRootBlock = function getForcedRootBlock(editor) {\n var block = editor.getParam('forced_root_block', 'p');\n\n if (block === false) {\n return '';\n } else if (block === true) {\n return 'p';\n } else {\n return block;\n }\n };\n\n var getForcedRootBlockAttrs = function getForcedRootBlockAttrs(editor) {\n return editor.getParam('forced_root_block_attrs', {});\n };\n\n var createTextBlock = function createTextBlock(editor, contentNode) {\n var dom = editor.dom;\n var blockElements = editor.schema.getBlockElements();\n var fragment = dom.createFragment();\n var blockName = getForcedRootBlock(editor);\n var node, textBlock, hasContentNode;\n\n if (blockName) {\n textBlock = dom.create(blockName);\n\n if (textBlock.tagName === blockName.toUpperCase()) {\n dom.setAttribs(textBlock, getForcedRootBlockAttrs(editor));\n }\n\n if (!isBlock(contentNode.firstChild, blockElements)) {\n fragment.appendChild(textBlock);\n }\n }\n\n if (contentNode) {\n while (node = contentNode.firstChild) {\n var nodeName = node.nodeName;\n\n if (!hasContentNode && (nodeName !== 'SPAN' || node.getAttribute('data-mce-type') !== 'bookmark')) {\n hasContentNode = true;\n }\n\n if (isBlock(node, blockElements)) {\n fragment.appendChild(node);\n textBlock = null;\n } else {\n if (blockName) {\n if (!textBlock) {\n textBlock = dom.create(blockName);\n fragment.appendChild(textBlock);\n }\n\n textBlock.appendChild(node);\n } else {\n fragment.appendChild(node);\n }\n }\n }\n }\n\n if (!blockName) {\n fragment.appendChild(dom.create('br'));\n } else {\n if (!hasContentNode) {\n textBlock.appendChild(dom.create('br', {\n 'data-mce-bogus': '1'\n }));\n }\n }\n\n return fragment;\n };\n\n var DOM$2 = global$3.DOM;\n\n var splitList = function splitList(editor, list, li) {\n var removeAndKeepBookmarks = function removeAndKeepBookmarks(targetNode) {\n global$2.each(bookmarks, function (node) {\n targetNode.parentNode.insertBefore(node, li.parentNode);\n });\n DOM$2.remove(targetNode);\n };\n\n var bookmarks = DOM$2.select('span[data-mce-type=\"bookmark\"]', list);\n var newBlock = createTextBlock(editor, li);\n var tmpRng = DOM$2.createRng();\n tmpRng.setStartAfter(li);\n tmpRng.setEndAfter(list);\n var fragment = tmpRng.extractContents();\n\n for (var node = fragment.firstChild; node; node = node.firstChild) {\n if (node.nodeName === 'LI' && editor.dom.isEmpty(node)) {\n DOM$2.remove(node);\n break;\n }\n }\n\n if (!editor.dom.isEmpty(fragment)) {\n DOM$2.insertAfter(fragment, list);\n }\n\n DOM$2.insertAfter(newBlock, list);\n\n if (isEmpty(editor.dom, li.parentNode)) {\n removeAndKeepBookmarks(li.parentNode);\n }\n\n DOM$2.remove(li);\n\n if (isEmpty(editor.dom, list)) {\n DOM$2.remove(list);\n }\n };\n\n var isDescriptionDetail = isTag('dd');\n var isDescriptionTerm = isTag('dt');\n\n var outdentDlItem = function outdentDlItem(editor, item) {\n if (isDescriptionDetail(item)) {\n mutate(item, 'dt');\n } else if (isDescriptionTerm(item)) {\n parent(item).each(function (dl) {\n return splitList(editor, dl.dom, item.dom);\n });\n }\n };\n\n var indentDlItem = function indentDlItem(item) {\n if (isDescriptionTerm(item)) {\n mutate(item, 'dd');\n }\n };\n\n var dlIndentation = function dlIndentation(editor, indentation, dlItems) {\n if (indentation === 'Indent') {\n each$1(dlItems, indentDlItem);\n } else {\n each$1(dlItems, function (item) {\n return outdentDlItem(editor, item);\n });\n }\n };\n\n var getNormalizedPoint = function getNormalizedPoint(container, offset) {\n if (isTextNode(container)) {\n return {\n container: container,\n offset: offset\n };\n }\n\n var node = global$6.getNode(container, offset);\n\n if (isTextNode(node)) {\n return {\n container: node,\n offset: offset >= container.childNodes.length ? node.data.length : 0\n };\n } else if (node.previousSibling && isTextNode(node.previousSibling)) {\n return {\n container: node.previousSibling,\n offset: node.previousSibling.data.length\n };\n } else if (node.nextSibling && isTextNode(node.nextSibling)) {\n return {\n container: node.nextSibling,\n offset: 0\n };\n }\n\n return {\n container: container,\n offset: offset\n };\n };\n\n var normalizeRange = function normalizeRange(rng) {\n var outRng = rng.cloneRange();\n var rangeStart = getNormalizedPoint(rng.startContainer, rng.startOffset);\n outRng.setStart(rangeStart.container, rangeStart.offset);\n var rangeEnd = getNormalizedPoint(rng.endContainer, rng.endOffset);\n outRng.setEnd(rangeEnd.container, rangeEnd.offset);\n return outRng;\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.dom.DomQuery');\n\n var getParentList = function getParentList(editor, node) {\n var selectionStart = node || editor.selection.getStart(true);\n return editor.dom.getParent(selectionStart, 'OL,UL,DL', getClosestListRootElm(editor, selectionStart));\n };\n\n var isParentListSelected = function isParentListSelected(parentList, selectedBlocks) {\n return parentList && selectedBlocks.length === 1 && selectedBlocks[0] === parentList;\n };\n\n var findSubLists = function findSubLists(parentList) {\n return filter$1(parentList.querySelectorAll('ol,ul,dl'), isListNode);\n };\n\n var getSelectedSubLists = function getSelectedSubLists(editor) {\n var parentList = getParentList(editor);\n var selectedBlocks = editor.selection.getSelectedBlocks();\n\n if (isParentListSelected(parentList, selectedBlocks)) {\n return findSubLists(parentList);\n } else {\n return filter$1(selectedBlocks, function (elm) {\n return isListNode(elm) && parentList !== elm;\n });\n }\n };\n\n var findParentListItemsNodes = function findParentListItemsNodes(editor, elms) {\n var listItemsElms = global$2.map(elms, function (elm) {\n var parentLi = editor.dom.getParent(elm, 'li,dd,dt', getClosestListRootElm(editor, elm));\n return parentLi ? parentLi : elm;\n });\n return global$1.unique(listItemsElms);\n };\n\n var getSelectedListItems = function getSelectedListItems(editor) {\n var selectedBlocks = editor.selection.getSelectedBlocks();\n return filter$1(findParentListItemsNodes(editor, selectedBlocks), isListItemNode);\n };\n\n var getSelectedDlItems = function getSelectedDlItems(editor) {\n return filter$1(getSelectedListItems(editor), isDlItemNode);\n };\n\n var getClosestListRootElm = function getClosestListRootElm(editor, elm) {\n var parentTableCell = editor.dom.getParents(elm, 'TD,TH');\n return parentTableCell.length > 0 ? parentTableCell[0] : editor.getBody();\n };\n\n var findLastParentListNode = function findLastParentListNode(editor, elm) {\n var parentLists = editor.dom.getParents(elm, 'ol,ul', getClosestListRootElm(editor, elm));\n return last(parentLists);\n };\n\n var getSelectedLists = function getSelectedLists(editor) {\n var firstList = findLastParentListNode(editor, editor.selection.getStart());\n var subsequentLists = filter$1(editor.selection.getSelectedBlocks(), isOlUlNode);\n return firstList.toArray().concat(subsequentLists);\n };\n\n var getSelectedListRoots = function getSelectedListRoots(editor) {\n var selectedLists = getSelectedLists(editor);\n return getUniqueListRoots(editor, selectedLists);\n };\n\n var getUniqueListRoots = function getUniqueListRoots(editor, lists) {\n var listRoots = map(lists, function (list) {\n return findLastParentListNode(editor, list).getOr(list);\n });\n return global$1.unique(listRoots);\n };\n\n var is = function is(lhs, rhs, comparator) {\n if (comparator === void 0) {\n comparator = tripleEquals;\n }\n\n return lhs.exists(function (left) {\n return comparator(left, rhs);\n });\n };\n\n var lift2 = function lift2(oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n };\n\n var fromElements = function fromElements(elements, scope) {\n var doc = scope || document;\n var fragment = doc.createDocumentFragment();\n each$1(elements, function (element) {\n fragment.appendChild(element.dom);\n });\n return SugarElement.fromDom(fragment);\n };\n\n var fireListEvent = function fireListEvent(editor, action, element) {\n return editor.fire('ListMutation', {\n action: action,\n element: element\n });\n };\n\n var isSupported = function isSupported(dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var internalSet = function internalSet(dom, property, value) {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n\n if (isSupported(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n\n var set = function set(element, property, value) {\n var dom = element.dom;\n internalSet(dom, property, value);\n };\n\n var joinSegment = function joinSegment(parent, child) {\n append$1(parent.item, child.list);\n };\n\n var joinSegments = function joinSegments(segments) {\n for (var i = 1; i < segments.length; i++) {\n joinSegment(segments[i - 1], segments[i]);\n }\n };\n\n var appendSegments = function appendSegments(head$1, tail) {\n lift2(last(head$1), head(tail), joinSegment);\n };\n\n var createSegment = function createSegment(scope, listType) {\n var segment = {\n list: SugarElement.fromTag(listType, scope),\n item: SugarElement.fromTag('li', scope)\n };\n append$1(segment.list, segment.item);\n return segment;\n };\n\n var createSegments = function createSegments(scope, entry, size) {\n var segments = [];\n\n for (var i = 0; i < size; i++) {\n segments.push(createSegment(scope, entry.listType));\n }\n\n return segments;\n };\n\n var populateSegments = function populateSegments(segments, entry) {\n for (var i = 0; i < segments.length - 1; i++) {\n set(segments[i].item, 'list-style-type', 'none');\n }\n\n last(segments).each(function (segment) {\n setAll(segment.list, entry.listAttributes);\n setAll(segment.item, entry.itemAttributes);\n append(segment.item, entry.content);\n });\n };\n\n var normalizeSegment = function normalizeSegment(segment, entry) {\n if (name(segment.list) !== entry.listType) {\n segment.list = mutate(segment.list, entry.listType);\n }\n\n setAll(segment.list, entry.listAttributes);\n };\n\n var createItem = function createItem(scope, attr, content) {\n var item = SugarElement.fromTag('li', scope);\n setAll(item, attr);\n append(item, content);\n return item;\n };\n\n var appendItem = function appendItem(segment, item) {\n append$1(segment.list, item);\n segment.item = item;\n };\n\n var writeShallow = function writeShallow(scope, cast, entry) {\n var newCast = cast.slice(0, entry.depth);\n last(newCast).each(function (segment) {\n var item = createItem(scope, entry.itemAttributes, entry.content);\n appendItem(segment, item);\n normalizeSegment(segment, entry);\n });\n return newCast;\n };\n\n var writeDeep = function writeDeep(scope, cast, entry) {\n var segments = createSegments(scope, entry, entry.depth - cast.length);\n joinSegments(segments);\n populateSegments(segments, entry);\n appendSegments(cast, segments);\n return cast.concat(segments);\n };\n\n var composeList = function composeList(scope, entries) {\n var cast = foldl(entries, function (cast, entry) {\n return entry.depth > cast.length ? writeDeep(scope, cast, entry) : writeShallow(scope, cast, entry);\n }, []);\n return head(cast).map(function (segment) {\n return segment.list;\n });\n };\n\n var isList = function isList(el) {\n return is$1(el, 'OL,UL');\n };\n\n var hasFirstChildList = function hasFirstChildList(el) {\n return firstChild(el).exists(isList);\n };\n\n var hasLastChildList = function hasLastChildList(el) {\n return lastChild(el).exists(isList);\n };\n\n var isIndented = function isIndented(entry) {\n return entry.depth > 0;\n };\n\n var isSelected = function isSelected(entry) {\n return entry.isSelected;\n };\n\n var cloneItemContent = function cloneItemContent(li) {\n var children$1 = children(li);\n var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1;\n return map(content, deep);\n };\n\n var createEntry = function createEntry(li, depth, isSelected) {\n return parent(li).filter(isElement).map(function (list) {\n return {\n depth: depth,\n dirty: false,\n isSelected: isSelected,\n content: cloneItemContent(li),\n itemAttributes: clone$1(li),\n listAttributes: clone$1(list),\n listType: name(list)\n };\n });\n };\n\n var indentEntry = function indentEntry(indentation, entry) {\n switch (indentation) {\n case 'Indent':\n entry.depth++;\n break;\n\n case 'Outdent':\n entry.depth--;\n break;\n\n case 'Flatten':\n entry.depth = 0;\n }\n\n entry.dirty = true;\n };\n\n var cloneListProperties = function cloneListProperties(target, source) {\n target.listType = source.listType;\n target.listAttributes = _assign({}, source.listAttributes);\n };\n\n var cleanListProperties = function cleanListProperties(entry) {\n entry.listAttributes = filter(entry.listAttributes, function (_value, key) {\n return key !== 'start';\n });\n };\n\n var closestSiblingEntry = function closestSiblingEntry(entries, start) {\n var depth = entries[start].depth;\n\n var matches = function matches(entry) {\n return entry.depth === depth && !entry.dirty;\n };\n\n var until = function until(entry) {\n return entry.depth < depth;\n };\n\n return findUntil(reverse(entries.slice(0, start)), matches, until).orThunk(function () {\n return findUntil(entries.slice(start + 1), matches, until);\n });\n };\n\n var normalizeEntries = function normalizeEntries(entries) {\n each$1(entries, function (entry, i) {\n closestSiblingEntry(entries, i).fold(function () {\n if (entry.dirty) {\n cleanListProperties(entry);\n }\n }, function (matchingEntry) {\n return cloneListProperties(entry, matchingEntry);\n });\n });\n return entries;\n };\n\n var Cell = function Cell(initial) {\n var value = initial;\n\n var get = function get() {\n return value;\n };\n\n var set = function set(v) {\n value = v;\n };\n\n return {\n get: get,\n set: set\n };\n };\n\n var parseItem = function parseItem(depth, itemSelection, selectionState, item) {\n return firstChild(item).filter(isList).fold(function () {\n itemSelection.each(function (selection) {\n if (eq(selection.start, item)) {\n selectionState.set(true);\n }\n });\n var currentItemEntry = createEntry(item, depth, selectionState.get());\n itemSelection.each(function (selection) {\n if (eq(selection.end, item)) {\n selectionState.set(false);\n }\n });\n var childListEntries = lastChild(item).filter(isList).map(function (list) {\n return parseList(depth, itemSelection, selectionState, list);\n }).getOr([]);\n return currentItemEntry.toArray().concat(childListEntries);\n }, function (list) {\n return parseList(depth, itemSelection, selectionState, list);\n });\n };\n\n var parseList = function parseList(depth, itemSelection, selectionState, list) {\n return bind(children(list), function (element) {\n var parser = isList(element) ? parseList : parseItem;\n var newDepth = depth + 1;\n return parser(newDepth, itemSelection, selectionState, element);\n });\n };\n\n var parseLists = function parseLists(lists, itemSelection) {\n var selectionState = Cell(false);\n var initialDepth = 0;\n return map(lists, function (list) {\n return {\n sourceList: list,\n entries: parseList(initialDepth, itemSelection, selectionState, list)\n };\n });\n };\n\n var outdentedComposer = function outdentedComposer(editor, entries) {\n var normalizedEntries = normalizeEntries(entries);\n return map(normalizedEntries, function (entry) {\n var content = fromElements(entry.content);\n return SugarElement.fromDom(createTextBlock(editor, content.dom));\n });\n };\n\n var indentedComposer = function indentedComposer(editor, entries) {\n var normalizedEntries = normalizeEntries(entries);\n return composeList(editor.contentDocument, normalizedEntries).toArray();\n };\n\n var composeEntries = function composeEntries(editor, entries) {\n return bind(groupBy(entries, isIndented), function (entries) {\n var groupIsIndented = head(entries).exists(isIndented);\n return groupIsIndented ? indentedComposer(editor, entries) : outdentedComposer(editor, entries);\n });\n };\n\n var indentSelectedEntries = function indentSelectedEntries(entries, indentation) {\n each$1(filter$1(entries, isSelected), function (entry) {\n return indentEntry(indentation, entry);\n });\n };\n\n var getItemSelection = function getItemSelection(editor) {\n var selectedListItems = map(getSelectedListItems(editor), SugarElement.fromDom);\n return lift2(find$1(selectedListItems, not(hasFirstChildList)), find$1(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) {\n return {\n start: start,\n end: end\n };\n });\n };\n\n var listIndentation = function listIndentation(editor, lists, indentation) {\n var entrySets = parseLists(lists, getItemSelection(editor));\n each$1(entrySets, function (entrySet) {\n indentSelectedEntries(entrySet.entries, indentation);\n var composedLists = composeEntries(editor, entrySet.entries);\n each$1(composedLists, function (composedList) {\n fireListEvent(editor, indentation === 'Indent' ? 'IndentList' : 'OutdentList', composedList.dom);\n });\n before(entrySet.sourceList, composedLists);\n remove(entrySet.sourceList);\n });\n };\n\n var selectionIndentation = function selectionIndentation(editor, indentation) {\n var lists = map(getSelectedListRoots(editor), SugarElement.fromDom);\n var dlItems = map(getSelectedDlItems(editor), SugarElement.fromDom);\n var isHandled = false;\n\n if (lists.length || dlItems.length) {\n var bookmark = editor.selection.getBookmark();\n listIndentation(editor, lists, indentation);\n dlIndentation(editor, indentation, dlItems);\n editor.selection.moveToBookmark(bookmark);\n editor.selection.setRng(normalizeRange(editor.selection.getRng()));\n editor.nodeChanged();\n isHandled = true;\n }\n\n return isHandled;\n };\n\n var indentListSelection = function indentListSelection(editor) {\n return selectionIndentation(editor, 'Indent');\n };\n\n var outdentListSelection = function outdentListSelection(editor) {\n return selectionIndentation(editor, 'Outdent');\n };\n\n var flattenListSelection = function flattenListSelection(editor) {\n return selectionIndentation(editor, 'Flatten');\n };\n\n var global = tinymce.util.Tools.resolve('tinymce.dom.BookmarkManager');\n var DOM$1 = global$3.DOM;\n\n var createBookmark = function createBookmark(rng) {\n var bookmark = {};\n\n var setupEndPoint = function setupEndPoint(start) {\n var container = rng[start ? 'startContainer' : 'endContainer'];\n var offset = rng[start ? 'startOffset' : 'endOffset'];\n\n if (container.nodeType === 1) {\n var offsetNode = DOM$1.create('span', {\n 'data-mce-type': 'bookmark'\n });\n\n if (container.hasChildNodes()) {\n offset = Math.min(offset, container.childNodes.length - 1);\n\n if (start) {\n container.insertBefore(offsetNode, container.childNodes[offset]);\n } else {\n DOM$1.insertAfter(offsetNode, container.childNodes[offset]);\n }\n } else {\n container.appendChild(offsetNode);\n }\n\n container = offsetNode;\n offset = 0;\n }\n\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n\n setupEndPoint(true);\n\n if (!rng.collapsed) {\n setupEndPoint();\n }\n\n return bookmark;\n };\n\n var resolveBookmark = function resolveBookmark(bookmark) {\n var restoreEndPoint = function restoreEndPoint(start) {\n var node;\n\n var nodeIndex = function nodeIndex(container) {\n var node = container.parentNode.firstChild,\n idx = 0;\n\n while (node) {\n if (node === container) {\n return idx;\n }\n\n if (node.nodeType !== 1 || node.getAttribute('data-mce-type') !== 'bookmark') {\n idx++;\n }\n\n node = node.nextSibling;\n }\n\n return -1;\n };\n\n var container = node = bookmark[start ? 'startContainer' : 'endContainer'];\n var offset = bookmark[start ? 'startOffset' : 'endOffset'];\n\n if (!container) {\n return;\n }\n\n if (container.nodeType === 1) {\n offset = nodeIndex(container);\n container = container.parentNode;\n DOM$1.remove(node);\n\n if (!container.hasChildNodes() && DOM$1.isBlock(container)) {\n container.appendChild(DOM$1.create('br'));\n }\n }\n\n bookmark[start ? 'startContainer' : 'endContainer'] = container;\n bookmark[start ? 'startOffset' : 'endOffset'] = offset;\n };\n\n restoreEndPoint(true);\n restoreEndPoint();\n var rng = DOM$1.createRng();\n rng.setStart(bookmark.startContainer, bookmark.startOffset);\n\n if (bookmark.endContainer) {\n rng.setEnd(bookmark.endContainer, bookmark.endOffset);\n }\n\n return normalizeRange(rng);\n };\n\n var listToggleActionFromListName = function listToggleActionFromListName(listName) {\n switch (listName) {\n case 'UL':\n return 'ToggleUlList';\n\n case 'OL':\n return 'ToggleOlList';\n\n case 'DL':\n return 'ToggleDLList';\n }\n };\n\n var isCustomList = function isCustomList(list) {\n return /\\btox\\-/.test(list.className);\n };\n\n var listState = function listState(editor, listName, activate) {\n var nodeChangeHandler = function nodeChangeHandler(e) {\n var inList = findUntil(e.parents, isListNode, isTableCellNode).filter(function (list) {\n return list.nodeName === listName && !isCustomList(list);\n }).isSome();\n activate(inList);\n };\n\n var parents = editor.dom.getParents(editor.selection.getNode());\n nodeChangeHandler({\n parents: parents\n });\n editor.on('NodeChange', nodeChangeHandler);\n return function () {\n return editor.off('NodeChange', nodeChangeHandler);\n };\n };\n\n var updateListStyle = function updateListStyle(dom, el, detail) {\n var type = detail['list-style-type'] ? detail['list-style-type'] : null;\n dom.setStyle(el, 'list-style-type', type);\n };\n\n var setAttribs = function setAttribs(elm, attrs) {\n global$2.each(attrs, function (value, key) {\n elm.setAttribute(key, value);\n });\n };\n\n var updateListAttrs = function updateListAttrs(dom, el, detail) {\n setAttribs(el, detail['list-attributes']);\n global$2.each(dom.select('li', el), function (li) {\n setAttribs(li, detail['list-item-attributes']);\n });\n };\n\n var updateListWithDetails = function updateListWithDetails(dom, el, detail) {\n updateListStyle(dom, el, detail);\n updateListAttrs(dom, el, detail);\n };\n\n var removeStyles = function removeStyles(dom, element, styles) {\n global$2.each(styles, function (style) {\n var _a;\n\n return dom.setStyle(element, (_a = {}, _a[style] = '', _a));\n });\n };\n\n var getEndPointNode = function getEndPointNode(editor, rng, start, root) {\n var container = rng[start ? 'startContainer' : 'endContainer'];\n var offset = rng[start ? 'startOffset' : 'endOffset'];\n\n if (container.nodeType === 1) {\n container = container.childNodes[Math.min(offset, container.childNodes.length - 1)] || container;\n }\n\n if (!start && isBr(container.nextSibling)) {\n container = container.nextSibling;\n }\n\n while (container.parentNode !== root) {\n if (isTextBlock(editor, container)) {\n return container;\n }\n\n if (/^(TD|TH)$/.test(container.parentNode.nodeName)) {\n return container;\n }\n\n container = container.parentNode;\n }\n\n return container;\n };\n\n var getSelectedTextBlocks = function getSelectedTextBlocks(editor, rng, root) {\n var textBlocks = [];\n var dom = editor.dom;\n var startNode = getEndPointNode(editor, rng, true, root);\n var endNode = getEndPointNode(editor, rng, false, root);\n var block;\n var siblings = [];\n\n for (var node = startNode; node; node = node.nextSibling) {\n siblings.push(node);\n\n if (node === endNode) {\n break;\n }\n }\n\n global$2.each(siblings, function (node) {\n if (isTextBlock(editor, node)) {\n textBlocks.push(node);\n block = null;\n return;\n }\n\n if (dom.isBlock(node) || isBr(node)) {\n if (isBr(node)) {\n dom.remove(node);\n }\n\n block = null;\n return;\n }\n\n var nextSibling = node.nextSibling;\n\n if (global.isBookmarkNode(node)) {\n if (isListNode(nextSibling) || isTextBlock(editor, nextSibling) || !nextSibling && node.parentNode === root) {\n block = null;\n return;\n }\n }\n\n if (!block) {\n block = dom.create('p');\n node.parentNode.insertBefore(block, node);\n textBlocks.push(block);\n }\n\n block.appendChild(node);\n });\n return textBlocks;\n };\n\n var hasCompatibleStyle = function hasCompatibleStyle(dom, sib, detail) {\n var sibStyle = dom.getStyle(sib, 'list-style-type');\n var detailStyle = detail ? detail['list-style-type'] : '';\n detailStyle = detailStyle === null ? '' : detailStyle;\n return sibStyle === detailStyle;\n };\n\n var applyList = function applyList(editor, listName, detail) {\n var rng = editor.selection.getRng();\n var listItemName = 'LI';\n var root = getClosestListRootElm(editor, editor.selection.getStart(true));\n var dom = editor.dom;\n\n if (dom.getContentEditable(editor.selection.getNode()) === 'false') {\n return;\n }\n\n listName = listName.toUpperCase();\n\n if (listName === 'DL') {\n listItemName = 'DT';\n }\n\n var bookmark = createBookmark(rng);\n var selectedTextBlocks = getSelectedTextBlocks(editor, rng, root);\n global$2.each(selectedTextBlocks, function (block) {\n var listBlock;\n var sibling = block.previousSibling;\n var parent = block.parentNode;\n\n if (!isListItemNode(parent)) {\n if (sibling && isListNode(sibling) && sibling.nodeName === listName && hasCompatibleStyle(dom, sibling, detail)) {\n listBlock = sibling;\n block = dom.rename(block, listItemName);\n sibling.appendChild(block);\n } else {\n listBlock = dom.create(listName);\n block.parentNode.insertBefore(listBlock, block);\n listBlock.appendChild(block);\n block = dom.rename(block, listItemName);\n }\n\n removeStyles(dom, block, ['margin', 'margin-right', 'margin-bottom', 'margin-left', 'margin-top', 'padding', 'padding-right', 'padding-bottom', 'padding-left', 'padding-top']);\n updateListWithDetails(dom, listBlock, detail);\n mergeWithAdjacentLists(editor.dom, listBlock);\n }\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n };\n\n var isValidLists = function isValidLists(list1, list2) {\n return list1 && list2 && isListNode(list1) && list1.nodeName === list2.nodeName;\n };\n\n var hasSameListStyle = function hasSameListStyle(dom, list1, list2) {\n var targetStyle = dom.getStyle(list1, 'list-style-type', true);\n var style = dom.getStyle(list2, 'list-style-type', true);\n return targetStyle === style;\n };\n\n var hasSameClasses = function hasSameClasses(elm1, elm2) {\n return elm1.className === elm2.className;\n };\n\n var shouldMerge = function shouldMerge(dom, list1, list2) {\n return isValidLists(list1, list2) && hasSameListStyle(dom, list1, list2) && hasSameClasses(list1, list2);\n };\n\n var mergeWithAdjacentLists = function mergeWithAdjacentLists(dom, listBlock) {\n var sibling, node;\n sibling = listBlock.nextSibling;\n\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.firstChild) {\n listBlock.appendChild(node);\n }\n\n dom.remove(sibling);\n }\n\n sibling = listBlock.previousSibling;\n\n if (shouldMerge(dom, listBlock, sibling)) {\n while (node = sibling.lastChild) {\n listBlock.insertBefore(node, listBlock.firstChild);\n }\n\n dom.remove(sibling);\n }\n };\n\n var updateList$1 = function updateList$1(editor, list, listName, detail) {\n if (list.nodeName !== listName) {\n var newList = editor.dom.rename(list, listName);\n updateListWithDetails(editor.dom, newList, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n } else {\n updateListWithDetails(editor.dom, list, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), list);\n }\n };\n\n var toggleMultipleLists = function toggleMultipleLists(editor, parentList, lists, listName, detail) {\n var parentIsList = isListNode(parentList);\n\n if (parentIsList && parentList.nodeName === listName && !hasListStyleDetail(detail)) {\n flattenListSelection(editor);\n } else {\n applyList(editor, listName, detail);\n var bookmark = createBookmark(editor.selection.getRng());\n var allLists = parentIsList ? __spreadArray([parentList], lists, true) : lists;\n global$2.each(allLists, function (elm) {\n updateList$1(editor, elm, listName, detail);\n });\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n\n var hasListStyleDetail = function hasListStyleDetail(detail) {\n return 'list-style-type' in detail;\n };\n\n var toggleSingleList = function toggleSingleList(editor, parentList, listName, detail) {\n if (parentList === editor.getBody()) {\n return;\n }\n\n if (parentList) {\n if (parentList.nodeName === listName && !hasListStyleDetail(detail) && !isCustomList(parentList)) {\n flattenListSelection(editor);\n } else {\n var bookmark = createBookmark(editor.selection.getRng());\n updateListWithDetails(editor.dom, parentList, detail);\n var newList = editor.dom.rename(parentList, listName);\n mergeWithAdjacentLists(editor.dom, newList);\n editor.selection.setRng(resolveBookmark(bookmark));\n applyList(editor, listName, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), newList);\n }\n } else {\n applyList(editor, listName, detail);\n fireListEvent(editor, listToggleActionFromListName(listName), parentList);\n }\n };\n\n var toggleList = function toggleList(editor, listName, _detail) {\n var parentList = getParentList(editor);\n var selectedSubLists = getSelectedSubLists(editor);\n var detail = isObject(_detail) ? _detail : {};\n\n if (selectedSubLists.length > 0) {\n toggleMultipleLists(editor, parentList, selectedSubLists, listName, detail);\n } else {\n toggleSingleList(editor, parentList, listName, detail);\n }\n };\n\n var DOM = global$3.DOM;\n\n var normalizeList = function normalizeList(dom, list) {\n var parentNode = list.parentNode;\n\n if (parentNode.nodeName === 'LI' && parentNode.firstChild === list) {\n var sibling = parentNode.previousSibling;\n\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(list);\n\n if (isEmpty(dom, parentNode)) {\n DOM.remove(parentNode);\n }\n } else {\n DOM.setStyle(parentNode, 'listStyleType', 'none');\n }\n }\n\n if (isListNode(parentNode)) {\n var sibling = parentNode.previousSibling;\n\n if (sibling && sibling.nodeName === 'LI') {\n sibling.appendChild(list);\n }\n }\n };\n\n var normalizeLists = function normalizeLists(dom, element) {\n var lists = global$2.grep(dom.select('ol,ul', element));\n global$2.each(lists, function (list) {\n normalizeList(dom, list);\n });\n };\n\n var findNextCaretContainer = function findNextCaretContainer(editor, rng, isForward, root) {\n var node = rng.startContainer;\n var offset = rng.startOffset;\n\n if (isTextNode(node) && (isForward ? offset < node.data.length : offset > 0)) {\n return node;\n }\n\n var nonEmptyBlocks = editor.schema.getNonEmptyElements();\n\n if (node.nodeType === 1) {\n node = global$6.getNode(node, offset);\n }\n\n var walker = new global$5(node, root);\n\n if (isForward) {\n if (isBogusBr(editor.dom, node)) {\n walker.next();\n }\n }\n\n while (node = walker[isForward ? 'next' : 'prev2']()) {\n if (node.nodeName === 'LI' && !node.hasChildNodes()) {\n return node;\n }\n\n if (nonEmptyBlocks[node.nodeName]) {\n return node;\n }\n\n if (isTextNode(node) && node.data.length > 0) {\n return node;\n }\n }\n };\n\n var hasOnlyOneBlockChild = function hasOnlyOneBlockChild(dom, elm) {\n var childNodes = elm.childNodes;\n return childNodes.length === 1 && !isListNode(childNodes[0]) && dom.isBlock(childNodes[0]);\n };\n\n var unwrapSingleBlockChild = function unwrapSingleBlockChild(dom, elm) {\n if (hasOnlyOneBlockChild(dom, elm)) {\n dom.remove(elm.firstChild, true);\n }\n };\n\n var moveChildren = function moveChildren(dom, fromElm, toElm) {\n var node;\n var targetElm = hasOnlyOneBlockChild(dom, toElm) ? toElm.firstChild : toElm;\n unwrapSingleBlockChild(dom, fromElm);\n\n if (!isEmpty(dom, fromElm, true)) {\n while (node = fromElm.firstChild) {\n targetElm.appendChild(node);\n }\n }\n };\n\n var mergeLiElements = function mergeLiElements(dom, fromElm, toElm) {\n var listNode;\n var ul = fromElm.parentNode;\n\n if (!isChildOfBody(dom, fromElm) || !isChildOfBody(dom, toElm)) {\n return;\n }\n\n if (isListNode(toElm.lastChild)) {\n listNode = toElm.lastChild;\n }\n\n if (ul === toElm.lastChild) {\n if (isBr(ul.previousSibling)) {\n dom.remove(ul.previousSibling);\n }\n }\n\n var node = toElm.lastChild;\n\n if (node && isBr(node) && fromElm.hasChildNodes()) {\n dom.remove(node);\n }\n\n if (isEmpty(dom, toElm, true)) {\n dom.$(toElm).empty();\n }\n\n moveChildren(dom, fromElm, toElm);\n\n if (listNode) {\n toElm.appendChild(listNode);\n }\n\n var contains$1 = contains(SugarElement.fromDom(toElm), SugarElement.fromDom(fromElm));\n var nestedLists = contains$1 ? dom.getParents(fromElm, isListNode, toElm) : [];\n dom.remove(fromElm);\n each$1(nestedLists, function (list) {\n if (isEmpty(dom, list) && list !== dom.getRoot()) {\n dom.remove(list);\n }\n });\n };\n\n var mergeIntoEmptyLi = function mergeIntoEmptyLi(editor, fromLi, toLi) {\n editor.dom.$(toLi).empty();\n mergeLiElements(editor.dom, fromLi, toLi);\n editor.selection.setCursorLocation(toLi, 0);\n };\n\n var mergeForward = function mergeForward(editor, rng, fromLi, toLi) {\n var dom = editor.dom;\n\n if (dom.isEmpty(toLi)) {\n mergeIntoEmptyLi(editor, fromLi, toLi);\n } else {\n var bookmark = createBookmark(rng);\n mergeLiElements(dom, fromLi, toLi);\n editor.selection.setRng(resolveBookmark(bookmark));\n }\n };\n\n var mergeBackward = function mergeBackward(editor, rng, fromLi, toLi) {\n var bookmark = createBookmark(rng);\n mergeLiElements(editor.dom, fromLi, toLi);\n var resolvedBookmark = resolveBookmark(bookmark);\n editor.selection.setRng(resolvedBookmark);\n };\n\n var backspaceDeleteFromListToListCaret = function backspaceDeleteFromListToListCaret(editor, isForward) {\n var dom = editor.dom,\n selection = editor.selection;\n var selectionStartElm = selection.getStart();\n var root = getClosestListRootElm(editor, selectionStartElm);\n var li = dom.getParent(selection.getStart(), 'LI', root);\n\n if (li) {\n var ul = li.parentNode;\n\n if (ul === editor.getBody() && isEmpty(dom, ul)) {\n return true;\n }\n\n var rng_1 = normalizeRange(selection.getRng());\n var otherLi_1 = dom.getParent(findNextCaretContainer(editor, rng_1, isForward, root), 'LI', root);\n\n if (otherLi_1 && otherLi_1 !== li) {\n editor.undoManager.transact(function () {\n if (isForward) {\n mergeForward(editor, rng_1, otherLi_1, li);\n } else {\n if (isFirstChild(li)) {\n outdentListSelection(editor);\n } else {\n mergeBackward(editor, rng_1, li, otherLi_1);\n }\n }\n });\n return true;\n } else if (!otherLi_1) {\n if (!isForward && rng_1.startOffset === 0 && rng_1.endOffset === 0) {\n editor.undoManager.transact(function () {\n flattenListSelection(editor);\n });\n return true;\n }\n }\n }\n\n return false;\n };\n\n var removeBlock = function removeBlock(dom, block, root) {\n var parentBlock = dom.getParent(block.parentNode, dom.isBlock, root);\n dom.remove(block);\n\n if (parentBlock && dom.isEmpty(parentBlock)) {\n dom.remove(parentBlock);\n }\n };\n\n var backspaceDeleteIntoListCaret = function backspaceDeleteIntoListCaret(editor, isForward) {\n var dom = editor.dom;\n var selectionStartElm = editor.selection.getStart();\n var root = getClosestListRootElm(editor, selectionStartElm);\n var block = dom.getParent(selectionStartElm, dom.isBlock, root);\n\n if (block && dom.isEmpty(block)) {\n var rng = normalizeRange(editor.selection.getRng());\n var otherLi_2 = dom.getParent(findNextCaretContainer(editor, rng, isForward, root), 'LI', root);\n\n if (otherLi_2) {\n editor.undoManager.transact(function () {\n removeBlock(dom, block, root);\n mergeWithAdjacentLists(dom, otherLi_2.parentNode);\n editor.selection.select(otherLi_2, true);\n editor.selection.collapse(isForward);\n });\n return true;\n }\n }\n\n return false;\n };\n\n var backspaceDeleteCaret = function backspaceDeleteCaret(editor, isForward) {\n return backspaceDeleteFromListToListCaret(editor, isForward) || backspaceDeleteIntoListCaret(editor, isForward);\n };\n\n var backspaceDeleteRange = function backspaceDeleteRange(editor) {\n var selectionStartElm = editor.selection.getStart();\n var root = getClosestListRootElm(editor, selectionStartElm);\n var startListParent = editor.dom.getParent(selectionStartElm, 'LI,DT,DD', root);\n\n if (startListParent || getSelectedListItems(editor).length > 0) {\n editor.undoManager.transact(function () {\n editor.execCommand('Delete');\n normalizeLists(editor.dom, editor.getBody());\n });\n return true;\n }\n\n return false;\n };\n\n var _backspaceDelete = function backspaceDelete(editor, isForward) {\n return editor.selection.isCollapsed() ? backspaceDeleteCaret(editor, isForward) : backspaceDeleteRange(editor);\n };\n\n var setup$1 = function setup$1(editor) {\n editor.on('keydown', function (e) {\n if (e.keyCode === global$4.BACKSPACE) {\n if (_backspaceDelete(editor, false)) {\n e.preventDefault();\n }\n } else if (e.keyCode === global$4.DELETE) {\n if (_backspaceDelete(editor, true)) {\n e.preventDefault();\n }\n }\n });\n };\n\n var get = function get(editor) {\n return {\n backspaceDelete: function backspaceDelete(isForward) {\n _backspaceDelete(editor, isForward);\n }\n };\n };\n\n var updateList = function updateList(editor, update) {\n var parentList = getParentList(editor);\n editor.undoManager.transact(function () {\n if (isObject(update.styles)) {\n editor.dom.setStyles(parentList, update.styles);\n }\n\n if (isObject(update.attrs)) {\n each(update.attrs, function (v, k) {\n return editor.dom.setAttrib(parentList, k, v);\n });\n }\n });\n };\n\n var parseAlphabeticBase26 = function parseAlphabeticBase26(str) {\n var chars = reverse(trim(str).split(''));\n var values = map(chars, function (char, i) {\n var charValue = char.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0) + 1;\n return Math.pow(26, i) * charValue;\n });\n return foldl(values, function (sum, v) {\n return sum + v;\n }, 0);\n };\n\n var composeAlphabeticBase26 = function composeAlphabeticBase26(value) {\n value--;\n\n if (value < 0) {\n return '';\n } else {\n var remainder = value % 26;\n var quotient = Math.floor(value / 26);\n var rest = composeAlphabeticBase26(quotient);\n var char = String.fromCharCode('A'.charCodeAt(0) + remainder);\n return rest + char;\n }\n };\n\n var isUppercase = function isUppercase(str) {\n return /^[A-Z]+$/.test(str);\n };\n\n var isLowercase = function isLowercase(str) {\n return /^[a-z]+$/.test(str);\n };\n\n var isNumeric = function isNumeric(str) {\n return /^[0-9]+$/.test(str);\n };\n\n var deduceListType = function deduceListType(start) {\n if (isNumeric(start)) {\n return 2;\n } else if (isUppercase(start)) {\n return 0;\n } else if (isLowercase(start)) {\n return 1;\n } else if (isEmpty$1(start)) {\n return 3;\n } else {\n return 4;\n }\n };\n\n var parseStartValue = function parseStartValue(start) {\n switch (deduceListType(start)) {\n case 2:\n return Optional.some({\n listStyleType: Optional.none(),\n start: start\n });\n\n case 0:\n return Optional.some({\n listStyleType: Optional.some('upper-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n\n case 1:\n return Optional.some({\n listStyleType: Optional.some('lower-alpha'),\n start: parseAlphabeticBase26(start).toString()\n });\n\n case 3:\n return Optional.some({\n listStyleType: Optional.none(),\n start: ''\n });\n\n case 4:\n return Optional.none();\n }\n };\n\n var parseDetail = function parseDetail(detail) {\n var start = parseInt(detail.start, 10);\n\n if (is(detail.listStyleType, 'upper-alpha')) {\n return composeAlphabeticBase26(start);\n } else if (is(detail.listStyleType, 'lower-alpha')) {\n return composeAlphabeticBase26(start).toLowerCase();\n } else {\n return detail.start;\n }\n };\n\n var open = function open(editor) {\n var currentList = getParentList(editor);\n\n if (!isOlNode(currentList)) {\n return;\n }\n\n editor.windowManager.open({\n title: 'List Properties',\n body: {\n type: 'panel',\n items: [{\n type: 'input',\n name: 'start',\n label: 'Start list at number',\n inputMode: 'numeric'\n }]\n },\n initialData: {\n start: parseDetail({\n start: editor.dom.getAttrib(currentList, 'start', '1'),\n listStyleType: Optional.some(editor.dom.getStyle(currentList, 'list-style-type'))\n })\n },\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n onSubmit: function onSubmit(api) {\n var data = api.getData();\n parseStartValue(data.start).each(function (detail) {\n editor.execCommand('mceListUpdate', false, {\n attrs: {\n start: detail.start === '1' ? '' : detail.start\n },\n styles: {\n 'list-style-type': detail.listStyleType.getOr('')\n }\n });\n });\n api.close();\n }\n });\n };\n\n var queryListCommandState = function queryListCommandState(editor, listName) {\n return function () {\n var parentList = getParentList(editor);\n return parentList && parentList.nodeName === listName;\n };\n };\n\n var registerDialog = function registerDialog(editor) {\n editor.addCommand('mceListProps', function () {\n open(editor);\n });\n };\n\n var register$2 = function register$2(editor) {\n editor.on('BeforeExecCommand', function (e) {\n var cmd = e.command.toLowerCase();\n\n if (cmd === 'indent') {\n indentListSelection(editor);\n } else if (cmd === 'outdent') {\n outdentListSelection(editor);\n }\n });\n editor.addCommand('InsertUnorderedList', function (ui, detail) {\n toggleList(editor, 'UL', detail);\n });\n editor.addCommand('InsertOrderedList', function (ui, detail) {\n toggleList(editor, 'OL', detail);\n });\n editor.addCommand('InsertDefinitionList', function (ui, detail) {\n toggleList(editor, 'DL', detail);\n });\n editor.addCommand('RemoveList', function () {\n flattenListSelection(editor);\n });\n registerDialog(editor);\n editor.addCommand('mceListUpdate', function (ui, detail) {\n if (isObject(detail)) {\n updateList(editor, detail);\n }\n });\n editor.addQueryStateHandler('InsertUnorderedList', queryListCommandState(editor, 'UL'));\n editor.addQueryStateHandler('InsertOrderedList', queryListCommandState(editor, 'OL'));\n editor.addQueryStateHandler('InsertDefinitionList', queryListCommandState(editor, 'DL'));\n };\n\n var setupTabKey = function setupTabKey(editor) {\n editor.on('keydown', function (e) {\n if (e.keyCode !== global$4.TAB || global$4.metaKeyPressed(e)) {\n return;\n }\n\n editor.undoManager.transact(function () {\n if (e.shiftKey ? outdentListSelection(editor) : indentListSelection(editor)) {\n e.preventDefault();\n }\n });\n });\n };\n\n var setup = function setup(editor) {\n if (shouldIndentOnTab(editor)) {\n setupTabKey(editor);\n }\n\n setup$1(editor);\n };\n\n var register$1 = function register$1(editor) {\n var exec = function exec(command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n\n if (!editor.hasPlugin('advlist')) {\n editor.ui.registry.addToggleButton('numlist', {\n icon: 'ordered-list',\n active: false,\n tooltip: 'Numbered list',\n onAction: exec('InsertOrderedList'),\n onSetup: function onSetup(api) {\n return listState(editor, 'OL', api.setActive);\n }\n });\n editor.ui.registry.addToggleButton('bullist', {\n icon: 'unordered-list',\n active: false,\n tooltip: 'Bullet list',\n onAction: exec('InsertUnorderedList'),\n onSetup: function onSetup(api) {\n return listState(editor, 'UL', api.setActive);\n }\n });\n }\n };\n\n var register = function register(editor) {\n var listProperties = {\n text: 'List properties...',\n icon: 'ordered-list',\n onAction: function onAction() {\n return editor.execCommand('mceListProps');\n },\n onSetup: function onSetup(api) {\n return listState(editor, 'OL', function (active) {\n return api.setDisabled(!active);\n });\n }\n };\n editor.ui.registry.addMenuItem('listprops', listProperties);\n editor.ui.registry.addContextMenu('lists', {\n update: function update(node) {\n var parentList = getParentList(editor, node);\n return isOlNode(parentList) ? ['listprops'] : [];\n }\n });\n };\n\n function Plugin() {\n global$7.add('lists', function (editor) {\n if (editor.hasPlugin('rtc', true) === false) {\n setup(editor);\n register$2(editor);\n } else {\n registerDialog(editor);\n }\n\n register$1(editor);\n register(editor);\n return get(editor);\n });\n }\n\n Plugin();\n})();","// Exports the \"image\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/image')\n// ES2015:\n// import 'tinymce/plugins/image'\nrequire('./plugin.js');","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.3 (2022-02-09)\n */\n(function () {\n 'use strict';\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n };\n\n var typeOf = function typeOf(x) {\n var t = _typeof(x);\n\n if (x === null) {\n return 'null';\n } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n } else {\n return t;\n }\n };\n\n var isType = function isType(type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n\n var isSimpleType = function isSimpleType(type) {\n return function (value) {\n return _typeof(value) === type;\n };\n };\n\n var eq = function eq(t) {\n return function (a) {\n return t === a;\n };\n };\n\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n var isNull = eq(null);\n var isBoolean = isSimpleType('boolean');\n\n var isNullable = function isNullable(a) {\n return a === null || a === undefined;\n };\n\n var isNonNullable = function isNonNullable(a) {\n return !isNullable(a);\n };\n\n var isFunction = isSimpleType('function');\n var isNumber = isSimpleType('number');\n\n var noop = function noop() {};\n\n var constant = function constant(value) {\n return function () {\n return value;\n };\n };\n\n var identity = function identity(x) {\n return x;\n };\n\n var never = constant(false);\n var always = constant(true);\n\n var none = function none() {\n return NONE;\n };\n\n var NONE = function () {\n var call = function call(thunk) {\n return thunk();\n };\n\n var id = identity;\n var me = {\n fold: function fold(n, _s) {\n return n();\n },\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function getOrDie(msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: function filter() {\n return none();\n },\n toArray: function toArray() {\n return [];\n },\n toString: constant('none()')\n };\n return me;\n }();\n\n var some = function some(a) {\n var constant_a = constant(a);\n\n var self = function self() {\n return me;\n };\n\n var bind = function bind(f) {\n return f(a);\n };\n\n var me = {\n fold: function fold(n, s) {\n return s(a);\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function map(f) {\n return some(f(a));\n },\n each: function each(f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function filter(f) {\n return f(a) ? me : NONE;\n },\n toArray: function toArray() {\n return [a];\n },\n toString: function toString() {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n\n var from = function from(value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n\n var Optional = {\n some: some,\n none: none,\n from: from\n };\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n\n var each = function each(obj, f) {\n var props = keys(obj);\n\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n\n var objAcc = function objAcc(r) {\n return function (x, i) {\n r[i] = x;\n };\n };\n\n var internalFilter = function internalFilter(obj, pred, onTrue, onFalse) {\n var r = {};\n each(obj, function (x, i) {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n return r;\n };\n\n var filter = function filter(obj, pred) {\n var t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n\n var has = function has(obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var hasNonNullableKey = function hasNonNullableKey(obj, key) {\n return has(obj, key) && obj[key] !== undefined && obj[key] !== null;\n };\n\n var nativePush = Array.prototype.push;\n\n var flatten = function flatten(xs) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n\n nativePush.apply(r, xs[i]);\n }\n\n return r;\n };\n\n var get = function get(xs, i) {\n return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n };\n\n var head = function head(xs) {\n return get(xs, 0);\n };\n\n var findMap = function findMap(arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n\n if (r.isSome()) {\n return r;\n }\n }\n\n return Optional.none();\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n var rawSet = function rawSet(dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n\n var set = function set(element, key, value) {\n rawSet(element.dom, key, value);\n };\n\n var remove = function remove(element, key) {\n element.dom.removeAttribute(key);\n };\n\n var fromHtml = function fromHtml(html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n\n return fromDom(div.childNodes[0]);\n };\n\n var fromTag = function fromTag(tag, scope) {\n var doc = scope || document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n\n var fromText = function fromText(text, scope) {\n var doc = scope || document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n\n var fromDom = function fromDom(node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n\n return {\n dom: node\n };\n };\n\n var fromPoint = function fromPoint(docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n };\n\n var SugarElement = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n var global$5 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.URI');\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.XHR');\n\n var hasDimensions = function hasDimensions(editor) {\n return editor.getParam('image_dimensions', true, 'boolean');\n };\n\n var hasAdvTab = function hasAdvTab(editor) {\n return editor.getParam('image_advtab', false, 'boolean');\n };\n\n var hasUploadTab = function hasUploadTab(editor) {\n return editor.getParam('image_uploadtab', true, 'boolean');\n };\n\n var getPrependUrl = function getPrependUrl(editor) {\n return editor.getParam('image_prepend_url', '', 'string');\n };\n\n var getClassList = function getClassList(editor) {\n return editor.getParam('image_class_list');\n };\n\n var hasDescription = function hasDescription(editor) {\n return editor.getParam('image_description', true, 'boolean');\n };\n\n var hasImageTitle = function hasImageTitle(editor) {\n return editor.getParam('image_title', false, 'boolean');\n };\n\n var hasImageCaption = function hasImageCaption(editor) {\n return editor.getParam('image_caption', false, 'boolean');\n };\n\n var getImageList = function getImageList(editor) {\n return editor.getParam('image_list', false);\n };\n\n var hasUploadUrl = function hasUploadUrl(editor) {\n return isNonNullable(editor.getParam('images_upload_url'));\n };\n\n var hasUploadHandler = function hasUploadHandler(editor) {\n return isNonNullable(editor.getParam('images_upload_handler'));\n };\n\n var showAccessibilityOptions = function showAccessibilityOptions(editor) {\n return editor.getParam('a11y_advanced_options', false, 'boolean');\n };\n\n var isAutomaticUploadsEnabled = function isAutomaticUploadsEnabled(editor) {\n return editor.getParam('automatic_uploads', true, 'boolean');\n };\n\n var parseIntAndGetMax = function parseIntAndGetMax(val1, val2) {\n return Math.max(parseInt(val1, 10), parseInt(val2, 10));\n };\n\n var getImageSize = function getImageSize(url) {\n return new global$4(function (callback) {\n var img = document.createElement('img');\n\n var done = function done(dimensions) {\n img.onload = img.onerror = null;\n\n if (img.parentNode) {\n img.parentNode.removeChild(img);\n }\n\n callback(dimensions);\n };\n\n img.onload = function () {\n var width = parseIntAndGetMax(img.width, img.clientWidth);\n var height = parseIntAndGetMax(img.height, img.clientHeight);\n var dimensions = {\n width: width,\n height: height\n };\n done(global$4.resolve(dimensions));\n };\n\n img.onerror = function () {\n done(global$4.reject('Failed to get image dimensions for: ' + url));\n };\n\n var style = img.style;\n style.visibility = 'hidden';\n style.position = 'fixed';\n style.bottom = style.left = '0px';\n style.width = style.height = 'auto';\n document.body.appendChild(img);\n img.src = url;\n });\n };\n\n var removePixelSuffix = function removePixelSuffix(value) {\n if (value) {\n value = value.replace(/px$/, '');\n }\n\n return value;\n };\n\n var addPixelSuffix = function addPixelSuffix(value) {\n if (value.length > 0 && /^[0-9]+$/.test(value)) {\n value += 'px';\n }\n\n return value;\n };\n\n var mergeMargins = function mergeMargins(css) {\n if (css.margin) {\n var splitMargin = String(css.margin).split(' ');\n\n switch (splitMargin.length) {\n case 1:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[0];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[0];\n break;\n\n case 2:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[0];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n\n case 3:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[1];\n break;\n\n case 4:\n css['margin-top'] = css['margin-top'] || splitMargin[0];\n css['margin-right'] = css['margin-right'] || splitMargin[1];\n css['margin-bottom'] = css['margin-bottom'] || splitMargin[2];\n css['margin-left'] = css['margin-left'] || splitMargin[3];\n }\n\n delete css.margin;\n }\n\n return css;\n };\n\n var createImageList = function createImageList(editor, callback) {\n var imageList = getImageList(editor);\n\n if (isString(imageList)) {\n global$2.send({\n url: imageList,\n success: function success(text) {\n callback(JSON.parse(text));\n }\n });\n } else if (isFunction(imageList)) {\n imageList(callback);\n } else {\n callback(imageList);\n }\n };\n\n var waitLoadImage = function waitLoadImage(editor, data, imgElm) {\n var selectImage = function selectImage() {\n imgElm.onload = imgElm.onerror = null;\n\n if (editor.selection) {\n editor.selection.select(imgElm);\n editor.nodeChanged();\n }\n };\n\n imgElm.onload = function () {\n if (!data.width && !data.height && hasDimensions(editor)) {\n editor.dom.setAttribs(imgElm, {\n width: String(imgElm.clientWidth),\n height: String(imgElm.clientHeight)\n });\n }\n\n selectImage();\n };\n\n imgElm.onerror = selectImage;\n };\n\n var blobToDataUri = function blobToDataUri(blob) {\n return new global$4(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function () {\n resolve(reader.result);\n };\n\n reader.onerror = function () {\n reject(reader.error.message);\n };\n\n reader.readAsDataURL(blob);\n });\n };\n\n var isPlaceholderImage = function isPlaceholderImage(imgElm) {\n return imgElm.nodeName === 'IMG' && (imgElm.hasAttribute('data-mce-object') || imgElm.hasAttribute('data-mce-placeholder'));\n };\n\n var isSafeImageUrl = function isSafeImageUrl(editor, src) {\n return global$3.isDomSafe(src, 'img', editor.settings);\n };\n\n var DOM = global$5.DOM;\n\n var getHspace = function getHspace(image) {\n if (image.style.marginLeft && image.style.marginRight && image.style.marginLeft === image.style.marginRight) {\n return removePixelSuffix(image.style.marginLeft);\n } else {\n return '';\n }\n };\n\n var getVspace = function getVspace(image) {\n if (image.style.marginTop && image.style.marginBottom && image.style.marginTop === image.style.marginBottom) {\n return removePixelSuffix(image.style.marginTop);\n } else {\n return '';\n }\n };\n\n var getBorder = function getBorder(image) {\n if (image.style.borderWidth) {\n return removePixelSuffix(image.style.borderWidth);\n } else {\n return '';\n }\n };\n\n var getAttrib = function getAttrib(image, name) {\n if (image.hasAttribute(name)) {\n return image.getAttribute(name);\n } else {\n return '';\n }\n };\n\n var getStyle = function getStyle(image, name) {\n return image.style[name] ? image.style[name] : '';\n };\n\n var hasCaption = function hasCaption(image) {\n return image.parentNode !== null && image.parentNode.nodeName === 'FIGURE';\n };\n\n var updateAttrib = function updateAttrib(image, name, value) {\n if (value === '') {\n image.removeAttribute(name);\n } else {\n image.setAttribute(name, value);\n }\n };\n\n var wrapInFigure = function wrapInFigure(image) {\n var figureElm = DOM.create('figure', {\n class: 'image'\n });\n DOM.insertAfter(figureElm, image);\n figureElm.appendChild(image);\n figureElm.appendChild(DOM.create('figcaption', {\n contentEditable: 'true'\n }, 'Caption'));\n figureElm.contentEditable = 'false';\n };\n\n var removeFigure = function removeFigure(image) {\n var figureElm = image.parentNode;\n DOM.insertAfter(image, figureElm);\n DOM.remove(figureElm);\n };\n\n var toggleCaption = function toggleCaption(image) {\n if (hasCaption(image)) {\n removeFigure(image);\n } else {\n wrapInFigure(image);\n }\n };\n\n var normalizeStyle = function normalizeStyle(image, normalizeCss) {\n var attrValue = image.getAttribute('style');\n var value = normalizeCss(attrValue !== null ? attrValue : '');\n\n if (value.length > 0) {\n image.setAttribute('style', value);\n image.setAttribute('data-mce-style', value);\n } else {\n image.removeAttribute('style');\n }\n };\n\n var setSize = function setSize(name, normalizeCss) {\n return function (image, name, value) {\n if (image.style[name]) {\n image.style[name] = addPixelSuffix(value);\n normalizeStyle(image, normalizeCss);\n } else {\n updateAttrib(image, name, value);\n }\n };\n };\n\n var getSize = function getSize(image, name) {\n if (image.style[name]) {\n return removePixelSuffix(image.style[name]);\n } else {\n return getAttrib(image, name);\n }\n };\n\n var setHspace = function setHspace(image, value) {\n var pxValue = addPixelSuffix(value);\n image.style.marginLeft = pxValue;\n image.style.marginRight = pxValue;\n };\n\n var setVspace = function setVspace(image, value) {\n var pxValue = addPixelSuffix(value);\n image.style.marginTop = pxValue;\n image.style.marginBottom = pxValue;\n };\n\n var setBorder = function setBorder(image, value) {\n var pxValue = addPixelSuffix(value);\n image.style.borderWidth = pxValue;\n };\n\n var setBorderStyle = function setBorderStyle(image, value) {\n image.style.borderStyle = value;\n };\n\n var getBorderStyle = function getBorderStyle(image) {\n return getStyle(image, 'borderStyle');\n };\n\n var isFigure = function isFigure(elm) {\n return elm.nodeName === 'FIGURE';\n };\n\n var isImage = function isImage(elm) {\n return elm.nodeName === 'IMG';\n };\n\n var getIsDecorative = function getIsDecorative(image) {\n return DOM.getAttrib(image, 'alt').length === 0 && DOM.getAttrib(image, 'role') === 'presentation';\n };\n\n var getAlt = function getAlt(image) {\n if (getIsDecorative(image)) {\n return '';\n } else {\n return getAttrib(image, 'alt');\n }\n };\n\n var defaultData = function defaultData() {\n return {\n src: '',\n alt: '',\n title: '',\n width: '',\n height: '',\n class: '',\n style: '',\n caption: false,\n hspace: '',\n vspace: '',\n border: '',\n borderStyle: '',\n isDecorative: false\n };\n };\n\n var getStyleValue = function getStyleValue(normalizeCss, data) {\n var image = document.createElement('img');\n updateAttrib(image, 'style', data.style);\n\n if (getHspace(image) || data.hspace !== '') {\n setHspace(image, data.hspace);\n }\n\n if (getVspace(image) || data.vspace !== '') {\n setVspace(image, data.vspace);\n }\n\n if (getBorder(image) || data.border !== '') {\n setBorder(image, data.border);\n }\n\n if (getBorderStyle(image) || data.borderStyle !== '') {\n setBorderStyle(image, data.borderStyle);\n }\n\n return normalizeCss(image.getAttribute('style'));\n };\n\n var create = function create(normalizeCss, data) {\n var image = document.createElement('img');\n write(normalizeCss, _assign(_assign({}, data), {\n caption: false\n }), image);\n setAlt(image, data.alt, data.isDecorative);\n\n if (data.caption) {\n var figure = DOM.create('figure', {\n class: 'image'\n });\n figure.appendChild(image);\n figure.appendChild(DOM.create('figcaption', {\n contentEditable: 'true'\n }, 'Caption'));\n figure.contentEditable = 'false';\n return figure;\n } else {\n return image;\n }\n };\n\n var read = function read(normalizeCss, image) {\n return {\n src: getAttrib(image, 'src'),\n alt: getAlt(image),\n title: getAttrib(image, 'title'),\n width: getSize(image, 'width'),\n height: getSize(image, 'height'),\n class: getAttrib(image, 'class'),\n style: normalizeCss(getAttrib(image, 'style')),\n caption: hasCaption(image),\n hspace: getHspace(image),\n vspace: getVspace(image),\n border: getBorder(image),\n borderStyle: getStyle(image, 'borderStyle'),\n isDecorative: getIsDecorative(image)\n };\n };\n\n var updateProp = function updateProp(image, oldData, newData, name, set) {\n if (newData[name] !== oldData[name]) {\n set(image, name, newData[name]);\n }\n };\n\n var setAlt = function setAlt(image, alt, isDecorative) {\n if (isDecorative) {\n DOM.setAttrib(image, 'role', 'presentation');\n var sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', '');\n } else {\n if (isNull(alt)) {\n var sugarImage = SugarElement.fromDom(image);\n remove(sugarImage, 'alt');\n } else {\n var sugarImage = SugarElement.fromDom(image);\n set(sugarImage, 'alt', alt);\n }\n\n if (DOM.getAttrib(image, 'role') === 'presentation') {\n DOM.setAttrib(image, 'role', '');\n }\n }\n };\n\n var updateAlt = function updateAlt(image, oldData, newData) {\n if (newData.alt !== oldData.alt || newData.isDecorative !== oldData.isDecorative) {\n setAlt(image, newData.alt, newData.isDecorative);\n }\n };\n\n var normalized = function normalized(set, normalizeCss) {\n return function (image, name, value) {\n set(image, value);\n normalizeStyle(image, normalizeCss);\n };\n };\n\n var write = function write(normalizeCss, newData, image) {\n var oldData = read(normalizeCss, image);\n updateProp(image, oldData, newData, 'caption', function (image, _name, _value) {\n return toggleCaption(image);\n });\n updateProp(image, oldData, newData, 'src', updateAttrib);\n updateProp(image, oldData, newData, 'title', updateAttrib);\n updateProp(image, oldData, newData, 'width', setSize('width', normalizeCss));\n updateProp(image, oldData, newData, 'height', setSize('height', normalizeCss));\n updateProp(image, oldData, newData, 'class', updateAttrib);\n updateProp(image, oldData, newData, 'style', normalized(function (image, value) {\n return updateAttrib(image, 'style', value);\n }, normalizeCss));\n updateProp(image, oldData, newData, 'hspace', normalized(setHspace, normalizeCss));\n updateProp(image, oldData, newData, 'vspace', normalized(setVspace, normalizeCss));\n updateProp(image, oldData, newData, 'border', normalized(setBorder, normalizeCss));\n updateProp(image, oldData, newData, 'borderStyle', normalized(setBorderStyle, normalizeCss));\n updateAlt(image, oldData, newData);\n };\n\n var normalizeCss$1 = function normalizeCss$1(editor, cssText) {\n var css = editor.dom.styles.parse(cssText);\n var mergedCss = mergeMargins(css);\n var compressed = editor.dom.styles.parse(editor.dom.styles.serialize(mergedCss));\n return editor.dom.styles.serialize(compressed);\n };\n\n var getSelectedImage = function getSelectedImage(editor) {\n var imgElm = editor.selection.getNode();\n var figureElm = editor.dom.getParent(imgElm, 'figure.image');\n\n if (figureElm) {\n return editor.dom.select('img', figureElm)[0];\n }\n\n if (imgElm && (imgElm.nodeName !== 'IMG' || isPlaceholderImage(imgElm))) {\n return null;\n }\n\n return imgElm;\n };\n\n var splitTextBlock = function splitTextBlock(editor, figure) {\n var dom = editor.dom;\n var textBlockElements = filter(editor.schema.getTextBlockElements(), function (_, parentElm) {\n return !editor.schema.isValidChild(parentElm, 'figure');\n });\n var textBlock = dom.getParent(figure.parentNode, function (node) {\n return hasNonNullableKey(textBlockElements, node.nodeName);\n }, editor.getBody());\n\n if (textBlock) {\n return dom.split(textBlock, figure);\n } else {\n return figure;\n }\n };\n\n var readImageDataFromSelection = function readImageDataFromSelection(editor) {\n var image = getSelectedImage(editor);\n return image ? read(function (css) {\n return normalizeCss$1(editor, css);\n }, image) : defaultData();\n };\n\n var insertImageAtCaret = function insertImageAtCaret(editor, data) {\n var elm = create(function (css) {\n return normalizeCss$1(editor, css);\n }, data);\n editor.dom.setAttrib(elm, 'data-mce-id', '__mcenew');\n editor.focus();\n editor.selection.setContent(elm.outerHTML);\n var insertedElm = editor.dom.select('*[data-mce-id=\"__mcenew\"]')[0];\n editor.dom.setAttrib(insertedElm, 'data-mce-id', null);\n\n if (isFigure(insertedElm)) {\n var figure = splitTextBlock(editor, insertedElm);\n editor.selection.select(figure);\n } else {\n editor.selection.select(insertedElm);\n }\n };\n\n var syncSrcAttr = function syncSrcAttr(editor, image) {\n editor.dom.setAttrib(image, 'src', image.getAttribute('src'));\n };\n\n var deleteImage = function deleteImage(editor, image) {\n if (image) {\n var elm = editor.dom.is(image.parentNode, 'figure.image') ? image.parentNode : image;\n editor.dom.remove(elm);\n editor.focus();\n editor.nodeChanged();\n\n if (editor.dom.isEmpty(editor.getBody())) {\n editor.setContent('');\n editor.selection.setCursorLocation();\n }\n }\n };\n\n var writeImageDataToSelection = function writeImageDataToSelection(editor, data) {\n var image = getSelectedImage(editor);\n write(function (css) {\n return normalizeCss$1(editor, css);\n }, data, image);\n syncSrcAttr(editor, image);\n\n if (isFigure(image.parentNode)) {\n var figure = image.parentNode;\n splitTextBlock(editor, figure);\n editor.selection.select(image.parentNode);\n } else {\n editor.selection.select(image);\n waitLoadImage(editor, data, image);\n }\n };\n\n var sanitizeImageData = function sanitizeImageData(editor, data) {\n var src = data.src;\n return _assign(_assign({}, data), {\n src: isSafeImageUrl(editor, src) ? src : ''\n });\n };\n\n var insertOrUpdateImage = function insertOrUpdateImage(editor, partialData) {\n var image = getSelectedImage(editor);\n\n if (image) {\n var selectedImageData = read(function (css) {\n return normalizeCss$1(editor, css);\n }, image);\n\n var data = _assign(_assign({}, selectedImageData), partialData);\n\n var sanitizedData = sanitizeImageData(editor, data);\n\n if (data.src) {\n writeImageDataToSelection(editor, sanitizedData);\n } else {\n deleteImage(editor, image);\n }\n } else if (partialData.src) {\n insertImageAtCaret(editor, _assign(_assign({}, defaultData()), partialData));\n }\n };\n\n var deep = function deep(old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n\n var baseMerge = function baseMerge(merger) {\n return function () {\n var objects = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n\n var ret = {};\n\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n\n for (var key in curObject) {\n if (has(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n\n return ret;\n };\n };\n\n var deepMerge = baseMerge(deep);\n\n var isNotEmpty = function isNotEmpty(s) {\n return s.length > 0;\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.ImageUploader');\n var global = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var getValue = function getValue(item) {\n return isString(item.value) ? item.value : '';\n };\n\n var getText = function getText(item) {\n if (isString(item.text)) {\n return item.text;\n } else if (isString(item.title)) {\n return item.title;\n } else {\n return '';\n }\n };\n\n var sanitizeList = function sanitizeList(list, extractValue) {\n var out = [];\n global.each(list, function (item) {\n var text = getText(item);\n\n if (item.menu !== undefined) {\n var items = sanitizeList(item.menu, extractValue);\n out.push({\n text: text,\n items: items\n });\n } else {\n var value = extractValue(item);\n out.push({\n text: text,\n value: value\n });\n }\n });\n return out;\n };\n\n var sanitizer = function sanitizer(extractor) {\n if (extractor === void 0) {\n extractor = getValue;\n }\n\n return function (list) {\n if (list) {\n return Optional.from(list).map(function (list) {\n return sanitizeList(list, extractor);\n });\n } else {\n return Optional.none();\n }\n };\n };\n\n var sanitize = function sanitize(list) {\n return sanitizer(getValue)(list);\n };\n\n var isGroup = function isGroup(item) {\n return has(item, 'items');\n };\n\n var findEntryDelegate = function findEntryDelegate(list, value) {\n return findMap(list, function (item) {\n if (isGroup(item)) {\n return findEntryDelegate(item.items, value);\n } else if (item.value === value) {\n return Optional.some(item);\n } else {\n return Optional.none();\n }\n });\n };\n\n var findEntry = function findEntry(optList, value) {\n return optList.bind(function (list) {\n return findEntryDelegate(list, value);\n });\n };\n\n var ListUtils = {\n sanitizer: sanitizer,\n sanitize: sanitize,\n findEntry: findEntry\n };\n\n var makeTab$2 = function makeTab$2(_info) {\n return {\n title: 'Advanced',\n name: 'advanced',\n items: [{\n type: 'input',\n label: 'Style',\n name: 'style'\n }, {\n type: 'grid',\n columns: 2,\n items: [{\n type: 'input',\n label: 'Vertical space',\n name: 'vspace',\n inputMode: 'numeric'\n }, {\n type: 'input',\n label: 'Horizontal space',\n name: 'hspace',\n inputMode: 'numeric'\n }, {\n type: 'input',\n label: 'Border width',\n name: 'border',\n inputMode: 'numeric'\n }, {\n type: 'listbox',\n name: 'borderstyle',\n label: 'Border style',\n items: [{\n text: 'Select...',\n value: ''\n }, {\n text: 'Solid',\n value: 'solid'\n }, {\n text: 'Dotted',\n value: 'dotted'\n }, {\n text: 'Dashed',\n value: 'dashed'\n }, {\n text: 'Double',\n value: 'double'\n }, {\n text: 'Groove',\n value: 'groove'\n }, {\n text: 'Ridge',\n value: 'ridge'\n }, {\n text: 'Inset',\n value: 'inset'\n }, {\n text: 'Outset',\n value: 'outset'\n }, {\n text: 'None',\n value: 'none'\n }, {\n text: 'Hidden',\n value: 'hidden'\n }]\n }]\n }]\n };\n };\n\n var AdvTab = {\n makeTab: makeTab$2\n };\n\n var collect = function collect(editor) {\n var urlListSanitizer = ListUtils.sanitizer(function (item) {\n return editor.convertURL(item.value || item.url, 'src');\n });\n var futureImageList = new global$4(function (completer) {\n createImageList(editor, function (imageList) {\n completer(urlListSanitizer(imageList).map(function (items) {\n return flatten([[{\n text: 'None',\n value: ''\n }], items]);\n }));\n });\n });\n var classList = ListUtils.sanitize(getClassList(editor));\n var hasAdvTab$1 = hasAdvTab(editor);\n var hasUploadTab$1 = hasUploadTab(editor);\n var hasUploadUrl$1 = hasUploadUrl(editor);\n var hasUploadHandler$1 = hasUploadHandler(editor);\n var image = readImageDataFromSelection(editor);\n var hasDescription$1 = hasDescription(editor);\n var hasImageTitle$1 = hasImageTitle(editor);\n var hasDimensions$1 = hasDimensions(editor);\n var hasImageCaption$1 = hasImageCaption(editor);\n var hasAccessibilityOptions = showAccessibilityOptions(editor);\n var automaticUploads = isAutomaticUploadsEnabled(editor);\n var prependURL = Optional.some(getPrependUrl(editor)).filter(function (preUrl) {\n return isString(preUrl) && preUrl.length > 0;\n });\n return futureImageList.then(function (imageList) {\n return {\n image: image,\n imageList: imageList,\n classList: classList,\n hasAdvTab: hasAdvTab$1,\n hasUploadTab: hasUploadTab$1,\n hasUploadUrl: hasUploadUrl$1,\n hasUploadHandler: hasUploadHandler$1,\n hasDescription: hasDescription$1,\n hasImageTitle: hasImageTitle$1,\n hasDimensions: hasDimensions$1,\n hasImageCaption: hasImageCaption$1,\n prependURL: prependURL,\n hasAccessibilityOptions: hasAccessibilityOptions,\n automaticUploads: automaticUploads\n };\n });\n };\n\n var makeItems = function makeItems(info) {\n var imageUrl = {\n name: 'src',\n type: 'urlinput',\n filetype: 'image',\n label: 'Source'\n };\n var imageList = info.imageList.map(function (items) {\n return {\n name: 'images',\n type: 'listbox',\n label: 'Image list',\n items: items\n };\n });\n var imageDescription = {\n name: 'alt',\n type: 'input',\n label: 'Alternative description',\n disabled: info.hasAccessibilityOptions && info.image.isDecorative\n };\n var imageTitle = {\n name: 'title',\n type: 'input',\n label: 'Image title'\n };\n var imageDimensions = {\n name: 'dimensions',\n type: 'sizeinput'\n };\n var isDecorative = {\n type: 'label',\n label: 'Accessibility',\n items: [{\n name: 'isDecorative',\n type: 'checkbox',\n label: 'Image is decorative'\n }]\n };\n var classList = info.classList.map(function (items) {\n return {\n name: 'classes',\n type: 'listbox',\n label: 'Class',\n items: items\n };\n });\n var caption = {\n type: 'label',\n label: 'Caption',\n items: [{\n type: 'checkbox',\n name: 'caption',\n label: 'Show caption'\n }]\n };\n\n var getDialogContainerType = function getDialogContainerType(useColumns) {\n return useColumns ? {\n type: 'grid',\n columns: 2\n } : {\n type: 'panel'\n };\n };\n\n return flatten([[imageUrl], imageList.toArray(), info.hasAccessibilityOptions && info.hasDescription ? [isDecorative] : [], info.hasDescription ? [imageDescription] : [], info.hasImageTitle ? [imageTitle] : [], info.hasDimensions ? [imageDimensions] : [], [_assign(_assign({}, getDialogContainerType(info.classList.isSome() && info.hasImageCaption)), {\n items: flatten([classList.toArray(), info.hasImageCaption ? [caption] : []])\n })]]);\n };\n\n var makeTab$1 = function makeTab$1(info) {\n return {\n title: 'General',\n name: 'general',\n items: makeItems(info)\n };\n };\n\n var MainTab = {\n makeTab: makeTab$1,\n makeItems: makeItems\n };\n\n var makeTab = function makeTab(_info) {\n var items = [{\n type: 'dropzone',\n name: 'fileinput'\n }];\n return {\n title: 'Upload',\n name: 'upload',\n items: items\n };\n };\n\n var UploadTab = {\n makeTab: makeTab\n };\n\n var createState = function createState(info) {\n return {\n prevImage: ListUtils.findEntry(info.imageList, info.image.src),\n prevAlt: info.image.alt,\n open: true\n };\n };\n\n var fromImageData = function fromImageData(image) {\n return {\n src: {\n value: image.src,\n meta: {}\n },\n images: image.src,\n alt: image.alt,\n title: image.title,\n dimensions: {\n width: image.width,\n height: image.height\n },\n classes: image.class,\n caption: image.caption,\n style: image.style,\n vspace: image.vspace,\n border: image.border,\n hspace: image.hspace,\n borderstyle: image.borderStyle,\n fileinput: [],\n isDecorative: image.isDecorative\n };\n };\n\n var toImageData = function toImageData(data, removeEmptyAlt) {\n return {\n src: data.src.value,\n alt: data.alt.length === 0 && removeEmptyAlt ? null : data.alt,\n title: data.title,\n width: data.dimensions.width,\n height: data.dimensions.height,\n class: data.classes,\n style: data.style,\n caption: data.caption,\n hspace: data.hspace,\n vspace: data.vspace,\n border: data.border,\n borderStyle: data.borderstyle,\n isDecorative: data.isDecorative\n };\n };\n\n var addPrependUrl2 = function addPrependUrl2(info, srcURL) {\n if (!/^(?:[a-zA-Z]+:)?\\/\\//.test(srcURL)) {\n return info.prependURL.bind(function (prependUrl) {\n if (srcURL.substring(0, prependUrl.length) !== prependUrl) {\n return Optional.some(prependUrl + srcURL);\n }\n\n return Optional.none();\n });\n }\n\n return Optional.none();\n };\n\n var addPrependUrl = function addPrependUrl(info, api) {\n var data = api.getData();\n addPrependUrl2(info, data.src.value).each(function (srcURL) {\n api.setData({\n src: {\n value: srcURL,\n meta: data.src.meta\n }\n });\n });\n };\n\n var formFillFromMeta2 = function formFillFromMeta2(info, data, meta) {\n if (info.hasDescription && isString(meta.alt)) {\n data.alt = meta.alt;\n }\n\n if (info.hasAccessibilityOptions) {\n data.isDecorative = meta.isDecorative || data.isDecorative || false;\n }\n\n if (info.hasImageTitle && isString(meta.title)) {\n data.title = meta.title;\n }\n\n if (info.hasDimensions) {\n if (isString(meta.width)) {\n data.dimensions.width = meta.width;\n }\n\n if (isString(meta.height)) {\n data.dimensions.height = meta.height;\n }\n }\n\n if (isString(meta.class)) {\n ListUtils.findEntry(info.classList, meta.class).each(function (entry) {\n data.classes = entry.value;\n });\n }\n\n if (info.hasImageCaption) {\n if (isBoolean(meta.caption)) {\n data.caption = meta.caption;\n }\n }\n\n if (info.hasAdvTab) {\n if (isString(meta.style)) {\n data.style = meta.style;\n }\n\n if (isString(meta.vspace)) {\n data.vspace = meta.vspace;\n }\n\n if (isString(meta.border)) {\n data.border = meta.border;\n }\n\n if (isString(meta.hspace)) {\n data.hspace = meta.hspace;\n }\n\n if (isString(meta.borderstyle)) {\n data.borderstyle = meta.borderstyle;\n }\n }\n };\n\n var formFillFromMeta = function formFillFromMeta(info, api) {\n var data = api.getData();\n var meta = data.src.meta;\n\n if (meta !== undefined) {\n var newData = deepMerge({}, data);\n formFillFromMeta2(info, newData, meta);\n api.setData(newData);\n }\n };\n\n var calculateImageSize = function calculateImageSize(helpers, info, state, api) {\n var data = api.getData();\n var url = data.src.value;\n var meta = data.src.meta || {};\n\n if (!meta.width && !meta.height && info.hasDimensions) {\n if (isNotEmpty(url)) {\n helpers.imageSize(url).then(function (size) {\n if (state.open) {\n api.setData({\n dimensions: size\n });\n }\n }).catch(function (e) {\n return console.error(e);\n });\n } else {\n api.setData({\n dimensions: {\n width: '',\n height: ''\n }\n });\n }\n }\n };\n\n var updateImagesDropdown = function updateImagesDropdown(info, state, api) {\n var data = api.getData();\n var image = ListUtils.findEntry(info.imageList, data.src.value);\n state.prevImage = image;\n api.setData({\n images: image.map(function (entry) {\n return entry.value;\n }).getOr('')\n });\n };\n\n var changeSrc = function changeSrc(helpers, info, state, api) {\n addPrependUrl(info, api);\n formFillFromMeta(info, api);\n calculateImageSize(helpers, info, state, api);\n updateImagesDropdown(info, state, api);\n };\n\n var changeImages = function changeImages(helpers, info, state, api) {\n var data = api.getData();\n var image = ListUtils.findEntry(info.imageList, data.images);\n image.each(function (img) {\n var updateAlt = data.alt === '' || state.prevImage.map(function (image) {\n return image.text === data.alt;\n }).getOr(false);\n\n if (updateAlt) {\n if (img.value === '') {\n api.setData({\n src: img,\n alt: state.prevAlt\n });\n } else {\n api.setData({\n src: img,\n alt: img.text\n });\n }\n } else {\n api.setData({\n src: img\n });\n }\n });\n state.prevImage = image;\n changeSrc(helpers, info, state, api);\n };\n\n var calcVSpace = function calcVSpace(css) {\n var matchingTopBottom = css['margin-top'] && css['margin-bottom'] && css['margin-top'] === css['margin-bottom'];\n return matchingTopBottom ? removePixelSuffix(String(css['margin-top'])) : '';\n };\n\n var calcHSpace = function calcHSpace(css) {\n var matchingLeftRight = css['margin-right'] && css['margin-left'] && css['margin-right'] === css['margin-left'];\n return matchingLeftRight ? removePixelSuffix(String(css['margin-right'])) : '';\n };\n\n var calcBorderWidth = function calcBorderWidth(css) {\n return css['border-width'] ? removePixelSuffix(String(css['border-width'])) : '';\n };\n\n var calcBorderStyle = function calcBorderStyle(css) {\n return css['border-style'] ? String(css['border-style']) : '';\n };\n\n var calcStyle = function calcStyle(parseStyle, serializeStyle, css) {\n return serializeStyle(parseStyle(serializeStyle(css)));\n };\n\n var changeStyle2 = function changeStyle2(parseStyle, serializeStyle, data) {\n var css = mergeMargins(parseStyle(data.style));\n var dataCopy = deepMerge({}, data);\n dataCopy.vspace = calcVSpace(css);\n dataCopy.hspace = calcHSpace(css);\n dataCopy.border = calcBorderWidth(css);\n dataCopy.borderstyle = calcBorderStyle(css);\n dataCopy.style = calcStyle(parseStyle, serializeStyle, css);\n return dataCopy;\n };\n\n var changeStyle = function changeStyle(helpers, api) {\n var data = api.getData();\n var newData = changeStyle2(helpers.parseStyle, helpers.serializeStyle, data);\n api.setData(newData);\n };\n\n var changeAStyle = function changeAStyle(helpers, info, api) {\n var data = deepMerge(fromImageData(info.image), api.getData());\n var style = getStyleValue(helpers.normalizeCss, toImageData(data, false));\n api.setData({\n style: style\n });\n };\n\n var changeFileInput = function changeFileInput(helpers, info, state, api) {\n var data = api.getData();\n api.block('Uploading image');\n head(data.fileinput).fold(function () {\n api.unblock();\n }, function (file) {\n var blobUri = URL.createObjectURL(file);\n\n var finalize = function finalize() {\n api.unblock();\n URL.revokeObjectURL(blobUri);\n };\n\n var updateSrcAndSwitchTab = function updateSrcAndSwitchTab(url) {\n api.setData({\n src: {\n value: url,\n meta: {}\n }\n });\n api.showTab('general');\n changeSrc(helpers, info, state, api);\n };\n\n blobToDataUri(file).then(function (dataUrl) {\n var blobInfo = helpers.createBlobCache(file, blobUri, dataUrl);\n\n if (info.automaticUploads) {\n helpers.uploadImage(blobInfo).then(function (result) {\n updateSrcAndSwitchTab(result.url);\n finalize();\n }).catch(function (err) {\n finalize();\n helpers.alertErr(err);\n });\n } else {\n helpers.addToBlobCache(blobInfo);\n updateSrcAndSwitchTab(blobInfo.blobUri());\n api.unblock();\n }\n });\n });\n };\n\n var changeHandler = function changeHandler(helpers, info, state) {\n return function (api, evt) {\n if (evt.name === 'src') {\n changeSrc(helpers, info, state, api);\n } else if (evt.name === 'images') {\n changeImages(helpers, info, state, api);\n } else if (evt.name === 'alt') {\n state.prevAlt = api.getData().alt;\n } else if (evt.name === 'style') {\n changeStyle(helpers, api);\n } else if (evt.name === 'vspace' || evt.name === 'hspace' || evt.name === 'border' || evt.name === 'borderstyle') {\n changeAStyle(helpers, info, api);\n } else if (evt.name === 'fileinput') {\n changeFileInput(helpers, info, state, api);\n } else if (evt.name === 'isDecorative') {\n if (api.getData().isDecorative) {\n api.disable('alt');\n } else {\n api.enable('alt');\n }\n }\n };\n };\n\n var closeHandler = function closeHandler(state) {\n return function () {\n state.open = false;\n };\n };\n\n var makeDialogBody = function makeDialogBody(info) {\n if (info.hasAdvTab || info.hasUploadUrl || info.hasUploadHandler) {\n var tabPanel = {\n type: 'tabpanel',\n tabs: flatten([[MainTab.makeTab(info)], info.hasAdvTab ? [AdvTab.makeTab(info)] : [], info.hasUploadTab && (info.hasUploadUrl || info.hasUploadHandler) ? [UploadTab.makeTab(info)] : []])\n };\n return tabPanel;\n } else {\n var panel = {\n type: 'panel',\n items: MainTab.makeItems(info)\n };\n return panel;\n }\n };\n\n var makeDialog = function makeDialog(helpers) {\n return function (info) {\n var state = createState(info);\n return {\n title: 'Insert/Edit Image',\n size: 'normal',\n body: makeDialogBody(info),\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n initialData: fromImageData(info.image),\n onSubmit: helpers.onSubmit(info),\n onChange: changeHandler(helpers, info, state),\n onClose: closeHandler(state)\n };\n };\n };\n\n var submitHandler = function submitHandler(editor) {\n return function (info) {\n return function (api) {\n var data = deepMerge(fromImageData(info.image), api.getData());\n editor.execCommand('mceUpdateImage', false, toImageData(data, info.hasAccessibilityOptions));\n editor.editorUpload.uploadImagesAuto();\n api.close();\n };\n };\n };\n\n var imageSize = function imageSize(editor) {\n return function (url) {\n if (!isSafeImageUrl(editor, url)) {\n return global$4.resolve({\n width: '',\n height: ''\n });\n } else {\n return getImageSize(editor.documentBaseURI.toAbsolute(url)).then(function (dimensions) {\n return {\n width: String(dimensions.width),\n height: String(dimensions.height)\n };\n });\n }\n };\n };\n\n var createBlobCache = function createBlobCache(editor) {\n return function (file, blobUri, dataUrl) {\n return editor.editorUpload.blobCache.create({\n blob: file,\n blobUri: blobUri,\n name: file.name ? file.name.replace(/\\.[^\\.]+$/, '') : null,\n filename: file.name,\n base64: dataUrl.split(',')[1]\n });\n };\n };\n\n var addToBlobCache = function addToBlobCache(editor) {\n return function (blobInfo) {\n editor.editorUpload.blobCache.add(blobInfo);\n };\n };\n\n var alertErr = function alertErr(editor) {\n return function (message) {\n editor.windowManager.alert(message);\n };\n };\n\n var normalizeCss = function normalizeCss(editor) {\n return function (cssText) {\n return normalizeCss$1(editor, cssText);\n };\n };\n\n var parseStyle = function parseStyle(editor) {\n return function (cssText) {\n return editor.dom.parseStyle(cssText);\n };\n };\n\n var serializeStyle = function serializeStyle(editor) {\n return function (stylesArg, name) {\n return editor.dom.serializeStyle(stylesArg, name);\n };\n };\n\n var uploadImage = function uploadImage(editor) {\n return function (blobInfo) {\n return global$1(editor).upload([blobInfo], false).then(function (results) {\n if (results.length === 0) {\n return global$4.reject('Failed to upload image');\n } else if (results[0].status === false) {\n return global$4.reject(results[0].error.message);\n } else {\n return results[0];\n }\n });\n };\n };\n\n var Dialog = function Dialog(editor) {\n var helpers = {\n onSubmit: submitHandler(editor),\n imageSize: imageSize(editor),\n addToBlobCache: addToBlobCache(editor),\n createBlobCache: createBlobCache(editor),\n alertErr: alertErr(editor),\n normalizeCss: normalizeCss(editor),\n parseStyle: parseStyle(editor),\n serializeStyle: serializeStyle(editor),\n uploadImage: uploadImage(editor)\n };\n\n var open = function open() {\n collect(editor).then(makeDialog(helpers)).then(editor.windowManager.open);\n };\n\n return {\n open: open\n };\n };\n\n var register$1 = function register$1(editor) {\n editor.addCommand('mceImage', Dialog(editor).open);\n editor.addCommand('mceUpdateImage', function (_ui, data) {\n editor.undoManager.transact(function () {\n return insertOrUpdateImage(editor, data);\n });\n });\n };\n\n var hasImageClass = function hasImageClass(node) {\n var className = node.attr('class');\n return className && /\\bimage\\b/.test(className);\n };\n\n var toggleContentEditableState = function toggleContentEditableState(state) {\n return function (nodes) {\n var i = nodes.length;\n\n var toggleContentEditable = function toggleContentEditable(node) {\n node.attr('contenteditable', state ? 'true' : null);\n };\n\n while (i--) {\n var node = nodes[i];\n\n if (hasImageClass(node)) {\n node.attr('contenteditable', state ? 'false' : null);\n global.each(node.getAll('figcaption'), toggleContentEditable);\n }\n }\n };\n };\n\n var setup = function setup(editor) {\n editor.on('PreInit', function () {\n editor.parser.addNodeFilter('figure', toggleContentEditableState(true));\n editor.serializer.addNodeFilter('figure', toggleContentEditableState(false));\n });\n };\n\n var register = function register(editor) {\n editor.ui.registry.addToggleButton('image', {\n icon: 'image',\n tooltip: 'Insert/edit image',\n onAction: Dialog(editor).open,\n onSetup: function onSetup(buttonApi) {\n buttonApi.setActive(isNonNullable(getSelectedImage(editor)));\n return editor.selection.selectorChangedWithUnbind('img:not([data-mce-object],[data-mce-placeholder]),figure.image', buttonApi.setActive).unbind;\n }\n });\n editor.ui.registry.addMenuItem('image', {\n icon: 'image',\n text: 'Image...',\n onAction: Dialog(editor).open\n });\n editor.ui.registry.addContextMenu('image', {\n update: function update(element) {\n return isFigure(element) || isImage(element) && !isPlaceholderImage(element) ? ['image'] : [];\n }\n });\n };\n\n function Plugin() {\n global$6.add('image', function (editor) {\n setup(editor);\n register(editor);\n register$1(editor);\n });\n }\n\n Plugin();\n})();","// Exports the \"imagetools\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/imagetools')\n// ES2015:\n// import 'tinymce/plugins/imagetools'\nrequire('./plugin.js');","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.3 (2022-02-09)\n */\n(function () {\n 'use strict';\n\n var Cell = function Cell(initial) {\n var value = initial;\n\n var get = function get() {\n return value;\n };\n\n var set = function set(v) {\n value = v;\n };\n\n return {\n get: get,\n set: set\n };\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n var global$4 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n\n var typeOf = function typeOf(x) {\n var t = _typeof(x);\n\n if (x === null) {\n return 'null';\n } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n } else {\n return t;\n }\n };\n\n var isType = function isType(type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n\n var isSimpleType = function isSimpleType(type) {\n return function (value) {\n return _typeof(value) === type;\n };\n };\n\n var isArray = isType('array');\n\n var isNullable = function isNullable(a) {\n return a === null || a === undefined;\n };\n\n var isNonNullable = function isNonNullable(a) {\n return !isNullable(a);\n };\n\n var isFunction = isSimpleType('function');\n\n var noop = function noop() {};\n\n var constant = function constant(value) {\n return function () {\n return value;\n };\n };\n\n var identity = function identity(x) {\n return x;\n };\n\n var never = constant(false);\n var always = constant(true);\n\n var none = function none() {\n return NONE;\n };\n\n var NONE = function () {\n var call = function call(thunk) {\n return thunk();\n };\n\n var id = identity;\n var me = {\n fold: function fold(n, _s) {\n return n();\n },\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function getOrDie(msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: function filter() {\n return none();\n },\n toArray: function toArray() {\n return [];\n },\n toString: constant('none()')\n };\n return me;\n }();\n\n var some = function some(a) {\n var constant_a = constant(a);\n\n var self = function self() {\n return me;\n };\n\n var bind = function bind(f) {\n return f(a);\n };\n\n var me = {\n fold: function fold(n, s) {\n return s(a);\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function map(f) {\n return some(f(a));\n },\n each: function each(f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function filter(f) {\n return f(a) ? me : NONE;\n },\n toArray: function toArray() {\n return [a];\n },\n toString: function toString() {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n\n var from = function from(value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n\n var Optional = {\n some: some,\n none: none,\n from: from\n };\n var exports$1 = {},\n module = {\n exports: exports$1\n };\n\n (function (define, exports, module, require) {\n (function (global, factory) {\n _typeof(exports) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EphoxContactWrapper = factory());\n })(this, function () {\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n var promise = {\n exports: {}\n };\n\n (function (module) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n\n function noop() {}\n\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n\n function Promise(fn) {\n if (_typeof(this) !== 'object') throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n }\n\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n\n if (self._state === 0) {\n self._deferreds.push(deferred);\n\n return;\n }\n\n self._handled = true;\n\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n\n var ret;\n\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n\n resolve(deferred.promise, ret);\n });\n }\n\n function resolve(self, newValue) {\n try {\n if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n\n if (newValue && (_typeof(newValue) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n\n self._deferreds = null;\n }\n\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n\n function doResolve(fn, self) {\n var done = false;\n\n try {\n fn(function (value) {\n if (done) return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n }\n\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (_typeof(val) === 'object' || typeof val === 'function')) {\n var then = val.then;\n\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n\n args[i] = val;\n\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n\n Promise.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n\n Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n\n if (module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n })(commonjsGlobal);\n })(promise);\n\n var promisePolyfill = promise.exports;\n\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n\n var promisePolyfill_1 = {\n boltExport: Global.Promise || promisePolyfill\n };\n return promisePolyfill_1;\n });\n })(undefined, exports$1, module);\n\n var Promise$1 = module.exports.boltExport;\n\n var create$1 = function create$1(width, height) {\n return resize(document.createElement('canvas'), width, height);\n };\n\n var clone = function clone(canvas) {\n var tCanvas = create$1(canvas.width, canvas.height);\n var ctx = get2dContext(tCanvas);\n ctx.drawImage(canvas, 0, 0);\n return tCanvas;\n };\n\n var get2dContext = function get2dContext(canvas) {\n return canvas.getContext('2d');\n };\n\n var resize = function resize(canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n\n var getWidth = function getWidth(image) {\n return image.naturalWidth || image.width;\n };\n\n var getHeight = function getHeight(image) {\n return image.naturalHeight || image.height;\n };\n\n var imageToBlob$2 = function imageToBlob$2(image) {\n var src = image.src;\n\n if (src.indexOf('data:') === 0) {\n return dataUriToBlob(src);\n }\n\n return anyUriToBlob(src);\n };\n\n var blobToImage$1 = function blobToImage$1(blob) {\n return new Promise$1(function (resolve, reject) {\n var blobUrl = URL.createObjectURL(blob);\n var image = new Image();\n\n var removeListeners = function removeListeners() {\n image.removeEventListener('load', loaded);\n image.removeEventListener('error', error);\n };\n\n var loaded = function loaded() {\n removeListeners();\n resolve(image);\n };\n\n var error = function error() {\n removeListeners();\n reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);\n };\n\n image.addEventListener('load', loaded);\n image.addEventListener('error', error);\n image.src = blobUrl;\n\n if (image.complete) {\n setTimeout(loaded, 0);\n }\n });\n };\n\n var anyUriToBlob = function anyUriToBlob(url) {\n return new Promise$1(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'blob';\n\n xhr.onload = function () {\n if (this.status === 200) {\n resolve(this.response);\n }\n };\n\n xhr.onerror = function () {\n var _this = this;\n\n var corsError = function corsError() {\n var obj = new Error('No access to download image');\n obj.code = 18;\n obj.name = 'SecurityError';\n return obj;\n };\n\n var genericError = function genericError() {\n return new Error('Error ' + _this.status + ' downloading image');\n };\n\n reject(this.status === 0 ? corsError() : genericError());\n };\n\n xhr.send();\n });\n };\n\n var dataUriToBlobSync = function dataUriToBlobSync(uri) {\n var data = uri.split(',');\n var matches = /data:([^;]+)/.exec(data[0]);\n\n if (!matches) {\n return Optional.none();\n }\n\n var mimetype = matches[1];\n var base64 = data[1];\n var sliceSize = 1024;\n var byteCharacters = atob(base64);\n var bytesLength = byteCharacters.length;\n var slicesCount = Math.ceil(bytesLength / sliceSize);\n var byteArrays = new Array(slicesCount);\n\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n var begin = sliceIndex * sliceSize;\n var end = Math.min(begin + sliceSize, bytesLength);\n var bytes = new Array(end - begin);\n\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0);\n }\n\n byteArrays[sliceIndex] = new Uint8Array(bytes);\n }\n\n return Optional.some(new Blob(byteArrays, {\n type: mimetype\n }));\n };\n\n var dataUriToBlob = function dataUriToBlob(uri) {\n return new Promise$1(function (resolve, reject) {\n dataUriToBlobSync(uri).fold(function () {\n reject('uri is not base64: ' + uri);\n }, resolve);\n });\n };\n\n var canvasToBlob = function canvasToBlob(canvas, type, quality) {\n type = type || 'image/png';\n\n if (isFunction(HTMLCanvasElement.prototype.toBlob)) {\n return new Promise$1(function (resolve, reject) {\n canvas.toBlob(function (blob) {\n if (blob) {\n resolve(blob);\n } else {\n reject();\n }\n }, type, quality);\n });\n } else {\n return dataUriToBlob(canvas.toDataURL(type, quality));\n }\n };\n\n var canvasToDataURL = function canvasToDataURL(canvas, type, quality) {\n type = type || 'image/png';\n return canvas.toDataURL(type, quality);\n };\n\n var blobToCanvas = function blobToCanvas(blob) {\n return blobToImage$1(blob).then(function (image) {\n revokeImageUrl(image);\n var canvas = create$1(getWidth(image), getHeight(image));\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0);\n return canvas;\n });\n };\n\n var blobToDataUri = function blobToDataUri(blob) {\n return new Promise$1(function (resolve) {\n var reader = new FileReader();\n\n reader.onloadend = function () {\n resolve(reader.result);\n };\n\n reader.readAsDataURL(blob);\n });\n };\n\n var revokeImageUrl = function revokeImageUrl(image) {\n URL.revokeObjectURL(image.src);\n };\n\n var blobToImage = function blobToImage(blob) {\n return blobToImage$1(blob);\n };\n\n var imageToBlob$1 = function imageToBlob$1(image) {\n return imageToBlob$2(image);\n };\n\n var nativeIndexOf = Array.prototype.indexOf;\n\n var rawIndexOf = function rawIndexOf(ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n\n var contains = function contains(xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n\n var each$1 = function each$1(xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n\n var filter = function filter(xs, pred) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n r.push(x);\n }\n }\n\n return r;\n };\n\n var foldl = function foldl(xs, f, acc) {\n each$1(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n\n var findUntil = function findUntil(xs, pred, until) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n\n return Optional.none();\n };\n\n var find = function find(xs, pred) {\n return findUntil(xs, pred, never);\n };\n\n var forall = function forall(xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n\n if (pred(x, i) !== true) {\n return false;\n }\n }\n\n return true;\n };\n\n var keys = Object.keys;\n\n var each = function each(obj, f) {\n var props = keys(obj);\n\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n\n var generate = function generate(cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n\n var constructors = [];\n var adt = {};\n each$1(cases, function (acase, count) {\n var keys$1 = keys(acase);\n\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n\n var key = keys$1[0];\n var value = acase[key];\n\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n\n constructors.push(key);\n\n adt[key] = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var argLength = args.length;\n\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n\n var match = function match(branches) {\n var branchKeys = keys(branches);\n\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n\n var allReqd = forall(constructors, function (reqKey) {\n return contains(branchKeys, reqKey);\n });\n\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n\n return branches[key].apply(null, args);\n };\n\n return {\n fold: function fold() {\n var foldArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n foldArgs[_i] = arguments[_i];\n }\n\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n\n var target = foldArgs[count];\n return target.apply(null, args);\n },\n match: match,\n log: function log(label) {\n console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n\n var Adt = {\n generate: generate\n };\n Adt.generate([{\n bothErrors: ['error1', 'error2']\n }, {\n firstError: ['error1', 'value2']\n }, {\n secondError: ['value1', 'error2']\n }, {\n bothValues: ['value1', 'value2']\n }]);\n\n var create = function create(getCanvas, blob, uri) {\n var initialType = blob.type;\n var getType = constant(initialType);\n\n var toBlob = function toBlob() {\n return Promise$1.resolve(blob);\n };\n\n var toDataURL = constant(uri);\n\n var toBase64 = function toBase64() {\n return uri.split(',')[1];\n };\n\n var toAdjustedBlob = function toAdjustedBlob(type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n };\n\n var toAdjustedDataURL = function toAdjustedDataURL(type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToDataURL(canvas, type, quality);\n });\n };\n\n var toAdjustedBase64 = function toAdjustedBase64(type, quality) {\n return toAdjustedDataURL(type, quality).then(function (dataurl) {\n return dataurl.split(',')[1];\n });\n };\n\n var toCanvas = function toCanvas() {\n return getCanvas.then(clone);\n };\n\n return {\n getType: getType,\n toBlob: toBlob,\n toDataURL: toDataURL,\n toBase64: toBase64,\n toAdjustedBlob: toAdjustedBlob,\n toAdjustedDataURL: toAdjustedDataURL,\n toAdjustedBase64: toAdjustedBase64,\n toCanvas: toCanvas\n };\n };\n\n var fromBlob = function fromBlob(blob) {\n return blobToDataUri(blob).then(function (uri) {\n return create(blobToCanvas(blob), blob, uri);\n });\n };\n\n var fromCanvas = function fromCanvas(canvas, type) {\n return canvasToBlob(canvas, type).then(function (blob) {\n return create(Promise$1.resolve(canvas), blob, canvas.toDataURL());\n });\n };\n\n var ceilWithPrecision = function ceilWithPrecision(num, precision) {\n if (precision === void 0) {\n precision = 2;\n }\n\n var mul = Math.pow(10, precision);\n var upper = Math.round(num * mul);\n return Math.ceil(upper / mul);\n };\n\n var rotate$2 = function rotate$2(ir, angle) {\n return ir.toCanvas().then(function (canvas) {\n return applyRotate(canvas, ir.getType(), angle);\n });\n };\n\n var applyRotate = function applyRotate(image, type, angle) {\n var degrees = angle < 0 ? 360 + angle : angle;\n var rad = degrees * Math.PI / 180;\n var width = image.width;\n var height = image.height;\n var sin = Math.sin(rad);\n var cos = Math.cos(rad);\n var newWidth = ceilWithPrecision(Math.abs(width * cos) + Math.abs(height * sin));\n var newHeight = ceilWithPrecision(Math.abs(width * sin) + Math.abs(height * cos));\n var canvas = create$1(newWidth, newHeight);\n var context = get2dContext(canvas);\n context.translate(newWidth / 2, newHeight / 2);\n context.rotate(rad);\n context.drawImage(image, -width / 2, -height / 2);\n return fromCanvas(canvas, type);\n };\n\n var flip$2 = function flip$2(ir, axis) {\n return ir.toCanvas().then(function (canvas) {\n return applyFlip(canvas, ir.getType(), axis);\n });\n };\n\n var applyFlip = function applyFlip(image, type, axis) {\n var canvas = create$1(image.width, image.height);\n var context = get2dContext(canvas);\n\n if (axis === 'v') {\n context.scale(1, -1);\n context.drawImage(image, 0, -canvas.height);\n } else {\n context.scale(-1, 1);\n context.drawImage(image, -canvas.width, 0);\n }\n\n return fromCanvas(canvas, type);\n };\n\n var flip$1 = function flip$1(ir, axis) {\n return flip$2(ir, axis);\n };\n\n var rotate$1 = function rotate$1(ir, angle) {\n return rotate$2(ir, angle);\n };\n\n var sendRequest = function sendRequest(url, headers, withCredentials) {\n if (withCredentials === void 0) {\n withCredentials = false;\n }\n\n return new Promise$1(function (resolve) {\n var xhr = new XMLHttpRequest();\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n resolve({\n status: xhr.status,\n blob: xhr.response\n });\n }\n };\n\n xhr.open('GET', url, true);\n xhr.withCredentials = withCredentials;\n each(headers, function (value, key) {\n xhr.setRequestHeader(key, value);\n });\n xhr.responseType = 'blob';\n xhr.send();\n });\n };\n\n var readBlobText = function readBlobText(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n\n reader.onload = function () {\n resolve(reader.result);\n };\n\n reader.onerror = function (e) {\n reject(e);\n };\n\n reader.readAsText(blob);\n });\n };\n\n var parseJson = function parseJson(text) {\n try {\n return Optional.some(JSON.parse(text));\n } catch (ex) {\n return Optional.none();\n }\n };\n\n var friendlyHttpErrors = [{\n code: 404,\n message: 'Could not find Image Proxy'\n }, {\n code: 403,\n message: 'Rejected request'\n }, {\n code: 0,\n message: 'Incorrect Image Proxy URL'\n }];\n var friendlyServiceErrors = [{\n type: 'not_found',\n message: 'Failed to load image.'\n }, {\n type: 'key_missing',\n message: 'The request did not include an api key.'\n }, {\n type: 'key_not_found',\n message: 'The provided api key could not be found.'\n }, {\n type: 'domain_not_trusted',\n message: 'The api key is not valid for the request origins.'\n }];\n\n var traverseJson = function traverseJson(json, path) {\n var value = foldl(path, function (result, key) {\n return isNonNullable(result) ? result[key] : undefined;\n }, json);\n return Optional.from(value);\n };\n\n var isServiceErrorCode = function isServiceErrorCode(code, blob) {\n return (blob === null || blob === void 0 ? void 0 : blob.type) === 'application/json' && (code === 400 || code === 403 || code === 404 || code === 500);\n };\n\n var getHttpErrorMsg = function getHttpErrorMsg(status) {\n var message = find(friendlyHttpErrors, function (error) {\n return status === error.code;\n }).fold(constant('Unknown ImageProxy error'), function (error) {\n return error.message;\n });\n return 'ImageProxy HTTP error: ' + message;\n };\n\n var handleHttpError = function handleHttpError(status) {\n var message = getHttpErrorMsg(status);\n return Promise$1.reject(message);\n };\n\n var getServiceErrorMsg = function getServiceErrorMsg(type) {\n return find(friendlyServiceErrors, function (error) {\n return error.type === type;\n }).fold(constant('Unknown service error'), function (error) {\n return error.message;\n });\n };\n\n var getServiceError = function getServiceError(text) {\n var serviceError = parseJson(text);\n var errorMsg = serviceError.bind(function (err) {\n return traverseJson(err, ['error', 'type']).map(getServiceErrorMsg);\n }).getOr('Invalid JSON in service error message');\n return 'ImageProxy Service error: ' + errorMsg;\n };\n\n var handleServiceError = function handleServiceError(blob) {\n return readBlobText(blob).then(function (text) {\n var serviceError = getServiceError(text);\n return Promise$1.reject(serviceError);\n });\n };\n\n var handleServiceErrorResponse = function handleServiceErrorResponse(status, blob) {\n return isServiceErrorCode(status, blob) ? handleServiceError(blob) : handleHttpError(status);\n };\n\n var appendApiKey = function appendApiKey(url, apiKey) {\n var separator = url.indexOf('?') === -1 ? '?' : '&';\n\n if (/[?&]apiKey=/.test(url)) {\n return url;\n } else {\n return url + separator + 'apiKey=' + encodeURIComponent(apiKey);\n }\n };\n\n var isError = function isError(status) {\n return status < 200 || status >= 300;\n };\n\n var requestServiceBlob = function requestServiceBlob(url, apiKey) {\n var headers = {\n 'Content-Type': 'application/json;charset=UTF-8',\n 'tiny-api-key': apiKey\n };\n return sendRequest(appendApiKey(url, apiKey), headers).then(function (result) {\n return isError(result.status) ? handleServiceErrorResponse(result.status, result.blob) : Promise$1.resolve(result.blob);\n });\n };\n\n var requestBlob = function requestBlob(url, withCredentials) {\n return sendRequest(url, {}, withCredentials).then(function (result) {\n return isError(result.status) ? handleHttpError(result.status) : Promise$1.resolve(result.blob);\n });\n };\n\n var getUrl = function getUrl(url, apiKey, withCredentials) {\n if (withCredentials === void 0) {\n withCredentials = false;\n }\n\n return apiKey ? requestServiceBlob(url, apiKey) : requestBlob(url, withCredentials);\n };\n\n var blobToImageResult = function blobToImageResult(blob) {\n return fromBlob(blob);\n };\n\n var ELEMENT = 1;\n\n var fromHtml = function fromHtml(html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n\n return fromDom(div.childNodes[0]);\n };\n\n var fromTag = function fromTag(tag, scope) {\n var doc = scope || document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n\n var fromText = function fromText(text, scope) {\n var doc = scope || document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n\n var fromDom = function fromDom(node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n\n return {\n dom: node\n };\n };\n\n var fromPoint = function fromPoint(docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n };\n\n var SugarElement = {\n fromHtml: fromHtml,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n\n var is = function is(element, selector) {\n var dom = element.dom;\n\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n var elem = dom;\n\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n\n typeof window !== 'undefined' ? window : Function('return this;')();\n\n var child$1 = function child$1(scope, predicate) {\n var pred = function pred(node) {\n return predicate(SugarElement.fromDom(node));\n };\n\n var result = find(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n\n var child = function child(scope, selector) {\n return child$1(scope, function (e) {\n return is(e, selector);\n });\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Delay');\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n var getToolbarItems = function getToolbarItems(editor) {\n return editor.getParam('imagetools_toolbar', 'rotateleft rotateright flipv fliph editimage imageoptions');\n };\n\n var getProxyUrl = function getProxyUrl(editor) {\n return editor.getParam('imagetools_proxy');\n };\n\n var getCorsHosts = function getCorsHosts(editor) {\n return editor.getParam('imagetools_cors_hosts', [], 'string[]');\n };\n\n var getCredentialsHosts = function getCredentialsHosts(editor) {\n return editor.getParam('imagetools_credentials_hosts', [], 'string[]');\n };\n\n var getFetchImage = function getFetchImage(editor) {\n return Optional.from(editor.getParam('imagetools_fetch_image', null, 'function'));\n };\n\n var getApiKey = function getApiKey(editor) {\n return editor.getParam('api_key', editor.getParam('imagetools_api_key', '', 'string'), 'string');\n };\n\n var getUploadTimeout = function getUploadTimeout(editor) {\n return editor.getParam('images_upload_timeout', 30000, 'number');\n };\n\n var shouldReuseFilename = function shouldReuseFilename(editor) {\n return editor.getParam('images_reuse_filename', false, 'boolean');\n };\n\n var getImageSize = function getImageSize(img) {\n var width, height;\n\n var isPxValue = function isPxValue(value) {\n return /^[0-9\\.]+px$/.test(value);\n };\n\n width = img.style.width;\n height = img.style.height;\n\n if (width || height) {\n if (isPxValue(width) && isPxValue(height)) {\n return {\n w: parseInt(width, 10),\n h: parseInt(height, 10)\n };\n }\n\n return null;\n }\n\n width = img.width;\n height = img.height;\n\n if (width && height) {\n return {\n w: parseInt(width, 10),\n h: parseInt(height, 10)\n };\n }\n\n return null;\n };\n\n var setImageSize = function setImageSize(img, size) {\n var width, height;\n\n if (size) {\n width = img.style.width;\n height = img.style.height;\n\n if (width || height) {\n img.style.width = size.w + 'px';\n img.style.height = size.h + 'px';\n img.removeAttribute('data-mce-style');\n }\n\n width = img.width;\n height = img.height;\n\n if (width || height) {\n img.setAttribute('width', String(size.w));\n img.setAttribute('height', String(size.h));\n }\n }\n };\n\n var getNaturalImageSize = function getNaturalImageSize(img) {\n return {\n w: img.naturalWidth,\n h: img.naturalHeight\n };\n };\n\n var count = 0;\n\n var getFigureImg = function getFigureImg(elem) {\n return child(SugarElement.fromDom(elem), 'img');\n };\n\n var isFigure = function isFigure(editor, elem) {\n return editor.dom.is(elem, 'figure');\n };\n\n var isImage = function isImage(editor, imgNode) {\n return editor.dom.is(imgNode, 'img:not([data-mce-object],[data-mce-placeholder])');\n };\n\n var getEditableImage = function getEditableImage(editor, node) {\n var isEditable = function isEditable(imgNode) {\n return isImage(editor, imgNode) && (isLocalImage(editor, imgNode) || isCorsImage(editor, imgNode) || isNonNullable(getProxyUrl(editor)));\n };\n\n if (isFigure(editor, node)) {\n return getFigureImg(node).bind(function (img) {\n return isEditable(img.dom) ? Optional.some(img.dom) : Optional.none();\n });\n } else {\n return isEditable(node) ? Optional.some(node) : Optional.none();\n }\n };\n\n var displayError = function displayError(editor, error) {\n editor.notificationManager.open({\n text: error,\n type: 'error'\n });\n };\n\n var getSelectedImage = function getSelectedImage(editor) {\n var elem = editor.selection.getNode();\n var figureElm = editor.dom.getParent(elem, 'figure.image');\n\n if (figureElm !== null && isFigure(editor, figureElm)) {\n return getFigureImg(figureElm);\n } else if (isImage(editor, elem)) {\n return Optional.some(SugarElement.fromDom(elem));\n } else {\n return Optional.none();\n }\n };\n\n var extractFilename = function extractFilename(editor, url, group) {\n var m = url.match(/(?:\\/|^)(([^\\/\\?]+)\\.(?:[a-z0-9.]+))(?:\\?|$)/i);\n return isNonNullable(m) ? editor.dom.encode(m[group]) : null;\n };\n\n var createId = function createId() {\n return 'imagetools' + count++;\n };\n\n var isLocalImage = function isLocalImage(editor, img) {\n var url = img.src;\n return url.indexOf('data:') === 0 || url.indexOf('blob:') === 0 || new global$1(url).host === editor.documentBaseURI.host;\n };\n\n var isCorsImage = function isCorsImage(editor, img) {\n return global$4.inArray(getCorsHosts(editor), new global$1(img.src).host) !== -1;\n };\n\n var isCorsWithCredentialsImage = function isCorsWithCredentialsImage(editor, img) {\n return global$4.inArray(getCredentialsHosts(editor), new global$1(img.src).host) !== -1;\n };\n\n var defaultFetchImage = function defaultFetchImage(editor, img) {\n if (isCorsImage(editor, img)) {\n return getUrl(img.src, null, isCorsWithCredentialsImage(editor, img));\n }\n\n if (!isLocalImage(editor, img)) {\n var proxyUrl = getProxyUrl(editor);\n var src = proxyUrl + (proxyUrl.indexOf('?') === -1 ? '?' : '&') + 'url=' + encodeURIComponent(img.src);\n var apiKey = getApiKey(editor);\n return getUrl(src, apiKey, false);\n }\n\n return imageToBlob$1(img);\n };\n\n var imageToBlob = function imageToBlob(editor, img) {\n return getFetchImage(editor).fold(function () {\n return defaultFetchImage(editor, img);\n }, function (customFetchImage) {\n return customFetchImage(img);\n });\n };\n\n var findBlob = function findBlob(editor, img) {\n var blobInfo = editor.editorUpload.blobCache.getByUri(img.src);\n\n if (blobInfo) {\n return global$2.resolve(blobInfo.blob());\n }\n\n return imageToBlob(editor, img);\n };\n\n var startTimedUpload = function startTimedUpload(editor, imageUploadTimerState) {\n var imageUploadTimer = global$3.setEditorTimeout(editor, function () {\n editor.editorUpload.uploadImagesAuto();\n }, getUploadTimeout(editor));\n imageUploadTimerState.set(imageUploadTimer);\n };\n\n var cancelTimedUpload = function cancelTimedUpload(imageUploadTimerState) {\n global$3.clearTimeout(imageUploadTimerState.get());\n };\n\n var updateSelectedImage = function updateSelectedImage(editor, origBlob, ir, uploadImmediately, imageUploadTimerState, selectedImage, size) {\n return ir.toBlob().then(function (blob) {\n var uri, name, filename, blobInfo;\n var blobCache = editor.editorUpload.blobCache;\n uri = selectedImage.src;\n var useFilename = origBlob.type === blob.type;\n\n if (shouldReuseFilename(editor)) {\n blobInfo = blobCache.getByUri(uri);\n\n if (isNonNullable(blobInfo)) {\n uri = blobInfo.uri();\n name = blobInfo.name();\n filename = blobInfo.filename();\n } else {\n name = extractFilename(editor, uri, 2);\n filename = extractFilename(editor, uri, 1);\n }\n }\n\n blobInfo = blobCache.create({\n id: createId(),\n blob: blob,\n base64: ir.toBase64(),\n uri: uri,\n name: name,\n filename: useFilename ? filename : undefined\n });\n blobCache.add(blobInfo);\n editor.undoManager.transact(function () {\n var imageLoadedHandler = function imageLoadedHandler() {\n editor.$(selectedImage).off('load', imageLoadedHandler);\n editor.nodeChanged();\n\n if (uploadImmediately) {\n editor.editorUpload.uploadImagesAuto();\n } else {\n cancelTimedUpload(imageUploadTimerState);\n startTimedUpload(editor, imageUploadTimerState);\n }\n };\n\n editor.$(selectedImage).on('load', imageLoadedHandler);\n\n if (size) {\n editor.$(selectedImage).attr({\n width: size.w,\n height: size.h\n });\n }\n\n editor.$(selectedImage).attr({\n src: blobInfo.blobUri()\n }).removeAttr('data-mce-src');\n });\n return blobInfo;\n });\n };\n\n var selectedImageOperation = function selectedImageOperation(editor, imageUploadTimerState, fn, size) {\n return function () {\n var imgOpt = getSelectedImage(editor);\n return imgOpt.fold(function () {\n displayError(editor, 'Could not find selected image');\n }, function (img) {\n return editor._scanForImages().then(function () {\n return findBlob(editor, img.dom);\n }).then(function (blob) {\n return blobToImageResult(blob).then(fn).then(function (imageResult) {\n return updateSelectedImage(editor, blob, imageResult, false, imageUploadTimerState, img.dom, size);\n });\n }).catch(function (error) {\n displayError(editor, error);\n });\n });\n };\n };\n\n var rotate = function rotate(editor, imageUploadTimerState, angle) {\n return function () {\n var imgOpt = getSelectedImage(editor);\n var flippedSize = imgOpt.map(function (img) {\n var size = getImageSize(img.dom);\n return size ? {\n w: size.h,\n h: size.w\n } : null;\n }).getOrNull();\n return selectedImageOperation(editor, imageUploadTimerState, function (imageResult) {\n return rotate$1(imageResult, angle);\n }, flippedSize)();\n };\n };\n\n var flip = function flip(editor, imageUploadTimerState, axis) {\n return function () {\n return selectedImageOperation(editor, imageUploadTimerState, function (imageResult) {\n return flip$1(imageResult, axis);\n })();\n };\n };\n\n var handleDialogBlob = function handleDialogBlob(editor, imageUploadTimerState, img, originalSize, blob) {\n return blobToImage(blob).then(function (newImage) {\n var newSize = getNaturalImageSize(newImage);\n\n if (originalSize.w !== newSize.w || originalSize.h !== newSize.h) {\n if (getImageSize(img)) {\n setImageSize(img, newSize);\n }\n }\n\n URL.revokeObjectURL(newImage.src);\n return blob;\n }).then(blobToImageResult).then(function (imageResult) {\n return updateSelectedImage(editor, blob, imageResult, true, imageUploadTimerState, img);\n });\n };\n\n var saveState = 'save-state';\n var disable = 'disable';\n var enable = 'enable';\n\n var createState = function createState(blob) {\n return {\n blob: blob,\n url: URL.createObjectURL(blob)\n };\n };\n\n var makeOpen = function makeOpen(editor, imageUploadTimerState) {\n return function () {\n var getLoadedSpec = function getLoadedSpec(currentState) {\n return {\n title: 'Edit Image',\n size: 'large',\n body: {\n type: 'panel',\n items: [{\n type: 'imagetools',\n name: 'imagetools',\n label: 'Edit Image',\n currentState: currentState\n }]\n },\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true,\n disabled: true\n }],\n onSubmit: function onSubmit(api) {\n var blob = api.getData().imagetools.blob;\n originalImgOpt.each(function (originalImg) {\n originalSizeOpt.each(function (originalSize) {\n handleDialogBlob(editor, imageUploadTimerState, originalImg.dom, originalSize, blob);\n });\n });\n api.close();\n },\n onCancel: noop,\n onAction: function onAction(api, details) {\n switch (details.name) {\n case saveState:\n if (details.value) {\n api.enable('save');\n } else {\n api.disable('save');\n }\n\n break;\n\n case disable:\n api.disable('save');\n api.disable('cancel');\n break;\n\n case enable:\n api.enable('cancel');\n break;\n }\n }\n };\n };\n\n var originalImgOpt = getSelectedImage(editor);\n var originalSizeOpt = originalImgOpt.map(function (origImg) {\n return getNaturalImageSize(origImg.dom);\n });\n originalImgOpt.each(function (img) {\n getEditableImage(editor, img.dom).each(function (_) {\n findBlob(editor, img.dom).then(function (blob) {\n var state = createState(blob);\n editor.windowManager.open(getLoadedSpec(state));\n });\n });\n });\n };\n };\n\n var register$2 = function register$2(editor, imageUploadTimerState) {\n global$4.each({\n mceImageRotateLeft: rotate(editor, imageUploadTimerState, -90),\n mceImageRotateRight: rotate(editor, imageUploadTimerState, 90),\n mceImageFlipVertical: flip(editor, imageUploadTimerState, 'v'),\n mceImageFlipHorizontal: flip(editor, imageUploadTimerState, 'h'),\n mceEditImage: makeOpen(editor, imageUploadTimerState)\n }, function (fn, cmd) {\n editor.addCommand(cmd, fn);\n });\n };\n\n var setup = function setup(editor, imageUploadTimerState, lastSelectedImageState) {\n editor.on('NodeChange', function (e) {\n var lastSelectedImage = lastSelectedImageState.get();\n var selectedImage = getEditableImage(editor, e.element);\n\n if (lastSelectedImage && !selectedImage.exists(function (img) {\n return lastSelectedImage.src === img.src;\n })) {\n cancelTimedUpload(imageUploadTimerState);\n editor.editorUpload.uploadImagesAuto();\n lastSelectedImageState.set(null);\n }\n\n selectedImage.each(lastSelectedImageState.set);\n });\n };\n\n var register$1 = function register$1(editor) {\n var changeHandlers = [];\n\n var cmd = function cmd(command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n\n var isEditableImage = function isEditableImage() {\n return getSelectedImage(editor).exists(function (element) {\n return getEditableImage(editor, element.dom).isSome();\n });\n };\n\n var onSetup = function onSetup(api) {\n var handler = function handler(isEditableImage) {\n return api.setDisabled(!isEditableImage);\n };\n\n handler(isEditableImage());\n changeHandlers = changeHandlers.concat([handler]);\n return function () {\n changeHandlers = filter(changeHandlers, function (h) {\n return h !== handler;\n });\n };\n };\n\n editor.on('NodeChange', function () {\n var isEditable = isEditableImage();\n each$1(changeHandlers, function (handler) {\n return handler(isEditable);\n });\n });\n editor.ui.registry.addButton('rotateleft', {\n tooltip: 'Rotate counterclockwise',\n icon: 'rotate-left',\n onAction: cmd('mceImageRotateLeft'),\n onSetup: onSetup\n });\n editor.ui.registry.addButton('rotateright', {\n tooltip: 'Rotate clockwise',\n icon: 'rotate-right',\n onAction: cmd('mceImageRotateRight'),\n onSetup: onSetup\n });\n editor.ui.registry.addButton('flipv', {\n tooltip: 'Flip vertically',\n icon: 'flip-vertically',\n onAction: cmd('mceImageFlipVertical'),\n onSetup: onSetup\n });\n editor.ui.registry.addButton('fliph', {\n tooltip: 'Flip horizontally',\n icon: 'flip-horizontally',\n onAction: cmd('mceImageFlipHorizontal'),\n onSetup: onSetup\n });\n editor.ui.registry.addButton('editimage', {\n tooltip: 'Edit image',\n icon: 'edit-image',\n onAction: cmd('mceEditImage'),\n onSetup: onSetup\n });\n editor.ui.registry.addButton('imageoptions', {\n tooltip: 'Image options',\n icon: 'image',\n onAction: cmd('mceImage')\n });\n editor.ui.registry.addContextMenu('imagetools', {\n update: function update(element) {\n return getEditableImage(editor, element).map(function (_) {\n return {\n text: 'Edit image',\n icon: 'edit-image',\n onAction: cmd('mceEditImage')\n };\n }).toArray();\n }\n });\n };\n\n var register = function register(editor) {\n editor.ui.registry.addContextToolbar('imagetools', {\n items: getToolbarItems(editor),\n predicate: function predicate(elem) {\n return getEditableImage(editor, elem).isSome();\n },\n position: 'node',\n scope: 'node'\n });\n };\n\n function Plugin() {\n global$5.add('imagetools', function (editor) {\n var imageUploadTimerState = Cell(0);\n var lastSelectedImageState = Cell(null);\n register$2(editor, imageUploadTimerState);\n register$1(editor);\n register(editor);\n setup(editor, imageUploadTimerState, lastSelectedImageState);\n });\n }\n\n Plugin();\n})();","// Exports the \"media\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/media')\n// ES2015:\n// import 'tinymce/plugins/media'\nrequire('./plugin.js');","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.3 (2022-02-09)\n */\n(function () {\n 'use strict';\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n };\n\n var typeOf = function typeOf(x) {\n var t = _typeof(x);\n\n if (x === null) {\n return 'null';\n } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n } else {\n return t;\n }\n };\n\n var isType = function isType(type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n\n var isString = isType('string');\n var isObject = isType('object');\n var isArray = isType('array');\n\n var isNullable = function isNullable(a) {\n return a === null || a === undefined;\n };\n\n var isNonNullable = function isNonNullable(a) {\n return !isNullable(a);\n };\n\n var noop = function noop() {};\n\n var constant = function constant(value) {\n return function () {\n return value;\n };\n };\n\n var identity = function identity(x) {\n return x;\n };\n\n var never = constant(false);\n var always = constant(true);\n\n var none = function none() {\n return NONE;\n };\n\n var NONE = function () {\n var call = function call(thunk) {\n return thunk();\n };\n\n var id = identity;\n var me = {\n fold: function fold(n, _s) {\n return n();\n },\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function getOrDie(msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant(null),\n getOrUndefined: constant(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: function filter() {\n return none();\n },\n toArray: function toArray() {\n return [];\n },\n toString: constant('none()')\n };\n return me;\n }();\n\n var some = function some(a) {\n var constant_a = constant(a);\n\n var self = function self() {\n return me;\n };\n\n var bind = function bind(f) {\n return f(a);\n };\n\n var me = {\n fold: function fold(n, s) {\n return s(a);\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function map(f) {\n return some(f(a));\n },\n each: function each(f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function filter(f) {\n return f(a) ? me : NONE;\n },\n toArray: function toArray() {\n return [a];\n },\n toString: function toString() {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n\n var from = function from(value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n\n var Optional = {\n some: some,\n none: none,\n from: from\n };\n var nativePush = Array.prototype.push;\n\n var each$1 = function each$1(xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n\n var flatten = function flatten(xs) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n\n nativePush.apply(r, xs[i]);\n }\n\n return r;\n };\n\n var Cell = function Cell(initial) {\n var value = initial;\n\n var get = function get() {\n return value;\n };\n\n var set = function set(v) {\n value = v;\n };\n\n return {\n get: get,\n set: set\n };\n };\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n\n var each = function each(obj, f) {\n var props = keys(obj);\n\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n\n var get$1 = function get$1(obj, key) {\n return has(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n\n var has = function has(obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var getScripts = function getScripts(editor) {\n return editor.getParam('media_scripts');\n };\n\n var getAudioTemplateCallback = function getAudioTemplateCallback(editor) {\n return editor.getParam('audio_template_callback');\n };\n\n var getVideoTemplateCallback = function getVideoTemplateCallback(editor) {\n return editor.getParam('video_template_callback');\n };\n\n var hasLiveEmbeds = function hasLiveEmbeds(editor) {\n return editor.getParam('media_live_embeds', true);\n };\n\n var shouldFilterHtml = function shouldFilterHtml(editor) {\n return editor.getParam('media_filter_html', true);\n };\n\n var getUrlResolver = function getUrlResolver(editor) {\n return editor.getParam('media_url_resolver');\n };\n\n var hasAltSource = function hasAltSource(editor) {\n return editor.getParam('media_alt_source', true);\n };\n\n var hasPoster = function hasPoster(editor) {\n return editor.getParam('media_poster', true);\n };\n\n var hasDimensions = function hasDimensions(editor) {\n return editor.getParam('media_dimensions', true);\n };\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n var global$7 = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n var global$6 = tinymce.util.Tools.resolve('tinymce.html.SaxParser');\n\n var getVideoScriptMatch = function getVideoScriptMatch(prefixes, src) {\n if (prefixes) {\n for (var i = 0; i < prefixes.length; i++) {\n if (src.indexOf(prefixes[i].filter) !== -1) {\n return prefixes[i];\n }\n }\n }\n };\n\n var DOM$1 = global$7.DOM;\n\n var trimPx = function trimPx(value) {\n return value.replace(/px$/, '');\n };\n\n var getEphoxEmbedData = function getEphoxEmbedData(attrs) {\n var style = attrs.map.style;\n var styles = style ? DOM$1.parseStyle(style) : {};\n return {\n type: 'ephox-embed-iri',\n source: attrs.map['data-ephox-embed-iri'],\n altsource: '',\n poster: '',\n width: get$1(styles, 'max-width').map(trimPx).getOr(''),\n height: get$1(styles, 'max-height').map(trimPx).getOr('')\n };\n };\n\n var htmlToData = function htmlToData(prefixes, html) {\n var isEphoxEmbed = Cell(false);\n var data = {};\n global$6({\n validate: false,\n allow_conditional_comments: true,\n start: function start(name, attrs) {\n if (isEphoxEmbed.get()) ;else if (has(attrs.map, 'data-ephox-embed-iri')) {\n isEphoxEmbed.set(true);\n data = getEphoxEmbedData(attrs);\n } else {\n if (!data.source && name === 'param') {\n data.source = attrs.map.movie;\n }\n\n if (name === 'iframe' || name === 'object' || name === 'embed' || name === 'video' || name === 'audio') {\n if (!data.type) {\n data.type = name;\n }\n\n data = global$8.extend(attrs.map, data);\n }\n\n if (name === 'script') {\n var videoScript = getVideoScriptMatch(prefixes, attrs.map.src);\n\n if (!videoScript) {\n return;\n }\n\n data = {\n type: 'script',\n source: attrs.map.src,\n width: String(videoScript.width),\n height: String(videoScript.height)\n };\n }\n\n if (name === 'source') {\n if (!data.source) {\n data.source = attrs.map.src;\n } else if (!data.altsource) {\n data.altsource = attrs.map.src;\n }\n }\n\n if (name === 'img' && !data.poster) {\n data.poster = attrs.map.src;\n }\n }\n }\n }).parse(html);\n data.source = data.source || data.src || data.data;\n data.altsource = data.altsource || '';\n data.poster = data.poster || '';\n return data;\n };\n\n var guess = function guess(url) {\n var mimes = {\n mp3: 'audio/mpeg',\n m4a: 'audio/x-m4a',\n wav: 'audio/wav',\n mp4: 'video/mp4',\n webm: 'video/webm',\n ogg: 'video/ogg',\n swf: 'application/x-shockwave-flash'\n };\n var fileEnd = url.toLowerCase().split('.').pop();\n var mime = mimes[fileEnd];\n return mime ? mime : '';\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.html.Schema');\n var global$4 = tinymce.util.Tools.resolve('tinymce.html.Writer');\n var DOM = global$7.DOM;\n\n var addPx = function addPx(value) {\n return /^[0-9.]+$/.test(value) ? value + 'px' : value;\n };\n\n var setAttributes = function setAttributes(attrs, updatedAttrs) {\n each(updatedAttrs, function (val, name) {\n var value = '' + val;\n\n if (attrs.map[name]) {\n var i = attrs.length;\n\n while (i--) {\n var attr = attrs[i];\n\n if (attr.name === name) {\n if (value) {\n attrs.map[name] = value;\n attr.value = value;\n } else {\n delete attrs.map[name];\n attrs.splice(i, 1);\n }\n }\n }\n } else if (value) {\n attrs.push({\n name: name,\n value: value\n });\n attrs.map[name] = value;\n }\n });\n };\n\n var updateEphoxEmbed = function updateEphoxEmbed(data, attrs) {\n var style = attrs.map.style;\n var styleMap = style ? DOM.parseStyle(style) : {};\n styleMap['max-width'] = addPx(data.width);\n styleMap['max-height'] = addPx(data.height);\n setAttributes(attrs, {\n style: DOM.serializeStyle(styleMap)\n });\n };\n\n var sources = ['source', 'altsource'];\n\n var updateHtml = function updateHtml(html, data, updateAll) {\n var writer = global$4();\n var isEphoxEmbed = Cell(false);\n var sourceCount = 0;\n var hasImage;\n global$6({\n validate: false,\n allow_conditional_comments: true,\n comment: function comment(text) {\n writer.comment(text);\n },\n cdata: function cdata(text) {\n writer.cdata(text);\n },\n text: function text(_text, raw) {\n writer.text(_text, raw);\n },\n start: function start(name, attrs, empty) {\n if (isEphoxEmbed.get()) ;else if (has(attrs.map, 'data-ephox-embed-iri')) {\n isEphoxEmbed.set(true);\n updateEphoxEmbed(data, attrs);\n } else {\n switch (name) {\n case 'video':\n case 'object':\n case 'embed':\n case 'img':\n case 'iframe':\n if (data.height !== undefined && data.width !== undefined) {\n setAttributes(attrs, {\n width: data.width,\n height: data.height\n });\n }\n\n break;\n }\n\n if (updateAll) {\n switch (name) {\n case 'video':\n setAttributes(attrs, {\n poster: data.poster,\n src: ''\n });\n\n if (data.altsource) {\n setAttributes(attrs, {\n src: ''\n });\n }\n\n break;\n\n case 'iframe':\n setAttributes(attrs, {\n src: data.source\n });\n break;\n\n case 'source':\n if (sourceCount < 2) {\n setAttributes(attrs, {\n src: data[sources[sourceCount]],\n type: data[sources[sourceCount] + 'mime']\n });\n\n if (!data[sources[sourceCount]]) {\n return;\n }\n }\n\n sourceCount++;\n break;\n\n case 'img':\n if (!data.poster) {\n return;\n }\n\n hasImage = true;\n break;\n }\n }\n }\n writer.start(name, attrs, empty);\n },\n end: function end(name) {\n if (!isEphoxEmbed.get()) {\n if (name === 'video' && updateAll) {\n for (var index = 0; index < 2; index++) {\n if (data[sources[index]]) {\n var attrs = [];\n attrs.map = {};\n\n if (sourceCount <= index) {\n setAttributes(attrs, {\n src: data[sources[index]],\n type: data[sources[index] + 'mime']\n });\n writer.start('source', attrs, true);\n }\n }\n }\n }\n\n if (data.poster && name === 'object' && updateAll && !hasImage) {\n var imgAttrs = [];\n imgAttrs.map = {};\n setAttributes(imgAttrs, {\n src: data.poster,\n width: data.width,\n height: data.height\n });\n writer.start('img', imgAttrs, true);\n }\n }\n\n writer.end(name);\n }\n }, global$5({})).parse(html);\n return writer.getContent();\n };\n\n var urlPatterns = [{\n regex: /youtu\\.be\\/([\\w\\-_\\?&=.]+)/i,\n type: 'iframe',\n w: 560,\n h: 314,\n url: 'www.youtube.com/embed/$1',\n allowFullscreen: true\n }, {\n regex: /youtube\\.com(.+)v=([^&]+)(&([a-z0-9&=\\-_]+))?/i,\n type: 'iframe',\n w: 560,\n h: 314,\n url: 'www.youtube.com/embed/$2?$4',\n allowFullscreen: true\n }, {\n regex: /youtube.com\\/embed\\/([a-z0-9\\?&=\\-_]+)/i,\n type: 'iframe',\n w: 560,\n h: 314,\n url: 'www.youtube.com/embed/$1',\n allowFullscreen: true\n }, {\n regex: /vimeo\\.com\\/([0-9]+)/,\n type: 'iframe',\n w: 425,\n h: 350,\n url: 'player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc',\n allowFullscreen: true\n }, {\n regex: /vimeo\\.com\\/(.*)\\/([0-9]+)/,\n type: 'iframe',\n w: 425,\n h: 350,\n url: 'player.vimeo.com/video/$2?title=0&byline=0',\n allowFullscreen: true\n }, {\n regex: /maps\\.google\\.([a-z]{2,3})\\/maps\\/(.+)msid=(.+)/,\n type: 'iframe',\n w: 425,\n h: 350,\n url: 'maps.google.com/maps/ms?msid=$2&output=embed\"',\n allowFullscreen: false\n }, {\n regex: /dailymotion\\.com\\/video\\/([^_]+)/,\n type: 'iframe',\n w: 480,\n h: 270,\n url: 'www.dailymotion.com/embed/video/$1',\n allowFullscreen: true\n }, {\n regex: /dai\\.ly\\/([^_]+)/,\n type: 'iframe',\n w: 480,\n h: 270,\n url: 'www.dailymotion.com/embed/video/$1',\n allowFullscreen: true\n }];\n\n var getProtocol = function getProtocol(url) {\n var protocolMatches = url.match(/^(https?:\\/\\/|www\\.)(.+)$/i);\n\n if (protocolMatches && protocolMatches.length > 1) {\n return protocolMatches[1] === 'www.' ? 'https://' : protocolMatches[1];\n } else {\n return 'https://';\n }\n };\n\n var getUrl = function getUrl(pattern, url) {\n var protocol = getProtocol(url);\n var match = pattern.regex.exec(url);\n var newUrl = protocol + pattern.url;\n\n var _loop_1 = function _loop_1(i) {\n newUrl = newUrl.replace('$' + i, function () {\n return match[i] ? match[i] : '';\n });\n };\n\n for (var i = 0; i < match.length; i++) {\n _loop_1(i);\n }\n\n return newUrl.replace(/\\?$/, '');\n };\n\n var matchPattern = function matchPattern(url) {\n var patterns = urlPatterns.filter(function (pattern) {\n return pattern.regex.test(url);\n });\n\n if (patterns.length > 0) {\n return global$8.extend({}, patterns[0], {\n url: getUrl(patterns[0], url)\n });\n } else {\n return null;\n }\n };\n\n var getIframeHtml = function getIframeHtml(data) {\n var allowFullscreen = data.allowfullscreen ? ' allowFullscreen=\"1\"' : '';\n return '';\n };\n\n var getFlashHtml = function getFlashHtml(data) {\n var html = '';\n\n if (data.poster) {\n html += '';\n }\n\n html += '';\n return html;\n };\n\n var getAudioHtml = function getAudioHtml(data, audioTemplateCallback) {\n if (audioTemplateCallback) {\n return audioTemplateCallback(data);\n } else {\n return '';\n }\n };\n\n var getVideoHtml = function getVideoHtml(data, videoTemplateCallback) {\n if (videoTemplateCallback) {\n return videoTemplateCallback(data);\n } else {\n return '';\n }\n };\n\n var getScriptHtml = function getScriptHtml(data) {\n return '';\n };\n\n var dataToHtml = function dataToHtml(editor, dataIn) {\n var data = global$8.extend({}, dataIn);\n\n if (!data.source) {\n global$8.extend(data, htmlToData(getScripts(editor), data.embed));\n\n if (!data.source) {\n return '';\n }\n }\n\n if (!data.altsource) {\n data.altsource = '';\n }\n\n if (!data.poster) {\n data.poster = '';\n }\n\n data.source = editor.convertURL(data.source, 'source');\n data.altsource = editor.convertURL(data.altsource, 'source');\n data.sourcemime = guess(data.source);\n data.altsourcemime = guess(data.altsource);\n data.poster = editor.convertURL(data.poster, 'poster');\n var pattern = matchPattern(data.source);\n\n if (pattern) {\n data.source = pattern.url;\n data.type = pattern.type;\n data.allowfullscreen = pattern.allowFullscreen;\n data.width = data.width || String(pattern.w);\n data.height = data.height || String(pattern.h);\n }\n\n if (data.embed) {\n return updateHtml(data.embed, data, true);\n } else {\n var videoScript = getVideoScriptMatch(getScripts(editor), data.source);\n\n if (videoScript) {\n data.type = 'script';\n data.width = String(videoScript.width);\n data.height = String(videoScript.height);\n }\n\n var audioTemplateCallback = getAudioTemplateCallback(editor);\n var videoTemplateCallback = getVideoTemplateCallback(editor);\n data.width = data.width || '300';\n data.height = data.height || '150';\n global$8.each(data, function (value, key) {\n data[key] = editor.dom.encode('' + value);\n });\n\n if (data.type === 'iframe') {\n return getIframeHtml(data);\n } else if (data.sourcemime === 'application/x-shockwave-flash') {\n return getFlashHtml(data);\n } else if (data.sourcemime.indexOf('audio') !== -1) {\n return getAudioHtml(data, audioTemplateCallback);\n } else if (data.type === 'script') {\n return getScriptHtml(data);\n } else {\n return getVideoHtml(data, videoTemplateCallback);\n }\n }\n };\n\n var isMediaElement = function isMediaElement(element) {\n return element.hasAttribute('data-mce-object') || element.hasAttribute('data-ephox-embed-iri');\n };\n\n var setup$2 = function setup$2(editor) {\n editor.on('click keyup touchend', function () {\n var selectedNode = editor.selection.getNode();\n\n if (selectedNode && editor.dom.hasClass(selectedNode, 'mce-preview-object')) {\n if (editor.dom.getAttrib(selectedNode, 'data-mce-selected')) {\n selectedNode.setAttribute('data-mce-selected', '2');\n }\n }\n });\n editor.on('ObjectSelected', function (e) {\n var objectType = e.target.getAttribute('data-mce-object');\n\n if (objectType === 'script') {\n e.preventDefault();\n }\n });\n editor.on('ObjectResized', function (e) {\n var target = e.target;\n\n if (target.getAttribute('data-mce-object')) {\n var html = target.getAttribute('data-mce-html');\n\n if (html) {\n html = unescape(html);\n target.setAttribute('data-mce-html', escape(updateHtml(html, {\n width: String(e.width),\n height: String(e.height)\n })));\n }\n }\n });\n };\n\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Promise');\n var cache = {};\n\n var embedPromise = function embedPromise(data, dataToHtml, handler) {\n return new global$3(function (res, rej) {\n var wrappedResolve = function wrappedResolve(response) {\n if (response.html) {\n cache[data.source] = response;\n }\n\n return res({\n url: data.source,\n html: response.html ? response.html : dataToHtml(data)\n });\n };\n\n if (cache[data.source]) {\n wrappedResolve(cache[data.source]);\n } else {\n handler({\n url: data.source\n }, wrappedResolve, rej);\n }\n });\n };\n\n var defaultPromise = function defaultPromise(data, dataToHtml) {\n return global$3.resolve({\n html: dataToHtml(data),\n url: data.source\n });\n };\n\n var loadedData = function loadedData(editor) {\n return function (data) {\n return dataToHtml(editor, data);\n };\n };\n\n var getEmbedHtml = function getEmbedHtml(editor, data) {\n var embedHandler = getUrlResolver(editor);\n return embedHandler ? embedPromise(data, loadedData(editor), embedHandler) : defaultPromise(data, loadedData(editor));\n };\n\n var isCached = function isCached(url) {\n return has(cache, url);\n };\n\n var extractMeta = function extractMeta(sourceInput, data) {\n return get$1(data, sourceInput).bind(function (mainData) {\n return get$1(mainData, 'meta');\n });\n };\n\n var getValue = function getValue(data, metaData, sourceInput) {\n return function (prop) {\n var _a;\n\n var getFromData = function getFromData() {\n return get$1(data, prop);\n };\n\n var getFromMetaData = function getFromMetaData() {\n return get$1(metaData, prop);\n };\n\n var getNonEmptyValue = function getNonEmptyValue(c) {\n return get$1(c, 'value').bind(function (v) {\n return v.length > 0 ? Optional.some(v) : Optional.none();\n });\n };\n\n var getFromValueFirst = function getFromValueFirst() {\n return getFromData().bind(function (child) {\n return isObject(child) ? getNonEmptyValue(child).orThunk(getFromMetaData) : getFromMetaData().orThunk(function () {\n return Optional.from(child);\n });\n });\n };\n\n var getFromMetaFirst = function getFromMetaFirst() {\n return getFromMetaData().orThunk(function () {\n return getFromData().bind(function (child) {\n return isObject(child) ? getNonEmptyValue(child) : Optional.from(child);\n });\n });\n };\n\n return _a = {}, _a[prop] = (prop === sourceInput ? getFromValueFirst() : getFromMetaFirst()).getOr(''), _a;\n };\n };\n\n var getDimensions = function getDimensions(data, metaData) {\n var dimensions = {};\n get$1(data, 'dimensions').each(function (dims) {\n each$1(['width', 'height'], function (prop) {\n get$1(metaData, prop).orThunk(function () {\n return get$1(dims, prop);\n }).each(function (value) {\n return dimensions[prop] = value;\n });\n });\n });\n return dimensions;\n };\n\n var unwrap = function unwrap(data, sourceInput) {\n var metaData = sourceInput ? extractMeta(sourceInput, data).getOr({}) : {};\n var get = getValue(data, metaData, sourceInput);\n return _assign(_assign(_assign(_assign(_assign({}, get('source')), get('altsource')), get('poster')), get('embed')), getDimensions(data, metaData));\n };\n\n var wrap = function wrap(data) {\n var wrapped = _assign(_assign({}, data), {\n source: {\n value: get$1(data, 'source').getOr('')\n },\n altsource: {\n value: get$1(data, 'altsource').getOr('')\n },\n poster: {\n value: get$1(data, 'poster').getOr('')\n }\n });\n\n each$1(['width', 'height'], function (prop) {\n get$1(data, prop).each(function (value) {\n var dimensions = wrapped.dimensions || {};\n dimensions[prop] = value;\n wrapped.dimensions = dimensions;\n });\n });\n return wrapped;\n };\n\n var handleError = function handleError(editor) {\n return function (error) {\n var errorMessage = error && error.msg ? 'Media embed handler error: ' + error.msg : 'Media embed handler threw unknown error.';\n editor.notificationManager.open({\n type: 'error',\n text: errorMessage\n });\n };\n };\n\n var snippetToData = function snippetToData(editor, embedSnippet) {\n return htmlToData(getScripts(editor), embedSnippet);\n };\n\n var getEditorData = function getEditorData(editor) {\n var element = editor.selection.getNode();\n var snippet = isMediaElement(element) ? editor.serializer.serialize(element, {\n selection: true\n }) : '';\n return _assign({\n embed: snippet\n }, htmlToData(getScripts(editor), snippet));\n };\n\n var addEmbedHtml = function addEmbedHtml(api, editor) {\n return function (response) {\n if (isString(response.url) && response.url.trim().length > 0) {\n var html = response.html;\n var snippetData = snippetToData(editor, html);\n\n var nuData = _assign(_assign({}, snippetData), {\n source: response.url,\n embed: html\n });\n\n api.setData(wrap(nuData));\n }\n };\n };\n\n var selectPlaceholder = function selectPlaceholder(editor, beforeObjects) {\n var afterObjects = editor.dom.select('*[data-mce-object]');\n\n for (var i = 0; i < beforeObjects.length; i++) {\n for (var y = afterObjects.length - 1; y >= 0; y--) {\n if (beforeObjects[i] === afterObjects[y]) {\n afterObjects.splice(y, 1);\n }\n }\n }\n\n editor.selection.select(afterObjects[0]);\n };\n\n var handleInsert = function handleInsert(editor, html) {\n var beforeObjects = editor.dom.select('*[data-mce-object]');\n editor.insertContent(html);\n selectPlaceholder(editor, beforeObjects);\n editor.nodeChanged();\n };\n\n var submitForm = function submitForm(prevData, newData, editor) {\n newData.embed = updateHtml(newData.embed, newData);\n\n if (newData.embed && (prevData.source === newData.source || isCached(newData.source))) {\n handleInsert(editor, newData.embed);\n } else {\n getEmbedHtml(editor, newData).then(function (response) {\n handleInsert(editor, response.html);\n }).catch(handleError(editor));\n }\n };\n\n var showDialog = function showDialog(editor) {\n var editorData = getEditorData(editor);\n var currentData = Cell(editorData);\n var initialData = wrap(editorData);\n\n var handleSource = function handleSource(prevData, api) {\n var serviceData = unwrap(api.getData(), 'source');\n\n if (prevData.source !== serviceData.source) {\n addEmbedHtml(win, editor)({\n url: serviceData.source,\n html: ''\n });\n getEmbedHtml(editor, serviceData).then(addEmbedHtml(win, editor)).catch(handleError(editor));\n }\n };\n\n var handleEmbed = function handleEmbed(api) {\n var data = unwrap(api.getData());\n var dataFromEmbed = snippetToData(editor, data.embed);\n api.setData(wrap(dataFromEmbed));\n };\n\n var handleUpdate = function handleUpdate(api, sourceInput) {\n var data = unwrap(api.getData(), sourceInput);\n var embed = dataToHtml(editor, data);\n api.setData(wrap(_assign(_assign({}, data), {\n embed: embed\n })));\n };\n\n var mediaInput = [{\n name: 'source',\n type: 'urlinput',\n filetype: 'media',\n label: 'Source'\n }];\n var sizeInput = !hasDimensions(editor) ? [] : [{\n type: 'sizeinput',\n name: 'dimensions',\n label: 'Constrain proportions',\n constrain: true\n }];\n var generalTab = {\n title: 'General',\n name: 'general',\n items: flatten([mediaInput, sizeInput])\n };\n var embedTextarea = {\n type: 'textarea',\n name: 'embed',\n label: 'Paste your embed code below:'\n };\n var embedTab = {\n title: 'Embed',\n items: [embedTextarea]\n };\n var advancedFormItems = [];\n\n if (hasAltSource(editor)) {\n advancedFormItems.push({\n name: 'altsource',\n type: 'urlinput',\n filetype: 'media',\n label: 'Alternative source URL'\n });\n }\n\n if (hasPoster(editor)) {\n advancedFormItems.push({\n name: 'poster',\n type: 'urlinput',\n filetype: 'image',\n label: 'Media poster (Image URL)'\n });\n }\n\n var advancedTab = {\n title: 'Advanced',\n name: 'advanced',\n items: advancedFormItems\n };\n var tabs = [generalTab, embedTab];\n\n if (advancedFormItems.length > 0) {\n tabs.push(advancedTab);\n }\n\n var body = {\n type: 'tabpanel',\n tabs: tabs\n };\n var win = editor.windowManager.open({\n title: 'Insert/Edit Media',\n size: 'normal',\n body: body,\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n onSubmit: function onSubmit(api) {\n var serviceData = unwrap(api.getData());\n submitForm(currentData.get(), serviceData, editor);\n api.close();\n },\n onChange: function onChange(api, detail) {\n switch (detail.name) {\n case 'source':\n handleSource(currentData.get(), api);\n break;\n\n case 'embed':\n handleEmbed(api);\n break;\n\n case 'dimensions':\n case 'altsource':\n case 'poster':\n handleUpdate(api, detail.name);\n break;\n }\n\n currentData.set(unwrap(api.getData()));\n },\n initialData: initialData\n });\n };\n\n var get = function get(editor) {\n var showDialog$1 = function showDialog$1() {\n showDialog(editor);\n };\n\n return {\n showDialog: showDialog$1\n };\n };\n\n var register$1 = function register$1(editor) {\n var showDialog$1 = function showDialog$1() {\n showDialog(editor);\n };\n\n editor.addCommand('mceMedia', showDialog$1);\n };\n\n var global$2 = tinymce.util.Tools.resolve('tinymce.html.Node');\n var global$1 = tinymce.util.Tools.resolve('tinymce.Env');\n var global = tinymce.util.Tools.resolve('tinymce.html.DomParser');\n\n var sanitize = function sanitize(editor, html) {\n if (shouldFilterHtml(editor) === false) {\n return html;\n }\n\n var writer = global$4();\n var blocked;\n global$6({\n validate: false,\n allow_conditional_comments: false,\n comment: function comment(text) {\n if (!blocked) {\n writer.comment(text);\n }\n },\n cdata: function cdata(text) {\n if (!blocked) {\n writer.cdata(text);\n }\n },\n text: function text(_text2, raw) {\n if (!blocked) {\n writer.text(_text2, raw);\n }\n },\n start: function start(name, attrs, empty) {\n blocked = true;\n\n if (name === 'script' || name === 'noscript' || name === 'svg') {\n return;\n }\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n var attrName = attrs[i].name;\n\n if (attrName.indexOf('on') === 0) {\n delete attrs.map[attrName];\n attrs.splice(i, 1);\n }\n\n if (attrName === 'style') {\n attrs[i].value = editor.dom.serializeStyle(editor.dom.parseStyle(attrs[i].value), name);\n }\n }\n\n writer.start(name, attrs, empty);\n blocked = false;\n },\n end: function end(name) {\n if (blocked) {\n return;\n }\n\n writer.end(name);\n }\n }, global$5({})).parse(html);\n return writer.getContent();\n };\n\n var isLiveEmbedNode = function isLiveEmbedNode(node) {\n var name = node.name;\n return name === 'iframe' || name === 'video' || name === 'audio';\n };\n\n var getDimension = function getDimension(node, styles, dimension, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = null;\n }\n\n var value = node.attr(dimension);\n\n if (isNonNullable(value)) {\n return value;\n } else if (!has(styles, dimension)) {\n return defaultValue;\n } else {\n return null;\n }\n };\n\n var setDimensions = function setDimensions(node, previewNode, styles) {\n var useDefaults = previewNode.name === 'img' || node.name === 'video';\n var defaultWidth = useDefaults ? '300' : null;\n var fallbackHeight = node.name === 'audio' ? '30' : '150';\n var defaultHeight = useDefaults ? fallbackHeight : null;\n previewNode.attr({\n width: getDimension(node, styles, 'width', defaultWidth),\n height: getDimension(node, styles, 'height', defaultHeight)\n });\n };\n\n var appendNodeContent = function appendNodeContent(editor, nodeName, previewNode, html) {\n var newNode = global({\n forced_root_block: false,\n validate: false\n }, editor.schema).parse(html, {\n context: nodeName\n });\n\n while (newNode.firstChild) {\n previewNode.append(newNode.firstChild);\n }\n };\n\n var createPlaceholderNode = function createPlaceholderNode(editor, node) {\n var name = node.name;\n var placeHolder = new global$2('img', 1);\n placeHolder.shortEnded = true;\n retainAttributesAndInnerHtml(editor, node, placeHolder);\n setDimensions(node, placeHolder, {});\n placeHolder.attr({\n 'style': node.attr('style'),\n 'src': global$1.transparentSrc,\n 'data-mce-object': name,\n 'class': 'mce-object mce-object-' + name\n });\n return placeHolder;\n };\n\n var createPreviewNode = function createPreviewNode(editor, node) {\n var name = node.name;\n var previewWrapper = new global$2('span', 1);\n previewWrapper.attr({\n 'contentEditable': 'false',\n 'style': node.attr('style'),\n 'data-mce-object': name,\n 'class': 'mce-preview-object mce-object-' + name\n });\n retainAttributesAndInnerHtml(editor, node, previewWrapper);\n var styles = editor.dom.parseStyle(node.attr('style'));\n var previewNode = new global$2(name, 1);\n setDimensions(node, previewNode, styles);\n previewNode.attr({\n src: node.attr('src'),\n style: node.attr('style'),\n class: node.attr('class')\n });\n\n if (name === 'iframe') {\n previewNode.attr({\n allowfullscreen: node.attr('allowfullscreen'),\n frameborder: '0'\n });\n } else {\n var attrs = ['controls', 'crossorigin', 'currentTime', 'loop', 'muted', 'poster', 'preload'];\n each$1(attrs, function (attrName) {\n previewNode.attr(attrName, node.attr(attrName));\n });\n var sanitizedHtml = previewWrapper.attr('data-mce-html');\n\n if (isNonNullable(sanitizedHtml)) {\n appendNodeContent(editor, name, previewNode, unescape(sanitizedHtml));\n }\n }\n\n var shimNode = new global$2('span', 1);\n shimNode.attr('class', 'mce-shim');\n previewWrapper.append(previewNode);\n previewWrapper.append(shimNode);\n return previewWrapper;\n };\n\n var retainAttributesAndInnerHtml = function retainAttributesAndInnerHtml(editor, sourceNode, targetNode) {\n var attribs = sourceNode.attributes;\n var ai = attribs.length;\n\n while (ai--) {\n var attrName = attribs[ai].name;\n var attrValue = attribs[ai].value;\n\n if (attrName !== 'width' && attrName !== 'height' && attrName !== 'style') {\n if (attrName === 'data' || attrName === 'src') {\n attrValue = editor.convertURL(attrValue, attrName);\n }\n\n targetNode.attr('data-mce-p-' + attrName, attrValue);\n }\n }\n\n var innerHtml = sourceNode.firstChild && sourceNode.firstChild.value;\n\n if (innerHtml) {\n targetNode.attr('data-mce-html', escape(sanitize(editor, innerHtml)));\n targetNode.firstChild = null;\n }\n };\n\n var isPageEmbedWrapper = function isPageEmbedWrapper(node) {\n var nodeClass = node.attr('class');\n return nodeClass && /\\btiny-pageembed\\b/.test(nodeClass);\n };\n\n var isWithinEmbedWrapper = function isWithinEmbedWrapper(node) {\n while (node = node.parent) {\n if (node.attr('data-ephox-embed-iri') || isPageEmbedWrapper(node)) {\n return true;\n }\n }\n\n return false;\n };\n\n var placeHolderConverter = function placeHolderConverter(editor) {\n return function (nodes) {\n var i = nodes.length;\n var node;\n var videoScript;\n\n while (i--) {\n node = nodes[i];\n\n if (!node.parent) {\n continue;\n }\n\n if (node.parent.attr('data-mce-object')) {\n continue;\n }\n\n if (node.name === 'script') {\n videoScript = getVideoScriptMatch(getScripts(editor), node.attr('src'));\n\n if (!videoScript) {\n continue;\n }\n }\n\n if (videoScript) {\n if (videoScript.width) {\n node.attr('width', videoScript.width.toString());\n }\n\n if (videoScript.height) {\n node.attr('height', videoScript.height.toString());\n }\n }\n\n if (isLiveEmbedNode(node) && hasLiveEmbeds(editor) && global$1.ceFalse) {\n if (!isWithinEmbedWrapper(node)) {\n node.replace(createPreviewNode(editor, node));\n }\n } else {\n if (!isWithinEmbedWrapper(node)) {\n node.replace(createPlaceholderNode(editor, node));\n }\n }\n }\n };\n };\n\n var setup$1 = function setup$1(editor) {\n editor.on('preInit', function () {\n var specialElements = editor.schema.getSpecialElements();\n global$8.each('video audio iframe object'.split(' '), function (name) {\n specialElements[name] = new RegExp(']*>', 'gi');\n });\n var boolAttrs = editor.schema.getBoolAttrs();\n global$8.each('webkitallowfullscreen mozallowfullscreen allowfullscreen'.split(' '), function (name) {\n boolAttrs[name] = {};\n });\n editor.parser.addNodeFilter('iframe,video,audio,object,embed,script', placeHolderConverter(editor));\n editor.serializer.addAttributeFilter('data-mce-object', function (nodes, name) {\n var i = nodes.length;\n var node;\n var realElm;\n var ai;\n var attribs;\n var innerHtml;\n var innerNode;\n var realElmName;\n var className;\n\n while (i--) {\n node = nodes[i];\n\n if (!node.parent) {\n continue;\n }\n\n realElmName = node.attr(name);\n realElm = new global$2(realElmName, 1);\n\n if (realElmName !== 'audio' && realElmName !== 'script') {\n className = node.attr('class');\n\n if (className && className.indexOf('mce-preview-object') !== -1) {\n realElm.attr({\n width: node.firstChild.attr('width'),\n height: node.firstChild.attr('height')\n });\n } else {\n realElm.attr({\n width: node.attr('width'),\n height: node.attr('height')\n });\n }\n }\n\n realElm.attr({\n style: node.attr('style')\n });\n attribs = node.attributes;\n ai = attribs.length;\n\n while (ai--) {\n var attrName = attribs[ai].name;\n\n if (attrName.indexOf('data-mce-p-') === 0) {\n realElm.attr(attrName.substr(11), attribs[ai].value);\n }\n }\n\n if (realElmName === 'script') {\n realElm.attr('type', 'text/javascript');\n }\n\n innerHtml = node.attr('data-mce-html');\n\n if (innerHtml) {\n innerNode = new global$2('#text', 3);\n innerNode.raw = true;\n innerNode.value = sanitize(editor, unescape(innerHtml));\n realElm.append(innerNode);\n }\n\n node.replace(realElm);\n }\n });\n });\n editor.on('SetContent', function () {\n editor.$('span.mce-preview-object').each(function (index, elm) {\n var $elm = editor.$(elm);\n\n if ($elm.find('span.mce-shim').length === 0) {\n $elm.append('');\n }\n });\n });\n };\n\n var setup = function setup(editor) {\n editor.on('ResolveName', function (e) {\n var name;\n\n if (e.target.nodeType === 1 && (name = e.target.getAttribute('data-mce-object'))) {\n e.name = name;\n }\n });\n };\n\n var register = function register(editor) {\n var onAction = function onAction() {\n return editor.execCommand('mceMedia');\n };\n\n editor.ui.registry.addToggleButton('media', {\n tooltip: 'Insert/edit media',\n icon: 'embed',\n onAction: onAction,\n onSetup: function onSetup(buttonApi) {\n var selection = editor.selection;\n buttonApi.setActive(isMediaElement(selection.getNode()));\n return selection.selectorChangedWithUnbind('img[data-mce-object],span[data-mce-object],div[data-ephox-embed-iri]', buttonApi.setActive).unbind;\n }\n });\n editor.ui.registry.addMenuItem('media', {\n icon: 'embed',\n text: 'Media...',\n onAction: onAction\n });\n };\n\n function Plugin() {\n global$9.add('media', function (editor) {\n register$1(editor);\n register(editor);\n setup(editor);\n setup$1(editor);\n setup$2(editor);\n return get(editor);\n });\n }\n\n Plugin();\n})();","// Exports the \"code\" plugin for usage with module loaders\n// Usage:\n// CommonJS:\n// require('tinymce/plugins/code')\n// ES2015:\n// import 'tinymce/plugins/code'\nrequire('./plugin.js');","/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.3 (2022-02-09)\n */\n(function () {\n 'use strict';\n\n var global = tinymce.util.Tools.resolve('tinymce.PluginManager');\n\n var setContent = function setContent(editor, html) {\n editor.focus();\n editor.undoManager.transact(function () {\n editor.setContent(html);\n });\n editor.selection.setCursorLocation();\n editor.nodeChanged();\n };\n\n var getContent = function getContent(editor) {\n return editor.getContent({\n source_view: true\n });\n };\n\n var open = function open(editor) {\n var editorContent = getContent(editor);\n editor.windowManager.open({\n title: 'Source Code',\n size: 'large',\n body: {\n type: 'panel',\n items: [{\n type: 'textarea',\n name: 'code'\n }]\n },\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n initialData: {\n code: editorContent\n },\n onSubmit: function onSubmit(api) {\n setContent(editor, api.getData().code);\n api.close();\n }\n });\n };\n\n var register$1 = function register$1(editor) {\n editor.addCommand('mceCodeEditor', function () {\n open(editor);\n });\n };\n\n var register = function register(editor) {\n var onAction = function onAction() {\n return editor.execCommand('mceCodeEditor');\n };\n\n editor.ui.registry.addButton('code', {\n icon: 'sourcecode',\n tooltip: 'Source code',\n onAction: onAction\n });\n editor.ui.registry.addMenuItem('code', {\n icon: 'sourcecode',\n text: 'Source code',\n onAction: onAction\n });\n };\n\n function Plugin() {\n global.add('code', function (editor) {\n register$1(editor);\n register(editor);\n return {};\n });\n }\n\n Plugin();\n})();","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/**\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\n * Licensed under the LGPL or a commercial license.\n * For LGPL see License.txt in the project root for license information.\n * For commercial licenses see https://www.tiny.cloud/\n *\n * Version: 5.10.3 (2022-02-09)\n */\n(function () {\n 'use strict';\n\n var typeOf = function typeOf(x) {\n var t = _typeof(x);\n\n if (x === null) {\n return 'null';\n } else if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) {\n return 'array';\n } else if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) {\n return 'string';\n } else {\n return t;\n }\n };\n\n var isType$1 = function isType$1(type) {\n return function (value) {\n return typeOf(value) === type;\n };\n };\n\n var isSimpleType = function isSimpleType(type) {\n return function (value) {\n return _typeof(value) === type;\n };\n };\n\n var eq$1 = function eq$1(t) {\n return function (a) {\n return t === a;\n };\n };\n\n var isString = isType$1('string');\n var isObject = isType$1('object');\n var isArray = isType$1('array');\n var isNull = eq$1(null);\n var isBoolean = isSimpleType('boolean');\n var isUndefined = eq$1(undefined);\n\n var isNullable = function isNullable(a) {\n return a === null || a === undefined;\n };\n\n var isNonNullable = function isNonNullable(a) {\n return !isNullable(a);\n };\n\n var isFunction = isSimpleType('function');\n var isNumber = isSimpleType('number');\n\n var isArrayOf = function isArrayOf(value, pred) {\n if (isArray(value)) {\n for (var i = 0, len = value.length; i < len; ++i) {\n if (!pred(value[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n };\n\n var noop = function noop() {};\n\n var noarg = function noarg(f) {\n return function () {\n return f();\n };\n };\n\n var compose = function compose(fa, fb) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return fa(fb.apply(null, args));\n };\n };\n\n var compose1 = function compose1(fbc, fab) {\n return function (a) {\n return fbc(fab(a));\n };\n };\n\n var constant$1 = function constant$1(value) {\n return function () {\n return value;\n };\n };\n\n var identity$1 = function identity$1(x) {\n return x;\n };\n\n var tripleEquals = function tripleEquals(a, b) {\n return a === b;\n };\n\n function curry(fn) {\n var initialArgs = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n initialArgs[_i - 1] = arguments[_i];\n }\n\n return function () {\n var restArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n restArgs[_i] = arguments[_i];\n }\n\n var all = initialArgs.concat(restArgs);\n return fn.apply(null, all);\n };\n }\n\n var not = function not(f) {\n return function (t) {\n return !f(t);\n };\n };\n\n var die = function die(msg) {\n return function () {\n throw new Error(msg);\n };\n };\n\n var never = constant$1(false);\n var always = constant$1(true);\n var global$g = tinymce.util.Tools.resolve('tinymce.ThemeManager');\n\n var _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n };\n\n function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === 'function') for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n }\n\n function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n }\n\n var none = function none() {\n return NONE;\n };\n\n var NONE = function () {\n var call = function call(thunk) {\n return thunk();\n };\n\n var id = identity$1;\n var me = {\n fold: function fold(n, _s) {\n return n();\n },\n isSome: never,\n isNone: always,\n getOr: id,\n getOrThunk: call,\n getOrDie: function getOrDie(msg) {\n throw new Error(msg || 'error: getOrDie called on none.');\n },\n getOrNull: constant$1(null),\n getOrUndefined: constant$1(undefined),\n or: id,\n orThunk: call,\n map: none,\n each: noop,\n bind: none,\n exists: never,\n forall: always,\n filter: function filter() {\n return none();\n },\n toArray: function toArray() {\n return [];\n },\n toString: constant$1('none()')\n };\n return me;\n }();\n\n var some = function some(a) {\n var constant_a = constant$1(a);\n\n var self = function self() {\n return me;\n };\n\n var bind = function bind(f) {\n return f(a);\n };\n\n var me = {\n fold: function fold(n, s) {\n return s(a);\n },\n isSome: always,\n isNone: never,\n getOr: constant_a,\n getOrThunk: constant_a,\n getOrDie: constant_a,\n getOrNull: constant_a,\n getOrUndefined: constant_a,\n or: self,\n orThunk: self,\n map: function map(f) {\n return some(f(a));\n },\n each: function each(f) {\n f(a);\n },\n bind: bind,\n exists: bind,\n forall: bind,\n filter: function filter(f) {\n return f(a) ? me : NONE;\n },\n toArray: function toArray() {\n return [a];\n },\n toString: function toString() {\n return 'some(' + a + ')';\n }\n };\n return me;\n };\n\n var from$1 = function from$1(value) {\n return value === null || value === undefined ? NONE : some(value);\n };\n\n var Optional = {\n some: some,\n none: none,\n from: from$1\n };\n var nativeSlice = Array.prototype.slice;\n var nativeIndexOf = Array.prototype.indexOf;\n var nativePush = Array.prototype.push;\n\n var rawIndexOf = function rawIndexOf(ts, t) {\n return nativeIndexOf.call(ts, t);\n };\n\n var indexOf = function indexOf(xs, x) {\n var r = rawIndexOf(xs, x);\n return r === -1 ? Optional.none() : Optional.some(r);\n };\n\n var contains$2 = function contains$2(xs, x) {\n return rawIndexOf(xs, x) > -1;\n };\n\n var exists = function exists(xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return true;\n }\n }\n\n return false;\n };\n\n var range$2 = function range$2(num, f) {\n var r = [];\n\n for (var i = 0; i < num; i++) {\n r.push(f(i));\n }\n\n return r;\n };\n\n var chunk$1 = function chunk$1(array, size) {\n var r = [];\n\n for (var i = 0; i < array.length; i += size) {\n var s = nativeSlice.call(array, i, i + size);\n r.push(s);\n }\n\n return r;\n };\n\n var map$2 = function map$2(xs, f) {\n var len = xs.length;\n var r = new Array(len);\n\n for (var i = 0; i < len; i++) {\n var x = xs[i];\n r[i] = f(x, i);\n }\n\n return r;\n };\n\n var each$1 = function each$1(xs, f) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n f(x, i);\n }\n };\n\n var eachr = function eachr(xs, f) {\n for (var i = xs.length - 1; i >= 0; i--) {\n var x = xs[i];\n f(x, i);\n }\n };\n\n var partition$3 = function partition$3(xs, pred) {\n var pass = [];\n var fail = [];\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n var arr = pred(x, i) ? pass : fail;\n arr.push(x);\n }\n\n return {\n pass: pass,\n fail: fail\n };\n };\n\n var filter$2 = function filter$2(xs, pred) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n r.push(x);\n }\n }\n\n return r;\n };\n\n var foldr = function foldr(xs, f, acc) {\n eachr(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n\n var foldl = function foldl(xs, f, acc) {\n each$1(xs, function (x, i) {\n acc = f(acc, x, i);\n });\n return acc;\n };\n\n var findUntil = function findUntil(xs, pred, until) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return Optional.some(x);\n } else if (until(x, i)) {\n break;\n }\n }\n\n return Optional.none();\n };\n\n var find$5 = function find$5(xs, pred) {\n return findUntil(xs, pred, never);\n };\n\n var findIndex$1 = function findIndex$1(xs, pred) {\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n\n if (pred(x, i)) {\n return Optional.some(i);\n }\n }\n\n return Optional.none();\n };\n\n var flatten = function flatten(xs) {\n var r = [];\n\n for (var i = 0, len = xs.length; i < len; ++i) {\n if (!isArray(xs[i])) {\n throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);\n }\n\n nativePush.apply(r, xs[i]);\n }\n\n return r;\n };\n\n var bind$3 = function bind$3(xs, f) {\n return flatten(map$2(xs, f));\n };\n\n var forall = function forall(xs, pred) {\n for (var i = 0, len = xs.length; i < len; ++i) {\n var x = xs[i];\n\n if (pred(x, i) !== true) {\n return false;\n }\n }\n\n return true;\n };\n\n var reverse = function reverse(xs) {\n var r = nativeSlice.call(xs, 0);\n r.reverse();\n return r;\n };\n\n var difference = function difference(a1, a2) {\n return filter$2(a1, function (x) {\n return !contains$2(a2, x);\n });\n };\n\n var mapToObject = function mapToObject(xs, f) {\n var r = {};\n\n for (var i = 0, len = xs.length; i < len; i++) {\n var x = xs[i];\n r[String(x)] = f(x, i);\n }\n\n return r;\n };\n\n var pure$2 = function pure$2(x) {\n return [x];\n };\n\n var sort = function sort(xs, comparator) {\n var copy = nativeSlice.call(xs, 0);\n copy.sort(comparator);\n return copy;\n };\n\n var get$f = function get$f(xs, i) {\n return i >= 0 && i < xs.length ? Optional.some(xs[i]) : Optional.none();\n };\n\n var head = function head(xs) {\n return get$f(xs, 0);\n };\n\n var last$2 = function last$2(xs) {\n return get$f(xs, xs.length - 1);\n };\n\n var from = isFunction(Array.from) ? Array.from : function (x) {\n return nativeSlice.call(x);\n };\n\n var findMap = function findMap(arr, f) {\n for (var i = 0; i < arr.length; i++) {\n var r = f(arr[i], i);\n\n if (r.isSome()) {\n return r;\n }\n }\n\n return Optional.none();\n };\n\n var keys = Object.keys;\n var hasOwnProperty = Object.hasOwnProperty;\n\n var each = function each(obj, f) {\n var props = keys(obj);\n\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n f(x, i);\n }\n };\n\n var map$1 = function map$1(obj, f) {\n return tupleMap(obj, function (x, i) {\n return {\n k: i,\n v: f(x, i)\n };\n });\n };\n\n var tupleMap = function tupleMap(obj, f) {\n var r = {};\n each(obj, function (x, i) {\n var tuple = f(x, i);\n r[tuple.k] = tuple.v;\n });\n return r;\n };\n\n var objAcc = function objAcc(r) {\n return function (x, i) {\n r[i] = x;\n };\n };\n\n var internalFilter = function internalFilter(obj, pred, onTrue, onFalse) {\n var r = {};\n each(obj, function (x, i) {\n (pred(x, i) ? onTrue : onFalse)(x, i);\n });\n return r;\n };\n\n var filter$1 = function filter$1(obj, pred) {\n var t = {};\n internalFilter(obj, pred, objAcc(t), noop);\n return t;\n };\n\n var mapToArray = function mapToArray(obj, f) {\n var r = [];\n each(obj, function (value, name) {\n r.push(f(value, name));\n });\n return r;\n };\n\n var find$4 = function find$4(obj, pred) {\n var props = keys(obj);\n\n for (var k = 0, len = props.length; k < len; k++) {\n var i = props[k];\n var x = obj[i];\n\n if (pred(x, i, obj)) {\n return Optional.some(x);\n }\n }\n\n return Optional.none();\n };\n\n var values = function values(obj) {\n return mapToArray(obj, identity$1);\n };\n\n var get$e = function get$e(obj, key) {\n return has$2(obj, key) ? Optional.from(obj[key]) : Optional.none();\n };\n\n var has$2 = function has$2(obj, key) {\n return hasOwnProperty.call(obj, key);\n };\n\n var hasNonNullableKey = function hasNonNullableKey(obj, key) {\n return has$2(obj, key) && obj[key] !== undefined && obj[key] !== null;\n };\n\n var is$1 = function is$1(lhs, rhs, comparator) {\n if (comparator === void 0) {\n comparator = tripleEquals;\n }\n\n return lhs.exists(function (left) {\n return comparator(left, rhs);\n });\n };\n\n var equals = function equals(lhs, rhs, comparator) {\n if (comparator === void 0) {\n comparator = tripleEquals;\n }\n\n return lift2(lhs, rhs, comparator).getOr(lhs.isNone() && rhs.isNone());\n };\n\n var cat = function cat(arr) {\n var r = [];\n\n var push = function push(x) {\n r.push(x);\n };\n\n for (var i = 0; i < arr.length; i++) {\n arr[i].each(push);\n }\n\n return r;\n };\n\n var sequence = function sequence(arr) {\n var r = [];\n\n for (var i = 0; i < arr.length; i++) {\n var x = arr[i];\n\n if (x.isSome()) {\n r.push(x.getOrDie());\n } else {\n return Optional.none();\n }\n }\n\n return Optional.some(r);\n };\n\n var lift2 = function lift2(oa, ob, f) {\n return oa.isSome() && ob.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie())) : Optional.none();\n };\n\n var lift3 = function lift3(oa, ob, oc, f) {\n return oa.isSome() && ob.isSome() && oc.isSome() ? Optional.some(f(oa.getOrDie(), ob.getOrDie(), oc.getOrDie())) : Optional.none();\n };\n\n var mapFrom = function mapFrom(a, f) {\n return a !== undefined && a !== null ? Optional.some(f(a)) : Optional.none();\n };\n\n var someIf = function someIf(b, a) {\n return b ? Optional.some(a) : Optional.none();\n };\n\n var addToEnd = function addToEnd(str, suffix) {\n return str + suffix;\n };\n\n var removeFromStart = function removeFromStart(str, numChars) {\n return str.substring(numChars);\n };\n\n var checkRange = function checkRange(str, substr, start) {\n return substr === '' || str.length >= substr.length && str.substr(start, start + substr.length) === substr;\n };\n\n var removeLeading = function removeLeading(str, prefix) {\n return startsWith(str, prefix) ? removeFromStart(str, prefix.length) : str;\n };\n\n var ensureTrailing = function ensureTrailing(str, suffix) {\n return endsWith(str, suffix) ? str : addToEnd(str, suffix);\n };\n\n var contains$1 = function contains$1(str, substr) {\n return str.indexOf(substr) !== -1;\n };\n\n var startsWith = function startsWith(str, prefix) {\n return checkRange(str, prefix, 0);\n };\n\n var endsWith = function endsWith(str, suffix) {\n return checkRange(str, suffix, str.length - suffix.length);\n };\n\n var blank = function blank(r) {\n return function (s) {\n return s.replace(r, '');\n };\n };\n\n var trim$1 = blank(/^\\s+|\\s+$/g);\n\n var isNotEmpty = function isNotEmpty(s) {\n return s.length > 0;\n };\n\n var isEmpty = function isEmpty(s) {\n return !isNotEmpty(s);\n };\n\n var isSupported$1 = function isSupported$1(dom) {\n return dom.style !== undefined && isFunction(dom.style.getPropertyValue);\n };\n\n var fromHtml$2 = function fromHtml$2(html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n\n if (!div.hasChildNodes() || div.childNodes.length > 1) {\n console.error('HTML does not have a single root node', html);\n throw new Error('HTML must have a single root node');\n }\n\n return fromDom(div.childNodes[0]);\n };\n\n var fromTag = function fromTag(tag, scope) {\n var doc = scope || document;\n var node = doc.createElement(tag);\n return fromDom(node);\n };\n\n var fromText = function fromText(text, scope) {\n var doc = scope || document;\n var node = doc.createTextNode(text);\n return fromDom(node);\n };\n\n var fromDom = function fromDom(node) {\n if (node === null || node === undefined) {\n throw new Error('Node cannot be null or undefined');\n }\n\n return {\n dom: node\n };\n };\n\n var fromPoint = function fromPoint(docElm, x, y) {\n return Optional.from(docElm.dom.elementFromPoint(x, y)).map(fromDom);\n };\n\n var SugarElement = {\n fromHtml: fromHtml$2,\n fromTag: fromTag,\n fromText: fromText,\n fromDom: fromDom,\n fromPoint: fromPoint\n };\n typeof window !== 'undefined' ? window : Function('return this;')();\n var DOCUMENT = 9;\n var DOCUMENT_FRAGMENT = 11;\n var ELEMENT = 1;\n var TEXT = 3;\n\n var name$2 = function name$2(element) {\n var r = element.dom.nodeName;\n return r.toLowerCase();\n };\n\n var type = function type(element) {\n return element.dom.nodeType;\n };\n\n var isType = function isType(t) {\n return function (element) {\n return type(element) === t;\n };\n };\n\n var isElement$2 = isType(ELEMENT);\n var isText$1 = isType(TEXT);\n var isDocument = isType(DOCUMENT);\n var isDocumentFragment = isType(DOCUMENT_FRAGMENT);\n\n var cached = function cached(f) {\n var called = false;\n var r;\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (!called) {\n called = true;\n r = f.apply(null, args);\n }\n\n return r;\n };\n };\n\n var DeviceType = function DeviceType(os, browser, userAgent, mediaMatch) {\n var isiPad = os.isiOS() && /ipad/i.test(userAgent) === true;\n var isiPhone = os.isiOS() && !isiPad;\n var isMobile = os.isiOS() || os.isAndroid();\n var isTouch = isMobile || mediaMatch('(pointer:coarse)');\n var isTablet = isiPad || !isiPhone && isMobile && mediaMatch('(min-device-width:768px)');\n var isPhone = isiPhone || isMobile && !isTablet;\n var iOSwebview = browser.isSafari() && os.isiOS() && /safari/i.test(userAgent) === false;\n var isDesktop = !isPhone && !isTablet && !iOSwebview;\n return {\n isiPad: constant$1(isiPad),\n isiPhone: constant$1(isiPhone),\n isTablet: constant$1(isTablet),\n isPhone: constant$1(isPhone),\n isTouch: constant$1(isTouch),\n isAndroid: os.isAndroid,\n isiOS: os.isiOS,\n isWebView: constant$1(iOSwebview),\n isDesktop: constant$1(isDesktop)\n };\n };\n\n var firstMatch = function firstMatch(regexes, s) {\n for (var i = 0; i < regexes.length; i++) {\n var x = regexes[i];\n\n if (x.test(s)) {\n return x;\n }\n }\n\n return undefined;\n };\n\n var find$3 = function find$3(regexes, agent) {\n var r = firstMatch(regexes, agent);\n\n if (!r) {\n return {\n major: 0,\n minor: 0\n };\n }\n\n var group = function group(i) {\n return Number(agent.replace(r, '$' + i));\n };\n\n return nu$d(group(1), group(2));\n };\n\n var detect$4 = function detect$4(versionRegexes, agent) {\n var cleanedAgent = String(agent).toLowerCase();\n\n if (versionRegexes.length === 0) {\n return unknown$3();\n }\n\n return find$3(versionRegexes, cleanedAgent);\n };\n\n var unknown$3 = function unknown$3() {\n return nu$d(0, 0);\n };\n\n var nu$d = function nu$d(major, minor) {\n return {\n major: major,\n minor: minor\n };\n };\n\n var Version = {\n nu: nu$d,\n detect: detect$4,\n unknown: unknown$3\n };\n\n var detectBrowser$1 = function detectBrowser$1(browsers, userAgentData) {\n return findMap(userAgentData.brands, function (uaBrand) {\n var lcBrand = uaBrand.brand.toLowerCase();\n return find$5(browsers, function (browser) {\n var _a;\n\n return lcBrand === ((_a = browser.brand) === null || _a === void 0 ? void 0 : _a.toLowerCase());\n }).map(function (info) {\n return {\n current: info.name,\n version: Version.nu(parseInt(uaBrand.version, 10), 0)\n };\n });\n });\n };\n\n var detect$3 = function detect$3(candidates, userAgent) {\n var agent = String(userAgent).toLowerCase();\n return find$5(candidates, function (candidate) {\n return candidate.search(agent);\n });\n };\n\n var detectBrowser = function detectBrowser(browsers, userAgent) {\n return detect$3(browsers, userAgent).map(function (browser) {\n var version = Version.detect(browser.versionRegexes, userAgent);\n return {\n current: browser.name,\n version: version\n };\n });\n };\n\n var detectOs = function detectOs(oses, userAgent) {\n return detect$3(oses, userAgent).map(function (os) {\n var version = Version.detect(os.versionRegexes, userAgent);\n return {\n current: os.name,\n version: version\n };\n });\n };\n\n var normalVersionRegex = /.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/;\n\n var checkContains = function checkContains(target) {\n return function (uastring) {\n return contains$1(uastring, target);\n };\n };\n\n var browsers = [{\n name: 'Edge',\n versionRegexes: [/.*?edge\\/ ?([0-9]+)\\.([0-9]+)$/],\n search: function search(uastring) {\n return contains$1(uastring, 'edge/') && contains$1(uastring, 'chrome') && contains$1(uastring, 'safari') && contains$1(uastring, 'applewebkit');\n }\n }, {\n name: 'Chrome',\n brand: 'Chromium',\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/, normalVersionRegex],\n search: function search(uastring) {\n return contains$1(uastring, 'chrome') && !contains$1(uastring, 'chromeframe');\n }\n }, {\n name: 'IE',\n versionRegexes: [/.*?msie\\ ?([0-9]+)\\.([0-9]+).*/, /.*?rv:([0-9]+)\\.([0-9]+).*/],\n search: function search(uastring) {\n return contains$1(uastring, 'msie') || contains$1(uastring, 'trident');\n }\n }, {\n name: 'Opera',\n versionRegexes: [normalVersionRegex, /.*?opera\\/([0-9]+)\\.([0-9]+).*/],\n search: checkContains('opera')\n }, {\n name: 'Firefox',\n versionRegexes: [/.*?firefox\\/\\ ?([0-9]+)\\.([0-9]+).*/],\n search: checkContains('firefox')\n }, {\n name: 'Safari',\n versionRegexes: [normalVersionRegex, /.*?cpu os ([0-9]+)_([0-9]+).*/],\n search: function search(uastring) {\n return (contains$1(uastring, 'safari') || contains$1(uastring, 'mobile/')) && contains$1(uastring, 'applewebkit');\n }\n }];\n var oses = [{\n name: 'Windows',\n search: checkContains('win'),\n versionRegexes: [/.*?windows\\ nt\\ ?([0-9]+)\\.([0-9]+).*/]\n }, {\n name: 'iOS',\n search: function search(uastring) {\n return contains$1(uastring, 'iphone') || contains$1(uastring, 'ipad');\n },\n versionRegexes: [/.*?version\\/\\ ?([0-9]+)\\.([0-9]+).*/, /.*cpu os ([0-9]+)_([0-9]+).*/, /.*cpu iphone os ([0-9]+)_([0-9]+).*/]\n }, {\n name: 'Android',\n search: checkContains('android'),\n versionRegexes: [/.*?android\\ ?([0-9]+)\\.([0-9]+).*/]\n }, {\n name: 'OSX',\n search: checkContains('mac os x'),\n versionRegexes: [/.*?mac\\ os\\ x\\ ?([0-9]+)_([0-9]+).*/]\n }, {\n name: 'Linux',\n search: checkContains('linux'),\n versionRegexes: []\n }, {\n name: 'Solaris',\n search: checkContains('sunos'),\n versionRegexes: []\n }, {\n name: 'FreeBSD',\n search: checkContains('freebsd'),\n versionRegexes: []\n }, {\n name: 'ChromeOS',\n search: checkContains('cros'),\n versionRegexes: [/.*?chrome\\/([0-9]+)\\.([0-9]+).*/]\n }];\n var PlatformInfo = {\n browsers: constant$1(browsers),\n oses: constant$1(oses)\n };\n var edge = 'Edge';\n var chrome = 'Chrome';\n var ie = 'IE';\n var opera = 'Opera';\n var firefox = 'Firefox';\n var safari = 'Safari';\n\n var unknown$2 = function unknown$2() {\n return nu$c({\n current: undefined,\n version: Version.unknown()\n });\n };\n\n var nu$c = function nu$c(info) {\n var current = info.current;\n var version = info.version;\n\n var isBrowser = function isBrowser(name) {\n return function () {\n return current === name;\n };\n };\n\n return {\n current: current,\n version: version,\n isEdge: isBrowser(edge),\n isChrome: isBrowser(chrome),\n isIE: isBrowser(ie),\n isOpera: isBrowser(opera),\n isFirefox: isBrowser(firefox),\n isSafari: isBrowser(safari)\n };\n };\n\n var Browser = {\n unknown: unknown$2,\n nu: nu$c,\n edge: constant$1(edge),\n chrome: constant$1(chrome),\n ie: constant$1(ie),\n opera: constant$1(opera),\n firefox: constant$1(firefox),\n safari: constant$1(safari)\n };\n var windows = 'Windows';\n var ios = 'iOS';\n var android = 'Android';\n var linux = 'Linux';\n var osx = 'OSX';\n var solaris = 'Solaris';\n var freebsd = 'FreeBSD';\n var chromeos = 'ChromeOS';\n\n var unknown$1 = function unknown$1() {\n return nu$b({\n current: undefined,\n version: Version.unknown()\n });\n };\n\n var nu$b = function nu$b(info) {\n var current = info.current;\n var version = info.version;\n\n var isOS = function isOS(name) {\n return function () {\n return current === name;\n };\n };\n\n return {\n current: current,\n version: version,\n isWindows: isOS(windows),\n isiOS: isOS(ios),\n isAndroid: isOS(android),\n isOSX: isOS(osx),\n isLinux: isOS(linux),\n isSolaris: isOS(solaris),\n isFreeBSD: isOS(freebsd),\n isChromeOS: isOS(chromeos)\n };\n };\n\n var OperatingSystem = {\n unknown: unknown$1,\n nu: nu$b,\n windows: constant$1(windows),\n ios: constant$1(ios),\n android: constant$1(android),\n linux: constant$1(linux),\n osx: constant$1(osx),\n solaris: constant$1(solaris),\n freebsd: constant$1(freebsd),\n chromeos: constant$1(chromeos)\n };\n\n var detect$2 = function detect$2(userAgent, userAgentDataOpt, mediaMatch) {\n var browsers = PlatformInfo.browsers();\n var oses = PlatformInfo.oses();\n var browser = userAgentDataOpt.bind(function (userAgentData) {\n return detectBrowser$1(browsers, userAgentData);\n }).orThunk(function () {\n return detectBrowser(browsers, userAgent);\n }).fold(Browser.unknown, Browser.nu);\n var os = detectOs(oses, userAgent).fold(OperatingSystem.unknown, OperatingSystem.nu);\n var deviceType = DeviceType(os, browser, userAgent, mediaMatch);\n return {\n browser: browser,\n os: os,\n deviceType: deviceType\n };\n };\n\n var PlatformDetection = {\n detect: detect$2\n };\n\n var mediaMatch = function mediaMatch(query) {\n return window.matchMedia(query).matches;\n };\n\n var platform = cached(function () {\n return PlatformDetection.detect(navigator.userAgent, Optional.from(navigator.userAgentData), mediaMatch);\n });\n\n var detect$1 = function detect$1() {\n return platform();\n };\n\n var compareDocumentPosition = function compareDocumentPosition(a, b, match) {\n return (a.compareDocumentPosition(b) & match) !== 0;\n };\n\n var documentPositionContainedBy = function documentPositionContainedBy(a, b) {\n return compareDocumentPosition(a, b, Node.DOCUMENT_POSITION_CONTAINED_BY);\n };\n\n var is = function is(element, selector) {\n var dom = element.dom;\n\n if (dom.nodeType !== ELEMENT) {\n return false;\n } else {\n var elem = dom;\n\n if (elem.matches !== undefined) {\n return elem.matches(selector);\n } else if (elem.msMatchesSelector !== undefined) {\n return elem.msMatchesSelector(selector);\n } else if (elem.webkitMatchesSelector !== undefined) {\n return elem.webkitMatchesSelector(selector);\n } else if (elem.mozMatchesSelector !== undefined) {\n return elem.mozMatchesSelector(selector);\n } else {\n throw new Error('Browser lacks native selectors');\n }\n }\n };\n\n var bypassSelector = function bypassSelector(dom) {\n return dom.nodeType !== ELEMENT && dom.nodeType !== DOCUMENT && dom.nodeType !== DOCUMENT_FRAGMENT || dom.childElementCount === 0;\n };\n\n var all$3 = function all$3(selector, scope) {\n var base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? [] : map$2(base.querySelectorAll(selector), SugarElement.fromDom);\n };\n\n var one = function one(selector, scope) {\n var base = scope === undefined ? document : scope.dom;\n return bypassSelector(base) ? Optional.none() : Optional.from(base.querySelector(selector)).map(SugarElement.fromDom);\n };\n\n var eq = function eq(e1, e2) {\n return e1.dom === e2.dom;\n };\n\n var regularContains = function regularContains(e1, e2) {\n var d1 = e1.dom;\n var d2 = e2.dom;\n return d1 === d2 ? false : d1.contains(d2);\n };\n\n var ieContains = function ieContains(e1, e2) {\n return documentPositionContainedBy(e1.dom, e2.dom);\n };\n\n var contains = function contains(e1, e2) {\n return detect$1().browser.isIE() ? ieContains(e1, e2) : regularContains(e1, e2);\n };\n\n var owner$4 = function owner$4(element) {\n return SugarElement.fromDom(element.dom.ownerDocument);\n };\n\n var documentOrOwner = function documentOrOwner(dos) {\n return isDocument(dos) ? dos : owner$4(dos);\n };\n\n var documentElement = function documentElement(element) {\n return SugarElement.fromDom(documentOrOwner(element).dom.documentElement);\n };\n\n var defaultView = function defaultView(element) {\n return SugarElement.fromDom(documentOrOwner(element).dom.defaultView);\n };\n\n var parent = function parent(element) {\n return Optional.from(element.dom.parentNode).map(SugarElement.fromDom);\n };\n\n var parentNode = function parentNode(element) {\n return parent(element);\n };\n\n var offsetParent = function offsetParent(element) {\n return Optional.from(element.dom.offsetParent).map(SugarElement.fromDom);\n };\n\n var nextSibling = function nextSibling(element) {\n return Optional.from(element.dom.nextSibling).map(SugarElement.fromDom);\n };\n\n var children = function children(element) {\n return map$2(element.dom.childNodes, SugarElement.fromDom);\n };\n\n var child$2 = function child$2(element, index) {\n var cs = element.dom.childNodes;\n return Optional.from(cs[index]).map(SugarElement.fromDom);\n };\n\n var firstChild = function firstChild(element) {\n return child$2(element, 0);\n };\n\n var spot = function spot(element, offset) {\n return {\n element: element,\n offset: offset\n };\n };\n\n var leaf = function leaf(element, offset) {\n var cs = children(element);\n return cs.length > 0 && offset < cs.length ? spot(cs[offset], 0) : spot(element, offset);\n };\n\n var isShadowRoot = function isShadowRoot(dos) {\n return isDocumentFragment(dos) && isNonNullable(dos.dom.host);\n };\n\n var supported = isFunction(Element.prototype.attachShadow) && isFunction(Node.prototype.getRootNode);\n var isSupported = constant$1(supported);\n var getRootNode = supported ? function (e) {\n return SugarElement.fromDom(e.dom.getRootNode());\n } : documentOrOwner;\n\n var getContentContainer = function getContentContainer(dos) {\n return isShadowRoot(dos) ? dos : SugarElement.fromDom(documentOrOwner(dos).dom.body);\n };\n\n var isInShadowRoot = function isInShadowRoot(e) {\n return getShadowRoot(e).isSome();\n };\n\n var getShadowRoot = function getShadowRoot(e) {\n var r = getRootNode(e);\n return isShadowRoot(r) ? Optional.some(r) : Optional.none();\n };\n\n var getShadowHost = function getShadowHost(e) {\n return SugarElement.fromDom(e.dom.host);\n };\n\n var getOriginalEventTarget = function getOriginalEventTarget(event) {\n if (isSupported() && isNonNullable(event.target)) {\n var el = SugarElement.fromDom(event.target);\n\n if (isElement$2(el) && isOpenShadowHost(el)) {\n if (event.composed && event.composedPath) {\n var composedPath = event.composedPath();\n\n if (composedPath) {\n return head(composedPath);\n }\n }\n }\n }\n\n return Optional.from(event.target);\n };\n\n var isOpenShadowHost = function isOpenShadowHost(element) {\n return isNonNullable(element.dom.shadowRoot);\n };\n\n var inBody = function inBody(element) {\n var dom = isText$1(element) ? element.dom.parentNode : element.dom;\n\n if (dom === undefined || dom === null || dom.ownerDocument === null) {\n return false;\n }\n\n var doc = dom.ownerDocument;\n return getShadowRoot(SugarElement.fromDom(dom)).fold(function () {\n return doc.body.contains(dom);\n }, compose1(inBody, getShadowHost));\n };\n\n var body = function body() {\n return getBody(SugarElement.fromDom(document));\n };\n\n var getBody = function getBody(doc) {\n var b = doc.dom.body;\n\n if (b === null || b === undefined) {\n throw new Error('Body is not available yet');\n }\n\n return SugarElement.fromDom(b);\n };\n\n var rawSet = function rawSet(dom, key, value) {\n if (isString(value) || isBoolean(value) || isNumber(value)) {\n dom.setAttribute(key, value + '');\n } else {\n console.error('Invalid call to Attribute.set. Key ', key, ':: Value ', value, ':: Element ', dom);\n throw new Error('Attribute value was not simple');\n }\n };\n\n var set$8 = function set$8(element, key, value) {\n rawSet(element.dom, key, value);\n };\n\n var setAll$1 = function setAll$1(element, attrs) {\n var dom = element.dom;\n each(attrs, function (v, k) {\n rawSet(dom, k, v);\n });\n };\n\n var get$d = function get$d(element, key) {\n var v = element.dom.getAttribute(key);\n return v === null ? undefined : v;\n };\n\n var getOpt = function getOpt(element, key) {\n return Optional.from(get$d(element, key));\n };\n\n var has$1 = function has$1(element, key) {\n var dom = element.dom;\n return dom && dom.hasAttribute ? dom.hasAttribute(key) : false;\n };\n\n var remove$7 = function remove$7(element, key) {\n element.dom.removeAttribute(key);\n };\n\n var internalSet = function internalSet(dom, property, value) {\n if (!isString(value)) {\n console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom);\n throw new Error('CSS value must be a string: ' + value);\n }\n\n if (isSupported$1(dom)) {\n dom.style.setProperty(property, value);\n }\n };\n\n var internalRemove = function internalRemove(dom, property) {\n if (isSupported$1(dom)) {\n dom.style.removeProperty(property);\n }\n };\n\n var set$7 = function set$7(element, property, value) {\n var dom = element.dom;\n internalSet(dom, property, value);\n };\n\n var setAll = function setAll(element, css) {\n var dom = element.dom;\n each(css, function (v, k) {\n internalSet(dom, k, v);\n });\n };\n\n var setOptions = function setOptions(element, css) {\n var dom = element.dom;\n each(css, function (v, k) {\n v.fold(function () {\n internalRemove(dom, k);\n }, function (value) {\n internalSet(dom, k, value);\n });\n });\n };\n\n var get$c = function get$c(element, property) {\n var dom = element.dom;\n var styles = window.getComputedStyle(dom);\n var r = styles.getPropertyValue(property);\n return r === '' && !inBody(element) ? getUnsafeProperty(dom, property) : r;\n };\n\n var getUnsafeProperty = function getUnsafeProperty(dom, property) {\n return isSupported$1(dom) ? dom.style.getPropertyValue(property) : '';\n };\n\n var getRaw = function getRaw(element, property) {\n var dom = element.dom;\n var raw = getUnsafeProperty(dom, property);\n return Optional.from(raw).filter(function (r) {\n return r.length > 0;\n });\n };\n\n var getAllRaw = function getAllRaw(element) {\n var css = {};\n var dom = element.dom;\n\n if (isSupported$1(dom)) {\n for (var i = 0; i < dom.style.length; i++) {\n var ruleName = dom.style.item(i);\n css[ruleName] = dom.style[ruleName];\n }\n }\n\n return css;\n };\n\n var isValidValue = function isValidValue(tag, property, value) {\n var element = SugarElement.fromTag(tag);\n set$7(element, property, value);\n var style = getRaw(element, property);\n return style.isSome();\n };\n\n var remove$6 = function remove$6(element, property) {\n var dom = element.dom;\n internalRemove(dom, property);\n\n if (is$1(getOpt(element, 'style').map(trim$1), '')) {\n remove$7(element, 'style');\n }\n };\n\n var reflow = function reflow(e) {\n return e.dom.offsetWidth;\n };\n\n var Dimension = function Dimension(name, getOffset) {\n var set = function set(element, h) {\n if (!isNumber(h) && !h.match(/^[0-9]+$/)) {\n throw new Error(name + '.set accepts only positive integer values. Value was ' + h);\n }\n\n var dom = element.dom;\n\n if (isSupported$1(dom)) {\n dom.style[name] = h + 'px';\n }\n };\n\n var get = function get(element) {\n var r = getOffset(element);\n\n if (r <= 0 || r === null) {\n var css = get$c(element, name);\n return parseFloat(css) || 0;\n }\n\n return r;\n };\n\n var getOuter = get;\n\n var aggregate = function aggregate(element, properties) {\n return foldl(properties, function (acc, property) {\n var val = get$c(element, property);\n var value = val === undefined ? 0 : parseInt(val, 10);\n return isNaN(value) ? acc : acc + value;\n }, 0);\n };\n\n var max = function max(element, value, properties) {\n var cumulativeInclusions = aggregate(element, properties);\n var absoluteMax = value > cumulativeInclusions ? value - cumulativeInclusions : 0;\n return absoluteMax;\n };\n\n return {\n set: set,\n get: get,\n getOuter: getOuter,\n aggregate: aggregate,\n max: max\n };\n };\n\n var api$3 = Dimension('height', function (element) {\n var dom = element.dom;\n return inBody(element) ? dom.getBoundingClientRect().height : dom.offsetHeight;\n });\n\n var get$b = function get$b(element) {\n return api$3.get(element);\n };\n\n var getOuter$2 = function getOuter$2(element) {\n return api$3.getOuter(element);\n };\n\n var setMax$1 = function setMax$1(element, value) {\n var inclusions = ['margin-top', 'border-top-width', 'padding-top', 'padding-bottom', 'border-bottom-width', 'margin-bottom'];\n var absMax = api$3.max(element, value, inclusions);\n set$7(element, 'max-height', absMax + 'px');\n };\n\n var r$1 = function r$1(left, top) {\n var translate = function translate(x, y) {\n return r$1(left + x, top + y);\n };\n\n return {\n left: left,\n top: top,\n translate: translate\n };\n };\n\n var SugarPosition = r$1;\n\n var boxPosition = function boxPosition(dom) {\n var box = dom.getBoundingClientRect();\n return SugarPosition(box.left, box.top);\n };\n\n var firstDefinedOrZero = function firstDefinedOrZero(a, b) {\n if (a !== undefined) {\n return a;\n } else {\n return b !== undefined ? b : 0;\n }\n };\n\n var absolute$3 = function absolute$3(element) {\n var doc = element.dom.ownerDocument;\n var body = doc.body;\n var win = doc.defaultView;\n var html = doc.documentElement;\n\n if (body === element.dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n\n var scrollTop = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageYOffset, html.scrollTop);\n var scrollLeft = firstDefinedOrZero(win === null || win === void 0 ? void 0 : win.pageXOffset, html.scrollLeft);\n var clientTop = firstDefinedOrZero(html.clientTop, body.clientTop);\n var clientLeft = firstDefinedOrZero(html.clientLeft, body.clientLeft);\n return viewport$1(element).translate(scrollLeft - clientLeft, scrollTop - clientTop);\n };\n\n var viewport$1 = function viewport$1(element) {\n var dom = element.dom;\n var doc = dom.ownerDocument;\n var body = doc.body;\n\n if (body === dom) {\n return SugarPosition(body.offsetLeft, body.offsetTop);\n }\n\n if (!inBody(element)) {\n return SugarPosition(0, 0);\n }\n\n return boxPosition(dom);\n };\n\n var api$2 = Dimension('width', function (element) {\n return element.dom.offsetWidth;\n });\n\n var set$6 = function set$6(element, h) {\n return api$2.set(element, h);\n };\n\n var get$a = function get$a(element) {\n return api$2.get(element);\n };\n\n var getOuter$1 = function getOuter$1(element) {\n return api$2.getOuter(element);\n };\n\n var setMax = function setMax(element, value) {\n var inclusions = ['margin-left', 'border-left-width', 'padding-left', 'padding-right', 'border-right-width', 'margin-right'];\n var absMax = api$2.max(element, value, inclusions);\n set$7(element, 'max-width', absMax + 'px');\n };\n\n var mkEvent = function mkEvent(target, x, y, stop, prevent, kill, raw) {\n return {\n target: target,\n x: x,\n y: y,\n stop: stop,\n prevent: prevent,\n kill: kill,\n raw: raw\n };\n };\n\n var fromRawEvent$1 = function fromRawEvent$1(rawEvent) {\n var target = SugarElement.fromDom(getOriginalEventTarget(rawEvent).getOr(rawEvent.target));\n\n var stop = function stop() {\n return rawEvent.stopPropagation();\n };\n\n var prevent = function prevent() {\n return rawEvent.preventDefault();\n };\n\n var kill = compose(prevent, stop);\n return mkEvent(target, rawEvent.clientX, rawEvent.clientY, stop, prevent, kill, rawEvent);\n };\n\n var handle = function handle(filter, handler) {\n return function (rawEvent) {\n if (filter(rawEvent)) {\n handler(fromRawEvent$1(rawEvent));\n }\n };\n };\n\n var binder = function binder(element, event, filter, handler, useCapture) {\n var wrapped = handle(filter, handler);\n element.dom.addEventListener(event, wrapped, useCapture);\n return {\n unbind: curry(unbind, element, event, wrapped, useCapture)\n };\n };\n\n var bind$2 = function bind$2(element, event, filter, handler) {\n return binder(element, event, filter, handler, false);\n };\n\n var capture$1 = function capture$1(element, event, filter, handler) {\n return binder(element, event, filter, handler, true);\n };\n\n var unbind = function unbind(element, event, handler, useCapture) {\n element.dom.removeEventListener(event, handler, useCapture);\n };\n\n var before$2 = function before$2(marker, element) {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n v.dom.insertBefore(element.dom, marker.dom);\n });\n };\n\n var after$2 = function after$2(marker, element) {\n var sibling = nextSibling(marker);\n sibling.fold(function () {\n var parent$1 = parent(marker);\n parent$1.each(function (v) {\n append$2(v, element);\n });\n }, function (v) {\n before$2(v, element);\n });\n };\n\n var prepend$1 = function prepend$1(parent, element) {\n var firstChild$1 = firstChild(parent);\n firstChild$1.fold(function () {\n append$2(parent, element);\n }, function (v) {\n parent.dom.insertBefore(element.dom, v.dom);\n });\n };\n\n var append$2 = function append$2(parent, element) {\n parent.dom.appendChild(element.dom);\n };\n\n var appendAt = function appendAt(parent, element, index) {\n child$2(parent, index).fold(function () {\n append$2(parent, element);\n }, function (v) {\n before$2(v, element);\n });\n };\n\n var before$1 = function before$1(marker, elements) {\n each$1(elements, function (x) {\n before$2(marker, x);\n });\n };\n\n var append$1 = function append$1(parent, elements) {\n each$1(elements, function (x) {\n append$2(parent, x);\n });\n };\n\n var empty = function empty(element) {\n element.dom.textContent = '';\n each$1(children(element), function (rogue) {\n remove$5(rogue);\n });\n };\n\n var remove$5 = function remove$5(element) {\n var dom = element.dom;\n\n if (dom.parentNode !== null) {\n dom.parentNode.removeChild(dom);\n }\n };\n\n var unwrap = function unwrap(wrapper) {\n var children$1 = children(wrapper);\n\n if (children$1.length > 0) {\n before$1(wrapper, children$1);\n }\n\n remove$5(wrapper);\n };\n\n var get$9 = function get$9(_DOC) {\n var doc = _DOC !== undefined ? _DOC.dom : document;\n var x = doc.body.scrollLeft || doc.documentElement.scrollLeft;\n var y = doc.body.scrollTop || doc.documentElement.scrollTop;\n return SugarPosition(x, y);\n };\n\n var to = function to(x, y, _DOC) {\n var doc = _DOC !== undefined ? _DOC.dom : document;\n var win = doc.defaultView;\n\n if (win) {\n win.scrollTo(x, y);\n }\n };\n\n var get$8 = function get$8(_win) {\n var win = _win === undefined ? window : _win;\n\n if (detect$1().browser.isFirefox()) {\n return Optional.none();\n } else {\n return Optional.from(win['visualViewport']);\n }\n };\n\n var bounds$1 = function bounds$1(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n right: x + width,\n bottom: y + height\n };\n };\n\n var getBounds$3 = function getBounds$3(_win) {\n var win = _win === undefined ? window : _win;\n var doc = win.document;\n var scroll = get$9(SugarElement.fromDom(doc));\n return get$8(win).fold(function () {\n var html = win.document.documentElement;\n var width = html.clientWidth;\n var height = html.clientHeight;\n return bounds$1(scroll.left, scroll.top, width, height);\n }, function (visualViewport) {\n return bounds$1(Math.max(visualViewport.pageLeft, scroll.left), Math.max(visualViewport.pageTop, scroll.top), visualViewport.width, visualViewport.height);\n });\n };\n\n var walkUp = function walkUp(navigation, doc) {\n var frame = navigation.view(doc);\n return frame.fold(constant$1([]), function (f) {\n var parent = navigation.owner(f);\n var rest = walkUp(navigation, parent);\n return [f].concat(rest);\n });\n };\n\n var pathTo = function pathTo(element, navigation) {\n var d = navigation.owner(element);\n var paths = walkUp(navigation, d);\n return Optional.some(paths);\n };\n\n var view = function view(doc) {\n var _a;\n\n var element = doc.dom === document ? Optional.none() : Optional.from((_a = doc.dom.defaultView) === null || _a === void 0 ? void 0 : _a.frameElement);\n return element.map(SugarElement.fromDom);\n };\n\n var owner$3 = function owner$3(element) {\n return owner$4(element);\n };\n\n var Navigation = /*#__PURE__*/Object.freeze({\n __proto__: null,\n view: view,\n owner: owner$3\n });\n\n var find$2 = function find$2(element) {\n var doc = SugarElement.fromDom(document);\n var scroll = get$9(doc);\n var path = pathTo(element, Navigation);\n return path.fold(curry(absolute$3, element), function (frames) {\n var offset = viewport$1(element);\n var r = foldr(frames, function (b, a) {\n var loc = viewport$1(a);\n return {\n left: b.left + loc.left,\n top: b.top + loc.top\n };\n }, {\n left: 0,\n top: 0\n });\n return SugarPosition(r.left + offset.left + scroll.left, r.top + offset.top + scroll.top);\n });\n };\n\n var pointed = function pointed(point, width, height) {\n return {\n point: point,\n width: width,\n height: height\n };\n };\n\n var rect = function rect(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n };\n\n var bounds = function bounds(x, y, width, height) {\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n right: x + width,\n bottom: y + height\n };\n };\n\n var box$1 = function box$1(element) {\n var xy = absolute$3(element);\n var w = getOuter$1(element);\n var h = getOuter$2(element);\n return bounds(xy.left, xy.top, w, h);\n };\n\n var absolute$2 = function absolute$2(element) {\n var position = find$2(element);\n var width = getOuter$1(element);\n var height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n\n var win = function win() {\n return getBounds$3(window);\n };\n\n var value$3 = function value$3(o) {\n var or = function or(_opt) {\n return value$3(o);\n };\n\n var orThunk = function orThunk(_f) {\n return value$3(o);\n };\n\n var map = function map(f) {\n return value$3(f(o));\n };\n\n var mapError = function mapError(_f) {\n return value$3(o);\n };\n\n var each = function each(f) {\n f(o);\n };\n\n var bind = function bind(f) {\n return f(o);\n };\n\n var fold = function fold(_, onValue) {\n return onValue(o);\n };\n\n var exists = function exists(f) {\n return f(o);\n };\n\n var forall = function forall(f) {\n return f(o);\n };\n\n var toOptional = function toOptional() {\n return Optional.some(o);\n };\n\n return {\n isValue: always,\n isError: never,\n getOr: constant$1(o),\n getOrThunk: constant$1(o),\n getOrDie: constant$1(o),\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: each,\n bind: bind,\n exists: exists,\n forall: forall,\n toOptional: toOptional\n };\n };\n\n var error$1 = function error$1(message) {\n var getOrThunk = function getOrThunk(f) {\n return f();\n };\n\n var getOrDie = function getOrDie() {\n return die(String(message))();\n };\n\n var or = identity$1;\n\n var orThunk = function orThunk(f) {\n return f();\n };\n\n var map = function map(_f) {\n return error$1(message);\n };\n\n var mapError = function mapError(f) {\n return error$1(f(message));\n };\n\n var bind = function bind(_f) {\n return error$1(message);\n };\n\n var fold = function fold(onError, _) {\n return onError(message);\n };\n\n return {\n isValue: never,\n isError: always,\n getOr: identity$1,\n getOrThunk: getOrThunk,\n getOrDie: getOrDie,\n or: or,\n orThunk: orThunk,\n fold: fold,\n map: map,\n mapError: mapError,\n each: noop,\n bind: bind,\n exists: never,\n forall: always,\n toOptional: Optional.none\n };\n };\n\n var fromOption = function fromOption(opt, err) {\n return opt.fold(function () {\n return error$1(err);\n }, value$3);\n };\n\n var Result = {\n value: value$3,\n error: error$1,\n fromOption: fromOption\n };\n var SimpleResultType;\n\n (function (SimpleResultType) {\n SimpleResultType[SimpleResultType['Error'] = 0] = 'Error';\n SimpleResultType[SimpleResultType['Value'] = 1] = 'Value';\n })(SimpleResultType || (SimpleResultType = {}));\n\n var fold$1 = function fold$1(res, onError, onValue) {\n return res.stype === SimpleResultType.Error ? onError(res.serror) : onValue(res.svalue);\n };\n\n var partition$2 = function partition$2(results) {\n var values = [];\n var errors = [];\n each$1(results, function (obj) {\n fold$1(obj, function (err) {\n return errors.push(err);\n }, function (val) {\n return values.push(val);\n });\n });\n return {\n values: values,\n errors: errors\n };\n };\n\n var mapError = function mapError(res, f) {\n if (res.stype === SimpleResultType.Error) {\n return {\n stype: SimpleResultType.Error,\n serror: f(res.serror)\n };\n } else {\n return res;\n }\n };\n\n var map = function map(res, f) {\n if (res.stype === SimpleResultType.Value) {\n return {\n stype: SimpleResultType.Value,\n svalue: f(res.svalue)\n };\n } else {\n return res;\n }\n };\n\n var bind$1 = function bind$1(res, f) {\n if (res.stype === SimpleResultType.Value) {\n return f(res.svalue);\n } else {\n return res;\n }\n };\n\n var bindError = function bindError(res, f) {\n if (res.stype === SimpleResultType.Error) {\n return f(res.serror);\n } else {\n return res;\n }\n };\n\n var svalue = function svalue(v) {\n return {\n stype: SimpleResultType.Value,\n svalue: v\n };\n };\n\n var serror = function serror(e) {\n return {\n stype: SimpleResultType.Error,\n serror: e\n };\n };\n\n var toResult$1 = function toResult$1(res) {\n return fold$1(res, Result.error, Result.value);\n };\n\n var fromResult$1 = function fromResult$1(res) {\n return res.fold(serror, svalue);\n };\n\n var SimpleResult = {\n fromResult: fromResult$1,\n toResult: toResult$1,\n svalue: svalue,\n partition: partition$2,\n serror: serror,\n bind: bind$1,\n bindError: bindError,\n map: map,\n mapError: mapError,\n fold: fold$1\n };\n\n var field$2 = function field$2(key, newKey, presence, prop) {\n return {\n tag: 'field',\n key: key,\n newKey: newKey,\n presence: presence,\n prop: prop\n };\n };\n\n var customField$1 = function customField$1(newKey, instantiator) {\n return {\n tag: 'custom',\n newKey: newKey,\n instantiator: instantiator\n };\n };\n\n var fold = function fold(value, ifField, ifCustom) {\n switch (value.tag) {\n case 'field':\n return ifField(value.key, value.newKey, value.presence, value.prop);\n\n case 'custom':\n return ifCustom(value.newKey, value.instantiator);\n }\n };\n\n var shallow$1 = function shallow$1(old, nu) {\n return nu;\n };\n\n var deep = function deep(old, nu) {\n var bothObjects = isObject(old) && isObject(nu);\n return bothObjects ? deepMerge(old, nu) : nu;\n };\n\n var baseMerge = function baseMerge(merger) {\n return function () {\n var objects = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n objects[_i] = arguments[_i];\n }\n\n if (objects.length === 0) {\n throw new Error('Can\\'t merge zero objects');\n }\n\n var ret = {};\n\n for (var j = 0; j < objects.length; j++) {\n var curObject = objects[j];\n\n for (var key in curObject) {\n if (has$2(curObject, key)) {\n ret[key] = merger(ret[key], curObject[key]);\n }\n }\n }\n\n return ret;\n };\n };\n\n var deepMerge = baseMerge(deep);\n var merge$1 = baseMerge(shallow$1);\n\n var required$2 = function required$2() {\n return {\n tag: 'required',\n process: {}\n };\n };\n\n var defaultedThunk = function defaultedThunk(fallbackThunk) {\n return {\n tag: 'defaultedThunk',\n process: fallbackThunk\n };\n };\n\n var defaulted$1 = function defaulted$1(fallback) {\n return defaultedThunk(constant$1(fallback));\n };\n\n var asOption = function asOption() {\n return {\n tag: 'option',\n process: {}\n };\n };\n\n var mergeWithThunk = function mergeWithThunk(baseThunk) {\n return {\n tag: 'mergeWithThunk',\n process: baseThunk\n };\n };\n\n var mergeWith = function mergeWith(base) {\n return mergeWithThunk(constant$1(base));\n };\n\n var mergeValues$1 = function mergeValues$1(values, base) {\n return values.length > 0 ? SimpleResult.svalue(deepMerge(base, merge$1.apply(undefined, values))) : SimpleResult.svalue(base);\n };\n\n var mergeErrors$1 = function mergeErrors$1(errors) {\n return compose(SimpleResult.serror, flatten)(errors);\n };\n\n var consolidateObj = function consolidateObj(objects, base) {\n var partition = SimpleResult.partition(objects);\n return partition.errors.length > 0 ? mergeErrors$1(partition.errors) : mergeValues$1(partition.values, base);\n };\n\n var consolidateArr = function consolidateArr(objects) {\n var partitions = SimpleResult.partition(objects);\n return partitions.errors.length > 0 ? mergeErrors$1(partitions.errors) : SimpleResult.svalue(partitions.values);\n };\n\n var ResultCombine = {\n consolidateObj: consolidateObj,\n consolidateArr: consolidateArr\n };\n\n var formatObj = function formatObj(input) {\n return isObject(input) && keys(input).length > 100 ? ' removed due to size' : JSON.stringify(input, null, 2);\n };\n\n var formatErrors = function formatErrors(errors) {\n var es = errors.length > 10 ? errors.slice(0, 10).concat([{\n path: [],\n getErrorInfo: constant$1('... (only showing first ten failures)')\n }]) : errors;\n return map$2(es, function (e) {\n return 'Failed path: (' + e.path.join(' > ') + ')\\n' + e.getErrorInfo();\n });\n };\n\n var nu$a = function nu$a(path, getErrorInfo) {\n return SimpleResult.serror([{\n path: path,\n getErrorInfo: getErrorInfo\n }]);\n };\n\n var missingRequired = function missingRequired(path, key, obj) {\n return nu$a(path, function () {\n return 'Could not find valid *required* value for \"' + key + '\" in ' + formatObj(obj);\n });\n };\n\n var missingKey = function missingKey(path, key) {\n return nu$a(path, function () {\n return 'Choice schema did not contain choice key: \"' + key + '\"';\n });\n };\n\n var missingBranch = function missingBranch(path, branches, branch) {\n return nu$a(path, function () {\n return 'The chosen schema: \"' + branch + '\" did not exist in branches: ' + formatObj(branches);\n });\n };\n\n var unsupportedFields = function unsupportedFields(path, unsupported) {\n return nu$a(path, function () {\n return 'There are unsupported fields: [' + unsupported.join(', ') + '] specified';\n });\n };\n\n var custom = function custom(path, err) {\n return nu$a(path, constant$1(err));\n };\n\n var value$2 = function value$2(validator) {\n var extract = function extract(path, val) {\n return SimpleResult.bindError(validator(val), function (err) {\n return custom(path, err);\n });\n };\n\n var toString = constant$1('val');\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var anyValue$1 = value$2(SimpleResult.svalue);\n\n var requiredAccess = function requiredAccess(path, obj, key, bundle) {\n return get$e(obj, key).fold(function () {\n return missingRequired(path, key, obj);\n }, bundle);\n };\n\n var fallbackAccess = function fallbackAccess(obj, key, fallback, bundle) {\n var v = get$e(obj, key).getOrThunk(function () {\n return fallback(obj);\n });\n return bundle(v);\n };\n\n var optionAccess = function optionAccess(obj, key, bundle) {\n return bundle(get$e(obj, key));\n };\n\n var optionDefaultedAccess = function optionDefaultedAccess(obj, key, fallback, bundle) {\n var opt = get$e(obj, key).map(function (val) {\n return val === true ? fallback(obj) : val;\n });\n return bundle(opt);\n };\n\n var extractField = function extractField(field, path, obj, key, prop) {\n var bundle = function bundle(av) {\n return prop.extract(path.concat([key]), av);\n };\n\n var bundleAsOption = function bundleAsOption(optValue) {\n return optValue.fold(function () {\n return SimpleResult.svalue(Optional.none());\n }, function (ov) {\n var result = prop.extract(path.concat([key]), ov);\n return SimpleResult.map(result, Optional.some);\n });\n };\n\n switch (field.tag) {\n case 'required':\n return requiredAccess(path, obj, key, bundle);\n\n case 'defaultedThunk':\n return fallbackAccess(obj, key, field.process, bundle);\n\n case 'option':\n return optionAccess(obj, key, bundleAsOption);\n\n case 'defaultedOptionThunk':\n return optionDefaultedAccess(obj, key, field.process, bundleAsOption);\n\n case 'mergeWithThunk':\n {\n return fallbackAccess(obj, key, constant$1({}), function (v) {\n var result = deepMerge(field.process(obj), v);\n return bundle(result);\n });\n }\n }\n };\n\n var extractFields = function extractFields(path, obj, fields) {\n var success = {};\n var errors = [];\n\n for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {\n var field = fields_1[_i];\n fold(field, function (key, newKey, presence, prop) {\n var result = extractField(presence, path, obj, key, prop);\n SimpleResult.fold(result, function (err) {\n errors.push.apply(errors, err);\n }, function (res) {\n success[newKey] = res;\n });\n }, function (newKey, instantiator) {\n success[newKey] = instantiator(obj);\n });\n }\n\n return errors.length > 0 ? SimpleResult.serror(errors) : SimpleResult.svalue(success);\n };\n\n var valueThunk = function valueThunk(getDelegate) {\n var extract = function extract(path, val) {\n return getDelegate().extract(path, val);\n };\n\n var toString = function toString() {\n return getDelegate().toString();\n };\n\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var getSetKeys = function getSetKeys(obj) {\n return keys(filter$1(obj, isNonNullable));\n };\n\n var objOfOnly = function objOfOnly(fields) {\n var delegate = objOf(fields);\n var fieldNames = foldr(fields, function (acc, value) {\n return fold(value, function (key) {\n var _a;\n\n return deepMerge(acc, (_a = {}, _a[key] = true, _a));\n }, constant$1(acc));\n }, {});\n\n var extract = function extract(path, o) {\n var keys = isBoolean(o) ? [] : getSetKeys(o);\n var extra = filter$2(keys, function (k) {\n return !hasNonNullableKey(fieldNames, k);\n });\n return extra.length === 0 ? delegate.extract(path, o) : unsupportedFields(path, extra);\n };\n\n return {\n extract: extract,\n toString: delegate.toString\n };\n };\n\n var objOf = function objOf(values) {\n var extract = function extract(path, o) {\n return extractFields(path, o, values);\n };\n\n var toString = function toString() {\n var fieldStrings = map$2(values, function (value) {\n return fold(value, function (key, _okey, _presence, prop) {\n return key + ' -> ' + prop.toString();\n }, function (newKey, _instantiator) {\n return 'state(' + newKey + ')';\n });\n });\n return 'obj{\\n' + fieldStrings.join('\\n') + '}';\n };\n\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var arrOf = function arrOf(prop) {\n var extract = function extract(path, array) {\n var results = map$2(array, function (a, i) {\n return prop.extract(path.concat(['[' + i + ']']), a);\n });\n return ResultCombine.consolidateArr(results);\n };\n\n var toString = function toString() {\n return 'array(' + prop.toString() + ')';\n };\n\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var oneOf = function oneOf(props) {\n var extract = function extract(path, val) {\n var errors = [];\n\n for (var _i = 0, props_1 = props; _i < props_1.length; _i++) {\n var prop = props_1[_i];\n var res = prop.extract(path, val);\n\n if (res.stype === SimpleResultType.Value) {\n return res;\n }\n\n errors.push(res);\n }\n\n return ResultCombine.consolidateArr(errors);\n };\n\n var toString = function toString() {\n return 'oneOf(' + map$2(props, function (prop) {\n return prop.toString();\n }).join(', ') + ')';\n };\n\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var setOf$1 = function setOf$1(validator, prop) {\n var validateKeys = function validateKeys(path, keys) {\n return arrOf(value$2(validator)).extract(path, keys);\n };\n\n var extract = function extract(path, o) {\n var keys$1 = keys(o);\n var validatedKeys = validateKeys(path, keys$1);\n return SimpleResult.bind(validatedKeys, function (validKeys) {\n var schema = map$2(validKeys, function (vk) {\n return field$2(vk, vk, required$2(), prop);\n });\n return objOf(schema).extract(path, o);\n });\n };\n\n var toString = function toString() {\n return 'setOf(' + prop.toString() + ')';\n };\n\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var thunk = function thunk(_desc, processor) {\n var getP = cached(processor);\n\n var extract = function extract(path, val) {\n return getP().extract(path, val);\n };\n\n var toString = function toString() {\n return getP().toString();\n };\n\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var arrOfObj = compose(arrOf, objOf);\n var anyValue = constant$1(anyValue$1);\n\n var typedValue = function typedValue(validator, expectedType) {\n return value$2(function (a) {\n var actualType = _typeof(a);\n\n return validator(a) ? SimpleResult.svalue(a) : SimpleResult.serror('Expected type: ' + expectedType + ' but got: ' + actualType);\n });\n };\n\n var number = typedValue(isNumber, 'number');\n var string = typedValue(isString, 'string');\n var boolean = typedValue(isBoolean, 'boolean');\n var functionProcessor = typedValue(isFunction, 'function');\n\n var isPostMessageable = function isPostMessageable(val) {\n if (Object(val) !== val) {\n return true;\n }\n\n switch ({}.toString.call(val).slice(8, -1)) {\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'RegExp':\n case 'Blob':\n case 'FileList':\n case 'ImageData':\n case 'ImageBitmap':\n case 'ArrayBuffer':\n return true;\n\n case 'Array':\n case 'Object':\n return Object.keys(val).every(function (prop) {\n return isPostMessageable(val[prop]);\n });\n\n default:\n return false;\n }\n };\n\n var postMessageable = value$2(function (a) {\n if (isPostMessageable(a)) {\n return SimpleResult.svalue(a);\n } else {\n return SimpleResult.serror('Expected value to be acceptable for sending via postMessage');\n }\n });\n\n var chooseFrom = function chooseFrom(path, input, branches, ch) {\n var fields = get$e(branches, ch);\n return fields.fold(function () {\n return missingBranch(path, branches, ch);\n }, function (vp) {\n return vp.extract(path.concat(['branch: ' + ch]), input);\n });\n };\n\n var choose$2 = function choose$2(key, branches) {\n var extract = function extract(path, input) {\n var choice = get$e(input, key);\n return choice.fold(function () {\n return missingKey(path, key);\n }, function (chosen) {\n return chooseFrom(path, input, branches, chosen);\n });\n };\n\n var toString = function toString() {\n return 'chooseOn(' + key + '). Possible values: ' + keys(branches);\n };\n\n return {\n extract: extract,\n toString: toString\n };\n };\n\n var arrOfVal = function arrOfVal() {\n return arrOf(anyValue$1);\n };\n\n var valueOf = function valueOf(validator) {\n return value$2(function (v) {\n return validator(v).fold(SimpleResult.serror, SimpleResult.svalue);\n });\n };\n\n var setOf = function setOf(validator, prop) {\n return setOf$1(function (v) {\n return SimpleResult.fromResult(validator(v));\n }, prop);\n };\n\n var extractValue = function extractValue(label, prop, obj) {\n var res = prop.extract([label], obj);\n return SimpleResult.mapError(res, function (errs) {\n return {\n input: obj,\n errors: errs\n };\n });\n };\n\n var asRaw = function asRaw(label, prop, obj) {\n return SimpleResult.toResult(extractValue(label, prop, obj));\n };\n\n var getOrDie = function getOrDie(extraction) {\n return extraction.fold(function (errInfo) {\n throw new Error(formatError(errInfo));\n }, identity$1);\n };\n\n var asRawOrDie$1 = function asRawOrDie$1(label, prop, obj) {\n return getOrDie(asRaw(label, prop, obj));\n };\n\n var formatError = function formatError(errInfo) {\n return 'Errors: \\n' + formatErrors(errInfo.errors).join('\\n') + '\\n\\nInput object: ' + formatObj(errInfo.input);\n };\n\n var choose$1 = function choose$1(key, branches) {\n return choose$2(key, map$1(branches, objOf));\n };\n\n var thunkOf = function thunkOf(desc, schema) {\n return thunk(desc, schema);\n };\n\n var field$1 = field$2;\n var customField = customField$1;\n\n var validateEnum = function validateEnum(values) {\n return valueOf(function (value) {\n return contains$2(values, value) ? Result.value(value) : Result.error('Unsupported value: \"' + value + '\", choose one of \"' + values.join(', ') + '\".');\n });\n };\n\n var required$1 = function required$1(key) {\n return field$1(key, key, required$2(), anyValue());\n };\n\n var requiredOf = function requiredOf(key, schema) {\n return field$1(key, key, required$2(), schema);\n };\n\n var requiredNumber = function requiredNumber(key) {\n return requiredOf(key, number);\n };\n\n var requiredString = function requiredString(key) {\n return requiredOf(key, string);\n };\n\n var requiredStringEnum = function requiredStringEnum(key, values) {\n return field$1(key, key, required$2(), validateEnum(values));\n };\n\n var requiredBoolean = function requiredBoolean(key) {\n return requiredOf(key, boolean);\n };\n\n var requiredFunction = function requiredFunction(key) {\n return requiredOf(key, functionProcessor);\n };\n\n var forbid = function forbid(key, message) {\n return field$1(key, key, asOption(), value$2(function (_v) {\n return SimpleResult.serror('The field: ' + key + ' is forbidden. ' + message);\n }));\n };\n\n var requiredObjOf = function requiredObjOf(key, objSchema) {\n return field$1(key, key, required$2(), objOf(objSchema));\n };\n\n var requiredArrayOfObj = function requiredArrayOfObj(key, objFields) {\n return field$1(key, key, required$2(), arrOfObj(objFields));\n };\n\n var requiredArrayOf = function requiredArrayOf(key, schema) {\n return field$1(key, key, required$2(), arrOf(schema));\n };\n\n var option = function option(key) {\n return field$1(key, key, asOption(), anyValue());\n };\n\n var optionOf = function optionOf(key, schema) {\n return field$1(key, key, asOption(), schema);\n };\n\n var optionNumber = function optionNumber(key) {\n return optionOf(key, number);\n };\n\n var optionString = function optionString(key) {\n return optionOf(key, string);\n };\n\n var optionFunction = function optionFunction(key) {\n return optionOf(key, functionProcessor);\n };\n\n var optionArrayOf = function optionArrayOf(key, schema) {\n return optionOf(key, arrOf(schema));\n };\n\n var optionObjOf = function optionObjOf(key, objSchema) {\n return optionOf(key, objOf(objSchema));\n };\n\n var optionObjOfOnly = function optionObjOfOnly(key, objSchema) {\n return optionOf(key, objOfOnly(objSchema));\n };\n\n var defaulted = function defaulted(key, fallback) {\n return field$1(key, key, defaulted$1(fallback), anyValue());\n };\n\n var defaultedOf = function defaultedOf(key, fallback, schema) {\n return field$1(key, key, defaulted$1(fallback), schema);\n };\n\n var defaultedNumber = function defaultedNumber(key, fallback) {\n return defaultedOf(key, fallback, number);\n };\n\n var defaultedString = function defaultedString(key, fallback) {\n return defaultedOf(key, fallback, string);\n };\n\n var defaultedStringEnum = function defaultedStringEnum(key, fallback, values) {\n return defaultedOf(key, fallback, validateEnum(values));\n };\n\n var defaultedBoolean = function defaultedBoolean(key, fallback) {\n return defaultedOf(key, fallback, boolean);\n };\n\n var defaultedFunction = function defaultedFunction(key, fallback) {\n return defaultedOf(key, fallback, functionProcessor);\n };\n\n var defaultedPostMsg = function defaultedPostMsg(key, fallback) {\n return defaultedOf(key, fallback, postMessageable);\n };\n\n var defaultedArrayOf = function defaultedArrayOf(key, fallback, schema) {\n return defaultedOf(key, fallback, arrOf(schema));\n };\n\n var defaultedObjOf = function defaultedObjOf(key, fallback, objSchema) {\n return defaultedOf(key, fallback, objOf(objSchema));\n };\n\n var Cell = function Cell(initial) {\n var value = initial;\n\n var get = function get() {\n return value;\n };\n\n var set = function set(v) {\n value = v;\n };\n\n return {\n get: get,\n set: set\n };\n };\n\n var generate$7 = function generate$7(cases) {\n if (!isArray(cases)) {\n throw new Error('cases must be an array');\n }\n\n if (cases.length === 0) {\n throw new Error('there must be at least one case');\n }\n\n var constructors = [];\n var adt = {};\n each$1(cases, function (acase, count) {\n var keys$1 = keys(acase);\n\n if (keys$1.length !== 1) {\n throw new Error('one and only one name per case');\n }\n\n var key = keys$1[0];\n var value = acase[key];\n\n if (adt[key] !== undefined) {\n throw new Error('duplicate key detected:' + key);\n } else if (key === 'cata') {\n throw new Error('cannot have a case named cata (sorry)');\n } else if (!isArray(value)) {\n throw new Error('case arguments must be an array');\n }\n\n constructors.push(key);\n\n adt[key] = function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n var argLength = args.length;\n\n if (argLength !== value.length) {\n throw new Error('Wrong number of arguments to case ' + key + '. Expected ' + value.length + ' (' + value + '), got ' + argLength);\n }\n\n var match = function match(branches) {\n var branchKeys = keys(branches);\n\n if (constructors.length !== branchKeys.length) {\n throw new Error('Wrong number of arguments to match. Expected: ' + constructors.join(',') + '\\nActual: ' + branchKeys.join(','));\n }\n\n var allReqd = forall(constructors, function (reqKey) {\n return contains$2(branchKeys, reqKey);\n });\n\n if (!allReqd) {\n throw new Error('Not all branches were specified when using match. Specified: ' + branchKeys.join(', ') + '\\nRequired: ' + constructors.join(', '));\n }\n\n return branches[key].apply(null, args);\n };\n\n return {\n fold: function fold() {\n var foldArgs = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n foldArgs[_i] = arguments[_i];\n }\n\n if (foldArgs.length !== cases.length) {\n throw new Error('Wrong number of arguments to fold. Expected ' + cases.length + ', got ' + foldArgs.length);\n }\n\n var target = foldArgs[count];\n return target.apply(null, args);\n },\n match: match,\n log: function log(label) {\n console.log(label, {\n constructors: constructors,\n constructor: key,\n params: args\n });\n }\n };\n };\n });\n return adt;\n };\n\n var Adt = {\n generate: generate$7\n };\n Adt.generate([{\n bothErrors: ['error1', 'error2']\n }, {\n firstError: ['error1', 'value2']\n }, {\n secondError: ['value1', 'error2']\n }, {\n bothValues: ['value1', 'value2']\n }]);\n\n var partition$1 = function partition$1(results) {\n var errors = [];\n var values = [];\n each$1(results, function (result) {\n result.fold(function (err) {\n errors.push(err);\n }, function (value) {\n values.push(value);\n });\n });\n return {\n errors: errors,\n values: values\n };\n };\n\n var exclude$1 = function exclude$1(obj, fields) {\n var r = {};\n each(obj, function (v, k) {\n if (!contains$2(fields, k)) {\n r[k] = v;\n }\n });\n return r;\n };\n\n var wrap$2 = function wrap$2(key, value) {\n var _a;\n\n return _a = {}, _a[key] = value, _a;\n };\n\n var wrapAll$1 = function wrapAll$1(keyvalues) {\n var r = {};\n each$1(keyvalues, function (kv) {\n r[kv.key] = kv.value;\n });\n return r;\n };\n\n var exclude = function exclude(obj, fields) {\n return exclude$1(obj, fields);\n };\n\n var wrap$1 = function wrap$1(key, value) {\n return wrap$2(key, value);\n };\n\n var wrapAll = function wrapAll(keyvalues) {\n return wrapAll$1(keyvalues);\n };\n\n var mergeValues = function mergeValues(values, base) {\n return values.length === 0 ? Result.value(base) : Result.value(deepMerge(base, merge$1.apply(undefined, values)));\n };\n\n var mergeErrors = function mergeErrors(errors) {\n return Result.error(flatten(errors));\n };\n\n var consolidate = function consolidate(objs, base) {\n var partitions = partition$1(objs);\n return partitions.errors.length > 0 ? mergeErrors(partitions.errors) : mergeValues(partitions.values, base);\n };\n\n var ensureIsRoot = function ensureIsRoot(isRoot) {\n return isFunction(isRoot) ? isRoot : never;\n };\n\n var ancestor$2 = function ancestor$2(scope, transform, isRoot) {\n var element = scope.dom;\n var stop = ensureIsRoot(isRoot);\n\n while (element.parentNode) {\n element = element.parentNode;\n var el = SugarElement.fromDom(element);\n var transformed = transform(el);\n\n if (transformed.isSome()) {\n return transformed;\n } else if (stop(el)) {\n break;\n }\n }\n\n return Optional.none();\n };\n\n var closest$4 = function closest$4(scope, transform, isRoot) {\n var current = transform(scope);\n var stop = ensureIsRoot(isRoot);\n return current.orThunk(function () {\n return stop(scope) ? Optional.none() : ancestor$2(scope, transform, stop);\n });\n };\n\n var isSource = function isSource(component, simulatedEvent) {\n return eq(component.element, simulatedEvent.event.target);\n };\n\n var defaultEventHandler = {\n can: always,\n abort: never,\n run: noop\n };\n\n var nu$9 = function nu$9(parts) {\n if (!hasNonNullableKey(parts, 'can') && !hasNonNullableKey(parts, 'abort') && !hasNonNullableKey(parts, 'run')) {\n throw new Error('EventHandler defined by: ' + JSON.stringify(parts, null, 2) + ' does not have can, abort, or run!');\n }\n\n return _assign(_assign({}, defaultEventHandler), parts);\n };\n\n var all$2 = function all$2(handlers, f) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return foldl(handlers, function (acc, handler) {\n return acc && f(handler).apply(undefined, args);\n }, true);\n };\n };\n\n var any = function any(handlers, f) {\n return function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return foldl(handlers, function (acc, handler) {\n return acc || f(handler).apply(undefined, args);\n }, false);\n };\n };\n\n var read$2 = function read$2(handler) {\n return isFunction(handler) ? {\n can: always,\n abort: never,\n run: handler\n } : handler;\n };\n\n var fuse$1 = function fuse$1(handlers) {\n var can = all$2(handlers, function (handler) {\n return handler.can;\n });\n var abort = any(handlers, function (handler) {\n return handler.abort;\n });\n\n var run = function run() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n each$1(handlers, function (handler) {\n handler.run.apply(undefined, args);\n });\n };\n\n return {\n can: can,\n abort: abort,\n run: run\n };\n };\n\n var constant = constant$1;\n var touchstart = constant('touchstart');\n var touchmove = constant('touchmove');\n var touchend = constant('touchend');\n var touchcancel = constant('touchcancel');\n var mousedown = constant('mousedown');\n var mousemove = constant('mousemove');\n var mouseout = constant('mouseout');\n var mouseup = constant('mouseup');\n var mouseover = constant('mouseover');\n var focusin = constant('focusin');\n var focusout = constant('focusout');\n var keydown = constant('keydown');\n var keyup = constant('keyup');\n var input = constant('input');\n var change = constant('change');\n var click = constant('click');\n var transitioncancel = constant('transitioncancel');\n var transitionend = constant('transitionend');\n var transitionstart = constant('transitionstart');\n var selectstart = constant('selectstart');\n\n var prefixName = function prefixName(name) {\n return constant$1('alloy.' + name);\n };\n\n var alloy = {\n tap: prefixName('tap')\n };\n var focus$4 = prefixName('focus');\n var postBlur = prefixName('blur.post');\n var postPaste = prefixName('paste.post');\n var receive = prefixName('receive');\n var execute$5 = prefixName('execute');\n var focusItem = prefixName('focus.item');\n var tap = alloy.tap;\n var longpress = prefixName('longpress');\n var sandboxClose = prefixName('sandbox.close');\n var typeaheadCancel = prefixName('typeahead.cancel');\n var systemInit = prefixName('system.init');\n var documentTouchmove = prefixName('system.touchmove');\n var documentTouchend = prefixName('system.touchend');\n var windowScroll = prefixName('system.scroll');\n var windowResize = prefixName('system.resize');\n var attachedToDom = prefixName('system.attached');\n var detachedFromDom = prefixName('system.detached');\n var dismissRequested = prefixName('system.dismissRequested');\n var repositionRequested = prefixName('system.repositionRequested');\n var focusShifted = prefixName('focusmanager.shifted');\n var slotVisibility = prefixName('slotcontainer.visibility');\n var changeTab = prefixName('change.tab');\n var dismissTab = prefixName('dismiss.tab');\n var highlight$1 = prefixName('highlight');\n var dehighlight$1 = prefixName('dehighlight');\n\n var emit = function emit(component, event) {\n dispatchWith(component, component.element, event, {});\n };\n\n var emitWith = function emitWith(component, event, properties) {\n dispatchWith(component, component.element, event, properties);\n };\n\n var emitExecute = function emitExecute(component) {\n emit(component, execute$5());\n };\n\n var dispatch = function dispatch(component, target, event) {\n dispatchWith(component, target, event, {});\n };\n\n var dispatchWith = function dispatchWith(component, target, event, properties) {\n var data = _assign({\n target: target\n }, properties);\n\n component.getSystem().triggerEvent(event, target, data);\n };\n\n var dispatchEvent = function dispatchEvent(component, target, event, simulatedEvent) {\n component.getSystem().triggerEvent(event, target, simulatedEvent.event);\n };\n\n var derive$2 = function derive$2(configs) {\n return wrapAll(configs);\n };\n\n var abort = function abort(name, predicate) {\n return {\n key: name,\n value: nu$9({\n abort: predicate\n })\n };\n };\n\n var can = function can(name, predicate) {\n return {\n key: name,\n value: nu$9({\n can: predicate\n })\n };\n };\n\n var preventDefault = function preventDefault(name) {\n return {\n key: name,\n value: nu$9({\n run: function run(component, simulatedEvent) {\n simulatedEvent.event.prevent();\n }\n })\n };\n };\n\n var run$1 = function run$1(name, handler) {\n return {\n key: name,\n value: nu$9({\n run: handler\n })\n };\n };\n\n var runActionExtra = function runActionExtra(name, action, extra) {\n return {\n key: name,\n value: nu$9({\n run: function run(component, simulatedEvent) {\n action.apply(undefined, [component, simulatedEvent].concat(extra));\n }\n })\n };\n };\n\n var runOnName = function runOnName(name) {\n return function (handler) {\n return run$1(name, handler);\n };\n };\n\n var runOnSourceName = function runOnSourceName(name) {\n return function (handler) {\n return {\n key: name,\n value: nu$9({\n run: function run(component, simulatedEvent) {\n if (isSource(component, simulatedEvent)) {\n handler(component, simulatedEvent);\n }\n }\n })\n };\n };\n };\n\n var redirectToUid = function redirectToUid(name, uid) {\n return run$1(name, function (component, simulatedEvent) {\n component.getSystem().getByUid(uid).each(function (redirectee) {\n dispatchEvent(redirectee, redirectee.element, name, simulatedEvent);\n });\n });\n };\n\n var redirectToPart = function redirectToPart(name, detail, partName) {\n var uid = detail.partUids[partName];\n return redirectToUid(name, uid);\n };\n\n var runWithTarget = function runWithTarget(name, f) {\n return run$1(name, function (component, simulatedEvent) {\n var ev = simulatedEvent.event;\n var target = component.getSystem().getByDom(ev.target).getOrThunk(function () {\n var closest = closest$4(ev.target, function (el) {\n return component.getSystem().getByDom(el).toOptional();\n }, never);\n return closest.getOr(component);\n });\n f(component, target, simulatedEvent);\n });\n };\n\n var cutter = function cutter(name) {\n return run$1(name, function (component, simulatedEvent) {\n simulatedEvent.cut();\n });\n };\n\n var stopper = function stopper(name) {\n return run$1(name, function (component, simulatedEvent) {\n simulatedEvent.stop();\n });\n };\n\n var runOnSource = function runOnSource(name, f) {\n return runOnSourceName(name)(f);\n };\n\n var runOnAttached = runOnSourceName(attachedToDom());\n var runOnDetached = runOnSourceName(detachedFromDom());\n var runOnInit = runOnSourceName(systemInit());\n var runOnExecute$1 = runOnName(execute$5());\n\n var fromHtml$1 = function fromHtml$1(html, scope) {\n var doc = scope || document;\n var div = doc.createElement('div');\n div.innerHTML = html;\n return children(SugarElement.fromDom(div));\n };\n\n var get$7 = function get$7(element) {\n return element.dom.innerHTML;\n };\n\n var set$5 = function set$5(element, content) {\n var owner = owner$4(element);\n var docDom = owner.dom;\n var fragment = SugarElement.fromDom(docDom.createDocumentFragment());\n var contentElements = fromHtml$1(content, docDom);\n append$1(fragment, contentElements);\n empty(element);\n append$2(element, fragment);\n };\n\n var getOuter = function getOuter(element) {\n var container = SugarElement.fromTag('div');\n var clone = SugarElement.fromDom(element.dom.cloneNode(true));\n append$2(container, clone);\n return get$7(container);\n };\n\n var clone$1 = function clone$1(original, isDeep) {\n return SugarElement.fromDom(original.dom.cloneNode(isDeep));\n };\n\n var shallow = function shallow(original) {\n return clone$1(original, false);\n };\n\n var getHtml = function getHtml(element) {\n if (isShadowRoot(element)) {\n return '#shadow-root';\n } else {\n var clone = shallow(element);\n return getOuter(clone);\n }\n };\n\n var element = function element(elem) {\n return getHtml(elem);\n };\n\n var isRecursive = function isRecursive(component, originator, target) {\n return eq(originator, component.element) && !eq(originator, target);\n };\n\n var events$i = derive$2([can(focus$4(), function (component, simulatedEvent) {\n var event = simulatedEvent.event;\n var originator = event.originator;\n var target = event.target;\n\n if (isRecursive(component, originator, target)) {\n console.warn(focus$4() + ' did not get interpreted by the desired target. ' + '\\nOriginator: ' + element(originator) + '\\nTarget: ' + element(target) + '\\nCheck the ' + focus$4() + ' event handlers');\n return false;\n } else {\n return true;\n }\n })]);\n var DefaultEvents = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$i\n });\n var unique = 0;\n\n var generate$6 = function generate$6(prefix) {\n var date = new Date();\n var time = date.getTime();\n var random = Math.floor(Math.random() * 1000000000);\n unique++;\n return prefix + '_' + random + unique + String(time);\n };\n\n var prefix$1 = constant$1('alloy-id-');\n var idAttr$1 = constant$1('data-alloy-id');\n var prefix = prefix$1();\n var idAttr = idAttr$1();\n\n var write = function write(label, elem) {\n var id = generate$6(prefix + label);\n writeOnly(elem, id);\n return id;\n };\n\n var writeOnly = function writeOnly(elem, uid) {\n Object.defineProperty(elem.dom, idAttr, {\n value: uid,\n writable: true\n });\n };\n\n var read$1 = function read$1(elem) {\n var id = isElement$2(elem) ? elem.dom[idAttr] : null;\n return Optional.from(id);\n };\n\n var generate$5 = function generate$5(prefix) {\n return generate$6(prefix);\n };\n\n var make$8 = identity$1;\n\n var NoContextApi = function NoContextApi(getComp) {\n var getMessage = function getMessage(event) {\n return 'The component must be in a context to execute: ' + event + (getComp ? '\\n' + element(getComp().element) + ' is not in context.' : '');\n };\n\n var fail = function fail(event) {\n return function () {\n throw new Error(getMessage(event));\n };\n };\n\n var warn = function warn(event) {\n return function () {\n console.warn(getMessage(event));\n };\n };\n\n return {\n debugInfo: constant$1('fake'),\n triggerEvent: warn('triggerEvent'),\n triggerFocus: warn('triggerFocus'),\n triggerEscape: warn('triggerEscape'),\n broadcast: warn('broadcast'),\n broadcastOn: warn('broadcastOn'),\n broadcastEvent: warn('broadcastEvent'),\n build: fail('build'),\n addToWorld: fail('addToWorld'),\n removeFromWorld: fail('removeFromWorld'),\n addToGui: fail('addToGui'),\n removeFromGui: fail('removeFromGui'),\n getByUid: fail('getByUid'),\n getByDom: fail('getByDom'),\n isConnected: never\n };\n };\n\n var singleton$1 = NoContextApi();\n\n var markAsBehaviourApi = function markAsBehaviourApi(f, apiName, apiFunction) {\n var delegate = apiFunction.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n\n f.toFunctionAnnotation = function () {\n return {\n name: apiName,\n parameters: cleanParameters(parameters.slice(0, 1).concat(parameters.slice(3)))\n };\n };\n\n return f;\n };\n\n var cleanParameters = function cleanParameters(parameters) {\n return map$2(parameters, function (p) {\n return endsWith(p, '/*') ? p.substring(0, p.length - '/*'.length) : p;\n });\n };\n\n var markAsExtraApi = function markAsExtraApi(f, extraName) {\n var delegate = f.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n\n f.toFunctionAnnotation = function () {\n return {\n name: extraName,\n parameters: cleanParameters(parameters)\n };\n };\n\n return f;\n };\n\n var markAsSketchApi = function markAsSketchApi(f, apiFunction) {\n var delegate = apiFunction.toString();\n var endIndex = delegate.indexOf(')') + 1;\n var openBracketIndex = delegate.indexOf('(');\n var parameters = delegate.substring(openBracketIndex + 1, endIndex - 1).split(/,\\s*/);\n\n f.toFunctionAnnotation = function () {\n return {\n name: 'OVERRIDE',\n parameters: cleanParameters(parameters.slice(1))\n };\n };\n\n return f;\n };\n\n var premadeTag = generate$6('alloy-premade');\n\n var premade$1 = function premade$1(comp) {\n return wrap$1(premadeTag, comp);\n };\n\n var getPremade = function getPremade(spec) {\n return get$e(spec, premadeTag);\n };\n\n var makeApi = function makeApi(f) {\n return markAsSketchApi(function (component) {\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n return f.apply(void 0, __spreadArray([component.getApis(), component], rest, false));\n }, f);\n };\n\n var NoState = {\n init: function init() {\n return nu$8({\n readState: constant$1('No State required')\n });\n }\n };\n\n var nu$8 = function nu$8(spec) {\n return spec;\n };\n\n var generateFrom$1 = function generateFrom$1(spec, all) {\n var schema = map$2(all, function (a) {\n return optionObjOf(a.name(), [required$1('config'), defaulted('state', NoState)]);\n });\n var validated = asRaw('component.behaviours', objOf(schema), spec.behaviours).fold(function (errInfo) {\n throw new Error(formatError(errInfo) + '\\nComplete spec:\\n' + JSON.stringify(spec, null, 2));\n }, identity$1);\n return {\n list: all,\n data: map$1(validated, function (optBlobThunk) {\n var output = optBlobThunk.map(function (blob) {\n return {\n config: blob.config,\n state: blob.state.init(blob.config)\n };\n });\n return constant$1(output);\n })\n };\n };\n\n var getBehaviours$3 = function getBehaviours$3(bData) {\n return bData.list;\n };\n\n var getData$2 = function getData$2(bData) {\n return bData.data;\n };\n\n var byInnerKey = function byInnerKey(data, tuple) {\n var r = {};\n each(data, function (detail, key) {\n each(detail, function (value, indexKey) {\n var chain = get$e(r, indexKey).getOr([]);\n r[indexKey] = chain.concat([tuple(key, value)]);\n });\n });\n return r;\n };\n\n var nu$7 = function nu$7(s) {\n return {\n classes: isUndefined(s.classes) ? [] : s.classes,\n attributes: isUndefined(s.attributes) ? {} : s.attributes,\n styles: isUndefined(s.styles) ? {} : s.styles\n };\n };\n\n var merge = function merge(defnA, mod) {\n return _assign(_assign({}, defnA), {\n attributes: _assign(_assign({}, defnA.attributes), mod.attributes),\n styles: _assign(_assign({}, defnA.styles), mod.styles),\n classes: defnA.classes.concat(mod.classes)\n });\n };\n\n var combine$2 = function combine$2(info, baseMod, behaviours, base) {\n var modsByBehaviour = _assign({}, baseMod);\n\n each$1(behaviours, function (behaviour) {\n modsByBehaviour[behaviour.name()] = behaviour.exhibit(info, base);\n });\n var byAspect = byInnerKey(modsByBehaviour, function (name, modification) {\n return {\n name: name,\n modification: modification\n };\n });\n\n var combineObjects = function combineObjects(objects) {\n return foldr(objects, function (b, a) {\n return _assign(_assign({}, a.modification), b);\n }, {});\n };\n\n var combinedClasses = foldr(byAspect.classes, function (b, a) {\n return a.modification.concat(b);\n }, []);\n var combinedAttributes = combineObjects(byAspect.attributes);\n var combinedStyles = combineObjects(byAspect.styles);\n return nu$7({\n classes: combinedClasses,\n attributes: combinedAttributes,\n styles: combinedStyles\n });\n };\n\n var sortKeys = function sortKeys(label, keyName, array, order) {\n try {\n var sorted = sort(array, function (a, b) {\n var aKey = a[keyName];\n var bKey = b[keyName];\n var aIndex = order.indexOf(aKey);\n var bIndex = order.indexOf(bKey);\n\n if (aIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + aKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n\n if (bIndex === -1) {\n throw new Error('The ordering for ' + label + ' does not have an entry for ' + bKey + '.\\nOrder specified: ' + JSON.stringify(order, null, 2));\n }\n\n if (aIndex < bIndex) {\n return -1;\n } else if (bIndex < aIndex) {\n return 1;\n } else {\n return 0;\n }\n });\n return Result.value(sorted);\n } catch (err) {\n return Result.error([err]);\n }\n };\n\n var uncurried = function uncurried(handler, purpose) {\n return {\n handler: handler,\n purpose: purpose\n };\n };\n\n var curried = function curried(handler, purpose) {\n return {\n cHandler: handler,\n purpose: purpose\n };\n };\n\n var curryArgs = function curryArgs(descHandler, extraArgs) {\n return curried(curry.apply(undefined, [descHandler.handler].concat(extraArgs)), descHandler.purpose);\n };\n\n var getCurried = function getCurried(descHandler) {\n return descHandler.cHandler;\n };\n\n var behaviourTuple = function behaviourTuple(name, handler) {\n return {\n name: name,\n handler: handler\n };\n };\n\n var nameToHandlers = function nameToHandlers(behaviours, info) {\n var r = {};\n each$1(behaviours, function (behaviour) {\n r[behaviour.name()] = behaviour.handlers(info);\n });\n return r;\n };\n\n var groupByEvents = function groupByEvents(info, behaviours, base) {\n var behaviourEvents = _assign(_assign({}, base), nameToHandlers(behaviours, info));\n\n return byInnerKey(behaviourEvents, behaviourTuple);\n };\n\n var combine$1 = function combine$1(info, eventOrder, behaviours, base) {\n var byEventName = groupByEvents(info, behaviours, base);\n return combineGroups(byEventName, eventOrder);\n };\n\n var assemble = function assemble(rawHandler) {\n var handler = read$2(rawHandler);\n return function (component, simulatedEvent) {\n var rest = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n rest[_i - 2] = arguments[_i];\n }\n\n var args = [component, simulatedEvent].concat(rest);\n\n if (handler.abort.apply(undefined, args)) {\n simulatedEvent.stop();\n } else if (handler.can.apply(undefined, args)) {\n handler.run.apply(undefined, args);\n }\n };\n };\n\n var missingOrderError = function missingOrderError(eventName, tuples) {\n return Result.error(['The event (' + eventName + ') has more than one behaviour that listens to it.\\nWhen this occurs, you must ' + 'specify an event ordering for the behaviours in your spec (e.g. [ \"listing\", \"toggling\" ]).\\nThe behaviours that ' + 'can trigger it are: ' + JSON.stringify(map$2(tuples, function (c) {\n return c.name;\n }), null, 2)]);\n };\n\n var fuse = function fuse(tuples, eventOrder, eventName) {\n var order = eventOrder[eventName];\n\n if (!order) {\n return missingOrderError(eventName, tuples);\n } else {\n return sortKeys('Event: ' + eventName, 'name', tuples, order).map(function (sortedTuples) {\n var handlers = map$2(sortedTuples, function (tuple) {\n return tuple.handler;\n });\n return fuse$1(handlers);\n });\n }\n };\n\n var combineGroups = function combineGroups(byEventName, eventOrder) {\n var r = mapToArray(byEventName, function (tuples, eventName) {\n var combined = tuples.length === 1 ? Result.value(tuples[0].handler) : fuse(tuples, eventOrder, eventName);\n return combined.map(function (handler) {\n var assembled = assemble(handler);\n var purpose = tuples.length > 1 ? filter$2(eventOrder[eventName], function (o) {\n return exists(tuples, function (t) {\n return t.name === o;\n });\n }).join(' > ') : tuples[0].name;\n return wrap$1(eventName, uncurried(assembled, purpose));\n });\n });\n return consolidate(r, {});\n };\n\n var _a$2;\n\n var baseBehaviour = 'alloy.base.behaviour';\n var schema$z = objOf([field$1('dom', 'dom', required$2(), objOf([required$1('tag'), defaulted('styles', {}), defaulted('classes', []), defaulted('attributes', {}), option('value'), option('innerHtml')])), required$1('components'), required$1('uid'), defaulted('events', {}), defaulted('apis', {}), field$1('eventOrder', 'eventOrder', mergeWith((_a$2 = {}, _a$2[execute$5()] = ['disabling', baseBehaviour, 'toggling', 'typeaheadevents'], _a$2[focus$4()] = [baseBehaviour, 'focusing', 'keying'], _a$2[systemInit()] = [baseBehaviour, 'disabling', 'toggling', 'representing'], _a$2[input()] = [baseBehaviour, 'representing', 'streaming', 'invalidating'], _a$2[detachedFromDom()] = [baseBehaviour, 'representing', 'item-events', 'tooltipping'], _a$2[mousedown()] = ['focusing', baseBehaviour, 'item-type-events'], _a$2[touchstart()] = ['focusing', baseBehaviour, 'item-type-events'], _a$2[mouseover()] = ['item-type-events', 'tooltipping'], _a$2[receive()] = ['receiving', 'reflecting', 'tooltipping'], _a$2)), anyValue()), option('domModification')]);\n\n var toInfo = function toInfo(spec) {\n return asRaw('custom.definition', schema$z, spec);\n };\n\n var toDefinition = function toDefinition(detail) {\n return _assign(_assign({}, detail.dom), {\n uid: detail.uid,\n domChildren: map$2(detail.components, function (comp) {\n return comp.element;\n })\n });\n };\n\n var toModification = function toModification(detail) {\n return detail.domModification.fold(function () {\n return nu$7({});\n }, nu$7);\n };\n\n var toEvents = function toEvents(info) {\n return info.events;\n };\n\n var read = function read(element, attr) {\n var value = get$d(element, attr);\n return value === undefined || value === '' ? [] : value.split(' ');\n };\n\n var add$4 = function add$4(element, attr, id) {\n var old = read(element, attr);\n var nu = old.concat([id]);\n set$8(element, attr, nu.join(' '));\n return true;\n };\n\n var remove$4 = function remove$4(element, attr, id) {\n var nu = filter$2(read(element, attr), function (v) {\n return v !== id;\n });\n\n if (nu.length > 0) {\n set$8(element, attr, nu.join(' '));\n } else {\n remove$7(element, attr);\n }\n\n return false;\n };\n\n var supports = function supports(element) {\n return element.dom.classList !== undefined;\n };\n\n var get$6 = function get$6(element) {\n return read(element, 'class');\n };\n\n var add$3 = function add$3(element, clazz) {\n return add$4(element, 'class', clazz);\n };\n\n var remove$3 = function remove$3(element, clazz) {\n return remove$4(element, 'class', clazz);\n };\n\n var add$2 = function add$2(element, clazz) {\n if (supports(element)) {\n element.dom.classList.add(clazz);\n } else {\n add$3(element, clazz);\n }\n };\n\n var cleanClass = function cleanClass(element) {\n var classList = supports(element) ? element.dom.classList : get$6(element);\n\n if (classList.length === 0) {\n remove$7(element, 'class');\n }\n };\n\n var remove$2 = function remove$2(element, clazz) {\n if (supports(element)) {\n var classList = element.dom.classList;\n classList.remove(clazz);\n } else {\n remove$3(element, clazz);\n }\n\n cleanClass(element);\n };\n\n var has = function has(element, clazz) {\n return supports(element) && element.dom.classList.contains(clazz);\n };\n\n var add$1 = function add$1(element, classes) {\n each$1(classes, function (x) {\n add$2(element, x);\n });\n };\n\n var remove$1 = function remove$1(element, classes) {\n each$1(classes, function (x) {\n remove$2(element, x);\n });\n };\n\n var hasAll = function hasAll(element, classes) {\n return forall(classes, function (clazz) {\n return has(element, clazz);\n });\n };\n\n var get$5 = function get$5(element) {\n return element.dom.value;\n };\n\n var set$4 = function set$4(element, value) {\n if (value === undefined) {\n throw new Error('Value.set was undefined');\n }\n\n element.dom.value = value;\n };\n\n var renderToDom = function renderToDom(definition) {\n var subject = SugarElement.fromTag(definition.tag);\n setAll$1(subject, definition.attributes);\n add$1(subject, definition.classes);\n setAll(subject, definition.styles);\n definition.innerHtml.each(function (html) {\n return set$5(subject, html);\n });\n var children = definition.domChildren;\n append$1(subject, children);\n definition.value.each(function (value) {\n set$4(subject, value);\n });\n\n if (!definition.uid) {\n debugger;\n }\n\n writeOnly(subject, definition.uid);\n return subject;\n };\n\n var getBehaviours$2 = function getBehaviours$2(spec) {\n var behaviours = get$e(spec, 'behaviours').getOr({});\n return bind$3(keys(behaviours), function (name) {\n var behaviour = behaviours[name];\n return isNonNullable(behaviour) ? [behaviour.me] : [];\n });\n };\n\n var generateFrom = function generateFrom(spec, all) {\n return generateFrom$1(spec, all);\n };\n\n var generate$4 = function generate$4(spec) {\n var all = getBehaviours$2(spec);\n return generateFrom(spec, all);\n };\n\n var getDomDefinition = function getDomDefinition(info, bList, bData) {\n var definition = toDefinition(info);\n var infoModification = toModification(info);\n var baseModification = {\n 'alloy.base.modification': infoModification\n };\n var modification = bList.length > 0 ? combine$2(bData, baseModification, bList, definition) : infoModification;\n return merge(definition, modification);\n };\n\n var getEvents = function getEvents(info, bList, bData) {\n var baseEvents = {\n 'alloy.base.behaviour': toEvents(info)\n };\n return combine$1(bData, info.eventOrder, bList, baseEvents).getOrDie();\n };\n\n var build$2 = function build$2(spec) {\n var getMe = function getMe() {\n return me;\n };\n\n var systemApi = Cell(singleton$1);\n var info = getOrDie(toInfo(spec));\n var bBlob = generate$4(spec);\n var bList = getBehaviours$3(bBlob);\n var bData = getData$2(bBlob);\n var modDefinition = getDomDefinition(info, bList, bData);\n var item = renderToDom(modDefinition);\n var events = getEvents(info, bList, bData);\n var subcomponents = Cell(info.components);\n\n var connect = function connect(newApi) {\n systemApi.set(newApi);\n };\n\n var disconnect = function disconnect() {\n systemApi.set(NoContextApi(getMe));\n };\n\n var syncComponents = function syncComponents() {\n var children$1 = children(item);\n var subs = bind$3(children$1, function (child) {\n return systemApi.get().getByDom(child).fold(function () {\n return [];\n }, pure$2);\n });\n subcomponents.set(subs);\n };\n\n var config = function config(behaviour) {\n var b = bData;\n var f = isFunction(b[behaviour.name()]) ? b[behaviour.name()] : function () {\n throw new Error('Could not find ' + behaviour.name() + ' in ' + JSON.stringify(spec, null, 2));\n };\n return f();\n };\n\n var hasConfigured = function hasConfigured(behaviour) {\n return isFunction(bData[behaviour.name()]);\n };\n\n var getApis = function getApis() {\n return info.apis;\n };\n\n var readState = function readState(behaviourName) {\n return bData[behaviourName]().map(function (b) {\n return b.state.readState();\n }).getOr('not enabled');\n };\n\n var me = {\n uid: spec.uid,\n getSystem: systemApi.get,\n config: config,\n hasConfigured: hasConfigured,\n spec: spec,\n readState: readState,\n getApis: getApis,\n connect: connect,\n disconnect: disconnect,\n element: item,\n syncComponents: syncComponents,\n components: subcomponents.get,\n events: events\n };\n return me;\n };\n\n var buildSubcomponents = function buildSubcomponents(spec) {\n var components = get$e(spec, 'components').getOr([]);\n return map$2(components, build$1);\n };\n\n var buildFromSpec = function buildFromSpec(userSpec) {\n var _a = make$8(userSpec),\n specEvents = _a.events,\n spec = __rest(_a, ['events']);\n\n var components = buildSubcomponents(spec);\n\n var completeSpec = _assign(_assign({}, spec), {\n events: _assign(_assign({}, DefaultEvents), specEvents),\n components: components\n });\n\n return Result.value(build$2(completeSpec));\n };\n\n var text = function text(textContent) {\n var element = SugarElement.fromText(textContent);\n return external$2({\n element: element\n });\n };\n\n var external$2 = function external$2(spec) {\n var extSpec = asRawOrDie$1('external.component', objOfOnly([required$1('element'), option('uid')]), spec);\n var systemApi = Cell(NoContextApi());\n\n var connect = function connect(newApi) {\n systemApi.set(newApi);\n };\n\n var disconnect = function disconnect() {\n systemApi.set(NoContextApi(function () {\n return me;\n }));\n };\n\n var uid = extSpec.uid.getOrThunk(function () {\n return generate$5('external');\n });\n writeOnly(extSpec.element, uid);\n var me = {\n uid: uid,\n getSystem: systemApi.get,\n config: Optional.none,\n hasConfigured: never,\n connect: connect,\n disconnect: disconnect,\n getApis: function getApis() {\n return {};\n },\n element: extSpec.element,\n spec: spec,\n readState: constant$1('No state'),\n syncComponents: noop,\n components: constant$1([]),\n events: {}\n };\n return premade$1(me);\n };\n\n var uids = generate$5;\n\n var isSketchSpec$1 = function isSketchSpec$1(spec) {\n return has$2(spec, 'uid');\n };\n\n var build$1 = function build$1(spec) {\n return getPremade(spec).getOrThunk(function () {\n var userSpecWithUid = isSketchSpec$1(spec) ? spec : _assign({\n uid: uids('')\n }, spec);\n return buildFromSpec(userSpecWithUid).getOrDie();\n });\n };\n\n var premade = premade$1;\n\n function ClosestOrAncestor(is, ancestor, scope, a, isRoot) {\n if (is(scope, a)) {\n return Optional.some(scope);\n } else if (isFunction(isRoot) && isRoot(scope)) {\n return Optional.none();\n } else {\n return ancestor(scope, a, isRoot);\n }\n }\n\n var ancestor$1 = function ancestor$1(scope, predicate, isRoot) {\n var element = scope.dom;\n var stop = isFunction(isRoot) ? isRoot : never;\n\n while (element.parentNode) {\n element = element.parentNode;\n var el = SugarElement.fromDom(element);\n\n if (predicate(el)) {\n return Optional.some(el);\n } else if (stop(el)) {\n break;\n }\n }\n\n return Optional.none();\n };\n\n var closest$3 = function closest$3(scope, predicate, isRoot) {\n var is = function is(s, test) {\n return test(s);\n };\n\n return ClosestOrAncestor(is, ancestor$1, scope, predicate, isRoot);\n };\n\n var child$1 = function child$1(scope, predicate) {\n var pred = function pred(node) {\n return predicate(SugarElement.fromDom(node));\n };\n\n var result = find$5(scope.dom.childNodes, pred);\n return result.map(SugarElement.fromDom);\n };\n\n var descendant$1 = function descendant$1(scope, predicate) {\n var descend = function descend(node) {\n for (var i = 0; i < node.childNodes.length; i++) {\n var child_1 = SugarElement.fromDom(node.childNodes[i]);\n\n if (predicate(child_1)) {\n return Optional.some(child_1);\n }\n\n var res = descend(node.childNodes[i]);\n\n if (res.isSome()) {\n return res;\n }\n }\n\n return Optional.none();\n };\n\n return descend(scope.dom);\n };\n\n var closest$2 = function closest$2(scope, predicate, isRoot) {\n return closest$3(scope, predicate, isRoot).isSome();\n };\n\n var ancestor = function ancestor(scope, selector, isRoot) {\n return ancestor$1(scope, function (e) {\n return is(e, selector);\n }, isRoot);\n };\n\n var child = function child(scope, selector) {\n return child$1(scope, function (e) {\n return is(e, selector);\n });\n };\n\n var descendant = function descendant(scope, selector) {\n return one(selector, scope);\n };\n\n var closest$1 = function closest$1(scope, selector, isRoot) {\n var is$1 = function is$1(element, selector) {\n return is(element, selector);\n };\n\n return ClosestOrAncestor(is$1, ancestor, scope, selector, isRoot);\n };\n\n var find$1 = function find$1(queryElem) {\n var dependent = closest$3(queryElem, function (elem) {\n if (!isElement$2(elem)) {\n return false;\n }\n\n var id = get$d(elem, 'id');\n return id !== undefined && id.indexOf('aria-owns') > -1;\n });\n return dependent.bind(function (dep) {\n var id = get$d(dep, 'id');\n var dos = getRootNode(dep);\n return descendant(dos, '[aria-owns=\"' + id + '\"]');\n });\n };\n\n var manager = function manager() {\n var ariaId = generate$6('aria-owns');\n\n var link = function link(elem) {\n set$8(elem, 'aria-owns', ariaId);\n };\n\n var unlink = function unlink(elem) {\n remove$7(elem, 'aria-owns');\n };\n\n return {\n id: ariaId,\n link: link,\n unlink: unlink\n };\n };\n\n var isAriaPartOf = function isAriaPartOf(component, queryElem) {\n return find$1(queryElem).exists(function (owner) {\n return isPartOf$1(component, owner);\n });\n };\n\n var isPartOf$1 = function isPartOf$1(component, queryElem) {\n return closest$2(queryElem, function (el) {\n return eq(el, component.element);\n }, never) || isAriaPartOf(component, queryElem);\n };\n\n var unknown = 'unknown';\n var EventConfiguration;\n\n (function (EventConfiguration) {\n EventConfiguration[EventConfiguration['STOP'] = 0] = 'STOP';\n EventConfiguration[EventConfiguration['NORMAL'] = 1] = 'NORMAL';\n EventConfiguration[EventConfiguration['LOGGING'] = 2] = 'LOGGING';\n })(EventConfiguration || (EventConfiguration = {}));\n\n var eventConfig = Cell({});\n\n var makeEventLogger = function makeEventLogger(eventName, initialTarget) {\n var sequence = [];\n var startTime = new Date().getTime();\n return {\n logEventCut: function logEventCut(_name, target, purpose) {\n sequence.push({\n outcome: 'cut',\n target: target,\n purpose: purpose\n });\n },\n logEventStopped: function logEventStopped(_name, target, purpose) {\n sequence.push({\n outcome: 'stopped',\n target: target,\n purpose: purpose\n });\n },\n logNoParent: function logNoParent(_name, target, purpose) {\n sequence.push({\n outcome: 'no-parent',\n target: target,\n purpose: purpose\n });\n },\n logEventNoHandlers: function logEventNoHandlers(_name, target) {\n sequence.push({\n outcome: 'no-handlers-left',\n target: target\n });\n },\n logEventResponse: function logEventResponse(_name, target, purpose) {\n sequence.push({\n outcome: 'response',\n purpose: purpose,\n target: target\n });\n },\n write: function write() {\n var finishTime = new Date().getTime();\n\n if (contains$2(['mousemove', 'mouseover', 'mouseout', systemInit()], eventName)) {\n return;\n }\n\n console.log(eventName, {\n event: eventName,\n time: finishTime - startTime,\n target: initialTarget.dom,\n sequence: map$2(sequence, function (s) {\n if (!contains$2(['cut', 'stopped', 'response'], s.outcome)) {\n return s.outcome;\n } else {\n return '{' + s.purpose + '} ' + s.outcome + ' at (' + element(s.target) + ')';\n }\n })\n });\n }\n };\n };\n\n var processEvent = function processEvent(eventName, initialTarget, f) {\n var status = get$e(eventConfig.get(), eventName).orThunk(function () {\n var patterns = keys(eventConfig.get());\n return findMap(patterns, function (p) {\n return eventName.indexOf(p) > -1 ? Optional.some(eventConfig.get()[p]) : Optional.none();\n });\n }).getOr(EventConfiguration.NORMAL);\n\n switch (status) {\n case EventConfiguration.NORMAL:\n return f(noLogger());\n\n case EventConfiguration.LOGGING:\n {\n var logger = makeEventLogger(eventName, initialTarget);\n var output = f(logger);\n logger.write();\n return output;\n }\n\n case EventConfiguration.STOP:\n return true;\n }\n };\n\n var path = ['alloy/data/Fields', 'alloy/debugging/Debugging'];\n\n var getTrace = function getTrace() {\n var err = new Error();\n\n if (err.stack !== undefined) {\n var lines = err.stack.split('\\n');\n return find$5(lines, function (line) {\n return line.indexOf('alloy') > 0 && !exists(path, function (p) {\n return line.indexOf(p) > -1;\n });\n }).getOr(unknown);\n } else {\n return unknown;\n }\n };\n\n var ignoreEvent = {\n logEventCut: noop,\n logEventStopped: noop,\n logNoParent: noop,\n logEventNoHandlers: noop,\n logEventResponse: noop,\n write: noop\n };\n\n var monitorEvent = function monitorEvent(eventName, initialTarget, f) {\n return processEvent(eventName, initialTarget, f);\n };\n\n var noLogger = constant$1(ignoreEvent);\n var menuFields = constant$1([required$1('menu'), required$1('selectedMenu')]);\n var itemFields = constant$1([required$1('item'), required$1('selectedItem')]);\n constant$1(objOf(itemFields().concat(menuFields())));\n var itemSchema$3 = constant$1(objOf(itemFields()));\n\n var _initSize = requiredObjOf('initSize', [required$1('numColumns'), required$1('numRows')]);\n\n var itemMarkers = function itemMarkers() {\n return requiredOf('markers', itemSchema$3());\n };\n\n var tieredMenuMarkers = function tieredMenuMarkers() {\n return requiredObjOf('markers', [required$1('backgroundMenu')].concat(menuFields()).concat(itemFields()));\n };\n\n var markers$1 = function markers$1(required) {\n return requiredObjOf('markers', map$2(required, required$1));\n };\n\n var onPresenceHandler = function onPresenceHandler(label, fieldName, presence) {\n getTrace();\n return field$1(fieldName, fieldName, presence, valueOf(function (f) {\n return Result.value(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return f.apply(undefined, args);\n });\n }));\n };\n\n var onHandler = function onHandler(fieldName) {\n return onPresenceHandler('onHandler', fieldName, defaulted$1(noop));\n };\n\n var onKeyboardHandler = function onKeyboardHandler(fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, defaulted$1(Optional.none));\n };\n\n var onStrictHandler = function onStrictHandler(fieldName) {\n return onPresenceHandler('onHandler', fieldName, required$2());\n };\n\n var onStrictKeyboardHandler = function onStrictKeyboardHandler(fieldName) {\n return onPresenceHandler('onKeyboardHandler', fieldName, required$2());\n };\n\n var output$1 = function output$1(name, value) {\n return customField(name, constant$1(value));\n };\n\n var snapshot = function snapshot(name) {\n return customField(name, identity$1);\n };\n\n var initSize = constant$1(_initSize);\n\n var nu$6 = function nu$6(x, y, bubble, direction, placement, boundsRestriction, labelPrefix, alwaysFit) {\n if (alwaysFit === void 0) {\n alwaysFit = false;\n }\n\n return {\n x: x,\n y: y,\n bubble: bubble,\n direction: direction,\n placement: placement,\n restriction: boundsRestriction,\n label: labelPrefix + '-' + placement,\n alwaysFit: alwaysFit\n };\n };\n\n var adt$a = Adt.generate([{\n southeast: []\n }, {\n southwest: []\n }, {\n northeast: []\n }, {\n northwest: []\n }, {\n south: []\n }, {\n north: []\n }, {\n east: []\n }, {\n west: []\n }]);\n\n var cata$2 = function cata$2(subject, southeast, southwest, northeast, northwest, south, north, east, west) {\n return subject.fold(southeast, southwest, northeast, northwest, south, north, east, west);\n };\n\n var cataVertical = function cataVertical(subject, south, middle, north) {\n return subject.fold(south, south, north, north, south, north, middle, middle);\n };\n\n var cataHorizontal = function cataHorizontal(subject, east, middle, west) {\n return subject.fold(east, west, east, west, middle, middle, east, west);\n };\n\n var southeast$3 = adt$a.southeast;\n var southwest$3 = adt$a.southwest;\n var northeast$3 = adt$a.northeast;\n var northwest$3 = adt$a.northwest;\n var south$3 = adt$a.south;\n var north$3 = adt$a.north;\n var east$3 = adt$a.east;\n var west$3 = adt$a.west;\n\n var cycleBy = function cycleBy(value, delta, min, max) {\n var r = value + delta;\n\n if (r > max) {\n return min;\n } else if (r < min) {\n return max;\n } else {\n return r;\n }\n };\n\n var clamp$1 = function clamp$1(value, min, max) {\n return Math.min(Math.max(value, min), max);\n };\n\n var getRestriction = function getRestriction(anchor, restriction) {\n switch (restriction) {\n case 1:\n return anchor.x;\n\n case 0:\n return anchor.x + anchor.width;\n\n case 2:\n return anchor.y;\n\n case 3:\n return anchor.y + anchor.height;\n }\n };\n\n var boundsRestriction = function boundsRestriction(anchor, restrictions) {\n return mapToObject(['left', 'right', 'top', 'bottom'], function (dir) {\n return get$e(restrictions, dir).map(function (restriction) {\n return getRestriction(anchor, restriction);\n });\n });\n };\n\n var adjustBounds = function adjustBounds(bounds$1, restriction, bubbleOffset) {\n var applyRestriction = function applyRestriction(dir, current) {\n return restriction[dir].map(function (pos) {\n var isVerticalAxis = dir === 'top' || dir === 'bottom';\n var offset = isVerticalAxis ? bubbleOffset.top : bubbleOffset.left;\n var comparator = dir === 'left' || dir === 'top' ? Math.max : Math.min;\n var newPos = comparator(pos, current) + offset;\n return isVerticalAxis ? clamp$1(newPos, bounds$1.y, bounds$1.bottom) : clamp$1(newPos, bounds$1.x, bounds$1.right);\n }).getOr(current);\n };\n\n var adjustedLeft = applyRestriction('left', bounds$1.x);\n var adjustedTop = applyRestriction('top', bounds$1.y);\n var adjustedRight = applyRestriction('right', bounds$1.right);\n var adjustedBottom = applyRestriction('bottom', bounds$1.bottom);\n return bounds(adjustedLeft, adjustedTop, adjustedRight - adjustedLeft, adjustedBottom - adjustedTop);\n };\n\n var labelPrefix$2 = 'layout';\n\n var eastX$1 = function eastX$1(anchor) {\n return anchor.x;\n };\n\n var middleX$1 = function middleX$1(anchor, element) {\n return anchor.x + anchor.width / 2 - element.width / 2;\n };\n\n var westX$1 = function westX$1(anchor, element) {\n return anchor.x + anchor.width - element.width;\n };\n\n var northY$2 = function northY$2(anchor, element) {\n return anchor.y - element.height;\n };\n\n var southY$2 = function southY$2(anchor) {\n return anchor.y + anchor.height;\n };\n\n var centreY$1 = function centreY$1(anchor, element) {\n return anchor.y + anchor.height / 2 - element.height / 2;\n };\n\n var eastEdgeX$1 = function eastEdgeX$1(anchor) {\n return anchor.x + anchor.width;\n };\n\n var westEdgeX$1 = function westEdgeX$1(anchor, element) {\n return anchor.x - element.width;\n };\n\n var southeast$2 = function southeast$2(anchor, element, bubbles) {\n return nu$6(eastX$1(anchor), southY$2(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n top: 3\n }), labelPrefix$2);\n };\n\n var southwest$2 = function southwest$2(anchor, element, bubbles) {\n return nu$6(westX$1(anchor, element), southY$2(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n top: 3\n }), labelPrefix$2);\n };\n\n var northeast$2 = function northeast$2(anchor, element, bubbles) {\n return nu$6(eastX$1(anchor), northY$2(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 2\n }), labelPrefix$2);\n };\n\n var northwest$2 = function northwest$2(anchor, element, bubbles) {\n return nu$6(westX$1(anchor, element), northY$2(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 2\n }), labelPrefix$2);\n };\n\n var north$2 = function north$2(anchor, element, bubbles) {\n return nu$6(middleX$1(anchor, element), northY$2(anchor, element), bubbles.north(), north$3(), 'north', boundsRestriction(anchor, {\n bottom: 2\n }), labelPrefix$2);\n };\n\n var south$2 = function south$2(anchor, element, bubbles) {\n return nu$6(middleX$1(anchor, element), southY$2(anchor), bubbles.south(), south$3(), 'south', boundsRestriction(anchor, {\n top: 3\n }), labelPrefix$2);\n };\n\n var east$2 = function east$2(anchor, element, bubbles) {\n return nu$6(eastEdgeX$1(anchor), centreY$1(anchor, element), bubbles.east(), east$3(), 'east', boundsRestriction(anchor, {\n left: 0\n }), labelPrefix$2);\n };\n\n var west$2 = function west$2(anchor, element, bubbles) {\n return nu$6(westEdgeX$1(anchor, element), centreY$1(anchor, element), bubbles.west(), west$3(), 'west', boundsRestriction(anchor, {\n right: 1\n }), labelPrefix$2);\n };\n\n var all$1 = function all$1() {\n return [southeast$2, southwest$2, northeast$2, northwest$2, south$2, north$2, east$2, west$2];\n };\n\n var allRtl$1 = function allRtl$1() {\n return [southwest$2, southeast$2, northwest$2, northeast$2, south$2, north$2, east$2, west$2];\n };\n\n var aboveOrBelow = function aboveOrBelow() {\n return [northeast$2, northwest$2, southeast$2, southwest$2, north$2, south$2];\n };\n\n var aboveOrBelowRtl = function aboveOrBelowRtl() {\n return [northwest$2, northeast$2, southwest$2, southeast$2, north$2, south$2];\n };\n\n var belowOrAbove = function belowOrAbove() {\n return [southeast$2, southwest$2, northeast$2, northwest$2, south$2, north$2];\n };\n\n var belowOrAboveRtl = function belowOrAboveRtl() {\n return [southwest$2, southeast$2, northwest$2, northeast$2, south$2, north$2];\n };\n\n var chooseChannels = function chooseChannels(channels, message) {\n return message.universal ? channels : filter$2(channels, function (ch) {\n return contains$2(message.channels, ch);\n });\n };\n\n var events$h = function events$h(receiveConfig) {\n return derive$2([run$1(receive(), function (component, message) {\n var channelMap = receiveConfig.channels;\n var channels = keys(channelMap);\n var receivingData = message;\n var targetChannels = chooseChannels(channels, receivingData);\n each$1(targetChannels, function (ch) {\n var channelInfo = channelMap[ch];\n var channelSchema = channelInfo.schema;\n var data = asRawOrDie$1('channel[' + ch + '] data\\nReceiver: ' + element(component.element), channelSchema, receivingData.data);\n channelInfo.onReceive(component, data);\n });\n })]);\n };\n\n var ActiveReceiving = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$h\n });\n var ReceivingSchema = [requiredOf('channels', setOf(Result.value, objOfOnly([onStrictHandler('onReceive'), defaulted('schema', anyValue())])))];\n\n var executeEvent = function executeEvent(bConfig, bState, executor) {\n return runOnExecute$1(function (component) {\n executor(component, bConfig, bState);\n });\n };\n\n var loadEvent = function loadEvent(bConfig, bState, f) {\n return runOnInit(function (component, _simulatedEvent) {\n f(component, bConfig, bState);\n });\n };\n\n var create$8 = function create$8(schema, name, active, apis, extra, state) {\n var configSchema = objOfOnly(schema);\n var schemaSchema = optionObjOf(name, [optionObjOfOnly('config', schema)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n\n var createModes$1 = function createModes$1(modes, name, active, apis, extra, state) {\n var configSchema = modes;\n var schemaSchema = optionObjOf(name, [optionOf('config', modes)]);\n return doCreate(configSchema, schemaSchema, name, active, apis, extra, state);\n };\n\n var wrapApi = function wrapApi(bName, apiFunction, apiName) {\n var f = function f(component) {\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var args = [component].concat(rest);\n return component.config({\n name: constant$1(bName)\n }).fold(function () {\n throw new Error('We could not find any behaviour configuration for: ' + bName + '. Using API: ' + apiName);\n }, function (info) {\n var rest = Array.prototype.slice.call(args, 1);\n return apiFunction.apply(undefined, [component, info.config, info.state].concat(rest));\n });\n };\n\n return markAsBehaviourApi(f, apiName, apiFunction);\n };\n\n var revokeBehaviour = function revokeBehaviour(name) {\n return {\n key: name,\n value: undefined\n };\n };\n\n var doCreate = function doCreate(configSchema, schemaSchema, name, active, apis, extra, state) {\n var getConfig = function getConfig(info) {\n return hasNonNullableKey(info, name) ? info[name]() : Optional.none();\n };\n\n var wrappedApis = map$1(apis, function (apiF, apiName) {\n return wrapApi(name, apiF, apiName);\n });\n var wrappedExtra = map$1(extra, function (extraF, extraName) {\n return markAsExtraApi(extraF, extraName);\n });\n\n var me = _assign(_assign(_assign({}, wrappedExtra), wrappedApis), {\n revoke: curry(revokeBehaviour, name),\n config: function config(spec) {\n var prepared = asRawOrDie$1(name + '-config', configSchema, spec);\n return {\n key: name,\n value: {\n config: prepared,\n me: me,\n configAsRaw: cached(function () {\n return asRawOrDie$1(name + '-config', configSchema, spec);\n }),\n initialConfig: spec,\n state: state\n }\n };\n },\n schema: constant$1(schemaSchema),\n exhibit: function exhibit(info, base) {\n return lift2(getConfig(info), get$e(active, 'exhibit'), function (behaviourInfo, exhibitor) {\n return exhibitor(base, behaviourInfo.config, behaviourInfo.state);\n }).getOrThunk(function () {\n return nu$7({});\n });\n },\n name: constant$1(name),\n handlers: function handlers(info) {\n return getConfig(info).map(function (behaviourInfo) {\n var getEvents = get$e(active, 'events').getOr(function () {\n return {};\n });\n return getEvents(behaviourInfo.config, behaviourInfo.state);\n }).getOr({});\n }\n });\n\n return me;\n };\n\n var derive$1 = function derive$1(capabilities) {\n return wrapAll(capabilities);\n };\n\n var simpleSchema = objOfOnly([required$1('fields'), required$1('name'), defaulted('active', {}), defaulted('apis', {}), defaulted('state', NoState), defaulted('extra', {})]);\n\n var create$7 = function create$7(data) {\n var value = asRawOrDie$1('Creating behaviour: ' + data.name, simpleSchema, data);\n return create$8(value.fields, value.name, value.active, value.apis, value.extra, value.state);\n };\n\n var modeSchema = objOfOnly([required$1('branchKey'), required$1('branches'), required$1('name'), defaulted('active', {}), defaulted('apis', {}), defaulted('state', NoState), defaulted('extra', {})]);\n\n var createModes = function createModes(data) {\n var value = asRawOrDie$1('Creating behaviour: ' + data.name, modeSchema, data);\n return createModes$1(choose$1(value.branchKey, value.branches), value.name, value.active, value.apis, value.extra, value.state);\n };\n\n var revoke = constant$1(undefined);\n var Receiving = create$7({\n fields: ReceivingSchema,\n name: 'receiving',\n active: ActiveReceiving\n });\n\n var exhibit$6 = function exhibit$6(base, posConfig) {\n return nu$7({\n classes: [],\n styles: posConfig.useFixed() ? {} : {\n position: 'relative'\n }\n });\n };\n\n var ActivePosition = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$6\n });\n\n var getDocument = function getDocument() {\n return SugarElement.fromDom(document);\n };\n\n var focus$3 = function focus$3(element) {\n return element.dom.focus();\n };\n\n var blur$1 = function blur$1(element) {\n return element.dom.blur();\n };\n\n var hasFocus = function hasFocus(element) {\n var root = getRootNode(element).dom;\n return element.dom === root.activeElement;\n };\n\n var active = function active(root) {\n if (root === void 0) {\n root = getDocument();\n }\n\n return Optional.from(root.dom.activeElement).map(SugarElement.fromDom);\n };\n\n var search = function search(element) {\n return active(getRootNode(element)).filter(function (e) {\n return element.dom.contains(e.dom);\n });\n };\n\n var preserve$1 = function preserve$1(f, container) {\n var dos = getRootNode(container);\n var refocus = active(dos).bind(function (focused) {\n var hasFocus = function hasFocus(elem) {\n return eq(focused, elem);\n };\n\n return hasFocus(container) ? Optional.some(container) : descendant$1(container, hasFocus);\n });\n var result = f(container);\n refocus.each(function (oldFocus) {\n active(dos).filter(function (newFocus) {\n return eq(newFocus, oldFocus);\n }).fold(function () {\n focus$3(oldFocus);\n }, noop);\n });\n return result;\n };\n\n var NuPositionCss = function NuPositionCss(position, left, top, right, bottom) {\n var toPx = function toPx(num) {\n return num + 'px';\n };\n\n return {\n position: position,\n left: left.map(toPx),\n top: top.map(toPx),\n right: right.map(toPx),\n bottom: bottom.map(toPx)\n };\n };\n\n var toOptions = function toOptions(position) {\n return _assign(_assign({}, position), {\n position: Optional.some(position.position)\n });\n };\n\n var applyPositionCss = function applyPositionCss(element, position) {\n setOptions(element, toOptions(position));\n };\n\n var adt$9 = Adt.generate([{\n none: []\n }, {\n relative: ['x', 'y', 'width', 'height']\n }, {\n fixed: ['x', 'y', 'width', 'height']\n }]);\n\n var positionWithDirection = function positionWithDirection(posName, decision, x, y, width, height) {\n var decisionRect = decision.rect;\n var decisionX = decisionRect.x - x;\n var decisionY = decisionRect.y - y;\n var decisionWidth = decisionRect.width;\n var decisionHeight = decisionRect.height;\n var decisionRight = width - (decisionX + decisionWidth);\n var decisionBottom = height - (decisionY + decisionHeight);\n var left = Optional.some(decisionX);\n var top = Optional.some(decisionY);\n var right = Optional.some(decisionRight);\n var bottom = Optional.some(decisionBottom);\n var none = Optional.none();\n return cata$2(decision.direction, function () {\n return NuPositionCss(posName, left, top, none, none);\n }, function () {\n return NuPositionCss(posName, none, top, right, none);\n }, function () {\n return NuPositionCss(posName, left, none, none, bottom);\n }, function () {\n return NuPositionCss(posName, none, none, right, bottom);\n }, function () {\n return NuPositionCss(posName, left, top, none, none);\n }, function () {\n return NuPositionCss(posName, left, none, none, bottom);\n }, function () {\n return NuPositionCss(posName, left, top, none, none);\n }, function () {\n return NuPositionCss(posName, none, top, right, none);\n });\n };\n\n var reposition = function reposition(origin, decision) {\n return origin.fold(function () {\n var decisionRect = decision.rect;\n return NuPositionCss('absolute', Optional.some(decisionRect.x), Optional.some(decisionRect.y), Optional.none(), Optional.none());\n }, function (x, y, width, height) {\n return positionWithDirection('absolute', decision, x, y, width, height);\n }, function (x, y, width, height) {\n return positionWithDirection('fixed', decision, x, y, width, height);\n });\n };\n\n var toBox = function toBox(origin, element) {\n var rel = curry(find$2, element);\n var position = origin.fold(rel, rel, function () {\n var scroll = get$9();\n return find$2(element).translate(-scroll.left, -scroll.top);\n });\n var width = getOuter$1(element);\n var height = getOuter$2(element);\n return bounds(position.left, position.top, width, height);\n };\n\n var viewport = function viewport(origin, getBounds) {\n return getBounds.fold(function () {\n return origin.fold(win, win, bounds);\n }, function (b) {\n return origin.fold(b, b, function () {\n var bounds$1 = b();\n var pos = translate$2(origin, bounds$1.x, bounds$1.y);\n return bounds(pos.left, pos.top, bounds$1.width, bounds$1.height);\n });\n });\n };\n\n var translate$2 = function translate$2(origin, x, y) {\n var pos = SugarPosition(x, y);\n\n var removeScroll = function removeScroll() {\n var outerScroll = get$9();\n return pos.translate(-outerScroll.left, -outerScroll.top);\n };\n\n return origin.fold(constant$1(pos), constant$1(pos), removeScroll);\n };\n\n var cata$1 = function cata$1(subject, onNone, onRelative, onFixed) {\n return subject.fold(onNone, onRelative, onFixed);\n };\n\n adt$9.none;\n var relative$1 = adt$9.relative;\n var fixed$1 = adt$9.fixed;\n\n var anchor = function anchor(anchorBox, origin) {\n return {\n anchorBox: anchorBox,\n origin: origin\n };\n };\n\n var box = function box(anchorBox, origin) {\n return anchor(anchorBox, origin);\n };\n\n var placementAttribute = 'data-alloy-placement';\n\n var setPlacement$1 = function setPlacement$1(element, placement) {\n set$8(element, placementAttribute, placement);\n };\n\n var getPlacement = function getPlacement(element) {\n return getOpt(element, placementAttribute);\n };\n\n var reset$2 = function reset$2(element) {\n return remove$7(element, placementAttribute);\n };\n\n var adt$8 = Adt.generate([{\n fit: ['reposition']\n }, {\n nofit: ['reposition', 'visibleW', 'visibleH', 'isVisible']\n }]);\n\n var determinePosition = function determinePosition(box, bounds) {\n var boundsX = bounds.x,\n boundsY = bounds.y,\n boundsRight = bounds.right,\n boundsBottom = bounds.bottom;\n var x = box.x,\n y = box.y,\n right = box.right,\n bottom = box.bottom,\n width = box.width,\n height = box.height;\n var xInBounds = x >= boundsX && x <= boundsRight;\n var yInBounds = y >= boundsY && y <= boundsBottom;\n var originInBounds = xInBounds && yInBounds;\n var rightInBounds = right <= boundsRight && right >= boundsX;\n var bottomInBounds = bottom <= boundsBottom && bottom >= boundsY;\n var sizeInBounds = rightInBounds && bottomInBounds;\n var visibleW = Math.min(width, x >= boundsX ? boundsRight - x : right - boundsX);\n var visibleH = Math.min(height, y >= boundsY ? boundsBottom - y : bottom - boundsY);\n return {\n originInBounds: originInBounds,\n sizeInBounds: sizeInBounds,\n visibleW: visibleW,\n visibleH: visibleH\n };\n };\n\n var calcReposition = function calcReposition(box, bounds$1) {\n var boundsX = bounds$1.x,\n boundsY = bounds$1.y,\n boundsRight = bounds$1.right,\n boundsBottom = bounds$1.bottom;\n var x = box.x,\n y = box.y,\n width = box.width,\n height = box.height;\n var maxX = Math.max(boundsX, boundsRight - width);\n var maxY = Math.max(boundsY, boundsBottom - height);\n var restrictedX = clamp$1(x, boundsX, maxX);\n var restrictedY = clamp$1(y, boundsY, maxY);\n var restrictedWidth = Math.min(restrictedX + width, boundsRight) - restrictedX;\n var restrictedHeight = Math.min(restrictedY + height, boundsBottom) - restrictedY;\n return bounds(restrictedX, restrictedY, restrictedWidth, restrictedHeight);\n };\n\n var calcMaxSizes = function calcMaxSizes(direction, box, bounds) {\n var upAvailable = constant$1(box.bottom - bounds.y);\n var downAvailable = constant$1(bounds.bottom - box.y);\n var maxHeight = cataVertical(direction, downAvailable, downAvailable, upAvailable);\n var westAvailable = constant$1(box.right - bounds.x);\n var eastAvailable = constant$1(bounds.right - box.x);\n var maxWidth = cataHorizontal(direction, eastAvailable, eastAvailable, westAvailable);\n return {\n maxWidth: maxWidth,\n maxHeight: maxHeight\n };\n };\n\n var attempt = function attempt(candidate, width, height, bounds$1) {\n var bubble = candidate.bubble;\n var bubbleOffset = bubble.offset;\n var adjustedBounds = adjustBounds(bounds$1, candidate.restriction, bubbleOffset);\n var newX = candidate.x + bubbleOffset.left;\n var newY = candidate.y + bubbleOffset.top;\n var box = bounds(newX, newY, width, height);\n\n var _a = determinePosition(box, adjustedBounds),\n originInBounds = _a.originInBounds,\n sizeInBounds = _a.sizeInBounds,\n visibleW = _a.visibleW,\n visibleH = _a.visibleH;\n\n var fits = originInBounds && sizeInBounds;\n var fittedBox = fits ? box : calcReposition(box, adjustedBounds);\n var isPartlyVisible = fittedBox.width > 0 && fittedBox.height > 0;\n\n var _b = calcMaxSizes(candidate.direction, fittedBox, bounds$1),\n maxWidth = _b.maxWidth,\n maxHeight = _b.maxHeight;\n\n var reposition = {\n rect: fittedBox,\n maxHeight: maxHeight,\n maxWidth: maxWidth,\n direction: candidate.direction,\n placement: candidate.placement,\n classes: {\n on: bubble.classesOn,\n off: bubble.classesOff\n },\n layout: candidate.label,\n testY: newY\n };\n return fits || candidate.alwaysFit ? adt$8.fit(reposition) : adt$8.nofit(reposition, visibleW, visibleH, isPartlyVisible);\n };\n\n var attempts = function attempts(element, candidates, anchorBox, elementBox, bubbles, bounds) {\n var panelWidth = elementBox.width;\n var panelHeight = elementBox.height;\n\n var attemptBestFit = function attemptBestFit(layout, reposition, visibleW, visibleH, isVisible) {\n var next = layout(anchorBox, elementBox, bubbles, element, bounds);\n var attemptLayout = attempt(next, panelWidth, panelHeight, bounds);\n return attemptLayout.fold(constant$1(attemptLayout), function (newReposition, newVisibleW, newVisibleH, newIsVisible) {\n var improved = isVisible === newIsVisible ? newVisibleH > visibleH || newVisibleW > visibleW : !isVisible && newIsVisible;\n return improved ? attemptLayout : adt$8.nofit(reposition, visibleW, visibleH, isVisible);\n });\n };\n\n var abc = foldl(candidates, function (b, a) {\n var bestNext = curry(attemptBestFit, a);\n return b.fold(constant$1(b), bestNext);\n }, adt$8.nofit({\n rect: anchorBox,\n maxHeight: elementBox.height,\n maxWidth: elementBox.width,\n direction: southeast$3(),\n placement: 'southeast',\n classes: {\n on: [],\n off: []\n },\n layout: 'none',\n testY: anchorBox.y\n }, -1, -1, false));\n return abc.fold(identity$1, identity$1);\n };\n\n var singleton = function singleton(doRevoke) {\n var subject = Cell(Optional.none());\n\n var revoke = function revoke() {\n return subject.get().each(doRevoke);\n };\n\n var clear = function clear() {\n revoke();\n subject.set(Optional.none());\n };\n\n var isSet = function isSet() {\n return subject.get().isSome();\n };\n\n var get = function get() {\n return subject.get();\n };\n\n var set = function set(s) {\n revoke();\n subject.set(Optional.some(s));\n };\n\n return {\n clear: clear,\n isSet: isSet,\n get: get,\n set: set\n };\n };\n\n var destroyable = function destroyable() {\n return singleton(function (s) {\n return s.destroy();\n });\n };\n\n var unbindable = function unbindable() {\n return singleton(function (s) {\n return s.unbind();\n });\n };\n\n var api$1 = function api$1() {\n var subject = destroyable();\n\n var run = function run(f) {\n return subject.get().each(f);\n };\n\n return _assign(_assign({}, subject), {\n run: run\n });\n };\n\n var value$1 = function value$1() {\n var subject = singleton(noop);\n\n var on = function on(f) {\n return subject.get().each(f);\n };\n\n return _assign(_assign({}, subject), {\n on: on\n });\n };\n\n var filter = always;\n\n var bind = function bind(element, event, handler) {\n return bind$2(element, event, filter, handler);\n };\n\n var capture = function capture(element, event, handler) {\n return capture$1(element, event, filter, handler);\n };\n\n var fromRawEvent = fromRawEvent$1;\n var properties = ['top', 'bottom', 'right', 'left'];\n var timerAttr = 'data-alloy-transition-timer';\n\n var isTransitioning$1 = function isTransitioning$1(element, transition) {\n return hasAll(element, transition.classes);\n };\n\n var shouldApplyTransitionCss = function shouldApplyTransitionCss(transition, decision, lastPlacement) {\n return lastPlacement.exists(function (placer) {\n var mode = transition.mode;\n return mode === 'all' ? true : placer[mode] !== decision[mode];\n });\n };\n\n var hasChanges = function hasChanges(position, intermediate) {\n var round = function round(value) {\n return parseFloat(value).toFixed(3);\n };\n\n return find$4(intermediate, function (value, key) {\n var newValue = position[key].map(round);\n var val = value.map(round);\n return !equals(newValue, val);\n }).isSome();\n };\n\n var getTransitionDuration = function getTransitionDuration(element) {\n var get = function get(name) {\n var style = get$c(element, name);\n var times = isString(style) ? style.split(/\\s*,\\s*/) : [];\n return filter$2(times, isNotEmpty);\n };\n\n var parse = function parse(value) {\n if (isString(value) && /^[\\d.]+/.test(value)) {\n var num = parseFloat(value);\n return endsWith(value, 'ms') ? num : num * 1000;\n } else {\n return 0;\n }\n };\n\n var delay = get('transition-delay');\n var duration = get('transition-duration');\n return foldl(duration, function (acc, dur, i) {\n var time = parse(delay[i]) + parse(dur);\n return Math.max(acc, time);\n }, 0);\n };\n\n var setupTransitionListeners = function setupTransitionListeners(element, transition) {\n var transitionEnd = unbindable();\n var transitionCancel = unbindable();\n var timer;\n\n var isSourceTransition = function isSourceTransition(e) {\n var _a;\n\n var pseudoElement = (_a = e.raw.pseudoElement) !== null && _a !== void 0 ? _a : '';\n return eq(e.target, element) && isEmpty(pseudoElement) && contains$2(properties, e.raw.propertyName);\n };\n\n var transitionDone = function transitionDone(e) {\n if (isNullable(e) || isSourceTransition(e)) {\n transitionEnd.clear();\n transitionCancel.clear();\n var type = e === null || e === void 0 ? void 0 : e.raw.type;\n\n if (isNullable(type) || type === transitionend()) {\n clearTimeout(timer);\n remove$7(element, timerAttr);\n remove$1(element, transition.classes);\n }\n }\n };\n\n var transitionStarted = function transitionStarted() {\n transitionEnd.set(bind(element, transitionend(), transitionDone));\n transitionCancel.set(bind(element, transitioncancel(), transitionDone));\n };\n\n if ('ontransitionstart' in element.dom) {\n var transitionStart_1 = bind(element, transitionstart(), function (e) {\n if (isSourceTransition(e)) {\n transitionStart_1.unbind();\n transitionStarted();\n }\n });\n } else {\n transitionStarted();\n }\n\n var duration = getTransitionDuration(element);\n requestAnimationFrame(function () {\n timer = setTimeout(transitionDone, duration + 17);\n set$8(element, timerAttr, timer);\n });\n };\n\n var startTransitioning = function startTransitioning(element, transition) {\n add$1(element, transition.classes);\n getOpt(element, timerAttr).each(function (timerId) {\n clearTimeout(parseInt(timerId, 10));\n remove$7(element, timerAttr);\n });\n setupTransitionListeners(element, transition);\n };\n\n var applyTransitionCss = function applyTransitionCss(element, origin, position, transition, decision, lastPlacement) {\n var shouldTransition = shouldApplyTransitionCss(transition, decision, lastPlacement);\n\n if (shouldTransition || isTransitioning$1(element, transition)) {\n set$7(element, 'position', position.position);\n var rect = toBox(origin, element);\n var intermediatePosition_1 = reposition(origin, _assign(_assign({}, decision), {\n rect: rect\n }));\n var intermediateCssOptions = mapToObject(properties, function (prop) {\n return intermediatePosition_1[prop];\n });\n\n if (hasChanges(position, intermediateCssOptions)) {\n setOptions(element, intermediateCssOptions);\n\n if (shouldTransition) {\n startTransitioning(element, transition);\n }\n\n reflow(element);\n }\n } else {\n remove$1(element, transition.classes);\n }\n };\n\n var elementSize = function elementSize(p) {\n return {\n width: getOuter$1(p),\n height: getOuter$2(p)\n };\n };\n\n var layout = function layout(anchorBox, element, bubbles, options) {\n remove$6(element, 'max-height');\n remove$6(element, 'max-width');\n var elementBox = elementSize(element);\n return attempts(element, options.preference, anchorBox, elementBox, bubbles, options.bounds);\n };\n\n var setClasses = function setClasses(element, decision) {\n var classInfo = decision.classes;\n remove$1(element, classInfo.off);\n add$1(element, classInfo.on);\n };\n\n var setHeight = function setHeight(element, decision, options) {\n var maxHeightFunction = options.maxHeightFunction;\n maxHeightFunction(element, decision.maxHeight);\n };\n\n var setWidth = function setWidth(element, decision, options) {\n var maxWidthFunction = options.maxWidthFunction;\n maxWidthFunction(element, decision.maxWidth);\n };\n\n var position$2 = function position$2(element, decision, options) {\n var positionCss = reposition(options.origin, decision);\n options.transition.each(function (transition) {\n applyTransitionCss(element, options.origin, positionCss, transition, decision, options.lastPlacement);\n });\n applyPositionCss(element, positionCss);\n };\n\n var setPlacement = function setPlacement(element, decision) {\n setPlacement$1(element, decision.placement);\n };\n\n var setMaxHeight = function setMaxHeight(element, maxHeight) {\n setMax$1(element, Math.floor(maxHeight));\n };\n\n var anchored = constant$1(function (element, available) {\n setMaxHeight(element, available);\n setAll(element, {\n 'overflow-x': 'hidden',\n 'overflow-y': 'auto'\n });\n });\n var expandable$1 = constant$1(function (element, available) {\n setMaxHeight(element, available);\n });\n\n var defaultOr = function defaultOr(options, key, dephault) {\n return options[key] === undefined ? dephault : options[key];\n };\n\n var simple = function simple(anchor, element, bubble, layouts, lastPlacement, getBounds, overrideOptions, transition) {\n var maxHeightFunction = defaultOr(overrideOptions, 'maxHeightFunction', anchored());\n var maxWidthFunction = defaultOr(overrideOptions, 'maxWidthFunction', noop);\n var anchorBox = anchor.anchorBox;\n var origin = anchor.origin;\n var options = {\n bounds: viewport(origin, getBounds),\n origin: origin,\n preference: layouts,\n maxHeightFunction: maxHeightFunction,\n maxWidthFunction: maxWidthFunction,\n lastPlacement: lastPlacement,\n transition: transition\n };\n return go(anchorBox, element, bubble, options);\n };\n\n var go = function go(anchorBox, element, bubble, options) {\n var decision = layout(anchorBox, element, bubble, options);\n position$2(element, decision, options);\n setPlacement(element, decision);\n setClasses(element, decision);\n setHeight(element, decision, options);\n setWidth(element, decision, options);\n return {\n layout: decision.layout,\n placement: decision.placement\n };\n };\n\n var allAlignments = ['valignCentre', 'alignLeft', 'alignRight', 'alignCentre', 'top', 'bottom', 'left', 'right', 'inset'];\n\n var nu$5 = function nu$5(xOffset, yOffset, classes, insetModifier) {\n if (insetModifier === void 0) {\n insetModifier = 1;\n }\n\n var insetXOffset = xOffset * insetModifier;\n var insetYOffset = yOffset * insetModifier;\n\n var getClasses = function getClasses(prop) {\n return get$e(classes, prop).getOr([]);\n };\n\n var make = function make(xDelta, yDelta, alignmentsOn) {\n var alignmentsOff = difference(allAlignments, alignmentsOn);\n return {\n offset: SugarPosition(xDelta, yDelta),\n classesOn: bind$3(alignmentsOn, getClasses),\n classesOff: bind$3(alignmentsOff, getClasses)\n };\n };\n\n return {\n southeast: function southeast() {\n return make(-xOffset, yOffset, ['top', 'alignLeft']);\n },\n southwest: function southwest() {\n return make(xOffset, yOffset, ['top', 'alignRight']);\n },\n south: function south() {\n return make(-xOffset / 2, yOffset, ['top', 'alignCentre']);\n },\n northeast: function northeast() {\n return make(-xOffset, -yOffset, ['bottom', 'alignLeft']);\n },\n northwest: function northwest() {\n return make(xOffset, -yOffset, ['bottom', 'alignRight']);\n },\n north: function north() {\n return make(-xOffset / 2, -yOffset, ['bottom', 'alignCentre']);\n },\n east: function east() {\n return make(xOffset, -yOffset / 2, ['valignCentre', 'left']);\n },\n west: function west() {\n return make(-xOffset, -yOffset / 2, ['valignCentre', 'right']);\n },\n insetNortheast: function insetNortheast() {\n return make(insetXOffset, insetYOffset, ['top', 'alignLeft', 'inset']);\n },\n insetNorthwest: function insetNorthwest() {\n return make(-insetXOffset, insetYOffset, ['top', 'alignRight', 'inset']);\n },\n insetNorth: function insetNorth() {\n return make(-insetXOffset / 2, insetYOffset, ['top', 'alignCentre', 'inset']);\n },\n insetSoutheast: function insetSoutheast() {\n return make(insetXOffset, -insetYOffset, ['bottom', 'alignLeft', 'inset']);\n },\n insetSouthwest: function insetSouthwest() {\n return make(-insetXOffset, -insetYOffset, ['bottom', 'alignRight', 'inset']);\n },\n insetSouth: function insetSouth() {\n return make(-insetXOffset / 2, -insetYOffset, ['bottom', 'alignCentre', 'inset']);\n },\n insetEast: function insetEast() {\n return make(-insetXOffset, -insetYOffset / 2, ['valignCentre', 'right', 'inset']);\n },\n insetWest: function insetWest() {\n return make(insetXOffset, -insetYOffset / 2, ['valignCentre', 'left', 'inset']);\n }\n };\n };\n\n var fallback = function fallback() {\n return nu$5(0, 0, {});\n };\n\n var nu$4 = identity$1;\n\n var onDirection = function onDirection(isLtr, isRtl) {\n return function (element) {\n return getDirection(element) === 'rtl' ? isRtl : isLtr;\n };\n };\n\n var getDirection = function getDirection(element) {\n return get$c(element, 'direction') === 'rtl' ? 'rtl' : 'ltr';\n };\n\n var AttributeValue;\n\n (function (AttributeValue) {\n AttributeValue['TopToBottom'] = 'toptobottom';\n AttributeValue['BottomToTop'] = 'bottomtotop';\n })(AttributeValue || (AttributeValue = {}));\n\n var Attribute = 'data-alloy-vertical-dir';\n\n var isBottomToTopDir = function isBottomToTopDir(el) {\n return closest$2(el, function (current) {\n return isElement$2(current) && get$d(current, 'data-alloy-vertical-dir') === AttributeValue.BottomToTop;\n });\n };\n\n var schema$y = function schema$y() {\n return optionObjOf('layouts', [required$1('onLtr'), required$1('onRtl'), option('onBottomLtr'), option('onBottomRtl')]);\n };\n\n var get$4 = function get$4(elem, info, defaultLtr, defaultRtl, defaultBottomLtr, defaultBottomRtl, dirElement) {\n var isBottomToTop = dirElement.map(isBottomToTopDir).getOr(false);\n var customLtr = info.layouts.map(function (ls) {\n return ls.onLtr(elem);\n });\n var customRtl = info.layouts.map(function (ls) {\n return ls.onRtl(elem);\n });\n var ltr = isBottomToTop ? info.layouts.bind(function (ls) {\n return ls.onBottomLtr.map(function (f) {\n return f(elem);\n });\n }).or(customLtr).getOr(defaultBottomLtr) : customLtr.getOr(defaultLtr);\n var rtl = isBottomToTop ? info.layouts.bind(function (ls) {\n return ls.onBottomRtl.map(function (f) {\n return f(elem);\n });\n }).or(customRtl).getOr(defaultBottomRtl) : customRtl.getOr(defaultRtl);\n var f = onDirection(ltr, rtl);\n return f(elem);\n };\n\n var placement$4 = function placement$4(component, anchorInfo, origin) {\n var hotspot = anchorInfo.hotspot;\n var anchorBox = toBox(origin, hotspot.element);\n var layouts = get$4(component.element, anchorInfo, belowOrAbove(), belowOrAboveRtl(), aboveOrBelow(), aboveOrBelowRtl(), Optional.some(anchorInfo.hotspot.element));\n return Optional.some(nu$4({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n\n var HotspotAnchor = [required$1('hotspot'), option('bubble'), defaulted('overrides', {}), schema$y(), output$1('placement', placement$4)];\n\n var placement$3 = function placement$3(component, anchorInfo, origin) {\n var pos = translate$2(origin, anchorInfo.x, anchorInfo.y);\n var anchorBox = bounds(pos.left, pos.top, anchorInfo.width, anchorInfo.height);\n var layouts = get$4(component.element, anchorInfo, all$1(), allRtl$1(), all$1(), allRtl$1(), Optional.none());\n return Optional.some(nu$4({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble,\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n\n var MakeshiftAnchor = [required$1('x'), required$1('y'), defaulted('height', 0), defaulted('width', 0), defaulted('bubble', fallback()), defaulted('overrides', {}), schema$y(), output$1('placement', placement$3)];\n var adt$7 = Adt.generate([{\n screen: ['point']\n }, {\n absolute: ['point', 'scrollLeft', 'scrollTop']\n }]);\n\n var toFixed = function toFixed(pos) {\n return pos.fold(identity$1, function (point, scrollLeft, scrollTop) {\n return point.translate(-scrollLeft, -scrollTop);\n });\n };\n\n var toAbsolute = function toAbsolute(pos) {\n return pos.fold(identity$1, identity$1);\n };\n\n var sum = function sum(points) {\n return foldl(points, function (b, a) {\n return b.translate(a.left, a.top);\n }, SugarPosition(0, 0));\n };\n\n var sumAsFixed = function sumAsFixed(positions) {\n var points = map$2(positions, toFixed);\n return sum(points);\n };\n\n var sumAsAbsolute = function sumAsAbsolute(positions) {\n var points = map$2(positions, toAbsolute);\n return sum(points);\n };\n\n var screen = adt$7.screen;\n var absolute$1 = adt$7.absolute;\n\n var getOffset = function getOffset(component, origin, anchorInfo) {\n var win = defaultView(anchorInfo.root).dom;\n\n var hasSameOwner = function hasSameOwner(frame) {\n var frameOwner = owner$4(frame);\n var compOwner = owner$4(component.element);\n return eq(frameOwner, compOwner);\n };\n\n return Optional.from(win.frameElement).map(SugarElement.fromDom).filter(hasSameOwner).map(absolute$3);\n };\n\n var getRootPoint = function getRootPoint(component, origin, anchorInfo) {\n var doc = owner$4(component.element);\n var outerScroll = get$9(doc);\n var offset = getOffset(component, origin, anchorInfo).getOr(outerScroll);\n return absolute$1(offset, outerScroll.left, outerScroll.top);\n };\n\n var getBox = function getBox(left, top, width, height) {\n var point = screen(SugarPosition(left, top));\n return Optional.some(pointed(point, width, height));\n };\n\n var calcNewAnchor = function calcNewAnchor(optBox, rootPoint, anchorInfo, origin, elem) {\n return optBox.map(function (box) {\n var points = [rootPoint, box.point];\n var topLeft = cata$1(origin, function () {\n return sumAsAbsolute(points);\n }, function () {\n return sumAsAbsolute(points);\n }, function () {\n return sumAsFixed(points);\n });\n var anchorBox = rect(topLeft.left, topLeft.top, box.width, box.height);\n var layoutsLtr = anchorInfo.showAbove ? aboveOrBelow() : belowOrAbove();\n var layoutsRtl = anchorInfo.showAbove ? aboveOrBelowRtl() : belowOrAboveRtl();\n var layouts = get$4(elem, anchorInfo, layoutsLtr, layoutsRtl, layoutsLtr, layoutsRtl, Optional.none());\n return nu$4({\n anchorBox: anchorBox,\n bubble: anchorInfo.bubble.getOr(fallback()),\n overrides: anchorInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n });\n });\n };\n\n var placement$2 = function placement$2(component, anchorInfo, origin) {\n var rootPoint = getRootPoint(component, origin, anchorInfo);\n return anchorInfo.node.filter(inBody).bind(function (target) {\n var rect = target.dom.getBoundingClientRect();\n var nodeBox = getBox(rect.left, rect.top, rect.width, rect.height);\n var elem = anchorInfo.node.getOr(component.element);\n return calcNewAnchor(nodeBox, rootPoint, anchorInfo, origin, elem);\n });\n };\n\n var NodeAnchor = [required$1('node'), required$1('root'), option('bubble'), schema$y(), defaulted('overrides', {}), defaulted('showAbove', false), output$1('placement', placement$2)];\n var zeroWidth = \"\\uFEFF\";\n var nbsp = '\\xA0';\n\n var create$6 = function create$6(start, soffset, finish, foffset) {\n return {\n start: start,\n soffset: soffset,\n finish: finish,\n foffset: foffset\n };\n };\n\n var SimRange = {\n create: create$6\n };\n var adt$6 = Adt.generate([{\n before: ['element']\n }, {\n on: ['element', 'offset']\n }, {\n after: ['element']\n }]);\n\n var cata = function cata(subject, onBefore, onOn, onAfter) {\n return subject.fold(onBefore, onOn, onAfter);\n };\n\n var getStart$1 = function getStart$1(situ) {\n return situ.fold(identity$1, identity$1, identity$1);\n };\n\n var before = adt$6.before;\n var on$1 = adt$6.on;\n var after$1 = adt$6.after;\n var Situ = {\n before: before,\n on: on$1,\n after: after$1,\n cata: cata,\n getStart: getStart$1\n };\n var adt$5 = Adt.generate([{\n domRange: ['rng']\n }, {\n relative: ['startSitu', 'finishSitu']\n }, {\n exact: ['start', 'soffset', 'finish', 'foffset']\n }]);\n\n var exactFromRange = function exactFromRange(simRange) {\n return adt$5.exact(simRange.start, simRange.soffset, simRange.finish, simRange.foffset);\n };\n\n var getStart = function getStart(selection) {\n return selection.match({\n domRange: function domRange(rng) {\n return SugarElement.fromDom(rng.startContainer);\n },\n relative: function relative(startSitu, _finishSitu) {\n return Situ.getStart(startSitu);\n },\n exact: function exact(start, _soffset, _finish, _foffset) {\n return start;\n }\n });\n };\n\n var domRange = adt$5.domRange;\n var relative = adt$5.relative;\n var exact = adt$5.exact;\n\n var getWin = function getWin(selection) {\n var start = getStart(selection);\n return defaultView(start);\n };\n\n var range$1 = SimRange.create;\n var SimSelection = {\n domRange: domRange,\n relative: relative,\n exact: exact,\n exactFromRange: exactFromRange,\n getWin: getWin,\n range: range$1\n };\n\n var setStart = function setStart(rng, situ) {\n situ.fold(function (e) {\n rng.setStartBefore(e.dom);\n }, function (e, o) {\n rng.setStart(e.dom, o);\n }, function (e) {\n rng.setStartAfter(e.dom);\n });\n };\n\n var setFinish = function setFinish(rng, situ) {\n situ.fold(function (e) {\n rng.setEndBefore(e.dom);\n }, function (e, o) {\n rng.setEnd(e.dom, o);\n }, function (e) {\n rng.setEndAfter(e.dom);\n });\n };\n\n var relativeToNative = function relativeToNative(win, startSitu, finishSitu) {\n var range = win.document.createRange();\n setStart(range, startSitu);\n setFinish(range, finishSitu);\n return range;\n };\n\n var exactToNative = function exactToNative(win, start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n\n var toRect = function toRect(rect) {\n return {\n left: rect.left,\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.width,\n height: rect.height\n };\n };\n\n var getFirstRect$1 = function getFirstRect$1(rng) {\n var rects = rng.getClientRects();\n var rect = rects.length > 0 ? rects[0] : rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n var getBounds$2 = function getBounds$2(rng) {\n var rect = rng.getBoundingClientRect();\n return rect.width > 0 || rect.height > 0 ? Optional.some(rect).map(toRect) : Optional.none();\n };\n\n var adt$4 = Adt.generate([{\n ltr: ['start', 'soffset', 'finish', 'foffset']\n }, {\n rtl: ['start', 'soffset', 'finish', 'foffset']\n }]);\n\n var fromRange = function fromRange(win, type, range) {\n return type(SugarElement.fromDom(range.startContainer), range.startOffset, SugarElement.fromDom(range.endContainer), range.endOffset);\n };\n\n var getRanges = function getRanges(win, selection) {\n return selection.match({\n domRange: function domRange(rng) {\n return {\n ltr: constant$1(rng),\n rtl: Optional.none\n };\n },\n relative: function relative(startSitu, finishSitu) {\n return {\n ltr: cached(function () {\n return relativeToNative(win, startSitu, finishSitu);\n }),\n rtl: cached(function () {\n return Optional.some(relativeToNative(win, finishSitu, startSitu));\n })\n };\n },\n exact: function exact(start, soffset, finish, foffset) {\n return {\n ltr: cached(function () {\n return exactToNative(win, start, soffset, finish, foffset);\n }),\n rtl: cached(function () {\n return Optional.some(exactToNative(win, finish, foffset, start, soffset));\n })\n };\n }\n });\n };\n\n var doDiagnose = function doDiagnose(win, ranges) {\n var rng = ranges.ltr();\n\n if (rng.collapsed) {\n var reversed = ranges.rtl().filter(function (rev) {\n return rev.collapsed === false;\n });\n return reversed.map(function (rev) {\n return adt$4.rtl(SugarElement.fromDom(rev.endContainer), rev.endOffset, SugarElement.fromDom(rev.startContainer), rev.startOffset);\n }).getOrThunk(function () {\n return fromRange(win, adt$4.ltr, rng);\n });\n } else {\n return fromRange(win, adt$4.ltr, rng);\n }\n };\n\n var diagnose = function diagnose(win, selection) {\n var ranges = getRanges(win, selection);\n return doDiagnose(win, ranges);\n };\n\n var asLtrRange = function asLtrRange(win, selection) {\n var diagnosis = diagnose(win, selection);\n return diagnosis.match({\n ltr: function ltr(start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n },\n rtl: function rtl(start, soffset, finish, foffset) {\n var rng = win.document.createRange();\n rng.setStart(finish.dom, foffset);\n rng.setEnd(start.dom, soffset);\n return rng;\n }\n });\n };\n\n adt$4.ltr;\n adt$4.rtl;\n\n var NodeValue = function NodeValue(is, name) {\n var get = function get(element) {\n if (!is(element)) {\n throw new Error('Can only get ' + name + ' value of a ' + name + ' node');\n }\n\n return getOption(element).getOr('');\n };\n\n var getOption = function getOption(element) {\n return is(element) ? Optional.from(element.dom.nodeValue) : Optional.none();\n };\n\n var set = function set(element, value) {\n if (!is(element)) {\n throw new Error('Can only set raw ' + name + ' value of a ' + name + ' node');\n }\n\n element.dom.nodeValue = value;\n };\n\n return {\n get: get,\n getOption: getOption,\n set: set\n };\n };\n\n var api = NodeValue(isText$1, 'text');\n\n var get$3 = function get$3(element) {\n return api.get(element);\n };\n\n var getOption = function getOption(element) {\n return api.getOption(element);\n };\n\n var getEnd = function getEnd(element) {\n return name$2(element) === 'img' ? 1 : getOption(element).fold(function () {\n return children(element).length;\n }, function (v) {\n return v.length;\n });\n };\n\n var isTextNodeWithCursorPosition = function isTextNodeWithCursorPosition(el) {\n return getOption(el).filter(function (text) {\n return text.trim().length !== 0 || text.indexOf(nbsp) > -1;\n }).isSome();\n };\n\n var elementsWithCursorPosition = ['img', 'br'];\n\n var isCursorPosition = function isCursorPosition(elem) {\n var hasCursorPosition = isTextNodeWithCursorPosition(elem);\n return hasCursorPosition || contains$2(elementsWithCursorPosition, name$2(elem));\n };\n\n var last$1 = function last$1(element) {\n return descendantRtl(element, isCursorPosition);\n };\n\n var descendantRtl = function descendantRtl(scope, predicate) {\n var descend = function descend(element) {\n var children$1 = children(element);\n\n for (var i = children$1.length - 1; i >= 0; i--) {\n var child = children$1[i];\n\n if (predicate(child)) {\n return Optional.some(child);\n }\n\n var res = descend(child);\n\n if (res.isSome()) {\n return res;\n }\n }\n\n return Optional.none();\n };\n\n return descend(scope);\n };\n\n var descendants = function descendants(scope, selector) {\n return all$3(selector, scope);\n };\n\n var makeRange = function makeRange(start, soffset, finish, foffset) {\n var doc = owner$4(start);\n var rng = doc.dom.createRange();\n rng.setStart(start.dom, soffset);\n rng.setEnd(finish.dom, foffset);\n return rng;\n };\n\n var after = function after(start, soffset, finish, foffset) {\n var r = makeRange(start, soffset, finish, foffset);\n var same = eq(start, finish) && soffset === foffset;\n return r.collapsed && !same;\n };\n\n var getNativeSelection = function getNativeSelection(win) {\n return Optional.from(win.getSelection());\n };\n\n var readRange = function readRange(selection) {\n if (selection.rangeCount > 0) {\n var firstRng = selection.getRangeAt(0);\n var lastRng = selection.getRangeAt(selection.rangeCount - 1);\n return Optional.some(SimRange.create(SugarElement.fromDom(firstRng.startContainer), firstRng.startOffset, SugarElement.fromDom(lastRng.endContainer), lastRng.endOffset));\n } else {\n return Optional.none();\n }\n };\n\n var doGetExact = function doGetExact(selection) {\n if (selection.anchorNode === null || selection.focusNode === null) {\n return readRange(selection);\n } else {\n var anchor = SugarElement.fromDom(selection.anchorNode);\n var focus_1 = SugarElement.fromDom(selection.focusNode);\n return after(anchor, selection.anchorOffset, focus_1, selection.focusOffset) ? Optional.some(SimRange.create(anchor, selection.anchorOffset, focus_1, selection.focusOffset)) : readRange(selection);\n }\n };\n\n var getExact = function getExact(win) {\n return getNativeSelection(win).filter(function (sel) {\n return sel.rangeCount > 0;\n }).bind(doGetExact);\n };\n\n var getFirstRect = function getFirstRect(win, selection) {\n var rng = asLtrRange(win, selection);\n return getFirstRect$1(rng);\n };\n\n var getBounds$1 = function getBounds$1(win, selection) {\n var rng = asLtrRange(win, selection);\n return getBounds$2(rng);\n };\n\n var point$1 = function point$1(element, offset) {\n return {\n element: element,\n offset: offset\n };\n };\n\n var descendOnce$1 = function descendOnce$1(element, offset) {\n var children$1 = children(element);\n\n if (children$1.length === 0) {\n return point$1(element, offset);\n } else if (offset < children$1.length) {\n return point$1(children$1[offset], 0);\n } else {\n var last = children$1[children$1.length - 1];\n var len = isText$1(last) ? get$3(last).length : children(last).length;\n return point$1(last, len);\n }\n };\n\n var descendOnce = function descendOnce(element, offset) {\n return isText$1(element) ? point$1(element, offset) : descendOnce$1(element, offset);\n };\n\n var getAnchorSelection = function getAnchorSelection(win, anchorInfo) {\n var getSelection = anchorInfo.getSelection.getOrThunk(function () {\n return function () {\n return getExact(win);\n };\n });\n return getSelection().map(function (sel) {\n var modStart = descendOnce(sel.start, sel.soffset);\n var modFinish = descendOnce(sel.finish, sel.foffset);\n return SimSelection.range(modStart.element, modStart.offset, modFinish.element, modFinish.offset);\n });\n };\n\n var placement$1 = function placement$1(component, anchorInfo, origin) {\n var win = defaultView(anchorInfo.root).dom;\n var rootPoint = getRootPoint(component, origin, anchorInfo);\n var selectionBox = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n var optRect = getBounds$1(win, SimSelection.exactFromRange(sel)).orThunk(function () {\n var x = SugarElement.fromText(zeroWidth);\n before$2(sel.start, x);\n var rect = getFirstRect(win, SimSelection.exact(x, 0, x, 1));\n remove$5(x);\n return rect;\n });\n return optRect.bind(function (rawRect) {\n return getBox(rawRect.left, rawRect.top, rawRect.width, rawRect.height);\n });\n });\n var targetElement = getAnchorSelection(win, anchorInfo).bind(function (sel) {\n return isElement$2(sel.start) ? Optional.some(sel.start) : parentNode(sel.start);\n });\n var elem = targetElement.getOr(component.element);\n return calcNewAnchor(selectionBox, rootPoint, anchorInfo, origin, elem);\n };\n\n var SelectionAnchor = [option('getSelection'), required$1('root'), option('bubble'), schema$y(), defaulted('overrides', {}), defaulted('showAbove', false), output$1('placement', placement$1)];\n var labelPrefix$1 = 'link-layout';\n\n var eastX = function eastX(anchor) {\n return anchor.x + anchor.width;\n };\n\n var westX = function westX(anchor, element) {\n return anchor.x - element.width;\n };\n\n var northY$1 = function northY$1(anchor, element) {\n return anchor.y - element.height + anchor.height;\n };\n\n var southY$1 = function southY$1(anchor) {\n return anchor.y;\n };\n\n var southeast$1 = function southeast$1(anchor, element, bubbles) {\n return nu$6(eastX(anchor), southY$1(anchor), bubbles.southeast(), southeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 0,\n top: 2\n }), labelPrefix$1);\n };\n\n var southwest$1 = function southwest$1(anchor, element, bubbles) {\n return nu$6(westX(anchor, element), southY$1(anchor), bubbles.southwest(), southwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 1,\n top: 2\n }), labelPrefix$1);\n };\n\n var northeast$1 = function northeast$1(anchor, element, bubbles) {\n return nu$6(eastX(anchor), northY$1(anchor, element), bubbles.northeast(), northeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 0,\n bottom: 3\n }), labelPrefix$1);\n };\n\n var northwest$1 = function northwest$1(anchor, element, bubbles) {\n return nu$6(westX(anchor, element), northY$1(anchor, element), bubbles.northwest(), northwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 1,\n bottom: 3\n }), labelPrefix$1);\n };\n\n var all = function all() {\n return [southeast$1, southwest$1, northeast$1, northwest$1];\n };\n\n var allRtl = function allRtl() {\n return [southwest$1, southeast$1, northwest$1, northeast$1];\n };\n\n var placement = function placement(component, submenuInfo, origin) {\n var anchorBox = toBox(origin, submenuInfo.item.element);\n var layouts = get$4(component.element, submenuInfo, all(), allRtl(), all(), allRtl(), Optional.none());\n return Optional.some(nu$4({\n anchorBox: anchorBox,\n bubble: fallback(),\n overrides: submenuInfo.overrides,\n layouts: layouts,\n placer: Optional.none()\n }));\n };\n\n var SubmenuAnchor = [required$1('item'), schema$y(), defaulted('overrides', {}), output$1('placement', placement)];\n var AnchorSchema = choose$1('type', {\n selection: SelectionAnchor,\n node: NodeAnchor,\n hotspot: HotspotAnchor,\n submenu: SubmenuAnchor,\n makeshift: MakeshiftAnchor\n });\n var TransitionSchema = [requiredArrayOf('classes', string), defaultedStringEnum('mode', 'all', ['all', 'layout', 'placement'])];\n var PositionSchema = [defaulted('useFixed', never), option('getBounds')];\n var PlacementSchema = [requiredOf('anchor', AnchorSchema), optionObjOf('transition', TransitionSchema)];\n\n var getFixedOrigin = function getFixedOrigin() {\n var html = document.documentElement;\n return fixed$1(0, 0, html.clientWidth, html.clientHeight);\n };\n\n var getRelativeOrigin = function getRelativeOrigin(component) {\n var position = absolute$3(component.element);\n var bounds = component.element.dom.getBoundingClientRect();\n return relative$1(position.left, position.top, bounds.width, bounds.height);\n };\n\n var place = function place(component, origin, anchoring, getBounds, placee, lastPlace, transition) {\n var anchor = box(anchoring.anchorBox, origin);\n return simple(anchor, placee.element, anchoring.bubble, anchoring.layouts, lastPlace, getBounds, anchoring.overrides, transition);\n };\n\n var position$1 = function position$1(component, posConfig, posState, placee, placementSpec) {\n positionWithin(component, posConfig, posState, placee, placementSpec, Optional.none());\n };\n\n var positionWithin = function positionWithin(component, posConfig, posState, placee, placementSpec, boxElement) {\n var boundsBox = boxElement.map(box$1);\n return positionWithinBounds(component, posConfig, posState, placee, placementSpec, boundsBox);\n };\n\n var positionWithinBounds = function positionWithinBounds(component, posConfig, posState, placee, placementSpec, bounds) {\n var placeeDetail = asRawOrDie$1('placement.info', objOf(PlacementSchema), placementSpec);\n var anchorage = placeeDetail.anchor;\n var element = placee.element;\n var placeeState = posState.get(placee.uid);\n preserve$1(function () {\n set$7(element, 'position', 'fixed');\n var oldVisibility = getRaw(element, 'visibility');\n set$7(element, 'visibility', 'hidden');\n var origin = posConfig.useFixed() ? getFixedOrigin() : getRelativeOrigin(component);\n var placer = anchorage.placement;\n var getBounds = bounds.map(constant$1).or(posConfig.getBounds);\n placer(component, anchorage, origin).each(function (anchoring) {\n var doPlace = anchoring.placer.getOr(place);\n var newState = doPlace(component, origin, anchoring, getBounds, placee, placeeState, placeeDetail.transition);\n posState.set(placee.uid, newState);\n });\n oldVisibility.fold(function () {\n remove$6(element, 'visibility');\n }, function (vis) {\n set$7(element, 'visibility', vis);\n });\n\n if (getRaw(element, 'left').isNone() && getRaw(element, 'top').isNone() && getRaw(element, 'right').isNone() && getRaw(element, 'bottom').isNone() && is$1(getRaw(element, 'position'), 'fixed')) {\n remove$6(element, 'position');\n }\n }, element);\n };\n\n var getMode = function getMode(component, pConfig, _pState) {\n return pConfig.useFixed() ? 'fixed' : 'absolute';\n };\n\n var reset$1 = function reset$1(component, pConfig, posState, placee) {\n var element = placee.element;\n each$1(['position', 'left', 'right', 'top', 'bottom'], function (prop) {\n return remove$6(element, prop);\n });\n reset$2(element);\n posState.clear(placee.uid);\n };\n\n var PositionApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n position: position$1,\n positionWithin: positionWithin,\n positionWithinBounds: positionWithinBounds,\n getMode: getMode,\n reset: reset$1\n });\n\n var init$g = function init$g() {\n var state = {};\n\n var set = function set(id, data) {\n state[id] = data;\n };\n\n var get = function get(id) {\n return get$e(state, id);\n };\n\n var clear = function clear(id) {\n if (isNonNullable(id)) {\n delete state[id];\n } else {\n state = {};\n }\n };\n\n return nu$8({\n readState: function readState() {\n return state;\n },\n clear: clear,\n set: set,\n get: get\n });\n };\n\n var PositioningState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$g\n });\n var Positioning = create$7({\n fields: PositionSchema,\n name: 'positioning',\n active: ActivePosition,\n apis: PositionApis,\n state: PositioningState\n });\n\n var fireDetaching = function fireDetaching(component) {\n emit(component, detachedFromDom());\n var children = component.components();\n each$1(children, fireDetaching);\n };\n\n var fireAttaching = function fireAttaching(component) {\n var children = component.components();\n each$1(children, fireAttaching);\n emit(component, attachedToDom());\n };\n\n var attach$1 = function attach$1(parent, child) {\n append$2(parent.element, child.element);\n };\n\n var detachChildren$1 = function detachChildren$1(component) {\n each$1(component.components(), function (childComp) {\n return remove$5(childComp.element);\n });\n empty(component.element);\n component.syncComponents();\n };\n\n var replaceChildren = function replaceChildren(component, newChildren) {\n var subs = component.components();\n detachChildren$1(component);\n var deleted = difference(subs, newChildren);\n each$1(deleted, function (comp) {\n fireDetaching(comp);\n component.getSystem().removeFromWorld(comp);\n });\n each$1(newChildren, function (childComp) {\n if (!childComp.getSystem().isConnected()) {\n component.getSystem().addToWorld(childComp);\n attach$1(component, childComp);\n\n if (inBody(component.element)) {\n fireAttaching(childComp);\n }\n } else {\n attach$1(component, childComp);\n }\n\n component.syncComponents();\n });\n };\n\n var attach = function attach(parent, child) {\n attachWith(parent, child, append$2);\n };\n\n var attachWith = function attachWith(parent, child, insertion) {\n parent.getSystem().addToWorld(child);\n insertion(parent.element, child.element);\n\n if (inBody(parent.element)) {\n fireAttaching(child);\n }\n\n parent.syncComponents();\n };\n\n var doDetach = function doDetach(component) {\n fireDetaching(component);\n remove$5(component.element);\n component.getSystem().removeFromWorld(component);\n };\n\n var detach = function detach(component) {\n var parent$1 = parent(component.element).bind(function (p) {\n return component.getSystem().getByDom(p).toOptional();\n });\n doDetach(component);\n parent$1.each(function (p) {\n p.syncComponents();\n });\n };\n\n var detachChildren = function detachChildren(component) {\n var subs = component.components();\n each$1(subs, doDetach);\n empty(component.element);\n component.syncComponents();\n };\n\n var attachSystem = function attachSystem(element, guiSystem) {\n attachSystemWith(element, guiSystem, append$2);\n };\n\n var attachSystemAfter = function attachSystemAfter(element, guiSystem) {\n attachSystemWith(element, guiSystem, after$2);\n };\n\n var attachSystemWith = function attachSystemWith(element, guiSystem, inserter) {\n inserter(element, guiSystem.element);\n var children$1 = children(guiSystem.element);\n each$1(children$1, function (child) {\n guiSystem.getByDom(child).each(fireAttaching);\n });\n };\n\n var detachSystem = function detachSystem(guiSystem) {\n var children$1 = children(guiSystem.element);\n each$1(children$1, function (child) {\n guiSystem.getByDom(child).each(fireDetaching);\n });\n remove$5(guiSystem.element);\n };\n\n var rebuild = function rebuild(sandbox, sConfig, sState, data) {\n sState.get().each(function (_data) {\n detachChildren(sandbox);\n });\n var point = sConfig.getAttachPoint(sandbox);\n attach(point, sandbox);\n var built = sandbox.getSystem().build(data);\n attach(sandbox, built);\n sState.set(built);\n return built;\n };\n\n var open$1 = function open$1(sandbox, sConfig, sState, data) {\n var newState = rebuild(sandbox, sConfig, sState, data);\n sConfig.onOpen(sandbox, newState);\n return newState;\n };\n\n var setContent = function setContent(sandbox, sConfig, sState, data) {\n return sState.get().map(function () {\n return rebuild(sandbox, sConfig, sState, data);\n });\n };\n\n var openWhileCloaked = function openWhileCloaked(sandbox, sConfig, sState, data, transaction) {\n cloak(sandbox, sConfig);\n open$1(sandbox, sConfig, sState, data);\n transaction();\n decloak(sandbox, sConfig);\n };\n\n var close$1 = function close$1(sandbox, sConfig, sState) {\n sState.get().each(function (data) {\n detachChildren(sandbox);\n detach(sandbox);\n sConfig.onClose(sandbox, data);\n sState.clear();\n });\n };\n\n var isOpen$1 = function isOpen$1(_sandbox, _sConfig, sState) {\n return sState.isOpen();\n };\n\n var isPartOf = function isPartOf(sandbox, sConfig, sState, queryElem) {\n return isOpen$1(sandbox, sConfig, sState) && sState.get().exists(function (data) {\n return sConfig.isPartOf(sandbox, data, queryElem);\n });\n };\n\n var getState$2 = function getState$2(_sandbox, _sConfig, sState) {\n return sState.get();\n };\n\n var store = function store(sandbox, cssKey, attr, newValue) {\n getRaw(sandbox.element, cssKey).fold(function () {\n remove$7(sandbox.element, attr);\n }, function (v) {\n set$8(sandbox.element, attr, v);\n });\n set$7(sandbox.element, cssKey, newValue);\n };\n\n var restore = function restore(sandbox, cssKey, attr) {\n getOpt(sandbox.element, attr).fold(function () {\n return remove$6(sandbox.element, cssKey);\n }, function (oldValue) {\n return set$7(sandbox.element, cssKey, oldValue);\n });\n };\n\n var cloak = function cloak(sandbox, sConfig, _sState) {\n var sink = sConfig.getAttachPoint(sandbox);\n set$7(sandbox.element, 'position', Positioning.getMode(sink));\n store(sandbox, 'visibility', sConfig.cloakVisibilityAttr, 'hidden');\n };\n\n var hasPosition = function hasPosition(element) {\n return exists(['top', 'left', 'right', 'bottom'], function (pos) {\n return getRaw(element, pos).isSome();\n });\n };\n\n var decloak = function decloak(sandbox, sConfig, _sState) {\n if (!hasPosition(sandbox.element)) {\n remove$6(sandbox.element, 'position');\n }\n\n restore(sandbox, 'visibility', sConfig.cloakVisibilityAttr);\n };\n\n var SandboxApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n cloak: cloak,\n decloak: decloak,\n open: open$1,\n openWhileCloaked: openWhileCloaked,\n close: close$1,\n isOpen: isOpen$1,\n isPartOf: isPartOf,\n getState: getState$2,\n setContent: setContent\n });\n\n var events$g = function events$g(sandboxConfig, sandboxState) {\n return derive$2([run$1(sandboxClose(), function (sandbox, _simulatedEvent) {\n close$1(sandbox, sandboxConfig, sandboxState);\n })]);\n };\n\n var ActiveSandbox = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$g\n });\n var SandboxSchema = [onHandler('onOpen'), onHandler('onClose'), required$1('isPartOf'), required$1('getAttachPoint'), defaulted('cloakVisibilityAttr', 'data-precloak-visibility')];\n\n var init$f = function init$f() {\n var contents = value$1();\n var readState = constant$1('not-implemented');\n return nu$8({\n readState: readState,\n isOpen: contents.isSet,\n clear: contents.clear,\n set: contents.set,\n get: contents.get\n });\n };\n\n var SandboxState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$f\n });\n var Sandboxing = create$7({\n fields: SandboxSchema,\n name: 'sandboxing',\n active: ActiveSandbox,\n apis: SandboxApis,\n state: SandboxState\n });\n var dismissPopups = constant$1('dismiss.popups');\n var repositionPopups = constant$1('reposition.popups');\n var mouseReleased = constant$1('mouse.released');\n var schema$x = objOfOnly([defaulted('isExtraPart', never), optionObjOf('fireEventInstead', [defaulted('event', dismissRequested())])]);\n\n var receivingChannel$1 = function receivingChannel$1(rawSpec) {\n var _a;\n\n var detail = asRawOrDie$1('Dismissal', schema$x, rawSpec);\n return _a = {}, _a[dismissPopups()] = {\n schema: objOfOnly([required$1('target')]),\n onReceive: function onReceive(sandbox, data) {\n if (Sandboxing.isOpen(sandbox)) {\n var isPart = Sandboxing.isPartOf(sandbox, data.target) || detail.isExtraPart(sandbox, data.target);\n\n if (!isPart) {\n detail.fireEventInstead.fold(function () {\n return Sandboxing.close(sandbox);\n }, function (fe) {\n return emit(sandbox, fe.event);\n });\n }\n }\n }\n }, _a;\n };\n\n var schema$w = objOfOnly([optionObjOf('fireEventInstead', [defaulted('event', repositionRequested())]), requiredFunction('doReposition')]);\n\n var receivingChannel = function receivingChannel(rawSpec) {\n var _a;\n\n var detail = asRawOrDie$1('Reposition', schema$w, rawSpec);\n return _a = {}, _a[repositionPopups()] = {\n onReceive: function onReceive(sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n detail.fireEventInstead.fold(function () {\n return detail.doReposition(sandbox);\n }, function (fe) {\n return emit(sandbox, fe.event);\n });\n }\n }\n }, _a;\n };\n\n var onLoad$5 = function onLoad$5(component, repConfig, repState) {\n repConfig.store.manager.onLoad(component, repConfig, repState);\n };\n\n var onUnload$2 = function onUnload$2(component, repConfig, repState) {\n repConfig.store.manager.onUnload(component, repConfig, repState);\n };\n\n var setValue$3 = function setValue$3(component, repConfig, repState, data) {\n repConfig.store.manager.setValue(component, repConfig, repState, data);\n };\n\n var getValue$3 = function getValue$3(component, repConfig, repState) {\n return repConfig.store.manager.getValue(component, repConfig, repState);\n };\n\n var getState$1 = function getState$1(component, repConfig, repState) {\n return repState;\n };\n\n var RepresentApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad$5,\n onUnload: onUnload$2,\n setValue: setValue$3,\n getValue: getValue$3,\n getState: getState$1\n });\n\n var events$f = function events$f(repConfig, repState) {\n var es = repConfig.resetOnDom ? [runOnAttached(function (comp, _se) {\n onLoad$5(comp, repConfig, repState);\n }), runOnDetached(function (comp, _se) {\n onUnload$2(comp, repConfig, repState);\n })] : [loadEvent(repConfig, repState, onLoad$5)];\n return derive$2(es);\n };\n\n var ActiveRepresenting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$f\n });\n\n var memory$1 = function memory$1() {\n var data = Cell(null);\n\n var readState = function readState() {\n return {\n mode: 'memory',\n value: data.get()\n };\n };\n\n var isNotSet = function isNotSet() {\n return data.get() === null;\n };\n\n var clear = function clear() {\n data.set(null);\n };\n\n return nu$8({\n set: data.set,\n get: data.get,\n isNotSet: isNotSet,\n clear: clear,\n readState: readState\n });\n };\n\n var manual = function manual() {\n var readState = noop;\n return nu$8({\n readState: readState\n });\n };\n\n var dataset = function dataset() {\n var dataByValue = Cell({});\n var dataByText = Cell({});\n\n var readState = function readState() {\n return {\n mode: 'dataset',\n dataByValue: dataByValue.get(),\n dataByText: dataByText.get()\n };\n };\n\n var clear = function clear() {\n dataByValue.set({});\n dataByText.set({});\n };\n\n var lookup = function lookup(itemString) {\n return get$e(dataByValue.get(), itemString).orThunk(function () {\n return get$e(dataByText.get(), itemString);\n });\n };\n\n var update = function update(items) {\n var currentDataByValue = dataByValue.get();\n var currentDataByText = dataByText.get();\n var newDataByValue = {};\n var newDataByText = {};\n each$1(items, function (item) {\n newDataByValue[item.value] = item;\n get$e(item, 'meta').each(function (meta) {\n get$e(meta, 'text').each(function (text) {\n newDataByText[text] = item;\n });\n });\n });\n dataByValue.set(_assign(_assign({}, currentDataByValue), newDataByValue));\n dataByText.set(_assign(_assign({}, currentDataByText), newDataByText));\n };\n\n return nu$8({\n readState: readState,\n lookup: lookup,\n update: update,\n clear: clear\n });\n };\n\n var init$e = function init$e(spec) {\n return spec.store.manager.state(spec);\n };\n\n var RepresentState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n memory: memory$1,\n dataset: dataset,\n manual: manual,\n init: init$e\n });\n\n var setValue$2 = function setValue$2(component, repConfig, repState, data) {\n var store = repConfig.store;\n repState.update([data]);\n store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n\n var getValue$2 = function getValue$2(component, repConfig, repState) {\n var store = repConfig.store;\n var key = store.getDataKey(component);\n return repState.lookup(key).getOrThunk(function () {\n return store.getFallbackEntry(key);\n });\n };\n\n var onLoad$4 = function onLoad$4(component, repConfig, repState) {\n var store = repConfig.store;\n store.initialValue.each(function (data) {\n setValue$2(component, repConfig, repState, data);\n });\n };\n\n var onUnload$1 = function onUnload$1(component, repConfig, repState) {\n repState.clear();\n };\n\n var DatasetStore = [option('initialValue'), required$1('getFallbackEntry'), required$1('getDataKey'), required$1('setValue'), output$1('manager', {\n setValue: setValue$2,\n getValue: getValue$2,\n onLoad: onLoad$4,\n onUnload: onUnload$1,\n state: dataset\n })];\n\n var getValue$1 = function getValue$1(component, repConfig, _repState) {\n return repConfig.store.getValue(component);\n };\n\n var setValue$1 = function setValue$1(component, repConfig, _repState, data) {\n repConfig.store.setValue(component, data);\n repConfig.onSetValue(component, data);\n };\n\n var onLoad$3 = function onLoad$3(component, repConfig, _repState) {\n repConfig.store.initialValue.each(function (data) {\n repConfig.store.setValue(component, data);\n });\n };\n\n var ManualStore = [required$1('getValue'), defaulted('setValue', noop), option('initialValue'), output$1('manager', {\n setValue: setValue$1,\n getValue: getValue$1,\n onLoad: onLoad$3,\n onUnload: noop,\n state: NoState.init\n })];\n\n var setValue = function setValue(component, repConfig, repState, data) {\n repState.set(data);\n repConfig.onSetValue(component, data);\n };\n\n var getValue = function getValue(component, repConfig, repState) {\n return repState.get();\n };\n\n var onLoad$2 = function onLoad$2(component, repConfig, repState) {\n repConfig.store.initialValue.each(function (initVal) {\n if (repState.isNotSet()) {\n repState.set(initVal);\n }\n });\n };\n\n var onUnload = function onUnload(component, repConfig, repState) {\n repState.clear();\n };\n\n var MemoryStore = [option('initialValue'), output$1('manager', {\n setValue: setValue,\n getValue: getValue,\n onLoad: onLoad$2,\n onUnload: onUnload,\n state: memory$1\n })];\n var RepresentSchema = [defaultedOf('store', {\n mode: 'memory'\n }, choose$1('mode', {\n memory: MemoryStore,\n manual: ManualStore,\n dataset: DatasetStore\n })), onHandler('onSetValue'), defaulted('resetOnDom', false)];\n var Representing = create$7({\n fields: RepresentSchema,\n name: 'representing',\n active: ActiveRepresenting,\n apis: RepresentApis,\n extra: {\n setValueFrom: function setValueFrom(component, source) {\n var value = Representing.getValue(source);\n Representing.setValue(component, value);\n }\n },\n state: RepresentState\n });\n\n var field = function field(name, forbidden) {\n return defaultedObjOf(name, {}, map$2(forbidden, function (f) {\n return forbid(f.name(), 'Cannot configure ' + f.name() + ' for ' + name);\n }).concat([customField('dump', identity$1)]));\n };\n\n var get$2 = function get$2(data) {\n return data.dump;\n };\n\n var augment = function augment(data, original) {\n return _assign(_assign({}, derive$1(original)), data.dump);\n };\n\n var SketchBehaviours = {\n field: field,\n augment: augment,\n get: get$2\n };\n var _placeholder = 'placeholder';\n var adt$3 = Adt.generate([{\n single: ['required', 'valueThunk']\n }, {\n multiple: ['required', 'valueThunks']\n }]);\n\n var isSubstituted = function isSubstituted(spec) {\n return has$2(spec, 'uiType');\n };\n\n var subPlaceholder = function subPlaceholder(owner, detail, compSpec, placeholders) {\n if (owner.exists(function (o) {\n return o !== compSpec.owner;\n })) {\n return adt$3.single(true, constant$1(compSpec));\n }\n\n return get$e(placeholders, compSpec.name).fold(function () {\n throw new Error('Unknown placeholder component: ' + compSpec.name + '\\nKnown: [' + keys(placeholders) + ']\\nNamespace: ' + owner.getOr('none') + '\\nSpec: ' + JSON.stringify(compSpec, null, 2));\n }, function (newSpec) {\n return newSpec.replace();\n });\n };\n\n var scan = function scan(owner, detail, compSpec, placeholders) {\n if (isSubstituted(compSpec) && compSpec.uiType === _placeholder) {\n return subPlaceholder(owner, detail, compSpec, placeholders);\n } else {\n return adt$3.single(false, constant$1(compSpec));\n }\n };\n\n var substitute = function substitute(owner, detail, compSpec, placeholders) {\n var base = scan(owner, detail, compSpec, placeholders);\n return base.fold(function (req, valueThunk) {\n var value = isSubstituted(compSpec) ? valueThunk(detail, compSpec.config, compSpec.validated) : valueThunk(detail);\n var childSpecs = get$e(value, 'components').getOr([]);\n var substituted = bind$3(childSpecs, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n return [_assign(_assign({}, value), {\n components: substituted\n })];\n }, function (req, valuesThunk) {\n if (isSubstituted(compSpec)) {\n var values = valuesThunk(detail, compSpec.config, compSpec.validated);\n var preprocessor = compSpec.validated.preprocess.getOr(identity$1);\n return preprocessor(values);\n } else {\n return valuesThunk(detail);\n }\n });\n };\n\n var substituteAll = function substituteAll(owner, detail, components, placeholders) {\n return bind$3(components, function (c) {\n return substitute(owner, detail, c, placeholders);\n });\n };\n\n var oneReplace = function oneReplace(label, replacements) {\n var called = false;\n\n var used = function used() {\n return called;\n };\n\n var replace = function replace() {\n if (called) {\n throw new Error('Trying to use the same placeholder more than once: ' + label);\n }\n\n called = true;\n return replacements;\n };\n\n var required = function required() {\n return replacements.fold(function (req, _) {\n return req;\n }, function (req, _) {\n return req;\n });\n };\n\n return {\n name: constant$1(label),\n required: required,\n used: used,\n replace: replace\n };\n };\n\n var substitutePlaces = function substitutePlaces(owner, detail, components, placeholders) {\n var ps = map$1(placeholders, function (ph, name) {\n return oneReplace(name, ph);\n });\n var outcome = substituteAll(owner, detail, components, ps);\n each(ps, function (p) {\n if (p.used() === false && p.required()) {\n throw new Error('Placeholder: ' + p.name() + ' was not found in components list\\nNamespace: ' + owner.getOr('none') + '\\nComponents: ' + JSON.stringify(detail.components, null, 2));\n }\n });\n return outcome;\n };\n\n var single$2 = adt$3.single;\n var multiple = adt$3.multiple;\n var placeholder = constant$1(_placeholder);\n var adt$2 = Adt.generate([{\n required: ['data']\n }, {\n external: ['data']\n }, {\n optional: ['data']\n }, {\n group: ['data']\n }]);\n var fFactory = defaulted('factory', {\n sketch: identity$1\n });\n var fSchema = defaulted('schema', []);\n var fName = required$1('name');\n var fPname = field$1('pname', 'pname', defaultedThunk(function (typeSpec) {\n return '';\n }), anyValue());\n var fGroupSchema = customField('schema', function () {\n return [option('preprocess')];\n });\n var fDefaults = defaulted('defaults', constant$1({}));\n var fOverrides = defaulted('overrides', constant$1({}));\n var requiredSpec = objOf([fFactory, fSchema, fName, fPname, fDefaults, fOverrides]);\n var externalSpec = objOf([fFactory, fSchema, fName, fDefaults, fOverrides]);\n var optionalSpec = objOf([fFactory, fSchema, fName, fPname, fDefaults, fOverrides]);\n var groupSpec = objOf([fFactory, fGroupSchema, fName, required$1('unit'), fPname, fDefaults, fOverrides]);\n\n var asNamedPart = function asNamedPart(part) {\n return part.fold(Optional.some, Optional.none, Optional.some, Optional.some);\n };\n\n var name$1 = function name$1(part) {\n var get = function get(data) {\n return data.name;\n };\n\n return part.fold(get, get, get, get);\n };\n\n var asCommon = function asCommon(part) {\n return part.fold(identity$1, identity$1, identity$1, identity$1);\n };\n\n var convert = function convert(adtConstructor, partSchema) {\n return function (spec) {\n var data = asRawOrDie$1('Converting part type', partSchema, spec);\n return adtConstructor(data);\n };\n };\n\n var required = convert(adt$2.required, requiredSpec);\n var external$1 = convert(adt$2.external, externalSpec);\n var optional = convert(adt$2.optional, optionalSpec);\n var group = convert(adt$2.group, groupSpec);\n var original = constant$1('entirety');\n var PartType = /*#__PURE__*/Object.freeze({\n __proto__: null,\n required: required,\n external: external$1,\n optional: optional,\n group: group,\n asNamedPart: asNamedPart,\n name: name$1,\n asCommon: asCommon,\n original: original\n });\n\n var combine = function combine(detail, data, partSpec, partValidated) {\n return deepMerge(data.defaults(detail, partSpec, partValidated), partSpec, {\n uid: detail.partUids[data.name]\n }, data.overrides(detail, partSpec, partValidated));\n };\n\n var subs = function subs(owner, detail, parts) {\n var internals = {};\n var externals = {};\n each$1(parts, function (part) {\n part.fold(function (data) {\n internals[data.pname] = single$2(true, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n var partSpec = detail.parts[data.name];\n externals[data.name] = constant$1(data.factory.sketch(combine(detail, data, partSpec[original()]), partSpec));\n }, function (data) {\n internals[data.pname] = single$2(false, function (detail, partSpec, partValidated) {\n return data.factory.sketch(combine(detail, data, partSpec, partValidated));\n });\n }, function (data) {\n internals[data.pname] = multiple(true, function (detail, _partSpec, _partValidated) {\n var units = detail[data.name];\n return map$2(units, function (u) {\n return data.factory.sketch(deepMerge(data.defaults(detail, u, _partValidated), u, data.overrides(detail, u)));\n });\n });\n });\n });\n return {\n internals: constant$1(internals),\n externals: constant$1(externals)\n };\n };\n\n var generate$3 = function generate$3(owner, parts) {\n var r = {};\n each$1(parts, function (part) {\n asNamedPart(part).each(function (np) {\n var g = doGenerateOne(owner, np.pname);\n\n r[np.name] = function (config) {\n var validated = asRawOrDie$1('Part: ' + np.name + ' in ' + owner, objOf(np.schema), config);\n return _assign(_assign({}, g), {\n config: config,\n validated: validated\n });\n };\n });\n });\n return r;\n };\n\n var doGenerateOne = function doGenerateOne(owner, pname) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname\n };\n };\n\n var generateOne$1 = function generateOne$1(owner, pname, config) {\n return {\n uiType: placeholder(),\n owner: owner,\n name: pname,\n config: config,\n validated: {}\n };\n };\n\n var schemas = function schemas(parts) {\n return bind$3(parts, function (part) {\n return part.fold(Optional.none, Optional.some, Optional.none, Optional.none).map(function (data) {\n return requiredObjOf(data.name, data.schema.concat([snapshot(original())]));\n }).toArray();\n });\n };\n\n var names = function names(parts) {\n return map$2(parts, name$1);\n };\n\n var substitutes = function substitutes(owner, detail, parts) {\n return subs(owner, detail, parts);\n };\n\n var components$1 = function components$1(owner, detail, internals) {\n return substitutePlaces(Optional.some(owner), detail, detail.components, internals);\n };\n\n var getPart = function getPart(component, detail, partKey) {\n var uid = detail.partUids[partKey];\n return component.getSystem().getByUid(uid).toOptional();\n };\n\n var getPartOrDie = function getPartOrDie(component, detail, partKey) {\n return getPart(component, detail, partKey).getOrDie('Could not find part: ' + partKey);\n };\n\n var getParts = function getParts(component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each$1(partKeys, function (pk) {\n r[pk] = constant$1(system.getByUid(uids[pk]));\n });\n return r;\n };\n\n var getAllParts = function getAllParts(component, detail) {\n var system = component.getSystem();\n return map$1(detail.partUids, function (pUid, _k) {\n return constant$1(system.getByUid(pUid));\n });\n };\n\n var getAllPartNames = function getAllPartNames(detail) {\n return keys(detail.partUids);\n };\n\n var getPartsOrDie = function getPartsOrDie(component, detail, partKeys) {\n var r = {};\n var uids = detail.partUids;\n var system = component.getSystem();\n each$1(partKeys, function (pk) {\n r[pk] = constant$1(system.getByUid(uids[pk]).getOrDie());\n });\n return r;\n };\n\n var defaultUids = function defaultUids(baseUid, partTypes) {\n var partNames = names(partTypes);\n return wrapAll(map$2(partNames, function (pn) {\n return {\n key: pn,\n value: baseUid + '-' + pn\n };\n }));\n };\n\n var defaultUidsSchema = function defaultUidsSchema(partTypes) {\n return field$1('partUids', 'partUids', mergeWithThunk(function (spec) {\n return defaultUids(spec.uid, partTypes);\n }), anyValue());\n };\n\n var AlloyParts = /*#__PURE__*/Object.freeze({\n __proto__: null,\n generate: generate$3,\n generateOne: generateOne$1,\n schemas: schemas,\n names: names,\n substitutes: substitutes,\n components: components$1,\n defaultUids: defaultUids,\n defaultUidsSchema: defaultUidsSchema,\n getAllParts: getAllParts,\n getAllPartNames: getAllPartNames,\n getPart: getPart,\n getPartOrDie: getPartOrDie,\n getParts: getParts,\n getPartsOrDie: getPartsOrDie\n });\n\n var base = function base(partSchemas, partUidsSchemas) {\n var ps = partSchemas.length > 0 ? [requiredObjOf('parts', partSchemas)] : [];\n return ps.concat([required$1('uid'), defaulted('dom', {}), defaulted('components', []), snapshot('originalSpec'), defaulted('debug.sketcher', {})]).concat(partUidsSchemas);\n };\n\n var asRawOrDie = function asRawOrDie(label, schema, spec, partSchemas, partUidsSchemas) {\n var baseS = base(partSchemas, partUidsSchemas);\n return asRawOrDie$1(label + ' [SpecSchema]', objOfOnly(baseS.concat(schema)), spec);\n };\n\n var single$1 = function single$1(owner, schema, factory, spec) {\n var specWithUid = supplyUid(spec);\n var detail = asRawOrDie(owner, schema, specWithUid, [], []);\n return factory(detail, specWithUid);\n };\n\n var composite$1 = function composite$1(owner, schema, partTypes, factory, spec) {\n var specWithUid = supplyUid(spec);\n var partSchemas = schemas(partTypes);\n var partUidsSchema = defaultUidsSchema(partTypes);\n var detail = asRawOrDie(owner, schema, specWithUid, partSchemas, [partUidsSchema]);\n var subs = substitutes(owner, detail, partTypes);\n var components = components$1(owner, detail, subs.internals());\n return factory(detail, components, specWithUid, subs.externals());\n };\n\n var hasUid = function hasUid(spec) {\n return has$2(spec, 'uid');\n };\n\n var supplyUid = function supplyUid(spec) {\n return hasUid(spec) ? spec : _assign(_assign({}, spec), {\n uid: generate$5('uid')\n });\n };\n\n var isSketchSpec = function isSketchSpec(spec) {\n return spec.uid !== undefined;\n };\n\n var singleSchema = objOfOnly([required$1('name'), required$1('factory'), required$1('configFields'), defaulted('apis', {}), defaulted('extraApis', {})]);\n var compositeSchema = objOfOnly([required$1('name'), required$1('factory'), required$1('configFields'), required$1('partFields'), defaulted('apis', {}), defaulted('extraApis', {})]);\n\n var single = function single(rawConfig) {\n var config = asRawOrDie$1('Sketcher for ' + rawConfig.name, singleSchema, rawConfig);\n\n var sketch = function sketch(spec) {\n return single$1(config.name, config.configFields, config.factory, spec);\n };\n\n var apis = map$1(config.apis, makeApi);\n var extraApis = map$1(config.extraApis, function (f, k) {\n return markAsExtraApi(f, k);\n });\n return _assign(_assign({\n name: config.name,\n configFields: config.configFields,\n sketch: sketch\n }, apis), extraApis);\n };\n\n var composite = function composite(rawConfig) {\n var config = asRawOrDie$1('Sketcher for ' + rawConfig.name, compositeSchema, rawConfig);\n\n var sketch = function sketch(spec) {\n return composite$1(config.name, config.configFields, config.partFields, config.factory, spec);\n };\n\n var parts = generate$3(config.name, config.partFields);\n var apis = map$1(config.apis, makeApi);\n var extraApis = map$1(config.extraApis, function (f, k) {\n return markAsExtraApi(f, k);\n });\n return _assign(_assign({\n name: config.name,\n partFields: config.partFields,\n configFields: config.configFields,\n sketch: sketch,\n parts: parts\n }, apis), extraApis);\n };\n\n var inside = function inside(target) {\n return name$2(target) === 'input' && get$d(target, 'type') !== 'radio' || name$2(target) === 'textarea';\n };\n\n var getCurrent = function getCurrent(component, composeConfig, _composeState) {\n return composeConfig.find(component);\n };\n\n var ComposeApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCurrent: getCurrent\n });\n var ComposeSchema = [required$1('find')];\n var Composing = create$7({\n fields: ComposeSchema,\n name: 'composing',\n apis: ComposeApis\n });\n var nativeDisabled = ['input', 'button', 'textarea', 'select'];\n\n var onLoad$1 = function onLoad$1(component, disableConfig, disableState) {\n var f = disableConfig.disabled() ? disable$1 : enable$1;\n f(component, disableConfig);\n };\n\n var hasNative = function hasNative(component, config) {\n return config.useNative === true && contains$2(nativeDisabled, name$2(component.element));\n };\n\n var nativeIsDisabled = function nativeIsDisabled(component) {\n return has$1(component.element, 'disabled');\n };\n\n var nativeDisable = function nativeDisable(component) {\n set$8(component.element, 'disabled', 'disabled');\n };\n\n var nativeEnable = function nativeEnable(component) {\n remove$7(component.element, 'disabled');\n };\n\n var ariaIsDisabled = function ariaIsDisabled(component) {\n return get$d(component.element, 'aria-disabled') === 'true';\n };\n\n var ariaDisable = function ariaDisable(component) {\n set$8(component.element, 'aria-disabled', 'true');\n };\n\n var ariaEnable = function ariaEnable(component) {\n set$8(component.element, 'aria-disabled', 'false');\n };\n\n var disable$1 = function disable$1(component, disableConfig, _disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n add$2(component.element, disableClass);\n });\n var f = hasNative(component, disableConfig) ? nativeDisable : ariaDisable;\n f(component);\n disableConfig.onDisabled(component);\n };\n\n var enable$1 = function enable$1(component, disableConfig, _disableState) {\n disableConfig.disableClass.each(function (disableClass) {\n remove$2(component.element, disableClass);\n });\n var f = hasNative(component, disableConfig) ? nativeEnable : ariaEnable;\n f(component);\n disableConfig.onEnabled(component);\n };\n\n var isDisabled = function isDisabled(component, disableConfig) {\n return hasNative(component, disableConfig) ? nativeIsDisabled(component) : ariaIsDisabled(component);\n };\n\n var set$3 = function set$3(component, disableConfig, disableState, disabled) {\n var f = disabled ? disable$1 : enable$1;\n f(component, disableConfig);\n };\n\n var DisableApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n enable: enable$1,\n disable: disable$1,\n isDisabled: isDisabled,\n onLoad: onLoad$1,\n set: set$3\n });\n\n var exhibit$5 = function exhibit$5(base, disableConfig) {\n return nu$7({\n classes: disableConfig.disabled() ? disableConfig.disableClass.toArray() : []\n });\n };\n\n var events$e = function events$e(disableConfig, disableState) {\n return derive$2([abort(execute$5(), function (component, _simulatedEvent) {\n return isDisabled(component, disableConfig);\n }), loadEvent(disableConfig, disableState, onLoad$1)]);\n };\n\n var ActiveDisable = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$5,\n events: events$e\n });\n var DisableSchema = [defaultedFunction('disabled', never), defaulted('useNative', true), option('disableClass'), onHandler('onDisabled'), onHandler('onEnabled')];\n var Disabling = create$7({\n fields: DisableSchema,\n name: 'disabling',\n active: ActiveDisable,\n apis: DisableApis\n });\n\n var dehighlightAllExcept = function dehighlightAllExcept(component, hConfig, hState, skip) {\n var highlighted = descendants(component.element, '.' + hConfig.highlightClass);\n each$1(highlighted, function (h) {\n if (!exists(skip, function (skipComp) {\n return skipComp.element === h;\n })) {\n remove$2(h, hConfig.highlightClass);\n component.getSystem().getByDom(h).each(function (target) {\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n });\n }\n });\n };\n\n var dehighlightAll = function dehighlightAll(component, hConfig, hState) {\n return dehighlightAllExcept(component, hConfig, hState, []);\n };\n\n var dehighlight = function dehighlight(component, hConfig, hState, target) {\n if (isHighlighted(component, hConfig, hState, target)) {\n remove$2(target.element, hConfig.highlightClass);\n hConfig.onDehighlight(component, target);\n emit(target, dehighlight$1());\n }\n };\n\n var highlight = function highlight(component, hConfig, hState, target) {\n dehighlightAllExcept(component, hConfig, hState, [target]);\n\n if (!isHighlighted(component, hConfig, hState, target)) {\n add$2(target.element, hConfig.highlightClass);\n hConfig.onHighlight(component, target);\n emit(target, highlight$1());\n }\n };\n\n var highlightFirst = function highlightFirst(component, hConfig, hState) {\n getFirst(component, hConfig).each(function (firstComp) {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n\n var highlightLast = function highlightLast(component, hConfig, hState) {\n getLast(component, hConfig).each(function (lastComp) {\n highlight(component, hConfig, hState, lastComp);\n });\n };\n\n var highlightAt = function highlightAt(component, hConfig, hState, index) {\n getByIndex(component, hConfig, hState, index).fold(function (err) {\n throw err;\n }, function (firstComp) {\n highlight(component, hConfig, hState, firstComp);\n });\n };\n\n var highlightBy = function highlightBy(component, hConfig, hState, predicate) {\n var candidates = getCandidates(component, hConfig);\n var targetComp = find$5(candidates, predicate);\n targetComp.each(function (c) {\n highlight(component, hConfig, hState, c);\n });\n };\n\n var isHighlighted = function isHighlighted(component, hConfig, hState, queryTarget) {\n return has(queryTarget.element, hConfig.highlightClass);\n };\n\n var getHighlighted = function getHighlighted(component, hConfig, _hState) {\n return descendant(component.element, '.' + hConfig.highlightClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOptional();\n });\n };\n\n var getByIndex = function getByIndex(component, hConfig, hState, index) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n return Optional.from(items[index]).fold(function () {\n return Result.error(new Error('No element found with index ' + index));\n }, component.getSystem().getByDom);\n };\n\n var getFirst = function getFirst(component, hConfig, _hState) {\n return descendant(component.element, '.' + hConfig.itemClass).bind(function (e) {\n return component.getSystem().getByDom(e).toOptional();\n });\n };\n\n var getLast = function getLast(component, hConfig, _hState) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n var last = items.length > 0 ? Optional.some(items[items.length - 1]) : Optional.none();\n return last.bind(function (c) {\n return component.getSystem().getByDom(c).toOptional();\n });\n };\n\n var getDelta$2 = function getDelta$2(component, hConfig, hState, delta) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n var current = findIndex$1(items, function (item) {\n return has(item, hConfig.highlightClass);\n });\n return current.bind(function (selected) {\n var dest = cycleBy(selected, delta, 0, items.length - 1);\n return component.getSystem().getByDom(items[dest]).toOptional();\n });\n };\n\n var getPrevious = function getPrevious(component, hConfig, hState) {\n return getDelta$2(component, hConfig, hState, -1);\n };\n\n var getNext = function getNext(component, hConfig, hState) {\n return getDelta$2(component, hConfig, hState, +1);\n };\n\n var getCandidates = function getCandidates(component, hConfig, _hState) {\n var items = descendants(component.element, '.' + hConfig.itemClass);\n return cat(map$2(items, function (i) {\n return component.getSystem().getByDom(i).toOptional();\n }));\n };\n\n var HighlightApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n dehighlightAll: dehighlightAll,\n dehighlight: dehighlight,\n highlight: highlight,\n highlightFirst: highlightFirst,\n highlightLast: highlightLast,\n highlightAt: highlightAt,\n highlightBy: highlightBy,\n isHighlighted: isHighlighted,\n getHighlighted: getHighlighted,\n getFirst: getFirst,\n getLast: getLast,\n getPrevious: getPrevious,\n getNext: getNext,\n getCandidates: getCandidates\n });\n var HighlightSchema = [required$1('highlightClass'), required$1('itemClass'), onHandler('onHighlight'), onHandler('onDehighlight')];\n var Highlighting = create$7({\n fields: HighlightSchema,\n name: 'highlighting',\n apis: HighlightApis\n });\n var BACKSPACE = [8];\n var TAB = [9];\n var ENTER = [13];\n var ESCAPE = [27];\n var SPACE = [32];\n var LEFT = [37];\n var UP = [38];\n var RIGHT = [39];\n var DOWN = [40];\n\n var cyclePrev = function cyclePrev(values, index, predicate) {\n var before = reverse(values.slice(0, index));\n var after = reverse(values.slice(index + 1));\n return find$5(before.concat(after), predicate);\n };\n\n var tryPrev = function tryPrev(values, index, predicate) {\n var before = reverse(values.slice(0, index));\n return find$5(before, predicate);\n };\n\n var cycleNext = function cycleNext(values, index, predicate) {\n var before = values.slice(0, index);\n var after = values.slice(index + 1);\n return find$5(after.concat(before), predicate);\n };\n\n var tryNext = function tryNext(values, index, predicate) {\n var after = values.slice(index + 1);\n return find$5(after, predicate);\n };\n\n var inSet = function inSet(keys) {\n return function (event) {\n var raw = event.raw;\n return contains$2(keys, raw.which);\n };\n };\n\n var and = function and(preds) {\n return function (event) {\n return forall(preds, function (pred) {\n return pred(event);\n });\n };\n };\n\n var isShift = function isShift(event) {\n var raw = event.raw;\n return raw.shiftKey === true;\n };\n\n var isControl = function isControl(event) {\n var raw = event.raw;\n return raw.ctrlKey === true;\n };\n\n var isNotShift = not(isShift);\n\n var rule = function rule(matches, action) {\n return {\n matches: matches,\n classification: action\n };\n };\n\n var choose = function choose(transitions, event) {\n var transition = find$5(transitions, function (t) {\n return t.matches(event);\n });\n return transition.map(function (t) {\n return t.classification;\n });\n };\n\n var reportFocusShifting = function reportFocusShifting(component, prevFocus, newFocus) {\n var noChange = prevFocus.exists(function (p) {\n return newFocus.exists(function (n) {\n return eq(n, p);\n });\n });\n\n if (!noChange) {\n emitWith(component, focusShifted(), {\n prevFocus: prevFocus,\n newFocus: newFocus\n });\n }\n };\n\n var dom$2 = function dom$2() {\n var get = function get(component) {\n return search(component.element);\n };\n\n var set = function set(component, focusee) {\n var prevFocus = get(component);\n component.getSystem().triggerFocus(focusee, component.element);\n var newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n\n return {\n get: get,\n set: set\n };\n };\n\n var highlights = function highlights() {\n var get = function get(component) {\n return Highlighting.getHighlighted(component).map(function (item) {\n return item.element;\n });\n };\n\n var set = function set(component, element) {\n var prevFocus = get(component);\n component.getSystem().getByDom(element).fold(noop, function (item) {\n Highlighting.highlight(component, item);\n });\n var newFocus = get(component);\n reportFocusShifting(component, prevFocus, newFocus);\n };\n\n return {\n get: get,\n set: set\n };\n };\n\n var FocusInsideModes;\n\n (function (FocusInsideModes) {\n FocusInsideModes['OnFocusMode'] = 'onFocus';\n FocusInsideModes['OnEnterOrSpaceMode'] = 'onEnterOrSpace';\n FocusInsideModes['OnApiMode'] = 'onApi';\n })(FocusInsideModes || (FocusInsideModes = {}));\n\n var typical = function typical(infoSchema, stateInit, getKeydownRules, getKeyupRules, optFocusIn) {\n var schema = function schema() {\n return infoSchema.concat([defaulted('focusManager', dom$2()), defaultedOf('focusInside', 'onFocus', valueOf(function (val) {\n return contains$2(['onFocus', 'onEnterOrSpace', 'onApi'], val) ? Result.value(val) : Result.error('Invalid value for focusInside');\n })), output$1('handler', me), output$1('state', stateInit), output$1('sendFocusIn', optFocusIn)]);\n };\n\n var processKey = function processKey(component, simulatedEvent, getRules, keyingConfig, keyingState) {\n var rules = getRules(component, simulatedEvent, keyingConfig, keyingState);\n return choose(rules, simulatedEvent.event).bind(function (rule) {\n return rule(component, simulatedEvent, keyingConfig, keyingState);\n });\n };\n\n var toEvents = function toEvents(keyingConfig, keyingState) {\n var onFocusHandler = keyingConfig.focusInside !== FocusInsideModes.OnFocusMode ? Optional.none() : optFocusIn(keyingConfig).map(function (focusIn) {\n return run$1(focus$4(), function (component, simulatedEvent) {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n });\n\n var tryGoInsideComponent = function tryGoInsideComponent(component, simulatedEvent) {\n var isEnterOrSpace = inSet(SPACE.concat(ENTER))(simulatedEvent.event);\n\n if (keyingConfig.focusInside === FocusInsideModes.OnEnterOrSpaceMode && isEnterOrSpace && isSource(component, simulatedEvent)) {\n optFocusIn(keyingConfig).each(function (focusIn) {\n focusIn(component, keyingConfig, keyingState);\n simulatedEvent.stop();\n });\n }\n };\n\n var keyboardEvents = [run$1(keydown(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeydownRules, keyingConfig, keyingState).fold(function () {\n tryGoInsideComponent(component, simulatedEvent);\n }, function (_) {\n simulatedEvent.stop();\n });\n }), run$1(keyup(), function (component, simulatedEvent) {\n processKey(component, simulatedEvent, getKeyupRules, keyingConfig, keyingState).each(function (_) {\n simulatedEvent.stop();\n });\n })];\n return derive$2(onFocusHandler.toArray().concat(keyboardEvents));\n };\n\n var me = {\n schema: schema,\n processKey: processKey,\n toEvents: toEvents\n };\n return me;\n };\n\n var create$5 = function create$5(cyclicField) {\n var schema = [option('onEscape'), option('onEnter'), defaulted('selector', '[data-alloy-tabstop=\"true\"]:not(:disabled)'), defaulted('firstTabstop', 0), defaulted('useTabstopAt', always), option('visibilitySelector')].concat([cyclicField]);\n\n var isVisible = function isVisible(tabbingConfig, element) {\n var target = tabbingConfig.visibilitySelector.bind(function (sel) {\n return closest$1(element, sel);\n }).getOr(element);\n return get$b(target) > 0;\n };\n\n var findInitial = function findInitial(component, tabbingConfig) {\n var tabstops = descendants(component.element, tabbingConfig.selector);\n var visibles = filter$2(tabstops, function (elem) {\n return isVisible(tabbingConfig, elem);\n });\n return Optional.from(visibles[tabbingConfig.firstTabstop]);\n };\n\n var findCurrent = function findCurrent(component, tabbingConfig) {\n return tabbingConfig.focusManager.get(component).bind(function (elem) {\n return closest$1(elem, tabbingConfig.selector);\n });\n };\n\n var isTabstop = function isTabstop(tabbingConfig, element) {\n return isVisible(tabbingConfig, element) && tabbingConfig.useTabstopAt(element);\n };\n\n var focusIn = function focusIn(component, tabbingConfig, _tabbingState) {\n findInitial(component, tabbingConfig).each(function (target) {\n tabbingConfig.focusManager.set(component, target);\n });\n };\n\n var goFromTabstop = function goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle) {\n return cycle(tabstops, stopIndex, function (elem) {\n return isTabstop(tabbingConfig, elem);\n }).fold(function () {\n return tabbingConfig.cyclic ? Optional.some(true) : Optional.none();\n }, function (target) {\n tabbingConfig.focusManager.set(component, target);\n return Optional.some(true);\n });\n };\n\n var go = function go(component, _simulatedEvent, tabbingConfig, cycle) {\n var tabstops = descendants(component.element, tabbingConfig.selector);\n return findCurrent(component, tabbingConfig).bind(function (tabstop) {\n var optStopIndex = findIndex$1(tabstops, curry(eq, tabstop));\n return optStopIndex.bind(function (stopIndex) {\n return goFromTabstop(component, tabstops, stopIndex, tabbingConfig, cycle);\n });\n });\n };\n\n var goBackwards = function goBackwards(component, simulatedEvent, tabbingConfig) {\n var navigate = tabbingConfig.cyclic ? cyclePrev : tryPrev;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n\n var goForwards = function goForwards(component, simulatedEvent, tabbingConfig) {\n var navigate = tabbingConfig.cyclic ? cycleNext : tryNext;\n return go(component, simulatedEvent, tabbingConfig, navigate);\n };\n\n var execute = function execute(component, simulatedEvent, tabbingConfig) {\n return tabbingConfig.onEnter.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n\n var exit = function exit(component, simulatedEvent, tabbingConfig) {\n return tabbingConfig.onEscape.bind(function (f) {\n return f(component, simulatedEvent);\n });\n };\n\n var getKeydownRules = constant$1([rule(and([isShift, inSet(TAB)]), goBackwards), rule(inSet(TAB), goForwards), rule(inSet(ESCAPE), exit), rule(and([isNotShift, inSet(ENTER)]), execute)]);\n var getKeyupRules = constant$1([]);\n return typical(schema, NoState.init, getKeydownRules, getKeyupRules, function () {\n return Optional.some(focusIn);\n });\n };\n\n var AcyclicType = create$5(customField('cyclic', never));\n var CyclicType = create$5(customField('cyclic', always));\n\n var doDefaultExecute = function doDefaultExecute(component, _simulatedEvent, focused) {\n dispatch(component, focused, execute$5());\n return Optional.some(true);\n };\n\n var defaultExecute = function defaultExecute(component, simulatedEvent, focused) {\n var isComplex = inside(focused) && inSet(SPACE)(simulatedEvent.event);\n return isComplex ? Optional.none() : doDefaultExecute(component, simulatedEvent, focused);\n };\n\n var stopEventForFirefox = function stopEventForFirefox(_component, _simulatedEvent) {\n return Optional.some(true);\n };\n\n var schema$v = [defaulted('execute', defaultExecute), defaulted('useSpace', false), defaulted('useEnter', true), defaulted('useControlEnter', false), defaulted('useDown', false)];\n\n var execute$4 = function execute$4(component, simulatedEvent, executeConfig) {\n return executeConfig.execute(component, simulatedEvent, component.element);\n };\n\n var getKeydownRules$5 = function getKeydownRules$5(component, _simulatedEvent, executeConfig, _executeState) {\n var spaceExec = executeConfig.useSpace && !inside(component.element) ? SPACE : [];\n var enterExec = executeConfig.useEnter ? ENTER : [];\n var downExec = executeConfig.useDown ? DOWN : [];\n var execKeys = spaceExec.concat(enterExec).concat(downExec);\n return [rule(inSet(execKeys), execute$4)].concat(executeConfig.useControlEnter ? [rule(and([isControl, inSet(ENTER)]), execute$4)] : []);\n };\n\n var getKeyupRules$5 = function getKeyupRules$5(component, _simulatedEvent, executeConfig, _executeState) {\n return executeConfig.useSpace && !inside(component.element) ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n };\n\n var ExecutionType = typical(schema$v, NoState.init, getKeydownRules$5, getKeyupRules$5, function () {\n return Optional.none();\n });\n\n var flatgrid$1 = function flatgrid$1() {\n var dimensions = value$1();\n\n var setGridSize = function setGridSize(numRows, numColumns) {\n dimensions.set({\n numRows: numRows,\n numColumns: numColumns\n });\n };\n\n var getNumRows = function getNumRows() {\n return dimensions.get().map(function (d) {\n return d.numRows;\n });\n };\n\n var getNumColumns = function getNumColumns() {\n return dimensions.get().map(function (d) {\n return d.numColumns;\n });\n };\n\n return nu$8({\n readState: function readState() {\n return dimensions.get().map(function (d) {\n return {\n numRows: String(d.numRows),\n numColumns: String(d.numColumns)\n };\n }).getOr({\n numRows: '?',\n numColumns: '?'\n });\n },\n setGridSize: setGridSize,\n getNumRows: getNumRows,\n getNumColumns: getNumColumns\n });\n };\n\n var init$d = function init$d(spec) {\n return spec.state(spec);\n };\n\n var KeyingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n flatgrid: flatgrid$1,\n init: init$d\n });\n\n var useH = function useH(movement) {\n return function (component, simulatedEvent, config, state) {\n var move = movement(component.element);\n return use(move, component, simulatedEvent, config, state);\n };\n };\n\n var west$1 = function west$1(moveLeft, moveRight) {\n var movement = onDirection(moveLeft, moveRight);\n return useH(movement);\n };\n\n var east$1 = function east$1(moveLeft, moveRight) {\n var movement = onDirection(moveRight, moveLeft);\n return useH(movement);\n };\n\n var useV = function useV(move) {\n return function (component, simulatedEvent, config, state) {\n return use(move, component, simulatedEvent, config, state);\n };\n };\n\n var use = function use(move, component, simulatedEvent, config, state) {\n var outcome = config.focusManager.get(component).bind(function (focused) {\n return move(component.element, focused, config, state);\n });\n return outcome.map(function (newFocus) {\n config.focusManager.set(component, newFocus);\n return true;\n });\n };\n\n var north$1 = useV;\n var south$1 = useV;\n var move$1 = useV;\n\n var isHidden$1 = function isHidden$1(dom) {\n return dom.offsetWidth <= 0 && dom.offsetHeight <= 0;\n };\n\n var isVisible = function isVisible(element) {\n return !isHidden$1(element.dom);\n };\n\n var locate = function locate(candidates, predicate) {\n return findIndex$1(candidates, predicate).map(function (index) {\n return {\n index: index,\n candidates: candidates\n };\n });\n };\n\n var locateVisible = function locateVisible(container, current, selector) {\n var predicate = function predicate(x) {\n return eq(x, current);\n };\n\n var candidates = descendants(container, selector);\n var visible = filter$2(candidates, isVisible);\n return locate(visible, predicate);\n };\n\n var findIndex = function findIndex(elements, target) {\n return findIndex$1(elements, function (elem) {\n return eq(target, elem);\n });\n };\n\n var withGrid = function withGrid(values, index, numCols, f) {\n var oldRow = Math.floor(index / numCols);\n var oldColumn = index % numCols;\n return f(oldRow, oldColumn).bind(function (address) {\n var newIndex = address.row * numCols + address.column;\n return newIndex >= 0 && newIndex < values.length ? Optional.some(values[newIndex]) : Optional.none();\n });\n };\n\n var cycleHorizontal$1 = function cycleHorizontal$1(values, index, numRows, numCols, delta) {\n return withGrid(values, index, numCols, function (oldRow, oldColumn) {\n var onLastRow = oldRow === numRows - 1;\n var colsInRow = onLastRow ? values.length - oldRow * numCols : numCols;\n var newColumn = cycleBy(oldColumn, delta, 0, colsInRow - 1);\n return Optional.some({\n row: oldRow,\n column: newColumn\n });\n });\n };\n\n var cycleVertical$1 = function cycleVertical$1(values, index, numRows, numCols, delta) {\n return withGrid(values, index, numCols, function (oldRow, oldColumn) {\n var newRow = cycleBy(oldRow, delta, 0, numRows - 1);\n var onLastRow = newRow === numRows - 1;\n var colsInRow = onLastRow ? values.length - newRow * numCols : numCols;\n var newCol = clamp$1(oldColumn, 0, colsInRow - 1);\n return Optional.some({\n row: newRow,\n column: newCol\n });\n });\n };\n\n var cycleRight$1 = function cycleRight$1(values, index, numRows, numCols) {\n return cycleHorizontal$1(values, index, numRows, numCols, +1);\n };\n\n var cycleLeft$1 = function cycleLeft$1(values, index, numRows, numCols) {\n return cycleHorizontal$1(values, index, numRows, numCols, -1);\n };\n\n var cycleUp$1 = function cycleUp$1(values, index, numRows, numCols) {\n return cycleVertical$1(values, index, numRows, numCols, -1);\n };\n\n var cycleDown$1 = function cycleDown$1(values, index, numRows, numCols) {\n return cycleVertical$1(values, index, numRows, numCols, +1);\n };\n\n var schema$u = [required$1('selector'), defaulted('execute', defaultExecute), onKeyboardHandler('onEscape'), defaulted('captureTab', false), initSize()];\n\n var focusIn$3 = function focusIn$3(component, gridConfig, _gridState) {\n descendant(component.element, gridConfig.selector).each(function (first) {\n gridConfig.focusManager.set(component, first);\n });\n };\n\n var findCurrent$1 = function findCurrent$1(component, gridConfig) {\n return gridConfig.focusManager.get(component).bind(function (elem) {\n return closest$1(elem, gridConfig.selector);\n });\n };\n\n var execute$3 = function execute$3(component, simulatedEvent, gridConfig, _gridState) {\n return findCurrent$1(component, gridConfig).bind(function (focused) {\n return gridConfig.execute(component, simulatedEvent, focused);\n });\n };\n\n var doMove$2 = function doMove$2(cycle) {\n return function (element, focused, gridConfig, gridState) {\n return locateVisible(element, focused, gridConfig.selector).bind(function (identified) {\n return cycle(identified.candidates, identified.index, gridState.getNumRows().getOr(gridConfig.initSize.numRows), gridState.getNumColumns().getOr(gridConfig.initSize.numColumns));\n });\n };\n };\n\n var handleTab = function handleTab(_component, _simulatedEvent, gridConfig) {\n return gridConfig.captureTab ? Optional.some(true) : Optional.none();\n };\n\n var doEscape$1 = function doEscape$1(component, simulatedEvent, gridConfig) {\n return gridConfig.onEscape(component, simulatedEvent);\n };\n\n var moveLeft$3 = doMove$2(cycleLeft$1);\n var moveRight$3 = doMove$2(cycleRight$1);\n var moveNorth$1 = doMove$2(cycleUp$1);\n var moveSouth$1 = doMove$2(cycleDown$1);\n var getKeydownRules$4 = constant$1([rule(inSet(LEFT), west$1(moveLeft$3, moveRight$3)), rule(inSet(RIGHT), east$1(moveLeft$3, moveRight$3)), rule(inSet(UP), north$1(moveNorth$1)), rule(inSet(DOWN), south$1(moveSouth$1)), rule(and([isShift, inSet(TAB)]), handleTab), rule(and([isNotShift, inSet(TAB)]), handleTab), rule(inSet(ESCAPE), doEscape$1), rule(inSet(SPACE.concat(ENTER)), execute$3)]);\n var getKeyupRules$4 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlatgridType = typical(schema$u, flatgrid$1, getKeydownRules$4, getKeyupRules$4, function () {\n return Optional.some(focusIn$3);\n });\n\n var horizontal = function horizontal(container, selector, current, delta) {\n var isDisabledButton = function isDisabledButton(candidate) {\n return name$2(candidate) === 'button' && get$d(candidate, 'disabled') === 'disabled';\n };\n\n var tryCycle = function tryCycle(initial, index, candidates) {\n var newIndex = cycleBy(index, delta, 0, candidates.length - 1);\n\n if (newIndex === initial) {\n return Optional.none();\n } else {\n return isDisabledButton(candidates[newIndex]) ? tryCycle(initial, newIndex, candidates) : Optional.from(candidates[newIndex]);\n }\n };\n\n return locateVisible(container, current, selector).bind(function (identified) {\n var index = identified.index;\n var candidates = identified.candidates;\n return tryCycle(index, index, candidates);\n });\n };\n\n var schema$t = [required$1('selector'), defaulted('getInitial', Optional.none), defaulted('execute', defaultExecute), onKeyboardHandler('onEscape'), defaulted('executeOnMove', false), defaulted('allowVertical', true)];\n\n var findCurrent = function findCurrent(component, flowConfig) {\n return flowConfig.focusManager.get(component).bind(function (elem) {\n return closest$1(elem, flowConfig.selector);\n });\n };\n\n var execute$2 = function execute$2(component, simulatedEvent, flowConfig) {\n return findCurrent(component, flowConfig).bind(function (focused) {\n return flowConfig.execute(component, simulatedEvent, focused);\n });\n };\n\n var focusIn$2 = function focusIn$2(component, flowConfig, _state) {\n flowConfig.getInitial(component).orThunk(function () {\n return descendant(component.element, flowConfig.selector);\n }).each(function (first) {\n flowConfig.focusManager.set(component, first);\n });\n };\n\n var moveLeft$2 = function moveLeft$2(element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n\n var moveRight$2 = function moveRight$2(element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n\n var doMove$1 = function doMove$1(movement) {\n return function (component, simulatedEvent, flowConfig, flowState) {\n return movement(component, simulatedEvent, flowConfig, flowState).bind(function () {\n return flowConfig.executeOnMove ? execute$2(component, simulatedEvent, flowConfig) : Optional.some(true);\n });\n };\n };\n\n var doEscape = function doEscape(component, simulatedEvent, flowConfig) {\n return flowConfig.onEscape(component, simulatedEvent);\n };\n\n var getKeydownRules$3 = function getKeydownRules$3(_component, _se, flowConfig, _flowState) {\n var westMovers = LEFT.concat(flowConfig.allowVertical ? UP : []);\n var eastMovers = RIGHT.concat(flowConfig.allowVertical ? DOWN : []);\n return [rule(inSet(westMovers), doMove$1(west$1(moveLeft$2, moveRight$2))), rule(inSet(eastMovers), doMove$1(east$1(moveLeft$2, moveRight$2))), rule(inSet(ENTER), execute$2), rule(inSet(SPACE), execute$2), rule(inSet(ESCAPE), doEscape)];\n };\n\n var getKeyupRules$3 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var FlowType = typical(schema$t, NoState.init, getKeydownRules$3, getKeyupRules$3, function () {\n return Optional.some(focusIn$2);\n });\n\n var toCell = function toCell(matrix, rowIndex, columnIndex) {\n return Optional.from(matrix[rowIndex]).bind(function (row) {\n return Optional.from(row[columnIndex]).map(function (cell) {\n return {\n rowIndex: rowIndex,\n columnIndex: columnIndex,\n cell: cell\n };\n });\n });\n };\n\n var cycleHorizontal = function cycleHorizontal(matrix, rowIndex, startCol, deltaCol) {\n var row = matrix[rowIndex];\n var colsInRow = row.length;\n var newColIndex = cycleBy(startCol, deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n\n var cycleVertical = function cycleVertical(matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = cycleBy(startRow, deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = clamp$1(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n\n var moveHorizontal = function moveHorizontal(matrix, rowIndex, startCol, deltaCol) {\n var row = matrix[rowIndex];\n var colsInRow = row.length;\n var newColIndex = clamp$1(startCol + deltaCol, 0, colsInRow - 1);\n return toCell(matrix, rowIndex, newColIndex);\n };\n\n var moveVertical = function moveVertical(matrix, colIndex, startRow, deltaRow) {\n var nextRowIndex = clamp$1(startRow + deltaRow, 0, matrix.length - 1);\n var colsInNextRow = matrix[nextRowIndex].length;\n var nextColIndex = clamp$1(colIndex, 0, colsInNextRow - 1);\n return toCell(matrix, nextRowIndex, nextColIndex);\n };\n\n var cycleRight = function cycleRight(matrix, startRow, startCol) {\n return cycleHorizontal(matrix, startRow, startCol, +1);\n };\n\n var cycleLeft = function cycleLeft(matrix, startRow, startCol) {\n return cycleHorizontal(matrix, startRow, startCol, -1);\n };\n\n var cycleUp = function cycleUp(matrix, startRow, startCol) {\n return cycleVertical(matrix, startCol, startRow, -1);\n };\n\n var cycleDown = function cycleDown(matrix, startRow, startCol) {\n return cycleVertical(matrix, startCol, startRow, +1);\n };\n\n var moveLeft$1 = function moveLeft$1(matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, -1);\n };\n\n var moveRight$1 = function moveRight$1(matrix, startRow, startCol) {\n return moveHorizontal(matrix, startRow, startCol, +1);\n };\n\n var moveUp$1 = function moveUp$1(matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, -1);\n };\n\n var moveDown$1 = function moveDown$1(matrix, startRow, startCol) {\n return moveVertical(matrix, startCol, startRow, +1);\n };\n\n var schema$s = [requiredObjOf('selectors', [required$1('row'), required$1('cell')]), defaulted('cycles', true), defaulted('previousSelector', Optional.none), defaulted('execute', defaultExecute)];\n\n var focusIn$1 = function focusIn$1(component, matrixConfig, _state) {\n var focused = matrixConfig.previousSelector(component).orThunk(function () {\n var selectors = matrixConfig.selectors;\n return descendant(component.element, selectors.cell);\n });\n focused.each(function (cell) {\n matrixConfig.focusManager.set(component, cell);\n });\n };\n\n var execute$1 = function execute$1(component, simulatedEvent, matrixConfig) {\n return search(component.element).bind(function (focused) {\n return matrixConfig.execute(component, simulatedEvent, focused);\n });\n };\n\n var toMatrix = function toMatrix(rows, matrixConfig) {\n return map$2(rows, function (row) {\n return descendants(row, matrixConfig.selectors.cell);\n });\n };\n\n var doMove = function doMove(ifCycle, ifMove) {\n return function (element, focused, matrixConfig) {\n var move = matrixConfig.cycles ? ifCycle : ifMove;\n return closest$1(focused, matrixConfig.selectors.row).bind(function (inRow) {\n var cellsInRow = descendants(inRow, matrixConfig.selectors.cell);\n return findIndex(cellsInRow, focused).bind(function (colIndex) {\n var allRows = descendants(element, matrixConfig.selectors.row);\n return findIndex(allRows, inRow).bind(function (rowIndex) {\n var matrix = toMatrix(allRows, matrixConfig);\n return move(matrix, rowIndex, colIndex).map(function (next) {\n return next.cell;\n });\n });\n });\n });\n };\n };\n\n var moveLeft = doMove(cycleLeft, moveLeft$1);\n var moveRight = doMove(cycleRight, moveRight$1);\n var moveNorth = doMove(cycleUp, moveUp$1);\n var moveSouth = doMove(cycleDown, moveDown$1);\n var getKeydownRules$2 = constant$1([rule(inSet(LEFT), west$1(moveLeft, moveRight)), rule(inSet(RIGHT), east$1(moveLeft, moveRight)), rule(inSet(UP), north$1(moveNorth)), rule(inSet(DOWN), south$1(moveSouth)), rule(inSet(SPACE.concat(ENTER)), execute$1)]);\n var getKeyupRules$2 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MatrixType = typical(schema$s, NoState.init, getKeydownRules$2, getKeyupRules$2, function () {\n return Optional.some(focusIn$1);\n });\n var schema$r = [required$1('selector'), defaulted('execute', defaultExecute), defaulted('moveOnTab', false)];\n\n var execute = function execute(component, simulatedEvent, menuConfig) {\n return menuConfig.focusManager.get(component).bind(function (focused) {\n return menuConfig.execute(component, simulatedEvent, focused);\n });\n };\n\n var focusIn = function focusIn(component, menuConfig, _state) {\n descendant(component.element, menuConfig.selector).each(function (first) {\n menuConfig.focusManager.set(component, first);\n });\n };\n\n var moveUp = function moveUp(element, focused, info) {\n return horizontal(element, info.selector, focused, -1);\n };\n\n var moveDown = function moveDown(element, focused, info) {\n return horizontal(element, info.selector, focused, +1);\n };\n\n var fireShiftTab = function fireShiftTab(component, simulatedEvent, menuConfig, menuState) {\n return menuConfig.moveOnTab ? move$1(moveUp)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n };\n\n var fireTab = function fireTab(component, simulatedEvent, menuConfig, menuState) {\n return menuConfig.moveOnTab ? move$1(moveDown)(component, simulatedEvent, menuConfig, menuState) : Optional.none();\n };\n\n var getKeydownRules$1 = constant$1([rule(inSet(UP), move$1(moveUp)), rule(inSet(DOWN), move$1(moveDown)), rule(and([isShift, inSet(TAB)]), fireShiftTab), rule(and([isNotShift, inSet(TAB)]), fireTab), rule(inSet(ENTER), execute), rule(inSet(SPACE), execute)]);\n var getKeyupRules$1 = constant$1([rule(inSet(SPACE), stopEventForFirefox)]);\n var MenuType = typical(schema$r, NoState.init, getKeydownRules$1, getKeyupRules$1, function () {\n return Optional.some(focusIn);\n });\n var schema$q = [onKeyboardHandler('onSpace'), onKeyboardHandler('onEnter'), onKeyboardHandler('onShiftEnter'), onKeyboardHandler('onLeft'), onKeyboardHandler('onRight'), onKeyboardHandler('onTab'), onKeyboardHandler('onShiftTab'), onKeyboardHandler('onUp'), onKeyboardHandler('onDown'), onKeyboardHandler('onEscape'), defaulted('stopSpaceKeyup', false), option('focusIn')];\n\n var getKeydownRules = function getKeydownRules(component, simulatedEvent, specialInfo) {\n return [rule(inSet(SPACE), specialInfo.onSpace), rule(and([isNotShift, inSet(ENTER)]), specialInfo.onEnter), rule(and([isShift, inSet(ENTER)]), specialInfo.onShiftEnter), rule(and([isShift, inSet(TAB)]), specialInfo.onShiftTab), rule(and([isNotShift, inSet(TAB)]), specialInfo.onTab), rule(inSet(UP), specialInfo.onUp), rule(inSet(DOWN), specialInfo.onDown), rule(inSet(LEFT), specialInfo.onLeft), rule(inSet(RIGHT), specialInfo.onRight), rule(inSet(SPACE), specialInfo.onSpace), rule(inSet(ESCAPE), specialInfo.onEscape)];\n };\n\n var getKeyupRules = function getKeyupRules(component, simulatedEvent, specialInfo) {\n return specialInfo.stopSpaceKeyup ? [rule(inSet(SPACE), stopEventForFirefox)] : [];\n };\n\n var SpecialType = typical(schema$q, NoState.init, getKeydownRules, getKeyupRules, function (specialInfo) {\n return specialInfo.focusIn;\n });\n var acyclic = AcyclicType.schema();\n var cyclic = CyclicType.schema();\n var flow = FlowType.schema();\n var flatgrid = FlatgridType.schema();\n var matrix = MatrixType.schema();\n var execution = ExecutionType.schema();\n var menu = MenuType.schema();\n var special = SpecialType.schema();\n var KeyboardBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n acyclic: acyclic,\n cyclic: cyclic,\n flow: flow,\n flatgrid: flatgrid,\n matrix: matrix,\n execution: execution,\n menu: menu,\n special: special\n });\n\n var isFlatgridState = function isFlatgridState(keyState) {\n return hasNonNullableKey(keyState, 'setGridSize');\n };\n\n var Keying = createModes({\n branchKey: 'mode',\n branches: KeyboardBranches,\n name: 'keying',\n active: {\n events: function events(keyingConfig, keyingState) {\n var handler = keyingConfig.handler;\n return handler.toEvents(keyingConfig, keyingState);\n }\n },\n apis: {\n focusIn: function focusIn(component, keyConfig, keyState) {\n keyConfig.sendFocusIn(keyConfig).fold(function () {\n component.getSystem().triggerFocus(component.element, component.element);\n }, function (sendFocusIn) {\n sendFocusIn(component, keyConfig, keyState);\n });\n },\n setGridSize: function setGridSize(component, keyConfig, keyState, numRows, numColumns) {\n if (!isFlatgridState(keyState)) {\n console.error('Layout does not support setGridSize');\n } else {\n keyState.setGridSize(numRows, numColumns);\n }\n }\n },\n state: KeyingState\n });\n\n var set$2 = function set$2(component, replaceConfig, replaceState, data) {\n preserve$1(function () {\n var newChildren = map$2(data, component.getSystem().build);\n replaceChildren(component, newChildren);\n }, component.element);\n };\n\n var insert = function insert(component, replaceConfig, insertion, childSpec) {\n var child = component.getSystem().build(childSpec);\n attachWith(component, child, insertion);\n };\n\n var append = function append(component, replaceConfig, replaceState, appendee) {\n insert(component, replaceConfig, append$2, appendee);\n };\n\n var prepend = function prepend(component, replaceConfig, replaceState, prependee) {\n insert(component, replaceConfig, prepend$1, prependee);\n };\n\n var remove = function remove(component, replaceConfig, replaceState, removee) {\n var children = contents(component);\n var foundChild = find$5(children, function (child) {\n return eq(removee.element, child.element);\n });\n foundChild.each(detach);\n };\n\n var contents = function contents(component, _replaceConfig) {\n return component.components();\n };\n\n var replaceAt = function replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer) {\n var children = contents(component);\n return Optional.from(children[replaceeIndex]).map(function (replacee) {\n remove(component, replaceConfig, replaceState, replacee);\n replacer.each(function (r) {\n insert(component, replaceConfig, function (p, c) {\n appendAt(p, c, replaceeIndex);\n }, r);\n });\n return replacee;\n });\n };\n\n var replaceBy = function replaceBy(component, replaceConfig, replaceState, replaceePred, replacer) {\n var children = contents(component);\n return findIndex$1(children, replaceePred).bind(function (replaceeIndex) {\n return replaceAt(component, replaceConfig, replaceState, replaceeIndex, replacer);\n });\n };\n\n var ReplaceApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n append: append,\n prepend: prepend,\n remove: remove,\n replaceAt: replaceAt,\n replaceBy: replaceBy,\n set: set$2,\n contents: contents\n });\n var Replacing = create$7({\n fields: [],\n name: 'replacing',\n apis: ReplaceApis\n });\n\n var events$d = function events$d(name, eventHandlers) {\n var events = derive$2(eventHandlers);\n return create$7({\n fields: [required$1('enabled')],\n name: name,\n active: {\n events: constant$1(events)\n }\n });\n };\n\n var config = function config(name, eventHandlers) {\n var me = events$d(name, eventHandlers);\n return {\n key: name,\n value: {\n config: {},\n me: me,\n configAsRaw: constant$1({}),\n initialConfig: {},\n state: NoState\n }\n };\n };\n\n var focus$2 = function focus$2(component, focusConfig) {\n if (!focusConfig.ignore) {\n focus$3(component.element);\n focusConfig.onFocus(component);\n }\n };\n\n var blur = function blur(component, focusConfig) {\n if (!focusConfig.ignore) {\n blur$1(component.element);\n }\n };\n\n var isFocused = function isFocused(component) {\n return hasFocus(component.element);\n };\n\n var FocusApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n focus: focus$2,\n blur: blur,\n isFocused: isFocused\n });\n\n var exhibit$4 = function exhibit$4(base, focusConfig) {\n var mod = focusConfig.ignore ? {} : {\n attributes: {\n tabindex: '-1'\n }\n };\n return nu$7(mod);\n };\n\n var events$c = function events$c(focusConfig) {\n return derive$2([run$1(focus$4(), function (component, simulatedEvent) {\n focus$2(component, focusConfig);\n simulatedEvent.stop();\n })].concat(focusConfig.stopMousedown ? [run$1(mousedown(), function (_, simulatedEvent) {\n simulatedEvent.event.prevent();\n })] : []));\n };\n\n var ActiveFocus = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$4,\n events: events$c\n });\n var FocusSchema = [onHandler('onFocus'), defaulted('stopMousedown', false), defaulted('ignore', false)];\n var Focusing = create$7({\n fields: FocusSchema,\n name: 'focusing',\n active: ActiveFocus,\n apis: FocusApis\n });\n\n var SetupBehaviourCellState = function SetupBehaviourCellState(initialState) {\n var init = function init() {\n var cell = Cell(initialState);\n\n var get = function get() {\n return cell.get();\n };\n\n var set = function set(newState) {\n return cell.set(newState);\n };\n\n var clear = function clear() {\n return cell.set(initialState);\n };\n\n var readState = function readState() {\n return cell.get();\n };\n\n return {\n get: get,\n set: set,\n clear: clear,\n readState: readState\n };\n };\n\n return {\n init: init\n };\n };\n\n var updateAriaState = function updateAriaState(component, toggleConfig, toggleState) {\n var ariaInfo = toggleConfig.aria;\n ariaInfo.update(component, ariaInfo, toggleState.get());\n };\n\n var updateClass = function updateClass(component, toggleConfig, toggleState) {\n toggleConfig.toggleClass.each(function (toggleClass) {\n if (toggleState.get()) {\n add$2(component.element, toggleClass);\n } else {\n remove$2(component.element, toggleClass);\n }\n });\n };\n\n var toggle$2 = function toggle$2(component, toggleConfig, toggleState) {\n set$1(component, toggleConfig, toggleState, !toggleState.get());\n };\n\n var on = function on(component, toggleConfig, toggleState) {\n toggleState.set(true);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n\n var off = function off(component, toggleConfig, toggleState) {\n toggleState.set(false);\n updateClass(component, toggleConfig, toggleState);\n updateAriaState(component, toggleConfig, toggleState);\n };\n\n var set$1 = function set$1(component, toggleConfig, toggleState, state) {\n var action = state ? on : off;\n action(component, toggleConfig, toggleState);\n };\n\n var isOn = function isOn(component, toggleConfig, toggleState) {\n return toggleState.get();\n };\n\n var onLoad = function onLoad(component, toggleConfig, toggleState) {\n set$1(component, toggleConfig, toggleState, toggleConfig.selected);\n };\n\n var ToggleApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n onLoad: onLoad,\n toggle: toggle$2,\n isOn: isOn,\n on: on,\n off: off,\n set: set$1\n });\n\n var exhibit$3 = function exhibit$3() {\n return nu$7({});\n };\n\n var events$b = function events$b(toggleConfig, toggleState) {\n var execute = executeEvent(toggleConfig, toggleState, toggle$2);\n var load = loadEvent(toggleConfig, toggleState, onLoad);\n return derive$2(flatten([toggleConfig.toggleOnExecute ? [execute] : [], [load]]));\n };\n\n var ActiveToggle = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$3,\n events: events$b\n });\n\n var updatePressed = function updatePressed(component, ariaInfo, status) {\n set$8(component.element, 'aria-pressed', status);\n\n if (ariaInfo.syncWithExpanded) {\n updateExpanded(component, ariaInfo, status);\n }\n };\n\n var updateSelected = function updateSelected(component, ariaInfo, status) {\n set$8(component.element, 'aria-selected', status);\n };\n\n var updateChecked = function updateChecked(component, ariaInfo, status) {\n set$8(component.element, 'aria-checked', status);\n };\n\n var updateExpanded = function updateExpanded(component, ariaInfo, status) {\n set$8(component.element, 'aria-expanded', status);\n };\n\n var ToggleSchema = [defaulted('selected', false), option('toggleClass'), defaulted('toggleOnExecute', true), defaultedOf('aria', {\n mode: 'none'\n }, choose$1('mode', {\n pressed: [defaulted('syncWithExpanded', false), output$1('update', updatePressed)],\n checked: [output$1('update', updateChecked)],\n expanded: [output$1('update', updateExpanded)],\n selected: [output$1('update', updateSelected)],\n none: [output$1('update', noop)]\n }))];\n var Toggling = create$7({\n fields: ToggleSchema,\n name: 'toggling',\n active: ActiveToggle,\n apis: ToggleApis,\n state: SetupBehaviourCellState(false)\n });\n\n var pointerEvents = function pointerEvents() {\n var onClick = function onClick(component, simulatedEvent) {\n simulatedEvent.stop();\n emitExecute(component);\n };\n\n return [run$1(click(), onClick), run$1(tap(), onClick), cutter(touchstart()), cutter(mousedown())];\n };\n\n var events$a = function events$a(optAction) {\n var executeHandler = function executeHandler(action) {\n return runOnExecute$1(function (component, simulatedEvent) {\n action(component);\n simulatedEvent.stop();\n });\n };\n\n return derive$2(flatten([optAction.map(executeHandler).toArray(), pointerEvents()]));\n };\n\n var hoverEvent = 'alloy.item-hover';\n var focusEvent = 'alloy.item-focus';\n\n var onHover = function onHover(item) {\n if (search(item.element).isNone() || Focusing.isFocused(item)) {\n if (!Focusing.isFocused(item)) {\n Focusing.focus(item);\n }\n\n emitWith(item, hoverEvent, {\n item: item\n });\n }\n };\n\n var onFocus$1 = function onFocus$1(item) {\n emitWith(item, focusEvent, {\n item: item\n });\n };\n\n var hover = constant$1(hoverEvent);\n var focus$1 = constant$1(focusEvent);\n\n var builder$2 = function builder$2(detail) {\n return {\n dom: detail.dom,\n domModification: _assign(_assign({}, detail.domModification), {\n attributes: _assign(_assign(_assign({\n 'role': detail.toggling.isSome() ? 'menuitemcheckbox' : 'menuitem'\n }, detail.domModification.attributes), {\n 'aria-haspopup': detail.hasSubmenu\n }), detail.hasSubmenu ? {\n 'aria-expanded': false\n } : {})\n }),\n behaviours: SketchBehaviours.augment(detail.itemBehaviours, [detail.toggling.fold(Toggling.revoke, function (tConfig) {\n return Toggling.config(_assign({\n aria: {\n mode: 'checked'\n }\n }, tConfig));\n }), Focusing.config({\n ignore: detail.ignoreFocus,\n stopMousedown: detail.ignoreFocus,\n onFocus: function onFocus(component) {\n onFocus$1(component);\n }\n }), Keying.config({\n mode: 'execution'\n }), Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }), config('item-type-events', __spreadArray(__spreadArray([], pointerEvents(), true), [run$1(mouseover(), onHover), run$1(focusItem(), Focusing.focus)], false))]),\n components: detail.components,\n eventOrder: detail.eventOrder\n };\n };\n\n var schema$p = [required$1('data'), required$1('components'), required$1('dom'), defaulted('hasSubmenu', false), option('toggling'), SketchBehaviours.field('itemBehaviours', [Toggling, Focusing, Keying, Representing]), defaulted('ignoreFocus', false), defaulted('domModification', {}), output$1('builder', builder$2), defaulted('eventOrder', {})];\n\n var builder$1 = function builder$1(detail) {\n return {\n dom: detail.dom,\n components: detail.components,\n events: derive$2([stopper(focusItem())])\n };\n };\n\n var schema$o = [required$1('dom'), required$1('components'), output$1('builder', builder$1)];\n var owner$2 = constant$1('item-widget');\n var parts$h = constant$1([required({\n name: 'widget',\n overrides: function overrides(detail) {\n return {\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(_component) {\n return detail.data;\n },\n setValue: noop\n }\n })])\n };\n }\n })]);\n\n var builder = function builder(detail) {\n var subs = substitutes(owner$2(), detail, parts$h());\n var components = components$1(owner$2(), detail, subs.internals());\n\n var focusWidget = function focusWidget(component) {\n return getPart(component, detail, 'widget').map(function (widget) {\n Keying.focusIn(widget);\n return widget;\n });\n };\n\n var onHorizontalArrow = function onHorizontalArrow(component, simulatedEvent) {\n return inside(simulatedEvent.event.target) ? Optional.none() : function () {\n if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n }();\n };\n\n return {\n dom: detail.dom,\n components: components,\n domModification: detail.domModification,\n events: derive$2([runOnExecute$1(function (component, simulatedEvent) {\n focusWidget(component).each(function (_widget) {\n simulatedEvent.stop();\n });\n }), run$1(mouseover(), onHover), run$1(focusItem(), function (component, _simulatedEvent) {\n if (detail.autofocus) {\n focusWidget(component);\n } else {\n Focusing.focus(component);\n }\n })]),\n behaviours: SketchBehaviours.augment(detail.widgetBehaviours, [Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.data\n }\n }), Focusing.config({\n ignore: detail.ignoreFocus,\n onFocus: function onFocus(component) {\n onFocus$1(component);\n }\n }), Keying.config({\n mode: 'special',\n focusIn: detail.autofocus ? function (component) {\n focusWidget(component);\n } : revoke(),\n onLeft: onHorizontalArrow,\n onRight: onHorizontalArrow,\n onEscape: function onEscape(component, simulatedEvent) {\n if (!Focusing.isFocused(component) && !detail.autofocus) {\n Focusing.focus(component);\n return Optional.some(true);\n } else if (detail.autofocus) {\n simulatedEvent.setSource(component.element);\n return Optional.none();\n } else {\n return Optional.none();\n }\n }\n })])\n };\n };\n\n var schema$n = [required$1('uid'), required$1('data'), required$1('components'), required$1('dom'), defaulted('autofocus', false), defaulted('ignoreFocus', false), SketchBehaviours.field('widgetBehaviours', [Representing, Focusing, Keying]), defaulted('domModification', {}), defaultUidsSchema(parts$h()), output$1('builder', builder)];\n var itemSchema$2 = choose$1('type', {\n widget: schema$n,\n item: schema$p,\n separator: schema$o\n });\n\n var configureGrid = function configureGrid(detail, movementInfo) {\n return {\n mode: 'flatgrid',\n selector: '.' + detail.markers.item,\n initSize: {\n numColumns: movementInfo.initSize.numColumns,\n numRows: movementInfo.initSize.numRows\n },\n focusManager: detail.focusManager\n };\n };\n\n var configureMatrix = function configureMatrix(detail, movementInfo) {\n return {\n mode: 'matrix',\n selectors: {\n row: movementInfo.rowSelector,\n cell: '.' + detail.markers.item\n },\n focusManager: detail.focusManager\n };\n };\n\n var configureMenu = function configureMenu(detail, movementInfo) {\n return {\n mode: 'menu',\n selector: '.' + detail.markers.item,\n moveOnTab: movementInfo.moveOnTab,\n focusManager: detail.focusManager\n };\n };\n\n var parts$g = constant$1([group({\n factory: {\n sketch: function sketch(spec) {\n var itemInfo = asRawOrDie$1('menu.spec item', itemSchema$2, spec);\n return itemInfo.builder(itemInfo);\n }\n },\n name: 'items',\n unit: 'item',\n defaults: function defaults(detail, u) {\n return has$2(u, 'uid') ? u : _assign(_assign({}, u), {\n uid: generate$5('item')\n });\n },\n overrides: function overrides(detail, u) {\n return {\n type: u.type,\n ignoreFocus: detail.fakeFocus,\n domModification: {\n classes: [detail.markers.item]\n }\n };\n }\n })]);\n var schema$m = constant$1([required$1('value'), required$1('items'), required$1('dom'), required$1('components'), defaulted('eventOrder', {}), field('menuBehaviours', [Highlighting, Representing, Composing, Keying]), defaultedOf('movement', {\n mode: 'menu',\n moveOnTab: true\n }, choose$1('mode', {\n grid: [initSize(), output$1('config', configureGrid)],\n matrix: [output$1('config', configureMatrix), required$1('rowSelector')],\n menu: [defaulted('moveOnTab', true), output$1('config', configureMenu)]\n })), itemMarkers(), defaulted('fakeFocus', false), defaulted('focusManager', dom$2()), onHandler('onHighlight')]);\n var focus = constant$1('alloy.menu-focus');\n\n var make$7 = function make$7(detail, components, _spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.menuBehaviours, [Highlighting.config({\n highlightClass: detail.markers.selectedItem,\n itemClass: detail.markers.item,\n onHighlight: detail.onHighlight\n }), Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n }), Composing.config({\n find: Optional.some\n }), Keying.config(detail.movement.config(detail, detail.movement))]),\n events: derive$2([run$1(focus$1(), function (menu, simulatedEvent) {\n var event = simulatedEvent.event;\n menu.getSystem().getByDom(event.target).each(function (item) {\n Highlighting.highlight(menu, item);\n simulatedEvent.stop();\n emitWith(menu, focus(), {\n menu: menu,\n item: item\n });\n });\n }), run$1(hover(), function (menu, simulatedEvent) {\n var item = simulatedEvent.event.item;\n Highlighting.highlight(menu, item);\n })]),\n components: components,\n eventOrder: detail.eventOrder,\n domModification: {\n attributes: {\n role: 'menu'\n }\n }\n };\n };\n\n var Menu = composite({\n name: 'Menu',\n configFields: schema$m(),\n partFields: parts$g(),\n factory: make$7\n });\n\n var transpose$1 = function transpose$1(obj) {\n return tupleMap(obj, function (v, k) {\n return {\n k: v,\n v: k\n };\n });\n };\n\n var trace = function trace(items, byItem, byMenu, finish) {\n return get$e(byMenu, finish).bind(function (triggerItem) {\n return get$e(items, triggerItem).bind(function (triggerMenu) {\n var rest = trace(items, byItem, byMenu, triggerMenu);\n return Optional.some([triggerMenu].concat(rest));\n });\n }).getOr([]);\n };\n\n var generate$2 = function generate$2(menus, expansions) {\n var items = {};\n each(menus, function (menuItems, menu) {\n each$1(menuItems, function (item) {\n items[item] = menu;\n });\n });\n var byItem = expansions;\n var byMenu = transpose$1(expansions);\n var menuPaths = map$1(byMenu, function (_triggerItem, submenu) {\n return [submenu].concat(trace(items, byItem, byMenu, submenu));\n });\n return map$1(items, function (menu) {\n return get$e(menuPaths, menu).getOr([menu]);\n });\n };\n\n var init$c = function init$c() {\n var expansions = Cell({});\n var menus = Cell({});\n var paths = Cell({});\n var primary = value$1();\n var directory = Cell({});\n\n var clear = function clear() {\n expansions.set({});\n menus.set({});\n paths.set({});\n primary.clear();\n };\n\n var isClear = function isClear() {\n return primary.get().isNone();\n };\n\n var setMenuBuilt = function setMenuBuilt(menuName, built) {\n var _a;\n\n menus.set(_assign(_assign({}, menus.get()), (_a = {}, _a[menuName] = {\n type: 'prepared',\n menu: built\n }, _a)));\n };\n\n var setContents = function setContents(sPrimary, sMenus, sExpansions, dir) {\n primary.set(sPrimary);\n expansions.set(sExpansions);\n menus.set(sMenus);\n directory.set(dir);\n var sPaths = generate$2(dir, sExpansions);\n paths.set(sPaths);\n };\n\n var getTriggeringItem = function getTriggeringItem(menuValue) {\n return find$4(expansions.get(), function (v, _k) {\n return v === menuValue;\n });\n };\n\n var getTriggerData = function getTriggerData(menuValue, getItemByValue, path) {\n return getPreparedMenu(menuValue).bind(function (menu) {\n return getTriggeringItem(menuValue).bind(function (triggeringItemValue) {\n return getItemByValue(triggeringItemValue).map(function (triggeredItem) {\n return {\n triggeredMenu: menu,\n triggeringItem: triggeredItem,\n triggeringPath: path\n };\n });\n });\n });\n };\n\n var getTriggeringPath = function getTriggeringPath(itemValue, getItemByValue) {\n var extraPath = filter$2(lookupItem(itemValue).toArray(), function (menuValue) {\n return getPreparedMenu(menuValue).isSome();\n });\n return get$e(paths.get(), itemValue).bind(function (path) {\n var revPath = reverse(extraPath.concat(path));\n var triggers = bind$3(revPath, function (menuValue, menuIndex) {\n return getTriggerData(menuValue, getItemByValue, revPath.slice(0, menuIndex + 1)).fold(function () {\n return is$1(primary.get(), menuValue) ? [] : [Optional.none()];\n }, function (data) {\n return [Optional.some(data)];\n });\n });\n return sequence(triggers);\n });\n };\n\n var expand = function expand(itemValue) {\n return get$e(expansions.get(), itemValue).map(function (menu) {\n var current = get$e(paths.get(), itemValue).getOr([]);\n return [menu].concat(current);\n });\n };\n\n var collapse = function collapse(itemValue) {\n return get$e(paths.get(), itemValue).bind(function (path) {\n return path.length > 1 ? Optional.some(path.slice(1)) : Optional.none();\n });\n };\n\n var refresh = function refresh(itemValue) {\n return get$e(paths.get(), itemValue);\n };\n\n var getPreparedMenu = function getPreparedMenu(menuValue) {\n return lookupMenu(menuValue).bind(extractPreparedMenu);\n };\n\n var lookupMenu = function lookupMenu(menuValue) {\n return get$e(menus.get(), menuValue);\n };\n\n var lookupItem = function lookupItem(itemValue) {\n return get$e(expansions.get(), itemValue);\n };\n\n var otherMenus = function otherMenus(path) {\n var menuValues = directory.get();\n return difference(keys(menuValues), path);\n };\n\n var getPrimary = function getPrimary() {\n return primary.get().bind(getPreparedMenu);\n };\n\n var getMenus = function getMenus() {\n return menus.get();\n };\n\n return {\n setMenuBuilt: setMenuBuilt,\n setContents: setContents,\n expand: expand,\n refresh: refresh,\n collapse: collapse,\n lookupMenu: lookupMenu,\n lookupItem: lookupItem,\n otherMenus: otherMenus,\n getPrimary: getPrimary,\n getMenus: getMenus,\n clear: clear,\n isClear: isClear,\n getTriggeringPath: getTriggeringPath\n };\n };\n\n var extractPreparedMenu = function extractPreparedMenu(prep) {\n return prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n };\n\n var LayeredState = {\n init: init$c,\n extractPreparedMenu: extractPreparedMenu\n };\n\n var make$6 = function make$6(detail, _rawUiSpec) {\n var submenuParentItems = value$1();\n\n var buildMenus = function buildMenus(container, primaryName, menus) {\n return map$1(menus, function (spec, name) {\n var makeSketch = function makeSketch() {\n return Menu.sketch(_assign(_assign({}, spec), {\n value: name,\n markers: detail.markers,\n fakeFocus: detail.fakeFocus,\n onHighlight: detail.onHighlight,\n focusManager: detail.fakeFocus ? highlights() : dom$2()\n }));\n };\n\n return name === primaryName ? {\n type: 'prepared',\n menu: container.getSystem().build(makeSketch())\n } : {\n type: 'notbuilt',\n nbMenu: makeSketch\n };\n });\n };\n\n var layeredState = LayeredState.init();\n\n var setup = function setup(container) {\n var componentMap = buildMenus(container, detail.data.primary, detail.data.menus);\n var directory = toDirectory();\n layeredState.setContents(detail.data.primary, componentMap, detail.data.expansions, directory);\n return layeredState.getPrimary();\n };\n\n var getItemValue = function getItemValue(item) {\n return Representing.getValue(item).value;\n };\n\n var getItemByValue = function getItemByValue(_container, menus, itemValue) {\n return findMap(menus, function (menu) {\n if (!menu.getSystem().isConnected()) {\n return Optional.none();\n }\n\n var candidates = Highlighting.getCandidates(menu);\n return find$5(candidates, function (c) {\n return getItemValue(c) === itemValue;\n });\n });\n };\n\n var toDirectory = function toDirectory(_container) {\n return map$1(detail.data.menus, function (data, _menuName) {\n return bind$3(data.items, function (item) {\n return item.type === 'separator' ? [] : [item.data.value];\n });\n });\n };\n\n var setActiveMenu = function setActiveMenu(container, menu) {\n Highlighting.highlight(container, menu);\n Highlighting.getHighlighted(menu).orThunk(function () {\n return Highlighting.getFirst(menu);\n }).each(function (item) {\n dispatch(container, item.element, focusItem());\n });\n };\n\n var getMenus = function getMenus(state, menuValues) {\n return cat(map$2(menuValues, function (mv) {\n return state.lookupMenu(mv).bind(function (prep) {\n return prep.type === 'prepared' ? Optional.some(prep.menu) : Optional.none();\n });\n }));\n };\n\n var closeOthers = function closeOthers(container, state, path) {\n var others = getMenus(state, state.otherMenus(path));\n each$1(others, function (o) {\n remove$1(o.element, [detail.markers.backgroundMenu]);\n\n if (!detail.stayInDom) {\n Replacing.remove(container, o);\n }\n });\n };\n\n var getSubmenuParents = function getSubmenuParents(container) {\n return submenuParentItems.get().getOrThunk(function () {\n var r = {};\n var items = descendants(container.element, '.' + detail.markers.item);\n var parentItems = filter$2(items, function (i) {\n return get$d(i, 'aria-haspopup') === 'true';\n });\n each$1(parentItems, function (i) {\n container.getSystem().getByDom(i).each(function (itemComp) {\n var key = getItemValue(itemComp);\n r[key] = itemComp;\n });\n });\n submenuParentItems.set(r);\n return r;\n });\n };\n\n var updateAriaExpansions = function updateAriaExpansions(container, path) {\n var parentItems = getSubmenuParents(container);\n each(parentItems, function (v, k) {\n var expanded = contains$2(path, k);\n set$8(v.element, 'aria-expanded', expanded);\n });\n };\n\n var updateMenuPath = function updateMenuPath(container, state, path) {\n return Optional.from(path[0]).bind(function (latestMenuName) {\n return state.lookupMenu(latestMenuName).bind(function (menuPrep) {\n if (menuPrep.type === 'notbuilt') {\n return Optional.none();\n } else {\n var activeMenu = menuPrep.menu;\n var rest = getMenus(state, path.slice(1));\n each$1(rest, function (r) {\n add$2(r.element, detail.markers.backgroundMenu);\n });\n\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n\n remove$1(activeMenu.element, [detail.markers.backgroundMenu]);\n setActiveMenu(container, activeMenu);\n closeOthers(container, state, path);\n return Optional.some(activeMenu);\n }\n });\n });\n };\n\n var ExpandHighlightDecision;\n\n (function (ExpandHighlightDecision) {\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightSubmenu'] = 0] = 'HighlightSubmenu';\n ExpandHighlightDecision[ExpandHighlightDecision['HighlightParent'] = 1] = 'HighlightParent';\n })(ExpandHighlightDecision || (ExpandHighlightDecision = {}));\n\n var buildIfRequired = function buildIfRequired(container, menuName, menuPrep) {\n if (menuPrep.type === 'notbuilt') {\n var menu = container.getSystem().build(menuPrep.nbMenu());\n layeredState.setMenuBuilt(menuName, menu);\n return menu;\n } else {\n return menuPrep.menu;\n }\n };\n\n var expandRight = function expandRight(container, item, decision) {\n if (decision === void 0) {\n decision = ExpandHighlightDecision.HighlightSubmenu;\n }\n\n if (item.hasConfigured(Disabling) && Disabling.isDisabled(item)) {\n return Optional.some(item);\n } else {\n var value = getItemValue(item);\n return layeredState.expand(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return Optional.from(path[0]).bind(function (menuName) {\n return layeredState.lookupMenu(menuName).bind(function (activeMenuPrep) {\n var activeMenu = buildIfRequired(container, menuName, activeMenuPrep);\n\n if (!inBody(activeMenu.element)) {\n Replacing.append(container, premade(activeMenu));\n }\n\n detail.onOpenSubmenu(container, item, activeMenu, reverse(path));\n\n if (decision === ExpandHighlightDecision.HighlightSubmenu) {\n Highlighting.highlightFirst(activeMenu);\n return updateMenuPath(container, layeredState, path);\n } else {\n Highlighting.dehighlightAll(activeMenu);\n return Optional.some(item);\n }\n });\n });\n });\n }\n };\n\n var collapseLeft = function collapseLeft(container, item) {\n var value = getItemValue(item);\n return layeredState.collapse(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path).map(function (activeMenu) {\n detail.onCollapseMenu(container, item, activeMenu);\n return activeMenu;\n });\n });\n };\n\n var updateView = function updateView(container, item) {\n var value = getItemValue(item);\n return layeredState.refresh(value).bind(function (path) {\n updateAriaExpansions(container, path);\n return updateMenuPath(container, layeredState, path);\n });\n };\n\n var onRight = function onRight(container, item) {\n return inside(item.element) ? Optional.none() : expandRight(container, item, ExpandHighlightDecision.HighlightSubmenu);\n };\n\n var onLeft = function onLeft(container, item) {\n return inside(item.element) ? Optional.none() : collapseLeft(container, item);\n };\n\n var onEscape = function onEscape(container, item) {\n return collapseLeft(container, item).orThunk(function () {\n return detail.onEscape(container, item).map(function () {\n return container;\n });\n });\n };\n\n var keyOnItem = function keyOnItem(f) {\n return function (container, simulatedEvent) {\n return closest$1(simulatedEvent.getSource(), '.' + detail.markers.item).bind(function (target) {\n return container.getSystem().getByDom(target).toOptional().bind(function (item) {\n return f(container, item).map(always);\n });\n });\n };\n };\n\n var events = derive$2([run$1(focus(), function (sandbox, simulatedEvent) {\n var item = simulatedEvent.event.item;\n layeredState.lookupItem(getItemValue(item)).each(function () {\n var menu = simulatedEvent.event.menu;\n Highlighting.highlight(sandbox, menu);\n var value = getItemValue(simulatedEvent.event.item);\n layeredState.refresh(value).each(function (path) {\n return closeOthers(sandbox, layeredState, path);\n });\n });\n }), runOnExecute$1(function (component, simulatedEvent) {\n var target = simulatedEvent.event.target;\n component.getSystem().getByDom(target).each(function (item) {\n var itemValue = getItemValue(item);\n\n if (itemValue.indexOf('collapse-item') === 0) {\n collapseLeft(component, item);\n }\n\n expandRight(component, item, ExpandHighlightDecision.HighlightSubmenu).fold(function () {\n detail.onExecute(component, item);\n }, noop);\n });\n }), runOnAttached(function (container, _simulatedEvent) {\n setup(container).each(function (primary) {\n Replacing.append(container, premade(primary));\n detail.onOpenMenu(container, primary);\n\n if (detail.highlightImmediately) {\n setActiveMenu(container, primary);\n }\n });\n })].concat(detail.navigateOnHover ? [run$1(hover(), function (sandbox, simulatedEvent) {\n var item = simulatedEvent.event.item;\n updateView(sandbox, item);\n expandRight(sandbox, item, ExpandHighlightDecision.HighlightParent);\n detail.onHover(sandbox, item);\n })] : []));\n\n var getActiveItem = function getActiveItem(container) {\n return Highlighting.getHighlighted(container).bind(Highlighting.getHighlighted);\n };\n\n var collapseMenuApi = function collapseMenuApi(container) {\n getActiveItem(container).each(function (currentItem) {\n collapseLeft(container, currentItem);\n });\n };\n\n var highlightPrimary = function highlightPrimary(container) {\n layeredState.getPrimary().each(function (primary) {\n setActiveMenu(container, primary);\n });\n };\n\n var extractMenuFromContainer = function extractMenuFromContainer(container) {\n return Optional.from(container.components()[0]).filter(function (comp) {\n return get$d(comp.element, 'role') === 'menu';\n });\n };\n\n var repositionMenus = function repositionMenus(container) {\n var maybeActivePrimary = layeredState.getPrimary().bind(function (primary) {\n return getActiveItem(container).bind(function (currentItem) {\n var itemValue = getItemValue(currentItem);\n var allMenus = values(layeredState.getMenus());\n var preparedMenus = cat(map$2(allMenus, LayeredState.extractPreparedMenu));\n return layeredState.getTriggeringPath(itemValue, function (v) {\n return getItemByValue(container, preparedMenus, v);\n });\n }).map(function (triggeringPath) {\n return {\n primary: primary,\n triggeringPath: triggeringPath\n };\n });\n });\n maybeActivePrimary.fold(function () {\n extractMenuFromContainer(container).each(function (primaryMenu) {\n detail.onRepositionMenu(container, primaryMenu, []);\n });\n }, function (_a) {\n var primary = _a.primary,\n triggeringPath = _a.triggeringPath;\n detail.onRepositionMenu(container, primary, triggeringPath);\n });\n };\n\n var apis = {\n collapseMenu: collapseMenuApi,\n highlightPrimary: highlightPrimary,\n repositionMenus: repositionMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n markers: detail.markers,\n behaviours: augment(detail.tmenuBehaviours, [Keying.config({\n mode: 'special',\n onRight: keyOnItem(onRight),\n onLeft: keyOnItem(onLeft),\n onEscape: keyOnItem(onEscape),\n focusIn: function focusIn(container, _keyInfo) {\n layeredState.getPrimary().each(function (primary) {\n dispatch(container, primary.element, focusItem());\n });\n }\n }), Highlighting.config({\n highlightClass: detail.markers.selectedMenu,\n itemClass: detail.markers.menu\n }), Composing.config({\n find: function find(container) {\n return Highlighting.getHighlighted(container);\n }\n }), Replacing.config({})]),\n eventOrder: detail.eventOrder,\n apis: apis,\n events: events\n };\n };\n\n var collapseItem$1 = constant$1('collapse-item');\n\n var tieredData = function tieredData(primary, menus, expansions) {\n return {\n primary: primary,\n menus: menus,\n expansions: expansions\n };\n };\n\n var singleData = function singleData(name, menu) {\n return {\n primary: name,\n menus: wrap$1(name, menu),\n expansions: {}\n };\n };\n\n var collapseItem = function collapseItem(text) {\n return {\n value: generate$6(collapseItem$1()),\n meta: {\n text: text\n }\n };\n };\n\n var tieredMenu = single({\n name: 'TieredMenu',\n configFields: [onStrictKeyboardHandler('onExecute'), onStrictKeyboardHandler('onEscape'), onStrictHandler('onOpenMenu'), onStrictHandler('onOpenSubmenu'), onHandler('onRepositionMenu'), onHandler('onCollapseMenu'), defaulted('highlightImmediately', true), requiredObjOf('data', [required$1('primary'), required$1('menus'), required$1('expansions')]), defaulted('fakeFocus', false), onHandler('onHighlight'), onHandler('onHover'), tieredMenuMarkers(), required$1('dom'), defaulted('navigateOnHover', true), defaulted('stayInDom', false), field('tmenuBehaviours', [Keying, Highlighting, Composing, Replacing]), defaulted('eventOrder', {})],\n apis: {\n collapseMenu: function collapseMenu(apis, tmenu) {\n apis.collapseMenu(tmenu);\n },\n highlightPrimary: function highlightPrimary(apis, tmenu) {\n apis.highlightPrimary(tmenu);\n },\n repositionMenus: function repositionMenus(apis, tmenu) {\n apis.repositionMenus(tmenu);\n }\n },\n factory: make$6,\n extraApis: {\n tieredData: tieredData,\n singleData: singleData,\n collapseItem: collapseItem\n }\n });\n\n var makeMenu = function makeMenu(detail, menuSandbox, placementSpec, menuSpec, getBounds) {\n var lazySink = function lazySink() {\n return detail.lazySink(menuSandbox);\n };\n\n var layouts = menuSpec.type === 'horizontal' ? {\n layouts: {\n onLtr: function onLtr() {\n return belowOrAbove();\n },\n onRtl: function onRtl() {\n return belowOrAboveRtl();\n }\n }\n } : {};\n\n var isFirstTierSubmenu = function isFirstTierSubmenu(triggeringPaths) {\n return triggeringPaths.length === 2;\n };\n\n var getSubmenuLayouts = function getSubmenuLayouts(triggeringPaths) {\n return isFirstTierSubmenu(triggeringPaths) ? layouts : {};\n };\n\n return tieredMenu.sketch({\n dom: {\n tag: 'div'\n },\n data: menuSpec.data,\n markers: menuSpec.menu.markers,\n highlightImmediately: menuSpec.menu.highlightImmediately,\n onEscape: function onEscape() {\n Sandboxing.close(menuSandbox);\n detail.onEscape.map(function (handler) {\n return handler(menuSandbox);\n });\n return Optional.some(true);\n },\n onExecute: function onExecute() {\n return Optional.some(true);\n },\n onOpenMenu: function onOpenMenu(tmenu, menu) {\n Positioning.positionWithinBounds(lazySink().getOrDie(), menu, placementSpec, getBounds());\n },\n onOpenSubmenu: function onOpenSubmenu(tmenu, item, submenu, triggeringPaths) {\n var sink = lazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: _assign({\n type: 'submenu',\n item: item\n }, getSubmenuLayouts(triggeringPaths))\n });\n },\n onRepositionMenu: function onRepositionMenu(tmenu, primaryMenu, submenuTriggers) {\n var sink = lazySink().getOrDie();\n Positioning.positionWithinBounds(sink, primaryMenu, placementSpec, getBounds());\n each$1(submenuTriggers, function (st) {\n var submenuLayouts = getSubmenuLayouts(st.triggeringPath);\n Positioning.position(sink, st.triggeredMenu, {\n anchor: _assign({\n type: 'submenu',\n item: st.triggeringItem\n }, submenuLayouts)\n });\n });\n }\n });\n };\n\n var factory$m = function factory$m(detail, spec) {\n var isPartOfRelated = function isPartOfRelated(sandbox, queryElem) {\n var related = detail.getRelated(sandbox);\n return related.exists(function (rel) {\n return isPartOf$1(rel, queryElem);\n });\n };\n\n var setContent = function setContent(sandbox, thing) {\n Sandboxing.setContent(sandbox, thing);\n };\n\n var showAt = function showAt(sandbox, thing, placementSpec) {\n showWithin(sandbox, thing, placementSpec, Optional.none());\n };\n\n var showWithin = function showWithin(sandbox, thing, placementSpec, boxElement) {\n showWithinBounds(sandbox, thing, placementSpec, function () {\n return boxElement.map(function (elem) {\n return box$1(elem);\n });\n });\n };\n\n var showWithinBounds = function showWithinBounds(sandbox, thing, placementSpec, getBounds) {\n var sink = detail.lazySink(sandbox).getOrDie();\n Sandboxing.openWhileCloaked(sandbox, thing, function () {\n return Positioning.positionWithinBounds(sink, sandbox, placementSpec, getBounds());\n });\n Representing.setValue(sandbox, Optional.some({\n mode: 'position',\n config: placementSpec,\n getBounds: getBounds\n }));\n };\n\n var showMenuAt = function showMenuAt(sandbox, placementSpec, menuSpec) {\n showMenuWithinBounds(sandbox, placementSpec, menuSpec, Optional.none);\n };\n\n var showMenuWithinBounds = function showMenuWithinBounds(sandbox, placementSpec, menuSpec, getBounds) {\n var menu = makeMenu(detail, sandbox, placementSpec, menuSpec, getBounds);\n Sandboxing.open(sandbox, menu);\n Representing.setValue(sandbox, Optional.some({\n mode: 'menu',\n menu: menu\n }));\n };\n\n var hide = function hide(sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.setValue(sandbox, Optional.none());\n Sandboxing.close(sandbox);\n }\n };\n\n var getContent = function getContent(sandbox) {\n return Sandboxing.getState(sandbox);\n };\n\n var reposition = function reposition(sandbox) {\n if (Sandboxing.isOpen(sandbox)) {\n Representing.getValue(sandbox).each(function (state) {\n switch (state.mode) {\n case 'menu':\n Sandboxing.getState(sandbox).each(tieredMenu.repositionMenus);\n break;\n\n case 'position':\n var sink = detail.lazySink(sandbox).getOrDie();\n Positioning.positionWithinBounds(sink, sandbox, state.config, state.getBounds());\n break;\n }\n });\n }\n };\n\n var apis = {\n setContent: setContent,\n showAt: showAt,\n showWithin: showWithin,\n showWithinBounds: showWithinBounds,\n showMenuAt: showMenuAt,\n showMenuWithinBounds: showMenuWithinBounds,\n hide: hide,\n getContent: getContent,\n reposition: reposition,\n isOpen: Sandboxing.isOpen\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.inlineBehaviours, [Sandboxing.config({\n isPartOf: function isPartOf(sandbox, data, queryElem) {\n return isPartOf$1(data, queryElem) || isPartOfRelated(sandbox, queryElem);\n },\n getAttachPoint: function getAttachPoint(sandbox) {\n return detail.lazySink(sandbox).getOrDie();\n },\n onOpen: function onOpen(sandbox) {\n detail.onShow(sandbox);\n },\n onClose: function onClose(sandbox) {\n detail.onHide(sandbox);\n }\n }), Representing.config({\n store: {\n mode: 'memory',\n initialValue: Optional.none()\n }\n }), Receiving.config({\n channels: _assign(_assign({}, receivingChannel$1(_assign({\n isExtraPart: spec.isExtraPart\n }, detail.fireDismissalEventInstead.map(function (fe) {\n return {\n fireEventInstead: {\n event: fe.event\n }\n };\n }).getOr({})))), receivingChannel(_assign(_assign({}, detail.fireRepositionEventInstead.map(function (fe) {\n return {\n fireEventInstead: {\n event: fe.event\n }\n };\n }).getOr({})), {\n doReposition: reposition\n })))\n })]),\n eventOrder: detail.eventOrder,\n apis: apis\n };\n };\n\n var InlineView = single({\n name: 'InlineView',\n configFields: [required$1('lazySink'), onHandler('onShow'), onHandler('onHide'), optionFunction('onEscape'), field('inlineBehaviours', [Sandboxing, Representing, Receiving]), optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]), optionObjOf('fireRepositionEventInstead', [defaulted('event', repositionRequested())]), defaulted('getRelated', Optional.none), defaulted('isExtraPart', never), defaulted('eventOrder', Optional.none)],\n factory: factory$m,\n apis: {\n showAt: function showAt(apis, component, anchor, thing) {\n apis.showAt(component, anchor, thing);\n },\n showWithin: function showWithin(apis, component, anchor, thing, boxElement) {\n apis.showWithin(component, anchor, thing, boxElement);\n },\n showWithinBounds: function showWithinBounds(apis, component, anchor, thing, bounds) {\n apis.showWithinBounds(component, anchor, thing, bounds);\n },\n showMenuAt: function showMenuAt(apis, component, anchor, menuSpec) {\n apis.showMenuAt(component, anchor, menuSpec);\n },\n showMenuWithinBounds: function showMenuWithinBounds(apis, component, anchor, menuSpec, bounds) {\n apis.showMenuWithinBounds(component, anchor, menuSpec, bounds);\n },\n hide: function hide(apis, component) {\n apis.hide(component);\n },\n isOpen: function isOpen(apis, component) {\n return apis.isOpen(component);\n },\n getContent: function getContent(apis, component) {\n return apis.getContent(component);\n },\n setContent: function setContent(apis, component, thing) {\n apis.setContent(component, thing);\n },\n reposition: function reposition(apis, component) {\n apis.reposition(component);\n }\n }\n });\n var labelPrefix = 'layout-inset';\n\n var westEdgeX = function westEdgeX(anchor) {\n return anchor.x;\n };\n\n var middleX = function middleX(anchor, element) {\n return anchor.x + anchor.width / 2 - element.width / 2;\n };\n\n var eastEdgeX = function eastEdgeX(anchor, element) {\n return anchor.x + anchor.width - element.width;\n };\n\n var northY = function northY(anchor) {\n return anchor.y;\n };\n\n var southY = function southY(anchor, element) {\n return anchor.y + anchor.height - element.height;\n };\n\n var centreY = function centreY(anchor, element) {\n return anchor.y + anchor.height / 2 - element.height / 2;\n };\n\n var southwest = function southwest(anchor, element, bubbles) {\n return nu$6(eastEdgeX(anchor, element), southY(anchor, element), bubbles.insetSouthwest(), northwest$3(), 'southwest', boundsRestriction(anchor, {\n right: 0,\n bottom: 3\n }), labelPrefix);\n };\n\n var southeast = function southeast(anchor, element, bubbles) {\n return nu$6(westEdgeX(anchor), southY(anchor, element), bubbles.insetSoutheast(), northeast$3(), 'southeast', boundsRestriction(anchor, {\n left: 1,\n bottom: 3\n }), labelPrefix);\n };\n\n var northwest = function northwest(anchor, element, bubbles) {\n return nu$6(eastEdgeX(anchor, element), northY(anchor), bubbles.insetNorthwest(), southwest$3(), 'northwest', boundsRestriction(anchor, {\n right: 0,\n top: 2\n }), labelPrefix);\n };\n\n var northeast = function northeast(anchor, element, bubbles) {\n return nu$6(westEdgeX(anchor), northY(anchor), bubbles.insetNortheast(), southeast$3(), 'northeast', boundsRestriction(anchor, {\n left: 1,\n top: 2\n }), labelPrefix);\n };\n\n var north = function north(anchor, element, bubbles) {\n return nu$6(middleX(anchor, element), northY(anchor), bubbles.insetNorth(), south$3(), 'north', boundsRestriction(anchor, {\n top: 2\n }), labelPrefix);\n };\n\n var south = function south(anchor, element, bubbles) {\n return nu$6(middleX(anchor, element), southY(anchor, element), bubbles.insetSouth(), north$3(), 'south', boundsRestriction(anchor, {\n bottom: 3\n }), labelPrefix);\n };\n\n var east = function east(anchor, element, bubbles) {\n return nu$6(eastEdgeX(anchor, element), centreY(anchor, element), bubbles.insetEast(), west$3(), 'east', boundsRestriction(anchor, {\n right: 0\n }), labelPrefix);\n };\n\n var west = function west(anchor, element, bubbles) {\n return nu$6(westEdgeX(anchor), centreY(anchor, element), bubbles.insetWest(), east$3(), 'west', boundsRestriction(anchor, {\n left: 1\n }), labelPrefix);\n };\n\n var lookupPreserveLayout = function lookupPreserveLayout(lastPlacement) {\n switch (lastPlacement) {\n case 'north':\n return north;\n\n case 'northeast':\n return northeast;\n\n case 'northwest':\n return northwest;\n\n case 'south':\n return south;\n\n case 'southeast':\n return southeast;\n\n case 'southwest':\n return southwest;\n\n case 'east':\n return east;\n\n case 'west':\n return west;\n }\n };\n\n var preserve = function preserve(anchor, element, bubbles, placee, bounds) {\n var layout = getPlacement(placee).map(lookupPreserveLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n\n var lookupFlippedLayout = function lookupFlippedLayout(lastPlacement) {\n switch (lastPlacement) {\n case 'north':\n return south;\n\n case 'northeast':\n return southeast;\n\n case 'northwest':\n return southwest;\n\n case 'south':\n return north;\n\n case 'southeast':\n return northeast;\n\n case 'southwest':\n return northwest;\n\n case 'east':\n return west;\n\n case 'west':\n return east;\n }\n };\n\n var flip$2 = function flip$2(anchor, element, bubbles, placee, bounds) {\n var layout = getPlacement(placee).map(lookupFlippedLayout).getOr(north);\n return layout(anchor, element, bubbles, placee, bounds);\n };\n\n var global$f = tinymce.util.Tools.resolve('tinymce.util.Delay');\n\n var factory$l = function factory$l(detail) {\n var events = events$a(detail.action);\n var tag = detail.dom.tag;\n\n var lookupAttr = function lookupAttr(attr) {\n return get$e(detail.dom, 'attributes').bind(function (attrs) {\n return get$e(attrs, attr);\n });\n };\n\n var getModAttributes = function getModAttributes() {\n if (tag === 'button') {\n var type = lookupAttr('type').getOr('button');\n var roleAttrs = lookupAttr('role').map(function (role) {\n return {\n role: role\n };\n }).getOr({});\n return _assign({\n type: type\n }, roleAttrs);\n } else {\n var role = lookupAttr('role').getOr('button');\n return {\n role: role\n };\n }\n };\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events,\n behaviours: SketchBehaviours.augment(detail.buttonBehaviours, [Focusing.config({}), Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n })]),\n domModification: {\n attributes: getModAttributes()\n },\n eventOrder: detail.eventOrder\n };\n };\n\n var Button = single({\n name: 'Button',\n factory: factory$l,\n configFields: [defaulted('uid', undefined), required$1('dom'), defaulted('components', []), SketchBehaviours.field('buttonBehaviours', [Focusing, Keying]), option('action'), option('role'), defaulted('eventOrder', {})]\n });\n\n var record = function record(spec) {\n var uid = isSketchSpec(spec) && hasNonNullableKey(spec, 'uid') ? spec.uid : generate$5('memento');\n\n var get = function get(anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).getOrDie();\n };\n\n var getOpt = function getOpt(anyInSystem) {\n return anyInSystem.getSystem().getByUid(uid).toOptional();\n };\n\n var asSpec = function asSpec() {\n return _assign(_assign({}, spec), {\n uid: uid\n });\n };\n\n return {\n get: get,\n getOpt: getOpt,\n asSpec: asSpec\n };\n };\n\n var global$e = tinymce.util.Tools.resolve('tinymce.util.I18n');\n var rtlTransform = {\n 'indent': true,\n 'outdent': true,\n 'table-insert-column-after': true,\n 'table-insert-column-before': true,\n 'paste-column-after': true,\n 'paste-column-before': true,\n 'unordered-list': true,\n 'list-bull-circle': true,\n 'list-bull-default': true,\n 'list-bull-square': true\n };\n var defaultIconName = 'temporary-placeholder';\n\n var defaultIcon = function defaultIcon(icons) {\n return function () {\n return get$e(icons, defaultIconName).getOr('!not found!');\n };\n };\n\n var getIconName = function getIconName(name, icons) {\n var lcName = name.toLowerCase();\n\n if (global$e.isRtl()) {\n var rtlName = ensureTrailing(lcName, '-rtl');\n return has$2(icons, rtlName) ? rtlName : lcName;\n } else {\n return lcName;\n }\n };\n\n var lookupIcon = function lookupIcon(name, icons) {\n return get$e(icons, getIconName(name, icons));\n };\n\n var get$1 = function get$1(name, iconProvider) {\n var icons = iconProvider();\n return lookupIcon(name, icons).getOrThunk(defaultIcon(icons));\n };\n\n var getOr = function getOr(name, iconProvider, fallbackIcon) {\n var icons = iconProvider();\n return lookupIcon(name, icons).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n };\n\n var needsRtlTransform = function needsRtlTransform(iconName) {\n return global$e.isRtl() ? has$2(rtlTransform, iconName) : false;\n };\n\n var addFocusableBehaviour = function addFocusableBehaviour() {\n return config('add-focusable', [runOnAttached(function (comp) {\n child(comp.element, 'svg').each(function (svg) {\n return set$8(svg, 'focusable', 'false');\n });\n })]);\n };\n\n var renderIcon$2 = function renderIcon$2(spec, iconName, icons, fallbackIcon) {\n var _a, _b;\n\n var rtlIconClasses = needsRtlTransform(iconName) ? ['tox-icon--flip'] : [];\n var iconHtml = get$e(icons, getIconName(iconName, icons)).or(fallbackIcon).getOrThunk(defaultIcon(icons));\n return {\n dom: {\n tag: spec.tag,\n attributes: (_a = spec.attributes) !== null && _a !== void 0 ? _a : {},\n classes: spec.classes.concat(rtlIconClasses),\n innerHtml: iconHtml\n },\n behaviours: derive$1(__spreadArray(__spreadArray([], (_b = spec.behaviours) !== null && _b !== void 0 ? _b : [], true), [addFocusableBehaviour()], false))\n };\n };\n\n var render$3 = function render$3(iconName, spec, iconProvider, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Optional.none();\n }\n\n return renderIcon$2(spec, iconName, iconProvider(), fallbackIcon);\n };\n\n var renderFirst = function renderFirst(iconNames, spec, iconProvider) {\n var icons = iconProvider();\n var iconName = find$5(iconNames, function (name) {\n return has$2(icons, getIconName(name, icons));\n });\n return renderIcon$2(spec, iconName.getOr(defaultIconName), icons, Optional.none());\n };\n\n var notificationIconMap = {\n success: 'checkmark',\n error: 'warning',\n err: 'error',\n warning: 'warning',\n warn: 'warning',\n info: 'info'\n };\n\n var factory$k = function factory$k(detail) {\n var memBannerText = record({\n dom: {\n tag: 'p',\n innerHtml: detail.translationProvider(detail.text)\n },\n behaviours: derive$1([Replacing.config({})])\n });\n\n var renderPercentBar = function renderPercentBar(percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar'],\n attributes: {\n style: 'width: ' + percent + '%'\n }\n }\n };\n };\n\n var renderPercentText = function renderPercentText(percent) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-text'],\n innerHtml: percent + '%'\n }\n };\n };\n\n var memBannerProgress = record({\n dom: {\n tag: 'div',\n classes: detail.progress ? ['tox-progress-bar', 'tox-progress-indicator'] : ['tox-progress-bar']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(0)]\n }, renderPercentText(0)],\n behaviours: derive$1([Replacing.config({})])\n });\n\n var updateProgress = function updateProgress(comp, percent) {\n if (comp.getSystem().isConnected()) {\n memBannerProgress.getOpt(comp).each(function (progress) {\n Replacing.set(progress, [{\n dom: {\n tag: 'div',\n classes: ['tox-bar-container']\n },\n components: [renderPercentBar(percent)]\n }, renderPercentText(percent)]);\n });\n }\n };\n\n var updateText = function updateText(comp, text$1) {\n if (comp.getSystem().isConnected()) {\n var banner = memBannerText.get(comp);\n Replacing.set(banner, [text(text$1)]);\n }\n };\n\n var apis = {\n updateProgress: updateProgress,\n updateText: updateText\n };\n var iconChoices = flatten([detail.icon.toArray(), detail.level.toArray(), detail.level.bind(function (level) {\n return Optional.from(notificationIconMap[level]);\n }).toArray()]);\n var memButton = record(Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-notification__dismiss', 'tox-button', 'tox-button--naked', 'tox-button--icon']\n },\n components: [render$3('close', {\n tag: 'div',\n classes: ['tox-icon'],\n attributes: {\n 'aria-label': detail.translationProvider('Close')\n }\n }, detail.iconProvider)],\n action: function action(comp) {\n detail.onAction(comp);\n }\n }));\n var notificationIconSpec = renderFirst(iconChoices, {\n tag: 'div',\n classes: ['tox-notification__icon']\n }, detail.iconProvider);\n var notificationBodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body']\n },\n components: [memBannerText.asSpec()],\n behaviours: derive$1([Replacing.config({})])\n };\n var components = [notificationIconSpec, notificationBodySpec];\n return {\n uid: detail.uid,\n dom: {\n tag: 'div',\n attributes: {\n role: 'alert'\n },\n classes: detail.level.map(function (level) {\n return ['tox-notification', 'tox-notification--in', 'tox-notification--' + level];\n }).getOr(['tox-notification', 'tox-notification--in'])\n },\n behaviours: derive$1([Focusing.config({}), config('notification-events', [run$1(focusin(), function (comp) {\n memButton.getOpt(comp).each(Focusing.focus);\n })])]),\n components: components.concat(detail.progress ? [memBannerProgress.asSpec()] : []).concat(!detail.closeButton ? [] : [memButton.asSpec()]),\n apis: apis\n };\n };\n\n var Notification = single({\n name: 'Notification',\n factory: factory$k,\n configFields: [option('level'), required$1('progress'), required$1('icon'), required$1('onAction'), required$1('text'), required$1('iconProvider'), required$1('translationProvider'), defaultedBoolean('closeButton', true)],\n apis: {\n updateProgress: function updateProgress(apis, comp, percent) {\n apis.updateProgress(comp, percent);\n },\n updateText: function updateText(apis, comp, text) {\n apis.updateText(comp, text);\n }\n }\n });\n\n function NotificationManagerImpl(editor, extras, uiMothership) {\n var sharedBackstage = extras.backstage.shared;\n\n var getLayoutDirection = function getLayoutDirection(rel) {\n switch (rel) {\n case 'bc-bc':\n return south;\n\n case 'tc-tc':\n return north;\n\n case 'tc-bc':\n return north$2;\n\n case 'bc-tc':\n default:\n return south$2;\n }\n };\n\n var reposition = function reposition(notifications) {\n if (notifications.length > 0) {\n each$1(notifications, function (notification, index) {\n if (index === 0) {\n notification.moveRel(null, 'banner');\n } else {\n notification.moveRel(notifications[index - 1].getEl(), 'bc-tc');\n }\n });\n }\n };\n\n var open = function open(settings, closeCallback) {\n var hideCloseButton = !settings.closeButton && settings.timeout && (settings.timeout > 0 || settings.timeout < 0);\n\n var close = function close() {\n closeCallback();\n InlineView.hide(notificationWrapper);\n };\n\n var notification = build$1(Notification.sketch({\n text: settings.text,\n level: contains$2(['success', 'error', 'warning', 'warn', 'info'], settings.type) ? settings.type : undefined,\n progress: settings.progressBar === true,\n icon: Optional.from(settings.icon),\n closeButton: !hideCloseButton,\n onAction: close,\n iconProvider: sharedBackstage.providers.icons,\n translationProvider: sharedBackstage.providers.translate\n }));\n var notificationWrapper = build$1(InlineView.sketch(_assign({\n dom: {\n tag: 'div',\n classes: ['tox-notifications-container']\n },\n lazySink: sharedBackstage.getSink,\n fireDismissalEventInstead: {}\n }, sharedBackstage.header.isPositionedAtTop() ? {} : {\n fireRepositionEventInstead: {}\n })));\n uiMothership.add(notificationWrapper);\n\n if (settings.timeout > 0) {\n global$f.setTimeout(function () {\n close();\n }, settings.timeout);\n }\n\n var getBounds = function getBounds() {\n var contentArea = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n var win$1 = win();\n var x = clamp$1(win$1.x, contentArea.x, contentArea.right);\n var y = clamp$1(win$1.y, contentArea.y, contentArea.bottom);\n var right = Math.max(contentArea.right, win$1.right);\n var bottom = Math.max(contentArea.bottom, win$1.bottom);\n return Optional.some(bounds(x, y, right - x, bottom - y));\n };\n\n return {\n close: close,\n moveTo: function moveTo(x, y) {\n InlineView.showAt(notificationWrapper, premade(notification), {\n anchor: {\n type: 'makeshift',\n x: x,\n y: y\n }\n });\n },\n moveRel: function moveRel(element, rel) {\n var notificationSpec = premade(notification);\n var anchorOverrides = {\n maxHeightFunction: expandable$1()\n };\n\n if (rel !== 'banner' && isNonNullable(element)) {\n var layoutDirection_1 = getLayoutDirection(rel);\n var nodeAnchor = {\n type: 'node',\n root: body(),\n node: Optional.some(SugarElement.fromDom(element)),\n overrides: anchorOverrides,\n layouts: {\n onRtl: function onRtl() {\n return [layoutDirection_1];\n },\n onLtr: function onLtr() {\n return [layoutDirection_1];\n }\n }\n };\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, {\n anchor: nodeAnchor\n }, getBounds);\n } else {\n var anchor = _assign(_assign({}, sharedBackstage.anchors.banner()), {\n overrides: anchorOverrides\n });\n\n InlineView.showWithinBounds(notificationWrapper, notificationSpec, {\n anchor: anchor\n }, getBounds);\n }\n },\n text: function text(nuText) {\n Notification.updateText(notification, nuText);\n },\n settings: settings,\n getEl: function getEl() {\n return notification.element.dom;\n },\n progressBar: {\n value: function value(percent) {\n Notification.updateProgress(notification, percent);\n }\n }\n };\n };\n\n var close = function close(notification) {\n notification.close();\n };\n\n var getArgs = function getArgs(notification) {\n return notification.settings;\n };\n\n return {\n open: open,\n close: close,\n reposition: reposition,\n getArgs: getArgs\n };\n }\n\n var first = function first(fn, rate) {\n var timer = null;\n\n var cancel = function cancel() {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n var throttle = function throttle() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n if (isNull(timer)) {\n timer = setTimeout(function () {\n timer = null;\n fn.apply(null, args);\n }, rate);\n }\n };\n\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var last = function last(fn, rate) {\n var timer = null;\n\n var cancel = function cancel() {\n if (!isNull(timer)) {\n clearTimeout(timer);\n timer = null;\n }\n };\n\n var throttle = function throttle() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n cancel();\n timer = setTimeout(function () {\n timer = null;\n fn.apply(null, args);\n }, rate);\n };\n\n return {\n cancel: cancel,\n throttle: throttle\n };\n };\n\n var global$d = tinymce.util.Tools.resolve('tinymce.dom.TextSeeker');\n\n var isBoundary = function isBoundary(dom, node) {\n return dom.isBlock(node) || contains$2(['BR', 'IMG', 'HR', 'INPUT'], node.nodeName) || dom.getContentEditable(node) === 'false';\n };\n\n var repeatLeft = function repeatLeft(dom, node, offset, process, rootNode) {\n var search = global$d(dom, function (node) {\n return isBoundary(dom, node);\n });\n return Optional.from(search.backwards(node, offset, process, rootNode));\n };\n\n var autocompleteSelector = '[data-mce-autocompleter]';\n\n var create$4 = function create$4(editor, range) {\n return detect(SugarElement.fromDom(editor.selection.getNode())).getOrThunk(function () {\n var wrapper = SugarElement.fromHtml('', editor.getDoc());\n append$2(wrapper, SugarElement.fromDom(range.extractContents()));\n range.insertNode(wrapper.dom);\n parent(wrapper).each(function (elm) {\n return elm.dom.normalize();\n });\n last$1(wrapper).map(function (last) {\n editor.selection.setCursorLocation(last.dom, getEnd(last));\n });\n return wrapper;\n });\n };\n\n var detect = function detect(elm) {\n return closest$1(elm, autocompleteSelector);\n };\n\n var isValidTextRange = function isValidTextRange(rng) {\n return rng.collapsed && rng.startContainer.nodeType === 3;\n };\n\n var getText = function getText(rng) {\n return rng.toString().replace(/\\u00A0/g, ' ').replace(/\\uFEFF/g, '');\n };\n\n var isWhitespace = function isWhitespace(chr) {\n return chr !== '' && ' \\xA0\\f\\n\\r\\t\\x0B'.indexOf(chr) !== -1;\n };\n\n var stripTriggerChar = function stripTriggerChar(text, triggerCh) {\n return text.substring(triggerCh.length);\n };\n\n var findChar = function findChar(text, index, ch) {\n var i;\n\n for (i = index - 1; i >= 0; i--) {\n var char = text.charAt(i);\n\n if (isWhitespace(char)) {\n return Optional.none();\n }\n\n if (char === ch) {\n break;\n }\n }\n\n return Optional.some(i);\n };\n\n var findStart = function findStart(dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n\n if (!isValidTextRange(initRange)) {\n return Optional.none();\n }\n\n var findTriggerChIndex = function findTriggerChIndex(element, offset, text) {\n return findChar(text, offset, ch).getOr(offset);\n };\n\n var root = dom.getParent(initRange.startContainer, dom.isBlock) || dom.getRoot();\n return repeatLeft(dom, initRange.startContainer, initRange.startOffset, findTriggerChIndex, root).bind(function (spot) {\n var range = initRange.cloneRange();\n range.setStart(spot.container, spot.offset);\n range.setEnd(initRange.endContainer, initRange.endOffset);\n\n if (range.collapsed) {\n return Optional.none();\n }\n\n var text = getText(range);\n var triggerCharIndex = text.lastIndexOf(ch);\n\n if (triggerCharIndex !== 0 || stripTriggerChar(text, ch).length < minChars) {\n return Optional.none();\n } else {\n return Optional.some({\n text: stripTriggerChar(text, ch),\n range: range,\n triggerChar: ch\n });\n }\n });\n };\n\n var getContext = function getContext(dom, initRange, ch, minChars) {\n if (minChars === void 0) {\n minChars = 0;\n }\n\n return detect(SugarElement.fromDom(initRange.startContainer)).fold(function () {\n return findStart(dom, initRange, ch, minChars);\n }, function (elm) {\n var range = dom.createRng();\n range.selectNode(elm.dom);\n var text = getText(range);\n return Optional.some({\n range: range,\n text: stripTriggerChar(text, ch),\n triggerChar: ch\n });\n });\n };\n\n var setup$e = function setup$e(api, editor) {\n editor.on('keypress compositionend', api.onKeypress.throttle);\n editor.on('remove', api.onKeypress.cancel);\n\n var redirectKeyToItem = function redirectKeyToItem(item, e) {\n emitWith(item, keydown(), {\n raw: e\n });\n };\n\n editor.on('keydown', function (e) {\n var getItem = function getItem() {\n return api.getView().bind(Highlighting.getHighlighted);\n };\n\n if (e.which === 8) {\n api.onKeypress.throttle(e);\n }\n\n if (api.isActive()) {\n if (e.which === 27) {\n api.cancelIfNecessary();\n }\n\n if (api.isMenuOpen()) {\n if (e.which === 13) {\n getItem().each(emitExecute);\n e.preventDefault();\n } else if (e.which === 40) {\n getItem().fold(function () {\n api.getView().each(Highlighting.highlightFirst);\n }, function (item) {\n redirectKeyToItem(item, e);\n });\n e.preventDefault();\n e.stopImmediatePropagation();\n } else if (e.which === 37 || e.which === 38 || e.which === 39) {\n getItem().each(function (item) {\n redirectKeyToItem(item, e);\n e.preventDefault();\n e.stopImmediatePropagation();\n });\n }\n } else {\n if (e.which === 13 || e.which === 38 || e.which === 40) {\n api.cancelIfNecessary();\n }\n }\n }\n });\n editor.on('NodeChange', function (e) {\n if (api.isActive() && !api.isProcessingAction() && detect(SugarElement.fromDom(e.element)).isNone()) {\n api.cancelIfNecessary();\n }\n });\n };\n\n var AutocompleterEditorEvents = {\n setup: setup$e\n };\n var global$c = tinymce.util.Tools.resolve('tinymce.util.Promise');\n\n var point = function point(container, offset) {\n return {\n container: container,\n offset: offset\n };\n };\n\n var isText = function isText(node) {\n return node.nodeType === TEXT;\n };\n\n var isElement$1 = function isElement$1(node) {\n return node.nodeType === ELEMENT;\n };\n\n var toLast = function toLast(node) {\n if (isText(node)) {\n return point(node, node.data.length);\n } else {\n var children = node.childNodes;\n return children.length > 0 ? toLast(children[children.length - 1]) : point(node, children.length);\n }\n };\n\n var toLeaf = function toLeaf(node, offset) {\n var children = node.childNodes;\n\n if (children.length > 0 && offset < children.length) {\n return toLeaf(children[offset], 0);\n } else if (children.length > 0 && isElement$1(node) && children.length === offset) {\n return toLast(children[children.length - 1]);\n } else {\n return point(node, offset);\n }\n };\n\n var isPreviousCharContent = function isPreviousCharContent(dom, leaf) {\n return repeatLeft(dom, leaf.container, leaf.offset, function (element, offset) {\n return offset === 0 ? -1 : offset;\n }, dom.getRoot()).filter(function (spot) {\n var char = spot.container.data.charAt(spot.offset - 1);\n return !isWhitespace(char);\n }).isSome();\n };\n\n var isStartOfWord = function isStartOfWord(dom) {\n return function (rng) {\n var leaf = toLeaf(rng.startContainer, rng.startOffset);\n return !isPreviousCharContent(dom, leaf);\n };\n };\n\n var getTriggerContext = function getTriggerContext(dom, initRange, database) {\n return findMap(database.triggerChars, function (ch) {\n return getContext(dom, initRange, ch);\n });\n };\n\n var lookup$2 = function lookup$2(editor, getDatabase) {\n var database = getDatabase();\n var rng = editor.selection.getRng();\n return getTriggerContext(editor.dom, rng, database).bind(function (context) {\n return lookupWithContext(editor, getDatabase, context);\n });\n };\n\n var lookupWithContext = function lookupWithContext(editor, getDatabase, context, fetchOptions) {\n if (fetchOptions === void 0) {\n fetchOptions = {};\n }\n\n var database = getDatabase();\n var rng = editor.selection.getRng();\n var startText = rng.startContainer.nodeValue;\n var autocompleters = filter$2(database.lookupByChar(context.triggerChar), function (autocompleter) {\n return context.text.length >= autocompleter.minChars && autocompleter.matches.getOrThunk(function () {\n return isStartOfWord(editor.dom);\n })(context.range, startText, context.text);\n });\n\n if (autocompleters.length === 0) {\n return Optional.none();\n }\n\n var lookupData = global$c.all(map$2(autocompleters, function (ac) {\n var fetchResult = ac.fetch(context.text, ac.maxResults, fetchOptions);\n return fetchResult.then(function (results) {\n return {\n matchText: context.text,\n items: results,\n columns: ac.columns,\n onAction: ac.onAction,\n highlightOn: ac.highlightOn\n };\n });\n }));\n return Optional.some({\n lookupData: lookupData,\n context: context\n });\n };\n\n var separatorMenuItemSchema = objOf([requiredString('type'), optionString('text')]);\n\n var createSeparatorMenuItem = function createSeparatorMenuItem(spec) {\n return asRaw('separatormenuitem', separatorMenuItemSchema, spec);\n };\n\n var autocompleterItemSchema = objOf([defaulted('type', 'autocompleteitem'), defaulted('active', false), defaulted('disabled', false), defaulted('meta', {}), requiredString('value'), optionString('text'), optionString('icon')]);\n var autocompleterSchema = objOf([requiredString('type'), requiredString('ch'), defaultedNumber('minChars', 1), defaulted('columns', 1), defaultedNumber('maxResults', 10), optionFunction('matches'), requiredFunction('fetch'), requiredFunction('onAction'), defaultedArrayOf('highlightOn', [], string)]);\n\n var createSeparatorItem = function createSeparatorItem(spec) {\n return asRaw('Autocompleter.Separator', separatorMenuItemSchema, spec);\n };\n\n var createAutocompleterItem = function createAutocompleterItem(spec) {\n return asRaw('Autocompleter.Item', autocompleterItemSchema, spec);\n };\n\n var createAutocompleter = function createAutocompleter(spec) {\n return asRaw('Autocompleter', autocompleterSchema, spec);\n };\n\n var baseToolbarButtonFields = [defaultedBoolean('disabled', false), optionString('tooltip'), optionString('icon'), optionString('text'), defaultedFunction('onSetup', function () {\n return noop;\n })];\n var toolbarButtonSchema = objOf([requiredString('type'), requiredFunction('onAction')].concat(baseToolbarButtonFields));\n\n var createToolbarButton = function createToolbarButton(spec) {\n return asRaw('toolbarbutton', toolbarButtonSchema, spec);\n };\n\n var baseToolbarToggleButtonFields = [defaultedBoolean('active', false)].concat(baseToolbarButtonFields);\n var toggleButtonSchema = objOf(baseToolbarToggleButtonFields.concat([requiredString('type'), requiredFunction('onAction')]));\n\n var createToggleButton = function createToggleButton(spec) {\n return asRaw('ToggleButton', toggleButtonSchema, spec);\n };\n\n var contextBarFields = [defaultedFunction('predicate', never), defaultedStringEnum('scope', 'node', ['node', 'editor']), defaultedStringEnum('position', 'selection', ['node', 'selection', 'line'])];\n var contextButtonFields = baseToolbarButtonFields.concat([defaulted('type', 'contextformbutton'), defaulted('primary', false), requiredFunction('onAction'), customField('original', identity$1)]);\n var contextToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted('type', 'contextformbutton'), defaulted('primary', false), requiredFunction('onAction'), customField('original', identity$1)]);\n var launchButtonFields = baseToolbarButtonFields.concat([defaulted('type', 'contextformbutton')]);\n var launchToggleButtonFields = baseToolbarToggleButtonFields.concat([defaulted('type', 'contextformtogglebutton')]);\n var toggleOrNormal = choose$1('type', {\n contextformbutton: contextButtonFields,\n contextformtogglebutton: contextToggleButtonFields\n });\n var contextFormSchema = objOf([defaulted('type', 'contextform'), defaultedFunction('initValue', constant$1('')), optionString('label'), requiredArrayOf('commands', toggleOrNormal), optionOf('launch', choose$1('type', {\n contextformbutton: launchButtonFields,\n contextformtogglebutton: launchToggleButtonFields\n }))].concat(contextBarFields));\n\n var createContextForm = function createContextForm(spec) {\n return asRaw('ContextForm', contextFormSchema, spec);\n };\n\n var contextToolbarSchema = objOf([defaulted('type', 'contexttoolbar'), requiredString('items')].concat(contextBarFields));\n\n var createContextToolbar = function createContextToolbar(spec) {\n return asRaw('ContextToolbar', contextToolbarSchema, spec);\n };\n\n var stringArray = function stringArray(a) {\n var all = {};\n each$1(a, function (key) {\n all[key] = {};\n });\n return keys(all);\n };\n\n var register$b = function register$b(editor) {\n var popups = editor.ui.registry.getAll().popups;\n var dataset = map$1(popups, function (popup) {\n return createAutocompleter(popup).fold(function (err) {\n throw new Error(formatError(err));\n }, identity$1);\n });\n var triggerChars = stringArray(mapToArray(dataset, function (v) {\n return v.ch;\n }));\n var datasetValues = values(dataset);\n\n var lookupByChar = function lookupByChar(ch) {\n return filter$2(datasetValues, function (dv) {\n return dv.ch === ch;\n });\n };\n\n return {\n dataset: dataset,\n triggerChars: triggerChars,\n lookupByChar: lookupByChar\n };\n };\n\n var ItemResponse;\n\n (function (ItemResponse) {\n ItemResponse[ItemResponse['CLOSE_ON_EXECUTE'] = 0] = 'CLOSE_ON_EXECUTE';\n ItemResponse[ItemResponse['BUBBLE_TO_SANDBOX'] = 1] = 'BUBBLE_TO_SANDBOX';\n })(ItemResponse || (ItemResponse = {}));\n\n var ItemResponse$1 = ItemResponse;\n var navClass = 'tox-menu-nav__js';\n var selectableClass = 'tox-collection__item';\n var colorClass = 'tox-swatch';\n var presetClasses = {\n normal: navClass,\n color: colorClass\n };\n var tickedClass = 'tox-collection__item--enabled';\n var groupHeadingClass = 'tox-collection__group-heading';\n var iconClass = 'tox-collection__item-icon';\n var textClass = 'tox-collection__item-label';\n var accessoryClass = 'tox-collection__item-accessory';\n var caretClass = 'tox-collection__item-caret';\n var checkmarkClass = 'tox-collection__item-checkmark';\n var activeClass = 'tox-collection__item--active';\n var containerClass = 'tox-collection__item-container';\n var containerColumnClass = 'tox-collection__item-container--column';\n var containerRowClass = 'tox-collection__item-container--row';\n var containerAlignRightClass = 'tox-collection__item-container--align-right';\n var containerAlignLeftClass = 'tox-collection__item-container--align-left';\n var containerValignTopClass = 'tox-collection__item-container--valign-top';\n var containerValignMiddleClass = 'tox-collection__item-container--valign-middle';\n var containerValignBottomClass = 'tox-collection__item-container--valign-bottom';\n\n var classForPreset = function classForPreset(presets) {\n return get$e(presetClasses, presets).getOr(navClass);\n };\n\n var forMenu = function forMenu(presets) {\n if (presets === 'color') {\n return 'tox-swatches';\n } else {\n return 'tox-menu';\n }\n };\n\n var classes = function classes(presets) {\n return {\n backgroundMenu: 'tox-background-menu',\n selectedMenu: 'tox-selected-menu',\n selectedItem: 'tox-collection__item--active',\n hasIcons: 'tox-menu--has-icons',\n menu: forMenu(presets),\n tieredMenu: 'tox-tiered-menu'\n };\n };\n\n var markers = function markers(presets) {\n var menuClasses = classes(presets);\n return {\n backgroundMenu: menuClasses.backgroundMenu,\n selectedMenu: menuClasses.selectedMenu,\n menu: menuClasses.menu,\n selectedItem: menuClasses.selectedItem,\n item: classForPreset(presets)\n };\n };\n\n var dom$1 = function dom$1(hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n return {\n tag: 'div',\n classes: flatten([[menuClasses.menu, 'tox-menu-' + columns + '-column'], hasIcons ? [menuClasses.hasIcons] : []])\n };\n };\n\n var components = [Menu.parts.items({})];\n\n var part = function part(hasIcons, columns, presets) {\n var menuClasses = classes(presets);\n var d = {\n tag: 'div',\n classes: flatten([[menuClasses.tieredMenu]])\n };\n return {\n dom: d,\n markers: markers(presets)\n };\n };\n\n var chunk = function chunk(rowDom, numColumns) {\n return function (items) {\n var chunks = chunk$1(items, numColumns);\n return map$2(chunks, function (c) {\n return {\n dom: rowDom,\n components: c\n };\n });\n };\n };\n\n var forSwatch = function forSwatch(columns) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-menu', 'tox-swatches-menu']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-swatches']\n },\n components: [Menu.parts.items({\n preprocess: columns !== 'auto' ? chunk({\n tag: 'div',\n classes: ['tox-swatches__row']\n }, columns) : identity$1\n })]\n }]\n };\n };\n\n var forToolbar = function forToolbar(columns) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-menu', 'tox-collection', 'tox-collection--toolbar', 'tox-collection--toolbar-lg']\n },\n components: [Menu.parts.items({\n preprocess: chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)\n })]\n };\n };\n\n var preprocessCollection = function preprocessCollection(items, isSeparator) {\n var allSplits = [];\n var currentSplit = [];\n each$1(items, function (item, i) {\n if (isSeparator(item, i)) {\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n\n currentSplit = [];\n\n if (has$2(item.dom, 'innerHtml')) {\n currentSplit.push(item);\n }\n } else {\n currentSplit.push(item);\n }\n });\n\n if (currentSplit.length > 0) {\n allSplits.push(currentSplit);\n }\n\n return map$2(allSplits, function (s) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-collection__group']\n },\n components: s\n };\n });\n };\n\n var forCollection = function forCollection(columns, initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-menu', 'tox-collection'].concat(columns === 1 ? ['tox-collection--list'] : ['tox-collection--grid'])\n },\n components: [Menu.parts.items({\n preprocess: function preprocess(items) {\n if (columns !== 'auto' && columns > 1) {\n return chunk({\n tag: 'div',\n classes: ['tox-collection__group']\n }, columns)(items);\n } else {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n }\n })]\n };\n };\n\n var forHorizontalCollection = function forHorizontalCollection(initItems, _hasIcons) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-collection', 'tox-collection--horizontal']\n },\n components: [Menu.parts.items({\n preprocess: function preprocess(items) {\n return preprocessCollection(items, function (_item, i) {\n return initItems[i].type === 'separator';\n });\n }\n })]\n };\n };\n\n var menuHasIcons = function menuHasIcons(xs) {\n return exists(xs, function (item) {\n return 'icon' in item && item.icon !== undefined;\n });\n };\n\n var handleError = function handleError(error) {\n console.error(formatError(error));\n console.log(error);\n return Optional.none();\n };\n\n var createHorizontalPartialMenuWithAlloyItems = function createHorizontalPartialMenuWithAlloyItems(value, _hasIcons, items, _columns, _presets) {\n var structure = forHorizontalCollection(items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n };\n\n var createPartialMenuWithAlloyItems = function createPartialMenuWithAlloyItems(value, hasIcons, items, columns, presets) {\n if (presets === 'color') {\n var structure = forSwatch(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n\n if (presets === 'normal' && columns === 'auto') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n\n if (presets === 'normal' && columns === 1) {\n var structure = forCollection(1, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n\n if (presets === 'normal') {\n var structure = forCollection(columns, items);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n\n if (presets === 'listpreview' && columns !== 'auto') {\n var structure = forToolbar(columns);\n return {\n value: value,\n dom: structure.dom,\n components: structure.components,\n items: items\n };\n }\n\n return {\n value: value,\n dom: dom$1(hasIcons, columns, presets),\n components: components,\n items: items\n };\n };\n\n var cardImageFields = [requiredString('type'), requiredString('src'), optionString('alt'), defaultedArrayOf('classes', [], string)];\n var cardImageSchema = objOf(cardImageFields);\n var cardTextFields = [requiredString('type'), requiredString('text'), optionString('name'), defaultedArrayOf('classes', ['tox-collection__item-label'], string)];\n var cardTextSchema = objOf(cardTextFields);\n var itemSchema$1 = valueThunk(function () {\n return choose$2('type', {\n cardimage: cardImageSchema,\n cardtext: cardTextSchema,\n cardcontainer: cardContainerSchema\n });\n });\n var cardContainerSchema = objOf([requiredString('type'), defaultedString('direction', 'horizontal'), defaultedString('align', 'left'), defaultedString('valign', 'middle'), requiredArrayOf('items', itemSchema$1)]);\n var commonMenuItemFields = [defaultedBoolean('disabled', false), optionString('text'), optionString('shortcut'), field$1('value', 'value', defaultedThunk(function () {\n return generate$6('menuitem-value');\n }), anyValue()), defaulted('meta', {})];\n var cardMenuItemSchema = objOf([requiredString('type'), optionString('label'), requiredArrayOf('items', itemSchema$1), defaultedFunction('onSetup', function () {\n return noop;\n }), defaultedFunction('onAction', noop)].concat(commonMenuItemFields));\n\n var createCardMenuItem = function createCardMenuItem(spec) {\n return asRaw('cardmenuitem', cardMenuItemSchema, spec);\n };\n\n var choiceMenuItemSchema = objOf([requiredString('type'), defaultedBoolean('active', false), optionString('icon')].concat(commonMenuItemFields));\n\n var createChoiceMenuItem = function createChoiceMenuItem(spec) {\n return asRaw('choicemenuitem', choiceMenuItemSchema, spec);\n };\n\n var baseFields = [requiredString('type'), requiredString('fancytype'), defaultedFunction('onAction', noop)];\n var insertTableFields = [defaulted('initData', {})].concat(baseFields);\n var colorSwatchFields = [defaultedObjOf('initData', {}, [defaultedBoolean('allowCustomColors', true), optionArrayOf('colors', anyValue())])].concat(baseFields);\n var fancyMenuItemSchema = choose$1('fancytype', {\n inserttable: insertTableFields,\n colorswatch: colorSwatchFields\n });\n\n var createFancyMenuItem = function createFancyMenuItem(spec) {\n return asRaw('fancymenuitem', fancyMenuItemSchema, spec);\n };\n\n var menuItemSchema = objOf([requiredString('type'), defaultedFunction('onSetup', function () {\n return noop;\n }), defaultedFunction('onAction', noop), optionString('icon')].concat(commonMenuItemFields));\n\n var createMenuItem = function createMenuItem(spec) {\n return asRaw('menuitem', menuItemSchema, spec);\n };\n\n var nestedMenuItemSchema = objOf([requiredString('type'), requiredFunction('getSubmenuItems'), defaultedFunction('onSetup', function () {\n return noop;\n }), optionString('icon')].concat(commonMenuItemFields));\n\n var createNestedMenuItem = function createNestedMenuItem(spec) {\n return asRaw('nestedmenuitem', nestedMenuItemSchema, spec);\n };\n\n var toggleMenuItemSchema = objOf([requiredString('type'), optionString('icon'), defaultedBoolean('active', false), defaultedFunction('onSetup', function () {\n return noop;\n }), requiredFunction('onAction')].concat(commonMenuItemFields));\n\n var createToggleMenuItem = function createToggleMenuItem(spec) {\n return asRaw('togglemenuitem', toggleMenuItemSchema, spec);\n };\n\n var detectSize = function detectSize(comp, margin, selectorClass) {\n var descendants$1 = descendants(comp.element, '.' + selectorClass);\n\n if (descendants$1.length > 0) {\n var columnLength = findIndex$1(descendants$1, function (c) {\n var thisTop = c.dom.getBoundingClientRect().top;\n var cTop = descendants$1[0].dom.getBoundingClientRect().top;\n return Math.abs(thisTop - cTop) > margin;\n }).getOr(descendants$1.length);\n return Optional.some({\n numColumns: columnLength,\n numRows: Math.ceil(descendants$1.length / columnLength)\n });\n } else {\n return Optional.none();\n }\n };\n\n var namedEvents = function namedEvents(name, handlers) {\n return derive$1([config(name, handlers)]);\n };\n\n var unnamedEvents = function unnamedEvents(handlers) {\n return namedEvents(generate$6('unnamed-events'), handlers);\n };\n\n var SimpleBehaviours = {\n namedEvents: namedEvents,\n unnamedEvents: unnamedEvents\n };\n var ExclusivityChannel = generate$6('tooltip.exclusive');\n var ShowTooltipEvent = generate$6('tooltip.show');\n var HideTooltipEvent = generate$6('tooltip.hide');\n\n var hideAllExclusive = function hideAllExclusive(component, _tConfig, _tState) {\n component.getSystem().broadcastOn([ExclusivityChannel], {});\n };\n\n var setComponents = function setComponents(component, tConfig, tState, specs) {\n tState.getTooltip().each(function (tooltip) {\n if (tooltip.getSystem().isConnected()) {\n Replacing.set(tooltip, specs);\n }\n });\n };\n\n var TooltippingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hideAllExclusive: hideAllExclusive,\n setComponents: setComponents\n });\n\n var events$9 = function events$9(tooltipConfig, state) {\n var hide = function hide(comp) {\n state.getTooltip().each(function (p) {\n detach(p);\n tooltipConfig.onHide(comp, p);\n state.clearTooltip();\n });\n state.clearTimer();\n };\n\n var show = function show(comp) {\n if (!state.isShowing()) {\n hideAllExclusive(comp);\n var sink = tooltipConfig.lazySink(comp).getOrDie();\n var popup = comp.getSystem().build({\n dom: tooltipConfig.tooltipDom,\n components: tooltipConfig.tooltipComponents,\n events: derive$2(tooltipConfig.mode === 'normal' ? [run$1(mouseover(), function (_) {\n emit(comp, ShowTooltipEvent);\n }), run$1(mouseout(), function (_) {\n emit(comp, HideTooltipEvent);\n })] : []),\n behaviours: derive$1([Replacing.config({})])\n });\n state.setTooltip(popup);\n attach(sink, popup);\n tooltipConfig.onShow(comp, popup);\n Positioning.position(sink, popup, {\n anchor: tooltipConfig.anchor(comp)\n });\n }\n };\n\n return derive$2(flatten([[run$1(ShowTooltipEvent, function (comp) {\n state.resetTimer(function () {\n show(comp);\n }, tooltipConfig.delay);\n }), run$1(HideTooltipEvent, function (comp) {\n state.resetTimer(function () {\n hide(comp);\n }, tooltipConfig.delay);\n }), run$1(receive(), function (comp, message) {\n var receivingData = message;\n\n if (!receivingData.universal) {\n if (contains$2(receivingData.channels, ExclusivityChannel)) {\n hide(comp);\n }\n }\n }), runOnDetached(function (comp) {\n hide(comp);\n })], tooltipConfig.mode === 'normal' ? [run$1(focusin(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }), run$1(postBlur(), function (comp) {\n emit(comp, HideTooltipEvent);\n }), run$1(mouseover(), function (comp) {\n emit(comp, ShowTooltipEvent);\n }), run$1(mouseout(), function (comp) {\n emit(comp, HideTooltipEvent);\n })] : [run$1(highlight$1(), function (comp, _se) {\n emit(comp, ShowTooltipEvent);\n }), run$1(dehighlight$1(), function (comp) {\n emit(comp, HideTooltipEvent);\n })]]));\n };\n\n var ActiveTooltipping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$9\n });\n var TooltippingSchema = [required$1('lazySink'), required$1('tooltipDom'), defaulted('exclusive', true), defaulted('tooltipComponents', []), defaulted('delay', 300), defaultedStringEnum('mode', 'normal', ['normal', 'follow-highlight']), defaulted('anchor', function (comp) {\n return {\n type: 'hotspot',\n hotspot: comp,\n layouts: {\n onLtr: constant$1([south$2, north$2, southeast$2, northeast$2, southwest$2, northwest$2]),\n onRtl: constant$1([south$2, north$2, southeast$2, northeast$2, southwest$2, northwest$2])\n }\n };\n }), onHandler('onHide'), onHandler('onShow')];\n\n var init$b = function init$b() {\n var timer = value$1();\n var popup = value$1();\n\n var clearTimer = function clearTimer() {\n timer.on(clearTimeout);\n };\n\n var resetTimer = function resetTimer(f, delay) {\n clearTimer();\n timer.set(setTimeout(f, delay));\n };\n\n var readState = constant$1('not-implemented');\n return nu$8({\n getTooltip: popup.get,\n isShowing: popup.isSet,\n setTooltip: popup.set,\n clearTooltip: popup.clear,\n clearTimer: clearTimer,\n resetTimer: resetTimer,\n readState: readState\n });\n };\n\n var TooltippingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$b\n });\n var Tooltipping = create$7({\n fields: TooltippingSchema,\n name: 'tooltipping',\n active: ActiveTooltipping,\n state: TooltippingState,\n apis: TooltippingApis\n });\n\n var escape = function escape(text) {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n };\n\n var global$b = tinymce.util.Tools.resolve('tinymce.dom.DOMUtils');\n var global$a = tinymce.util.Tools.resolve('tinymce.EditorManager');\n\n var getSkinUrl = function getSkinUrl(editor) {\n var skin = editor.getParam('skin');\n var skinUrl = editor.getParam('skin_url');\n\n if (skin !== false) {\n var skinName = skin ? skin : 'oxide';\n\n if (skinUrl) {\n skinUrl = editor.documentBaseURI.toAbsolute(skinUrl);\n } else {\n skinUrl = global$a.baseURL + '/skins/ui/' + skinName;\n }\n }\n\n return skinUrl;\n };\n\n var isReadOnly = function isReadOnly(editor) {\n return editor.getParam('readonly', false, 'boolean');\n };\n\n var isSkinDisabled = function isSkinDisabled(editor) {\n return editor.getParam('skin') === false;\n };\n\n var getHeightSetting = function getHeightSetting(editor) {\n return editor.getParam('height', Math.max(editor.getElement().offsetHeight, 200));\n };\n\n var getWidthSetting = function getWidthSetting(editor) {\n return editor.getParam('width', global$b.DOM.getStyle(editor.getElement(), 'width'));\n };\n\n var getMinWidthSetting = function getMinWidthSetting(editor) {\n return Optional.from(editor.getParam('min_width')).filter(isNumber);\n };\n\n var getMinHeightSetting = function getMinHeightSetting(editor) {\n return Optional.from(editor.getParam('min_height')).filter(isNumber);\n };\n\n var getMaxWidthSetting = function getMaxWidthSetting(editor) {\n return Optional.from(editor.getParam('max_width')).filter(isNumber);\n };\n\n var getMaxHeightSetting = function getMaxHeightSetting(editor) {\n return Optional.from(editor.getParam('max_height')).filter(isNumber);\n };\n\n var getUserStyleFormats = function getUserStyleFormats(editor) {\n return Optional.from(editor.getParam('style_formats')).filter(isArray);\n };\n\n var isMergeStyleFormats = function isMergeStyleFormats(editor) {\n return editor.getParam('style_formats_merge', false, 'boolean');\n };\n\n var getLineHeightFormats = function getLineHeightFormats(editor) {\n return editor.getParam('lineheight_formats', '1 1.1 1.2 1.3 1.4 1.5 2', 'string').split(' ');\n };\n\n var getContentLanguages = function getContentLanguages(editor) {\n return editor.getParam('content_langs', undefined, 'array');\n };\n\n var getRemovedMenuItems = function getRemovedMenuItems(editor) {\n return editor.getParam('removed_menuitems', '');\n };\n\n var isMenubarEnabled = function isMenubarEnabled(editor) {\n return editor.getParam('menubar', true, 'boolean') !== false;\n };\n\n var isToolbarEnabled = function isToolbarEnabled(editor) {\n var toolbar = editor.getParam('toolbar', true);\n var isToolbarTrue = toolbar === true;\n var isToolbarString = isString(toolbar);\n var isToolbarObjectArray = isArray(toolbar) && toolbar.length > 0;\n return !isMultipleToolbars(editor) && (isToolbarObjectArray || isToolbarString || isToolbarTrue);\n };\n\n var getMultipleToolbarsSetting = function getMultipleToolbarsSetting(editor) {\n var toolbars = range$2(9, function (num) {\n return editor.getParam('toolbar' + (num + 1), false, 'string');\n });\n var toolbarArray = filter$2(toolbars, function (toolbar) {\n return typeof toolbar === 'string';\n });\n return toolbarArray.length > 0 ? Optional.some(toolbarArray) : Optional.none();\n };\n\n var isMultipleToolbars = function isMultipleToolbars(editor) {\n return getMultipleToolbarsSetting(editor).fold(function () {\n var toolbar = editor.getParam('toolbar', [], 'string[]');\n return toolbar.length > 0;\n }, always);\n };\n\n var ToolbarMode;\n\n (function (ToolbarMode) {\n ToolbarMode['default'] = 'wrap';\n ToolbarMode['floating'] = 'floating';\n ToolbarMode['sliding'] = 'sliding';\n ToolbarMode['scrolling'] = 'scrolling';\n })(ToolbarMode || (ToolbarMode = {}));\n\n var getToolbarMode = function getToolbarMode(editor) {\n return editor.getParam('toolbar_mode', '', 'string');\n };\n\n var ToolbarLocation;\n\n (function (ToolbarLocation) {\n ToolbarLocation['auto'] = 'auto';\n ToolbarLocation['top'] = 'top';\n ToolbarLocation['bottom'] = 'bottom';\n })(ToolbarLocation || (ToolbarLocation = {}));\n\n var getToolbarGroups = function getToolbarGroups(editor) {\n return editor.getParam('toolbar_groups', {}, 'object');\n };\n\n var getToolbarLocation = function getToolbarLocation(editor) {\n return editor.getParam('toolbar_location', ToolbarLocation.auto, 'string');\n };\n\n var isToolbarLocationBottom = function isToolbarLocationBottom(editor) {\n return getToolbarLocation(editor) === ToolbarLocation.bottom;\n };\n\n var fixedContainerSelector = function fixedContainerSelector(editor) {\n return editor.getParam('fixed_toolbar_container', '', 'string');\n };\n\n var fixedToolbarContainerTarget = function fixedToolbarContainerTarget(editor) {\n return editor.getParam('fixed_toolbar_container_target');\n };\n\n var isToolbarPersist = function isToolbarPersist(editor) {\n return editor.getParam('toolbar_persist', false, 'boolean');\n };\n\n var fixedContainerTarget = function fixedContainerTarget(editor) {\n if (!editor.inline) {\n return Optional.none();\n }\n\n var selector = fixedContainerSelector(editor);\n\n if (selector.length > 0) {\n return descendant(body(), selector);\n }\n\n var element = fixedToolbarContainerTarget(editor);\n\n if (isNonNullable(element)) {\n return Optional.some(SugarElement.fromDom(element));\n }\n\n return Optional.none();\n };\n\n var useFixedContainer = function useFixedContainer(editor) {\n return editor.inline && fixedContainerTarget(editor).isSome();\n };\n\n var getUiContainer = function getUiContainer(editor) {\n var fixedContainer = fixedContainerTarget(editor);\n return fixedContainer.getOrThunk(function () {\n return getContentContainer(getRootNode(SugarElement.fromDom(editor.getElement())));\n });\n };\n\n var isDistractionFree = function isDistractionFree(editor) {\n return editor.inline && !isMenubarEnabled(editor) && !isToolbarEnabled(editor) && !isMultipleToolbars(editor);\n };\n\n var isStickyToolbar = function isStickyToolbar(editor) {\n var isStickyToolbar = editor.getParam('toolbar_sticky', false, 'boolean');\n return (isStickyToolbar || editor.inline) && !useFixedContainer(editor) && !isDistractionFree(editor);\n };\n\n var getStickyToolbarOffset = function getStickyToolbarOffset(editor) {\n return editor.getParam('toolbar_sticky_offset', 0, 'number');\n };\n\n var isDraggableModal$1 = function isDraggableModal$1(editor) {\n return editor.getParam('draggable_modal', false, 'boolean');\n };\n\n var getMenus = function getMenus(editor) {\n var menu = editor.getParam('menu');\n\n if (menu) {\n return map$1(menu, function (menu) {\n return _assign(_assign({}, menu), {\n items: menu.items\n });\n });\n } else {\n return {};\n }\n };\n\n var getMenubar = function getMenubar(editor) {\n return editor.getParam('menubar');\n };\n\n var getToolbar = function getToolbar(editor) {\n return editor.getParam('toolbar', true);\n };\n\n var getFilePickerCallback = function getFilePickerCallback(editor) {\n return editor.getParam('file_picker_callback');\n };\n\n var getFilePickerTypes = function getFilePickerTypes(editor) {\n return editor.getParam('file_picker_types');\n };\n\n var getFileBrowserCallbackTypes = function getFileBrowserCallbackTypes(editor) {\n return editor.getParam('file_browser_callback_types');\n };\n\n var noTypeaheadUrls = function noTypeaheadUrls(editor) {\n return editor.getParam('typeahead_urls') === false;\n };\n\n var getAnchorTop = function getAnchorTop(editor) {\n return editor.getParam('anchor_top', '#top');\n };\n\n var getAnchorBottom = function getAnchorBottom(editor) {\n return editor.getParam('anchor_bottom', '#bottom');\n };\n\n var getFilePickerValidatorHandler = function getFilePickerValidatorHandler(editor) {\n var handler = editor.getParam('file_picker_validator_handler', undefined, 'function');\n\n if (handler === undefined) {\n return editor.getParam('filepicker_validator_handler', undefined, 'function');\n } else {\n return handler;\n }\n };\n\n var ReadOnlyChannel = 'silver.readonly';\n var ReadOnlyDataSchema = objOf([requiredBoolean('readonly')]);\n\n var broadcastReadonly = function broadcastReadonly(uiComponents, readonly) {\n var outerContainer = uiComponents.outerContainer;\n var target = outerContainer.element;\n\n if (readonly) {\n uiComponents.mothership.broadcastOn([dismissPopups()], {\n target: target\n });\n uiComponents.uiMothership.broadcastOn([dismissPopups()], {\n target: target\n });\n }\n\n uiComponents.mothership.broadcastOn([ReadOnlyChannel], {\n readonly: readonly\n });\n uiComponents.uiMothership.broadcastOn([ReadOnlyChannel], {\n readonly: readonly\n });\n };\n\n var setupReadonlyModeSwitch = function setupReadonlyModeSwitch(editor, uiComponents) {\n editor.on('init', function () {\n if (editor.mode.isReadOnly()) {\n broadcastReadonly(uiComponents, true);\n }\n });\n editor.on('SwitchMode', function () {\n return broadcastReadonly(uiComponents, editor.mode.isReadOnly());\n });\n\n if (isReadOnly(editor)) {\n editor.setMode('readonly');\n }\n };\n\n var receivingConfig = function receivingConfig() {\n var _a;\n\n return Receiving.config({\n channels: (_a = {}, _a[ReadOnlyChannel] = {\n schema: ReadOnlyDataSchema,\n onReceive: function onReceive(comp, data) {\n Disabling.set(comp, data.readonly);\n }\n }, _a)\n });\n };\n\n var item = function item(disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-collection__item--state-disabled'\n });\n };\n\n var button = function button(disabled) {\n return Disabling.config({\n disabled: disabled\n });\n };\n\n var splitButton = function splitButton(disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled'\n });\n };\n\n var toolbarButton = function toolbarButton(disabled) {\n return Disabling.config({\n disabled: disabled,\n disableClass: 'tox-tbtn--disabled',\n useNative: false\n });\n };\n\n var DisablingConfigs = {\n item: item,\n button: button,\n splitButton: splitButton,\n toolbarButton: toolbarButton\n };\n\n var runWithApi = function runWithApi(info, comp) {\n var api = info.getApi(comp);\n return function (f) {\n f(api);\n };\n };\n\n var onControlAttached = function onControlAttached(info, editorOffCell) {\n return runOnAttached(function (comp) {\n var run = runWithApi(info, comp);\n run(function (api) {\n var onDestroy = info.onSetup(api);\n\n if (isFunction(onDestroy)) {\n editorOffCell.set(onDestroy);\n }\n });\n });\n };\n\n var onControlDetached = function onControlDetached(getApi, editorOffCell) {\n return runOnDetached(function (comp) {\n return runWithApi(getApi, comp)(editorOffCell.get());\n });\n };\n\n var _a$1;\n\n var onMenuItemExecute = function onMenuItemExecute(info, itemResponse) {\n return runOnExecute$1(function (comp, simulatedEvent) {\n runWithApi(info, comp)(info.onAction);\n\n if (!info.triggersSubmenu && itemResponse === ItemResponse$1.CLOSE_ON_EXECUTE) {\n emit(comp, sandboxClose());\n simulatedEvent.stop();\n }\n });\n };\n\n var menuItemEventOrder = (_a$1 = {}, _a$1[execute$5()] = ['disabling', 'alloy.base.behaviour', 'toggling', 'item-events'], _a$1);\n var componentRenderPipeline = cat;\n\n var renderCommonItem = function renderCommonItem(spec, structure, itemResponse, providersbackstage) {\n var editorOffCell = Cell(noop);\n return {\n type: 'item',\n dom: structure.dom,\n components: componentRenderPipeline(structure.optComponents),\n data: spec.data,\n eventOrder: menuItemEventOrder,\n hasSubmenu: spec.triggersSubmenu,\n itemBehaviours: derive$1([config('item-events', [onMenuItemExecute(spec, itemResponse), onControlAttached(spec, editorOffCell), onControlDetached(spec, editorOffCell)]), DisablingConfigs.item(function () {\n return spec.disabled || providersbackstage.isDisabled();\n }), receivingConfig(), Replacing.config({})].concat(spec.itemBehaviours))\n };\n };\n\n var buildData = function buildData(source) {\n return {\n value: source.value,\n meta: _assign({\n text: source.text.getOr('')\n }, source.meta)\n };\n };\n\n var global$9 = tinymce.util.Tools.resolve('tinymce.Env');\n\n var convertText = function convertText(source) {\n var mac = {\n alt: '⌥',\n ctrl: '⌃',\n shift: '⇧',\n meta: '⌘',\n access: '⌃⌥'\n };\n var other = {\n meta: 'Ctrl',\n access: 'Shift+Alt'\n };\n var replace = global$9.mac ? mac : other;\n var shortcut = source.split('+');\n var updated = map$2(shortcut, function (segment) {\n var search = segment.toLowerCase().trim();\n return has$2(replace, search) ? replace[search] : segment;\n });\n return global$9.mac ? updated.join('') : updated.join('+');\n };\n\n var renderIcon$1 = function renderIcon$1(name, icons, classes) {\n if (classes === void 0) {\n classes = [iconClass];\n }\n\n return render$3(name, {\n tag: 'div',\n classes: classes\n }, icons);\n };\n\n var renderText = function renderText(text$1) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [text(global$e.translate(text$1))]\n };\n };\n\n var renderHtml = function renderHtml(html, classes) {\n return {\n dom: {\n tag: 'div',\n classes: classes,\n innerHtml: html\n }\n };\n };\n\n var renderStyledText = function renderStyledText(style, text$1) {\n return {\n dom: {\n tag: 'div',\n classes: [textClass]\n },\n components: [{\n dom: {\n tag: style.tag,\n styles: style.styles\n },\n components: [text(global$e.translate(text$1))]\n }]\n };\n };\n\n var renderShortcut = function renderShortcut(shortcut) {\n return {\n dom: {\n tag: 'div',\n classes: [accessoryClass],\n innerHtml: convertText(shortcut)\n }\n };\n };\n\n var renderCheckmark = function renderCheckmark(icons) {\n return renderIcon$1('checkmark', icons, [checkmarkClass]);\n };\n\n var renderSubmenuCaret = function renderSubmenuCaret(icons) {\n return renderIcon$1('chevron-right', icons, [caretClass]);\n };\n\n var renderDownwardsCaret = function renderDownwardsCaret(icons) {\n return renderIcon$1('chevron-down', icons, [caretClass]);\n };\n\n var renderContainer = function renderContainer(container, components) {\n var directionClass = container.direction === 'vertical' ? containerColumnClass : containerRowClass;\n var alignClass = container.align === 'left' ? containerAlignLeftClass : containerAlignRightClass;\n\n var getValignClass = function getValignClass() {\n switch (container.valign) {\n case 'top':\n return containerValignTopClass;\n\n case 'middle':\n return containerValignMiddleClass;\n\n case 'bottom':\n return containerValignBottomClass;\n }\n };\n\n return {\n dom: {\n tag: 'div',\n classes: [containerClass, directionClass, alignClass, getValignClass()]\n },\n components: components\n };\n };\n\n var renderImage = function renderImage(src, classes, alt) {\n return {\n dom: {\n tag: 'img',\n classes: classes,\n attributes: {\n src: src,\n alt: alt.getOr('')\n }\n }\n };\n };\n\n var renderColorStructure = function renderColorStructure(item, providerBackstage, fallbackIcon) {\n var colorPickerCommand = 'custom';\n var removeColorCommand = 'remove';\n var itemText = item.ariaLabel;\n var itemValue = item.value;\n var iconSvg = item.iconContent.map(function (name) {\n return getOr(name, providerBackstage.icons, fallbackIcon);\n });\n\n var getDom = function getDom() {\n var common = colorClass;\n var icon = iconSvg.getOr('');\n var attributes = itemText.map(function (text) {\n return {\n title: providerBackstage.translate(text)\n };\n }).getOr({});\n var baseDom = {\n tag: 'div',\n attributes: attributes,\n classes: [common]\n };\n\n if (itemValue === colorPickerCommand) {\n return _assign(_assign({}, baseDom), {\n tag: 'button',\n classes: __spreadArray(__spreadArray([], baseDom.classes, true), ['tox-swatches__picker-btn'], false),\n innerHtml: icon\n });\n } else if (itemValue === removeColorCommand) {\n return _assign(_assign({}, baseDom), {\n classes: __spreadArray(__spreadArray([], baseDom.classes, true), ['tox-swatch--remove'], false),\n innerHtml: icon\n });\n } else {\n return _assign(_assign({}, baseDom), {\n attributes: _assign(_assign({}, baseDom.attributes), {\n 'data-mce-color': itemValue\n }),\n styles: {\n 'background-color': itemValue\n }\n });\n }\n };\n\n return {\n dom: getDom(),\n optComponents: []\n };\n };\n\n var renderItemDomStructure = function renderItemDomStructure(ariaLabel) {\n var domTitle = ariaLabel.map(function (label) {\n return {\n attributes: {\n title: global$e.translate(label)\n }\n };\n }).getOr({});\n return _assign({\n tag: 'div',\n classes: [navClass, selectableClass]\n }, domTitle);\n };\n\n var renderNormalItemStructure = function renderNormalItemStructure(info, providersBackstage, renderIcons, fallbackIcon) {\n var iconSpec = {\n tag: 'div',\n classes: [iconClass]\n };\n\n var renderIcon = function renderIcon(iconName) {\n return render$3(iconName, iconSpec, providersBackstage.icons, fallbackIcon);\n };\n\n var renderEmptyIcon = function renderEmptyIcon() {\n return Optional.some({\n dom: iconSpec\n });\n };\n\n var leftIcon = renderIcons ? info.iconContent.map(renderIcon).orThunk(renderEmptyIcon) : Optional.none();\n var checkmark = info.checkMark;\n var textRender = Optional.from(info.meta).fold(function () {\n return renderText;\n }, function (meta) {\n return has$2(meta, 'style') ? curry(renderStyledText, meta.style) : renderText;\n });\n var content = info.htmlContent.fold(function () {\n return info.textContent.map(textRender);\n }, function (html) {\n return Optional.some(renderHtml(html, [textClass]));\n });\n var menuItem = {\n dom: renderItemDomStructure(info.ariaLabel),\n optComponents: [leftIcon, content, info.shortcutContent.map(renderShortcut), checkmark, info.caret]\n };\n return menuItem;\n };\n\n var renderItemStructure = function renderItemStructure(info, providersBackstage, renderIcons, fallbackIcon) {\n if (fallbackIcon === void 0) {\n fallbackIcon = Optional.none();\n }\n\n if (info.presets === 'color') {\n return renderColorStructure(info, providersBackstage, fallbackIcon);\n } else {\n return renderNormalItemStructure(info, providersBackstage, renderIcons, fallbackIcon);\n }\n };\n\n var tooltipBehaviour = function tooltipBehaviour(meta, sharedBackstage) {\n return get$e(meta, 'tooltipWorker').map(function (tooltipWorker) {\n return [Tooltipping.config({\n lazySink: sharedBackstage.getSink,\n tooltipDom: {\n tag: 'div',\n classes: ['tox-tooltip-worker-container']\n },\n tooltipComponents: [],\n anchor: function anchor(comp) {\n return {\n type: 'submenu',\n item: comp,\n overrides: {\n maxHeightFunction: expandable$1\n }\n };\n },\n mode: 'follow-highlight',\n onShow: function onShow(component, _tooltip) {\n tooltipWorker(function (elm) {\n Tooltipping.setComponents(component, [external$2({\n element: SugarElement.fromDom(elm)\n })]);\n });\n }\n })];\n }).getOr([]);\n };\n\n var encodeText = function encodeText(text) {\n return global$b.DOM.encode(text);\n };\n\n var replaceText = function replaceText(text, matchText) {\n var translated = global$e.translate(text);\n var encoded = encodeText(translated);\n\n if (matchText.length > 0) {\n var escapedMatchRegex = new RegExp(escape(matchText), 'gi');\n return encoded.replace(escapedMatchRegex, function (match) {\n return '' + match + '';\n });\n } else {\n return encoded;\n }\n };\n\n var renderAutocompleteItem = function renderAutocompleteItem(spec, matchText, useText, presets, onItemValueHandler, itemResponse, sharedBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n\n var structure = renderItemStructure({\n presets: presets,\n textContent: Optional.none(),\n htmlContent: useText ? spec.text.map(function (text) {\n return replaceText(text, matchText);\n }) : Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: Optional.none(),\n checkMark: Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, sharedBackstage.providers, renderIcons, spec.icon);\n return renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: constant$1({}),\n onAction: function onAction(_api) {\n return onItemValueHandler(spec.value, spec.meta);\n },\n onSetup: constant$1(noop),\n triggersSubmenu: false,\n itemBehaviours: tooltipBehaviour(spec.meta, sharedBackstage)\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n var render$2 = function render$2(items, extras) {\n return map$2(items, function (item) {\n switch (item.type) {\n case 'cardcontainer':\n return renderContainer(item, render$2(item.items, extras));\n\n case 'cardimage':\n return renderImage(item.src, item.classes, item.alt);\n\n case 'cardtext':\n var shouldHighlight = item.name.exists(function (name) {\n return contains$2(extras.cardText.highlightOn, name);\n });\n var matchText = shouldHighlight ? Optional.from(extras.cardText.matchText).getOr('') : '';\n return renderHtml(replaceText(item.text, matchText), item.classes);\n }\n });\n };\n\n var renderCardMenuItem = function renderCardMenuItem(spec, itemResponse, sharedBackstage, extras) {\n var getApi = function getApi(component) {\n return {\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n Disabling.set(component, state);\n each$1(descendants(component.element, '*'), function (elm) {\n component.getSystem().getByDom(elm).each(function (comp) {\n if (comp.hasConfigured(Disabling)) {\n Disabling.set(comp, state);\n }\n });\n });\n }\n };\n };\n\n var structure = {\n dom: renderItemDomStructure(spec.label),\n optComponents: [Optional.some({\n dom: {\n tag: 'div',\n classes: [containerClass, containerRowClass]\n },\n components: render$2(spec.items, extras)\n })]\n };\n return renderCommonItem({\n data: buildData(_assign({\n text: Optional.none()\n }, spec)),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: Optional.from(extras.itemBehaviours).getOr([])\n }, structure, itemResponse, sharedBackstage.providers);\n };\n\n var renderChoiceItem = function renderChoiceItem(spec, useText, presets, onItemValueHandler, isSelected, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n\n var getApi = function getApi(component) {\n return {\n setActive: function setActive(state) {\n Toggling.set(component, state);\n },\n isActive: function isActive() {\n return Toggling.isOn(component);\n },\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(component, state);\n }\n };\n };\n\n var structure = renderItemStructure({\n presets: presets,\n textContent: useText ? spec.text : Optional.none(),\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n iconContent: spec.icon,\n shortcutContent: useText ? spec.shortcut : Optional.none(),\n checkMark: useText ? Optional.some(renderCheckmark(providersBackstage.icons)) : Optional.none(),\n caret: Optional.none(),\n value: spec.value\n }, providersBackstage, renderIcons);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: function onAction(_api) {\n return onItemValueHandler(spec.value);\n },\n onSetup: function onSetup(api) {\n api.setActive(isSelected);\n return noop;\n },\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var parts$f = generate$3(owner$2(), parts$h());\n\n var hexColour = function hexColour(value) {\n return {\n value: value\n };\n };\n\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var longformRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i;\n\n var isHexString = function isHexString(hex) {\n return shorthandRegex.test(hex) || longformRegex.test(hex);\n };\n\n var normalizeHex = function normalizeHex(hex) {\n return removeLeading(hex, '#').toUpperCase();\n };\n\n var fromString$1 = function fromString$1(hex) {\n return isHexString(hex) ? Optional.some({\n value: normalizeHex(hex)\n }) : Optional.none();\n };\n\n var getLongForm = function getLongForm(hex) {\n var hexString = hex.value.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n return {\n value: hexString\n };\n };\n\n var extractValues = function extractValues(hex) {\n var longForm = getLongForm(hex);\n var splitForm = longformRegex.exec(longForm.value);\n return splitForm === null ? ['FFFFFF', 'FF', 'FF', 'FF'] : splitForm;\n };\n\n var toHex = function toHex(component) {\n var hex = component.toString(16);\n return (hex.length === 1 ? '0' + hex : hex).toUpperCase();\n };\n\n var fromRgba = function fromRgba(rgbaColour) {\n var value = toHex(rgbaColour.red) + toHex(rgbaColour.green) + toHex(rgbaColour.blue);\n return hexColour(value);\n };\n\n var min = Math.min;\n var max = Math.max;\n var round$1 = Math.round;\n var rgbRegex = /^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/;\n var rgbaRegex = /^rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*(\\d?(?:\\.\\d+)?)\\)/;\n\n var rgbaColour = function rgbaColour(red, green, blue, alpha) {\n return {\n red: red,\n green: green,\n blue: blue,\n alpha: alpha\n };\n };\n\n var isRgbaComponent = function isRgbaComponent(value) {\n var num = parseInt(value, 10);\n return num.toString() === value && num >= 0 && num <= 255;\n };\n\n var fromHsv = function fromHsv(hsv) {\n var r;\n var g;\n var b;\n var hue = (hsv.hue || 0) % 360;\n var saturation = hsv.saturation / 100;\n var brightness = hsv.value / 100;\n saturation = max(0, min(saturation, 1));\n brightness = max(0, min(brightness, 1));\n\n if (saturation === 0) {\n r = g = b = round$1(255 * brightness);\n return rgbaColour(r, g, b, 1);\n }\n\n var side = hue / 60;\n var chroma = brightness * saturation;\n var x = chroma * (1 - Math.abs(side % 2 - 1));\n var match = brightness - chroma;\n\n switch (Math.floor(side)) {\n case 0:\n r = chroma;\n g = x;\n b = 0;\n break;\n\n case 1:\n r = x;\n g = chroma;\n b = 0;\n break;\n\n case 2:\n r = 0;\n g = chroma;\n b = x;\n break;\n\n case 3:\n r = 0;\n g = x;\n b = chroma;\n break;\n\n case 4:\n r = x;\n g = 0;\n b = chroma;\n break;\n\n case 5:\n r = chroma;\n g = 0;\n b = x;\n break;\n\n default:\n r = g = b = 0;\n }\n\n r = round$1(255 * (r + match));\n g = round$1(255 * (g + match));\n b = round$1(255 * (b + match));\n return rgbaColour(r, g, b, 1);\n };\n\n var fromHex = function fromHex(hexColour) {\n var result = extractValues(hexColour);\n var red = parseInt(result[1], 16);\n var green = parseInt(result[2], 16);\n var blue = parseInt(result[3], 16);\n return rgbaColour(red, green, blue, 1);\n };\n\n var fromStringValues = function fromStringValues(red, green, blue, alpha) {\n var r = parseInt(red, 10);\n var g = parseInt(green, 10);\n var b = parseInt(blue, 10);\n var a = parseFloat(alpha);\n return rgbaColour(r, g, b, a);\n };\n\n var fromString = function fromString(rgbaString) {\n if (rgbaString === 'transparent') {\n return Optional.some(rgbaColour(0, 0, 0, 0));\n }\n\n var rgbMatch = rgbRegex.exec(rgbaString);\n\n if (rgbMatch !== null) {\n return Optional.some(fromStringValues(rgbMatch[1], rgbMatch[2], rgbMatch[3], '1'));\n }\n\n var rgbaMatch = rgbaRegex.exec(rgbaString);\n\n if (rgbaMatch !== null) {\n return Optional.some(fromStringValues(rgbaMatch[1], rgbaMatch[2], rgbaMatch[3], rgbaMatch[4]));\n }\n\n return Optional.none();\n };\n\n var toString = function toString(rgba) {\n return 'rgba(' + rgba.red + ',' + rgba.green + ',' + rgba.blue + ',' + rgba.alpha + ')';\n };\n\n var red = rgbaColour(255, 0, 0, 1);\n\n var fireSkinLoaded$1 = function fireSkinLoaded$1(editor) {\n return editor.fire('SkinLoaded');\n };\n\n var fireSkinLoadError$1 = function fireSkinLoadError$1(editor, error) {\n return editor.fire('SkinLoadError', error);\n };\n\n var fireResizeEditor = function fireResizeEditor(editor) {\n return editor.fire('ResizeEditor');\n };\n\n var fireResizeContent = function fireResizeContent(editor, e) {\n return editor.fire('ResizeContent', e);\n };\n\n var fireScrollContent = function fireScrollContent(editor, e) {\n return editor.fire('ScrollContent', e);\n };\n\n var fireTextColorChange = function fireTextColorChange(editor, data) {\n return editor.fire('TextColorChange', data);\n };\n\n var hsvColour = function hsvColour(hue, saturation, value) {\n return {\n hue: hue,\n saturation: saturation,\n value: value\n };\n };\n\n var fromRgb = function fromRgb(rgbaColour) {\n var h = 0;\n var s = 0;\n var v = 0;\n var r = rgbaColour.red / 255;\n var g = rgbaColour.green / 255;\n var b = rgbaColour.blue / 255;\n var minRGB = Math.min(r, Math.min(g, b));\n var maxRGB = Math.max(r, Math.max(g, b));\n\n if (minRGB === maxRGB) {\n v = minRGB;\n return hsvColour(0, 0, v * 100);\n }\n\n var d = r === minRGB ? g - b : b === minRGB ? r - g : b - r;\n h = r === minRGB ? 3 : b === minRGB ? 1 : 5;\n h = 60 * (h - d / (maxRGB - minRGB));\n s = (maxRGB - minRGB) / maxRGB;\n v = maxRGB;\n return hsvColour(Math.round(h), Math.round(s * 100), Math.round(v * 100));\n };\n\n var hexToHsv = function hexToHsv(hex) {\n return fromRgb(fromHex(hex));\n };\n\n var hsvToHex = function hsvToHex(hsv) {\n return fromRgba(fromHsv(hsv));\n };\n\n var anyToHex = function anyToHex(color) {\n return fromString$1(color).orThunk(function () {\n return fromString(color).map(fromRgba);\n }).getOrThunk(function () {\n var canvas = document.createElement('canvas');\n canvas.height = 1;\n canvas.width = 1;\n var canvasContext = canvas.getContext('2d');\n canvasContext.clearRect(0, 0, canvas.width, canvas.height);\n canvasContext.fillStyle = '#FFFFFF';\n canvasContext.fillStyle = color;\n canvasContext.fillRect(0, 0, 1, 1);\n var rgba = canvasContext.getImageData(0, 0, 1, 1).data;\n var r = rgba[0];\n var g = rgba[1];\n var b = rgba[2];\n var a = rgba[3];\n return fromRgba(rgbaColour(r, g, b, a));\n });\n };\n\n var global$8 = tinymce.util.Tools.resolve('tinymce.util.LocalStorage');\n var storageName = 'tinymce-custom-colors';\n\n function ColorCache(max) {\n if (max === void 0) {\n max = 10;\n }\n\n var storageString = global$8.getItem(storageName);\n var localstorage = isString(storageString) ? JSON.parse(storageString) : [];\n\n var prune = function prune(list) {\n var diff = max - list.length;\n return diff < 0 ? list.slice(0, max) : list;\n };\n\n var cache = prune(localstorage);\n\n var add = function add(key) {\n indexOf(cache, key).each(remove);\n cache.unshift(key);\n\n if (cache.length > max) {\n cache.pop();\n }\n\n global$8.setItem(storageName, JSON.stringify(cache));\n };\n\n var remove = function remove(idx) {\n cache.splice(idx, 1);\n };\n\n var state = function state() {\n return cache.slice(0);\n };\n\n return {\n add: add,\n state: state\n };\n }\n\n var choiceItem = 'choiceitem';\n var defaultColors = [{\n type: choiceItem,\n text: 'Light Green',\n value: '#BFEDD2'\n }, {\n type: choiceItem,\n text: 'Light Yellow',\n value: '#FBEEB8'\n }, {\n type: choiceItem,\n text: 'Light Red',\n value: '#F8CAC6'\n }, {\n type: choiceItem,\n text: 'Light Purple',\n value: '#ECCAFA'\n }, {\n type: choiceItem,\n text: 'Light Blue',\n value: '#C2E0F4'\n }, {\n type: choiceItem,\n text: 'Green',\n value: '#2DC26B'\n }, {\n type: choiceItem,\n text: 'Yellow',\n value: '#F1C40F'\n }, {\n type: choiceItem,\n text: 'Red',\n value: '#E03E2D'\n }, {\n type: choiceItem,\n text: 'Purple',\n value: '#B96AD9'\n }, {\n type: choiceItem,\n text: 'Blue',\n value: '#3598DB'\n }, {\n type: choiceItem,\n text: 'Dark Turquoise',\n value: '#169179'\n }, {\n type: choiceItem,\n text: 'Orange',\n value: '#E67E23'\n }, {\n type: choiceItem,\n text: 'Dark Red',\n value: '#BA372A'\n }, {\n type: choiceItem,\n text: 'Dark Purple',\n value: '#843FA1'\n }, {\n type: choiceItem,\n text: 'Dark Blue',\n value: '#236FA1'\n }, {\n type: choiceItem,\n text: 'Light Gray',\n value: '#ECF0F1'\n }, {\n type: choiceItem,\n text: 'Medium Gray',\n value: '#CED4D9'\n }, {\n type: choiceItem,\n text: 'Gray',\n value: '#95A5A6'\n }, {\n type: choiceItem,\n text: 'Dark Gray',\n value: '#7E8C8D'\n }, {\n type: choiceItem,\n text: 'Navy Blue',\n value: '#34495E'\n }, {\n type: choiceItem,\n text: 'Black',\n value: '#000000'\n }, {\n type: choiceItem,\n text: 'White',\n value: '#ffffff'\n }];\n var colorCache = ColorCache(10);\n\n var mapColors = function mapColors(colorMap) {\n var colors = [];\n\n for (var i = 0; i < colorMap.length; i += 2) {\n colors.push({\n text: colorMap[i + 1],\n value: '#' + anyToHex(colorMap[i]).value,\n type: 'choiceitem'\n });\n }\n\n return colors;\n };\n\n var getColorCols$2 = function getColorCols$2(editor, defaultCols) {\n return editor.getParam('color_cols', defaultCols, 'number');\n };\n\n var hasCustomColors$1 = function hasCustomColors$1(editor) {\n return editor.getParam('custom_colors') !== false;\n };\n\n var getColorMap = function getColorMap(editor) {\n return editor.getParam('color_map');\n };\n\n var getColors$2 = function getColors$2(editor) {\n var unmapped = getColorMap(editor);\n return unmapped !== undefined ? mapColors(unmapped) : defaultColors;\n };\n\n var getCurrentColors = function getCurrentColors() {\n return map$2(colorCache.state(), function (color) {\n return {\n type: choiceItem,\n text: color,\n value: color\n };\n });\n };\n\n var addColor = function addColor(color) {\n colorCache.add(color);\n };\n\n var fallbackColor = '#000000';\n\n var getCurrentColor = function getCurrentColor(editor, format) {\n var color;\n editor.dom.getParents(editor.selection.getStart(), function (elm) {\n var value;\n\n if (value = elm.style[format === 'forecolor' ? 'color' : 'background-color']) {\n color = color ? color : value;\n }\n });\n return Optional.from(color);\n };\n\n var applyFormat = function applyFormat(editor, format, value) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.apply(format, {\n value: value\n });\n editor.nodeChanged();\n });\n };\n\n var removeFormat = function removeFormat(editor, format) {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.formatter.remove(format, {\n value: null\n }, null, true);\n editor.nodeChanged();\n });\n };\n\n var registerCommands = function registerCommands(editor) {\n editor.addCommand('mceApplyTextcolor', function (format, value) {\n applyFormat(editor, format, value);\n });\n editor.addCommand('mceRemoveTextcolor', function (format) {\n removeFormat(editor, format);\n });\n };\n\n var calcCols = function calcCols(colors) {\n return Math.max(5, Math.ceil(Math.sqrt(colors)));\n };\n\n var getColorCols$1 = function getColorCols$1(editor) {\n var colors = getColors$2(editor);\n var defaultCols = calcCols(colors.length);\n return getColorCols$2(editor, defaultCols);\n };\n\n var getAdditionalColors = function getAdditionalColors(hasCustom) {\n var type = 'choiceitem';\n var remove = {\n type: type,\n text: 'Remove color',\n icon: 'color-swatch-remove-color',\n value: 'remove'\n };\n var custom = {\n type: type,\n text: 'Custom color',\n icon: 'color-picker',\n value: 'custom'\n };\n return hasCustom ? [remove, custom] : [remove];\n };\n\n var applyColor = function applyColor(editor, format, value, onChoice) {\n if (value === 'custom') {\n var dialog = colorPickerDialog(editor);\n dialog(function (colorOpt) {\n colorOpt.each(function (color) {\n addColor(color);\n editor.execCommand('mceApplyTextcolor', format, color);\n onChoice(color);\n });\n }, fallbackColor);\n } else if (value === 'remove') {\n onChoice('');\n editor.execCommand('mceRemoveTextcolor', format);\n } else {\n onChoice(value);\n editor.execCommand('mceApplyTextcolor', format, value);\n }\n };\n\n var getColors$1 = function getColors$1(colors, hasCustom) {\n return colors.concat(getCurrentColors().concat(getAdditionalColors(hasCustom)));\n };\n\n var getFetch$1 = function getFetch$1(colors, hasCustom) {\n return function (callback) {\n callback(getColors$1(colors, hasCustom));\n };\n };\n\n var setIconColor = function setIconColor(splitButtonApi, name, newColor) {\n var id = name === 'forecolor' ? 'tox-icon-text-color__color' : 'tox-icon-highlight-bg-color__color';\n splitButtonApi.setIconFill(id, newColor);\n };\n\n var registerTextColorButton = function registerTextColorButton(editor, name, format, tooltip, lastColor) {\n editor.ui.registry.addSplitButton(name, {\n tooltip: tooltip,\n presets: 'color',\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n select: function select(value) {\n var optCurrentRgb = getCurrentColor(editor, format);\n return optCurrentRgb.bind(function (currentRgb) {\n return fromString(currentRgb).map(function (rgba) {\n var currentHex = fromRgba(rgba).value;\n return contains$1(value.toLowerCase(), currentHex);\n });\n }).getOr(false);\n },\n columns: getColorCols$1(editor),\n fetch: getFetch$1(getColors$2(editor), hasCustomColors$1(editor)),\n onAction: function onAction(_splitButtonApi) {\n applyColor(editor, format, lastColor.get(), noop);\n },\n onItemAction: function onItemAction(_splitButtonApi, value) {\n applyColor(editor, format, value, function (newColor) {\n lastColor.set(newColor);\n fireTextColorChange(editor, {\n name: name,\n color: newColor\n });\n });\n },\n onSetup: function onSetup(splitButtonApi) {\n setIconColor(splitButtonApi, name, lastColor.get());\n\n var handler = function handler(e) {\n if (e.name === name) {\n setIconColor(splitButtonApi, e.name, e.color);\n }\n };\n\n editor.on('TextColorChange', handler);\n return function () {\n editor.off('TextColorChange', handler);\n };\n }\n });\n };\n\n var registerTextColorMenuItem = function registerTextColorMenuItem(editor, name, format, text) {\n editor.ui.registry.addNestedMenuItem(name, {\n text: text,\n icon: name === 'forecolor' ? 'text-color' : 'highlight-bg-color',\n getSubmenuItems: function getSubmenuItems() {\n return [{\n type: 'fancymenuitem',\n fancytype: 'colorswatch',\n onAction: function onAction(data) {\n applyColor(editor, format, data.value, noop);\n }\n }];\n }\n });\n };\n\n var colorPickerDialog = function colorPickerDialog(editor) {\n return function (callback, value) {\n var isValid = false;\n\n var onSubmit = function onSubmit(api) {\n var data = api.getData();\n var hex = data.colorpicker;\n\n if (isValid) {\n callback(Optional.from(hex));\n api.close();\n } else {\n editor.windowManager.alert(editor.translate(['Invalid hex color code: {0}', hex]));\n }\n };\n\n var onAction = function onAction(_api, details) {\n if (details.name === 'hex-valid') {\n isValid = details.value;\n }\n };\n\n var initialData = {\n colorpicker: value\n };\n editor.windowManager.open({\n title: 'Color Picker',\n size: 'normal',\n body: {\n type: 'panel',\n items: [{\n type: 'colorpicker',\n name: 'colorpicker',\n label: 'Color'\n }]\n },\n buttons: [{\n type: 'cancel',\n name: 'cancel',\n text: 'Cancel'\n }, {\n type: 'submit',\n name: 'save',\n text: 'Save',\n primary: true\n }],\n initialData: initialData,\n onAction: onAction,\n onSubmit: onSubmit,\n onClose: noop,\n onCancel: function onCancel() {\n callback(Optional.none());\n }\n });\n };\n };\n\n var register$a = function register$a(editor) {\n registerCommands(editor);\n var lastForeColor = Cell(fallbackColor);\n var lastBackColor = Cell(fallbackColor);\n registerTextColorButton(editor, 'forecolor', 'forecolor', 'Text color', lastForeColor);\n registerTextColorButton(editor, 'backcolor', 'hilitecolor', 'Background color', lastBackColor);\n registerTextColorMenuItem(editor, 'forecolor', 'forecolor', 'Text color');\n registerTextColorMenuItem(editor, 'backcolor', 'hilitecolor', 'Background color');\n };\n\n var createPartialChoiceMenu = function createPartialChoiceMenu(value, items, onItemValueHandler, columns, presets, itemResponse, select, providersBackstage) {\n var hasIcons = menuHasIcons(items);\n var presetItemTypes = presets !== 'color' ? 'normal' : 'color';\n var alloyItems = createChoiceItems(items, onItemValueHandler, columns, presetItemTypes, itemResponse, select, providersBackstage);\n return createPartialMenuWithAlloyItems(value, hasIcons, alloyItems, columns, presets);\n };\n\n var createChoiceItems = function createChoiceItems(items, onItemValueHandler, columns, itemPresets, itemResponse, select, providersBackstage) {\n return cat(map$2(items, function (item) {\n if (item.type === 'choiceitem') {\n return createChoiceMenuItem(item).fold(handleError, function (d) {\n return Optional.some(renderChoiceItem(d, columns === 1, itemPresets, onItemValueHandler, select(item.value), itemResponse, providersBackstage, menuHasIcons(items)));\n });\n } else {\n return Optional.none();\n }\n }));\n };\n\n var deriveMenuMovement = function deriveMenuMovement(columns, presets) {\n var menuMarkers = markers(presets);\n\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: true\n };\n } else if (columns === 'auto') {\n return {\n mode: 'grid',\n selector: '.' + menuMarkers.item,\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n var rowClass = presets === 'color' ? 'tox-swatches__row' : 'tox-collection__group';\n return {\n mode: 'matrix',\n rowSelector: '.' + rowClass\n };\n }\n };\n\n var deriveCollectionMovement = function deriveCollectionMovement(columns, presets) {\n if (columns === 1) {\n return {\n mode: 'menu',\n moveOnTab: false,\n selector: '.tox-collection__item'\n };\n } else if (columns === 'auto') {\n return {\n mode: 'flatgrid',\n selector: '.' + 'tox-collection__item',\n initSize: {\n numColumns: 1,\n numRows: 1\n }\n };\n } else {\n return {\n mode: 'matrix',\n selectors: {\n row: presets === 'color' ? '.tox-swatches__row' : '.tox-collection__group',\n cell: presets === 'color' ? '.' + colorClass : '.' + selectableClass\n }\n };\n }\n };\n\n var renderColorSwatchItem = function renderColorSwatchItem(spec, backstage) {\n var items = getColorItems(spec, backstage);\n var columns = backstage.colorinput.getColorCols();\n var presets = 'color';\n var menuSpec = createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onAction({\n value: value\n });\n }, columns, presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, backstage.shared.providers);\n\n var widgetSpec = _assign(_assign({}, menuSpec), {\n markers: markers(presets),\n movement: deriveMenuMovement(columns, presets)\n });\n\n return {\n type: 'widget',\n data: {\n value: generate$6('widget-id')\n },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget(Menu.sketch(widgetSpec))]\n };\n };\n\n var getColorItems = function getColorItems(spec, backstage) {\n var useCustomColors = spec.initData.allowCustomColors && backstage.colorinput.hasCustomColors();\n return spec.initData.colors.fold(function () {\n return getColors$1(backstage.colorinput.getColors(), useCustomColors);\n }, function (colors) {\n return colors.concat(getAdditionalColors(useCustomColors));\n });\n };\n\n var cellOverEvent = generate$6('cell-over');\n var cellExecuteEvent = generate$6('cell-execute');\n\n var makeCell = function makeCell(row, col, labelId) {\n var _a;\n\n var emitCellOver = function emitCellOver(c) {\n return emitWith(c, cellOverEvent, {\n row: row,\n col: col\n });\n };\n\n var emitExecute = function emitExecute(c) {\n return emitWith(c, cellExecuteEvent, {\n row: row,\n col: col\n });\n };\n\n var onClick = function onClick(c, se) {\n se.stop();\n emitExecute(c);\n };\n\n return build$1({\n dom: {\n tag: 'div',\n attributes: (_a = {\n role: 'button'\n }, _a['aria-labelledby'] = labelId, _a)\n },\n behaviours: derive$1([config('insert-table-picker-cell', [run$1(mouseover(), Focusing.focus), run$1(execute$5(), emitExecute), run$1(click(), onClick), run$1(tap(), onClick)]), Toggling.config({\n toggleClass: 'tox-insert-table-picker__selected',\n toggleOnExecute: false\n }), Focusing.config({\n onFocus: emitCellOver\n })])\n });\n };\n\n var makeCells = function makeCells(labelId, numRows, numCols) {\n var cells = [];\n\n for (var i = 0; i < numRows; i++) {\n var row = [];\n\n for (var j = 0; j < numCols; j++) {\n row.push(makeCell(i, j, labelId));\n }\n\n cells.push(row);\n }\n\n return cells;\n };\n\n var selectCells = function selectCells(cells, selectedRow, selectedColumn, numRows, numColumns) {\n for (var i = 0; i < numRows; i++) {\n for (var j = 0; j < numColumns; j++) {\n Toggling.set(cells[i][j], i <= selectedRow && j <= selectedColumn);\n }\n }\n };\n\n var makeComponents = function makeComponents(cells) {\n return bind$3(cells, function (cellRow) {\n return map$2(cellRow, premade);\n });\n };\n\n var makeLabelText = function makeLabelText(row, col) {\n return text(col + 'x' + row);\n };\n\n var renderInsertTableMenuItem = function renderInsertTableMenuItem(spec) {\n var numRows = 10;\n var numColumns = 10;\n var sizeLabelId = generate$6('size-label');\n var cells = makeCells(sizeLabelId, numRows, numColumns);\n var emptyLabelText = makeLabelText(0, 0);\n var memLabel = record({\n dom: {\n tag: 'span',\n classes: ['tox-insert-table-picker__label'],\n attributes: {\n id: sizeLabelId\n }\n },\n components: [emptyLabelText],\n behaviours: derive$1([Replacing.config({})])\n });\n return {\n type: 'widget',\n data: {\n value: generate$6('widget-id')\n },\n dom: {\n tag: 'div',\n classes: ['tox-fancymenuitem']\n },\n autofocus: true,\n components: [parts$f.widget({\n dom: {\n tag: 'div',\n classes: ['tox-insert-table-picker']\n },\n components: makeComponents(cells).concat(memLabel.asSpec()),\n behaviours: derive$1([config('insert-table-picker', [runOnAttached(function (c) {\n Replacing.set(memLabel.get(c), [emptyLabelText]);\n }), runWithTarget(cellOverEvent, function (c, t, e) {\n var _a = e.event,\n row = _a.row,\n col = _a.col;\n selectCells(cells, row, col, numRows, numColumns);\n Replacing.set(memLabel.get(c), [makeLabelText(row + 1, col + 1)]);\n }), runWithTarget(cellExecuteEvent, function (c, _, e) {\n var _a = e.event,\n row = _a.row,\n col = _a.col;\n spec.onAction({\n numRows: row + 1,\n numColumns: col + 1\n });\n emit(c, sandboxClose());\n })]), Keying.config({\n initSize: {\n numRows: numRows,\n numColumns: numColumns\n },\n mode: 'flatgrid',\n selector: '[role=\"button\"]'\n })])\n })]\n };\n };\n\n var fancyMenuItems = {\n inserttable: renderInsertTableMenuItem,\n colorswatch: renderColorSwatchItem\n };\n\n var renderFancyMenuItem = function renderFancyMenuItem(spec, backstage) {\n return get$e(fancyMenuItems, spec.fancytype).map(function (render) {\n return render(spec, backstage);\n });\n };\n\n var renderNestedItem = function renderNestedItem(spec, itemResponse, providersBackstage, renderIcons, downwardsCaret) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n\n if (downwardsCaret === void 0) {\n downwardsCaret = false;\n }\n\n var caret = downwardsCaret ? renderDownwardsCaret(providersBackstage.icons) : renderSubmenuCaret(providersBackstage.icons);\n\n var getApi = function getApi(component) {\n return {\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(component, state);\n }\n };\n };\n\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.some(caret),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: noop,\n onSetup: spec.onSetup,\n triggersSubmenu: true,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n var renderNormalItem = function renderNormalItem(spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n\n var getApi = function getApi(component) {\n return {\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(component, state);\n }\n };\n };\n\n var structure = renderItemStructure({\n presets: 'normal',\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n caret: Optional.none(),\n checkMark: Optional.none(),\n shortcutContent: spec.shortcut\n }, providersBackstage, renderIcons);\n return renderCommonItem({\n data: buildData(spec),\n getApi: getApi,\n disabled: spec.disabled,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage);\n };\n\n var renderSeparatorItem = function renderSeparatorItem(spec) {\n var innerHtml = spec.text.fold(function () {\n return {};\n }, function (text) {\n return {\n innerHtml: text\n };\n });\n return {\n type: 'separator',\n dom: _assign({\n tag: 'div',\n classes: [selectableClass, groupHeadingClass]\n }, innerHtml),\n components: []\n };\n };\n\n var renderToggleMenuItem = function renderToggleMenuItem(spec, itemResponse, providersBackstage, renderIcons) {\n if (renderIcons === void 0) {\n renderIcons = true;\n }\n\n var getApi = function getApi(component) {\n return {\n setActive: function setActive(state) {\n Toggling.set(component, state);\n },\n isActive: function isActive() {\n return Toggling.isOn(component);\n },\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(component, state);\n }\n };\n };\n\n var structure = renderItemStructure({\n iconContent: spec.icon,\n textContent: spec.text,\n htmlContent: Optional.none(),\n ariaLabel: spec.text,\n checkMark: Optional.some(renderCheckmark(providersBackstage.icons)),\n caret: Optional.none(),\n shortcutContent: spec.shortcut,\n presets: 'normal',\n meta: spec.meta\n }, providersBackstage, renderIcons);\n return deepMerge(renderCommonItem({\n data: buildData(spec),\n disabled: spec.disabled,\n getApi: getApi,\n onAction: spec.onAction,\n onSetup: spec.onSetup,\n triggersSubmenu: false,\n itemBehaviours: []\n }, structure, itemResponse, providersBackstage), {\n toggling: {\n toggleClass: tickedClass,\n toggleOnExecute: false,\n selected: spec.active\n }\n });\n };\n\n var autocomplete = renderAutocompleteItem;\n var separator$3 = renderSeparatorItem;\n var normal = renderNormalItem;\n var nested = renderNestedItem;\n var toggle$1 = renderToggleMenuItem;\n var fancy = renderFancyMenuItem;\n var card = renderCardMenuItem;\n var FocusMode;\n\n (function (FocusMode) {\n FocusMode[FocusMode['ContentFocus'] = 0] = 'ContentFocus';\n FocusMode[FocusMode['UiFocus'] = 1] = 'UiFocus';\n })(FocusMode || (FocusMode = {}));\n\n var createMenuItemFromBridge = function createMenuItemFromBridge(item, itemResponse, backstage, menuHasIcons, isHorizontalMenu) {\n var providersBackstage = backstage.shared.providers;\n\n var parseForHorizontalMenu = function parseForHorizontalMenu(menuitem) {\n return !isHorizontalMenu ? menuitem : _assign(_assign({}, menuitem), {\n shortcut: Optional.none(),\n icon: menuitem.text.isSome() ? Optional.none() : menuitem.icon\n });\n };\n\n switch (item.type) {\n case 'menuitem':\n return createMenuItem(item).fold(handleError, function (d) {\n return Optional.some(normal(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons));\n });\n\n case 'nestedmenuitem':\n return createNestedMenuItem(item).fold(handleError, function (d) {\n return Optional.some(nested(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons, isHorizontalMenu));\n });\n\n case 'togglemenuitem':\n return createToggleMenuItem(item).fold(handleError, function (d) {\n return Optional.some(toggle$1(parseForHorizontalMenu(d), itemResponse, providersBackstage, menuHasIcons));\n });\n\n case 'separator':\n return createSeparatorMenuItem(item).fold(handleError, function (d) {\n return Optional.some(separator$3(d));\n });\n\n case 'fancymenuitem':\n return createFancyMenuItem(item).fold(handleError, function (d) {\n return fancy(parseForHorizontalMenu(d), backstage);\n });\n\n default:\n {\n console.error('Unknown item in general menu', item);\n return Optional.none();\n }\n }\n };\n\n var createAutocompleteItems = function createAutocompleteItems(items, matchText, onItemValueHandler, columns, itemResponse, sharedBackstage, highlightOn) {\n var renderText = columns === 1;\n var renderIcons = !renderText || menuHasIcons(items);\n return cat(map$2(items, function (item) {\n switch (item.type) {\n case 'separator':\n return createSeparatorItem(item).fold(handleError, function (d) {\n return Optional.some(separator$3(d));\n });\n\n case 'cardmenuitem':\n return createCardMenuItem(item).fold(handleError, function (d) {\n return Optional.some(card(_assign(_assign({}, d), {\n onAction: function onAction(api) {\n d.onAction(api);\n onItemValueHandler(d.value, d.meta);\n }\n }), itemResponse, sharedBackstage, {\n itemBehaviours: tooltipBehaviour(d.meta, sharedBackstage),\n cardText: {\n matchText: matchText,\n highlightOn: highlightOn\n }\n }));\n });\n\n case 'autocompleteitem':\n default:\n return createAutocompleterItem(item).fold(handleError, function (d) {\n return Optional.some(autocomplete(d, matchText, renderText, 'normal', onItemValueHandler, itemResponse, sharedBackstage, renderIcons));\n });\n }\n }));\n };\n\n var createPartialMenu = function createPartialMenu(value, items, itemResponse, backstage, isHorizontalMenu) {\n var hasIcons = menuHasIcons(items);\n var alloyItems = cat(map$2(items, function (item) {\n var itemHasIcon = function itemHasIcon(i) {\n return isHorizontalMenu ? !has$2(i, 'text') : hasIcons;\n };\n\n var createItem = function createItem(i) {\n return createMenuItemFromBridge(i, itemResponse, backstage, itemHasIcon(i), isHorizontalMenu);\n };\n\n if (item.type === 'nestedmenuitem' && item.getSubmenuItems().length <= 0) {\n return createItem(_assign(_assign({}, item), {\n disabled: true\n }));\n } else {\n return createItem(item);\n }\n }));\n var createPartial = isHorizontalMenu ? createHorizontalPartialMenuWithAlloyItems : createPartialMenuWithAlloyItems;\n return createPartial(value, hasIcons, alloyItems, 1, 'normal');\n };\n\n var createTieredDataFrom = function createTieredDataFrom(partialMenu) {\n return tieredMenu.singleData(partialMenu.value, partialMenu);\n };\n\n var createMenuFrom = function createMenuFrom(partialMenu, columns, focusMode, presets) {\n var focusManager = focusMode === FocusMode.ContentFocus ? highlights() : dom$2();\n var movement = deriveMenuMovement(columns, presets);\n var menuMarkers = markers(presets);\n return {\n dom: partialMenu.dom,\n components: partialMenu.components,\n items: partialMenu.items,\n value: partialMenu.value,\n markers: {\n selectedItem: menuMarkers.selectedItem,\n item: menuMarkers.item\n },\n movement: movement,\n fakeFocus: focusMode === FocusMode.ContentFocus,\n focusManager: focusManager,\n menuBehaviours: SimpleBehaviours.unnamedEvents(columns !== 'auto' ? [] : [runOnAttached(function (comp, _se) {\n detectSize(comp, 4, menuMarkers.item).each(function (_a) {\n var numColumns = _a.numColumns,\n numRows = _a.numRows;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n };\n };\n\n var register$9 = function register$9(editor, sharedBackstage) {\n var activeAutocompleter = value$1();\n var processingAction = Cell(false);\n var autocompleter = build$1(InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-autocompleter']\n },\n components: [],\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissAutocompleter', [run$1(dismissRequested(), function () {\n return cancelIfNecessary();\n })])]),\n lazySink: sharedBackstage.getSink\n }));\n\n var isMenuOpen = function isMenuOpen() {\n return InlineView.isOpen(autocompleter);\n };\n\n var isActive = function isActive() {\n return activeAutocompleter.get().isSome();\n };\n\n var hideIfNecessary = function hideIfNecessary() {\n if (isActive()) {\n InlineView.hide(autocompleter);\n }\n };\n\n var cancelIfNecessary = function cancelIfNecessary() {\n if (isActive()) {\n var lastElement = activeAutocompleter.get().map(function (ac) {\n return ac.element;\n });\n detect(lastElement.getOr(SugarElement.fromDom(editor.selection.getNode()))).each(unwrap);\n hideIfNecessary();\n activeAutocompleter.clear();\n processingAction.set(false);\n }\n };\n\n var getAutocompleters = cached(function () {\n return register$b(editor);\n });\n\n var getCombinedItems = function getCombinedItems(triggerChar, matches) {\n var columns = findMap(matches, function (m) {\n return Optional.from(m.columns);\n }).getOr(1);\n return bind$3(matches, function (match) {\n var choices = match.items;\n return createAutocompleteItems(choices, match.matchText, function (itemValue, itemMeta) {\n var nr = editor.selection.getRng();\n getContext(editor.dom, nr, triggerChar).fold(function () {\n return console.error('Lost context. Cursor probably moved');\n }, function (_a) {\n var range = _a.range;\n var autocompleterApi = {\n hide: function hide() {\n cancelIfNecessary();\n },\n reload: function reload(fetchOptions) {\n hideIfNecessary();\n load(fetchOptions);\n }\n };\n processingAction.set(true);\n match.onAction(autocompleterApi, range, itemValue, itemMeta);\n processingAction.set(false);\n });\n }, columns, ItemResponse$1.BUBBLE_TO_SANDBOX, sharedBackstage, match.highlightOn);\n });\n };\n\n var commenceIfNecessary = function commenceIfNecessary(context) {\n if (!isActive()) {\n var wrapper = create$4(editor, context.range);\n activeAutocompleter.set({\n triggerChar: context.triggerChar,\n element: wrapper,\n matchLength: context.text.length\n });\n processingAction.set(false);\n }\n };\n\n var display = function display(ac, context, lookupData, items) {\n ac.matchLength = context.text.length;\n var columns = findMap(lookupData, function (ld) {\n return Optional.from(ld.columns);\n }).getOr(1);\n InlineView.showAt(autocompleter, Menu.sketch(createMenuFrom(createPartialMenuWithAlloyItems('autocompleter-value', true, items, columns, 'normal'), columns, FocusMode.ContentFocus, 'normal')), {\n anchor: {\n type: 'node',\n root: SugarElement.fromDom(editor.getBody()),\n node: Optional.from(ac.element)\n }\n });\n InlineView.getContent(autocompleter).each(Highlighting.highlightFirst);\n };\n\n var doLookup = function doLookup(fetchOptions) {\n return activeAutocompleter.get().map(function (ac) {\n return getContext(editor.dom, editor.selection.getRng(), ac.triggerChar).bind(function (newContext) {\n return lookupWithContext(editor, getAutocompleters, newContext, fetchOptions);\n });\n }).getOrThunk(function () {\n return lookup$2(editor, getAutocompleters);\n });\n };\n\n var load = function load(fetchOptions) {\n doLookup(fetchOptions).fold(cancelIfNecessary, function (lookupInfo) {\n commenceIfNecessary(lookupInfo.context);\n lookupInfo.lookupData.then(function (lookupData) {\n activeAutocompleter.get().map(function (ac) {\n var context = lookupInfo.context;\n\n if (ac.triggerChar === context.triggerChar) {\n var combinedItems = getCombinedItems(context.triggerChar, lookupData);\n\n if (combinedItems.length > 0) {\n display(ac, context, lookupData, combinedItems);\n } else if (context.text.length - ac.matchLength >= 10) {\n cancelIfNecessary();\n } else {\n hideIfNecessary();\n }\n }\n });\n });\n });\n };\n\n var onKeypress = last(function (e) {\n if (e.which === 27) {\n return;\n }\n\n load();\n }, 50);\n var autocompleterUiApi = {\n onKeypress: onKeypress,\n cancelIfNecessary: cancelIfNecessary,\n isMenuOpen: isMenuOpen,\n isActive: isActive,\n isProcessingAction: processingAction.get,\n getView: function getView() {\n return InlineView.getContent(autocompleter);\n }\n };\n\n if (editor.hasPlugin('rtc') === false) {\n AutocompleterEditorEvents.setup(autocompleterUiApi, editor);\n }\n };\n\n var Autocompleter = {\n register: register$9\n };\n\n var closest = function closest(scope, selector, isRoot) {\n return closest$1(scope, selector, isRoot).isSome();\n };\n\n var DelayedFunction = function DelayedFunction(fun, delay) {\n var ref = null;\n\n var schedule = function schedule() {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n ref = setTimeout(function () {\n fun.apply(null, args);\n ref = null;\n }, delay);\n };\n\n var cancel = function cancel() {\n if (ref !== null) {\n clearTimeout(ref);\n ref = null;\n }\n };\n\n return {\n cancel: cancel,\n schedule: schedule\n };\n };\n\n var SIGNIFICANT_MOVE = 5;\n var LONGPRESS_DELAY = 400;\n\n var getTouch = function getTouch(event) {\n var raw = event.raw;\n\n if (raw.touches === undefined || raw.touches.length !== 1) {\n return Optional.none();\n }\n\n return Optional.some(raw.touches[0]);\n };\n\n var isFarEnough = function isFarEnough(touch, data) {\n var distX = Math.abs(touch.clientX - data.x);\n var distY = Math.abs(touch.clientY - data.y);\n return distX > SIGNIFICANT_MOVE || distY > SIGNIFICANT_MOVE;\n };\n\n var monitor = function monitor(settings) {\n var startData = value$1();\n var longpressFired = Cell(false);\n var longpress$1 = DelayedFunction(function (event) {\n settings.triggerEvent(longpress(), event);\n longpressFired.set(true);\n }, LONGPRESS_DELAY);\n\n var handleTouchstart = function handleTouchstart(event) {\n getTouch(event).each(function (touch) {\n longpress$1.cancel();\n var data = {\n x: touch.clientX,\n y: touch.clientY,\n target: event.target\n };\n longpress$1.schedule(event);\n longpressFired.set(false);\n startData.set(data);\n });\n return Optional.none();\n };\n\n var handleTouchmove = function handleTouchmove(event) {\n longpress$1.cancel();\n getTouch(event).each(function (touch) {\n startData.on(function (data) {\n if (isFarEnough(touch, data)) {\n startData.clear();\n }\n });\n });\n return Optional.none();\n };\n\n var handleTouchend = function handleTouchend(event) {\n longpress$1.cancel();\n\n var isSame = function isSame(data) {\n return eq(data.target, event.target);\n };\n\n return startData.get().filter(isSame).map(function (_data) {\n if (longpressFired.get()) {\n event.prevent();\n return false;\n } else {\n return settings.triggerEvent(tap(), event);\n }\n });\n };\n\n var handlers = wrapAll([{\n key: touchstart(),\n value: handleTouchstart\n }, {\n key: touchmove(),\n value: handleTouchmove\n }, {\n key: touchend(),\n value: handleTouchend\n }]);\n\n var fireIfReady = function fireIfReady(event, type) {\n return get$e(handlers, type).bind(function (handler) {\n return handler(event);\n });\n };\n\n return {\n fireIfReady: fireIfReady\n };\n };\n\n var isDangerous = function isDangerous(event) {\n var keyEv = event.raw;\n return keyEv.which === BACKSPACE[0] && !contains$2(['input', 'textarea'], name$2(event.target)) && !closest(event.target, '[contenteditable=\"true\"]');\n };\n\n var isFirefox = function isFirefox() {\n return detect$1().browser.isFirefox();\n };\n\n var bindFocus = function bindFocus(container, handler) {\n if (isFirefox()) {\n return capture(container, 'focus', handler);\n } else {\n return bind(container, 'focusin', handler);\n }\n };\n\n var bindBlur = function bindBlur(container, handler) {\n if (isFirefox()) {\n return capture(container, 'blur', handler);\n } else {\n return bind(container, 'focusout', handler);\n }\n };\n\n var setup$d = function setup$d(container, rawSettings) {\n var settings = _assign({\n stopBackspace: true\n }, rawSettings);\n\n var pointerEvents = ['touchstart', 'touchmove', 'touchend', 'touchcancel', 'gesturestart', 'mousedown', 'mouseup', 'mouseover', 'mousemove', 'mouseout', 'click'];\n var tapEvent = monitor(settings);\n var simpleEvents = map$2(pointerEvents.concat(['selectstart', 'input', 'contextmenu', 'change', 'transitionend', 'transitioncancel', 'drag', 'dragstart', 'dragend', 'dragenter', 'dragleave', 'dragover', 'drop', 'keyup']), function (type) {\n return bind(container, type, function (event) {\n tapEvent.fireIfReady(event, type).each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent(type, event);\n\n if (stopped) {\n event.kill();\n }\n });\n });\n var pasteTimeout = value$1();\n var onPaste = bind(container, 'paste', function (event) {\n tapEvent.fireIfReady(event, 'paste').each(function (tapStopped) {\n if (tapStopped) {\n event.kill();\n }\n });\n var stopped = settings.triggerEvent('paste', event);\n\n if (stopped) {\n event.kill();\n }\n\n pasteTimeout.set(setTimeout(function () {\n settings.triggerEvent(postPaste(), event);\n }, 0));\n });\n var onKeydown = bind(container, 'keydown', function (event) {\n var stopped = settings.triggerEvent('keydown', event);\n\n if (stopped) {\n event.kill();\n } else if (settings.stopBackspace && isDangerous(event)) {\n event.prevent();\n }\n });\n var onFocusIn = bindFocus(container, function (event) {\n var stopped = settings.triggerEvent('focusin', event);\n\n if (stopped) {\n event.kill();\n }\n });\n var focusoutTimeout = value$1();\n var onFocusOut = bindBlur(container, function (event) {\n var stopped = settings.triggerEvent('focusout', event);\n\n if (stopped) {\n event.kill();\n }\n\n focusoutTimeout.set(setTimeout(function () {\n settings.triggerEvent(postBlur(), event);\n }, 0));\n });\n\n var unbind = function unbind() {\n each$1(simpleEvents, function (e) {\n e.unbind();\n });\n onKeydown.unbind();\n onFocusIn.unbind();\n onFocusOut.unbind();\n onPaste.unbind();\n pasteTimeout.on(clearTimeout);\n focusoutTimeout.on(clearTimeout);\n };\n\n return {\n unbind: unbind\n };\n };\n\n var derive = function derive(rawEvent, rawTarget) {\n var source = get$e(rawEvent, 'target').getOr(rawTarget);\n return Cell(source);\n };\n\n var fromSource = function fromSource(event, source) {\n var stopper = Cell(false);\n var cutter = Cell(false);\n\n var stop = function stop() {\n stopper.set(true);\n };\n\n var cut = function cut() {\n cutter.set(true);\n };\n\n return {\n stop: stop,\n cut: cut,\n isStopped: stopper.get,\n isCut: cutter.get,\n event: event,\n setSource: source.set,\n getSource: source.get\n };\n };\n\n var fromExternal = function fromExternal(event) {\n var stopper = Cell(false);\n\n var stop = function stop() {\n stopper.set(true);\n };\n\n return {\n stop: stop,\n cut: noop,\n isStopped: stopper.get,\n isCut: never,\n event: event,\n setSource: die('Cannot set source of a broadcasted event'),\n getSource: die('Cannot get source of a broadcasted event')\n };\n };\n\n var adt$1 = Adt.generate([{\n stopped: []\n }, {\n resume: ['element']\n }, {\n complete: []\n }]);\n\n var doTriggerHandler = function doTriggerHandler(lookup, eventType, rawEvent, target, source, logger) {\n var handler = lookup(eventType, target);\n var simulatedEvent = fromSource(rawEvent, source);\n return handler.fold(function () {\n logger.logEventNoHandlers(eventType, target);\n return adt$1.complete();\n }, function (handlerInfo) {\n var descHandler = handlerInfo.descHandler;\n var eventHandler = getCurried(descHandler);\n eventHandler(simulatedEvent);\n\n if (simulatedEvent.isStopped()) {\n logger.logEventStopped(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.stopped();\n } else if (simulatedEvent.isCut()) {\n logger.logEventCut(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n } else {\n return parent(handlerInfo.element).fold(function () {\n logger.logNoParent(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.complete();\n }, function (parent) {\n logger.logEventResponse(eventType, handlerInfo.element, descHandler.purpose);\n return adt$1.resume(parent);\n });\n }\n });\n };\n\n var doTriggerOnUntilStopped = function doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger) {\n return doTriggerHandler(lookup, eventType, rawEvent, rawTarget, source, logger).fold(always, function (parent) {\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, parent, source, logger);\n }, never);\n };\n\n var triggerHandler = function triggerHandler(lookup, eventType, rawEvent, target, logger) {\n var source = derive(rawEvent, target);\n return doTriggerHandler(lookup, eventType, rawEvent, target, source, logger);\n };\n\n var broadcast = function broadcast(listeners, rawEvent, _logger) {\n var simulatedEvent = fromExternal(rawEvent);\n each$1(listeners, function (listener) {\n var descHandler = listener.descHandler;\n var handler = getCurried(descHandler);\n handler(simulatedEvent);\n });\n return simulatedEvent.isStopped();\n };\n\n var triggerUntilStopped = function triggerUntilStopped(lookup, eventType, rawEvent, logger) {\n return triggerOnUntilStopped(lookup, eventType, rawEvent, rawEvent.target, logger);\n };\n\n var triggerOnUntilStopped = function triggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, logger) {\n var source = derive(rawEvent, rawTarget);\n return doTriggerOnUntilStopped(lookup, eventType, rawEvent, rawTarget, source, logger);\n };\n\n var eventHandler = function eventHandler(element, descHandler) {\n return {\n element: element,\n descHandler: descHandler\n };\n };\n\n var broadcastHandler = function broadcastHandler(id, handler) {\n return {\n id: id,\n descHandler: handler\n };\n };\n\n var EventRegistry = function EventRegistry() {\n var registry = {};\n\n var registerId = function registerId(extraArgs, id, events) {\n each(events, function (v, k) {\n var handlers = registry[k] !== undefined ? registry[k] : {};\n handlers[id] = curryArgs(v, extraArgs);\n registry[k] = handlers;\n });\n };\n\n var findHandler = function findHandler(handlers, elem) {\n return read$1(elem).bind(function (id) {\n return get$e(handlers, id);\n }).map(function (descHandler) {\n return eventHandler(elem, descHandler);\n });\n };\n\n var filterByType = function filterByType(type) {\n return get$e(registry, type).map(function (handlers) {\n return mapToArray(handlers, function (f, id) {\n return broadcastHandler(id, f);\n });\n }).getOr([]);\n };\n\n var find = function find(isAboveRoot, type, target) {\n return get$e(registry, type).bind(function (handlers) {\n return closest$4(target, function (elem) {\n return findHandler(handlers, elem);\n }, isAboveRoot);\n });\n };\n\n var unregisterId = function unregisterId(id) {\n each(registry, function (handlersById, _eventName) {\n if (has$2(handlersById, id)) {\n delete handlersById[id];\n }\n });\n };\n\n return {\n registerId: registerId,\n unregisterId: unregisterId,\n filterByType: filterByType,\n find: find\n };\n };\n\n var Registry = function Registry() {\n var events = EventRegistry();\n var components = {};\n\n var readOrTag = function readOrTag(component) {\n var elem = component.element;\n return read$1(elem).getOrThunk(function () {\n return write('uid-', component.element);\n });\n };\n\n var failOnDuplicate = function failOnDuplicate(component, tagId) {\n var conflict = components[tagId];\n\n if (conflict === component) {\n unregister(component);\n } else {\n throw new Error('The tagId \"' + tagId + '\" is already used by: ' + element(conflict.element) + '\\nCannot use it for: ' + element(component.element) + '\\n' + 'The conflicting element is' + (inBody(conflict.element) ? ' ' : ' not ') + 'already in the DOM');\n }\n };\n\n var register = function register(component) {\n var tagId = readOrTag(component);\n\n if (hasNonNullableKey(components, tagId)) {\n failOnDuplicate(component, tagId);\n }\n\n var extraArgs = [component];\n events.registerId(extraArgs, tagId, component.events);\n components[tagId] = component;\n };\n\n var unregister = function unregister(component) {\n read$1(component.element).each(function (tagId) {\n delete components[tagId];\n events.unregisterId(tagId);\n });\n };\n\n var filter = function filter(type) {\n return events.filterByType(type);\n };\n\n var find = function find(isAboveRoot, type, target) {\n return events.find(isAboveRoot, type, target);\n };\n\n var getById = function getById(id) {\n return get$e(components, id);\n };\n\n return {\n find: find,\n filter: filter,\n register: register,\n unregister: unregister,\n getById: getById\n };\n };\n\n var factory$j = function factory$j(detail) {\n var _a = detail.dom,\n attributes = _a.attributes,\n domWithoutAttributes = __rest(_a, ['attributes']);\n\n return {\n uid: detail.uid,\n dom: _assign({\n tag: 'div',\n attributes: _assign({\n role: 'presentation'\n }, attributes)\n }, domWithoutAttributes),\n components: detail.components,\n behaviours: get$2(detail.containerBehaviours),\n events: detail.events,\n domModification: detail.domModification,\n eventOrder: detail.eventOrder\n };\n };\n\n var Container = single({\n name: 'Container',\n factory: factory$j,\n configFields: [defaulted('components', []), field('containerBehaviours', []), defaulted('events', {}), defaulted('domModification', {}), defaulted('eventOrder', {})]\n });\n\n var takeover = function takeover(root) {\n var isAboveRoot = function isAboveRoot(el) {\n return parent(root.element).fold(always, function (parent) {\n return eq(el, parent);\n });\n };\n\n var registry = Registry();\n\n var lookup = function lookup(eventName, target) {\n return registry.find(isAboveRoot, eventName, target);\n };\n\n var domEvents = setup$d(root.element, {\n triggerEvent: function triggerEvent(eventName, event) {\n return monitorEvent(eventName, event.target, function (logger) {\n return triggerUntilStopped(lookup, eventName, event, logger);\n });\n }\n });\n var systemApi = {\n debugInfo: constant$1('real'),\n triggerEvent: function triggerEvent(eventName, target, data) {\n monitorEvent(eventName, target, function (logger) {\n return triggerOnUntilStopped(lookup, eventName, data, target, logger);\n });\n },\n triggerFocus: function triggerFocus(target, originator) {\n read$1(target).fold(function () {\n focus$3(target);\n }, function (_alloyId) {\n monitorEvent(focus$4(), target, function (logger) {\n triggerHandler(lookup, focus$4(), {\n originator: originator,\n kill: noop,\n prevent: noop,\n target: target\n }, target, logger);\n return false;\n });\n });\n },\n triggerEscape: function triggerEscape(comp, simulatedEvent) {\n systemApi.triggerEvent('keydown', comp.element, simulatedEvent.event);\n },\n getByUid: function getByUid(uid) {\n return _getByUid(uid);\n },\n getByDom: function getByDom(elem) {\n return _getByDom(elem);\n },\n build: build$1,\n addToGui: function addToGui(c) {\n add(c);\n },\n removeFromGui: function removeFromGui(c) {\n remove(c);\n },\n addToWorld: function addToWorld(c) {\n _addToWorld(c);\n },\n removeFromWorld: function removeFromWorld(c) {\n _removeFromWorld(c);\n },\n broadcast: function broadcast(message) {\n broadcast$1(message);\n },\n broadcastOn: function broadcastOn(channels, message) {\n _broadcastOn(channels, message);\n },\n broadcastEvent: function broadcastEvent(eventName, event) {\n _broadcastEvent(eventName, event);\n },\n isConnected: always\n };\n\n var _addToWorld = function _addToWorld(component) {\n component.connect(systemApi);\n\n if (!isText$1(component.element)) {\n registry.register(component);\n each$1(component.components(), _addToWorld);\n systemApi.triggerEvent(systemInit(), component.element, {\n target: component.element\n });\n }\n };\n\n var _removeFromWorld = function _removeFromWorld(component) {\n if (!isText$1(component.element)) {\n each$1(component.components(), _removeFromWorld);\n registry.unregister(component);\n }\n\n component.disconnect();\n };\n\n var add = function add(component) {\n attach(root, component);\n };\n\n var remove = function remove(component) {\n detach(component);\n };\n\n var destroy = function destroy() {\n domEvents.unbind();\n remove$5(root.element);\n };\n\n var broadcastData = function broadcastData(data) {\n var receivers = registry.filter(receive());\n each$1(receivers, function (receiver) {\n var descHandler = receiver.descHandler;\n var handler = getCurried(descHandler);\n handler(data);\n });\n };\n\n var broadcast$1 = function broadcast$1(message) {\n broadcastData({\n universal: true,\n data: message\n });\n };\n\n var _broadcastOn = function _broadcastOn(channels, message) {\n broadcastData({\n universal: false,\n channels: channels,\n data: message\n });\n };\n\n var _broadcastEvent = function _broadcastEvent(eventName, event) {\n var listeners = registry.filter(eventName);\n return broadcast(listeners, event);\n };\n\n var _getByUid = function _getByUid(uid) {\n return registry.getById(uid).fold(function () {\n return Result.error(new Error('Could not find component with uid: \"' + uid + '\" in system.'));\n }, Result.value);\n };\n\n var _getByDom = function _getByDom(elem) {\n var uid = read$1(elem).getOr('not found');\n return _getByUid(uid);\n };\n\n _addToWorld(root);\n\n return {\n root: root,\n element: root.element,\n destroy: destroy,\n add: add,\n remove: remove,\n getByUid: _getByUid,\n getByDom: _getByDom,\n addToWorld: _addToWorld,\n removeFromWorld: _removeFromWorld,\n broadcast: broadcast$1,\n broadcastOn: _broadcastOn,\n broadcastEvent: _broadcastEvent\n };\n };\n\n var renderBar = function renderBar(spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-bar', 'tox-form__controls-h-stack']\n },\n components: map$2(spec.items, backstage.interpreter)\n };\n };\n\n var schema$l = constant$1([defaulted('prefix', 'form-field'), field('fieldBehaviours', [Composing, Representing])]);\n var parts$e = constant$1([optional({\n schema: [required$1('dom')],\n name: 'label'\n }), optional({\n factory: {\n sketch: function sketch(spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: {\n display: 'none'\n },\n attributes: {\n 'aria-hidden': 'true'\n },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }), required({\n factory: {\n sketch: function sketch(spec) {\n var excludeFactory = exclude(spec, ['factory']);\n return spec.factory.sketch(excludeFactory);\n }\n },\n schema: [required$1('factory')],\n name: 'field'\n })]);\n\n var factory$i = function factory$i(detail, components, _spec, _externals) {\n var behaviours = augment(detail.fieldBehaviours, [Composing.config({\n find: function find(container) {\n return getPart(container, detail, 'field');\n }\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(field) {\n return Composing.getCurrent(field).bind(Representing.getValue);\n },\n setValue: function setValue(field, value) {\n Composing.getCurrent(field).each(function (current) {\n Representing.setValue(current, value);\n });\n }\n }\n })]);\n var events = derive$2([runOnAttached(function (component, _simulatedEvent) {\n var ps = getParts(component, detail, ['label', 'field', 'aria-descriptor']);\n ps.field().each(function (field) {\n var id = generate$6(detail.prefix);\n ps.label().each(function (label) {\n set$8(label.element, 'for', id);\n set$8(field.element, 'id', id);\n });\n ps['aria-descriptor']().each(function (descriptor) {\n var descriptorId = generate$6(detail.prefix);\n set$8(descriptor.element, 'id', descriptorId);\n set$8(field.element, 'aria-describedby', descriptorId);\n });\n });\n })]);\n var apis = {\n getField: function getField(container) {\n return getPart(container, detail, 'field');\n },\n getLabel: function getLabel(container) {\n return getPart(container, detail, 'label');\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: behaviours,\n events: events,\n apis: apis\n };\n };\n\n var FormField = composite({\n name: 'FormField',\n configFields: schema$l(),\n partFields: parts$e(),\n factory: factory$i,\n apis: {\n getField: function getField(apis, comp) {\n return apis.getField(comp);\n },\n getLabel: function getLabel(apis, comp) {\n return apis.getLabel(comp);\n }\n }\n });\n\n var exhibit$2 = function exhibit$2(base, tabConfig) {\n return nu$7({\n attributes: wrapAll([{\n key: tabConfig.tabAttr,\n value: 'true'\n }])\n });\n };\n\n var ActiveTabstopping = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit$2\n });\n var TabstopSchema = [defaulted('tabAttr', 'data-alloy-tabstop')];\n var Tabstopping = create$7({\n fields: TabstopSchema,\n name: 'tabstopping',\n active: ActiveTabstopping\n });\n var global$7 = tinymce.util.Tools.resolve('tinymce.html.Entities');\n\n var renderFormFieldWith = function renderFormFieldWith(pLabel, pField, extraClasses, extraBehaviours) {\n var spec = renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours);\n return FormField.sketch(spec);\n };\n\n var renderFormField = function renderFormField(pLabel, pField) {\n return renderFormFieldWith(pLabel, pField, [], []);\n };\n\n var renderFormFieldSpecWith = function renderFormFieldSpecWith(pLabel, pField, extraClasses, extraBehaviours) {\n return {\n dom: renderFormFieldDomWith(extraClasses),\n components: pLabel.toArray().concat([pField]),\n fieldBehaviours: derive$1(extraBehaviours)\n };\n };\n\n var renderFormFieldDom = function renderFormFieldDom() {\n return renderFormFieldDomWith([]);\n };\n\n var renderFormFieldDomWith = function renderFormFieldDomWith(extraClasses) {\n return {\n tag: 'div',\n classes: ['tox-form__group'].concat(extraClasses)\n };\n };\n\n var renderLabel$2 = function renderLabel$2(label, providersBackstage) {\n return FormField.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n };\n\n var formChangeEvent = generate$6('form-component-change');\n var formCloseEvent = generate$6('form-close');\n var formCancelEvent = generate$6('form-cancel');\n var formActionEvent = generate$6('form-action');\n var formSubmitEvent = generate$6('form-submit');\n var formBlockEvent = generate$6('form-block');\n var formUnblockEvent = generate$6('form-unblock');\n var formTabChangeEvent = generate$6('form-tabchange');\n var formResizeEvent = generate$6('form-resize');\n\n var renderCollection = function renderCollection(spec, providersBackstage) {\n var _a;\n\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n\n var runOnItem = function runOnItem(f) {\n return function (comp, se) {\n closest$1(se.event.target, '[data-collection-item-value]').each(function (target) {\n f(comp, se, target, get$d(target, 'data-collection-item-value'));\n });\n };\n };\n\n var setContents = function setContents(comp, items) {\n var htmlLines = map$2(items, function (item) {\n var itemText = global$e.translate(item.text);\n var textContent = spec.columns === 1 ? '
' + itemText + '
' : '';\n var iconContent = '
' + item.icon + '
';\n var mapItemName = {\n '_': ' ',\n ' - ': ' ',\n '-': ' '\n };\n var ariaLabel = itemText.replace(/\\_| \\- |\\-/g, function (match) {\n return mapItemName[match];\n });\n var disabledClass = providersBackstage.isDisabled() ? ' tox-collection__item--state-disabled' : '';\n return '
' + iconContent + textContent + '
';\n });\n var chunks = spec.columns !== 'auto' && spec.columns > 1 ? chunk$1(htmlLines, spec.columns) : [htmlLines];\n var html = map$2(chunks, function (ch) {\n return '
' + ch.join('') + '
';\n });\n set$5(comp.element, html.join(''));\n };\n\n var onClick = runOnItem(function (comp, se, tgt, itemValue) {\n se.stop();\n\n if (!providersBackstage.isDisabled()) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }\n });\n var collectionEvents = [run$1(mouseover(), runOnItem(function (comp, se, tgt) {\n focus$3(tgt);\n })), run$1(click(), onClick), run$1(tap(), onClick), run$1(focusin(), runOnItem(function (comp, se, tgt) {\n descendant(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$2(currentActive, activeClass);\n });\n add$2(tgt, activeClass);\n })), run$1(focusout(), runOnItem(function (comp) {\n descendant(comp.element, '.' + activeClass).each(function (currentActive) {\n remove$2(currentActive, activeClass);\n });\n })), runOnExecute$1(runOnItem(function (comp, se, tgt, itemValue) {\n emitWith(comp, formActionEvent, {\n name: spec.name,\n value: itemValue\n });\n }))];\n\n var iterCollectionItems = function iterCollectionItems(comp, applyAttributes) {\n return map$2(descendants(comp.element, '.tox-collection__item'), applyAttributes);\n };\n\n var pField = FormField.parts.field({\n dom: {\n tag: 'div',\n classes: ['tox-collection'].concat(spec.columns !== 1 ? ['tox-collection--grid'] : ['tox-collection--list'])\n },\n components: [],\n factory: {\n sketch: identity$1\n },\n behaviours: derive$1([Disabling.config({\n disabled: providersBackstage.isDisabled,\n onDisabled: function onDisabled(comp) {\n iterCollectionItems(comp, function (childElm) {\n add$2(childElm, 'tox-collection__item--state-disabled');\n set$8(childElm, 'aria-disabled', true);\n });\n },\n onEnabled: function onEnabled(comp) {\n iterCollectionItems(comp, function (childElm) {\n remove$2(childElm, 'tox-collection__item--state-disabled');\n remove$7(childElm, 'aria-disabled');\n });\n }\n }), receivingConfig(), Replacing.config({}), Representing.config({\n store: {\n mode: 'memory',\n initialValue: []\n },\n onSetValue: function onSetValue(comp, items) {\n setContents(comp, items);\n\n if (spec.columns === 'auto') {\n detectSize(comp, 5, 'tox-collection__item').each(function (_a) {\n var numRows = _a.numRows,\n numColumns = _a.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n }\n\n emit(comp, formResizeEvent);\n }\n }), Tabstopping.config({}), Keying.config(deriveCollectionMovement(spec.columns, 'normal')), config('collection-events', collectionEvents)]),\n eventOrder: (_a = {}, _a[execute$5()] = ['disabling', 'alloy.base.behaviour', 'collection-events'], _a)\n });\n var extraClasses = ['tox-form__group--collection'];\n return renderFormFieldWith(pLabel, pField, extraClasses, []);\n };\n\n var schema$k = constant$1([option('data'), defaulted('inputAttributes', {}), defaulted('inputStyles', {}), defaulted('tag', 'input'), defaulted('inputClasses', []), onHandler('onSetValue'), defaulted('styles', {}), defaulted('eventOrder', {}), field('inputBehaviours', [Representing, Focusing]), defaulted('selectOnFocus', true)]);\n\n var focusBehaviours = function focusBehaviours(detail) {\n return derive$1([Focusing.config({\n onFocus: !detail.selectOnFocus ? noop : function (component) {\n var input = component.element;\n var value = get$5(input);\n input.dom.setSelectionRange(0, value.length);\n }\n })]);\n };\n\n var behaviours = function behaviours(detail) {\n return _assign(_assign({}, focusBehaviours(detail)), augment(detail.inputBehaviours, [Representing.config({\n store: _assign(_assign({\n mode: 'manual'\n }, detail.data.map(function (data) {\n return {\n initialValue: data\n };\n }).getOr({})), {\n getValue: function getValue(input) {\n return get$5(input.element);\n },\n setValue: function setValue(input, data) {\n var current = get$5(input.element);\n\n if (current !== data) {\n set$4(input.element, data);\n }\n }\n }),\n onSetValue: detail.onSetValue\n })]));\n };\n\n var dom = function dom(detail) {\n return {\n tag: detail.tag,\n attributes: _assign({\n type: 'text'\n }, detail.inputAttributes),\n styles: detail.inputStyles,\n classes: detail.inputClasses\n };\n };\n\n var factory$h = function factory$h(detail, _spec) {\n return {\n uid: detail.uid,\n dom: dom(detail),\n components: [],\n behaviours: behaviours(detail),\n eventOrder: detail.eventOrder\n };\n };\n\n var Input = single({\n name: 'Input',\n configFields: schema$k(),\n factory: factory$h\n });\n var exports$1 = {},\n module = {\n exports: exports$1\n };\n\n (function (define, exports, module, require) {\n (function (global, factory) {\n _typeof(exports) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.EphoxContactWrapper = factory());\n })(this, function () {\n var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n var promise = {\n exports: {}\n };\n\n (function (module) {\n (function (root) {\n var setTimeoutFunc = setTimeout;\n\n function noop() {}\n\n function bind(fn, thisArg) {\n return function () {\n fn.apply(thisArg, arguments);\n };\n }\n\n function Promise(fn) {\n if (_typeof(this) !== 'object') throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n this._state = 0;\n this._handled = false;\n this._value = undefined;\n this._deferreds = [];\n doResolve(fn, this);\n }\n\n function handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n\n if (self._state === 0) {\n self._deferreds.push(deferred);\n\n return;\n }\n\n self._handled = true;\n\n Promise._immediateFn(function () {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n\n var ret;\n\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n\n resolve(deferred.promise, ret);\n });\n }\n\n function resolve(self, newValue) {\n try {\n if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');\n\n if (newValue && (_typeof(newValue) === 'object' || typeof newValue === 'function')) {\n var then = newValue.then;\n\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n }\n\n function reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n }\n\n function finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function () {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n\n self._deferreds = null;\n }\n\n function Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n }\n\n function doResolve(fn, self) {\n var done = false;\n\n try {\n fn(function (value) {\n if (done) return;\n done = true;\n resolve(self, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n });\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n }\n\n Promise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n };\n\n Promise.prototype.then = function (onFulfilled, onRejected) {\n var prom = new this.constructor(noop);\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n };\n\n Promise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (_typeof(val) === 'object' || typeof val === 'function')) {\n var then = val.then;\n\n if (typeof then === 'function') {\n then.call(val, function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n\n args[i] = val;\n\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n };\n\n Promise.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function (resolve) {\n resolve(value);\n });\n };\n\n Promise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n };\n\n Promise.race = function (values) {\n return new Promise(function (resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n };\n\n Promise._immediateFn = typeof setImmediate === 'function' ? function (fn) {\n setImmediate(fn);\n } : function (fn) {\n setTimeoutFunc(fn, 0);\n };\n\n Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err);\n }\n };\n\n Promise._setImmediateFn = function _setImmediateFn(fn) {\n Promise._immediateFn = fn;\n };\n\n Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {\n Promise._unhandledRejectionFn = fn;\n };\n\n if (module.exports) {\n module.exports = Promise;\n } else if (!root.Promise) {\n root.Promise = Promise;\n }\n })(commonjsGlobal);\n })(promise);\n\n var promisePolyfill = promise.exports;\n\n var Global = function () {\n if (typeof window !== 'undefined') {\n return window;\n } else {\n return Function('return this;')();\n }\n }();\n\n var promisePolyfill_1 = {\n boltExport: Global.Promise || promisePolyfill\n };\n return promisePolyfill_1;\n });\n })(undefined, exports$1, module);\n\n var Promise$1 = module.exports.boltExport;\n\n var nu$3 = function nu$3(baseFn) {\n var data = Optional.none();\n var callbacks = [];\n\n var map = function map(f) {\n return nu$3(function (nCallback) {\n get(function (data) {\n nCallback(f(data));\n });\n });\n };\n\n var get = function get(nCallback) {\n if (isReady()) {\n call(nCallback);\n } else {\n callbacks.push(nCallback);\n }\n };\n\n var set = function set(x) {\n if (!isReady()) {\n data = Optional.some(x);\n run(callbacks);\n callbacks = [];\n }\n };\n\n var isReady = function isReady() {\n return data.isSome();\n };\n\n var run = function run(cbs) {\n each$1(cbs, call);\n };\n\n var call = function call(cb) {\n data.each(function (x) {\n setTimeout(function () {\n cb(x);\n }, 0);\n });\n };\n\n baseFn(set);\n return {\n get: get,\n map: map,\n isReady: isReady\n };\n };\n\n var pure$1 = function pure$1(a) {\n return nu$3(function (callback) {\n callback(a);\n });\n };\n\n var LazyValue = {\n nu: nu$3,\n pure: pure$1\n };\n\n var errorReporter = function errorReporter(err) {\n setTimeout(function () {\n throw err;\n }, 0);\n };\n\n var make$5 = function make$5(run) {\n var get = function get(callback) {\n run().then(callback, errorReporter);\n };\n\n var map = function map(fab) {\n return make$5(function () {\n return run().then(fab);\n });\n };\n\n var bind = function bind(aFutureB) {\n return make$5(function () {\n return run().then(function (v) {\n return aFutureB(v).toPromise();\n });\n });\n };\n\n var anonBind = function anonBind(futureB) {\n return make$5(function () {\n return run().then(function () {\n return futureB.toPromise();\n });\n });\n };\n\n var toLazy = function toLazy() {\n return LazyValue.nu(get);\n };\n\n var toCached = function toCached() {\n var cache = null;\n return make$5(function () {\n if (cache === null) {\n cache = run();\n }\n\n return cache;\n });\n };\n\n var toPromise = run;\n return {\n map: map,\n bind: bind,\n anonBind: anonBind,\n toLazy: toLazy,\n toCached: toCached,\n toPromise: toPromise,\n get: get\n };\n };\n\n var nu$2 = function nu$2(baseFn) {\n return make$5(function () {\n return new Promise$1(baseFn);\n });\n };\n\n var pure = function pure(a) {\n return make$5(function () {\n return Promise$1.resolve(a);\n });\n };\n\n var Future = {\n nu: nu$2,\n pure: pure\n };\n var ariaElements = ['input', 'textarea'];\n\n var isAriaElement = function isAriaElement(elem) {\n var name = name$2(elem);\n return contains$2(ariaElements, name);\n };\n\n var markValid = function markValid(component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n remove$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element)) {\n set$8(component.element, 'aria-invalid', false);\n }\n\n notifyInfo.getContainer(component).each(function (container) {\n set$5(container, notifyInfo.validHtml);\n });\n notifyInfo.onValid(component);\n });\n };\n\n var markInvalid = function markInvalid(component, invalidConfig, invalidState, text) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n add$2(elem, invalidConfig.invalidClass);\n invalidConfig.notify.each(function (notifyInfo) {\n if (isAriaElement(component.element)) {\n set$8(component.element, 'aria-invalid', true);\n }\n\n notifyInfo.getContainer(component).each(function (container) {\n set$5(container, text);\n });\n notifyInfo.onInvalid(component, text);\n });\n };\n\n var query = function query(component, invalidConfig, _invalidState) {\n return invalidConfig.validator.fold(function () {\n return Future.pure(Result.value(true));\n }, function (validatorInfo) {\n return validatorInfo.validate(component);\n });\n };\n\n var run = function run(component, invalidConfig, invalidState) {\n invalidConfig.notify.each(function (notifyInfo) {\n notifyInfo.onValidate(component);\n });\n return query(component, invalidConfig).map(function (valid) {\n if (component.getSystem().isConnected()) {\n return valid.fold(function (err) {\n markInvalid(component, invalidConfig, invalidState, err);\n return Result.error(err);\n }, function (v) {\n markValid(component, invalidConfig);\n return Result.value(v);\n });\n } else {\n return Result.error('No longer in system');\n }\n });\n };\n\n var isInvalid = function isInvalid(component, invalidConfig) {\n var elem = invalidConfig.getRoot(component).getOr(component.element);\n return has(elem, invalidConfig.invalidClass);\n };\n\n var InvalidateApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n markValid: markValid,\n markInvalid: markInvalid,\n query: query,\n run: run,\n isInvalid: isInvalid\n });\n\n var events$8 = function events$8(invalidConfig, invalidState) {\n return invalidConfig.validator.map(function (validatorInfo) {\n return derive$2([run$1(validatorInfo.onEvent, function (component) {\n run(component, invalidConfig, invalidState).get(identity$1);\n })].concat(validatorInfo.validateOnLoad ? [runOnAttached(function (component) {\n run(component, invalidConfig, invalidState).get(noop);\n })] : []));\n }).getOr({});\n };\n\n var ActiveInvalidate = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$8\n });\n var InvalidateSchema = [required$1('invalidClass'), defaulted('getRoot', Optional.none), optionObjOf('notify', [defaulted('aria', 'alert'), defaulted('getContainer', Optional.none), defaulted('validHtml', ''), onHandler('onValid'), onHandler('onInvalid'), onHandler('onValidate')]), optionObjOf('validator', [required$1('validate'), defaulted('onEvent', 'input'), defaulted('validateOnLoad', true)])];\n var Invalidating = create$7({\n fields: InvalidateSchema,\n name: 'invalidating',\n active: ActiveInvalidate,\n apis: InvalidateApis,\n extra: {\n validation: function validation(validator) {\n return function (component) {\n var v = Representing.getValue(component);\n return Future.pure(validator(v));\n };\n }\n }\n });\n\n var getCoupled = function getCoupled(component, coupleConfig, coupleState, name) {\n return coupleState.getOrCreate(component, coupleConfig, name);\n };\n\n var CouplingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getCoupled: getCoupled\n });\n var CouplingSchema = [requiredOf('others', setOf(Result.value, anyValue()))];\n\n var init$a = function init$a() {\n var coupled = {};\n\n var getOrCreate = function getOrCreate(component, coupleConfig, name) {\n var available = keys(coupleConfig.others);\n\n if (!available) {\n throw new Error('Cannot find coupled component: ' + name + '. Known coupled components: ' + JSON.stringify(available, null, 2));\n } else {\n return get$e(coupled, name).getOrThunk(function () {\n var builder = get$e(coupleConfig.others, name).getOrDie('No information found for coupled component: ' + name);\n var spec = builder(component);\n var built = component.getSystem().build(spec);\n coupled[name] = built;\n return built;\n });\n }\n };\n\n var readState = constant$1({});\n return nu$8({\n readState: readState,\n getOrCreate: getOrCreate\n });\n };\n\n var CouplingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$a\n });\n var Coupling = create$7({\n fields: CouplingSchema,\n name: 'coupling',\n apis: CouplingApis,\n state: CouplingState\n });\n var suffix = constant$1('sink');\n var partType$1 = constant$1(optional({\n name: suffix(),\n overrides: constant$1({\n dom: {\n tag: 'div'\n },\n behaviours: derive$1([Positioning.config({\n useFixed: always\n })]),\n events: derive$2([cutter(keydown()), cutter(mousedown()), cutter(click())])\n })\n }));\n var HighlightOnOpen;\n\n (function (HighlightOnOpen) {\n HighlightOnOpen[HighlightOnOpen['HighlightFirst'] = 0] = 'HighlightFirst';\n HighlightOnOpen[HighlightOnOpen['HighlightNone'] = 1] = 'HighlightNone';\n })(HighlightOnOpen || (HighlightOnOpen = {}));\n\n var getAnchor = function getAnchor(detail, component) {\n var hotspot = detail.getHotspot(component).getOr(component);\n var type = 'hotspot';\n var overrides = detail.getAnchorOverrides();\n return detail.layouts.fold(function () {\n return {\n type: type,\n hotspot: hotspot,\n overrides: overrides\n };\n }, function (layouts) {\n return {\n type: type,\n hotspot: hotspot,\n overrides: overrides,\n layouts: layouts\n };\n });\n };\n\n var fetch = function fetch(detail, mapFetch, component) {\n var fetcher = detail.fetch;\n return fetcher(component).map(mapFetch);\n };\n\n var openF = function openF(detail, mapFetch, anchor, component, sandbox, externals, highlightOnOpen) {\n var futureData = fetch(detail, mapFetch, component);\n var getLazySink = getSink(component, detail);\n return futureData.map(function (tdata) {\n return tdata.bind(function (data) {\n return Optional.from(tieredMenu.sketch(_assign(_assign({}, externals.menu()), {\n uid: generate$5(''),\n data: data,\n highlightImmediately: highlightOnOpen === HighlightOnOpen.HighlightFirst,\n onOpenMenu: function onOpenMenu(tmenu, menu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, menu, {\n anchor: anchor\n });\n Sandboxing.decloak(sandbox);\n },\n onOpenSubmenu: function onOpenSubmenu(tmenu, item, submenu) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, submenu, {\n anchor: {\n type: 'submenu',\n item: item\n }\n });\n Sandboxing.decloak(sandbox);\n },\n onRepositionMenu: function onRepositionMenu(tmenu, primaryMenu, submenuTriggers) {\n var sink = getLazySink().getOrDie();\n Positioning.position(sink, primaryMenu, {\n anchor: anchor\n });\n each$1(submenuTriggers, function (st) {\n Positioning.position(sink, st.triggeredMenu, {\n anchor: {\n type: 'submenu',\n item: st.triggeringItem\n }\n });\n });\n },\n onEscape: function onEscape() {\n Focusing.focus(component);\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n })));\n });\n });\n };\n\n var open = function open(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen) {\n var anchor = getAnchor(detail, hotspot);\n var processed = openF(detail, mapFetch, anchor, hotspot, sandbox, externals, highlightOnOpen);\n return processed.map(function (tdata) {\n tdata.fold(function () {\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n }\n }, function (data) {\n Sandboxing.cloak(sandbox);\n Sandboxing.open(sandbox, data);\n onOpenSync(sandbox);\n });\n return sandbox;\n });\n };\n\n var close = function close(detail, mapFetch, component, sandbox, _externals, _onOpenSync, _highlightOnOpen) {\n Sandboxing.close(sandbox);\n return Future.pure(sandbox);\n };\n\n var togglePopup = function togglePopup(detail, mapFetch, hotspot, externals, onOpenSync, highlightOnOpen) {\n var sandbox = Coupling.getCoupled(hotspot, 'sandbox');\n var showing = Sandboxing.isOpen(sandbox);\n var action = showing ? close : open;\n return action(detail, mapFetch, hotspot, sandbox, externals, onOpenSync, highlightOnOpen);\n };\n\n var matchWidth = function matchWidth(hotspot, container, useMinWidth) {\n var menu = Composing.getCurrent(container).getOr(container);\n var buttonWidth = get$a(hotspot.element);\n\n if (useMinWidth) {\n set$7(menu.element, 'min-width', buttonWidth + 'px');\n } else {\n set$6(menu.element, buttonWidth);\n }\n };\n\n var getSink = function getSink(anyInSystem, sinkDetail) {\n return anyInSystem.getSystem().getByUid(sinkDetail.uid + '-' + suffix()).map(function (internalSink) {\n return function () {\n return Result.value(internalSink);\n };\n }).getOrThunk(function () {\n return sinkDetail.lazySink.fold(function () {\n return function () {\n return Result.error(new Error('No internal sink is specified, nor could an external sink be found'));\n };\n }, function (lazySinkFn) {\n return function () {\n return lazySinkFn(anyInSystem);\n };\n });\n });\n };\n\n var doRepositionMenus = function doRepositionMenus(sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.repositionMenus(tmenu);\n });\n };\n\n var makeSandbox$1 = function makeSandbox$1(detail, hotspot, extras) {\n var ariaOwner = manager();\n\n var onOpen = function onOpen(component, menu) {\n var anchor = getAnchor(detail, hotspot);\n ariaOwner.link(hotspot.element);\n\n if (detail.matchWidth) {\n matchWidth(anchor.hotspot, menu, detail.useMinWidth);\n }\n\n detail.onOpen(anchor, component, menu);\n\n if (extras !== undefined && extras.onOpen !== undefined) {\n extras.onOpen(component, menu);\n }\n };\n\n var onClose = function onClose(component, menu) {\n ariaOwner.unlink(hotspot.element);\n\n if (extras !== undefined && extras.onClose !== undefined) {\n extras.onClose(component, menu);\n }\n };\n\n var lazySink = getSink(hotspot, detail);\n return {\n dom: {\n tag: 'div',\n classes: detail.sandboxClasses,\n attributes: {\n id: ariaOwner.id,\n role: 'listbox'\n }\n },\n behaviours: SketchBehaviours.augment(detail.sandboxBehaviours, [Representing.config({\n store: {\n mode: 'memory',\n initialValue: hotspot\n }\n }), Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function isPartOf(container, data, queryElem) {\n return isPartOf$1(data, queryElem) || isPartOf$1(hotspot, queryElem);\n },\n getAttachPoint: function getAttachPoint() {\n return lazySink().getOrDie();\n }\n }), Composing.config({\n find: function find(sandbox) {\n return Sandboxing.getState(sandbox).bind(function (menu) {\n return Composing.getCurrent(menu);\n });\n }\n }), Receiving.config({\n channels: _assign(_assign({}, receivingChannel$1({\n isExtraPart: never\n })), receivingChannel({\n doReposition: doRepositionMenus\n }))\n })])\n };\n };\n\n var _repositionMenus = function repositionMenus(comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n doRepositionMenus(sandbox);\n };\n\n var sandboxFields = function sandboxFields() {\n return [defaulted('sandboxClasses', []), SketchBehaviours.field('sandboxBehaviours', [Composing, Receiving, Sandboxing, Representing])];\n };\n\n var schema$j = constant$1([required$1('dom'), required$1('fetch'), onHandler('onOpen'), onKeyboardHandler('onExecute'), defaulted('getHotspot', Optional.some), defaulted('getAnchorOverrides', constant$1({})), schema$y(), field('dropdownBehaviours', [Toggling, Coupling, Keying, Focusing]), required$1('toggleClass'), defaulted('eventOrder', {}), option('lazySink'), defaulted('matchWidth', false), defaulted('useMinWidth', false), option('role')].concat(sandboxFields()));\n var parts$d = constant$1([external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function defaults(detail) {\n return {\n onExecute: detail.onExecute\n };\n }\n }), partType$1()]);\n\n var factory$g = function factory$g(detail, components, _spec, externals) {\n var _a;\n\n var lookupAttr = function lookupAttr(attr) {\n return get$e(detail.dom, 'attributes').bind(function (attrs) {\n return get$e(attrs, attr);\n });\n };\n\n var switchToMenu = function switchToMenu(sandbox) {\n Sandboxing.getState(sandbox).each(function (tmenu) {\n tieredMenu.highlightPrimary(tmenu);\n });\n };\n\n var action = function action(component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, identity$1, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n\n var apis = {\n expand: function expand(comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, comp, externals, noop, HighlightOnOpen.HighlightNone).get(noop);\n }\n },\n open: function open(comp) {\n if (!Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n isOpen: Toggling.isOn,\n close: function close(comp) {\n if (Toggling.isOn(comp)) {\n togglePopup(detail, identity$1, comp, externals, noop, HighlightOnOpen.HighlightFirst).get(noop);\n }\n },\n repositionMenus: function repositionMenus(comp) {\n if (Toggling.isOn(comp)) {\n _repositionMenus(comp);\n }\n }\n };\n\n var triggerExecute = function triggerExecute(comp, _se) {\n emitExecute(comp);\n return Optional.some(true);\n };\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.dropdownBehaviours, [Toggling.config({\n toggleClass: detail.toggleClass,\n aria: {\n mode: 'expanded'\n }\n }), Coupling.config({\n others: {\n sandbox: function sandbox(hotspot) {\n return makeSandbox$1(detail, hotspot, {\n onOpen: function onOpen() {\n return Toggling.on(hotspot);\n },\n onClose: function onClose() {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }), Keying.config({\n mode: 'special',\n onSpace: triggerExecute,\n onEnter: triggerExecute,\n onDown: function onDown(comp, _se) {\n if (Dropdown.isOpen(comp)) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n switchToMenu(sandbox);\n } else {\n Dropdown.open(comp);\n }\n\n return Optional.some(true);\n },\n onEscape: function onEscape(comp, _se) {\n if (Dropdown.isOpen(comp)) {\n Dropdown.close(comp);\n return Optional.some(true);\n } else {\n return Optional.none();\n }\n }\n }), Focusing.config({})]),\n events: events$a(Optional.some(action)),\n eventOrder: _assign(_assign({}, detail.eventOrder), (_a = {}, _a[execute$5()] = ['disabling', 'toggling', 'alloy.base.behaviour'], _a)),\n apis: apis,\n domModification: {\n attributes: _assign(_assign({\n 'aria-haspopup': 'true'\n }, detail.role.fold(function () {\n return {};\n }, function (role) {\n return {\n role: role\n };\n })), detail.dom.tag === 'button' ? {\n type: lookupAttr('type').getOr('button')\n } : {})\n }\n };\n };\n\n var Dropdown = composite({\n name: 'Dropdown',\n configFields: schema$j(),\n partFields: parts$d(),\n factory: factory$g,\n apis: {\n open: function open(apis, comp) {\n return apis.open(comp);\n },\n expand: function expand(apis, comp) {\n return apis.expand(comp);\n },\n close: function close(apis, comp) {\n return apis.close(comp);\n },\n isOpen: function isOpen(apis, comp) {\n return apis.isOpen(comp);\n },\n repositionMenus: function repositionMenus(apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n\n var exhibit$1 = function exhibit$1() {\n return nu$7({\n styles: {\n '-webkit-user-select': 'none',\n 'user-select': 'none',\n '-ms-user-select': 'none',\n '-moz-user-select': '-moz-none'\n },\n attributes: {\n unselectable: 'on'\n }\n });\n };\n\n var events$7 = function events$7() {\n return derive$2([abort(selectstart(), always)]);\n };\n\n var ActiveUnselecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$7,\n exhibit: exhibit$1\n });\n var Unselecting = create$7({\n fields: [],\n name: 'unselecting',\n active: ActiveUnselecting\n });\n\n var renderPanelButton = function renderPanelButton(spec, sharedBackstage) {\n return Dropdown.sketch({\n dom: spec.dom,\n components: spec.components,\n toggleClass: 'mce-active',\n dropdownBehaviours: derive$1([DisablingConfigs.button(sharedBackstage.providers.isDisabled), receivingConfig(), Unselecting.config({}), Tabstopping.config({})]),\n layouts: spec.layouts,\n sandboxClasses: ['tox-dialog__popups'],\n lazySink: sharedBackstage.getSink,\n fetch: function fetch(comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onItemAction(comp, value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, never, sharedBackstage.providers), {\n movement: deriveMenuMovement(spec.columns, spec.presets)\n })));\n });\n },\n parts: {\n menu: part(false, 1, spec.presets)\n }\n });\n };\n\n var colorInputChangeEvent = generate$6('color-input-change');\n var colorSwatchChangeEvent = generate$6('color-swatch-change');\n var colorPickerCancelEvent = generate$6('color-picker-cancel');\n\n var renderColorInput = function renderColorInput(spec, sharedBackstage, colorInputBackstage) {\n var pField = FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n onSetValue: function onSetValue(c) {\n return Invalidating.run(c).get(noop);\n },\n inputBehaviours: derive$1([Disabling.config({\n disabled: sharedBackstage.providers.isDisabled\n }), receivingConfig(), Tabstopping.config({}), Invalidating.config({\n invalidClass: 'tox-textbox-field-invalid',\n getRoot: function getRoot(comp) {\n return parent(comp.element);\n },\n notify: {\n onValid: function onValid(comp) {\n var val = Representing.getValue(comp);\n emitWith(comp, colorInputChangeEvent, {\n color: val\n });\n }\n },\n validator: {\n validateOnLoad: false,\n validate: function validate(input) {\n var inputValue = Representing.getValue(input);\n\n if (inputValue.length === 0) {\n return Future.pure(Result.value(true));\n } else {\n var span = SugarElement.fromTag('span');\n set$7(span, 'background-color', inputValue);\n var res = getRaw(span, 'background-color').fold(function () {\n return Result.error('blah');\n }, function (_) {\n return Result.value(inputValue);\n });\n return Future.pure(res);\n }\n }\n }\n })]),\n selectOnFocus: false\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, sharedBackstage.providers);\n });\n\n var emitSwatchChange = function emitSwatchChange(colorBit, value) {\n emitWith(colorBit, colorSwatchChangeEvent, {\n value: value\n });\n };\n\n var onItemAction = function onItemAction(comp, value) {\n memColorButton.getOpt(comp).each(function (colorBit) {\n if (value === 'custom') {\n colorInputBackstage.colorPicker(function (valueOpt) {\n valueOpt.fold(function () {\n return emit(colorBit, colorPickerCancelEvent);\n }, function (value) {\n emitSwatchChange(colorBit, value);\n addColor(value);\n });\n }, '#ffffff');\n } else if (value === 'remove') {\n emitSwatchChange(colorBit, '');\n } else {\n emitSwatchChange(colorBit, value);\n }\n });\n };\n\n var memColorButton = record(renderPanelButton({\n dom: {\n tag: 'span',\n attributes: {\n 'aria-label': sharedBackstage.providers.translate('Color swatch')\n }\n },\n layouts: {\n onRtl: function onRtl() {\n return [southwest$2, southeast$2, south$2];\n },\n onLtr: function onLtr() {\n return [southeast$2, southwest$2, south$2];\n }\n },\n components: [],\n fetch: getFetch$1(colorInputBackstage.getColors(), colorInputBackstage.hasCustomColors()),\n columns: colorInputBackstage.getColorCols(),\n presets: 'color',\n onItemAction: onItemAction\n }, sharedBackstage));\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: pLabel.toArray().concat([{\n dom: {\n tag: 'div',\n classes: ['tox-color-input']\n },\n components: [pField, memColorButton.asSpec()]\n }]),\n fieldBehaviours: derive$1([config('form-field-events', [run$1(colorInputChangeEvent, function (comp, se) {\n memColorButton.getOpt(comp).each(function (colorButton) {\n set$7(colorButton.element, 'background-color', se.event.color);\n });\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n }), run$1(colorSwatchChangeEvent, function (comp, se) {\n FormField.getField(comp).each(function (field) {\n Representing.setValue(field, se.event.value);\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n }), run$1(colorPickerCancelEvent, function (comp, _se) {\n FormField.getField(comp).each(function (_field) {\n Composing.getCurrent(comp).each(Focusing.focus);\n });\n })])])\n });\n };\n\n var labelPart = optional({\n schema: [required$1('dom')],\n name: 'label'\n });\n\n var edgePart = function edgePart(name) {\n return optional({\n name: '' + name + '-edge',\n overrides: function overrides(detail) {\n var action = detail.model.manager.edgeActions[name];\n return action.fold(function () {\n return {};\n }, function (a) {\n return {\n events: derive$2([runActionExtra(touchstart(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]), runActionExtra(mousedown(), function (comp, se, d) {\n return a(comp, d);\n }, [detail]), runActionExtra(mousemove(), function (comp, se, det) {\n if (det.mouseIsDown.get()) {\n a(comp, det);\n }\n }, [detail])])\n };\n });\n }\n });\n };\n\n var tlEdgePart = edgePart('top-left');\n var tedgePart = edgePart('top');\n var trEdgePart = edgePart('top-right');\n var redgePart = edgePart('right');\n var brEdgePart = edgePart('bottom-right');\n var bedgePart = edgePart('bottom');\n var blEdgePart = edgePart('bottom-left');\n var ledgePart = edgePart('left');\n var thumbPart = required({\n name: 'thumb',\n defaults: constant$1({\n dom: {\n styles: {\n position: 'absolute'\n }\n }\n }),\n overrides: function overrides(detail) {\n return {\n events: derive$2([redirectToPart(touchstart(), detail, 'spectrum'), redirectToPart(touchmove(), detail, 'spectrum'), redirectToPart(touchend(), detail, 'spectrum'), redirectToPart(mousedown(), detail, 'spectrum'), redirectToPart(mousemove(), detail, 'spectrum'), redirectToPart(mouseup(), detail, 'spectrum')])\n };\n }\n });\n var spectrumPart = required({\n schema: [customField('mouseIsDown', function () {\n return Cell(false);\n })],\n name: 'spectrum',\n overrides: function overrides(detail) {\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n\n var setValueFrom = function setValueFrom(component, simulatedEvent) {\n return model.getValueFromEvent(simulatedEvent).map(function (value) {\n return model.setValueFrom(component, detail, value);\n });\n };\n\n return {\n behaviours: derive$1([Keying.config({\n mode: 'special',\n onLeft: function onLeft(spectrum) {\n return model.onLeft(spectrum, detail);\n },\n onRight: function onRight(spectrum) {\n return model.onRight(spectrum, detail);\n },\n onUp: function onUp(spectrum) {\n return model.onUp(spectrum, detail);\n },\n onDown: function onDown(spectrum) {\n return model.onDown(spectrum, detail);\n }\n }), Focusing.config({})]),\n events: derive$2([run$1(touchstart(), setValueFrom), run$1(touchmove(), setValueFrom), run$1(mousedown(), setValueFrom), run$1(mousemove(), function (spectrum, se) {\n if (detail.mouseIsDown.get()) {\n setValueFrom(spectrum, se);\n }\n })])\n };\n }\n });\n var SliderParts = [labelPart, ledgePart, redgePart, tedgePart, bedgePart, tlEdgePart, trEdgePart, blEdgePart, brEdgePart, thumbPart, spectrumPart];\n var _sliderChangeEvent = 'slider.change.value';\n var sliderChangeEvent = constant$1(_sliderChangeEvent);\n\n var isTouchEvent$2 = function isTouchEvent$2(evt) {\n return evt.type.indexOf('touch') !== -1;\n };\n\n var getEventSource = function getEventSource(simulatedEvent) {\n var evt = simulatedEvent.event.raw;\n\n if (isTouchEvent$2(evt)) {\n var touchEvent = evt;\n return touchEvent.touches !== undefined && touchEvent.touches.length === 1 ? Optional.some(touchEvent.touches[0]).map(function (t) {\n return SugarPosition(t.clientX, t.clientY);\n }) : Optional.none();\n } else {\n var mouseEvent = evt;\n return mouseEvent.clientX !== undefined ? Optional.some(mouseEvent).map(function (me) {\n return SugarPosition(me.clientX, me.clientY);\n }) : Optional.none();\n }\n };\n\n var t = 'top',\n r = 'right',\n b = 'bottom',\n l = 'left';\n\n var minX = function minX(detail) {\n return detail.model.minX;\n };\n\n var minY = function minY(detail) {\n return detail.model.minY;\n };\n\n var min1X = function min1X(detail) {\n return detail.model.minX - 1;\n };\n\n var min1Y = function min1Y(detail) {\n return detail.model.minY - 1;\n };\n\n var maxX = function maxX(detail) {\n return detail.model.maxX;\n };\n\n var maxY = function maxY(detail) {\n return detail.model.maxY;\n };\n\n var max1X = function max1X(detail) {\n return detail.model.maxX + 1;\n };\n\n var max1Y = function max1Y(detail) {\n return detail.model.maxY + 1;\n };\n\n var range = function range(detail, max, min) {\n return max(detail) - min(detail);\n };\n\n var xRange = function xRange(detail) {\n return range(detail, maxX, minX);\n };\n\n var yRange = function yRange(detail) {\n return range(detail, maxY, minY);\n };\n\n var halfX = function halfX(detail) {\n return xRange(detail) / 2;\n };\n\n var halfY = function halfY(detail) {\n return yRange(detail) / 2;\n };\n\n var step = function step(detail) {\n return detail.stepSize;\n };\n\n var snap = function snap(detail) {\n return detail.snapToGrid;\n };\n\n var snapStart = function snapStart(detail) {\n return detail.snapStart;\n };\n\n var rounded = function rounded(detail) {\n return detail.rounded;\n };\n\n var hasEdge = function hasEdge(detail, edgeName) {\n return detail[edgeName + '-edge'] !== undefined;\n };\n\n var hasLEdge = function hasLEdge(detail) {\n return hasEdge(detail, l);\n };\n\n var hasREdge = function hasREdge(detail) {\n return hasEdge(detail, r);\n };\n\n var hasTEdge = function hasTEdge(detail) {\n return hasEdge(detail, t);\n };\n\n var hasBEdge = function hasBEdge(detail) {\n return hasEdge(detail, b);\n };\n\n var currentValue = function currentValue(detail) {\n return detail.model.value.get();\n };\n\n var xValue = function xValue(x) {\n return {\n x: x\n };\n };\n\n var yValue = function yValue(y) {\n return {\n y: y\n };\n };\n\n var xyValue = function xyValue(x, y) {\n return {\n x: x,\n y: y\n };\n };\n\n var fireSliderChange$3 = function fireSliderChange$3(component, value) {\n emitWith(component, sliderChangeEvent(), {\n value: value\n });\n };\n\n var setToTLEdgeXY = function setToTLEdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), min1Y(detail)));\n };\n\n var setToTEdge = function setToTEdge(edge, detail) {\n fireSliderChange$3(edge, yValue(min1Y(detail)));\n };\n\n var setToTEdgeXY = function setToTEdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(halfX(detail), min1Y(detail)));\n };\n\n var setToTREdgeXY = function setToTREdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), min1Y(detail)));\n };\n\n var setToREdge = function setToREdge(edge, detail) {\n fireSliderChange$3(edge, xValue(max1X(detail)));\n };\n\n var setToREdgeXY = function setToREdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), halfY(detail)));\n };\n\n var setToBREdgeXY = function setToBREdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(max1X(detail), max1Y(detail)));\n };\n\n var setToBEdge = function setToBEdge(edge, detail) {\n fireSliderChange$3(edge, yValue(max1Y(detail)));\n };\n\n var setToBEdgeXY = function setToBEdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(halfX(detail), max1Y(detail)));\n };\n\n var setToBLEdgeXY = function setToBLEdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), max1Y(detail)));\n };\n\n var setToLEdge = function setToLEdge(edge, detail) {\n fireSliderChange$3(edge, xValue(min1X(detail)));\n };\n\n var setToLEdgeXY = function setToLEdgeXY(edge, detail) {\n fireSliderChange$3(edge, xyValue(min1X(detail), halfY(detail)));\n };\n\n var reduceBy = function reduceBy(value, min, max, step) {\n if (value < min) {\n return value;\n } else if (value > max) {\n return max;\n } else if (value === min) {\n return min - 1;\n } else {\n return Math.max(min, value - step);\n }\n };\n\n var increaseBy = function increaseBy(value, min, max, step) {\n if (value > max) {\n return value;\n } else if (value < min) {\n return min;\n } else if (value === max) {\n return max + 1;\n } else {\n return Math.min(max, value + step);\n }\n };\n\n var capValue = function capValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n };\n\n var snapValueOf = function snapValueOf(value, min, max, step, snapStart) {\n return snapStart.fold(function () {\n var initValue = value - min;\n var extraValue = Math.round(initValue / step) * step;\n return capValue(min + extraValue, min - 1, max + 1);\n }, function (start) {\n var remainder = (value - start) % step;\n var adjustment = Math.round(remainder / step);\n var rawSteps = Math.floor((value - start) / step);\n var maxSteps = Math.floor((max - start) / step);\n var numSteps = Math.min(maxSteps, rawSteps + adjustment);\n var r = start + numSteps * step;\n return Math.max(start, r);\n });\n };\n\n var findOffsetOf = function findOffsetOf(value, min, max) {\n return Math.min(max, Math.max(value, min)) - min;\n };\n\n var findValueOf = function findValueOf(args) {\n var min = args.min,\n max = args.max,\n range = args.range,\n value = args.value,\n step = args.step,\n snap = args.snap,\n snapStart = args.snapStart,\n rounded = args.rounded,\n hasMinEdge = args.hasMinEdge,\n hasMaxEdge = args.hasMaxEdge,\n minBound = args.minBound,\n maxBound = args.maxBound,\n screenRange = args.screenRange;\n var capMin = hasMinEdge ? min - 1 : min;\n var capMax = hasMaxEdge ? max + 1 : max;\n\n if (value < minBound) {\n return capMin;\n } else if (value > maxBound) {\n return capMax;\n } else {\n var offset = findOffsetOf(value, minBound, maxBound);\n var newValue = capValue(offset / screenRange * range + min, capMin, capMax);\n\n if (snap && newValue >= min && newValue <= max) {\n return snapValueOf(newValue, min, max, step, snapStart);\n } else if (rounded) {\n return Math.round(newValue);\n } else {\n return newValue;\n }\n }\n };\n\n var findOffsetOfValue$2 = function findOffsetOfValue$2(args) {\n var min = args.min,\n max = args.max,\n range = args.range,\n value = args.value,\n hasMinEdge = args.hasMinEdge,\n hasMaxEdge = args.hasMaxEdge,\n maxBound = args.maxBound,\n maxOffset = args.maxOffset,\n centerMinEdge = args.centerMinEdge,\n centerMaxEdge = args.centerMaxEdge;\n\n if (value < min) {\n return hasMinEdge ? 0 : centerMinEdge;\n } else if (value > max) {\n return hasMaxEdge ? maxBound : centerMaxEdge;\n } else {\n return (value - min) / range * maxOffset;\n }\n };\n\n var top = 'top',\n right = 'right',\n bottom = 'bottom',\n left = 'left',\n width = 'width',\n height = 'height';\n\n var getBounds = function getBounds(component) {\n return component.element.dom.getBoundingClientRect();\n };\n\n var getBoundsProperty = function getBoundsProperty(bounds, property) {\n return bounds[property];\n };\n\n var getMinXBounds = function getMinXBounds(component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, left);\n };\n\n var getMaxXBounds = function getMaxXBounds(component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, right);\n };\n\n var getMinYBounds = function getMinYBounds(component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, top);\n };\n\n var getMaxYBounds = function getMaxYBounds(component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, bottom);\n };\n\n var getXScreenRange = function getXScreenRange(component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, width);\n };\n\n var getYScreenRange = function getYScreenRange(component) {\n var bounds = getBounds(component);\n return getBoundsProperty(bounds, height);\n };\n\n var getCenterOffsetOf = function getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge) {\n return (componentMinEdge + componentMaxEdge) / 2 - spectrumMinEdge;\n };\n\n var getXCenterOffSetOf = function getXCenterOffSetOf(component, spectrum) {\n var componentBounds = getBounds(component);\n var spectrumBounds = getBounds(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, left);\n var componentMaxEdge = getBoundsProperty(componentBounds, right);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, left);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n\n var getYCenterOffSetOf = function getYCenterOffSetOf(component, spectrum) {\n var componentBounds = getBounds(component);\n var spectrumBounds = getBounds(spectrum);\n var componentMinEdge = getBoundsProperty(componentBounds, top);\n var componentMaxEdge = getBoundsProperty(componentBounds, bottom);\n var spectrumMinEdge = getBoundsProperty(spectrumBounds, top);\n return getCenterOffsetOf(componentMinEdge, componentMaxEdge, spectrumMinEdge);\n };\n\n var fireSliderChange$2 = function fireSliderChange$2(spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), {\n value: value\n });\n };\n\n var sliderValue$2 = function sliderValue$2(x) {\n return {\n x: x\n };\n };\n\n var findValueOfOffset$1 = function findValueOfOffset$1(spectrum, detail, left) {\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: left,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n maxBound: getMaxXBounds(spectrum),\n screenRange: getXScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n\n var setValueFrom$2 = function setValueFrom$2(spectrum, detail, value) {\n var xValue = findValueOfOffset$1(spectrum, detail, value);\n var sliderVal = sliderValue$2(xValue);\n fireSliderChange$2(spectrum, sliderVal);\n return xValue;\n };\n\n var setToMin$2 = function setToMin$2(spectrum, detail) {\n var min = minX(detail);\n fireSliderChange$2(spectrum, sliderValue$2(min));\n };\n\n var setToMax$2 = function setToMax$2(spectrum, detail) {\n var max = maxX(detail);\n fireSliderChange$2(spectrum, sliderValue$2(max));\n };\n\n var moveBy$2 = function moveBy$2(direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = f(currentValue(detail).x, minX(detail), maxX(detail), step(detail));\n fireSliderChange$2(spectrum, sliderValue$2(xValue));\n return Optional.some(xValue);\n };\n\n var handleMovement$2 = function handleMovement$2(direction) {\n return function (spectrum, detail) {\n return moveBy$2(direction, spectrum, detail).map(always);\n };\n };\n\n var getValueFromEvent$2 = function getValueFromEvent$2(simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.left;\n });\n };\n\n var findOffsetOfValue$1 = function findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getXScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Optional.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Optional.some(getXCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minX(detail),\n max: maxX(detail),\n range: xRange(detail),\n value: value,\n hasMinEdge: hasLEdge(detail),\n hasMaxEdge: hasREdge(detail),\n minBound: getMinXBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxXBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n\n var findPositionOfValue$1 = function findPositionOfValue$1(slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue$1(spectrum, detail, value, minEdge, maxEdge);\n return getMinXBounds(spectrum) - getMinXBounds(slider) + offset;\n };\n\n var setPositionFromValue$2 = function setPositionFromValue$2(slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var thumbRadius = get$a(thumb.element) / 2;\n set$7(thumb.element, 'left', pos - thumbRadius + 'px');\n };\n\n var onLeft$2 = handleMovement$2(-1);\n var onRight$2 = handleMovement$2(1);\n var onUp$2 = Optional.none;\n var onDown$2 = Optional.none;\n var edgeActions$2 = {\n 'top-left': Optional.none(),\n 'top': Optional.none(),\n 'top-right': Optional.none(),\n 'right': Optional.some(setToREdge),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.none(),\n 'bottom-left': Optional.none(),\n 'left': Optional.some(setToLEdge)\n };\n var HorizontalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$2,\n setToMin: setToMin$2,\n setToMax: setToMax$2,\n findValueOfOffset: findValueOfOffset$1,\n getValueFromEvent: getValueFromEvent$2,\n findPositionOfValue: findPositionOfValue$1,\n setPositionFromValue: setPositionFromValue$2,\n onLeft: onLeft$2,\n onRight: onRight$2,\n onUp: onUp$2,\n onDown: onDown$2,\n edgeActions: edgeActions$2\n });\n\n var fireSliderChange$1 = function fireSliderChange$1(spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), {\n value: value\n });\n };\n\n var sliderValue$1 = function sliderValue$1(y) {\n return {\n y: y\n };\n };\n\n var findValueOfOffset = function findValueOfOffset(spectrum, detail, top) {\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: top,\n step: step(detail),\n snap: snap(detail),\n snapStart: snapStart(detail),\n rounded: rounded(detail),\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n maxBound: getMaxYBounds(spectrum),\n screenRange: getYScreenRange(spectrum)\n };\n return findValueOf(args);\n };\n\n var setValueFrom$1 = function setValueFrom$1(spectrum, detail, value) {\n var yValue = findValueOfOffset(spectrum, detail, value);\n var sliderVal = sliderValue$1(yValue);\n fireSliderChange$1(spectrum, sliderVal);\n return yValue;\n };\n\n var setToMin$1 = function setToMin$1(spectrum, detail) {\n var min = minY(detail);\n fireSliderChange$1(spectrum, sliderValue$1(min));\n };\n\n var setToMax$1 = function setToMax$1(spectrum, detail) {\n var max = maxY(detail);\n fireSliderChange$1(spectrum, sliderValue$1(max));\n };\n\n var moveBy$1 = function moveBy$1(direction, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var yValue = f(currentValue(detail).y, minY(detail), maxY(detail), step(detail));\n fireSliderChange$1(spectrum, sliderValue$1(yValue));\n return Optional.some(yValue);\n };\n\n var handleMovement$1 = function handleMovement$1(direction) {\n return function (spectrum, detail) {\n return moveBy$1(direction, spectrum, detail).map(always);\n };\n };\n\n var getValueFromEvent$1 = function getValueFromEvent$1(simulatedEvent) {\n var pos = getEventSource(simulatedEvent);\n return pos.map(function (p) {\n return p.top;\n });\n };\n\n var findOffsetOfValue = function findOffsetOfValue(spectrum, detail, value, minEdge, maxEdge) {\n var minOffset = 0;\n var maxOffset = getYScreenRange(spectrum);\n var centerMinEdge = minEdge.bind(function (edge) {\n return Optional.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(minOffset);\n var centerMaxEdge = maxEdge.bind(function (edge) {\n return Optional.some(getYCenterOffSetOf(edge, spectrum));\n }).getOr(maxOffset);\n var args = {\n min: minY(detail),\n max: maxY(detail),\n range: yRange(detail),\n value: value,\n hasMinEdge: hasTEdge(detail),\n hasMaxEdge: hasBEdge(detail),\n minBound: getMinYBounds(spectrum),\n minOffset: minOffset,\n maxBound: getMaxYBounds(spectrum),\n maxOffset: maxOffset,\n centerMinEdge: centerMinEdge,\n centerMaxEdge: centerMaxEdge\n };\n return findOffsetOfValue$2(args);\n };\n\n var findPositionOfValue = function findPositionOfValue(slider, spectrum, value, minEdge, maxEdge, detail) {\n var offset = findOffsetOfValue(spectrum, detail, value, minEdge, maxEdge);\n return getMinYBounds(spectrum) - getMinYBounds(slider) + offset;\n };\n\n var setPositionFromValue$1 = function setPositionFromValue$1(slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var pos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbRadius = get$b(thumb.element) / 2;\n set$7(thumb.element, 'top', pos - thumbRadius + 'px');\n };\n\n var onLeft$1 = Optional.none;\n var onRight$1 = Optional.none;\n var onUp$1 = handleMovement$1(-1);\n var onDown$1 = handleMovement$1(1);\n var edgeActions$1 = {\n 'top-left': Optional.none(),\n 'top': Optional.some(setToTEdge),\n 'top-right': Optional.none(),\n 'right': Optional.none(),\n 'bottom-right': Optional.none(),\n 'bottom': Optional.some(setToBEdge),\n 'bottom-left': Optional.none(),\n 'left': Optional.none()\n };\n var VerticalModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom$1,\n setToMin: setToMin$1,\n setToMax: setToMax$1,\n findValueOfOffset: findValueOfOffset,\n getValueFromEvent: getValueFromEvent$1,\n findPositionOfValue: findPositionOfValue,\n setPositionFromValue: setPositionFromValue$1,\n onLeft: onLeft$1,\n onRight: onRight$1,\n onUp: onUp$1,\n onDown: onDown$1,\n edgeActions: edgeActions$1\n });\n\n var fireSliderChange = function fireSliderChange(spectrum, value) {\n emitWith(spectrum, sliderChangeEvent(), {\n value: value\n });\n };\n\n var sliderValue = function sliderValue(x, y) {\n return {\n x: x,\n y: y\n };\n };\n\n var setValueFrom = function setValueFrom(spectrum, detail, value) {\n var xValue = findValueOfOffset$1(spectrum, detail, value.left);\n var yValue = findValueOfOffset(spectrum, detail, value.top);\n var val = sliderValue(xValue, yValue);\n fireSliderChange(spectrum, val);\n return val;\n };\n\n var moveBy = function moveBy(direction, isVerticalMovement, spectrum, detail) {\n var f = direction > 0 ? increaseBy : reduceBy;\n var xValue = isVerticalMovement ? currentValue(detail).x : f(currentValue(detail).x, minX(detail), maxX(detail), step(detail));\n var yValue = !isVerticalMovement ? currentValue(detail).y : f(currentValue(detail).y, minY(detail), maxY(detail), step(detail));\n fireSliderChange(spectrum, sliderValue(xValue, yValue));\n return Optional.some(xValue);\n };\n\n var handleMovement = function handleMovement(direction, isVerticalMovement) {\n return function (spectrum, detail) {\n return moveBy(direction, isVerticalMovement, spectrum, detail).map(always);\n };\n };\n\n var setToMin = function setToMin(spectrum, detail) {\n var mX = minX(detail);\n var mY = minY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n\n var setToMax = function setToMax(spectrum, detail) {\n var mX = maxX(detail);\n var mY = maxY(detail);\n fireSliderChange(spectrum, sliderValue(mX, mY));\n };\n\n var getValueFromEvent = function getValueFromEvent(simulatedEvent) {\n return getEventSource(simulatedEvent);\n };\n\n var setPositionFromValue = function setPositionFromValue(slider, thumb, detail, edges) {\n var value = currentValue(detail);\n var xPos = findPositionOfValue$1(slider, edges.getSpectrum(slider), value.x, edges.getLeftEdge(slider), edges.getRightEdge(slider), detail);\n var yPos = findPositionOfValue(slider, edges.getSpectrum(slider), value.y, edges.getTopEdge(slider), edges.getBottomEdge(slider), detail);\n var thumbXRadius = get$a(thumb.element) / 2;\n var thumbYRadius = get$b(thumb.element) / 2;\n set$7(thumb.element, 'left', xPos - thumbXRadius + 'px');\n set$7(thumb.element, 'top', yPos - thumbYRadius + 'px');\n };\n\n var onLeft = handleMovement(-1, false);\n var onRight = handleMovement(1, false);\n var onUp = handleMovement(-1, true);\n var onDown = handleMovement(1, true);\n var edgeActions = {\n 'top-left': Optional.some(setToTLEdgeXY),\n 'top': Optional.some(setToTEdgeXY),\n 'top-right': Optional.some(setToTREdgeXY),\n 'right': Optional.some(setToREdgeXY),\n 'bottom-right': Optional.some(setToBREdgeXY),\n 'bottom': Optional.some(setToBEdgeXY),\n 'bottom-left': Optional.some(setToBLEdgeXY),\n 'left': Optional.some(setToLEdgeXY)\n };\n var TwoDModel = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setValueFrom: setValueFrom,\n setToMin: setToMin,\n setToMax: setToMax,\n getValueFromEvent: getValueFromEvent,\n setPositionFromValue: setPositionFromValue,\n onLeft: onLeft,\n onRight: onRight,\n onUp: onUp,\n onDown: onDown,\n edgeActions: edgeActions\n });\n var SliderSchema = [defaulted('stepSize', 1), defaulted('onChange', noop), defaulted('onChoose', noop), defaulted('onInit', noop), defaulted('onDragStart', noop), defaulted('onDragEnd', noop), defaulted('snapToGrid', false), defaulted('rounded', true), option('snapStart'), requiredOf('model', choose$1('mode', {\n x: [defaulted('minX', 0), defaulted('maxX', 100), customField('value', function (spec) {\n return Cell(spec.mode.minX);\n }), required$1('getInitialValue'), output$1('manager', HorizontalModel)],\n y: [defaulted('minY', 0), defaulted('maxY', 100), customField('value', function (spec) {\n return Cell(spec.mode.minY);\n }), required$1('getInitialValue'), output$1('manager', VerticalModel)],\n xy: [defaulted('minX', 0), defaulted('maxX', 100), defaulted('minY', 0), defaulted('maxY', 100), customField('value', function (spec) {\n return Cell({\n x: spec.mode.minX,\n y: spec.mode.minY\n });\n }), required$1('getInitialValue'), output$1('manager', TwoDModel)]\n })), field('sliderBehaviours', [Keying, Representing]), customField('mouseIsDown', function () {\n return Cell(false);\n })];\n\n var sketch$2 = function sketch$2(detail, components, _spec, _externals) {\n var _a;\n\n var getThumb = function getThumb(component) {\n return getPartOrDie(component, detail, 'thumb');\n };\n\n var getSpectrum = function getSpectrum(component) {\n return getPartOrDie(component, detail, 'spectrum');\n };\n\n var getLeftEdge = function getLeftEdge(component) {\n return getPart(component, detail, 'left-edge');\n };\n\n var getRightEdge = function getRightEdge(component) {\n return getPart(component, detail, 'right-edge');\n };\n\n var getTopEdge = function getTopEdge(component) {\n return getPart(component, detail, 'top-edge');\n };\n\n var getBottomEdge = function getBottomEdge(component) {\n return getPart(component, detail, 'bottom-edge');\n };\n\n var modelDetail = detail.model;\n var model = modelDetail.manager;\n\n var refresh = function refresh(slider, thumb) {\n model.setPositionFromValue(slider, thumb, detail, {\n getLeftEdge: getLeftEdge,\n getRightEdge: getRightEdge,\n getTopEdge: getTopEdge,\n getBottomEdge: getBottomEdge,\n getSpectrum: getSpectrum\n });\n };\n\n var setValue = function setValue(slider, newValue) {\n modelDetail.value.set(newValue);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n };\n\n var changeValue = function changeValue(slider, newValue) {\n setValue(slider, newValue);\n var thumb = getThumb(slider);\n detail.onChange(slider, thumb, newValue);\n return Optional.some(true);\n };\n\n var resetToMin = function resetToMin(slider) {\n model.setToMin(slider, detail);\n };\n\n var resetToMax = function resetToMax(slider) {\n model.setToMax(slider, detail);\n };\n\n var choose = function choose(slider) {\n var fireOnChoose = function fireOnChoose() {\n getPart(slider, detail, 'thumb').each(function (thumb) {\n var value = modelDetail.value.get();\n detail.onChoose(slider, thumb, value);\n });\n };\n\n var wasDown = detail.mouseIsDown.get();\n detail.mouseIsDown.set(false);\n\n if (wasDown) {\n fireOnChoose();\n }\n };\n\n var onDragStart = function onDragStart(slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.mouseIsDown.set(true);\n detail.onDragStart(slider, getThumb(slider));\n };\n\n var onDragEnd = function onDragEnd(slider, simulatedEvent) {\n simulatedEvent.stop();\n detail.onDragEnd(slider, getThumb(slider));\n choose(slider);\n };\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.sliderBehaviours, [Keying.config({\n mode: 'special',\n focusIn: function focusIn(slider) {\n return getPart(slider, detail, 'spectrum').map(Keying.focusIn).map(always);\n }\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(_) {\n return modelDetail.value.get();\n }\n }\n }), Receiving.config({\n channels: (_a = {}, _a[mouseReleased()] = {\n onReceive: choose\n }, _a)\n })]),\n events: derive$2([run$1(sliderChangeEvent(), function (slider, simulatedEvent) {\n changeValue(slider, simulatedEvent.event.value);\n }), runOnAttached(function (slider, _simulatedEvent) {\n var getInitial = modelDetail.getInitialValue();\n modelDetail.value.set(getInitial);\n var thumb = getThumb(slider);\n refresh(slider, thumb);\n var spectrum = getSpectrum(slider);\n detail.onInit(slider, thumb, spectrum, modelDetail.value.get());\n }), run$1(touchstart(), onDragStart), run$1(touchend(), onDragEnd), run$1(mousedown(), onDragStart), run$1(mouseup(), onDragEnd)]),\n apis: {\n resetToMin: resetToMin,\n resetToMax: resetToMax,\n setValue: setValue,\n refresh: refresh\n },\n domModification: {\n styles: {\n position: 'relative'\n }\n }\n };\n };\n\n var Slider = composite({\n name: 'Slider',\n configFields: SliderSchema,\n partFields: SliderParts,\n factory: sketch$2,\n apis: {\n setValue: function setValue(apis, slider, value) {\n apis.setValue(slider, value);\n },\n resetToMin: function resetToMin(apis, slider) {\n apis.resetToMin(slider);\n },\n resetToMax: function resetToMax(apis, slider) {\n apis.resetToMax(slider);\n },\n refresh: function refresh(apis, slider) {\n apis.refresh(slider);\n }\n }\n });\n var fieldsUpdate = generate$6('rgb-hex-update');\n var sliderUpdate = generate$6('slider-update');\n var paletteUpdate = generate$6('palette-update');\n\n var sliderFactory = function sliderFactory(translate, getClass) {\n var spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-spectrum')],\n attributes: {\n role: 'presentation'\n }\n }\n });\n var thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider-thumb')],\n attributes: {\n role: 'presentation'\n }\n }\n });\n return Slider.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('hue-slider')],\n attributes: {\n role: 'presentation'\n }\n },\n rounded: false,\n model: {\n mode: 'y',\n getInitialValue: constant$1({\n y: 0\n })\n },\n components: [spectrum, thumb],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChange: function onChange(slider, _thumb, value) {\n emitWith(slider, sliderUpdate, {\n value: value\n });\n }\n });\n };\n\n var owner$1 = 'form';\n var schema$i = [field('formBehaviours', [Representing])];\n\n var getPartName$1 = function getPartName$1(name) {\n return '';\n };\n\n var sketch$1 = function sketch$1(fSpec) {\n var parts = function () {\n var record = [];\n\n var field = function field(name, config) {\n record.push(name);\n return generateOne$1(owner$1, getPartName$1(name), config);\n };\n\n return {\n field: field,\n record: constant$1(record)\n };\n }();\n\n var spec = fSpec(parts);\n var partNames = parts.record();\n var fieldParts = map$2(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName$1(n)\n });\n });\n return composite$1(owner$1, schema$i, fieldParts, make$4, spec);\n };\n\n var toResult = function toResult(o, e) {\n return o.fold(function () {\n return Result.error(e);\n }, Result.value);\n };\n\n var make$4 = function make$4(detail, components) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.formBehaviours, [Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(form) {\n var resPs = getAllParts(form, detail);\n return map$1(resPs, function (resPThunk, pName) {\n return resPThunk().bind(function (v) {\n var opt = Composing.getCurrent(v);\n return toResult(opt, new Error('Cannot find a current component to extract the value from for form part \\'' + pName + '\\': ' + element(v.element)));\n }).map(Representing.getValue);\n });\n },\n setValue: function setValue(form, values) {\n each(values, function (newValue, key) {\n getPart(form, detail, key).each(function (wrapper) {\n Composing.getCurrent(wrapper).each(function (field) {\n Representing.setValue(field, newValue);\n });\n });\n });\n }\n }\n })]),\n apis: {\n getField: function getField(form, key) {\n return getPart(form, detail, key).bind(Composing.getCurrent);\n }\n }\n };\n };\n\n var Form = {\n getField: makeApi(function (apis, component, key) {\n return apis.getField(component, key);\n }),\n sketch: sketch$1\n };\n var validInput = generate$6('valid-input');\n var invalidInput = generate$6('invalid-input');\n var validatingInput = generate$6('validating-input');\n var translatePrefix = 'colorcustom.rgb.';\n\n var rgbFormFactory = function rgbFormFactory(translate, getClass, onValidHexx, onInvalidHexx) {\n var invalidation = function invalidation(label, isValid) {\n return Invalidating.config({\n invalidClass: getClass('invalid'),\n notify: {\n onValidate: function onValidate(comp) {\n emitWith(comp, validatingInput, {\n type: label\n });\n },\n onValid: function onValid(comp) {\n emitWith(comp, validInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n },\n onInvalid: function onInvalid(comp) {\n emitWith(comp, invalidInput, {\n type: label,\n value: Representing.getValue(comp)\n });\n }\n },\n validator: {\n validate: function validate(comp) {\n var value = Representing.getValue(comp);\n var res = isValid(value) ? Result.value(true) : Result.error(translate('aria.input.invalid'));\n return Future.pure(res);\n },\n validateOnLoad: false\n }\n });\n };\n\n var renderTextField = function renderTextField(isValid, name, label, description, data) {\n var helptext = translate(translatePrefix + 'range');\n var pLabel = FormField.parts.label({\n dom: {\n tag: 'label',\n innerHtml: label,\n attributes: {\n 'aria-label': description\n }\n }\n });\n var pField = FormField.parts.field({\n data: data,\n factory: Input,\n inputAttributes: _assign({\n type: 'text'\n }, name === 'hex' ? {\n 'aria-live': 'polite'\n } : {}),\n inputClasses: [getClass('textfield')],\n inputBehaviours: derive$1([invalidation(name, isValid), Tabstopping.config({})]),\n onSetValue: function onSetValue(input) {\n if (Invalidating.isInvalid(input)) {\n var run = Invalidating.run(input);\n run.get(noop);\n }\n }\n });\n var comps = [pLabel, pField];\n var concats = name !== 'hex' ? [FormField.parts['aria-descriptor']({\n text: helptext\n })] : [];\n var components = comps.concat(concats);\n return {\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n }\n },\n components: components\n };\n };\n\n var copyRgbToHex = function copyRgbToHex(form, rgba) {\n var hex = fromRgba(rgba);\n Form.getField(form, 'hex').each(function (hexField) {\n if (!Focusing.isFocused(hexField)) {\n Representing.setValue(form, {\n hex: hex.value\n });\n }\n });\n return hex;\n };\n\n var copyRgbToForm = function copyRgbToForm(form, rgb) {\n var red = rgb.red;\n var green = rgb.green;\n var blue = rgb.blue;\n Representing.setValue(form, {\n red: red,\n green: green,\n blue: blue\n });\n };\n\n var memPreview = record({\n dom: {\n tag: 'div',\n classes: [getClass('rgba-preview')],\n styles: {\n 'background-color': 'white'\n },\n attributes: {\n role: 'presentation'\n }\n }\n });\n\n var updatePreview = function updatePreview(anyInSystem, hex) {\n memPreview.getOpt(anyInSystem).each(function (preview) {\n set$7(preview.element, 'background-color', '#' + hex.value);\n });\n };\n\n var factory = function factory() {\n var state = {\n red: Cell(Optional.some(255)),\n green: Cell(Optional.some(255)),\n blue: Cell(Optional.some(255)),\n hex: Cell(Optional.some('ffffff'))\n };\n\n var copyHexToRgb = function copyHexToRgb(form, hex) {\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n };\n\n var get = function get(prop) {\n return state[prop].get();\n };\n\n var set = function set(prop, value) {\n state[prop].set(value);\n };\n\n var getValueRgb = function getValueRgb() {\n return get('red').bind(function (red) {\n return get('green').bind(function (green) {\n return get('blue').map(function (blue) {\n return rgbaColour(red, green, blue, 1);\n });\n });\n });\n };\n\n var setValueRgb = function setValueRgb(rgb) {\n var red = rgb.red;\n var green = rgb.green;\n var blue = rgb.blue;\n set('red', Optional.some(red));\n set('green', Optional.some(green));\n set('blue', Optional.some(blue));\n };\n\n var onInvalidInput = function onInvalidInput(form, simulatedEvent) {\n var data = simulatedEvent.event;\n\n if (data.type !== 'hex') {\n set(data.type, Optional.none());\n } else {\n onInvalidHexx(form);\n }\n };\n\n var onValidHex = function onValidHex(form, value) {\n onValidHexx(form);\n var hex = hexColour(value);\n set('hex', Optional.some(value));\n var rgb = fromHex(hex);\n copyRgbToForm(form, rgb);\n setValueRgb(rgb);\n emitWith(form, fieldsUpdate, {\n hex: hex\n });\n updatePreview(form, hex);\n };\n\n var onValidRgb = function onValidRgb(form, prop, value) {\n var val = parseInt(value, 10);\n set(prop, Optional.some(val));\n getValueRgb().each(function (rgb) {\n var hex = copyRgbToHex(form, rgb);\n emitWith(form, fieldsUpdate, {\n hex: hex\n });\n updatePreview(form, hex);\n });\n };\n\n var isHexInputEvent = function isHexInputEvent(data) {\n return data.type === 'hex';\n };\n\n var onValidInput = function onValidInput(form, simulatedEvent) {\n var data = simulatedEvent.event;\n\n if (isHexInputEvent(data)) {\n onValidHex(form, data.value);\n } else {\n onValidRgb(form, data.type, data.value);\n }\n };\n\n var formPartStrings = function formPartStrings(key) {\n return {\n label: translate(translatePrefix + key + '.label'),\n description: translate(translatePrefix + key + '.description')\n };\n };\n\n var redStrings = formPartStrings('red');\n var greenStrings = formPartStrings('green');\n var blueStrings = formPartStrings('blue');\n var hexStrings = formPartStrings('hex');\n return deepMerge(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'form',\n classes: [getClass('rgb-form')],\n attributes: {\n 'aria-label': translate('aria.color.picker')\n }\n },\n components: [parts.field('red', FormField.sketch(renderTextField(isRgbaComponent, 'red', redStrings.label, redStrings.description, 255))), parts.field('green', FormField.sketch(renderTextField(isRgbaComponent, 'green', greenStrings.label, greenStrings.description, 255))), parts.field('blue', FormField.sketch(renderTextField(isRgbaComponent, 'blue', blueStrings.label, blueStrings.description, 255))), parts.field('hex', FormField.sketch(renderTextField(isHexString, 'hex', hexStrings.label, hexStrings.description, 'ffffff'))), memPreview.asSpec()],\n formBehaviours: derive$1([Invalidating.config({\n invalidClass: getClass('form-invalid')\n }), config('rgb-form-events', [run$1(validInput, onValidInput), run$1(invalidInput, onInvalidInput), run$1(validatingInput, onInvalidInput)])])\n };\n }), {\n apis: {\n updateHex: function updateHex(form, hex) {\n Representing.setValue(form, {\n hex: hex.value\n });\n copyHexToRgb(form, hex);\n updatePreview(form, hex);\n }\n }\n });\n };\n\n var rgbFormSketcher = single({\n factory: factory,\n name: 'RgbForm',\n configFields: [],\n apis: {\n updateHex: function updateHex(apis, form, hex) {\n apis.updateHex(form, hex);\n }\n },\n extraApis: {}\n });\n return rgbFormSketcher;\n };\n\n var paletteFactory = function paletteFactory(_translate, getClass) {\n var spectrumPart = Slider.parts.spectrum({\n dom: {\n tag: 'canvas',\n attributes: {\n role: 'presentation'\n },\n classes: [getClass('sv-palette-spectrum')]\n }\n });\n var thumbPart = Slider.parts.thumb({\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n },\n classes: [getClass('sv-palette-thumb')],\n innerHtml: '
'\n }\n });\n\n var setColour = function setColour(canvas, rgba) {\n var width = canvas.width,\n height = canvas.height;\n var ctx = canvas.getContext('2d');\n\n if (ctx === null) {\n return;\n }\n\n ctx.fillStyle = rgba;\n ctx.fillRect(0, 0, width, height);\n var grdWhite = ctx.createLinearGradient(0, 0, width, 0);\n grdWhite.addColorStop(0, 'rgba(255,255,255,1)');\n grdWhite.addColorStop(1, 'rgba(255,255,255,0)');\n ctx.fillStyle = grdWhite;\n ctx.fillRect(0, 0, width, height);\n var grdBlack = ctx.createLinearGradient(0, 0, 0, height);\n grdBlack.addColorStop(0, 'rgba(0,0,0,0)');\n grdBlack.addColorStop(1, 'rgba(0,0,0,1)');\n ctx.fillStyle = grdBlack;\n ctx.fillRect(0, 0, width, height);\n };\n\n var setPaletteHue = function setPaletteHue(slider, hue) {\n var canvas = slider.components()[0].element.dom;\n var hsv = hsvColour(hue, 100, 100);\n var rgba = fromHsv(hsv);\n setColour(canvas, toString(rgba));\n };\n\n var setPaletteThumb = function setPaletteThumb(slider, hex) {\n var hsv = fromRgb(fromHex(hex));\n Slider.setValue(slider, {\n x: hsv.saturation,\n y: 100 - hsv.value\n });\n };\n\n var factory = function factory(_detail) {\n var getInitialValue = constant$1({\n x: 0,\n y: 0\n });\n\n var onChange = function onChange(slider, _thumb, value) {\n emitWith(slider, paletteUpdate, {\n value: value\n });\n };\n\n var onInit = function onInit(_slider, _thumb, spectrum, _value) {\n setColour(spectrum.element.dom, toString(red));\n };\n\n var sliderBehaviours = derive$1([Composing.config({\n find: Optional.some\n }), Focusing.config({})]);\n return Slider.sketch({\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n },\n classes: [getClass('sv-palette')]\n },\n model: {\n mode: 'xy',\n getInitialValue: getInitialValue\n },\n rounded: false,\n components: [spectrumPart, thumbPart],\n onChange: onChange,\n onInit: onInit,\n sliderBehaviours: sliderBehaviours\n });\n };\n\n var saturationBrightnessPaletteSketcher = single({\n factory: factory,\n name: 'SaturationBrightnessPalette',\n configFields: [],\n apis: {\n setHue: function setHue(_apis, slider, hue) {\n setPaletteHue(slider, hue);\n },\n setThumb: function setThumb(_apis, slider, hex) {\n setPaletteThumb(slider, hex);\n }\n },\n extraApis: {}\n });\n return saturationBrightnessPaletteSketcher;\n };\n\n var makeFactory = function makeFactory(translate, getClass) {\n var factory = function factory(detail) {\n var rgbForm = rgbFormFactory(translate, getClass, detail.onValidHex, detail.onInvalidHex);\n var sbPalette = paletteFactory(translate, getClass);\n\n var hueSliderToDegrees = function hueSliderToDegrees(hue) {\n return (100 - hue) / 100 * 360;\n };\n\n var hueDegreesToSlider = function hueDegreesToSlider(hue) {\n return 100 - hue / 360 * 100;\n };\n\n var state = {\n paletteRgba: Cell(red),\n paletteHue: Cell(0)\n };\n var memSlider = record(sliderFactory(translate, getClass));\n var memPalette = record(sbPalette.sketch({}));\n var memRgb = record(rgbForm.sketch({}));\n\n var updatePalette = function updatePalette(anyInSystem, _hex, hue) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n sbPalette.setHue(palette, hue);\n });\n };\n\n var updateFields = function updateFields(anyInSystem, hex) {\n memRgb.getOpt(anyInSystem).each(function (form) {\n rgbForm.updateHex(form, hex);\n });\n };\n\n var updateSlider = function updateSlider(anyInSystem, _hex, hue) {\n memSlider.getOpt(anyInSystem).each(function (slider) {\n Slider.setValue(slider, {\n y: hueDegreesToSlider(hue)\n });\n });\n };\n\n var updatePaletteThumb = function updatePaletteThumb(anyInSystem, hex) {\n memPalette.getOpt(anyInSystem).each(function (palette) {\n sbPalette.setThumb(palette, hex);\n });\n };\n\n var updateState = function updateState(hex, hue) {\n var rgba = fromHex(hex);\n state.paletteRgba.set(rgba);\n state.paletteHue.set(hue);\n };\n\n var runUpdates = function runUpdates(anyInSystem, hex, hue, updates) {\n updateState(hex, hue);\n each$1(updates, function (update) {\n update(anyInSystem, hex, hue);\n });\n };\n\n var onPaletteUpdate = function onPaletteUpdate() {\n var updates = [updateFields];\n return function (form, simulatedEvent) {\n var value = simulatedEvent.event.value;\n var oldHue = state.paletteHue.get();\n var newHsv = hsvColour(oldHue, value.x, 100 - value.y);\n var newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, oldHue, updates);\n };\n };\n\n var onSliderUpdate = function onSliderUpdate() {\n var updates = [updatePalette, updateFields];\n return function (form, simulatedEvent) {\n var hue = hueSliderToDegrees(simulatedEvent.event.value.y);\n var oldRgb = state.paletteRgba.get();\n var oldHsv = fromRgb(oldRgb);\n var newHsv = hsvColour(hue, oldHsv.saturation, oldHsv.value);\n var newHex = hsvToHex(newHsv);\n runUpdates(form, newHex, hue, updates);\n };\n };\n\n var onFieldsUpdate = function onFieldsUpdate() {\n var updates = [updatePalette, updateSlider, updatePaletteThumb];\n return function (form, simulatedEvent) {\n var hex = simulatedEvent.event.hex;\n var hsv = hexToHsv(hex);\n runUpdates(form, hex, hsv.hue, updates);\n };\n };\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [memPalette.asSpec(), memSlider.asSpec(), memRgb.asSpec()],\n behaviours: derive$1([config('colour-picker-events', [run$1(fieldsUpdate, onFieldsUpdate()), run$1(paletteUpdate, onPaletteUpdate()), run$1(sliderUpdate, onSliderUpdate())]), Composing.config({\n find: function find(comp) {\n return memRgb.getOpt(comp);\n }\n }), Keying.config({\n mode: 'acyclic'\n })])\n };\n };\n\n var colourPickerSketcher = single({\n name: 'ColourPicker',\n configFields: [required$1('dom'), defaulted('onValidHex', noop), defaulted('onInvalidHex', noop)],\n factory: factory\n });\n return colourPickerSketcher;\n };\n\n var self$1 = function self$1() {\n return Composing.config({\n find: Optional.some\n });\n };\n\n var memento$1 = function memento$1(mem) {\n return Composing.config({\n find: mem.getOpt\n });\n };\n\n var childAt = function childAt(index) {\n return Composing.config({\n find: function find(comp) {\n return child$2(comp.element, index).bind(function (element) {\n return comp.getSystem().getByDom(element).toOptional();\n });\n }\n });\n };\n\n var ComposingConfigs = {\n self: self$1,\n memento: memento$1,\n childAt: childAt\n };\n var english = {\n 'colorcustom.rgb.red.label': 'R',\n 'colorcustom.rgb.red.description': 'Red component',\n 'colorcustom.rgb.green.label': 'G',\n 'colorcustom.rgb.green.description': 'Green component',\n 'colorcustom.rgb.blue.label': 'B',\n 'colorcustom.rgb.blue.description': 'Blue component',\n 'colorcustom.rgb.hex.label': '#',\n 'colorcustom.rgb.hex.description': 'Hex color code',\n 'colorcustom.rgb.range': 'Range 0 to 255',\n 'colorcustom.sb.saturation': 'Saturation',\n 'colorcustom.sb.brightness': 'Brightness',\n 'colorcustom.sb.picker': 'Saturation and Brightness Picker',\n 'colorcustom.sb.palette': 'Saturation and Brightness Palette',\n 'colorcustom.sb.instructions': 'Use arrow keys to select saturation and brightness, on x and y axes',\n 'colorcustom.hue.hue': 'Hue',\n 'colorcustom.hue.slider': 'Hue Slider',\n 'colorcustom.hue.palette': 'Hue Palette',\n 'colorcustom.hue.instructions': 'Use arrow keys to select a hue',\n 'aria.color.picker': 'Color Picker',\n 'aria.input.invalid': 'Invalid input'\n };\n\n var getEnglishText = function getEnglishText(key) {\n return english[key];\n };\n\n var translate$1 = function translate$1(key) {\n return getEnglishText(key);\n };\n\n var renderColorPicker = function renderColorPicker(_spec) {\n var getClass = function getClass(key) {\n return 'tox-' + key;\n };\n\n var colourPickerFactory = makeFactory(translate$1, getClass);\n\n var onValidHex = function onValidHex(form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: true\n });\n };\n\n var onInvalidHex = function onInvalidHex(form) {\n emitWith(form, formActionEvent, {\n name: 'hex-valid',\n value: false\n });\n };\n\n var memPicker = record(colourPickerFactory.sketch({\n dom: {\n tag: 'div',\n classes: [getClass('color-picker-container')],\n attributes: {\n role: 'presentation'\n }\n },\n onValidHex: onValidHex,\n onInvalidHex: onInvalidHex\n }));\n return {\n dom: {\n tag: 'div'\n },\n components: [memPicker.asSpec()],\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(comp) {\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n var optHex = optRgbForm.bind(function (rgbForm) {\n var formValues = Representing.getValue(rgbForm);\n return formValues.hex;\n });\n return optHex.map(function (hex) {\n return '#' + hex;\n }).getOr('');\n },\n setValue: function setValue(comp, newValue) {\n var pattern = /^#([a-fA-F0-9]{3}(?:[a-fA-F0-9]{3})?)/;\n var m = pattern.exec(newValue);\n var picker = memPicker.get(comp);\n var optRgbForm = Composing.getCurrent(picker);\n optRgbForm.fold(function () {\n console.log('Can not find form');\n }, function (rgbForm) {\n Representing.setValue(rgbForm, {\n hex: Optional.from(m[1]).getOr('')\n });\n Form.getField(rgbForm, 'hex').each(function (hexField) {\n emit(hexField, input());\n });\n });\n }\n }\n }), ComposingConfigs.self()])\n };\n };\n\n var global$6 = tinymce.util.Tools.resolve('tinymce.Resource');\n\n var isOldCustomEditor = function isOldCustomEditor(spec) {\n return has$2(spec, 'init');\n };\n\n var renderCustomEditor = function renderCustomEditor(spec) {\n var editorApi = value$1();\n var memReplaced = record({\n dom: {\n tag: spec.tag\n }\n });\n var initialValue = value$1();\n return {\n dom: {\n tag: 'div',\n classes: ['tox-custom-editor']\n },\n behaviours: derive$1([config('custom-editor-events', [runOnAttached(function (component) {\n memReplaced.getOpt(component).each(function (ta) {\n (isOldCustomEditor(spec) ? spec.init(ta.element.dom) : global$6.load(spec.scriptId, spec.scriptUrl).then(function (init) {\n return init(ta.element.dom, spec.settings);\n })).then(function (ea) {\n initialValue.on(function (cvalue) {\n ea.setValue(cvalue);\n });\n initialValue.clear();\n editorApi.set(ea);\n });\n });\n })]), Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue() {\n return editorApi.get().fold(function () {\n return initialValue.get().getOr('');\n }, function (ed) {\n return ed.getValue();\n });\n },\n setValue: function setValue(component, value) {\n editorApi.get().fold(function () {\n initialValue.set(value);\n }, function (ed) {\n return ed.setValue(value);\n });\n }\n }\n }), ComposingConfigs.self()]),\n components: [memReplaced.asSpec()]\n };\n };\n\n var global$5 = tinymce.util.Tools.resolve('tinymce.util.Tools');\n var processors = objOf([defaulted('preprocess', identity$1), defaulted('postprocess', identity$1)]);\n\n var memento = function memento(mem, rawProcessors) {\n var ps = asRawOrDie$1('RepresentingConfigs.memento processors', processors, rawProcessors);\n return Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(comp) {\n var other = mem.get(comp);\n var rawValue = Representing.getValue(other);\n return ps.postprocess(rawValue);\n },\n setValue: function setValue(comp, rawValue) {\n var newValue = ps.preprocess(rawValue);\n var other = mem.get(comp);\n Representing.setValue(other, newValue);\n }\n }\n });\n };\n\n var withComp = function withComp(optInitialValue, getter, setter) {\n return Representing.config(deepMerge({\n store: {\n mode: 'manual',\n getValue: getter,\n setValue: setter\n }\n }, optInitialValue.map(function (initialValue) {\n return {\n store: {\n initialValue: initialValue\n }\n };\n }).getOr({})));\n };\n\n var withElement = function withElement(initialValue, getter, setter) {\n return withComp(initialValue, function (c) {\n return getter(c.element);\n }, function (c, v) {\n return setter(c.element, v);\n });\n };\n\n var domValue = function domValue(optInitialValue) {\n return withElement(optInitialValue, get$5, set$4);\n };\n\n var domHtml = function domHtml(optInitialValue) {\n return withElement(optInitialValue, get$7, set$5);\n };\n\n var memory = function memory(initialValue) {\n return Representing.config({\n store: {\n mode: 'memory',\n initialValue: initialValue\n }\n });\n };\n\n var RepresentingConfigs = {\n memento: memento,\n withElement: withElement,\n withComp: withComp,\n domValue: domValue,\n domHtml: domHtml,\n memory: memory\n };\n var defaultImageFileTypes = 'jpeg,jpg,jpe,jfi,jif,jfif,png,gif,bmp,webp';\n\n var filterByExtension = function filterByExtension(files, providersBackstage) {\n var allowedImageFileTypes = global$5.explode(providersBackstage.getSetting('images_file_types', defaultImageFileTypes, 'string'));\n\n var isFileInAllowedTypes = function isFileInAllowedTypes(file) {\n return exists(allowedImageFileTypes, function (type) {\n return endsWith(file.name.toLowerCase(), '.' + type.toLowerCase());\n });\n };\n\n return filter$2(from(files), isFileInAllowedTypes);\n };\n\n var renderDropZone = function renderDropZone(spec, providersBackstage) {\n var stopper = function stopper(_, se) {\n se.stop();\n };\n\n var sequence = function sequence(actions) {\n return function (comp, se) {\n each$1(actions, function (a) {\n a(comp, se);\n });\n };\n };\n\n var onDrop = function onDrop(comp, se) {\n if (!Disabling.isDisabled(comp)) {\n var transferEvent = se.event.raw;\n handleFiles(comp, transferEvent.dataTransfer.files);\n }\n };\n\n var onSelect = function onSelect(component, simulatedEvent) {\n var input = simulatedEvent.event.raw.target;\n handleFiles(component, input.files);\n };\n\n var handleFiles = function handleFiles(component, files) {\n Representing.setValue(component, filterByExtension(files, providersBackstage));\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n };\n\n var memInput = record({\n dom: {\n tag: 'input',\n attributes: {\n type: 'file',\n accept: 'image/*'\n },\n styles: {\n display: 'none'\n }\n },\n behaviours: derive$1([config('input-file-events', [cutter(click()), cutter(tap())])])\n });\n\n var renderField = function renderField(s) {\n return {\n uid: s.uid,\n dom: {\n tag: 'div',\n classes: ['tox-dropzone-container']\n },\n behaviours: derive$1([RepresentingConfigs.memory([]), ComposingConfigs.self(), Disabling.config({}), Toggling.config({\n toggleClass: 'dragenter',\n toggleOnExecute: false\n }), config('dropzone-events', [run$1('dragenter', sequence([stopper, Toggling.toggle])), run$1('dragleave', sequence([stopper, Toggling.toggle])), run$1('dragover', stopper), run$1('drop', sequence([stopper, onDrop])), run$1(change(), onSelect)])]),\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dropzone'],\n styles: {}\n },\n components: [{\n dom: {\n tag: 'p',\n innerHtml: providersBackstage.translate('Drop an image here')\n }\n }, Button.sketch({\n dom: {\n tag: 'button',\n innerHtml: providersBackstage.translate('Browse for an image'),\n styles: {\n position: 'relative'\n },\n classes: ['tox-button', 'tox-button--secondary']\n },\n components: [memInput.asSpec()],\n action: function action(comp) {\n var inputComp = memInput.get(comp);\n inputComp.element.dom.click();\n },\n buttonBehaviours: derive$1([Tabstopping.config({}), DisablingConfigs.button(providersBackstage.isDisabled), receivingConfig()])\n })]\n }]\n };\n };\n\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n factory: {\n sketch: renderField\n }\n });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n var renderGrid = function renderGrid(spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__grid', 'tox-form__grid--' + spec.columns + 'col']\n },\n components: map$2(spec.items, backstage.interpreter)\n };\n };\n\n var beforeObject = generate$6('alloy-fake-before-tabstop');\n var afterObject = generate$6('alloy-fake-after-tabstop');\n\n var craftWithClasses = function craftWithClasses(classes) {\n return {\n dom: {\n tag: 'div',\n styles: {\n width: '1px',\n height: '1px',\n outline: 'none'\n },\n attributes: {\n tabindex: '0'\n },\n classes: classes\n },\n behaviours: derive$1([Focusing.config({\n ignore: true\n }), Tabstopping.config({})])\n };\n };\n\n var craft = function craft(spec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-navobj']\n },\n components: [craftWithClasses([beforeObject]), spec, craftWithClasses([afterObject])],\n behaviours: derive$1([ComposingConfigs.childAt(1)])\n };\n };\n\n var triggerTab = function triggerTab(placeholder, shiftKey) {\n emitWith(placeholder, keydown(), {\n raw: {\n which: 9,\n shiftKey: shiftKey\n }\n });\n };\n\n var onFocus = function onFocus(container, targetComp) {\n var target = targetComp.element;\n\n if (has(target, beforeObject)) {\n triggerTab(container, true);\n } else if (has(target, afterObject)) {\n triggerTab(container, false);\n }\n };\n\n var isPseudoStop = function isPseudoStop(element) {\n return closest(element, ['.' + beforeObject, '.' + afterObject].join(','), never);\n };\n\n var platformNeedsSandboxing = !(detect$1().browser.isIE() || detect$1().browser.isEdge());\n\n var getDynamicSource = function getDynamicSource(isSandbox) {\n var cachedValue = Cell('');\n return {\n getValue: function getValue(_frameComponent) {\n return cachedValue.get();\n },\n setValue: function setValue(frameComponent, html) {\n if (!isSandbox) {\n set$8(frameComponent.element, 'src', 'javascript:\\'\\'');\n var doc = frameComponent.element.dom.contentWindow.document;\n doc.open();\n doc.write(html);\n doc.close();\n } else {\n set$8(frameComponent.element, 'srcdoc', html);\n }\n\n cachedValue.set(html);\n }\n };\n };\n\n var renderIFrame = function renderIFrame(spec, providersBackstage) {\n var isSandbox = platformNeedsSandboxing && spec.sandboxed;\n\n var attributes = _assign(_assign({}, spec.label.map(function (title) {\n return {\n title: title\n };\n }).getOr({})), isSandbox ? {\n sandbox: 'allow-scripts allow-same-origin'\n } : {});\n\n var sourcing = getDynamicSource(isSandbox);\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n\n var factory = function factory(newSpec) {\n return craft({\n uid: newSpec.uid,\n dom: {\n tag: 'iframe',\n attributes: attributes\n },\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({}), RepresentingConfigs.withComp(Optional.none(), sourcing.getValue, sourcing.setValue)])\n });\n };\n\n var pField = FormField.parts.field({\n factory: {\n sketch: factory\n }\n });\n return renderFormFieldWith(pLabel, pField, ['tox-form__group--stretched'], []);\n };\n\n var create$3 = function create$3(width, height) {\n return resize$3(document.createElement('canvas'), width, height);\n };\n\n var clone = function clone(canvas) {\n var tCanvas = create$3(canvas.width, canvas.height);\n var ctx = get2dContext(tCanvas);\n ctx.drawImage(canvas, 0, 0);\n return tCanvas;\n };\n\n var get2dContext = function get2dContext(canvas) {\n return canvas.getContext('2d');\n };\n\n var resize$3 = function resize$3(canvas, width, height) {\n canvas.width = width;\n canvas.height = height;\n return canvas;\n };\n\n var getWidth$1 = function getWidth$1(image) {\n return image.naturalWidth || image.width;\n };\n\n var getHeight$1 = function getHeight$1(image) {\n return image.naturalHeight || image.height;\n };\n\n var blobToImage = function blobToImage(blob) {\n return new Promise$1(function (resolve, reject) {\n var blobUrl = URL.createObjectURL(blob);\n var image = new Image();\n\n var removeListeners = function removeListeners() {\n image.removeEventListener('load', loaded);\n image.removeEventListener('error', error);\n };\n\n var loaded = function loaded() {\n removeListeners();\n resolve(image);\n };\n\n var error = function error() {\n removeListeners();\n reject('Unable to load data of type ' + blob.type + ': ' + blobUrl);\n };\n\n image.addEventListener('load', loaded);\n image.addEventListener('error', error);\n image.src = blobUrl;\n\n if (image.complete) {\n setTimeout(loaded, 0);\n }\n });\n };\n\n var dataUriToBlobSync = function dataUriToBlobSync(uri) {\n var data = uri.split(',');\n var matches = /data:([^;]+)/.exec(data[0]);\n\n if (!matches) {\n return Optional.none();\n }\n\n var mimetype = matches[1];\n var base64 = data[1];\n var sliceSize = 1024;\n var byteCharacters = atob(base64);\n var bytesLength = byteCharacters.length;\n var slicesCount = Math.ceil(bytesLength / sliceSize);\n var byteArrays = new Array(slicesCount);\n\n for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {\n var begin = sliceIndex * sliceSize;\n var end = Math.min(begin + sliceSize, bytesLength);\n var bytes = new Array(end - begin);\n\n for (var offset = begin, i = 0; offset < end; ++i, ++offset) {\n bytes[i] = byteCharacters[offset].charCodeAt(0);\n }\n\n byteArrays[sliceIndex] = new Uint8Array(bytes);\n }\n\n return Optional.some(new Blob(byteArrays, {\n type: mimetype\n }));\n };\n\n var dataUriToBlob = function dataUriToBlob(uri) {\n return new Promise$1(function (resolve, reject) {\n dataUriToBlobSync(uri).fold(function () {\n reject('uri is not base64: ' + uri);\n }, resolve);\n });\n };\n\n var canvasToBlob = function canvasToBlob(canvas, type, quality) {\n type = type || 'image/png';\n\n if (isFunction(HTMLCanvasElement.prototype.toBlob)) {\n return new Promise$1(function (resolve, reject) {\n canvas.toBlob(function (blob) {\n if (blob) {\n resolve(blob);\n } else {\n reject();\n }\n }, type, quality);\n });\n } else {\n return dataUriToBlob(canvas.toDataURL(type, quality));\n }\n };\n\n var canvasToDataURL = function canvasToDataURL(canvas, type, quality) {\n type = type || 'image/png';\n return canvas.toDataURL(type, quality);\n };\n\n var blobToCanvas = function blobToCanvas(blob) {\n return blobToImage(blob).then(function (image) {\n revokeImageUrl(image);\n var canvas = create$3(getWidth$1(image), getHeight$1(image));\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0);\n return canvas;\n });\n };\n\n var blobToDataUri = function blobToDataUri(blob) {\n return new Promise$1(function (resolve) {\n var reader = new FileReader();\n\n reader.onloadend = function () {\n resolve(reader.result);\n };\n\n reader.readAsDataURL(blob);\n });\n };\n\n var revokeImageUrl = function revokeImageUrl(image) {\n URL.revokeObjectURL(image.src);\n };\n\n var create$2 = function create$2(getCanvas, blob, uri) {\n var initialType = blob.type;\n var getType = constant$1(initialType);\n\n var toBlob = function toBlob() {\n return Promise$1.resolve(blob);\n };\n\n var toDataURL = constant$1(uri);\n\n var toBase64 = function toBase64() {\n return uri.split(',')[1];\n };\n\n var toAdjustedBlob = function toAdjustedBlob(type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n };\n\n var toAdjustedDataURL = function toAdjustedDataURL(type, quality) {\n return getCanvas.then(function (canvas) {\n return canvasToDataURL(canvas, type, quality);\n });\n };\n\n var toAdjustedBase64 = function toAdjustedBase64(type, quality) {\n return toAdjustedDataURL(type, quality).then(function (dataurl) {\n return dataurl.split(',')[1];\n });\n };\n\n var toCanvas = function toCanvas() {\n return getCanvas.then(clone);\n };\n\n return {\n getType: getType,\n toBlob: toBlob,\n toDataURL: toDataURL,\n toBase64: toBase64,\n toAdjustedBlob: toAdjustedBlob,\n toAdjustedDataURL: toAdjustedDataURL,\n toAdjustedBase64: toAdjustedBase64,\n toCanvas: toCanvas\n };\n };\n\n var fromBlob = function fromBlob(blob) {\n return blobToDataUri(blob).then(function (uri) {\n return create$2(blobToCanvas(blob), blob, uri);\n });\n };\n\n var fromCanvas = function fromCanvas(canvas, type) {\n return canvasToBlob(canvas, type).then(function (blob) {\n return create$2(Promise$1.resolve(canvas), blob, canvas.toDataURL());\n });\n };\n\n var blobToImageResult = function blobToImageResult(blob) {\n return fromBlob(blob);\n };\n\n var clamp = function clamp(value, min, max) {\n var parsedValue = typeof value === 'string' ? parseFloat(value) : value;\n\n if (parsedValue > max) {\n parsedValue = max;\n } else if (parsedValue < min) {\n parsedValue = min;\n }\n\n return parsedValue;\n };\n\n var identity = function identity() {\n return [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n };\n\n var DELTA_INDEX = [0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15, 0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32, 0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95, 0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66, 1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87, 3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5, 7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10];\n\n var multiply = function multiply(matrix1, matrix2) {\n var col = [];\n var out = new Array(25);\n var val;\n\n for (var i = 0; i < 5; i++) {\n for (var j = 0; j < 5; j++) {\n col[j] = matrix2[j + i * 5];\n }\n\n for (var j = 0; j < 5; j++) {\n val = 0;\n\n for (var k = 0; k < 5; k++) {\n val += matrix1[j + k * 5] * col[k];\n }\n\n out[j + i * 5] = val;\n }\n }\n\n return out;\n };\n\n var adjustContrast = function adjustContrast(matrix, value) {\n var x;\n value = clamp(value, -1, 1);\n value *= 100;\n\n if (value < 0) {\n x = 127 + value / 100 * 127;\n } else {\n x = value % 1;\n\n if (x === 0) {\n x = DELTA_INDEX[value];\n } else {\n x = DELTA_INDEX[Math.floor(value)] * (1 - x) + DELTA_INDEX[Math.floor(value) + 1] * x;\n }\n\n x = x * 127 + 127;\n }\n\n return multiply(matrix, [x / 127, 0, 0, 0, 0.5 * (127 - x), 0, x / 127, 0, 0, 0.5 * (127 - x), 0, 0, x / 127, 0, 0.5 * (127 - x), 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n };\n\n var adjustBrightness = function adjustBrightness(matrix, value) {\n value = clamp(255 * value, -255, 255);\n return multiply(matrix, [1, 0, 0, 0, value, 0, 1, 0, 0, value, 0, 0, 1, 0, value, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n };\n\n var adjustColors = function adjustColors(matrix, adjustR, adjustG, adjustB) {\n adjustR = clamp(adjustR, 0, 2);\n adjustG = clamp(adjustG, 0, 2);\n adjustB = clamp(adjustB, 0, 2);\n return multiply(matrix, [adjustR, 0, 0, 0, 0, 0, adjustG, 0, 0, 0, 0, 0, adjustB, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n };\n\n var colorFilter = function colorFilter(ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyColorFilter(canvas, ir.getType(), matrix);\n });\n };\n\n var applyColorFilter = function applyColorFilter(canvas, type, matrix) {\n var context = get2dContext(canvas);\n\n var applyMatrix = function applyMatrix(pixelsData, m) {\n var r, g, b, a;\n var data = pixelsData.data,\n m0 = m[0],\n m1 = m[1],\n m2 = m[2],\n m3 = m[3],\n m4 = m[4],\n m5 = m[5],\n m6 = m[6],\n m7 = m[7],\n m8 = m[8],\n m9 = m[9],\n m10 = m[10],\n m11 = m[11],\n m12 = m[12],\n m13 = m[13],\n m14 = m[14],\n m15 = m[15],\n m16 = m[16],\n m17 = m[17],\n m18 = m[18],\n m19 = m[19];\n\n for (var i = 0; i < data.length; i += 4) {\n r = data[i];\n g = data[i + 1];\n b = data[i + 2];\n a = data[i + 3];\n data[i] = r * m0 + g * m1 + b * m2 + a * m3 + m4;\n data[i + 1] = r * m5 + g * m6 + b * m7 + a * m8 + m9;\n data[i + 2] = r * m10 + g * m11 + b * m12 + a * m13 + m14;\n data[i + 3] = r * m15 + g * m16 + b * m17 + a * m18 + m19;\n }\n\n return pixelsData;\n };\n\n var pixels = applyMatrix(context.getImageData(0, 0, canvas.width, canvas.height), matrix);\n context.putImageData(pixels, 0, 0);\n return fromCanvas(canvas, type);\n };\n\n var convoluteFilter = function convoluteFilter(ir, matrix) {\n return ir.toCanvas().then(function (canvas) {\n return applyConvoluteFilter(canvas, ir.getType(), matrix);\n });\n };\n\n var applyConvoluteFilter = function applyConvoluteFilter(canvas, type, matrix) {\n var context = get2dContext(canvas);\n\n var applyMatrix = function applyMatrix(pIn, pOut, aMatrix) {\n var clamp = function clamp(value, min, max) {\n if (value > max) {\n value = max;\n } else if (value < min) {\n value = min;\n }\n\n return value;\n };\n\n var side = Math.round(Math.sqrt(aMatrix.length));\n var halfSide = Math.floor(side / 2);\n var rgba = pIn.data;\n var drgba = pOut.data;\n var w = pIn.width;\n var h = pIn.height;\n\n for (var y = 0; y < h; y++) {\n for (var x = 0; x < w; x++) {\n var r = 0;\n var g = 0;\n var b = 0;\n\n for (var cy = 0; cy < side; cy++) {\n for (var cx = 0; cx < side; cx++) {\n var scx = clamp(x + cx - halfSide, 0, w - 1);\n var scy = clamp(y + cy - halfSide, 0, h - 1);\n var innerOffset = (scy * w + scx) * 4;\n var wt = aMatrix[cy * side + cx];\n r += rgba[innerOffset] * wt;\n g += rgba[innerOffset + 1] * wt;\n b += rgba[innerOffset + 2] * wt;\n }\n }\n\n var offset = (y * w + x) * 4;\n drgba[offset] = clamp(r, 0, 255);\n drgba[offset + 1] = clamp(g, 0, 255);\n drgba[offset + 2] = clamp(b, 0, 255);\n }\n }\n\n return pOut;\n };\n\n var pixelsIn = context.getImageData(0, 0, canvas.width, canvas.height);\n var pixelsOut = context.getImageData(0, 0, canvas.width, canvas.height);\n pixelsOut = applyMatrix(pixelsIn, pixelsOut, matrix);\n context.putImageData(pixelsOut, 0, 0);\n return fromCanvas(canvas, type);\n };\n\n var functionColorFilter = function functionColorFilter(colorFn) {\n var filterImpl = function filterImpl(canvas, type, value) {\n var context = get2dContext(canvas);\n var lookup = new Array(256);\n\n var applyLookup = function applyLookup(pixelsData, lookupData) {\n var data = pixelsData.data;\n\n for (var i = 0; i < data.length; i += 4) {\n data[i] = lookupData[data[i]];\n data[i + 1] = lookupData[data[i + 1]];\n data[i + 2] = lookupData[data[i + 2]];\n }\n\n return pixelsData;\n };\n\n for (var i = 0; i < lookup.length; i++) {\n lookup[i] = colorFn(i, value);\n }\n\n var pixels = applyLookup(context.getImageData(0, 0, canvas.width, canvas.height), lookup);\n context.putImageData(pixels, 0, 0);\n return fromCanvas(canvas, type);\n };\n\n return function (ir, value) {\n return ir.toCanvas().then(function (canvas) {\n return filterImpl(canvas, ir.getType(), value);\n });\n };\n };\n\n var complexAdjustableColorFilter = function complexAdjustableColorFilter(matrixAdjustFn) {\n return function (ir, adjust) {\n return colorFilter(ir, matrixAdjustFn(identity(), adjust));\n };\n };\n\n var basicColorFilter = function basicColorFilter(matrix) {\n return function (ir) {\n return colorFilter(ir, matrix);\n };\n };\n\n var basicConvolutionFilter = function basicConvolutionFilter(kernel) {\n return function (ir) {\n return convoluteFilter(ir, kernel);\n };\n };\n\n var invert$1 = basicColorFilter([-1, 0, 0, 0, 255, 0, -1, 0, 0, 255, 0, 0, -1, 0, 255, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);\n var brightness$1 = complexAdjustableColorFilter(adjustBrightness);\n var contrast$1 = complexAdjustableColorFilter(adjustContrast);\n\n var colorize$1 = function colorize$1(ir, adjustR, adjustG, adjustB) {\n return colorFilter(ir, adjustColors(identity(), adjustR, adjustG, adjustB));\n };\n\n var sharpen$1 = basicConvolutionFilter([0, -1, 0, -1, 5, -1, 0, -1, 0]);\n var gamma$1 = functionColorFilter(function (color, value) {\n return Math.pow(color / 255, 1 - value) * 255;\n });\n\n var scale = function scale(image, dW, dH) {\n var sW = getWidth$1(image);\n var sH = getHeight$1(image);\n var wRatio = dW / sW;\n var hRatio = dH / sH;\n var scaleCapped = false;\n\n if (wRatio < 0.5 || wRatio > 2) {\n wRatio = wRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n\n if (hRatio < 0.5 || hRatio > 2) {\n hRatio = hRatio < 0.5 ? 0.5 : 2;\n scaleCapped = true;\n }\n\n var scaled = _scale(image, wRatio, hRatio);\n\n return !scaleCapped ? scaled : scaled.then(function (tCanvas) {\n return scale(tCanvas, dW, dH);\n });\n };\n\n var _scale = function _scale(image, wRatio, hRatio) {\n return new Promise$1(function (resolve) {\n var sW = getWidth$1(image);\n var sH = getHeight$1(image);\n var dW = Math.floor(sW * wRatio);\n var dH = Math.floor(sH * hRatio);\n var canvas = create$3(dW, dH);\n var context = get2dContext(canvas);\n context.drawImage(image, 0, 0, sW, sH, 0, 0, dW, dH);\n resolve(canvas);\n });\n };\n\n var ceilWithPrecision = function ceilWithPrecision(num, precision) {\n if (precision === void 0) {\n precision = 2;\n }\n\n var mul = Math.pow(10, precision);\n var upper = Math.round(num * mul);\n return Math.ceil(upper / mul);\n };\n\n var rotate$1 = function rotate$1(ir, angle) {\n return ir.toCanvas().then(function (canvas) {\n return applyRotate(canvas, ir.getType(), angle);\n });\n };\n\n var applyRotate = function applyRotate(image, type, angle) {\n var degrees = angle < 0 ? 360 + angle : angle;\n var rad = degrees * Math.PI / 180;\n var width = image.width;\n var height = image.height;\n var sin = Math.sin(rad);\n var cos = Math.cos(rad);\n var newWidth = ceilWithPrecision(Math.abs(width * cos) + Math.abs(height * sin));\n var newHeight = ceilWithPrecision(Math.abs(width * sin) + Math.abs(height * cos));\n var canvas = create$3(newWidth, newHeight);\n var context = get2dContext(canvas);\n context.translate(newWidth / 2, newHeight / 2);\n context.rotate(rad);\n context.drawImage(image, -width / 2, -height / 2);\n return fromCanvas(canvas, type);\n };\n\n var flip$1 = function flip$1(ir, axis) {\n return ir.toCanvas().then(function (canvas) {\n return applyFlip(canvas, ir.getType(), axis);\n });\n };\n\n var applyFlip = function applyFlip(image, type, axis) {\n var canvas = create$3(image.width, image.height);\n var context = get2dContext(canvas);\n\n if (axis === 'v') {\n context.scale(1, -1);\n context.drawImage(image, 0, -canvas.height);\n } else {\n context.scale(-1, 1);\n context.drawImage(image, -canvas.width, 0);\n }\n\n return fromCanvas(canvas, type);\n };\n\n var crop$1 = function crop$1(ir, x, y, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return applyCrop(canvas, ir.getType(), x, y, w, h);\n });\n };\n\n var applyCrop = function applyCrop(image, type, x, y, w, h) {\n var canvas = create$3(w, h);\n var context = get2dContext(canvas);\n context.drawImage(image, -x, -y);\n return fromCanvas(canvas, type);\n };\n\n var resize$2 = function resize$2(ir, w, h) {\n return ir.toCanvas().then(function (canvas) {\n return scale(canvas, w, h).then(function (newCanvas) {\n return fromCanvas(newCanvas, ir.getType());\n });\n });\n };\n\n var invert = function invert(ir) {\n return invert$1(ir);\n };\n\n var sharpen = function sharpen(ir) {\n return sharpen$1(ir);\n };\n\n var gamma = function gamma(ir, value) {\n return gamma$1(ir, value);\n };\n\n var colorize = function colorize(ir, adjustR, adjustG, adjustB) {\n return colorize$1(ir, adjustR, adjustG, adjustB);\n };\n\n var brightness = function brightness(ir, adjust) {\n return brightness$1(ir, adjust);\n };\n\n var contrast = function contrast(ir, adjust) {\n return contrast$1(ir, adjust);\n };\n\n var flip = function flip(ir, axis) {\n return flip$1(ir, axis);\n };\n\n var crop = function crop(ir, x, y, w, h) {\n return crop$1(ir, x, y, w, h);\n };\n\n var resize$1 = function resize$1(ir, w, h) {\n return resize$2(ir, w, h);\n };\n\n var rotate = function rotate(ir, angle) {\n return rotate$1(ir, angle);\n };\n\n var renderIcon = function renderIcon(iconName, iconsProvider, behaviours) {\n return render$3(iconName, {\n tag: 'span',\n classes: ['tox-icon', 'tox-tbtn__icon-wrap'],\n behaviours: behaviours\n }, iconsProvider);\n };\n\n var renderIconFromPack = function renderIconFromPack(iconName, iconsProvider) {\n return renderIcon(iconName, iconsProvider, []);\n };\n\n var renderReplacableIconFromPack = function renderReplacableIconFromPack(iconName, iconsProvider) {\n return renderIcon(iconName, iconsProvider, [Replacing.config({})]);\n };\n\n var renderLabel$1 = function renderLabel$1(text, prefix, providersBackstage) {\n return {\n dom: {\n tag: 'span',\n innerHtml: providersBackstage.translate(text),\n classes: [prefix + '__select-label']\n },\n behaviours: derive$1([Replacing.config({})])\n };\n };\n\n var _a;\n\n var internalToolbarButtonExecute = generate$6('toolbar.button.execute');\n\n var onToolbarButtonExecute = function onToolbarButtonExecute(info) {\n return runOnExecute$1(function (comp, _simulatedEvent) {\n runWithApi(info, comp)(function (itemApi) {\n emitWith(comp, internalToolbarButtonExecute, {\n buttonApi: itemApi\n });\n info.onAction(itemApi);\n });\n });\n };\n\n var toolbarButtonEventOrder = (_a = {}, _a[execute$5()] = ['disabling', 'alloy.base.behaviour', 'toggling', 'toolbar-button-events'], _a);\n var updateMenuText = generate$6('update-menu-text');\n var updateMenuIcon = generate$6('update-menu-icon');\n\n var renderCommonDropdown = function renderCommonDropdown(spec, prefix, sharedBackstage) {\n var editorOffCell = Cell(noop);\n var optMemDisplayText = spec.text.map(function (text) {\n return record(renderLabel$1(text, prefix, sharedBackstage.providers));\n });\n var optMemDisplayIcon = spec.icon.map(function (iconName) {\n return record(renderReplacableIconFromPack(iconName, sharedBackstage.providers.icons));\n });\n\n var onLeftOrRightInMenu = function onLeftOrRightInMenu(comp, se) {\n var dropdown = Representing.getValue(comp);\n Focusing.focus(dropdown);\n emitWith(dropdown, 'keydown', {\n raw: se.event.raw\n });\n Dropdown.close(dropdown);\n return Optional.some(true);\n };\n\n var role = spec.role.fold(function () {\n return {};\n }, function (role) {\n return {\n role: role\n };\n });\n var tooltipAttributes = spec.tooltip.fold(function () {\n return {};\n }, function (tooltip) {\n var translatedTooltip = sharedBackstage.providers.translate(tooltip);\n return {\n 'title': translatedTooltip,\n 'aria-label': translatedTooltip\n };\n });\n var iconSpec = render$3('chevron-down', {\n tag: 'div',\n classes: [prefix + '__select-chevron']\n }, sharedBackstage.providers.icons);\n var memDropdown = record(Dropdown.sketch(_assign(_assign(_assign({}, spec.uid ? {\n uid: spec.uid\n } : {}), role), {\n dom: {\n tag: 'button',\n classes: [prefix, prefix + '--select'].concat(map$2(spec.classes, function (c) {\n return prefix + '--' + c;\n })),\n attributes: _assign({}, tooltipAttributes)\n },\n components: componentRenderPipeline([optMemDisplayIcon.map(function (mem) {\n return mem.asSpec();\n }), optMemDisplayText.map(function (mem) {\n return mem.asSpec();\n }), Optional.some(iconSpec)]),\n matchWidth: true,\n useMinWidth: true,\n dropdownBehaviours: derive$1(__spreadArray(__spreadArray([], spec.dropdownBehaviours, true), [DisablingConfigs.button(function () {\n return spec.disabled || sharedBackstage.providers.isDisabled();\n }), receivingConfig(), Unselecting.config({}), Replacing.config({}), config('dropdown-events', [onControlAttached(spec, editorOffCell), onControlDetached(spec, editorOffCell)]), config('menubutton-update-display-text', [run$1(updateMenuText, function (comp, se) {\n optMemDisplayText.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayText) {\n Replacing.set(displayText, [text(sharedBackstage.providers.translate(se.event.text))]);\n });\n }), run$1(updateMenuIcon, function (comp, se) {\n optMemDisplayIcon.bind(function (mem) {\n return mem.getOpt(comp);\n }).each(function (displayIcon) {\n Replacing.set(displayIcon, [renderReplacableIconFromPack(se.event.icon, sharedBackstage.providers.icons)]);\n });\n })])], false)),\n eventOrder: deepMerge(toolbarButtonEventOrder, {\n mousedown: ['focusing', 'alloy.base.behaviour', 'item-type-events', 'normal-dropdown-events']\n }),\n sandboxBehaviours: derive$1([Keying.config({\n mode: 'special',\n onLeft: onLeftOrRightInMenu,\n onRight: onLeftOrRightInMenu\n })]),\n lazySink: sharedBackstage.getSink,\n toggleClass: prefix + '--active',\n parts: {\n menu: part(false, spec.columns, spec.presets)\n },\n fetch: function fetch(comp) {\n return Future.nu(curry(spec.fetch, comp));\n }\n })));\n return memDropdown.asSpec();\n };\n\n var isMenuItemReference = function isMenuItemReference(item) {\n return isString(item);\n };\n\n var isSeparator$1 = function isSeparator$1(item) {\n return item.type === 'separator';\n };\n\n var isExpandingMenuItem = function isExpandingMenuItem(item) {\n return has$2(item, 'getSubmenuItems');\n };\n\n var separator$2 = {\n type: 'separator'\n };\n\n var unwrapReferences = function unwrapReferences(items, menuItems) {\n var realItems = foldl(items, function (acc, item) {\n if (isMenuItemReference(item)) {\n if (item === '') {\n return acc;\n } else if (item === '|') {\n return acc.length > 0 && !isSeparator$1(acc[acc.length - 1]) ? acc.concat([separator$2]) : acc;\n } else if (has$2(menuItems, item.toLowerCase())) {\n return acc.concat([menuItems[item.toLowerCase()]]);\n } else {\n return acc;\n }\n } else {\n return acc.concat([item]);\n }\n }, []);\n\n if (realItems.length > 0 && isSeparator$1(realItems[realItems.length - 1])) {\n realItems.pop();\n }\n\n return realItems;\n };\n\n var getFromExpandingItem = function getFromExpandingItem(item, menuItems) {\n var submenuItems = item.getSubmenuItems();\n var rest = expand(submenuItems, menuItems);\n var newMenus = deepMerge(rest.menus, wrap$1(item.value, rest.items));\n var newExpansions = deepMerge(rest.expansions, wrap$1(item.value, item.value));\n return {\n item: item,\n menus: newMenus,\n expansions: newExpansions\n };\n };\n\n var getFromItem = function getFromItem(item, menuItems) {\n return isExpandingMenuItem(item) ? getFromExpandingItem(item, menuItems) : {\n item: item,\n menus: {},\n expansions: {}\n };\n };\n\n var generateValueIfRequired = function generateValueIfRequired(item) {\n if (isSeparator$1(item)) {\n return item;\n } else {\n var itemValue = get$e(item, 'value').getOrThunk(function () {\n return generate$6('generated-menu-item');\n });\n return deepMerge({\n value: itemValue\n }, item);\n }\n };\n\n var expand = function expand(items, menuItems) {\n var realItems = unwrapReferences(isString(items) ? items.split(' ') : items, menuItems);\n return foldr(realItems, function (acc, item) {\n var itemWithValue = generateValueIfRequired(item);\n var newData = getFromItem(itemWithValue, menuItems);\n return {\n menus: deepMerge(acc.menus, newData.menus),\n items: [newData.item].concat(acc.items),\n expansions: deepMerge(acc.expansions, newData.expansions)\n };\n }, {\n menus: {},\n expansions: {},\n items: []\n });\n };\n\n var build = function build(items, itemResponse, backstage, isHorizontalMenu) {\n var primary = generate$6('primary-menu');\n var data = expand(items, backstage.shared.providers.menuItems());\n\n if (data.items.length === 0) {\n return Optional.none();\n }\n\n var mainMenu = createPartialMenu(primary, data.items, itemResponse, backstage, isHorizontalMenu);\n var submenus = map$1(data.menus, function (menuItems, menuName) {\n return createPartialMenu(menuName, menuItems, itemResponse, backstage, false);\n });\n var menus = deepMerge(submenus, wrap$1(primary, mainMenu));\n return Optional.from(tieredMenu.tieredData(primary, menus, data.expansions));\n };\n\n var getMenuButtonApi = function getMenuButtonApi(component) {\n return {\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(component, state);\n },\n setActive: function setActive(state) {\n var elm = component.element;\n\n if (state) {\n add$2(elm, 'tox-tbtn--enabled');\n set$8(elm, 'aria-pressed', true);\n } else {\n remove$2(elm, 'tox-tbtn--enabled');\n remove$7(elm, 'aria-pressed');\n }\n },\n isActive: function isActive() {\n return has(component.element, 'tox-tbtn--enabled');\n }\n };\n };\n\n var renderMenuButton = function renderMenuButton(spec, prefix, backstage, role) {\n return renderCommonDropdown({\n text: spec.text,\n icon: spec.icon,\n tooltip: spec.tooltip,\n role: role,\n fetch: function fetch(_comp, callback) {\n spec.fetch(function (items) {\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n });\n },\n onSetup: spec.onSetup,\n getApi: getMenuButtonApi,\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [Tabstopping.config({})]\n }, prefix, backstage.shared);\n };\n\n var getFetch = function getFetch(items, getButton, backstage) {\n var getMenuItemAction = function getMenuItemAction(item) {\n return function (api) {\n var newValue = !api.isActive();\n api.setActive(newValue);\n item.storage.set(newValue);\n backstage.shared.getSink().each(function (sink) {\n getButton().getOpt(sink).each(function (orig) {\n focus$3(orig.element);\n emitWith(orig, formActionEvent, {\n name: item.name,\n value: item.storage.get()\n });\n });\n });\n };\n };\n\n var getMenuItemSetup = function getMenuItemSetup(item) {\n return function (api) {\n api.setActive(item.storage.get());\n };\n };\n\n return function (success) {\n success(map$2(items, function (item) {\n var text = item.text.fold(function () {\n return {};\n }, function (text) {\n return {\n text: text\n };\n });\n return _assign(_assign({\n type: item.type,\n active: false\n }, text), {\n onAction: getMenuItemAction(item),\n onSetup: getMenuItemSetup(item)\n });\n }));\n };\n };\n\n var renderCommonSpec = function renderCommonSpec(spec, actionOpt, extraBehaviours, dom, components, providersBackstage) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n\n var action = actionOpt.fold(function () {\n return {};\n }, function (action) {\n return {\n action: action\n };\n });\n\n var common = _assign({\n buttonBehaviours: derive$1([DisablingConfigs.button(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }), receivingConfig(), Tabstopping.config({}), config('button press', [preventDefault('click'), preventDefault('mousedown')])].concat(extraBehaviours)),\n eventOrder: {\n click: ['button press', 'alloy.base.behaviour'],\n mousedown: ['button press', 'alloy.base.behaviour']\n }\n }, action);\n\n var domFinal = deepMerge(common, {\n dom: dom\n });\n return deepMerge(domFinal, {\n components: components\n });\n };\n\n var renderIconButtonSpec = function renderIconButtonSpec(spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n\n var tooltipAttributes = spec.tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n var dom = {\n tag: 'button',\n classes: ['tox-tbtn'],\n attributes: tooltipAttributes\n };\n var icon = spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n });\n var components = componentRenderPipeline([icon]);\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n\n var renderIconButton = function renderIconButton(spec, action, providersBackstage, extraBehaviours) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n\n var iconButtonSpec = renderIconButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours);\n return Button.sketch(iconButtonSpec);\n };\n\n var renderButtonSpec = function renderButtonSpec(spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n\n var translatedText = providersBackstage.translate(spec.text);\n var icon = spec.icon ? spec.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }) : Optional.none();\n var components = icon.isSome() ? componentRenderPipeline([icon]) : [];\n var innerHtml = icon.isSome() ? {} : {\n innerHtml: translatedText\n };\n\n var classes = __spreadArray(__spreadArray(__spreadArray(__spreadArray([], !spec.primary && !spec.borderless ? ['tox-button', 'tox-button--secondary'] : ['tox-button'], true), icon.isSome() ? ['tox-button--icon'] : [], true), spec.borderless ? ['tox-button--naked'] : [], true), extraClasses, true);\n\n var dom = _assign(_assign({\n tag: 'button',\n classes: classes\n }, innerHtml), {\n attributes: {\n title: translatedText\n }\n });\n\n return renderCommonSpec(spec, action, extraBehaviours, dom, components, providersBackstage);\n };\n\n var renderButton = function renderButton(spec, action, providersBackstage, extraBehaviours, extraClasses) {\n if (extraBehaviours === void 0) {\n extraBehaviours = [];\n }\n\n if (extraClasses === void 0) {\n extraClasses = [];\n }\n\n var buttonSpec = renderButtonSpec(spec, Optional.some(action), providersBackstage, extraBehaviours, extraClasses);\n return Button.sketch(buttonSpec);\n };\n\n var getAction = function getAction(name, buttonType) {\n return function (comp) {\n if (buttonType === 'custom') {\n emitWith(comp, formActionEvent, {\n name: name,\n value: {}\n });\n } else if (buttonType === 'submit') {\n emit(comp, formSubmitEvent);\n } else if (buttonType === 'cancel') {\n emit(comp, formCancelEvent);\n } else {\n console.error('Unknown button type: ', buttonType);\n }\n };\n };\n\n var isMenuFooterButtonSpec = function isMenuFooterButtonSpec(spec, buttonType) {\n return buttonType === 'menu';\n };\n\n var isNormalFooterButtonSpec = function isNormalFooterButtonSpec(spec, buttonType) {\n return buttonType === 'custom' || buttonType === 'cancel' || buttonType === 'submit';\n };\n\n var renderFooterButton = function renderFooterButton(spec, buttonType, backstage) {\n if (isMenuFooterButtonSpec(spec, buttonType)) {\n var getButton = function getButton() {\n return memButton_1;\n };\n\n var menuButtonSpec = spec;\n\n var fixedSpec = _assign(_assign({}, spec), {\n onSetup: function onSetup(api) {\n api.setDisabled(spec.disabled);\n return noop;\n },\n fetch: getFetch(menuButtonSpec.items, getButton, backstage)\n });\n\n var memButton_1 = record(renderMenuButton(fixedSpec, 'tox-tbtn', backstage, Optional.none()));\n return memButton_1.asSpec();\n } else if (isNormalFooterButtonSpec(spec, buttonType)) {\n var action = getAction(spec.name, buttonType);\n\n var buttonSpec = _assign(_assign({}, spec), {\n borderless: false\n });\n\n return renderButton(buttonSpec, action, backstage.shared.providers, []);\n } else {\n console.error('Unknown footer button type: ', buttonType);\n }\n };\n\n var renderDialogButton = function renderDialogButton(spec, providersBackstage) {\n var action = getAction(spec.name, 'custom');\n return renderFormField(Optional.none(), FormField.parts.field(_assign({\n factory: Button\n }, renderButtonSpec(spec, Optional.some(action), providersBackstage, [RepresentingConfigs.memory(''), ComposingConfigs.self()]))));\n };\n\n var schema$h = constant$1([defaulted('field1Name', 'field1'), defaulted('field2Name', 'field2'), onStrictHandler('onLockedChange'), markers$1(['lockClass']), defaulted('locked', false), SketchBehaviours.field('coupledFieldBehaviours', [Composing, Representing])]);\n\n var getField = function getField(comp, detail, partName) {\n return getPart(comp, detail, partName).bind(Composing.getCurrent);\n };\n\n var coupledPart = function coupledPart(selfName, otherName) {\n return required({\n factory: FormField,\n name: selfName,\n overrides: function overrides(detail) {\n return {\n fieldBehaviours: derive$1([config('coupled-input-behaviour', [run$1(input(), function (me) {\n getField(me, detail, otherName).each(function (other) {\n getPart(me, detail, 'lock').each(function (lock) {\n if (Toggling.isOn(lock)) {\n detail.onLockedChange(me, other, lock);\n }\n });\n });\n })])])\n };\n }\n });\n };\n\n var parts$c = constant$1([coupledPart('field1', 'field2'), coupledPart('field2', 'field1'), required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'lock',\n overrides: function overrides(detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n selected: detail.locked,\n toggleClass: detail.markers.lockClass,\n aria: {\n mode: 'pressed'\n }\n })])\n };\n }\n })]);\n\n var factory$f = function factory$f(detail, components, _spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: SketchBehaviours.augment(detail.coupledFieldBehaviours, [Composing.config({\n find: Optional.some\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(comp) {\n var _a;\n\n var parts = getPartsOrDie(comp, detail, ['field1', 'field2']);\n return _a = {}, _a[detail.field1Name] = Representing.getValue(parts.field1()), _a[detail.field2Name] = Representing.getValue(parts.field2()), _a;\n },\n setValue: function setValue(comp, value) {\n var parts = getPartsOrDie(comp, detail, ['field1', 'field2']);\n\n if (hasNonNullableKey(value, detail.field1Name)) {\n Representing.setValue(parts.field1(), value[detail.field1Name]);\n }\n\n if (hasNonNullableKey(value, detail.field2Name)) {\n Representing.setValue(parts.field2(), value[detail.field2Name]);\n }\n }\n }\n })]),\n apis: {\n getField1: function getField1(component) {\n return getPart(component, detail, 'field1');\n },\n getField2: function getField2(component) {\n return getPart(component, detail, 'field2');\n },\n getLock: function getLock(component) {\n return getPart(component, detail, 'lock');\n }\n }\n };\n };\n\n var FormCoupledInputs = composite({\n name: 'FormCoupledInputs',\n configFields: schema$h(),\n partFields: parts$c(),\n factory: factory$f,\n apis: {\n getField1: function getField1(apis, component) {\n return apis.getField1(component);\n },\n getField2: function getField2(apis, component) {\n return apis.getField2(component);\n },\n getLock: function getLock(apis, component) {\n return apis.getLock(component);\n }\n }\n });\n\n var formatSize = function formatSize(size) {\n var unitDec = {\n '': 0,\n 'px': 0,\n 'pt': 1,\n 'mm': 1,\n 'pc': 2,\n 'ex': 2,\n 'em': 2,\n 'ch': 2,\n 'rem': 2,\n 'cm': 3,\n 'in': 4,\n '%': 4\n };\n\n var maxDecimal = function maxDecimal(unit) {\n return unit in unitDec ? unitDec[unit] : 1;\n };\n\n var numText = size.value.toFixed(maxDecimal(size.unit));\n\n if (numText.indexOf('.') !== -1) {\n numText = numText.replace(/\\.?0*$/, '');\n }\n\n return numText + size.unit;\n };\n\n var parseSize = function parseSize(sizeText) {\n var numPattern = /^\\s*(\\d+(?:\\.\\d+)?)\\s*(|cm|mm|in|px|pt|pc|em|ex|ch|rem|vw|vh|vmin|vmax|%)\\s*$/;\n var match = numPattern.exec(sizeText);\n\n if (match !== null) {\n var value = parseFloat(match[1]);\n var unit = match[2];\n return Result.value({\n value: value,\n unit: unit\n });\n } else {\n return Result.error(sizeText);\n }\n };\n\n var convertUnit = function convertUnit(size, unit) {\n var inInch = {\n '': 96,\n 'px': 96,\n 'pt': 72,\n 'cm': 2.54,\n 'pc': 12,\n 'mm': 25.4,\n 'in': 1\n };\n\n var supported = function supported(u) {\n return has$2(inInch, u);\n };\n\n if (size.unit === unit) {\n return Optional.some(size.value);\n } else if (supported(size.unit) && supported(unit)) {\n if (inInch[size.unit] === inInch[unit]) {\n return Optional.some(size.value);\n } else {\n return Optional.some(size.value / inInch[size.unit] * inInch[unit]);\n }\n } else {\n return Optional.none();\n }\n };\n\n var noSizeConversion = function noSizeConversion(_input) {\n return Optional.none();\n };\n\n var ratioSizeConversion = function ratioSizeConversion(scale, unit) {\n return function (size) {\n return convertUnit(size, unit).map(function (value) {\n return {\n value: value * scale,\n unit: unit\n };\n });\n };\n };\n\n var makeRatioConverter = function makeRatioConverter(currentFieldText, otherFieldText) {\n var cValue = parseSize(currentFieldText).toOptional();\n var oValue = parseSize(otherFieldText).toOptional();\n return lift2(cValue, oValue, function (cSize, oSize) {\n return convertUnit(cSize, oSize.unit).map(function (val) {\n return oSize.value / val;\n }).map(function (r) {\n return ratioSizeConversion(r, oSize.unit);\n }).getOr(noSizeConversion);\n }).getOr(noSizeConversion);\n };\n\n var renderSizeInput = function renderSizeInput(spec, providersBackstage) {\n var converter = noSizeConversion;\n var ratioEvent = generate$6('ratio-event');\n\n var makeIcon = function makeIcon(iconName) {\n return render$3(iconName, {\n tag: 'span',\n classes: ['tox-icon', 'tox-lock-icon__' + iconName]\n }, providersBackstage.icons);\n };\n\n var pLock = FormCoupledInputs.parts.lock({\n dom: {\n tag: 'button',\n classes: ['tox-lock', 'tox-button', 'tox-button--naked', 'tox-button--icon'],\n attributes: {\n title: providersBackstage.translate(spec.label.getOr('Constrain proportions'))\n }\n },\n components: [makeIcon('lock'), makeIcon('unlock')],\n buttonBehaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), receivingConfig(), Tabstopping.config({})])\n });\n\n var formGroup = function formGroup(components) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: components\n };\n };\n\n var getFieldPart = function getFieldPart(isField1) {\n return FormField.parts.field({\n factory: Input,\n inputClasses: ['tox-textfield'],\n inputBehaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), receivingConfig(), Tabstopping.config({}), config('size-input-events', [run$1(focusin(), function (component, _simulatedEvent) {\n emitWith(component, ratioEvent, {\n isField1: isField1\n });\n }), run$1(change(), function (component, _simulatedEvent) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })])]),\n selectOnFocus: false\n });\n };\n\n var getLabel = function getLabel(label) {\n return {\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n };\n };\n\n var widthField = FormCoupledInputs.parts.field1(formGroup([FormField.parts.label(getLabel('Width')), getFieldPart(true)]));\n var heightField = FormCoupledInputs.parts.field2(formGroup([FormField.parts.label(getLabel('Height')), getFieldPart(false)]));\n return FormCoupledInputs.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: [widthField, heightField, formGroup([getLabel(' '), pLock])]\n }],\n field1Name: 'width',\n field2Name: 'height',\n locked: true,\n markers: {\n lockClass: 'tox-locked'\n },\n onLockedChange: function onLockedChange(current, other, _lock) {\n parseSize(Representing.getValue(current)).each(function (size) {\n converter(size).each(function (newSize) {\n Representing.setValue(other, formatSize(newSize));\n });\n });\n },\n coupledFieldBehaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function onDisabled(comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.disable);\n FormCoupledInputs.getLock(comp).each(Disabling.disable);\n },\n onEnabled: function onEnabled(comp) {\n FormCoupledInputs.getField1(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getField2(comp).bind(FormField.getField).each(Disabling.enable);\n FormCoupledInputs.getLock(comp).each(Disabling.enable);\n }\n }), receivingConfig(), config('size-input-events2', [run$1(ratioEvent, function (component, simulatedEvent) {\n var isField1 = simulatedEvent.event.isField1;\n var optCurrent = isField1 ? FormCoupledInputs.getField1(component) : FormCoupledInputs.getField2(component);\n var optOther = isField1 ? FormCoupledInputs.getField2(component) : FormCoupledInputs.getField1(component);\n var value1 = optCurrent.map(Representing.getValue).getOr('');\n var value2 = optOther.map(Representing.getValue).getOr('');\n converter = makeRatioConverter(value1, value2);\n })])])\n });\n };\n\n var undo = constant$1(generate$6('undo'));\n var redo = constant$1(generate$6('redo'));\n var zoom = constant$1(generate$6('zoom'));\n var back = constant$1(generate$6('back'));\n var apply = constant$1(generate$6('apply'));\n var swap = constant$1(generate$6('swap'));\n var transform$1 = constant$1(generate$6('transform'));\n var tempTransform = constant$1(generate$6('temp-transform'));\n var transformApply = constant$1(generate$6('transform-apply'));\n var internal = {\n undo: undo,\n redo: redo,\n zoom: zoom,\n back: back,\n apply: apply,\n swap: swap,\n transform: transform$1,\n tempTransform: tempTransform,\n transformApply: transformApply\n };\n var saveState = constant$1('save-state');\n var disable = constant$1('disable');\n var enable = constant$1('enable');\n var external = {\n formActionEvent: formActionEvent,\n saveState: saveState,\n disable: disable,\n enable: enable\n };\n\n var renderEditPanel = function renderEditPanel(imagePanel, providersBackstage) {\n var createButton = function createButton(text, action, disabled, primary) {\n return record(renderButton({\n name: text,\n text: text,\n disabled: disabled,\n primary: primary,\n icon: Optional.none(),\n borderless: false\n }, action, providersBackstage));\n };\n\n var createIconButton = function createIconButton(icon, tooltip, action, disabled) {\n return record(renderIconButton({\n name: icon,\n icon: Optional.some(icon),\n tooltip: Optional.some(tooltip),\n disabled: disabled,\n primary: false,\n borderless: false\n }, action, providersBackstage));\n };\n\n var disableAllComponents = function disableAllComponents(comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n\n if (component.hasConfigured(Disabling)) {\n Disabling.disable(component);\n }\n });\n };\n\n var enableAllComponents = function enableAllComponents(comps, eventcomp) {\n comps.map(function (mem) {\n var component = mem.get(eventcomp);\n\n if (component.hasConfigured(Disabling)) {\n Disabling.enable(component);\n }\n });\n };\n\n var panelDom = {\n tag: 'div',\n classes: ['tox-image-tools__toolbar', 'tox-image-tools-edit-panel']\n };\n var noop$1 = noop;\n\n var emit$1 = function emit$1(comp, event, data) {\n emitWith(comp, event, data);\n };\n\n var emitDisable = function emitDisable(component) {\n return emit(component, external.disable());\n };\n\n var emitEnable = function emitEnable(component) {\n return emit(component, external.enable());\n };\n\n var emitTransform = function emitTransform(comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transform(), {\n transform: transform\n });\n emitEnable(comp);\n };\n\n var emitTempTransform = function emitTempTransform(comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.tempTransform(), {\n transform: transform\n });\n emitEnable(comp);\n };\n\n var getBackSwap = function getBackSwap(anyInSystem) {\n return function () {\n memContainer.getOpt(anyInSystem).each(function (container) {\n Replacing.set(container, [ButtonPanel]);\n });\n };\n };\n\n var emitTransformApply = function emitTransformApply(comp, transform) {\n emitDisable(comp);\n emit$1(comp, internal.transformApply(), {\n transform: transform,\n swap: getBackSwap(comp)\n });\n emitEnable(comp);\n };\n\n var createBackButton = function createBackButton() {\n return createButton('Back', function (button) {\n return emit$1(button, internal.back(), {\n swap: getBackSwap(button)\n });\n }, false, false);\n };\n\n var createSpacer = function createSpacer() {\n return record({\n dom: {\n tag: 'div',\n classes: ['tox-spacer']\n },\n behaviours: derive$1([Disabling.config({})])\n });\n };\n\n var createApplyButton = function createApplyButton() {\n return createButton('Apply', function (button) {\n return emit$1(button, internal.apply(), {\n swap: getBackSwap(button)\n });\n }, true, true);\n };\n\n var makeCropTransform = function makeCropTransform() {\n return function (ir) {\n var rect = imagePanel.getRect();\n return crop(ir, rect.x, rect.y, rect.w, rect.h);\n };\n };\n\n var cropPanelComponents = [createBackButton(), createSpacer(), createButton('Apply', function (button) {\n var transform = makeCropTransform();\n emitTransformApply(button, transform);\n imagePanel.hideCrop();\n }, false, true)];\n var CropPanel = Container.sketch({\n dom: panelDom,\n components: cropPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-crop-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(cropPanelComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(cropPanelComponents, comp);\n })])])\n });\n var memSize = record(renderSizeInput({\n name: 'size',\n label: Optional.none(),\n constrain: true,\n disabled: false\n }, providersBackstage));\n\n var makeResizeTransform = function makeResizeTransform(width, height) {\n return function (ir) {\n return resize$1(ir, width, height);\n };\n };\n\n var resizePanelComponents = [createBackButton(), createSpacer(), memSize, createSpacer(), createButton('Apply', function (button) {\n memSize.getOpt(button).each(function (sizeInput) {\n var value = Representing.getValue(sizeInput);\n var width = parseInt(value.width, 10);\n var height = parseInt(value.height, 10);\n var transform = makeResizeTransform(width, height);\n emitTransformApply(button, transform);\n });\n }, false, true)];\n var ResizePanel = Container.sketch({\n dom: panelDom,\n components: resizePanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-resize-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(resizePanelComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(resizePanelComponents, comp);\n })])])\n });\n\n var makeValueTransform = function makeValueTransform(transform, value) {\n return function (ir) {\n return transform(ir, value);\n };\n };\n\n var horizontalFlip = makeValueTransform(flip, 'h');\n var verticalFlip = makeValueTransform(flip, 'v');\n var counterclockwiseRotate = makeValueTransform(rotate, -90);\n var clockwiseRotate = makeValueTransform(rotate, 90);\n\n var flipRotateOnAction = function flipRotateOnAction(comp, operation) {\n emitTempTransform(comp, operation);\n };\n\n var flipRotateComponents = [createBackButton(), createSpacer(), createIconButton('flip-horizontally', 'Flip horizontally', function (button) {\n flipRotateOnAction(button, horizontalFlip);\n }, false), createIconButton('flip-vertically', 'Flip vertically', function (button) {\n flipRotateOnAction(button, verticalFlip);\n }, false), createIconButton('rotate-left', 'Rotate counterclockwise', function (button) {\n flipRotateOnAction(button, counterclockwiseRotate);\n }, false), createIconButton('rotate-right', 'Rotate clockwise', function (button) {\n flipRotateOnAction(button, clockwiseRotate);\n }, false), createSpacer(), createApplyButton()];\n var FlipRotatePanel = Container.sketch({\n dom: panelDom,\n components: flipRotateComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-fliprotate-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(flipRotateComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(flipRotateComponents, comp);\n })])])\n });\n\n var makeSlider = function makeSlider(label, onChoose, min, value, max) {\n var labelPart = Slider.parts.label({\n dom: {\n tag: 'label',\n classes: ['tox-label'],\n innerHtml: providersBackstage.translate(label)\n }\n });\n var spectrum = Slider.parts.spectrum({\n dom: {\n tag: 'div',\n classes: ['tox-slider__rail'],\n attributes: {\n role: 'presentation'\n }\n }\n });\n var thumb = Slider.parts.thumb({\n dom: {\n tag: 'div',\n classes: ['tox-slider__handle'],\n attributes: {\n role: 'presentation'\n }\n }\n });\n return record(Slider.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-slider'],\n attributes: {\n role: 'presentation'\n }\n },\n model: {\n mode: 'x',\n minX: min,\n maxX: max,\n getInitialValue: constant$1({\n x: value\n })\n },\n components: [labelPart, spectrum, thumb],\n sliderBehaviours: derive$1([Focusing.config({})]),\n onChoose: onChoose\n }));\n };\n\n var makeVariableSlider = function makeVariableSlider(label, transform, min, value, max) {\n var onChoose = function onChoose(slider, _thumb, value) {\n var valTransform = makeValueTransform(transform, value.x / 100);\n emitTransform(slider, valTransform);\n };\n\n return makeSlider(label, onChoose, min, value, max);\n };\n\n var variableFilterPanelComponents = function variableFilterPanelComponents(label, transform, min, value, max) {\n return [createBackButton(), makeVariableSlider(label, transform, min, value, max), createApplyButton()];\n };\n\n var createVariableFilterPanel = function createVariableFilterPanel(label, transform, min, value, max) {\n var filterPanelComponents = variableFilterPanelComponents(label, transform, min, value, max);\n return Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n }),\n containerBehaviours: derive$1([config('image-tools-filter-panel-buttons-events', [run$1(external.disable(), function (comp, _se) {\n disableAllComponents(filterPanelComponents, comp);\n }), run$1(external.enable(), function (comp, _se) {\n enableAllComponents(filterPanelComponents, comp);\n })])])\n });\n };\n\n var filterPanelComponents = [createBackButton(), createSpacer(), createApplyButton()];\n var FilterPanel = Container.sketch({\n dom: panelDom,\n components: filterPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var BrightnessPanel = createVariableFilterPanel('Brightness', brightness, -100, 0, 100);\n var ContrastPanel = createVariableFilterPanel('Contrast', contrast, -100, 0, 100);\n var GammaPanel = createVariableFilterPanel('Gamma', gamma, -100, 0, 100);\n\n var makeColorTransform = function makeColorTransform(red, green, blue) {\n return function (ir) {\n return colorize(ir, red, green, blue);\n };\n };\n\n var makeColorSlider = function makeColorSlider(label) {\n var onChoose = function onChoose(slider, _thumb, _value) {\n var redOpt = memRed.getOpt(slider);\n var blueOpt = memBlue.getOpt(slider);\n var greenOpt = memGreen.getOpt(slider);\n redOpt.each(function (red) {\n blueOpt.each(function (blue) {\n greenOpt.each(function (green) {\n var r = Representing.getValue(red).x / 100;\n var g = Representing.getValue(green).x / 100;\n var b = Representing.getValue(blue).x / 100;\n var transform = makeColorTransform(r, g, b);\n emitTransform(slider, transform);\n });\n });\n });\n };\n\n return makeSlider(label, onChoose, 0, 100, 200);\n };\n\n var memRed = makeColorSlider('R');\n var memGreen = makeColorSlider('G');\n var memBlue = makeColorSlider('B');\n var colorizePanelComponents = [createBackButton(), memRed, memGreen, memBlue, createApplyButton()];\n var ColorizePanel = Container.sketch({\n dom: panelDom,\n components: colorizePanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n\n var getTransformPanelEvent = function getTransformPanelEvent(panel, transform, update) {\n return function (button) {\n var swap = function swap() {\n memContainer.getOpt(button).each(function (container) {\n Replacing.set(container, [panel]);\n update(container);\n });\n };\n\n emit$1(button, internal.swap(), {\n transform: transform,\n swap: swap\n });\n };\n };\n\n var cropPanelUpdate = function cropPanelUpdate(_anyInSystem) {\n imagePanel.showCrop();\n };\n\n var resizePanelUpdate = function resizePanelUpdate(anyInSystem) {\n memSize.getOpt(anyInSystem).each(function (sizeInput) {\n var measurements = imagePanel.getMeasurements();\n var width = measurements.width;\n var height = measurements.height;\n Representing.setValue(sizeInput, {\n width: width,\n height: height\n });\n });\n };\n\n var sharpenTransform = Optional.some(sharpen);\n var invertTransform = Optional.some(invert);\n var buttonPanelComponents = [createIconButton('crop', 'Crop', getTransformPanelEvent(CropPanel, Optional.none(), cropPanelUpdate), false), createIconButton('resize', 'Resize', getTransformPanelEvent(ResizePanel, Optional.none(), resizePanelUpdate), false), createIconButton('orientation', 'Orientation', getTransformPanelEvent(FlipRotatePanel, Optional.none(), noop$1), false), createIconButton('brightness', 'Brightness', getTransformPanelEvent(BrightnessPanel, Optional.none(), noop$1), false), createIconButton('sharpen', 'Sharpen', getTransformPanelEvent(FilterPanel, sharpenTransform, noop$1), false), createIconButton('contrast', 'Contrast', getTransformPanelEvent(ContrastPanel, Optional.none(), noop$1), false), createIconButton('color-levels', 'Color levels', getTransformPanelEvent(ColorizePanel, Optional.none(), noop$1), false), createIconButton('gamma', 'Gamma', getTransformPanelEvent(GammaPanel, Optional.none(), noop$1), false), createIconButton('invert', 'Invert', getTransformPanelEvent(FilterPanel, invertTransform, noop$1), false)];\n var ButtonPanel = Container.sketch({\n dom: panelDom,\n components: buttonPanelComponents.map(function (mem) {\n return mem.asSpec();\n })\n });\n var container = Container.sketch({\n dom: {\n tag: 'div'\n },\n components: [ButtonPanel],\n containerBehaviours: derive$1([Replacing.config({})])\n });\n var memContainer = record(container);\n\n var getApplyButton = function getApplyButton(anyInSystem) {\n return memContainer.getOpt(anyInSystem).map(function (container) {\n var panel = container.components()[0];\n return panel.components()[panel.components().length - 1];\n });\n };\n\n return {\n memContainer: memContainer,\n getApplyButton: getApplyButton\n };\n };\n\n var global$4 = tinymce.util.Tools.resolve('tinymce.geom.Rect');\n var global$3 = tinymce.util.Tools.resolve('tinymce.util.Observable');\n var global$2 = tinymce.util.Tools.resolve('tinymce.util.VK');\n\n var getDocumentSize = function getDocumentSize(doc) {\n var max = Math.max;\n var documentElement = doc.documentElement;\n var body = doc.body;\n var scrollWidth = max(documentElement.scrollWidth, body.scrollWidth);\n var clientWidth = max(documentElement.clientWidth, body.clientWidth);\n var offsetWidth = max(documentElement.offsetWidth, body.offsetWidth);\n var scrollHeight = max(documentElement.scrollHeight, body.scrollHeight);\n var clientHeight = max(documentElement.clientHeight, body.clientHeight);\n var offsetHeight = max(documentElement.offsetHeight, body.offsetHeight);\n return {\n width: scrollWidth < offsetWidth ? clientWidth : scrollWidth,\n height: scrollHeight < offsetHeight ? clientHeight : scrollHeight\n };\n };\n\n var isTouchEvent$1 = function isTouchEvent$1(e) {\n return isNonNullable(e.changedTouches);\n };\n\n var updateWithTouchData = function updateWithTouchData(e) {\n if (isTouchEvent$1(e)) {\n var keys = 'screenX screenY pageX pageY clientX clientY'.split(' ');\n\n for (var i = 0; i < keys.length; i++) {\n e[keys[i]] = e.changedTouches[0][keys[i]];\n }\n }\n };\n\n function DragHelper(id, settings) {\n var _a, _b, _c;\n\n var eventOverlay;\n var handleEvents = [];\n var overlayEvents = [];\n var doc = (_a = settings.document) !== null && _a !== void 0 ? _a : document;\n var root = (_b = settings.root) !== null && _b !== void 0 ? _b : doc;\n var sugarDoc = SugarElement.fromDom(doc);\n var downButton;\n var startX;\n var startY;\n var handleElement = SugarElement.fromDom(root.getElementById((_c = settings.handle) !== null && _c !== void 0 ? _c : id));\n\n var start = function start(e) {\n var rawEvent = e.raw;\n var docSize = getDocumentSize(doc);\n updateWithTouchData(rawEvent);\n e.prevent();\n downButton = rawEvent.button;\n startX = rawEvent.screenX;\n startY = rawEvent.screenY;\n var cursor = get$c(handleElement, 'cursor');\n eventOverlay = SugarElement.fromTag('div', doc);\n setAll(eventOverlay, {\n 'position': 'absolute',\n 'top': '0',\n 'left': '0',\n 'width': docSize.width + 'px',\n 'height': docSize.height + 'px',\n 'z-index': 2147483647 + '',\n 'opacity': '0.0001',\n cursor: cursor\n });\n append$2(getBody(sugarDoc), eventOverlay);\n overlayEvents.push(bind(sugarDoc, 'mousemove', drag), bind(sugarDoc, 'touchmove', drag), bind(sugarDoc, 'mouseup', stop), bind(sugarDoc, 'touchend', stop));\n settings.start(rawEvent);\n };\n\n var drag = function drag(e) {\n var rawEvent = e.raw;\n updateWithTouchData(rawEvent);\n\n if (rawEvent.button !== downButton) {\n return stop(e);\n }\n\n rawEvent.deltaX = rawEvent.screenX - startX;\n rawEvent.deltaY = rawEvent.screenY - startY;\n e.prevent();\n settings.drag(rawEvent);\n };\n\n var stop = function stop(e) {\n updateWithTouchData(e.raw);\n each$1(overlayEvents, function (e) {\n return e.unbind();\n });\n overlayEvents = [];\n remove$5(eventOverlay);\n\n if (settings.stop) {\n settings.stop(e.raw);\n }\n };\n\n var destroy = function destroy() {\n each$1(overlayEvents.concat(handleEvents), function (e) {\n return e.unbind();\n });\n overlayEvents = [];\n handleEvents = [];\n\n if (isNonNullable(eventOverlay)) {\n remove$5(eventOverlay);\n }\n };\n\n handleEvents.push(bind(handleElement, 'mousedown', start), bind(handleElement, 'touchstart', start));\n return {\n destroy: destroy\n };\n }\n\n var count = 0;\n\n var create$1 = function create$1(currentRect, viewPortRect, clampRect, containerElm, action) {\n var dragHelpers;\n var events = [];\n var prefix = 'tox-';\n var id = prefix + 'crid-' + count++;\n var container = SugarElement.fromDom(containerElm);\n var handles = [{\n name: 'move',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: 0,\n deltaH: 0,\n label: 'Crop Mask'\n }, {\n name: 'nw',\n xMul: 0,\n yMul: 0,\n deltaX: 1,\n deltaY: 1,\n deltaW: -1,\n deltaH: -1,\n label: 'Top Left Crop Handle'\n }, {\n name: 'ne',\n xMul: 1,\n yMul: 0,\n deltaX: 0,\n deltaY: 1,\n deltaW: 1,\n deltaH: -1,\n label: 'Top Right Crop Handle'\n }, {\n name: 'sw',\n xMul: 0,\n yMul: 1,\n deltaX: 1,\n deltaY: 0,\n deltaW: -1,\n deltaH: 1,\n label: 'Bottom Left Crop Handle'\n }, {\n name: 'se',\n xMul: 1,\n yMul: 1,\n deltaX: 0,\n deltaY: 0,\n deltaW: 1,\n deltaH: 1,\n label: 'Bottom Right Crop Handle'\n }];\n var blockers = ['top', 'right', 'bottom', 'left'];\n\n var getAbsoluteRect = function getAbsoluteRect(outerRect, relativeRect) {\n return {\n x: relativeRect.x + outerRect.x,\n y: relativeRect.y + outerRect.y,\n w: relativeRect.w,\n h: relativeRect.h\n };\n };\n\n var getRelativeRect = function getRelativeRect(outerRect, innerRect) {\n return {\n x: innerRect.x - outerRect.x,\n y: innerRect.y - outerRect.y,\n w: innerRect.w,\n h: innerRect.h\n };\n };\n\n var getInnerRect = function getInnerRect() {\n return getRelativeRect(clampRect, currentRect);\n };\n\n var moveRect = function moveRect(handle, startRect, deltaX, deltaY) {\n var x = startRect.x + deltaX * handle.deltaX;\n var y = startRect.y + deltaY * handle.deltaY;\n var w = Math.max(20, startRect.w + deltaX * handle.deltaW);\n var h = Math.max(20, startRect.h + deltaY * handle.deltaH);\n var rect = currentRect = global$4.clamp({\n x: x,\n y: y,\n w: w,\n h: h\n }, clampRect, handle.name === 'move');\n rect = getRelativeRect(clampRect, rect);\n instance.fire('updateRect', {\n rect: rect\n });\n setInnerRect(rect);\n };\n\n var render = function render() {\n var createDragHelper = function createDragHelper(handle) {\n var startRect;\n return DragHelper(id, {\n document: containerElm.ownerDocument,\n root: getRootNode(container).dom,\n handle: id + '-' + handle.name,\n start: function start() {\n startRect = currentRect;\n },\n drag: function drag(e) {\n moveRect(handle, startRect, e.deltaX, e.deltaY);\n }\n });\n };\n\n var cropContainer = SugarElement.fromTag('div');\n setAll$1(cropContainer, {\n id: id,\n 'class': prefix + 'croprect-container',\n 'role': 'grid',\n 'aria-dropeffect': 'execute'\n });\n append$2(container, cropContainer);\n each$1(blockers, function (blocker) {\n descendant(container, '#' + id).each(function (blockerElm) {\n var cropBlocker = SugarElement.fromTag('div');\n setAll$1(cropBlocker, {\n 'id': id + '-' + blocker,\n 'class': prefix + 'croprect-block',\n 'data-mce-bogus': 'all'\n });\n set$7(cropBlocker, 'display', 'none');\n append$2(blockerElm, cropBlocker);\n });\n });\n each$1(handles, function (handle) {\n descendant(container, '#' + id).each(function (handleElm) {\n var cropHandle = SugarElement.fromTag('div');\n setAll$1(cropHandle, {\n 'id': id + '-' + handle.name,\n 'aria-label': handle.label,\n 'aria-grabbed': 'false',\n 'data-mce-bogus': 'all',\n 'role': 'gridcell',\n 'tabindex': '-1',\n 'title': handle.label\n });\n add$1(cropHandle, [prefix + 'croprect-handle', prefix + 'croprect-handle-' + handle.name]);\n set$7(cropHandle, 'display', 'none');\n append$2(handleElm, cropHandle);\n });\n });\n dragHelpers = map$2(handles, createDragHelper);\n repaint(currentRect);\n\n var handleFocus = function handleFocus(e) {\n set$8(e.target, 'aria-grabbed', e.raw.type === 'focus' ? 'true' : 'false');\n };\n\n var handleKeydown = function handleKeydown(e) {\n var activeHandle;\n each$1(handles, function (handle) {\n if (get$d(e.target, 'id') === id + '-' + handle.name) {\n activeHandle = handle;\n return false;\n }\n });\n\n var moveAndBlock = function moveAndBlock(evt, handle, startRect, deltaX, deltaY) {\n evt.stopPropagation();\n evt.preventDefault();\n moveRect(activeHandle, startRect, deltaX, deltaY);\n };\n\n switch (e.raw.keyCode) {\n case global$2.LEFT:\n moveAndBlock(e, activeHandle, currentRect, -10, 0);\n break;\n\n case global$2.RIGHT:\n moveAndBlock(e, activeHandle, currentRect, 10, 0);\n break;\n\n case global$2.UP:\n moveAndBlock(e, activeHandle, currentRect, 0, -10);\n break;\n\n case global$2.DOWN:\n moveAndBlock(e, activeHandle, currentRect, 0, 10);\n break;\n\n case global$2.ENTER:\n case global$2.SPACEBAR:\n e.prevent();\n action();\n break;\n }\n };\n\n events.push(bind(container, 'focusin', handleFocus), bind(container, 'focusout', handleFocus), bind(container, 'keydown', handleKeydown));\n };\n\n var toggleVisibility = function toggleVisibility(state) {\n var selectors = __spreadArray(__spreadArray([], map$2(handles, function (handle) {\n return '#' + id + '-' + handle.name;\n }), true), map$2(blockers, function (blocker) {\n return '#' + id + '-' + blocker;\n }), true).join(',');\n\n var elems = descendants(container, selectors);\n\n if (state) {\n each$1(elems, function (elm) {\n return remove$6(elm, 'display');\n });\n } else {\n each$1(elems, function (elm) {\n return set$7(elm, 'display', 'none');\n });\n }\n };\n\n var repaint = function repaint(rect) {\n var updateElementRect = function updateElementRect(name, newRect) {\n descendant(container, '#' + id + '-' + name).each(function (elm) {\n setAll(elm, {\n left: newRect.x + 'px',\n top: newRect.y + 'px',\n width: Math.max(0, newRect.w) + 'px',\n height: Math.max(0, newRect.h) + 'px'\n });\n });\n };\n\n each$1(handles, function (handle) {\n descendant(container, '#' + id + '-' + handle.name).each(function (elm) {\n setAll(elm, {\n left: rect.w * handle.xMul + rect.x + 'px',\n top: rect.h * handle.yMul + rect.y + 'px'\n });\n });\n });\n updateElementRect('top', {\n x: viewPortRect.x,\n y: viewPortRect.y,\n w: viewPortRect.w,\n h: rect.y - viewPortRect.y\n });\n updateElementRect('right', {\n x: rect.x + rect.w,\n y: rect.y,\n w: viewPortRect.w - rect.x - rect.w + viewPortRect.x,\n h: rect.h\n });\n updateElementRect('bottom', {\n x: viewPortRect.x,\n y: rect.y + rect.h,\n w: viewPortRect.w,\n h: viewPortRect.h - rect.y - rect.h + viewPortRect.y\n });\n updateElementRect('left', {\n x: viewPortRect.x,\n y: rect.y,\n w: rect.x - viewPortRect.x,\n h: rect.h\n });\n updateElementRect('move', rect);\n };\n\n var setRect = function setRect(rect) {\n currentRect = rect;\n repaint(currentRect);\n };\n\n var setViewPortRect = function setViewPortRect(rect) {\n viewPortRect = rect;\n repaint(currentRect);\n };\n\n var setInnerRect = function setInnerRect(rect) {\n setRect(getAbsoluteRect(clampRect, rect));\n };\n\n var setClampRect = function setClampRect(rect) {\n clampRect = rect;\n repaint(currentRect);\n };\n\n var destroy = function destroy() {\n each$1(dragHelpers, function (helper) {\n return helper.destroy();\n });\n dragHelpers = [];\n each$1(events, function (e) {\n return e.unbind();\n });\n events = [];\n };\n\n render();\n\n var instance = _assign(_assign({}, global$3), {\n toggleVisibility: toggleVisibility,\n setClampRect: setClampRect,\n setRect: setRect,\n getInnerRect: getInnerRect,\n setInnerRect: setInnerRect,\n setViewPortRect: setViewPortRect,\n destroy: destroy\n });\n\n return instance;\n };\n\n var CropRect = {\n create: create$1\n };\n\n var loadImage = function loadImage(image) {\n return new global$c(function (resolve) {\n var loaded = function loaded() {\n image.removeEventListener('load', loaded);\n resolve(image);\n };\n\n if (image.complete) {\n resolve(image);\n } else {\n image.addEventListener('load', loaded);\n }\n });\n };\n\n var renderImagePanel = function renderImagePanel(initialUrl) {\n var memBg = record({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image-bg'],\n attributes: {\n role: 'presentation'\n }\n }\n });\n var zoomState = Cell(1);\n var cropRect = api$1();\n var rectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n var viewRectState = Cell({\n x: 0,\n y: 0,\n w: 1,\n h: 1\n });\n\n var repaintImg = function repaintImg(anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var zoom = zoomState.get();\n var panelW = get$a(panel.element);\n var panelH = get$b(panel.element);\n var width = img.dom.naturalWidth * zoom;\n var height = img.dom.naturalHeight * zoom;\n var left = Math.max(0, panelW / 2 - width / 2);\n var top = Math.max(0, panelH / 2 - height / 2);\n var css = {\n left: left.toString() + 'px',\n top: top.toString() + 'px',\n width: width.toString() + 'px',\n height: height.toString() + 'px',\n position: 'absolute'\n };\n setAll(img, css);\n memBg.getOpt(panel).each(function (bg) {\n setAll(bg.element, css);\n });\n cropRect.run(function (cRect) {\n var rect = rectState.get();\n cRect.setRect({\n x: rect.x * zoom + left,\n y: rect.y * zoom + top,\n w: rect.w * zoom,\n h: rect.h * zoom\n });\n cRect.setClampRect({\n x: left,\n y: top,\n w: width,\n h: height\n });\n cRect.setViewPortRect({\n x: 0,\n y: 0,\n w: panelW,\n h: panelH\n });\n });\n });\n };\n\n var zoomFit = function zoomFit(anyInSystem, img) {\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var panelW = get$a(panel.element);\n var panelH = get$b(panel.element);\n var width = img.dom.naturalWidth;\n var height = img.dom.naturalHeight;\n var zoom = Math.min(panelW / width, panelH / height);\n\n if (zoom >= 1) {\n zoomState.set(1);\n } else {\n zoomState.set(zoom);\n }\n });\n };\n\n var updateSrc = function updateSrc(anyInSystem, url) {\n var img = SugarElement.fromTag('img');\n set$8(img, 'src', url);\n return loadImage(img.dom).then(function () {\n if (anyInSystem.getSystem().isConnected()) {\n memContainer.getOpt(anyInSystem).map(function (panel) {\n var aImg = external$2({\n element: img\n });\n Replacing.replaceAt(panel, 1, Optional.some(aImg));\n var lastViewRect = viewRectState.get();\n var viewRect = {\n x: 0,\n y: 0,\n w: img.dom.naturalWidth,\n h: img.dom.naturalHeight\n };\n viewRectState.set(viewRect);\n var rect = global$4.inflate(viewRect, -20, -20);\n rectState.set(rect);\n\n if (lastViewRect.w !== viewRect.w || lastViewRect.h !== viewRect.h) {\n zoomFit(panel, img);\n }\n\n repaintImg(panel, img);\n });\n }\n });\n };\n\n var zoom = function zoom(anyInSystem, direction) {\n var currentZoom = zoomState.get();\n var newZoom = direction > 0 ? Math.min(2, currentZoom + 0.1) : Math.max(0.1, currentZoom - 0.1);\n zoomState.set(newZoom);\n memContainer.getOpt(anyInSystem).each(function (panel) {\n var img = panel.components()[1].element;\n repaintImg(panel, img);\n });\n };\n\n var showCrop = function showCrop() {\n cropRect.run(function (cRect) {\n cRect.toggleVisibility(true);\n });\n };\n\n var hideCrop = function hideCrop() {\n cropRect.run(function (cRect) {\n cRect.toggleVisibility(false);\n });\n };\n\n var getRect = function getRect() {\n return rectState.get();\n };\n\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__image']\n },\n components: [memBg.asSpec(), {\n dom: {\n tag: 'img',\n attributes: {\n src: initialUrl\n }\n }\n }, {\n dom: {\n tag: 'div'\n },\n behaviours: derive$1([config('image-panel-crop-events', [runOnAttached(function (comp) {\n memContainer.getOpt(comp).each(function (container) {\n var el = container.element.dom;\n var cRect = CropRect.create({\n x: 10,\n y: 10,\n w: 100,\n h: 100\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, {\n x: 0,\n y: 0,\n w: 200,\n h: 200\n }, el, noop);\n cRect.toggleVisibility(false);\n cRect.on('updateRect', function (e) {\n var rect = e.rect;\n var zoom = zoomState.get();\n var newRect = {\n x: Math.round(rect.x / zoom),\n y: Math.round(rect.y / zoom),\n w: Math.round(rect.w / zoom),\n h: Math.round(rect.h / zoom)\n };\n rectState.set(newRect);\n });\n cropRect.set(cRect);\n });\n }), runOnDetached(function () {\n cropRect.clear();\n })])])\n }],\n containerBehaviours: derive$1([Replacing.config({}), config('image-panel-events', [runOnAttached(function (comp) {\n updateSrc(comp, initialUrl);\n })])])\n });\n var memContainer = record(container);\n\n var getMeasurements = function getMeasurements() {\n var viewRect = viewRectState.get();\n return {\n width: viewRect.w,\n height: viewRect.h\n };\n };\n\n return {\n memContainer: memContainer,\n updateSrc: updateSrc,\n zoom: zoom,\n showCrop: showCrop,\n hideCrop: hideCrop,\n getRect: getRect,\n getMeasurements: getMeasurements\n };\n };\n\n var createButton = function createButton(innerHtml, icon, disabled, action, providersBackstage) {\n return renderIconButton({\n name: innerHtml,\n icon: Optional.some(icon),\n disabled: disabled,\n tooltip: Optional.some(innerHtml),\n primary: false,\n borderless: false\n }, action, providersBackstage);\n };\n\n var setButtonEnabled = function setButtonEnabled(button, enabled) {\n if (enabled) {\n Disabling.enable(button);\n } else {\n Disabling.disable(button);\n }\n };\n\n var renderSideBar = function renderSideBar(providersBackstage) {\n var updateButtonUndoStates = function updateButtonUndoStates(anyInSystem, undoEnabled, redoEnabled) {\n memUndo.getOpt(anyInSystem).each(function (undo) {\n setButtonEnabled(undo, undoEnabled);\n });\n memRedo.getOpt(anyInSystem).each(function (redo) {\n setButtonEnabled(redo, redoEnabled);\n });\n };\n\n var memUndo = record(createButton('Undo', 'undo', true, function (button) {\n emitWith(button, internal.undo(), {\n direction: 1\n });\n }, providersBackstage));\n var memRedo = record(createButton('Redo', 'redo', true, function (button) {\n emitWith(button, internal.redo(), {\n direction: 1\n });\n }, providersBackstage));\n var container = Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-image-tools__toolbar', 'tox-image-tools__sidebar']\n },\n components: [memUndo.asSpec(), memRedo.asSpec(), createButton('Zoom in', 'zoom-in', false, function (button) {\n emitWith(button, internal.zoom(), {\n direction: 1\n });\n }, providersBackstage), createButton('Zoom out', 'zoom-out', false, function (button) {\n emitWith(button, internal.zoom(), {\n direction: -1\n });\n }, providersBackstage)]\n });\n return {\n container: container,\n updateButtonUndoStates: updateButtonUndoStates\n };\n };\n\n function UndoStack() {\n var data = [];\n var index = -1;\n\n var add = function add(state) {\n var removed = data.splice(++index);\n data.push(state);\n return {\n state: state,\n removed: removed\n };\n };\n\n var undo = function undo() {\n if (canUndo()) {\n return data[--index];\n }\n };\n\n var redo = function redo() {\n if (canRedo()) {\n return data[++index];\n }\n };\n\n var canUndo = function canUndo() {\n return index > 0;\n };\n\n var canRedo = function canRedo() {\n return index !== -1 && index < data.length - 1;\n };\n\n return {\n data: data,\n add: add,\n undo: undo,\n redo: redo,\n canUndo: canUndo,\n canRedo: canRedo\n };\n }\n\n var makeState = function makeState(initialState) {\n var blobState = Cell(initialState);\n var tempState = value$1();\n var undoStack = UndoStack();\n undoStack.add(initialState);\n\n var getBlobState = function getBlobState() {\n return blobState.get();\n };\n\n var setBlobState = function setBlobState(state) {\n blobState.set(state);\n };\n\n var getTempState = function getTempState() {\n return tempState.get().getOrThunk(blobState.get);\n };\n\n var updateTempState = function updateTempState(blob) {\n var newTempState = createState(blob);\n destroyTempState();\n tempState.set(newTempState);\n return newTempState.url;\n };\n\n var createState = function createState(blob) {\n return {\n blob: blob,\n url: URL.createObjectURL(blob)\n };\n };\n\n var destroyState = function destroyState(state) {\n URL.revokeObjectURL(state.url);\n };\n\n var destroyStates = function destroyStates(states) {\n global$5.each(states, destroyState);\n };\n\n var destroyTempState = function destroyTempState() {\n tempState.on(destroyState);\n tempState.clear();\n };\n\n var addBlobState = function addBlobState(blob) {\n var newState = createState(blob);\n setBlobState(newState);\n var removed = undoStack.add(newState).removed;\n destroyStates(removed);\n return newState.url;\n };\n\n var addTempState = function addTempState(blob) {\n var newState = createState(blob);\n tempState.set(newState);\n return newState.url;\n };\n\n var applyTempState = function applyTempState(postApply) {\n return tempState.get().fold(noop, function (temp) {\n addBlobState(temp.blob);\n postApply();\n });\n };\n\n var undo = function undo() {\n var currentState = undoStack.undo();\n setBlobState(currentState);\n return currentState.url;\n };\n\n var redo = function redo() {\n var currentState = undoStack.redo();\n setBlobState(currentState);\n return currentState.url;\n };\n\n var getHistoryStates = function getHistoryStates() {\n var undoEnabled = undoStack.canUndo();\n var redoEnabled = undoStack.canRedo();\n return {\n undoEnabled: undoEnabled,\n redoEnabled: redoEnabled\n };\n };\n\n return {\n getBlobState: getBlobState,\n setBlobState: setBlobState,\n addBlobState: addBlobState,\n getTempState: getTempState,\n updateTempState: updateTempState,\n addTempState: addTempState,\n applyTempState: applyTempState,\n destroyTempState: destroyTempState,\n undo: undo,\n redo: redo,\n getHistoryStates: getHistoryStates\n };\n };\n\n var renderImageTools = function renderImageTools(detail, providersBackstage) {\n var state = makeState(detail.currentState);\n\n var zoom = function zoom(anyInSystem, simulatedEvent) {\n var direction = simulatedEvent.event.direction;\n imagePanel.zoom(anyInSystem, direction);\n };\n\n var updateButtonUndoStates = function updateButtonUndoStates(anyInSystem) {\n var historyStates = state.getHistoryStates();\n sideBar.updateButtonUndoStates(anyInSystem, historyStates.undoEnabled, historyStates.redoEnabled);\n emitWith(anyInSystem, external.formActionEvent, {\n name: external.saveState(),\n value: historyStates.undoEnabled\n });\n };\n\n var disableUndoRedo = function disableUndoRedo(anyInSystem) {\n sideBar.updateButtonUndoStates(anyInSystem, false, false);\n };\n\n var undo = function undo(anyInSystem, _simulatedEvent) {\n var url = state.undo();\n updateSrc(anyInSystem, url).then(function (_oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n\n var redo = function redo(anyInSystem, _simulatedEvent) {\n var url = state.redo();\n updateSrc(anyInSystem, url).then(function (_oImg) {\n unblock(anyInSystem);\n updateButtonUndoStates(anyInSystem);\n });\n };\n\n var imageResultToBlob = function imageResultToBlob(ir) {\n return ir.toBlob();\n };\n\n var block = function block(anyInSystem) {\n emitWith(anyInSystem, external.formActionEvent, {\n name: external.disable(),\n value: {}\n });\n };\n\n var unblock = function unblock(anyInSystem) {\n editPanel.getApplyButton(anyInSystem).each(function (applyButton) {\n Disabling.enable(applyButton);\n });\n emitWith(anyInSystem, external.formActionEvent, {\n name: external.enable(),\n value: {}\n });\n };\n\n var updateSrc = function updateSrc(anyInSystem, src) {\n block(anyInSystem);\n return imagePanel.updateSrc(anyInSystem, src);\n };\n\n var blobManipulate = function blobManipulate(anyInSystem, blob, filter, action, swap) {\n block(anyInSystem);\n blobToImageResult(blob).then(filter).then(imageResultToBlob).then(action).then(function (url) {\n return updateSrc(anyInSystem, url);\n }).then(function () {\n updateButtonUndoStates(anyInSystem);\n swap();\n unblock(anyInSystem);\n }).catch(function (err) {\n console.log(err);\n\n if (anyInSystem.getSystem().isConnected()) {\n unblock(anyInSystem);\n }\n });\n };\n\n var manipulate = function manipulate(anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n\n var action = function action(blob) {\n return state.updateTempState(blob);\n };\n\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n\n var tempManipulate = function tempManipulate(anyInSystem, filter) {\n var blob = state.getTempState().blob;\n\n var action = function action(blob) {\n return state.addTempState(blob);\n };\n\n blobManipulate(anyInSystem, blob, filter, action, noop);\n };\n\n var manipulateApply = function manipulateApply(anyInSystem, filter, swap) {\n var blob = state.getBlobState().blob;\n\n var action = function action(blob) {\n var url = state.addBlobState(blob);\n destroyTempState(anyInSystem);\n return url;\n };\n\n blobManipulate(anyInSystem, blob, filter, action, swap);\n };\n\n var apply = function apply(anyInSystem, simulatedEvent) {\n var postApply = function postApply() {\n destroyTempState(anyInSystem);\n var swap = simulatedEvent.event.swap;\n swap();\n };\n\n state.applyTempState(postApply);\n };\n\n var destroyTempState = function destroyTempState(anyInSystem) {\n var currentUrl = state.getBlobState().url;\n state.destroyTempState();\n updateButtonUndoStates(anyInSystem);\n return currentUrl;\n };\n\n var cancel = function cancel(anyInSystem) {\n var currentUrl = destroyTempState(anyInSystem);\n updateSrc(anyInSystem, currentUrl).then(function (_oImg) {\n unblock(anyInSystem);\n });\n };\n\n var back = function back(anyInSystem, simulatedEvent) {\n cancel(anyInSystem);\n var swap = simulatedEvent.event.swap;\n swap();\n imagePanel.hideCrop();\n };\n\n var transform = function transform(anyInSystem, simulatedEvent) {\n return manipulate(anyInSystem, simulatedEvent.event.transform, noop);\n };\n\n var tempTransform = function tempTransform(anyInSystem, simulatedEvent) {\n return tempManipulate(anyInSystem, simulatedEvent.event.transform);\n };\n\n var transformApply = function transformApply(anyInSystem, simulatedEvent) {\n return manipulateApply(anyInSystem, simulatedEvent.event.transform, simulatedEvent.event.swap);\n };\n\n var imagePanel = renderImagePanel(detail.currentState.url);\n var sideBar = renderSideBar(providersBackstage);\n var editPanel = renderEditPanel(imagePanel, providersBackstage);\n\n var swap = function swap(anyInSystem, simulatedEvent) {\n disableUndoRedo(anyInSystem);\n var transform = simulatedEvent.event.transform;\n var swap = simulatedEvent.event.swap;\n transform.fold(function () {\n swap();\n }, function (transform) {\n manipulate(anyInSystem, transform, swap);\n });\n };\n\n return {\n dom: {\n tag: 'div',\n attributes: {\n role: 'presentation'\n }\n },\n components: [editPanel.memContainer.asSpec(), imagePanel.memContainer.asSpec(), sideBar.container],\n behaviours: derive$1([Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue() {\n return state.getBlobState();\n }\n }\n }), config('image-tools-events', [run$1(internal.undo(), undo), run$1(internal.redo(), redo), run$1(internal.zoom(), zoom), run$1(internal.back(), back), run$1(internal.apply(), apply), run$1(internal.transform(), transform), run$1(internal.tempTransform(), tempTransform), run$1(internal.transformApply(), transformApply), run$1(internal.swap(), swap)]), ComposingConfigs.self()])\n };\n };\n\n var renderLabel = function renderLabel(spec, backstageShared) {\n var label = {\n dom: {\n tag: 'label',\n innerHtml: backstageShared.providers.translate(spec.label),\n classes: ['tox-label']\n }\n };\n var comps = map$2(spec.items, backstageShared.interpreter);\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: [label].concat(comps),\n behaviours: derive$1([ComposingConfigs.self(), Replacing.config({}), RepresentingConfigs.domHtml(Optional.none()), Keying.config({\n mode: 'acyclic'\n })])\n };\n };\n\n var isSingleListItem = function isSingleListItem(item) {\n return !has$2(item, 'items');\n };\n\n var dataAttribute = 'data-value';\n\n var fetchItems = function fetchItems(dropdownComp, name, items, selectedValue) {\n return map$2(items, function (item) {\n if (!isSingleListItem(item)) {\n return {\n type: 'nestedmenuitem',\n text: item.text,\n getSubmenuItems: function getSubmenuItems() {\n return fetchItems(dropdownComp, name, item.items, selectedValue);\n }\n };\n } else {\n return {\n type: 'togglemenuitem',\n text: item.text,\n value: item.value,\n active: item.value === selectedValue,\n onAction: function onAction() {\n Representing.setValue(dropdownComp, item.value);\n emitWith(dropdownComp, formChangeEvent, {\n name: name\n });\n Focusing.focus(dropdownComp);\n }\n };\n }\n });\n };\n\n var findItemByValue = function findItemByValue(items, value) {\n return findMap(items, function (item) {\n if (!isSingleListItem(item)) {\n return findItemByValue(item.items, value);\n } else {\n return someIf(item.value === value, item);\n }\n });\n };\n\n var renderListBox = function renderListBox(spec, backstage) {\n var providersBackstage = backstage.shared.providers;\n var initialItem = head(spec.items).filter(isSingleListItem);\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n dom: {},\n factory: {\n sketch: function sketch(sketchSpec) {\n return renderCommonDropdown({\n uid: sketchSpec.uid,\n text: initialItem.map(function (item) {\n return item.text;\n }),\n icon: Optional.none(),\n tooltip: spec.label,\n role: Optional.none(),\n fetch: function fetch(comp, callback) {\n var items = fetchItems(comp, spec.name, spec.items, Representing.getValue(comp));\n callback(build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false));\n },\n onSetup: constant$1(noop),\n getApi: constant$1({}),\n columns: 1,\n presets: 'normal',\n classes: [],\n dropdownBehaviours: [Tabstopping.config({}), Representing.config({\n store: {\n mode: 'manual',\n initialValue: initialItem.map(function (item) {\n return item.value;\n }).getOr(''),\n getValue: function getValue(comp) {\n return get$d(comp.element, dataAttribute);\n },\n setValue: function setValue(comp, data) {\n findItemByValue(spec.items, data).each(function (item) {\n set$8(comp.element, dataAttribute, item.value);\n emitWith(comp, updateMenuText, {\n text: item.text\n });\n });\n }\n }\n })]\n }, 'tox-listbox', backstage.shared);\n }\n }\n });\n var listBoxWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-listboxfield']\n },\n components: [pField]\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([pLabel.toArray(), [listBoxWrap]]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: constant$1(spec.disabled),\n onDisabled: function onDisabled(comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function onEnabled(comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n })])\n });\n };\n\n var renderPanel = function renderPanel(spec, backstage) {\n return {\n dom: {\n tag: 'div',\n classes: spec.classes\n },\n components: map$2(spec.items, backstage.shared.interpreter)\n };\n };\n\n var factory$e = function factory$e(detail, _spec) {\n var options = map$2(detail.options, function (option) {\n return {\n dom: {\n tag: 'option',\n value: option.value,\n innerHtml: option.text\n }\n };\n });\n var initialValues = detail.data.map(function (v) {\n return wrap$1('initialValue', v);\n }).getOr({});\n return {\n uid: detail.uid,\n dom: {\n tag: 'select',\n classes: detail.selectClasses,\n attributes: detail.selectAttributes\n },\n components: options,\n behaviours: augment(detail.selectBehaviours, [Focusing.config({}), Representing.config({\n store: _assign({\n mode: 'manual',\n getValue: function getValue(select) {\n return get$5(select.element);\n },\n setValue: function setValue(select, newValue) {\n var found = find$5(detail.options, function (opt) {\n return opt.value === newValue;\n });\n\n if (found.isSome()) {\n set$4(select.element, newValue);\n }\n }\n }, initialValues)\n })])\n };\n };\n\n var HtmlSelect = single({\n name: 'HtmlSelect',\n configFields: [required$1('options'), field('selectBehaviours', [Focusing, Representing]), defaulted('selectClasses', []), defaulted('selectAttributes', {}), option('data')],\n factory: factory$e\n });\n\n var renderSelectBox = function renderSelectBox(spec, providersBackstage) {\n var translatedOptions = map$2(spec.items, function (item) {\n return {\n text: providersBackstage.translate(item.text),\n value: item.value\n };\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var pField = FormField.parts.field({\n dom: {},\n selectAttributes: {\n size: spec.size\n },\n options: translatedOptions,\n factory: HtmlSelect,\n selectBehaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), Tabstopping.config({}), config('selectbox-change', [run$1(change(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })])])\n });\n var chevron = spec.size > 1 ? Optional.none() : Optional.some(render$3('chevron-down', {\n tag: 'div',\n classes: ['tox-selectfield__icon-js']\n }, providersBackstage.icons));\n var selectWrap = {\n dom: {\n tag: 'div',\n classes: ['tox-selectfield']\n },\n components: flatten([[pField], chevron.toArray()])\n };\n return FormField.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group']\n },\n components: flatten([pLabel.toArray(), [selectWrap]]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function onDisabled(comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function onEnabled(comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }), receivingConfig()])\n });\n };\n\n var renderTable = function renderTable(spec, providersBackstage) {\n var renderTh = function renderTh(text) {\n return {\n dom: {\n tag: 'th',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n\n var renderHeader = function renderHeader(header) {\n return {\n dom: {\n tag: 'thead'\n },\n components: [{\n dom: {\n tag: 'tr'\n },\n components: map$2(header, renderTh)\n }]\n };\n };\n\n var renderTd = function renderTd(text) {\n return {\n dom: {\n tag: 'td',\n innerHtml: providersBackstage.translate(text)\n }\n };\n };\n\n var renderTr = function renderTr(row) {\n return {\n dom: {\n tag: 'tr'\n },\n components: map$2(row, renderTd)\n };\n };\n\n var renderRows = function renderRows(rows) {\n return {\n dom: {\n tag: 'tbody'\n },\n components: map$2(rows, renderTr)\n };\n };\n\n return {\n dom: {\n tag: 'table',\n classes: ['tox-dialog__table']\n },\n components: [renderHeader(spec.header), renderRows(spec.cells)],\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n };\n };\n\n var renderTextField = function renderTextField(spec, providersBackstage) {\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n var baseInputBehaviours = [Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), receivingConfig(), Keying.config({\n mode: 'execution',\n useEnter: spec.multiline !== true,\n useControlEnter: spec.multiline === true,\n execute: function execute(comp) {\n emit(comp, formSubmitEvent);\n return Optional.some(true);\n }\n }), config('textfield-change', [run$1(input(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n }), run$1(postPaste(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })]), Tabstopping.config({})];\n var validatingBehaviours = spec.validation.map(function (vl) {\n return Invalidating.config({\n getRoot: function getRoot(input) {\n return parent(input.element);\n },\n invalidClass: 'tox-invalid',\n validator: {\n validate: function validate(input) {\n var v = Representing.getValue(input);\n var result = vl.validator(v);\n return Future.pure(result === true ? Result.value(v) : Result.error(result));\n },\n validateOnLoad: vl.validateOnLoad\n }\n });\n }).toArray();\n var placeholder = spec.placeholder.fold(constant$1({}), function (p) {\n return {\n placeholder: providersBackstage.translate(p)\n };\n });\n var inputMode = spec.inputMode.fold(constant$1({}), function (mode) {\n return {\n inputmode: mode\n };\n });\n\n var inputAttributes = _assign(_assign({}, placeholder), inputMode);\n\n var pField = FormField.parts.field({\n tag: spec.multiline === true ? 'textarea' : 'input',\n inputAttributes: inputAttributes,\n inputClasses: [spec.classname],\n inputBehaviours: derive$1(flatten([baseInputBehaviours, validatingBehaviours])),\n selectOnFocus: false,\n factory: Input\n });\n var extraClasses = spec.flex ? ['tox-form__group--stretched'] : [];\n var extraClasses2 = extraClasses.concat(spec.maximized ? ['tox-form-group--maximize'] : []);\n var extraBehaviours = [Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function onDisabled(comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function onEnabled(comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }), receivingConfig()];\n return renderFormFieldWith(pLabel, pField, extraClasses2, extraBehaviours);\n };\n\n var renderInput = function renderInput(spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: false,\n label: spec.label,\n inputMode: spec.inputMode,\n placeholder: spec.placeholder,\n flex: false,\n disabled: spec.disabled,\n classname: 'tox-textfield',\n validation: Optional.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n\n var renderTextarea = function renderTextarea(spec, providersBackstage) {\n return renderTextField({\n name: spec.name,\n multiline: true,\n label: spec.label,\n inputMode: Optional.none(),\n placeholder: spec.placeholder,\n flex: true,\n disabled: spec.disabled,\n classname: 'tox-textarea',\n validation: Optional.none(),\n maximized: spec.maximized\n }, providersBackstage);\n };\n\n var events$6 = function events$6(streamConfig, streamState) {\n var streams = streamConfig.stream.streams;\n var processor = streams.setup(streamConfig, streamState);\n return derive$2([run$1(streamConfig.event, processor), runOnDetached(function () {\n return streamState.cancel();\n })].concat(streamConfig.cancelEvent.map(function (e) {\n return [run$1(e, function () {\n return streamState.cancel();\n })];\n }).getOr([])));\n };\n\n var ActiveStreaming = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$6\n });\n\n var throttle = function throttle(_config) {\n var state = Cell(null);\n\n var readState = function readState() {\n return {\n timer: state.get() !== null ? 'set' : 'unset'\n };\n };\n\n var setTimer = function setTimer(t) {\n state.set(t);\n };\n\n var cancel = function cancel() {\n var t = state.get();\n\n if (t !== null) {\n t.cancel();\n }\n };\n\n return nu$8({\n readState: readState,\n setTimer: setTimer,\n cancel: cancel\n });\n };\n\n var init$9 = function init$9(spec) {\n return spec.stream.streams.state(spec);\n };\n\n var StreamingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n throttle: throttle,\n init: init$9\n });\n\n var setup$c = function setup$c(streamInfo, streamState) {\n var sInfo = streamInfo.stream;\n var throttler = last(streamInfo.onStream, sInfo.delay);\n streamState.setTimer(throttler);\n return function (component, simulatedEvent) {\n throttler.throttle(component, simulatedEvent);\n\n if (sInfo.stopEvent) {\n simulatedEvent.stop();\n }\n };\n };\n\n var StreamingSchema = [requiredOf('stream', choose$1('mode', {\n throttle: [required$1('delay'), defaulted('stopEvent', true), output$1('streams', {\n setup: setup$c,\n state: throttle\n })]\n })), defaulted('event', 'input'), option('cancelEvent'), onStrictHandler('onStream')];\n var Streaming = create$7({\n fields: StreamingSchema,\n name: 'streaming',\n active: ActiveStreaming,\n state: StreamingState\n });\n\n var setValueFromItem = function setValueFromItem(model, input, item) {\n var itemData = Representing.getValue(item);\n Representing.setValue(input, itemData);\n setCursorAtEnd(input);\n };\n\n var setSelectionOn = function setSelectionOn(input, f) {\n var el = input.element;\n var value = get$5(el);\n var node = el.dom;\n\n if (get$d(el, 'type') !== 'number') {\n f(node, value);\n }\n };\n\n var setCursorAtEnd = function setCursorAtEnd(input) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(value.length, value.length);\n });\n };\n\n var setSelectionToEnd = function setSelectionToEnd(input, startOffset) {\n setSelectionOn(input, function (node, value) {\n return node.setSelectionRange(startOffset, value.length);\n });\n };\n\n var attemptSelectOver = function attemptSelectOver(model, input, item) {\n if (!model.selectsOver) {\n return Optional.none();\n } else {\n var currentValue = Representing.getValue(input);\n var inputDisplay_1 = model.getDisplayText(currentValue);\n var itemValue = Representing.getValue(item);\n var itemDisplay = model.getDisplayText(itemValue);\n return itemDisplay.indexOf(inputDisplay_1) === 0 ? Optional.some(function () {\n setValueFromItem(model, input, item);\n setSelectionToEnd(input, inputDisplay_1.length);\n }) : Optional.none();\n }\n };\n\n var itemExecute = constant$1('alloy.typeahead.itemexecute');\n\n var make$3 = function make$3(detail, components, spec, externals) {\n var navigateList = function navigateList(comp, simulatedEvent, highlighter) {\n detail.previewing.set(false);\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n\n if (Sandboxing.isOpen(sandbox)) {\n Composing.getCurrent(sandbox).each(function (menu) {\n Highlighting.getHighlighted(menu).fold(function () {\n highlighter(menu);\n }, function () {\n dispatchEvent(sandbox, menu.element, 'keydown', simulatedEvent);\n });\n });\n } else {\n var onOpenSync = function onOpenSync(sandbox) {\n Composing.getCurrent(sandbox).each(highlighter);\n };\n\n open(detail, mapFetch(comp), comp, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n };\n\n var focusBehaviours$1 = focusBehaviours(detail);\n\n var mapFetch = function mapFetch(comp) {\n return function (tdata) {\n return tdata.map(function (data) {\n var menus = values(data.menus);\n var items = bind$3(menus, function (menu) {\n return filter$2(menu.items, function (item) {\n return item.type === 'item';\n });\n });\n var repState = Representing.getState(comp);\n repState.update(map$2(items, function (item) {\n return item.data;\n }));\n return data;\n });\n };\n };\n\n var behaviours = [Focusing.config({}), Representing.config({\n onSetValue: detail.onSetValue,\n store: _assign({\n mode: 'dataset',\n getDataKey: function getDataKey(comp) {\n return get$5(comp.element);\n },\n getFallbackEntry: function getFallbackEntry(itemString) {\n return {\n value: itemString,\n meta: {}\n };\n },\n setValue: function setValue(comp, data) {\n set$4(comp.element, detail.model.getDisplayText(data));\n }\n }, detail.initialData.map(function (d) {\n return wrap$1('initialValue', d);\n }).getOr({}))\n }), Streaming.config({\n stream: {\n mode: 'throttle',\n delay: detail.responseTime,\n stopEvent: false\n },\n onStream: function onStream(component, _simulatedEvent) {\n var sandbox = Coupling.getCoupled(component, 'sandbox');\n var focusInInput = Focusing.isFocused(component);\n\n if (focusInInput) {\n if (get$5(component.element).length >= detail.minChars) {\n var previousValue_1 = Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu).map(Representing.getValue);\n });\n detail.previewing.set(true);\n\n var onOpenSync = function onOpenSync(_sandbox) {\n Composing.getCurrent(sandbox).each(function (menu) {\n previousValue_1.fold(function () {\n if (detail.model.selectsOver) {\n Highlighting.highlightFirst(menu);\n }\n }, function (pv) {\n Highlighting.highlightBy(menu, function (item) {\n var itemData = Representing.getValue(item);\n return itemData.value === pv.value;\n });\n Highlighting.getHighlighted(menu).orThunk(function () {\n Highlighting.highlightFirst(menu);\n return Optional.none();\n });\n });\n });\n };\n\n open(detail, mapFetch(component), component, sandbox, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }\n }\n },\n cancelEvent: typeaheadCancel()\n }), Keying.config({\n mode: 'special',\n onDown: function onDown(comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightFirst);\n return Optional.some(true);\n },\n onEscape: function onEscape(comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n\n if (Sandboxing.isOpen(sandbox)) {\n Sandboxing.close(sandbox);\n return Optional.some(true);\n }\n\n return Optional.none();\n },\n onUp: function onUp(comp, simulatedEvent) {\n navigateList(comp, simulatedEvent, Highlighting.highlightLast);\n return Optional.some(true);\n },\n onEnter: function onEnter(comp) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n var sandboxIsOpen = Sandboxing.isOpen(sandbox);\n\n if (sandboxIsOpen && !detail.previewing.get()) {\n return Composing.getCurrent(sandbox).bind(function (menu) {\n return Highlighting.getHighlighted(menu);\n }).map(function (item) {\n emitWith(comp, itemExecute(), {\n item: item\n });\n return true;\n });\n } else {\n var currentValue = Representing.getValue(comp);\n emit(comp, typeaheadCancel());\n detail.onExecute(sandbox, comp, currentValue);\n\n if (sandboxIsOpen) {\n Sandboxing.close(sandbox);\n }\n\n return Optional.some(true);\n }\n }\n }), Toggling.config({\n toggleClass: detail.markers.openClass,\n aria: {\n mode: 'expanded'\n }\n }), Coupling.config({\n others: {\n sandbox: function sandbox(hotspot) {\n return makeSandbox$1(detail, hotspot, {\n onOpen: function onOpen() {\n return Toggling.on(hotspot);\n },\n onClose: function onClose() {\n return Toggling.off(hotspot);\n }\n });\n }\n }\n }), config('typeaheadevents', [runOnExecute$1(function (comp) {\n var onOpenSync = noop;\n togglePopup(detail, mapFetch(comp), comp, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n }), run$1(itemExecute(), function (comp, se) {\n var sandbox = Coupling.getCoupled(comp, 'sandbox');\n setValueFromItem(detail.model, comp, se.event.item);\n emit(comp, typeaheadCancel());\n detail.onItemExecute(comp, sandbox, se.event.item, Representing.getValue(comp));\n Sandboxing.close(sandbox);\n setCursorAtEnd(comp);\n })].concat(detail.dismissOnBlur ? [run$1(postBlur(), function (typeahead) {\n var sandbox = Coupling.getCoupled(typeahead, 'sandbox');\n\n if (search(sandbox.element).isNone()) {\n Sandboxing.close(sandbox);\n }\n })] : []))];\n return {\n uid: detail.uid,\n dom: dom(deepMerge(detail, {\n inputAttributes: {\n 'role': 'combobox',\n 'aria-autocomplete': 'list',\n 'aria-haspopup': 'true'\n }\n })),\n behaviours: _assign(_assign({}, focusBehaviours$1), augment(detail.typeaheadBehaviours, behaviours)),\n eventOrder: detail.eventOrder\n };\n };\n\n var schema$g = constant$1([option('lazySink'), required$1('fetch'), defaulted('minChars', 5), defaulted('responseTime', 1000), onHandler('onOpen'), defaulted('getHotspot', Optional.some), defaulted('getAnchorOverrides', constant$1({})), defaulted('layouts', Optional.none()), defaulted('eventOrder', {}), defaultedObjOf('model', {}, [defaulted('getDisplayText', function (itemData) {\n return itemData.meta !== undefined && itemData.meta.text !== undefined ? itemData.meta.text : itemData.value;\n }), defaulted('selectsOver', true), defaulted('populateFromBrowse', true)]), onHandler('onSetValue'), onKeyboardHandler('onExecute'), onHandler('onItemExecute'), defaulted('inputClasses', []), defaulted('inputAttributes', {}), defaulted('inputStyles', {}), defaulted('matchWidth', true), defaulted('useMinWidth', false), defaulted('dismissOnBlur', true), markers$1(['openClass']), option('initialData'), field('typeaheadBehaviours', [Focusing, Representing, Streaming, Keying, Toggling, Coupling]), customField('previewing', function () {\n return Cell(true);\n })].concat(schema$k()).concat(sandboxFields()));\n var parts$b = constant$1([external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n overrides: function overrides(detail) {\n return {\n fakeFocus: true,\n onHighlight: function onHighlight(menu, item) {\n if (!detail.previewing.get()) {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n } else {\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n attemptSelectOver(detail.model, input, item).fold(function () {\n return Highlighting.dehighlight(menu, item);\n }, function (fn) {\n return fn();\n });\n });\n }\n\n detail.previewing.set(false);\n },\n onExecute: function onExecute(menu, item) {\n return menu.getSystem().getByUid(detail.uid).toOptional().map(function (typeahead) {\n emitWith(typeahead, itemExecute(), {\n item: item\n });\n return true;\n });\n },\n onHover: function onHover(menu, item) {\n detail.previewing.set(false);\n menu.getSystem().getByUid(detail.uid).each(function (input) {\n if (detail.model.populateFromBrowse) {\n setValueFromItem(detail.model, input, item);\n }\n });\n }\n };\n }\n })]);\n var Typeahead = composite({\n name: 'Typeahead',\n configFields: schema$g(),\n partFields: parts$b(),\n factory: make$3\n });\n\n var wrap = function wrap(delegate) {\n var toCached = function toCached() {\n return wrap(delegate.toCached());\n };\n\n var bindFuture = function bindFuture(f) {\n return wrap(delegate.bind(function (resA) {\n return resA.fold(function (err) {\n return Future.pure(Result.error(err));\n }, function (a) {\n return f(a);\n });\n }));\n };\n\n var bindResult = function bindResult(f) {\n return wrap(delegate.map(function (resA) {\n return resA.bind(f);\n }));\n };\n\n var mapResult = function mapResult(f) {\n return wrap(delegate.map(function (resA) {\n return resA.map(f);\n }));\n };\n\n var mapError = function mapError(f) {\n return wrap(delegate.map(function (resA) {\n return resA.mapError(f);\n }));\n };\n\n var foldResult = function foldResult(whenError, whenValue) {\n return delegate.map(function (res) {\n return res.fold(whenError, whenValue);\n });\n };\n\n var withTimeout = function withTimeout(timeout, errorThunk) {\n return wrap(Future.nu(function (callback) {\n var timedOut = false;\n var timer = setTimeout(function () {\n timedOut = true;\n callback(Result.error(errorThunk()));\n }, timeout);\n delegate.get(function (result) {\n if (!timedOut) {\n clearTimeout(timer);\n callback(result);\n }\n });\n }));\n };\n\n return _assign(_assign({}, delegate), {\n toCached: toCached,\n bindFuture: bindFuture,\n bindResult: bindResult,\n mapResult: mapResult,\n mapError: mapError,\n foldResult: foldResult,\n withTimeout: withTimeout\n });\n };\n\n var nu$1 = function nu$1(worker) {\n return wrap(Future.nu(worker));\n };\n\n var value = function value(_value2) {\n return wrap(Future.pure(Result.value(_value2)));\n };\n\n var error = function error(_error) {\n return wrap(Future.pure(Result.error(_error)));\n };\n\n var fromResult = function fromResult(result) {\n return wrap(Future.pure(result));\n };\n\n var fromFuture = function fromFuture(future) {\n return wrap(future.map(Result.value));\n };\n\n var fromPromise = function fromPromise(promise) {\n return nu$1(function (completer) {\n promise.then(function (value) {\n completer(Result.value(value));\n }, function (error) {\n completer(Result.error(error));\n });\n });\n };\n\n var FutureResult = {\n nu: nu$1,\n wrap: wrap,\n pure: value,\n value: value,\n error: error,\n fromResult: fromResult,\n fromFuture: fromFuture,\n fromPromise: fromPromise\n };\n var separator$1 = {\n type: 'separator'\n };\n\n var toMenuItem = function toMenuItem(target) {\n return {\n type: 'menuitem',\n value: target.url,\n text: target.title,\n meta: {\n attach: target.attach\n },\n onAction: noop\n };\n };\n\n var staticMenuItem = function staticMenuItem(title, url) {\n return {\n type: 'menuitem',\n value: url,\n text: title,\n meta: {\n attach: undefined\n },\n onAction: noop\n };\n };\n\n var toMenuItems = function toMenuItems(targets) {\n return map$2(targets, toMenuItem);\n };\n\n var filterLinkTargets = function filterLinkTargets(type, targets) {\n return filter$2(targets, function (target) {\n return target.type === type;\n });\n };\n\n var filteredTargets = function filteredTargets(type, targets) {\n return toMenuItems(filterLinkTargets(type, targets));\n };\n\n var headerTargets = function headerTargets(linkInfo) {\n return filteredTargets('header', linkInfo.targets);\n };\n\n var anchorTargets = function anchorTargets(linkInfo) {\n return filteredTargets('anchor', linkInfo.targets);\n };\n\n var anchorTargetTop = function anchorTargetTop(linkInfo) {\n return Optional.from(linkInfo.anchorTop).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n\n var anchorTargetBottom = function anchorTargetBottom(linkInfo) {\n return Optional.from(linkInfo.anchorBottom).map(function (url) {\n return staticMenuItem('', url);\n }).toArray();\n };\n\n var historyTargets = function historyTargets(history) {\n return map$2(history, function (url) {\n return staticMenuItem(url, url);\n });\n };\n\n var joinMenuLists = function joinMenuLists(items) {\n return foldl(items, function (a, b) {\n var bothEmpty = a.length === 0 || b.length === 0;\n return bothEmpty ? a.concat(b) : a.concat(separator$1, b);\n }, []);\n };\n\n var filterByQuery = function filterByQuery(term, menuItems) {\n var lowerCaseTerm = term.toLowerCase();\n return filter$2(menuItems, function (item) {\n var text = item.meta !== undefined && item.meta.text !== undefined ? item.meta.text : item.text;\n return contains$1(text.toLowerCase(), lowerCaseTerm) || contains$1(item.value.toLowerCase(), lowerCaseTerm);\n });\n };\n\n var getItems = function getItems(fileType, input, urlBackstage) {\n var urlInputValue = Representing.getValue(input);\n var term = urlInputValue.meta.text !== undefined ? urlInputValue.meta.text : urlInputValue.value;\n var info = urlBackstage.getLinkInformation();\n return info.fold(function () {\n return [];\n }, function (linkInfo) {\n var history = filterByQuery(term, historyTargets(urlBackstage.getHistory(fileType)));\n return fileType === 'file' ? joinMenuLists([history, filterByQuery(term, headerTargets(linkInfo)), filterByQuery(term, flatten([anchorTargetTop(linkInfo), anchorTargets(linkInfo), anchorTargetBottom(linkInfo)]))]) : history;\n });\n };\n\n var errorId = generate$6('aria-invalid');\n\n var renderUrlInput = function renderUrlInput(spec, backstage, urlBackstage) {\n var _a;\n\n var providersBackstage = backstage.shared.providers;\n\n var updateHistory = function updateHistory(component) {\n var urlEntry = Representing.getValue(component);\n urlBackstage.addToHistory(urlEntry.value, spec.filetype);\n };\n\n var pField = FormField.parts.field({\n factory: Typeahead,\n dismissOnBlur: true,\n inputClasses: ['tox-textfield'],\n sandboxClasses: ['tox-dialog__popups'],\n inputAttributes: {\n 'aria-errormessage': errorId,\n 'type': 'url'\n },\n minChars: 0,\n responseTime: 0,\n fetch: function fetch(input) {\n var items = getItems(spec.filetype, input, urlBackstage);\n var tdata = build(items, ItemResponse$1.BUBBLE_TO_SANDBOX, backstage, false);\n return Future.pure(tdata);\n },\n getHotspot: function getHotspot(comp) {\n return memUrlBox.getOpt(comp);\n },\n onSetValue: function onSetValue(comp, _newValue) {\n if (comp.hasConfigured(Invalidating)) {\n Invalidating.run(comp).get(noop);\n }\n },\n typeaheadBehaviours: derive$1(flatten([urlBackstage.getValidationHandler().map(function (handler) {\n return Invalidating.config({\n getRoot: function getRoot(comp) {\n return parent(comp.element);\n },\n invalidClass: 'tox-control-wrap--status-invalid',\n notify: {\n onInvalid: function onInvalid(comp, err) {\n memInvalidIcon.getOpt(comp).each(function (invalidComp) {\n set$8(invalidComp.element, 'title', providersBackstage.translate(err));\n });\n }\n },\n validator: {\n validate: function validate(input) {\n var urlEntry = Representing.getValue(input);\n return FutureResult.nu(function (completer) {\n handler({\n type: spec.filetype,\n url: urlEntry.value\n }, function (validation) {\n if (validation.status === 'invalid') {\n var err = Result.error(validation.message);\n completer(err);\n } else {\n var val = Result.value(validation.message);\n completer(val);\n }\n });\n });\n },\n validateOnLoad: false\n }\n });\n }).toArray(), [Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n }\n }), Tabstopping.config({}), config('urlinput-events', flatten([spec.filetype === 'file' ? [run$1(input(), function (comp) {\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n })] : [], [run$1(change(), function (comp) {\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n updateHistory(comp);\n }), run$1(postPaste(), function (comp) {\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n updateHistory(comp);\n })]]))]])),\n eventOrder: (_a = {}, _a[input()] = ['streaming', 'urlinput-events', 'invalidating'], _a),\n model: {\n getDisplayText: function getDisplayText(itemData) {\n return itemData.value;\n },\n selectsOver: false,\n populateFromBrowse: false\n },\n markers: {\n openClass: 'tox-textfield--popup-open'\n },\n lazySink: backstage.shared.getSink,\n parts: {\n menu: part(false, 1, 'normal')\n },\n onExecute: function onExecute(_menu, component, _entry) {\n emitWith(component, formSubmitEvent, {});\n },\n onItemExecute: function onItemExecute(typeahead, _sandbox, _item, _value) {\n updateHistory(typeahead);\n emitWith(typeahead, formChangeEvent, {\n name: spec.name\n });\n }\n });\n var pLabel = spec.label.map(function (label) {\n return renderLabel$2(label, providersBackstage);\n });\n\n var makeIcon = function makeIcon(name, errId, icon, label) {\n if (icon === void 0) {\n icon = name;\n }\n\n if (label === void 0) {\n label = name;\n }\n\n return render$3(icon, {\n tag: 'div',\n classes: ['tox-icon', 'tox-control-wrap__status-icon-' + name],\n attributes: _assign({\n 'title': providersBackstage.translate(label),\n 'aria-live': 'polite'\n }, errId.fold(function () {\n return {};\n }, function (id) {\n return {\n id: id\n };\n }))\n }, providersBackstage.icons);\n };\n\n var memInvalidIcon = record(makeIcon('invalid', Optional.some(errorId), 'warning'));\n var memStatus = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap__status-icon-wrap']\n },\n components: [memInvalidIcon.asSpec()]\n });\n var optUrlPicker = urlBackstage.getUrlPicker(spec.filetype);\n var browseUrlEvent = generate$6('browser.url.event');\n var memUrlBox = record({\n dom: {\n tag: 'div',\n classes: ['tox-control-wrap']\n },\n components: [pField, memStatus.asSpec()],\n behaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n }\n })])\n });\n var memUrlPickerButton = record(renderButton({\n name: spec.name,\n icon: Optional.some('browse'),\n text: spec.label.getOr(''),\n disabled: spec.disabled,\n primary: false,\n borderless: true\n }, function (component) {\n return emit(component, browseUrlEvent);\n }, providersBackstage, [], ['tox-browse-url']));\n\n var controlHWrapper = function controlHWrapper() {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form__controls-h-stack']\n },\n components: flatten([[memUrlBox.asSpec()], optUrlPicker.map(function () {\n return memUrlPickerButton.asSpec();\n }).toArray()])\n };\n };\n\n var openUrlPicker = function openUrlPicker(comp) {\n Composing.getCurrent(comp).each(function (field) {\n var componentData = Representing.getValue(field);\n\n var urlData = _assign({\n fieldname: spec.name\n }, componentData);\n\n optUrlPicker.each(function (picker) {\n picker(urlData).get(function (chosenData) {\n Representing.setValue(field, chosenData);\n emitWith(comp, formChangeEvent, {\n name: spec.name\n });\n });\n });\n });\n };\n\n return FormField.sketch({\n dom: renderFormFieldDom(),\n components: pLabel.toArray().concat([controlHWrapper()]),\n fieldBehaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providersBackstage.isDisabled();\n },\n onDisabled: function onDisabled(comp) {\n FormField.getField(comp).each(Disabling.disable);\n memUrlPickerButton.getOpt(comp).each(Disabling.disable);\n },\n onEnabled: function onEnabled(comp) {\n FormField.getField(comp).each(Disabling.enable);\n memUrlPickerButton.getOpt(comp).each(Disabling.enable);\n }\n }), receivingConfig(), config('url-input-events', [run$1(browseUrlEvent, openUrlPicker)])])\n });\n };\n\n var renderAlertBanner = function renderAlertBanner(spec, providersBackstage) {\n return Container.sketch({\n dom: {\n tag: 'div',\n attributes: {\n role: 'alert'\n },\n classes: ['tox-notification', 'tox-notification--in', 'tox-notification--' + spec.level]\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-notification__icon']\n },\n components: [Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-button', 'tox-button--naked', 'tox-button--icon'],\n innerHtml: get$1(spec.icon, providersBackstage.icons),\n attributes: {\n title: providersBackstage.translate(spec.iconTooltip)\n }\n },\n action: function action(comp) {\n emitWith(comp, formActionEvent, {\n name: 'alert-banner',\n value: spec.url\n });\n },\n buttonBehaviours: derive$1([addFocusableBehaviour()])\n })]\n }, {\n dom: {\n tag: 'div',\n classes: ['tox-notification__body'],\n innerHtml: providersBackstage.translate(spec.text)\n }\n }]\n });\n };\n\n var renderCheckbox = function renderCheckbox(spec, providerBackstage) {\n var repBehaviour = Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(comp) {\n var el = comp.element.dom;\n return el.checked;\n },\n setValue: function setValue(comp, value) {\n var el = comp.element.dom;\n el.checked = value;\n }\n }\n });\n\n var toggleCheckboxHandler = function toggleCheckboxHandler(comp) {\n comp.element.dom.click();\n return Optional.some(true);\n };\n\n var pField = FormField.parts.field({\n factory: {\n sketch: identity$1\n },\n dom: {\n tag: 'input',\n classes: ['tox-checkbox__input'],\n attributes: {\n type: 'checkbox'\n }\n },\n behaviours: derive$1([ComposingConfigs.self(), Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providerBackstage.isDisabled();\n }\n }), Tabstopping.config({}), Focusing.config({}), repBehaviour, Keying.config({\n mode: 'special',\n onEnter: toggleCheckboxHandler,\n onSpace: toggleCheckboxHandler,\n stopSpaceKeyup: true\n }), config('checkbox-events', [run$1(change(), function (component, _) {\n emitWith(component, formChangeEvent, {\n name: spec.name\n });\n })])])\n });\n var pLabel = FormField.parts.label({\n dom: {\n tag: 'span',\n classes: ['tox-checkbox__label'],\n innerHtml: providerBackstage.translate(spec.label)\n },\n behaviours: derive$1([Unselecting.config({})])\n });\n\n var makeIcon = function makeIcon(className) {\n var iconName = className === 'checked' ? 'selected' : 'unselected';\n return render$3(iconName, {\n tag: 'span',\n classes: ['tox-icon', 'tox-checkbox-icon__' + className]\n }, providerBackstage.icons);\n };\n\n var memIcons = record({\n dom: {\n tag: 'div',\n classes: ['tox-checkbox__icons']\n },\n components: [makeIcon('checked'), makeIcon('unchecked')]\n });\n return FormField.sketch({\n dom: {\n tag: 'label',\n classes: ['tox-checkbox']\n },\n components: [pField, memIcons.asSpec(), pLabel],\n fieldBehaviours: derive$1([Disabling.config({\n disabled: function disabled() {\n return spec.disabled || providerBackstage.isDisabled();\n },\n disableClass: 'tox-checkbox--disabled',\n onDisabled: function onDisabled(comp) {\n FormField.getField(comp).each(Disabling.disable);\n },\n onEnabled: function onEnabled(comp) {\n FormField.getField(comp).each(Disabling.enable);\n }\n }), receivingConfig()])\n });\n };\n\n var renderHtmlPanel = function renderHtmlPanel(spec) {\n if (spec.presets === 'presentation') {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html\n }\n });\n } else {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-form__group'],\n innerHtml: spec.html,\n attributes: {\n role: 'document'\n }\n },\n containerBehaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n });\n }\n };\n\n var make$2 = function make$2(render) {\n return function (parts, spec, backstage) {\n return get$e(spec, 'name').fold(function () {\n return render(spec, backstage);\n }, function (fieldName) {\n return parts.field(fieldName, render(spec, backstage));\n });\n };\n };\n\n var makeIframe = function makeIframe(render) {\n return function (parts, spec, backstage) {\n var iframeSpec = deepMerge(spec, {\n source: 'dynamic'\n });\n return make$2(render)(parts, iframeSpec, backstage);\n };\n };\n\n var factories = {\n bar: make$2(function (spec, backstage) {\n return renderBar(spec, backstage.shared);\n }),\n collection: make$2(function (spec, backstage) {\n return renderCollection(spec, backstage.shared.providers);\n }),\n alertbanner: make$2(function (spec, backstage) {\n return renderAlertBanner(spec, backstage.shared.providers);\n }),\n input: make$2(function (spec, backstage) {\n return renderInput(spec, backstage.shared.providers);\n }),\n textarea: make$2(function (spec, backstage) {\n return renderTextarea(spec, backstage.shared.providers);\n }),\n label: make$2(function (spec, backstage) {\n return renderLabel(spec, backstage.shared);\n }),\n iframe: makeIframe(function (spec, backstage) {\n return renderIFrame(spec, backstage.shared.providers);\n }),\n button: make$2(function (spec, backstage) {\n return renderDialogButton(spec, backstage.shared.providers);\n }),\n checkbox: make$2(function (spec, backstage) {\n return renderCheckbox(spec, backstage.shared.providers);\n }),\n colorinput: make$2(function (spec, backstage) {\n return renderColorInput(spec, backstage.shared, backstage.colorinput);\n }),\n colorpicker: make$2(renderColorPicker),\n dropzone: make$2(function (spec, backstage) {\n return renderDropZone(spec, backstage.shared.providers);\n }),\n grid: make$2(function (spec, backstage) {\n return renderGrid(spec, backstage.shared);\n }),\n listbox: make$2(function (spec, backstage) {\n return renderListBox(spec, backstage);\n }),\n selectbox: make$2(function (spec, backstage) {\n return renderSelectBox(spec, backstage.shared.providers);\n }),\n sizeinput: make$2(function (spec, backstage) {\n return renderSizeInput(spec, backstage.shared.providers);\n }),\n urlinput: make$2(function (spec, backstage) {\n return renderUrlInput(spec, backstage, backstage.urlinput);\n }),\n customeditor: make$2(renderCustomEditor),\n htmlpanel: make$2(renderHtmlPanel),\n imagetools: make$2(function (spec, backstage) {\n return renderImageTools(spec, backstage.shared.providers);\n }),\n table: make$2(function (spec, backstage) {\n return renderTable(spec, backstage.shared.providers);\n }),\n panel: make$2(function (spec, backstage) {\n return renderPanel(spec, backstage);\n })\n };\n var noFormParts = {\n field: function field(_name, spec) {\n return spec;\n }\n };\n\n var interpretInForm = function interpretInForm(parts, spec, oldBackstage) {\n var newBackstage = deepMerge(oldBackstage, {\n shared: {\n interpreter: function interpreter(childSpec) {\n return interpretParts(parts, childSpec, newBackstage);\n }\n }\n });\n return interpretParts(parts, spec, newBackstage);\n };\n\n var interpretParts = function interpretParts(parts, spec, backstage) {\n return get$e(factories, spec.type).fold(function () {\n console.error('Unknown factory type \"' + spec.type + '\", defaulting to container: ', spec);\n return spec;\n }, function (factory) {\n return factory(parts, spec, backstage);\n });\n };\n\n var interpretWithoutForm = function interpretWithoutForm(spec, backstage) {\n var parts = noFormParts;\n return interpretParts(parts, spec, backstage);\n };\n\n var bubbleAlignments$2 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: [],\n alignRight: [],\n right: [],\n left: [],\n bottom: [],\n top: []\n };\n\n var getInlineDialogAnchor = function getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var bubbleSize = 12;\n var overrides = {\n maxHeightFunction: expandable$1()\n };\n\n var editableAreaAnchor = function editableAreaAnchor() {\n return {\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n bubble: nu$5(bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: function onRtl() {\n return [northeast];\n },\n onLtr: function onLtr() {\n return [northwest];\n }\n },\n overrides: overrides\n };\n };\n\n var standardAnchor = function standardAnchor() {\n return {\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n bubble: nu$5(-bubbleSize, bubbleSize, bubbleAlignments$2),\n layouts: {\n onRtl: function onRtl() {\n return [southeast$2];\n },\n onLtr: function onLtr() {\n return [southwest$2];\n }\n },\n overrides: overrides\n };\n };\n\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n\n var getBannerAnchor = function getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor) {\n var editableAreaAnchor = function editableAreaAnchor() {\n return {\n type: 'node',\n root: getContentContainer(contentAreaElement()),\n node: Optional.from(contentAreaElement()),\n layouts: {\n onRtl: function onRtl() {\n return [north];\n },\n onLtr: function onLtr() {\n return [north];\n }\n }\n };\n };\n\n var standardAnchor = function standardAnchor() {\n return {\n type: 'hotspot',\n hotspot: lazyAnchorbar(),\n layouts: {\n onRtl: function onRtl() {\n return [south$2];\n },\n onLtr: function onLtr() {\n return [south$2];\n }\n }\n };\n };\n\n return function () {\n return lazyUseEditableAreaAnchor() ? editableAreaAnchor() : standardAnchor();\n };\n };\n\n var getCursorAnchor = function getCursorAnchor(editor, bodyElement) {\n return function () {\n return {\n type: 'selection',\n root: bodyElement(),\n getSelection: function getSelection() {\n var rng = editor.selection.getRng();\n return Optional.some(SimSelection.range(SugarElement.fromDom(rng.startContainer), rng.startOffset, SugarElement.fromDom(rng.endContainer), rng.endOffset));\n }\n };\n };\n };\n\n var getNodeAnchor$1 = function getNodeAnchor$1(bodyElement) {\n return function (element) {\n return {\n type: 'node',\n root: bodyElement(),\n node: element\n };\n };\n };\n\n var getAnchors = function getAnchors(editor, lazyAnchorbar, isToolbarTop) {\n var useFixedToolbarContainer = useFixedContainer(editor);\n\n var bodyElement = function bodyElement() {\n return SugarElement.fromDom(editor.getBody());\n };\n\n var contentAreaElement = function contentAreaElement() {\n return SugarElement.fromDom(editor.getContentAreaContainer());\n };\n\n var lazyUseEditableAreaAnchor = function lazyUseEditableAreaAnchor() {\n return useFixedToolbarContainer || !isToolbarTop();\n };\n\n return {\n inlineDialog: getInlineDialogAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n banner: getBannerAnchor(contentAreaElement, lazyAnchorbar, lazyUseEditableAreaAnchor),\n cursor: getCursorAnchor(editor, bodyElement),\n node: getNodeAnchor$1(bodyElement)\n };\n };\n\n var colorPicker = function colorPicker(editor) {\n return function (callback, value) {\n var dialog = colorPickerDialog(editor);\n dialog(callback, value);\n };\n };\n\n var hasCustomColors = function hasCustomColors(editor) {\n return function () {\n return hasCustomColors$1(editor);\n };\n };\n\n var getColors = function getColors(editor) {\n return function () {\n return getColors$2(editor);\n };\n };\n\n var getColorCols = function getColorCols(editor) {\n return function () {\n return getColorCols$1(editor);\n };\n };\n\n var ColorInputBackstage = function ColorInputBackstage(editor) {\n return {\n colorPicker: colorPicker(editor),\n hasCustomColors: hasCustomColors(editor),\n getColors: getColors(editor),\n getColorCols: getColorCols(editor)\n };\n };\n\n var isDraggableModal = function isDraggableModal(editor) {\n return function () {\n return isDraggableModal$1(editor);\n };\n };\n\n var DialogBackstage = function DialogBackstage(editor) {\n return {\n isDraggableModal: isDraggableModal(editor)\n };\n };\n\n var HeaderBackstage = function HeaderBackstage(editor) {\n var mode = Cell(isToolbarLocationBottom(editor) ? 'bottom' : 'top');\n return {\n isPositionedAtTop: function isPositionedAtTop() {\n return mode.get() === 'top';\n },\n getDockingMode: mode.get,\n setDockingMode: mode.set\n };\n };\n\n var defaultStyleFormats = [{\n title: 'Headings',\n items: [{\n title: 'Heading 1',\n format: 'h1'\n }, {\n title: 'Heading 2',\n format: 'h2'\n }, {\n title: 'Heading 3',\n format: 'h3'\n }, {\n title: 'Heading 4',\n format: 'h4'\n }, {\n title: 'Heading 5',\n format: 'h5'\n }, {\n title: 'Heading 6',\n format: 'h6'\n }]\n }, {\n title: 'Inline',\n items: [{\n title: 'Bold',\n format: 'bold'\n }, {\n title: 'Italic',\n format: 'italic'\n }, {\n title: 'Underline',\n format: 'underline'\n }, {\n title: 'Strikethrough',\n format: 'strikethrough'\n }, {\n title: 'Superscript',\n format: 'superscript'\n }, {\n title: 'Subscript',\n format: 'subscript'\n }, {\n title: 'Code',\n format: 'code'\n }]\n }, {\n title: 'Blocks',\n items: [{\n title: 'Paragraph',\n format: 'p'\n }, {\n title: 'Blockquote',\n format: 'blockquote'\n }, {\n title: 'Div',\n format: 'div'\n }, {\n title: 'Pre',\n format: 'pre'\n }]\n }, {\n title: 'Align',\n items: [{\n title: 'Left',\n format: 'alignleft'\n }, {\n title: 'Center',\n format: 'aligncenter'\n }, {\n title: 'Right',\n format: 'alignright'\n }, {\n title: 'Justify',\n format: 'alignjustify'\n }]\n }];\n\n var isNestedFormat = function isNestedFormat(format) {\n return has$2(format, 'items');\n };\n\n var isBlockFormat = function isBlockFormat(format) {\n return has$2(format, 'block');\n };\n\n var isInlineFormat = function isInlineFormat(format) {\n return has$2(format, 'inline');\n };\n\n var isSelectorFormat = function isSelectorFormat(format) {\n return has$2(format, 'selector');\n };\n\n var mapFormats = function mapFormats(userFormats) {\n return foldl(userFormats, function (acc, fmt) {\n if (isNestedFormat(fmt)) {\n var result = mapFormats(fmt.items);\n return {\n customFormats: acc.customFormats.concat(result.customFormats),\n formats: acc.formats.concat([{\n title: fmt.title,\n items: result.formats\n }])\n };\n } else if (isInlineFormat(fmt) || isBlockFormat(fmt) || isSelectorFormat(fmt)) {\n var formatName = isString(fmt.name) ? fmt.name : fmt.title.toLowerCase();\n var formatNameWithPrefix = 'custom-' + formatName;\n return {\n customFormats: acc.customFormats.concat([{\n name: formatNameWithPrefix,\n format: fmt\n }]),\n formats: acc.formats.concat([{\n title: fmt.title,\n format: formatNameWithPrefix,\n icon: fmt.icon\n }])\n };\n } else {\n return _assign(_assign({}, acc), {\n formats: acc.formats.concat(fmt)\n });\n }\n }, {\n customFormats: [],\n formats: []\n });\n };\n\n var registerCustomFormats = function registerCustomFormats(editor, userFormats) {\n var result = mapFormats(userFormats);\n\n var registerFormats = function registerFormats(customFormats) {\n each$1(customFormats, function (fmt) {\n if (!editor.formatter.has(fmt.name)) {\n editor.formatter.register(fmt.name, fmt.format);\n }\n });\n };\n\n if (editor.formatter) {\n registerFormats(result.customFormats);\n } else {\n editor.on('init', function () {\n registerFormats(result.customFormats);\n });\n }\n\n return result.formats;\n };\n\n var getStyleFormats = function getStyleFormats(editor) {\n return getUserStyleFormats(editor).map(function (userFormats) {\n var registeredUserFormats = registerCustomFormats(editor, userFormats);\n return isMergeStyleFormats(editor) ? defaultStyleFormats.concat(registeredUserFormats) : registeredUserFormats;\n }).getOr(defaultStyleFormats);\n };\n\n var processBasic = function processBasic(item, isSelectedFor, getPreviewFor) {\n var formatterSpec = {\n type: 'formatter',\n isSelected: isSelectedFor(item.format),\n getStylePreview: getPreviewFor(item.format)\n };\n return deepMerge(item, formatterSpec);\n };\n\n var register$8 = function register$8(editor, formats, isSelectedFor, getPreviewFor) {\n var enrichSupported = function enrichSupported(item) {\n return processBasic(item, isSelectedFor, getPreviewFor);\n };\n\n var enrichMenu = function enrichMenu(item) {\n var submenuSpec = {\n type: 'submenu'\n };\n return deepMerge(item, submenuSpec);\n };\n\n var enrichCustom = function enrichCustom(item) {\n var formatName = isString(item.name) ? item.name : generate$6(item.title);\n var formatNameWithPrefix = 'custom-' + formatName;\n var customSpec = {\n type: 'formatter',\n format: formatNameWithPrefix,\n isSelected: isSelectedFor(formatNameWithPrefix),\n getStylePreview: getPreviewFor(formatNameWithPrefix)\n };\n var newItem = deepMerge(item, customSpec);\n editor.formatter.register(formatName, newItem);\n return newItem;\n };\n\n var doEnrich = function doEnrich(items) {\n return map$2(items, function (item) {\n var keys$1 = keys(item);\n\n if (hasNonNullableKey(item, 'items')) {\n var newItems = doEnrich(item.items);\n return deepMerge(enrichMenu(item), {\n getStyleItems: constant$1(newItems)\n });\n } else if (hasNonNullableKey(item, 'format')) {\n return enrichSupported(item);\n } else if (keys$1.length === 1 && contains$2(keys$1, 'title')) {\n return deepMerge(item, {\n type: 'separator'\n });\n } else {\n return enrichCustom(item);\n }\n });\n };\n\n return doEnrich(formats);\n };\n\n var init$8 = function init$8(editor) {\n var isSelectedFor = function isSelectedFor(format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n\n var getPreviewFor = function getPreviewFor(format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n };\n\n var flatten = function flatten(fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind$3(subs, flatten) : [fmt.format];\n };\n\n var settingsFormats = Cell([]);\n var settingsFlattenedFormats = Cell([]);\n var eventsFormats = Cell([]);\n var eventsFlattenedFormats = Cell([]);\n var replaceSettings = Cell(false);\n editor.on('PreInit', function (_e) {\n var formats = getStyleFormats(editor);\n var enriched = register$8(editor, formats, isSelectedFor, getPreviewFor);\n settingsFormats.set(enriched);\n settingsFlattenedFormats.set(bind$3(enriched, flatten));\n });\n editor.on('addStyleModifications', function (e) {\n var modifications = register$8(editor, e.items, isSelectedFor, getPreviewFor);\n eventsFormats.set(modifications);\n replaceSettings.set(e.replace);\n eventsFlattenedFormats.set(bind$3(modifications, flatten));\n });\n\n var getData = function getData() {\n var fromSettings = replaceSettings.get() ? [] : settingsFormats.get();\n var fromEvents = eventsFormats.get();\n return fromSettings.concat(fromEvents);\n };\n\n var getFlattenedKeys = function getFlattenedKeys() {\n var fromSettings = replaceSettings.get() ? [] : settingsFlattenedFormats.get();\n var fromEvents = eventsFlattenedFormats.get();\n return fromSettings.concat(fromEvents);\n };\n\n return {\n getData: getData,\n getFlattenedKeys: getFlattenedKeys\n };\n };\n\n var isElement = function isElement(node) {\n return isNonNullable(node) && node.nodeType === 1;\n };\n\n var trim = global$5.trim;\n\n var hasContentEditableState = function hasContentEditableState(value) {\n return function (node) {\n if (isElement(node)) {\n if (node.contentEditable === value) {\n return true;\n }\n\n if (node.getAttribute('data-mce-contenteditable') === value) {\n return true;\n }\n }\n\n return false;\n };\n };\n\n var isContentEditableTrue = hasContentEditableState('true');\n var isContentEditableFalse = hasContentEditableState('false');\n\n var create = function create(type, title, url, level, attach) {\n return {\n type: type,\n title: title,\n url: url,\n level: level,\n attach: attach\n };\n };\n\n var isChildOfContentEditableTrue = function isChildOfContentEditableTrue(node) {\n while (node = node.parentNode) {\n var value = node.contentEditable;\n\n if (value && value !== 'inherit') {\n return isContentEditableTrue(node);\n }\n }\n\n return false;\n };\n\n var select = function select(selector, root) {\n return map$2(descendants(SugarElement.fromDom(root), selector), function (element) {\n return element.dom;\n });\n };\n\n var getElementText = function getElementText(elm) {\n return elm.innerText || elm.textContent;\n };\n\n var getOrGenerateId = function getOrGenerateId(elm) {\n return elm.id ? elm.id : generate$6('h');\n };\n\n var isAnchor = function isAnchor(elm) {\n return elm && elm.nodeName === 'A' && (elm.id || elm.name) !== undefined;\n };\n\n var isValidAnchor = function isValidAnchor(elm) {\n return isAnchor(elm) && isEditable(elm);\n };\n\n var isHeader = function isHeader(elm) {\n return elm && /^(H[1-6])$/.test(elm.nodeName);\n };\n\n var isEditable = function isEditable(elm) {\n return isChildOfContentEditableTrue(elm) && !isContentEditableFalse(elm);\n };\n\n var isValidHeader = function isValidHeader(elm) {\n return isHeader(elm) && isEditable(elm);\n };\n\n var getLevel = function getLevel(elm) {\n return isHeader(elm) ? parseInt(elm.nodeName.substr(1), 10) : 0;\n };\n\n var headerTarget = function headerTarget(elm) {\n var headerId = getOrGenerateId(elm);\n\n var attach = function attach() {\n elm.id = headerId;\n };\n\n return create('header', getElementText(elm), '#' + headerId, getLevel(elm), attach);\n };\n\n var anchorTarget = function anchorTarget(elm) {\n var anchorId = elm.id || elm.name;\n var anchorText = getElementText(elm);\n return create('anchor', anchorText ? anchorText : '#' + anchorId, '#' + anchorId, 0, noop);\n };\n\n var getHeaderTargets = function getHeaderTargets(elms) {\n return map$2(filter$2(elms, isValidHeader), headerTarget);\n };\n\n var getAnchorTargets = function getAnchorTargets(elms) {\n return map$2(filter$2(elms, isValidAnchor), anchorTarget);\n };\n\n var getTargetElements = function getTargetElements(elm) {\n var elms = select('h1,h2,h3,h4,h5,h6,a:not([href])', elm);\n return elms;\n };\n\n var hasTitle = function hasTitle(target) {\n return trim(target.title).length > 0;\n };\n\n var find = function find(elm) {\n var elms = getTargetElements(elm);\n return filter$2(getHeaderTargets(elms).concat(getAnchorTargets(elms)), hasTitle);\n };\n\n var LinkTargets = {\n find: find\n };\n var STORAGE_KEY = 'tinymce-url-history';\n var HISTORY_LENGTH = 5;\n\n var isHttpUrl = function isHttpUrl(url) {\n return isString(url) && /^https?/.test(url);\n };\n\n var isArrayOfUrl = function isArrayOfUrl(a) {\n return isArray(a) && a.length <= HISTORY_LENGTH && forall(a, isHttpUrl);\n };\n\n var isRecordOfUrlArray = function isRecordOfUrlArray(r) {\n return isObject(r) && find$4(r, function (value) {\n return !isArrayOfUrl(value);\n }).isNone();\n };\n\n var getAllHistory = function getAllHistory() {\n var unparsedHistory = global$8.getItem(STORAGE_KEY);\n\n if (unparsedHistory === null) {\n return {};\n }\n\n var history;\n\n try {\n history = JSON.parse(unparsedHistory);\n } catch (e) {\n if (e instanceof SyntaxError) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid JSON', e);\n return {};\n }\n\n throw e;\n }\n\n if (!isRecordOfUrlArray(history)) {\n console.log('Local storage ' + STORAGE_KEY + ' was not valid format', history);\n return {};\n }\n\n return history;\n };\n\n var setAllHistory = function setAllHistory(history) {\n if (!isRecordOfUrlArray(history)) {\n throw new Error('Bad format for history:\\n' + JSON.stringify(history));\n }\n\n global$8.setItem(STORAGE_KEY, JSON.stringify(history));\n };\n\n var getHistory = function getHistory(fileType) {\n var history = getAllHistory();\n return get$e(history, fileType).getOr([]);\n };\n\n var addToHistory = function addToHistory(url, fileType) {\n if (!isHttpUrl(url)) {\n return;\n }\n\n var history = getAllHistory();\n var items = get$e(history, fileType).getOr([]);\n var itemsWithoutUrl = filter$2(items, function (item) {\n return item !== url;\n });\n history[fileType] = [url].concat(itemsWithoutUrl).slice(0, HISTORY_LENGTH);\n setAllHistory(history);\n };\n\n var isTruthy = function isTruthy(value) {\n return !!value;\n };\n\n var makeMap = function makeMap(value) {\n return map$1(global$5.makeMap(value, /[, ]/), isTruthy);\n };\n\n var getPicker = function getPicker(editor) {\n return Optional.from(getFilePickerCallback(editor)).filter(isFunction);\n };\n\n var getPickerTypes = function getPickerTypes(editor) {\n var optFileTypes = Optional.some(getFilePickerTypes(editor)).filter(isTruthy);\n var optLegacyTypes = Optional.some(getFileBrowserCallbackTypes(editor)).filter(isTruthy);\n var optTypes = optFileTypes.or(optLegacyTypes).map(makeMap);\n return getPicker(editor).fold(never, function (_picker) {\n return optTypes.fold(always, function (types) {\n return keys(types).length > 0 ? types : false;\n });\n });\n };\n\n var getPickerSetting = function getPickerSetting(editor, filetype) {\n var pickerTypes = getPickerTypes(editor);\n\n if (isBoolean(pickerTypes)) {\n return pickerTypes ? getPicker(editor) : Optional.none();\n } else {\n return pickerTypes[filetype] ? getPicker(editor) : Optional.none();\n }\n };\n\n var _getUrlPicker = function getUrlPicker(editor, filetype) {\n return getPickerSetting(editor, filetype).map(function (picker) {\n return function (entry) {\n return Future.nu(function (completer) {\n var handler = function handler(value, meta) {\n if (!isString(value)) {\n throw new Error('Expected value to be string');\n }\n\n if (meta !== undefined && !isObject(meta)) {\n throw new Error('Expected meta to be a object');\n }\n\n var r = {\n value: value,\n meta: meta\n };\n completer(r);\n };\n\n var meta = _assign({\n filetype: filetype,\n fieldname: entry.fieldname\n }, Optional.from(entry.meta).getOr({}));\n\n picker.call(editor, handler, entry.value, meta);\n });\n };\n });\n };\n\n var getTextSetting = function getTextSetting(value) {\n return Optional.from(value).filter(isString).getOrUndefined();\n };\n\n var _getLinkInformation = function getLinkInformation(editor) {\n if (noTypeaheadUrls(editor)) {\n return Optional.none();\n }\n\n return Optional.some({\n targets: LinkTargets.find(editor.getBody()),\n anchorTop: getTextSetting(getAnchorTop(editor)),\n anchorBottom: getTextSetting(getAnchorBottom(editor))\n });\n };\n\n var _getValidationHandler = function getValidationHandler(editor) {\n return Optional.from(getFilePickerValidatorHandler(editor));\n };\n\n var UrlInputBackstage = function UrlInputBackstage(editor) {\n return {\n getHistory: getHistory,\n addToHistory: addToHistory,\n getLinkInformation: function getLinkInformation() {\n return _getLinkInformation(editor);\n },\n getValidationHandler: function getValidationHandler() {\n return _getValidationHandler(editor);\n },\n getUrlPicker: function getUrlPicker(filetype) {\n return _getUrlPicker(editor, filetype);\n }\n };\n };\n\n var init$7 = function init$7(sink, editor, lazyAnchorbar) {\n var contextMenuState = Cell(false);\n var toolbar = HeaderBackstage(editor);\n var backstage = {\n shared: {\n providers: {\n icons: function icons() {\n return editor.ui.registry.getAll().icons;\n },\n menuItems: function menuItems() {\n return editor.ui.registry.getAll().menuItems;\n },\n translate: global$e.translate,\n isDisabled: function isDisabled() {\n return editor.mode.isReadOnly() || editor.ui.isDisabled();\n },\n getSetting: editor.getParam.bind(editor)\n },\n interpreter: function interpreter(s) {\n return interpretWithoutForm(s, backstage);\n },\n anchors: getAnchors(editor, lazyAnchorbar, toolbar.isPositionedAtTop),\n header: toolbar,\n getSink: function getSink() {\n return Result.value(sink);\n }\n },\n urlinput: UrlInputBackstage(editor),\n styleselect: init$8(editor),\n colorinput: ColorInputBackstage(editor),\n dialog: DialogBackstage(editor),\n isContextMenuOpen: function isContextMenuOpen() {\n return contextMenuState.get();\n },\n setContextMenuState: function setContextMenuState(state) {\n return contextMenuState.set(state);\n }\n };\n return backstage;\n };\n\n var setup$b = function setup$b(editor, mothership, uiMothership) {\n var broadcastEvent = function broadcastEvent(name, evt) {\n each$1([mothership, uiMothership], function (ship) {\n ship.broadcastEvent(name, evt);\n });\n };\n\n var broadcastOn = function broadcastOn(channel, message) {\n each$1([mothership, uiMothership], function (ship) {\n ship.broadcastOn([channel], message);\n });\n };\n\n var fireDismissPopups = function fireDismissPopups(evt) {\n return broadcastOn(dismissPopups(), {\n target: evt.target\n });\n };\n\n var doc = getDocument();\n var onTouchstart = bind(doc, 'touchstart', fireDismissPopups);\n var onTouchmove = bind(doc, 'touchmove', function (evt) {\n return broadcastEvent(documentTouchmove(), evt);\n });\n var onTouchend = bind(doc, 'touchend', function (evt) {\n return broadcastEvent(documentTouchend(), evt);\n });\n var onMousedown = bind(doc, 'mousedown', fireDismissPopups);\n var onMouseup = bind(doc, 'mouseup', function (evt) {\n if (evt.raw.button === 0) {\n broadcastOn(mouseReleased(), {\n target: evt.target\n });\n }\n });\n\n var onContentClick = function onContentClick(raw) {\n return broadcastOn(dismissPopups(), {\n target: SugarElement.fromDom(raw.target)\n });\n };\n\n var onContentMouseup = function onContentMouseup(raw) {\n if (raw.button === 0) {\n broadcastOn(mouseReleased(), {\n target: SugarElement.fromDom(raw.target)\n });\n }\n };\n\n var onContentMousedown = function onContentMousedown() {\n each$1(editor.editorManager.get(), function (loopEditor) {\n if (editor !== loopEditor) {\n loopEditor.fire('DismissPopups', {\n relatedTarget: editor\n });\n }\n });\n };\n\n var onWindowScroll = function onWindowScroll(evt) {\n return broadcastEvent(windowScroll(), fromRawEvent(evt));\n };\n\n var onWindowResize = function onWindowResize(evt) {\n broadcastOn(repositionPopups(), {});\n broadcastEvent(windowResize(), fromRawEvent(evt));\n };\n\n var onEditorResize = function onEditorResize() {\n return broadcastOn(repositionPopups(), {});\n };\n\n var onEditorProgress = function onEditorProgress(evt) {\n if (evt.state) {\n broadcastOn(dismissPopups(), {\n target: SugarElement.fromDom(editor.getContainer())\n });\n }\n };\n\n var onDismissPopups = function onDismissPopups(event) {\n broadcastOn(dismissPopups(), {\n target: SugarElement.fromDom(event.relatedTarget.getContainer())\n });\n };\n\n editor.on('PostRender', function () {\n editor.on('click', onContentClick);\n editor.on('tap', onContentClick);\n editor.on('mouseup', onContentMouseup);\n editor.on('mousedown', onContentMousedown);\n editor.on('ScrollWindow', onWindowScroll);\n editor.on('ResizeWindow', onWindowResize);\n editor.on('ResizeEditor', onEditorResize);\n editor.on('AfterProgressState', onEditorProgress);\n editor.on('DismissPopups', onDismissPopups);\n });\n editor.on('remove', function () {\n editor.off('click', onContentClick);\n editor.off('tap', onContentClick);\n editor.off('mouseup', onContentMouseup);\n editor.off('mousedown', onContentMousedown);\n editor.off('ScrollWindow', onWindowScroll);\n editor.off('ResizeWindow', onWindowResize);\n editor.off('ResizeEditor', onEditorResize);\n editor.off('AfterProgressState', onEditorProgress);\n editor.off('DismissPopups', onDismissPopups);\n onMousedown.unbind();\n onTouchstart.unbind();\n onTouchmove.unbind();\n onTouchend.unbind();\n onMouseup.unbind();\n });\n editor.on('detach', function () {\n detachSystem(mothership);\n detachSystem(uiMothership);\n mothership.destroy();\n uiMothership.destroy();\n });\n };\n\n var parts$a = AlloyParts;\n var partType = PartType;\n var schema$f = constant$1([defaulted('shell', false), required$1('makeItem'), defaulted('setupItem', noop), SketchBehaviours.field('listBehaviours', [Replacing])]);\n\n var customListDetail = function customListDetail() {\n return {\n behaviours: derive$1([Replacing.config({})])\n };\n };\n\n var itemsPart = optional({\n name: 'items',\n overrides: customListDetail\n });\n var parts$9 = constant$1([itemsPart]);\n var name = constant$1('CustomList');\n\n var factory$d = function factory$d(detail, components, _spec, _external) {\n var setItems = function setItems(list, items) {\n getListContainer(list).fold(function () {\n console.error('Custom List was defined to not be a shell, but no item container was specified in components');\n throw new Error('Custom List was defined to not be a shell, but no item container was specified in components');\n }, function (container) {\n var itemComps = Replacing.contents(container);\n var numListsRequired = items.length;\n var numListsToAdd = numListsRequired - itemComps.length;\n var itemsToAdd = numListsToAdd > 0 ? range$2(numListsToAdd, function () {\n return detail.makeItem();\n }) : [];\n var itemsToRemove = itemComps.slice(numListsRequired);\n each$1(itemsToRemove, function (item) {\n return Replacing.remove(container, item);\n });\n each$1(itemsToAdd, function (item) {\n return Replacing.append(container, item);\n });\n var builtLists = Replacing.contents(container);\n each$1(builtLists, function (item, i) {\n detail.setupItem(list, item, items[i], i);\n });\n });\n };\n\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n\n var getListContainer = function getListContainer(component) {\n return detail.shell ? Optional.some(component) : getPart(component, detail, 'items');\n };\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.listBehaviours, extra.behaviours),\n apis: {\n setItems: setItems\n }\n };\n };\n\n var CustomList = composite({\n name: name(),\n configFields: schema$f(),\n partFields: parts$9(),\n factory: factory$d,\n apis: {\n setItems: function setItems(apis, list, items) {\n apis.setItems(list, items);\n }\n }\n });\n var schema$e = constant$1([required$1('dom'), defaulted('shell', true), field('toolbarBehaviours', [Replacing])]);\n\n var enhanceGroups = function enhanceGroups() {\n return {\n behaviours: derive$1([Replacing.config({})])\n };\n };\n\n var parts$8 = constant$1([optional({\n name: 'groups',\n overrides: enhanceGroups\n })]);\n\n var factory$c = function factory$c(detail, components, _spec, _externals) {\n var setGroups = function setGroups(toolbar, groups) {\n getGroupContainer(toolbar).fold(function () {\n console.error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n throw new Error('Toolbar was defined to not be a shell, but no groups container was specified in components');\n }, function (container) {\n Replacing.set(container, groups);\n });\n };\n\n var getGroupContainer = function getGroupContainer(component) {\n return detail.shell ? Optional.some(component) : getPart(component, detail, 'groups');\n };\n\n var extra = detail.shell ? {\n behaviours: [Replacing.config({})],\n components: []\n } : {\n behaviours: [],\n components: components\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: extra.components,\n behaviours: augment(detail.toolbarBehaviours, extra.behaviours),\n apis: {\n setGroups: setGroups\n },\n domModification: {\n attributes: {\n role: 'group'\n }\n }\n };\n };\n\n var Toolbar = composite({\n name: 'Toolbar',\n configFields: schema$e(),\n partFields: parts$8(),\n factory: factory$c,\n apis: {\n setGroups: function setGroups(apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n }\n }\n });\n var setup$a = noop;\n var isDocked$2 = never;\n var getBehaviours$1 = constant$1([]);\n var StaticHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$a,\n isDocked: isDocked$2,\n getBehaviours: getBehaviours$1\n });\n\n var getOffsetParent = function getOffsetParent(element) {\n var isFixed = is$1(getRaw(element, 'position'), 'fixed');\n var offsetParent$1 = isFixed ? Optional.none() : offsetParent(element);\n return offsetParent$1.orThunk(function () {\n var marker = SugarElement.fromTag('span');\n return parent(element).bind(function (parent) {\n append$2(parent, marker);\n var offsetParent$1 = offsetParent(marker);\n remove$5(marker);\n return offsetParent$1;\n });\n });\n };\n\n var getOrigin = function getOrigin(element) {\n return getOffsetParent(element).map(absolute$3).getOrThunk(function () {\n return SugarPosition(0, 0);\n });\n };\n\n var morphAdt = Adt.generate([{\n static: []\n }, {\n absolute: ['positionCss']\n }, {\n fixed: ['positionCss']\n }]);\n\n var appear = function appear(component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$2(elem, contextualInfo.fadeOutClass);\n add$2(elem, contextualInfo.fadeInClass);\n contextualInfo.onShow(component);\n };\n\n var disappear = function disappear(component, contextualInfo) {\n var elem = component.element;\n add$2(elem, contextualInfo.transitionClass);\n remove$2(elem, contextualInfo.fadeInClass);\n add$2(elem, contextualInfo.fadeOutClass);\n contextualInfo.onHide(component);\n };\n\n var isPartiallyVisible = function isPartiallyVisible(box, viewport) {\n return box.y < viewport.bottom && box.bottom > viewport.y;\n };\n\n var isTopCompletelyVisible = function isTopCompletelyVisible(box, viewport) {\n return box.y >= viewport.y;\n };\n\n var isBottomCompletelyVisible = function isBottomCompletelyVisible(box, viewport) {\n return box.bottom <= viewport.bottom;\n };\n\n var isVisibleForModes = function isVisibleForModes(modes, box, viewport) {\n return forall(modes, function (mode) {\n switch (mode) {\n case 'bottom':\n return isBottomCompletelyVisible(box, viewport);\n\n case 'top':\n return isTopCompletelyVisible(box, viewport);\n }\n });\n };\n\n var getPrior = function getPrior(elem, state) {\n return state.getInitialPos().map(function (pos) {\n return bounds(pos.bounds.x, pos.bounds.y, get$a(elem), get$b(elem));\n });\n };\n\n var storePrior = function storePrior(elem, box, state) {\n state.setInitialPos({\n style: getAllRaw(elem),\n position: get$c(elem, 'position') || 'static',\n bounds: box\n });\n };\n\n var revertToOriginal = function revertToOriginal(elem, box, state) {\n return state.getInitialPos().bind(function (position) {\n state.clearInitialPos();\n\n switch (position.position) {\n case 'static':\n return Optional.some(morphAdt.static());\n\n case 'absolute':\n var offsetBox_1 = getOffsetParent(elem).map(box$1).getOrThunk(function () {\n return box$1(body());\n });\n return Optional.some(morphAdt.absolute(NuPositionCss('absolute', get$e(position.style, 'left').map(function (_left) {\n return box.x - offsetBox_1.x;\n }), get$e(position.style, 'top').map(function (_top) {\n return box.y - offsetBox_1.y;\n }), get$e(position.style, 'right').map(function (_right) {\n return offsetBox_1.right - box.right;\n }), get$e(position.style, 'bottom').map(function (_bottom) {\n return offsetBox_1.bottom - box.bottom;\n }))));\n\n default:\n return Optional.none();\n }\n });\n };\n\n var morphToOriginal = function morphToOriginal(elem, viewport, state) {\n return getPrior(elem, state).filter(function (box) {\n return isVisibleForModes(state.getModes(), box, viewport);\n }).bind(function (box) {\n return revertToOriginal(elem, box, state);\n });\n };\n\n var morphToFixed = function morphToFixed(elem, viewport, state) {\n var box = box$1(elem);\n\n if (!isVisibleForModes(state.getModes(), box, viewport)) {\n storePrior(elem, box, state);\n var winBox = win();\n var left = box.x - winBox.x;\n var top_1 = viewport.y - winBox.y;\n var bottom = winBox.bottom - viewport.bottom;\n var isTop = box.y <= viewport.y;\n return Optional.some(morphAdt.fixed(NuPositionCss('fixed', Optional.some(left), isTop ? Optional.some(top_1) : Optional.none(), Optional.none(), !isTop ? Optional.some(bottom) : Optional.none())));\n } else {\n return Optional.none();\n }\n };\n\n var getMorph = function getMorph(component, viewport, state) {\n var elem = component.element;\n var isDocked = is$1(getRaw(elem, 'position'), 'fixed');\n return isDocked ? morphToOriginal(elem, viewport, state) : morphToFixed(elem, viewport, state);\n };\n\n var getMorphToOriginal = function getMorphToOriginal(component, state) {\n var elem = component.element;\n return getPrior(elem, state).bind(function (box) {\n return revertToOriginal(elem, box, state);\n });\n };\n\n var morphToStatic = function morphToStatic(component, config, state) {\n state.setDocked(false);\n each$1(['left', 'right', 'top', 'bottom', 'position'], function (prop) {\n return remove$6(component.element, prop);\n });\n config.onUndocked(component);\n };\n\n var morphToCoord = function morphToCoord(component, config, state, position) {\n var isDocked = position.position === 'fixed';\n state.setDocked(isDocked);\n applyPositionCss(component.element, position);\n var method = isDocked ? config.onDocked : config.onUndocked;\n method(component);\n };\n\n var updateVisibility = function updateVisibility(component, config, state, viewport, morphToDocked) {\n if (morphToDocked === void 0) {\n morphToDocked = false;\n }\n\n config.contextual.each(function (contextInfo) {\n contextInfo.lazyContext(component).each(function (box) {\n var isVisible = isPartiallyVisible(box, viewport);\n\n if (isVisible !== state.isVisible()) {\n state.setVisible(isVisible);\n\n if (morphToDocked && !isVisible) {\n add$1(component.element, [contextInfo.fadeOutClass]);\n contextInfo.onHide(component);\n } else {\n var method = isVisible ? appear : disappear;\n method(component, contextInfo);\n }\n }\n });\n });\n };\n\n var refreshInternal = function refreshInternal(component, config, state) {\n var viewport = config.lazyViewport(component);\n var isDocked = state.isDocked();\n\n if (isDocked) {\n updateVisibility(component, config, state, viewport);\n }\n\n getMorph(component, viewport, state).each(function (morph) {\n morph.fold(function () {\n return morphToStatic(component, config, state);\n }, function (position) {\n return morphToCoord(component, config, state, position);\n }, function (position) {\n updateVisibility(component, config, state, viewport, true);\n morphToCoord(component, config, state, position);\n });\n });\n };\n\n var resetInternal = function resetInternal(component, config, state) {\n var elem = component.element;\n state.setDocked(false);\n getMorphToOriginal(component, state).each(function (morph) {\n morph.fold(function () {\n return morphToStatic(component, config, state);\n }, function (position) {\n return morphToCoord(component, config, state, position);\n }, noop);\n });\n state.setVisible(true);\n config.contextual.each(function (contextInfo) {\n remove$1(elem, [contextInfo.fadeInClass, contextInfo.fadeOutClass, contextInfo.transitionClass]);\n contextInfo.onShow(component);\n });\n refresh$4(component, config, state);\n };\n\n var refresh$4 = function refresh$4(component, config, state) {\n if (component.getSystem().isConnected()) {\n refreshInternal(component, config, state);\n }\n };\n\n var reset = function reset(component, config, state) {\n if (state.isDocked()) {\n resetInternal(component, config, state);\n }\n };\n\n var isDocked$1 = function isDocked$1(component, config, state) {\n return state.isDocked();\n };\n\n var setModes = function setModes(component, config, state, modes) {\n return state.setModes(modes);\n };\n\n var getModes = function getModes(component, config, state) {\n return state.getModes();\n };\n\n var DockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$4,\n reset: reset,\n isDocked: isDocked$1,\n getModes: getModes,\n setModes: setModes\n });\n\n var events$5 = function events$5(dockInfo, dockState) {\n return derive$2([runOnSource(transitionend(), function (component, simulatedEvent) {\n dockInfo.contextual.each(function (contextInfo) {\n if (has(component.element, contextInfo.transitionClass)) {\n remove$1(component.element, [contextInfo.transitionClass, contextInfo.fadeInClass]);\n var notify = dockState.isVisible() ? contextInfo.onShown : contextInfo.onHidden;\n notify(component);\n }\n\n simulatedEvent.stop();\n });\n }), run$1(windowScroll(), function (component, _) {\n refresh$4(component, dockInfo, dockState);\n }), run$1(windowResize(), function (component, _) {\n reset(component, dockInfo, dockState);\n })]);\n };\n\n var ActiveDocking = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$5\n });\n var DockingSchema = [optionObjOf('contextual', [requiredString('fadeInClass'), requiredString('fadeOutClass'), requiredString('transitionClass'), requiredFunction('lazyContext'), onHandler('onShow'), onHandler('onShown'), onHandler('onHide'), onHandler('onHidden')]), defaultedFunction('lazyViewport', win), defaultedArrayOf('modes', ['top', 'bottom'], string), onHandler('onDocked'), onHandler('onUndocked')];\n\n var init$6 = function init$6(spec) {\n var docked = Cell(false);\n var visible = Cell(true);\n var initialBounds = value$1();\n var modes = Cell(spec.modes);\n\n var readState = function readState() {\n return 'docked: ' + docked.get() + ', visible: ' + visible.get() + ', modes: ' + modes.get().join(',');\n };\n\n return nu$8({\n isDocked: docked.get,\n setDocked: docked.set,\n getInitialPos: initialBounds.get,\n setInitialPos: initialBounds.set,\n clearInitialPos: initialBounds.clear,\n isVisible: visible.get,\n setVisible: visible.set,\n getModes: modes.get,\n setModes: modes.set,\n readState: readState\n });\n };\n\n var DockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$6\n });\n var Docking = create$7({\n fields: DockingSchema,\n name: 'docking',\n active: ActiveDocking,\n apis: DockingApis,\n state: DockingState\n });\n var toolbarHeightChange = constant$1(generate$6('toolbar-height-change'));\n var visibility = {\n fadeInClass: 'tox-editor-dock-fadein',\n fadeOutClass: 'tox-editor-dock-fadeout',\n transitionClass: 'tox-editor-dock-transition'\n };\n var editorStickyOnClass = 'tox-tinymce--toolbar-sticky-on';\n var editorStickyOffClass = 'tox-tinymce--toolbar-sticky-off';\n\n var scrollFromBehindHeader = function scrollFromBehindHeader(e, containerHeader) {\n var doc = owner$4(containerHeader);\n var viewHeight = doc.dom.defaultView.innerHeight;\n var scrollPos = get$9(doc);\n var markerElement = SugarElement.fromDom(e.elm);\n var markerPos = absolute$2(markerElement);\n var markerHeight = get$b(markerElement);\n var markerTop = markerPos.y;\n var markerBottom = markerTop + markerHeight;\n var editorHeaderPos = absolute$3(containerHeader);\n var editorHeaderHeight = get$b(containerHeader);\n var editorHeaderTop = editorHeaderPos.top;\n var editorHeaderBottom = editorHeaderTop + editorHeaderHeight;\n var editorHeaderDockedAtTop = Math.abs(editorHeaderTop - scrollPos.top) < 2;\n var editorHeaderDockedAtBottom = Math.abs(editorHeaderBottom - (scrollPos.top + viewHeight)) < 2;\n\n if (editorHeaderDockedAtTop && markerTop < editorHeaderBottom) {\n to(scrollPos.left, markerTop - editorHeaderHeight, doc);\n } else if (editorHeaderDockedAtBottom && markerBottom > editorHeaderTop) {\n var y = markerTop - viewHeight + markerHeight + editorHeaderHeight;\n to(scrollPos.left, y, doc);\n }\n };\n\n var isDockedMode = function isDockedMode(header, mode) {\n return contains$2(Docking.getModes(header), mode);\n };\n\n var updateIframeContentFlow = function updateIframeContentFlow(header) {\n var getOccupiedHeight = function getOccupiedHeight(elm) {\n return getOuter$2(elm) + (parseInt(get$c(elm, 'margin-top'), 10) || 0) + (parseInt(get$c(elm, 'margin-bottom'), 10) || 0);\n };\n\n var elm = header.element;\n parent(elm).each(function (parentElem) {\n var padding = 'padding-' + Docking.getModes(header)[0];\n\n if (Docking.isDocked(header)) {\n var parentWidth = get$a(parentElem);\n set$7(elm, 'width', parentWidth + 'px');\n set$7(parentElem, padding, getOccupiedHeight(elm) + 'px');\n } else {\n remove$6(elm, 'width');\n remove$6(parentElem, padding);\n }\n });\n };\n\n var updateSinkVisibility = function updateSinkVisibility(sinkElem, visible) {\n if (visible) {\n remove$2(sinkElem, visibility.fadeOutClass);\n add$1(sinkElem, [visibility.transitionClass, visibility.fadeInClass]);\n } else {\n remove$2(sinkElem, visibility.fadeInClass);\n add$1(sinkElem, [visibility.fadeOutClass, visibility.transitionClass]);\n }\n };\n\n var updateEditorClasses = function updateEditorClasses(editor, docked) {\n var editorContainer = SugarElement.fromDom(editor.getContainer());\n\n if (docked) {\n add$2(editorContainer, editorStickyOnClass);\n remove$2(editorContainer, editorStickyOffClass);\n } else {\n add$2(editorContainer, editorStickyOffClass);\n remove$2(editorContainer, editorStickyOnClass);\n }\n };\n\n var restoreFocus = function restoreFocus(headerElem, focusedElem) {\n var ownerDoc = owner$4(focusedElem);\n active(ownerDoc).filter(function (activeElm) {\n return !eq(focusedElem, activeElm);\n }).filter(function (activeElm) {\n return eq(activeElm, SugarElement.fromDom(ownerDoc.dom.body)) || contains(headerElem, activeElm);\n }).each(function () {\n return focus$3(focusedElem);\n });\n };\n\n var findFocusedElem = function findFocusedElem(rootElm, lazySink) {\n return search(rootElm).orThunk(function () {\n return lazySink().toOptional().bind(function (sink) {\n return search(sink.element);\n });\n });\n };\n\n var setup$9 = function setup$9(editor, sharedBackstage, lazyHeader) {\n if (!editor.inline) {\n if (!sharedBackstage.header.isPositionedAtTop()) {\n editor.on('ResizeEditor', function () {\n lazyHeader().each(Docking.reset);\n });\n }\n\n editor.on('ResizeWindow ResizeEditor', function () {\n lazyHeader().each(updateIframeContentFlow);\n });\n editor.on('SkinLoaded', function () {\n lazyHeader().each(function (comp) {\n Docking.isDocked(comp) ? Docking.reset(comp) : Docking.refresh(comp);\n });\n });\n editor.on('FullscreenStateChanged', function () {\n lazyHeader().each(Docking.reset);\n });\n }\n\n editor.on('AfterScrollIntoView', function (e) {\n lazyHeader().each(function (header) {\n Docking.refresh(header);\n var headerElem = header.element;\n\n if (isVisible(headerElem)) {\n scrollFromBehindHeader(e, headerElem);\n }\n });\n });\n editor.on('PostRender', function () {\n updateEditorClasses(editor, false);\n });\n };\n\n var isDocked = function isDocked(lazyHeader) {\n return lazyHeader().map(Docking.isDocked).getOr(false);\n };\n\n var getIframeBehaviours = function getIframeBehaviours() {\n var _a;\n\n return [Receiving.config({\n channels: (_a = {}, _a[toolbarHeightChange()] = {\n onReceive: updateIframeContentFlow\n }, _a)\n })];\n };\n\n var getBehaviours = function getBehaviours(editor, sharedBackstage) {\n var focusedElm = value$1();\n var lazySink = sharedBackstage.getSink;\n\n var runOnSinkElement = function runOnSinkElement(f) {\n lazySink().each(function (sink) {\n return f(sink.element);\n });\n };\n\n var onDockingSwitch = function onDockingSwitch(comp) {\n if (!editor.inline) {\n updateIframeContentFlow(comp);\n }\n\n updateEditorClasses(editor, Docking.isDocked(comp));\n comp.getSystem().broadcastOn([repositionPopups()], {});\n lazySink().each(function (sink) {\n return sink.getSystem().broadcastOn([repositionPopups()], {});\n });\n };\n\n var additionalBehaviours = editor.inline ? [] : getIframeBehaviours();\n return __spreadArray([Focusing.config({}), Docking.config({\n contextual: _assign({\n lazyContext: function lazyContext(comp) {\n var headerHeight = getOuter$2(comp.element);\n var container = editor.inline ? editor.getContentAreaContainer() : editor.getContainer();\n var box = box$1(SugarElement.fromDom(container));\n var boxHeight = box.height - headerHeight;\n var topBound = box.y + (isDockedMode(comp, 'top') ? 0 : headerHeight);\n return Optional.some(bounds(box.x, topBound, box.width, boxHeight));\n },\n onShow: function onShow() {\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, true);\n });\n },\n onShown: function onShown(comp) {\n runOnSinkElement(function (elem) {\n return remove$1(elem, [visibility.transitionClass, visibility.fadeInClass]);\n });\n focusedElm.get().each(function (elem) {\n restoreFocus(comp.element, elem);\n focusedElm.clear();\n });\n },\n onHide: function onHide(comp) {\n findFocusedElem(comp.element, lazySink).fold(focusedElm.clear, focusedElm.set);\n runOnSinkElement(function (elem) {\n return updateSinkVisibility(elem, false);\n });\n },\n onHidden: function onHidden() {\n runOnSinkElement(function (elem) {\n return remove$1(elem, [visibility.transitionClass]);\n });\n }\n }, visibility),\n lazyViewport: function lazyViewport(comp) {\n var win$1 = win();\n var offset = getStickyToolbarOffset(editor);\n var top = win$1.y + (isDockedMode(comp, 'top') ? offset : 0);\n var height = win$1.height - (isDockedMode(comp, 'bottom') ? offset : 0);\n return bounds(win$1.x, top, win$1.width, height);\n },\n modes: [sharedBackstage.header.getDockingMode()],\n onDocked: onDockingSwitch,\n onUndocked: onDockingSwitch\n })], additionalBehaviours, true);\n };\n\n var StickyHeader = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setup: setup$9,\n isDocked: isDocked,\n getBehaviours: getBehaviours\n });\n\n var renderHeader = function renderHeader(spec) {\n var editor = spec.editor;\n var getBehaviours$2 = spec.sticky ? getBehaviours : getBehaviours$1;\n return {\n uid: spec.uid,\n dom: spec.dom,\n components: spec.components,\n behaviours: derive$1(getBehaviours$2(editor, spec.sharedBackstage))\n };\n };\n\n var groupToolbarButtonSchema = objOf([requiredString('type'), requiredOf('items', oneOf([arrOfObj([requiredString('name'), requiredArrayOf('items', string)]), string]))].concat(baseToolbarButtonFields));\n\n var createGroupToolbarButton = function createGroupToolbarButton(spec) {\n return asRaw('GroupToolbarButton', groupToolbarButtonSchema, spec);\n };\n\n var baseMenuButtonFields = [optionString('text'), optionString('tooltip'), optionString('icon'), requiredFunction('fetch'), defaultedFunction('onSetup', function () {\n return noop;\n })];\n var MenuButtonSchema = objOf(__spreadArray([requiredString('type')], baseMenuButtonFields, true));\n\n var createMenuButton = function createMenuButton(spec) {\n return asRaw('menubutton', MenuButtonSchema, spec);\n };\n\n var splitButtonSchema = objOf([requiredString('type'), optionString('tooltip'), optionString('icon'), optionString('text'), optionFunction('select'), requiredFunction('fetch'), defaultedFunction('onSetup', function () {\n return noop;\n }), defaultedStringEnum('presets', 'normal', ['normal', 'color', 'listpreview']), defaulted('columns', 1), requiredFunction('onAction'), requiredFunction('onItemAction')]);\n\n var createSplitButton = function createSplitButton(spec) {\n return asRaw('SplitButton', splitButtonSchema, spec);\n };\n\n var factory$b = function factory$b(detail, spec) {\n var setMenus = function setMenus(comp, menus) {\n var newMenus = map$2(menus, function (m) {\n var buttonSpec = {\n type: 'menubutton',\n text: m.text,\n fetch: function fetch(callback) {\n callback(m.getItems());\n }\n };\n var internal = createMenuButton(buttonSpec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return renderMenuButton(internal, 'tox-mbtn', spec.backstage, Optional.some('menuitem'));\n });\n Replacing.set(comp, newMenus);\n };\n\n var apis = {\n focus: Keying.focusIn,\n setMenus: setMenus\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: [],\n behaviours: derive$1([Replacing.config({}), config('menubar-events', [runOnAttached(function (component) {\n detail.onSetup(component);\n }), run$1(mouseover(), function (comp, se) {\n descendant(comp.element, '.' + 'tox-mbtn--active').each(function (activeButton) {\n closest$1(se.event.target, '.' + 'tox-mbtn').each(function (hoveredButton) {\n if (!eq(activeButton, hoveredButton)) {\n comp.getSystem().getByDom(activeButton).each(function (activeComp) {\n comp.getSystem().getByDom(hoveredButton).each(function (hoveredComp) {\n Dropdown.expand(hoveredComp);\n Dropdown.close(activeComp);\n Focusing.focus(hoveredComp);\n });\n });\n }\n });\n });\n }), run$1(focusShifted(), function (comp, se) {\n se.event.prevFocus.bind(function (prev) {\n return comp.getSystem().getByDom(prev).toOptional();\n }).each(function (prev) {\n se.event.newFocus.bind(function (nu) {\n return comp.getSystem().getByDom(nu).toOptional();\n }).each(function (nu) {\n if (Dropdown.isOpen(prev)) {\n Dropdown.expand(nu);\n Dropdown.close(prev);\n }\n });\n });\n })]), Keying.config({\n mode: 'flow',\n selector: '.' + 'tox-mbtn',\n onEscape: function onEscape(comp) {\n detail.onEscape(comp);\n return Optional.some(true);\n }\n }), Tabstopping.config({})]),\n apis: apis,\n domModification: {\n attributes: {\n role: 'menubar'\n }\n }\n };\n };\n\n var SilverMenubar = single({\n factory: factory$b,\n name: 'silver.Menubar',\n configFields: [required$1('dom'), required$1('uid'), required$1('onEscape'), required$1('backstage'), defaulted('onSetup', noop)],\n apis: {\n focus: function focus(apis, comp) {\n apis.focus(comp);\n },\n setMenus: function setMenus(apis, comp, menus) {\n apis.setMenus(comp, menus);\n }\n }\n });\n\n var getAnimationRoot = function getAnimationRoot(component, slideConfig) {\n return slideConfig.getAnimationRoot.fold(function () {\n return component.element;\n }, function (get) {\n return get(component);\n });\n };\n\n var getDimensionProperty = function getDimensionProperty(slideConfig) {\n return slideConfig.dimension.property;\n };\n\n var getDimension = function getDimension(slideConfig, elem) {\n return slideConfig.dimension.getDimension(elem);\n };\n\n var disableTransitions = function disableTransitions(component, slideConfig) {\n var root = getAnimationRoot(component, slideConfig);\n remove$1(root, [slideConfig.shrinkingClass, slideConfig.growingClass]);\n };\n\n var setShrunk = function setShrunk(component, slideConfig) {\n remove$2(component.element, slideConfig.openClass);\n add$2(component.element, slideConfig.closedClass);\n set$7(component.element, getDimensionProperty(slideConfig), '0px');\n reflow(component.element);\n };\n\n var setGrown = function setGrown(component, slideConfig) {\n remove$2(component.element, slideConfig.closedClass);\n add$2(component.element, slideConfig.openClass);\n remove$6(component.element, getDimensionProperty(slideConfig));\n };\n\n var doImmediateShrink = function doImmediateShrink(component, slideConfig, slideState, _calculatedSize) {\n slideState.setCollapsed();\n set$7(component.element, getDimensionProperty(slideConfig), getDimension(slideConfig, component.element));\n reflow(component.element);\n disableTransitions(component, slideConfig);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n slideConfig.onShrunk(component);\n };\n\n var doStartShrink = function doStartShrink(component, slideConfig, slideState, calculatedSize) {\n var size = calculatedSize.getOrThunk(function () {\n return getDimension(slideConfig, component.element);\n });\n slideState.setCollapsed();\n set$7(component.element, getDimensionProperty(slideConfig), size);\n reflow(component.element);\n var root = getAnimationRoot(component, slideConfig);\n remove$2(root, slideConfig.growingClass);\n add$2(root, slideConfig.shrinkingClass);\n setShrunk(component, slideConfig);\n slideConfig.onStartShrink(component);\n };\n\n var doStartSmartShrink = function doStartSmartShrink(component, slideConfig, slideState) {\n var size = getDimension(slideConfig, component.element);\n var shrinker = size === '0px' ? doImmediateShrink : doStartShrink;\n shrinker(component, slideConfig, slideState, Optional.some(size));\n };\n\n var doStartGrow = function doStartGrow(component, slideConfig, slideState) {\n var root = getAnimationRoot(component, slideConfig);\n var wasShrinking = has(root, slideConfig.shrinkingClass);\n var beforeSize = getDimension(slideConfig, component.element);\n setGrown(component, slideConfig);\n var fullSize = getDimension(slideConfig, component.element);\n\n var startPartialGrow = function startPartialGrow() {\n set$7(component.element, getDimensionProperty(slideConfig), beforeSize);\n reflow(component.element);\n };\n\n var startCompleteGrow = function startCompleteGrow() {\n setShrunk(component, slideConfig);\n };\n\n var setStartSize = wasShrinking ? startPartialGrow : startCompleteGrow;\n setStartSize();\n remove$2(root, slideConfig.shrinkingClass);\n add$2(root, slideConfig.growingClass);\n setGrown(component, slideConfig);\n set$7(component.element, getDimensionProperty(slideConfig), fullSize);\n slideState.setExpanded();\n slideConfig.onStartGrow(component);\n };\n\n var refresh$3 = function refresh$3(component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n remove$6(component.element, getDimensionProperty(slideConfig));\n var fullSize = getDimension(slideConfig, component.element);\n set$7(component.element, getDimensionProperty(slideConfig), fullSize);\n }\n };\n\n var grow = function grow(component, slideConfig, slideState) {\n if (!slideState.isExpanded()) {\n doStartGrow(component, slideConfig, slideState);\n }\n };\n\n var shrink = function shrink(component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doStartSmartShrink(component, slideConfig, slideState);\n }\n };\n\n var immediateShrink = function immediateShrink(component, slideConfig, slideState) {\n if (slideState.isExpanded()) {\n doImmediateShrink(component, slideConfig, slideState);\n }\n };\n\n var hasGrown = function hasGrown(component, slideConfig, slideState) {\n return slideState.isExpanded();\n };\n\n var hasShrunk = function hasShrunk(component, slideConfig, slideState) {\n return slideState.isCollapsed();\n };\n\n var isGrowing = function isGrowing(component, slideConfig, _slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.growingClass) === true;\n };\n\n var isShrinking = function isShrinking(component, slideConfig, _slideState) {\n var root = getAnimationRoot(component, slideConfig);\n return has(root, slideConfig.shrinkingClass) === true;\n };\n\n var isTransitioning = function isTransitioning(component, slideConfig, slideState) {\n return isGrowing(component, slideConfig) || isShrinking(component, slideConfig);\n };\n\n var toggleGrow = function toggleGrow(component, slideConfig, slideState) {\n var f = slideState.isExpanded() ? doStartSmartShrink : doStartGrow;\n f(component, slideConfig, slideState);\n };\n\n var SlidingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n refresh: refresh$3,\n grow: grow,\n shrink: shrink,\n immediateShrink: immediateShrink,\n hasGrown: hasGrown,\n hasShrunk: hasShrunk,\n isGrowing: isGrowing,\n isShrinking: isShrinking,\n isTransitioning: isTransitioning,\n toggleGrow: toggleGrow,\n disableTransitions: disableTransitions\n });\n\n var exhibit = function exhibit(base, slideConfig, _slideState) {\n var expanded = slideConfig.expanded;\n return expanded ? nu$7({\n classes: [slideConfig.openClass],\n styles: {}\n }) : nu$7({\n classes: [slideConfig.closedClass],\n styles: wrap$1(slideConfig.dimension.property, '0px')\n });\n };\n\n var events$4 = function events$4(slideConfig, slideState) {\n return derive$2([runOnSource(transitionend(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event.raw;\n\n if (raw.propertyName === slideConfig.dimension.property) {\n disableTransitions(component, slideConfig);\n\n if (slideState.isExpanded()) {\n remove$6(component.element, slideConfig.dimension.property);\n }\n\n var notify = slideState.isExpanded() ? slideConfig.onGrown : slideConfig.onShrunk;\n notify(component);\n }\n })]);\n };\n\n var ActiveSliding = /*#__PURE__*/Object.freeze({\n __proto__: null,\n exhibit: exhibit,\n events: events$4\n });\n var SlidingSchema = [required$1('closedClass'), required$1('openClass'), required$1('shrinkingClass'), required$1('growingClass'), option('getAnimationRoot'), onHandler('onShrunk'), onHandler('onStartShrink'), onHandler('onGrown'), onHandler('onStartGrow'), defaulted('expanded', false), requiredOf('dimension', choose$1('property', {\n width: [output$1('property', 'width'), output$1('getDimension', function (elem) {\n return get$a(elem) + 'px';\n })],\n height: [output$1('property', 'height'), output$1('getDimension', function (elem) {\n return get$b(elem) + 'px';\n })]\n }))];\n\n var init$5 = function init$5(spec) {\n var state = Cell(spec.expanded);\n\n var readState = function readState() {\n return 'expanded: ' + state.get();\n };\n\n return nu$8({\n isExpanded: function isExpanded() {\n return state.get() === true;\n },\n isCollapsed: function isCollapsed() {\n return state.get() === false;\n },\n setCollapsed: curry(state.set, false),\n setExpanded: curry(state.set, true),\n readState: readState\n });\n };\n\n var SlidingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$5\n });\n var Sliding = create$7({\n fields: SlidingSchema,\n name: 'sliding',\n active: ActiveSliding,\n apis: SlidingApis,\n state: SlidingState\n });\n var owner = 'container';\n var schema$d = [field('slotBehaviours', [])];\n\n var getPartName = function getPartName(name) {\n return '';\n };\n\n var sketch = function sketch(sSpec) {\n var parts = function () {\n var record = [];\n\n var slot = function slot(name, config) {\n record.push(name);\n return generateOne$1(owner, getPartName(name), config);\n };\n\n return {\n slot: slot,\n record: constant$1(record)\n };\n }();\n\n var spec = sSpec(parts);\n var partNames = parts.record();\n var fieldParts = map$2(partNames, function (n) {\n return required({\n name: n,\n pname: getPartName(n)\n });\n });\n return composite$1(owner, schema$d, fieldParts, make$1, spec);\n };\n\n var make$1 = function make$1(detail, components) {\n var getSlotNames = function getSlotNames(_) {\n return getAllPartNames(detail);\n };\n\n var getSlot = function getSlot(container, key) {\n return getPart(container, detail, key);\n };\n\n var onSlot = function onSlot(f, def) {\n return function (container, key) {\n return getPart(container, detail, key).map(function (slot) {\n return f(slot, key);\n }).getOr(def);\n };\n };\n\n var onSlots = function onSlots(f) {\n return function (container, keys) {\n each$1(keys, function (key) {\n return f(container, key);\n });\n };\n };\n\n var doShowing = function doShowing(comp, _key) {\n return get$d(comp.element, 'aria-hidden') !== 'true';\n };\n\n var doShow = function doShow(comp, key) {\n if (!doShowing(comp)) {\n var element = comp.element;\n remove$6(element, 'display');\n remove$7(element, 'aria-hidden');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: true\n });\n }\n };\n\n var doHide = function doHide(comp, key) {\n if (doShowing(comp)) {\n var element = comp.element;\n set$7(element, 'display', 'none');\n set$8(element, 'aria-hidden', 'true');\n emitWith(comp, slotVisibility(), {\n name: key,\n visible: false\n });\n }\n };\n\n var isShowing = onSlot(doShowing, false);\n var hideSlot = onSlot(doHide);\n var hideSlots = onSlots(hideSlot);\n\n var hideAllSlots = function hideAllSlots(container) {\n return hideSlots(container, getSlotNames());\n };\n\n var showSlot = onSlot(doShow);\n var apis = {\n getSlotNames: getSlotNames,\n getSlot: getSlot,\n isShowing: isShowing,\n hideSlot: hideSlot,\n hideAllSlots: hideAllSlots,\n showSlot: showSlot\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$2(detail.slotBehaviours),\n apis: apis\n };\n };\n\n var slotApis = map$1({\n getSlotNames: function getSlotNames(apis, c) {\n return apis.getSlotNames(c);\n },\n getSlot: function getSlot(apis, c, key) {\n return apis.getSlot(c, key);\n },\n isShowing: function isShowing(apis, c, key) {\n return apis.isShowing(c, key);\n },\n hideSlot: function hideSlot(apis, c, key) {\n return apis.hideSlot(c, key);\n },\n hideAllSlots: function hideAllSlots(apis, c) {\n return apis.hideAllSlots(c);\n },\n showSlot: function showSlot(apis, c, key) {\n return apis.showSlot(c, key);\n }\n }, function (value) {\n return makeApi(value);\n });\n\n var SlotContainer = _assign(_assign({}, slotApis), {\n sketch: sketch\n });\n\n var sidebarSchema = objOf([optionString('icon'), optionString('tooltip'), defaultedFunction('onShow', noop), defaultedFunction('onHide', noop), defaultedFunction('onSetup', function () {\n return noop;\n })]);\n\n var createSidebar = function createSidebar(spec) {\n return asRaw('sidebar', sidebarSchema, spec);\n };\n\n var setup$8 = function setup$8(editor) {\n var sidebars = editor.ui.registry.getAll().sidebars;\n each$1(keys(sidebars), function (name) {\n var spec = sidebars[name];\n\n var isActive = function isActive() {\n return is$1(Optional.from(editor.queryCommandValue('ToggleSidebar')), name);\n };\n\n editor.ui.registry.addToggleButton(name, {\n icon: spec.icon,\n tooltip: spec.tooltip,\n onAction: function onAction(buttonApi) {\n editor.execCommand('ToggleSidebar', false, name);\n buttonApi.setActive(isActive());\n },\n onSetup: function onSetup(buttonApi) {\n var handleToggle = function handleToggle() {\n return buttonApi.setActive(isActive());\n };\n\n editor.on('ToggleSidebar', handleToggle);\n return function () {\n editor.off('ToggleSidebar', handleToggle);\n };\n }\n });\n });\n };\n\n var getApi = function getApi(comp) {\n return {\n element: function element() {\n return comp.element.dom;\n }\n };\n };\n\n var makePanels = function makePanels(parts, panelConfigs) {\n var specs = map$2(keys(panelConfigs), function (name) {\n var spec = panelConfigs[name];\n var bridged = getOrDie(createSidebar(spec));\n return {\n name: name,\n getApi: getApi,\n onSetup: bridged.onSetup,\n onShow: bridged.onShow,\n onHide: bridged.onHide\n };\n });\n return map$2(specs, function (spec) {\n var editorOffCell = Cell(noop);\n return parts.slot(spec.name, {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane']\n },\n behaviours: SimpleBehaviours.unnamedEvents([onControlAttached(spec, editorOffCell), onControlDetached(spec, editorOffCell), run$1(slotVisibility(), function (sidepanel, se) {\n var data = se.event;\n var optSidePanelSpec = find$5(specs, function (config) {\n return config.name === data.name;\n });\n optSidePanelSpec.each(function (sidePanelSpec) {\n var handler = data.visible ? sidePanelSpec.onShow : sidePanelSpec.onHide;\n handler(sidePanelSpec.getApi(sidepanel));\n });\n })])\n });\n });\n };\n\n var makeSidebar = function makeSidebar(panelConfigs) {\n return SlotContainer.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__pane-container']\n },\n components: makePanels(parts, panelConfigs),\n slotBehaviours: SimpleBehaviours.unnamedEvents([runOnAttached(function (slotContainer) {\n return SlotContainer.hideAllSlots(slotContainer);\n })])\n };\n });\n };\n\n var _setSidebar = function setSidebar(sidebar, panelConfigs) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n return Replacing.set(slider, [makeSidebar(panelConfigs)]);\n });\n };\n\n var _toggleSidebar = function toggleSidebar(sidebar, name) {\n var optSlider = Composing.getCurrent(sidebar);\n optSlider.each(function (slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(function (slotContainer) {\n if (Sliding.hasGrown(slider)) {\n if (SlotContainer.isShowing(slotContainer, name)) {\n Sliding.shrink(slider);\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n }\n } else {\n SlotContainer.hideAllSlots(slotContainer);\n SlotContainer.showSlot(slotContainer, name);\n Sliding.grow(slider);\n }\n });\n });\n };\n\n var _whichSidebar = function whichSidebar(sidebar) {\n var optSlider = Composing.getCurrent(sidebar);\n return optSlider.bind(function (slider) {\n var sidebarOpen = Sliding.isGrowing(slider) || Sliding.hasGrown(slider);\n\n if (sidebarOpen) {\n var optSlotContainer = Composing.getCurrent(slider);\n return optSlotContainer.bind(function (slotContainer) {\n return find$5(SlotContainer.getSlotNames(slotContainer), function (name) {\n return SlotContainer.isShowing(slotContainer, name);\n });\n });\n } else {\n return Optional.none();\n }\n });\n };\n\n var fixSize = generate$6('FixSizeEvent');\n var autoSize = generate$6('AutoSizeEvent');\n\n var renderSidebar = function renderSidebar(spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-sidebar'],\n attributes: {\n role: 'complementary'\n }\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-sidebar__slider']\n },\n components: [],\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({}), Sliding.config({\n dimension: {\n property: 'width'\n },\n closedClass: 'tox-sidebar--sliding-closed',\n openClass: 'tox-sidebar--sliding-open',\n shrinkingClass: 'tox-sidebar--sliding-shrinking',\n growingClass: 'tox-sidebar--sliding-growing',\n onShrunk: function onShrunk(slider) {\n var optSlotContainer = Composing.getCurrent(slider);\n optSlotContainer.each(SlotContainer.hideAllSlots);\n emit(slider, autoSize);\n },\n onGrown: function onGrown(slider) {\n emit(slider, autoSize);\n },\n onStartGrow: function onStartGrow(slider) {\n emitWith(slider, fixSize, {\n width: getRaw(slider.element, 'width').getOr('')\n });\n },\n onStartShrink: function onStartShrink(slider) {\n emitWith(slider, fixSize, {\n width: get$a(slider.element) + 'px'\n });\n }\n }), Replacing.config({}), Composing.config({\n find: function find(comp) {\n var children = Replacing.contents(comp);\n return head(children);\n }\n })])\n }],\n behaviours: derive$1([ComposingConfigs.childAt(0), config('sidebar-sliding-events', [run$1(fixSize, function (comp, se) {\n set$7(comp.element, 'width', se.event.width);\n }), run$1(autoSize, function (comp, _se) {\n remove$6(comp.element, 'width');\n })])])\n };\n };\n\n var block = function block(component, config, state, getBusySpec) {\n set$8(component.element, 'aria-busy', true);\n var root = config.getRoot(component).getOr(component);\n var blockerBehaviours = derive$1([Keying.config({\n mode: 'special',\n onTab: function onTab() {\n return Optional.some(true);\n },\n onShiftTab: function onShiftTab() {\n return Optional.some(true);\n }\n }), Focusing.config({})]);\n var blockSpec = getBusySpec(root, blockerBehaviours);\n var blocker = root.getSystem().build(blockSpec);\n Replacing.append(root, premade(blocker));\n\n if (blocker.hasConfigured(Keying) && config.focus) {\n Keying.focusIn(blocker);\n }\n\n if (!state.isBlocked()) {\n config.onBlock(component);\n }\n\n state.blockWith(function () {\n return Replacing.remove(root, blocker);\n });\n };\n\n var unblock = function unblock(component, config, state) {\n remove$7(component.element, 'aria-busy');\n\n if (state.isBlocked()) {\n config.onUnblock(component);\n }\n\n state.clear();\n };\n\n var BlockingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n block: block,\n unblock: unblock\n });\n var BlockingSchema = [defaultedFunction('getRoot', Optional.none), defaultedBoolean('focus', true), onHandler('onBlock'), onHandler('onUnblock')];\n\n var init$4 = function init$4() {\n var blocker = destroyable();\n\n var blockWith = function blockWith(destroy) {\n blocker.set({\n destroy: destroy\n });\n };\n\n return nu$8({\n readState: blocker.isSet,\n blockWith: blockWith,\n clear: blocker.clear,\n isBlocked: blocker.isSet\n });\n };\n\n var BlockingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$4\n });\n var Blocking = create$7({\n fields: BlockingSchema,\n name: 'blocking',\n apis: BlockingApis,\n state: BlockingState\n });\n\n var getAttrs = function getAttrs(elem) {\n var attributes = elem.dom.attributes !== undefined ? elem.dom.attributes : [];\n return foldl(attributes, function (b, attr) {\n var _a;\n\n if (attr.name === 'class') {\n return b;\n } else {\n return _assign(_assign({}, b), (_a = {}, _a[attr.name] = attr.value, _a));\n }\n }, {});\n };\n\n var getClasses = function getClasses(elem) {\n return Array.prototype.slice.call(elem.dom.classList, 0);\n };\n\n var fromHtml = function fromHtml(html) {\n var elem = SugarElement.fromHtml(html);\n var children$1 = children(elem);\n var attrs = getAttrs(elem);\n var classes = getClasses(elem);\n var contents = children$1.length === 0 ? {} : {\n innerHtml: get$7(elem)\n };\n return _assign({\n tag: name$2(elem),\n classes: classes,\n attributes: attrs\n }, contents);\n };\n\n var getBusySpec$1 = function getBusySpec$1(providerBackstage) {\n return function (_root, _behaviours) {\n return {\n dom: {\n tag: 'div',\n attributes: {\n 'aria-label': providerBackstage.translate('Loading...'),\n 'tabindex': '0'\n },\n classes: ['tox-throbber__busy-spinner']\n },\n components: [{\n dom: fromHtml('
')\n }]\n };\n };\n };\n\n var focusBusyComponent = function focusBusyComponent(throbber) {\n return Composing.getCurrent(throbber).each(function (comp) {\n return focus$3(comp.element);\n });\n };\n\n var toggleEditorTabIndex = function toggleEditorTabIndex(editor, state) {\n var tabIndexAttr = 'tabindex';\n var dataTabIndexAttr = 'data-mce-' + tabIndexAttr;\n Optional.from(editor.iframeElement).map(SugarElement.fromDom).each(function (iframe) {\n if (state) {\n getOpt(iframe, tabIndexAttr).each(function (tabIndex) {\n return set$8(iframe, dataTabIndexAttr, tabIndex);\n });\n set$8(iframe, tabIndexAttr, -1);\n } else {\n remove$7(iframe, tabIndexAttr);\n getOpt(iframe, dataTabIndexAttr).each(function (tabIndex) {\n set$8(iframe, tabIndexAttr, tabIndex);\n remove$7(iframe, dataTabIndexAttr);\n });\n }\n });\n };\n\n var toggleThrobber = function toggleThrobber(editor, comp, state, providerBackstage) {\n var element = comp.element;\n toggleEditorTabIndex(editor, state);\n\n if (state) {\n Blocking.block(comp, getBusySpec$1(providerBackstage));\n remove$6(element, 'display');\n remove$7(element, 'aria-hidden');\n\n if (editor.hasFocus()) {\n focusBusyComponent(comp);\n }\n } else {\n var throbberFocus = Composing.getCurrent(comp).exists(function (busyComp) {\n return hasFocus(busyComp.element);\n });\n Blocking.unblock(comp);\n set$7(element, 'display', 'none');\n set$8(element, 'aria-hidden', 'true');\n\n if (throbberFocus) {\n editor.focus();\n }\n }\n };\n\n var renderThrobber = function renderThrobber(spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'div',\n attributes: {\n 'aria-hidden': 'true'\n },\n classes: ['tox-throbber'],\n styles: {\n display: 'none'\n }\n },\n behaviours: derive$1([Replacing.config({}), Blocking.config({\n focus: false\n }), Composing.config({\n find: function find(comp) {\n return head(comp.components());\n }\n })]),\n components: []\n };\n };\n\n var isFocusEvent = function isFocusEvent(event) {\n return event.type === 'focusin';\n };\n\n var isPasteBinTarget = function isPasteBinTarget(event) {\n if (isFocusEvent(event)) {\n var node = event.composed ? head(event.composedPath()) : Optional.from(event.target);\n return node.map(SugarElement.fromDom).filter(isElement$2).exists(function (targetElm) {\n return has(targetElm, 'mce-pastebin');\n });\n } else {\n return false;\n }\n };\n\n var setup$7 = function setup$7(editor, lazyThrobber, sharedBackstage) {\n var throbberState = Cell(false);\n var timer = value$1();\n\n var stealFocus = function stealFocus(e) {\n if (throbberState.get() && !isPasteBinTarget(e)) {\n e.preventDefault();\n focusBusyComponent(lazyThrobber());\n editor.editorManager.setActive(editor);\n }\n };\n\n if (!editor.inline) {\n editor.on('PreInit', function () {\n editor.dom.bind(editor.getWin(), 'focusin', stealFocus);\n editor.on('BeforeExecCommand', function (e) {\n if (e.command.toLowerCase() === 'mcefocus' && e.value !== true) {\n stealFocus(e);\n }\n });\n });\n }\n\n var toggle = function toggle(state) {\n if (state !== throbberState.get()) {\n throbberState.set(state);\n toggleThrobber(editor, lazyThrobber(), state, sharedBackstage.providers);\n editor.fire('AfterProgressState', {\n state: state\n });\n }\n };\n\n editor.on('ProgressState', function (e) {\n timer.on(global$f.clearTimeout);\n\n if (isNumber(e.time)) {\n var timerId = global$f.setEditorTimeout(editor, function () {\n return toggle(e.state);\n }, e.time);\n timer.set(timerId);\n } else {\n toggle(e.state);\n timer.clear();\n }\n });\n };\n\n var generate$1 = function generate$1(xs, f) {\n var init = {\n len: 0,\n list: []\n };\n var r = foldl(xs, function (b, a) {\n var value = f(a, b.len);\n return value.fold(constant$1(b), function (v) {\n return {\n len: v.finish,\n list: b.list.concat([v])\n };\n });\n }, init);\n return r.list;\n };\n\n var output = function output(within, extra, withinWidth) {\n return {\n within: within,\n extra: extra,\n withinWidth: withinWidth\n };\n };\n\n var apportion = function apportion(units, total, len) {\n var parray = generate$1(units, function (unit, current) {\n var width = len(unit);\n return Optional.some({\n element: unit,\n start: current,\n finish: current + width,\n width: width\n });\n });\n var within = filter$2(parray, function (unit) {\n return unit.finish <= total;\n });\n var withinWidth = foldr(within, function (acc, el) {\n return acc + el.width;\n }, 0);\n var extra = parray.slice(within.length);\n return {\n within: within,\n extra: extra,\n withinWidth: withinWidth\n };\n };\n\n var toUnit = function toUnit(parray) {\n return map$2(parray, function (unit) {\n return unit.element;\n });\n };\n\n var fitLast = function fitLast(within, extra, withinWidth) {\n var fits = toUnit(within.concat(extra));\n return output(fits, [], withinWidth);\n };\n\n var overflow = function overflow(within, extra, overflower, withinWidth) {\n var fits = toUnit(within).concat([overflower]);\n return output(fits, toUnit(extra), withinWidth);\n };\n\n var fitAll = function fitAll(within, extra, withinWidth) {\n return output(toUnit(within), [], withinWidth);\n };\n\n var tryFit = function tryFit(total, units, len) {\n var divide = apportion(units, total, len);\n return divide.extra.length === 0 ? Optional.some(divide) : Optional.none();\n };\n\n var partition = function partition(total, units, len, overflower) {\n var divide = tryFit(total, units, len).getOrThunk(function () {\n return apportion(units, total - len(overflower), len);\n });\n var within = divide.within;\n var extra = divide.extra;\n var withinWidth = divide.withinWidth;\n\n if (extra.length === 1 && extra[0].width <= len(overflower)) {\n return fitLast(within, extra, withinWidth);\n } else if (extra.length >= 1) {\n return overflow(within, extra, overflower, withinWidth);\n } else {\n return fitAll(within, extra, withinWidth);\n }\n };\n\n var setGroups$1 = function setGroups$1(toolbar, storedGroups) {\n var bGroups = map$2(storedGroups, function (g) {\n return premade(g);\n });\n Toolbar.setGroups(toolbar, bGroups);\n };\n\n var findFocusedComp = function findFocusedComp(comps) {\n return findMap(comps, function (comp) {\n return search(comp.element).bind(function (focusedElm) {\n return comp.getSystem().getByDom(focusedElm).toOptional();\n });\n });\n };\n\n var refresh$2 = function refresh$2(toolbar, detail, setOverflow) {\n var builtGroups = detail.builtGroups.get();\n\n if (builtGroups.length === 0) {\n return;\n }\n\n var primary = getPartOrDie(toolbar, detail, 'primary');\n var overflowGroup = Coupling.getCoupled(toolbar, 'overflowGroup');\n set$7(primary.element, 'visibility', 'hidden');\n var groups = builtGroups.concat([overflowGroup]);\n var focusedComp = findFocusedComp(groups);\n setOverflow([]);\n setGroups$1(primary, groups);\n var availableWidth = get$a(primary.element);\n var overflows = partition(availableWidth, detail.builtGroups.get(), function (comp) {\n return get$a(comp.element);\n }, overflowGroup);\n\n if (overflows.extra.length === 0) {\n Replacing.remove(primary, overflowGroup);\n setOverflow([]);\n } else {\n setGroups$1(primary, overflows.within);\n setOverflow(overflows.extra);\n }\n\n remove$6(primary.element, 'visibility');\n reflow(primary.element);\n focusedComp.each(Focusing.focus);\n };\n\n var schema$c = constant$1([field('splitToolbarBehaviours', [Coupling]), customField('builtGroups', function () {\n return Cell([]);\n })]);\n var schema$b = constant$1([markers$1(['overflowToggledClass']), optionFunction('getOverflowBounds'), required$1('lazySink'), customField('overflowGroups', function () {\n return Cell([]);\n })].concat(schema$c()));\n var parts$7 = constant$1([required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }), external$1({\n schema: schema$e(),\n name: 'overflow'\n }), external$1({\n name: 'overflow-button'\n }), external$1({\n name: 'overflow-group'\n })]);\n var expandable = constant$1(function (element, available) {\n setMax(element, Math.floor(available));\n });\n var schema$a = constant$1([markers$1(['toggledClass']), required$1('lazySink'), requiredFunction('fetch'), optionFunction('getBounds'), optionObjOf('fireDismissalEventInstead', [defaulted('event', dismissRequested())]), schema$y()]);\n var parts$6 = constant$1([external$1({\n name: 'button',\n overrides: function overrides(detail) {\n return {\n dom: {\n attributes: {\n 'aria-haspopup': 'true'\n }\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.toggledClass,\n aria: {\n mode: 'expanded'\n },\n toggleOnExecute: false\n })])\n };\n }\n }), external$1({\n factory: Toolbar,\n schema: schema$e(),\n name: 'toolbar',\n overrides: function overrides(detail) {\n return {\n toolbarBehaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function onEscape(comp) {\n getPart(comp, detail, 'button').each(Focusing.focus);\n return Optional.none();\n }\n })])\n };\n }\n })]);\n\n var _toggle = function toggle(button, externals) {\n var toolbarSandbox = Coupling.getCoupled(button, 'toolbarSandbox');\n\n if (Sandboxing.isOpen(toolbarSandbox)) {\n Sandboxing.close(toolbarSandbox);\n } else {\n Sandboxing.open(toolbarSandbox, externals.toolbar());\n }\n };\n\n var position = function position(button, toolbar, detail, layouts) {\n var bounds = detail.getBounds.map(function (bounder) {\n return bounder();\n });\n var sink = detail.lazySink(button).getOrDie();\n Positioning.positionWithinBounds(sink, toolbar, {\n anchor: {\n type: 'hotspot',\n hotspot: button,\n layouts: layouts,\n overrides: {\n maxWidthFunction: expandable()\n }\n }\n }, bounds);\n };\n\n var _setGroups = function setGroups(button, toolbar, detail, layouts, groups) {\n Toolbar.setGroups(toolbar, groups);\n position(button, toolbar, detail, layouts);\n Toggling.on(button);\n };\n\n var makeSandbox = function makeSandbox(button, spec, detail) {\n var ariaOwner = manager();\n\n var onOpen = function onOpen(sandbox, toolbar) {\n detail.fetch().get(function (groups) {\n _setGroups(button, toolbar, detail, spec.layouts, groups);\n\n ariaOwner.link(button.element);\n Keying.focusIn(toolbar);\n });\n };\n\n var onClose = function onClose() {\n Toggling.off(button);\n Focusing.focus(button);\n ariaOwner.unlink(button.element);\n };\n\n return {\n dom: {\n tag: 'div',\n attributes: {\n id: ariaOwner.id\n }\n },\n behaviours: derive$1([Keying.config({\n mode: 'special',\n onEscape: function onEscape(comp) {\n Sandboxing.close(comp);\n return Optional.some(true);\n }\n }), Sandboxing.config({\n onOpen: onOpen,\n onClose: onClose,\n isPartOf: function isPartOf(container, data, queryElem) {\n return isPartOf$1(data, queryElem) || isPartOf$1(button, queryElem);\n },\n getAttachPoint: function getAttachPoint() {\n return detail.lazySink(button).getOrDie();\n }\n }), Receiving.config({\n channels: _assign(_assign({}, receivingChannel$1(_assign({\n isExtraPart: never\n }, detail.fireDismissalEventInstead.map(function (fe) {\n return {\n fireEventInstead: {\n event: fe.event\n }\n };\n }).getOr({})))), receivingChannel({\n doReposition: function doReposition() {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position(button, toolbar, detail, spec.layouts);\n });\n }\n }))\n })])\n };\n };\n\n var factory$a = function factory$a(detail, components, spec, externals) {\n return _assign(_assign({}, Button.sketch(_assign(_assign({}, externals.button()), {\n action: function action(button) {\n _toggle(button, externals);\n },\n buttonBehaviours: SketchBehaviours.augment({\n dump: externals.button().buttonBehaviours\n }, [Coupling.config({\n others: {\n toolbarSandbox: function toolbarSandbox(button) {\n return makeSandbox(button, spec, detail);\n }\n }\n })])\n }))), {\n apis: {\n setGroups: function setGroups(button, groups) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n _setGroups(button, toolbar, detail, spec.layouts, groups);\n });\n },\n reposition: function reposition(button) {\n Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox')).each(function (toolbar) {\n position(button, toolbar, detail, spec.layouts);\n });\n },\n toggle: function toggle(button) {\n _toggle(button, externals);\n },\n getToolbar: function getToolbar(button) {\n return Sandboxing.getState(Coupling.getCoupled(button, 'toolbarSandbox'));\n },\n isOpen: function isOpen(button) {\n return Sandboxing.isOpen(Coupling.getCoupled(button, 'toolbarSandbox'));\n }\n }\n });\n };\n\n var FloatingToolbarButton = composite({\n name: 'FloatingToolbarButton',\n factory: factory$a,\n configFields: schema$a(),\n partFields: parts$6(),\n apis: {\n setGroups: function setGroups(apis, button, groups) {\n apis.setGroups(button, groups);\n },\n reposition: function reposition(apis, button) {\n apis.reposition(button);\n },\n toggle: function toggle(apis, button) {\n apis.toggle(button);\n },\n getToolbar: function getToolbar(apis, button) {\n return apis.getToolbar(button);\n },\n isOpen: function isOpen(apis, button) {\n return apis.isOpen(button);\n }\n }\n });\n var schema$9 = constant$1([required$1('items'), markers$1(['itemSelector']), field('tgroupBehaviours', [Keying])]);\n var parts$5 = constant$1([group({\n name: 'items',\n unit: 'item'\n })]);\n\n var factory$9 = function factory$9(detail, components, _spec, _externals) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.tgroupBehaviours, [Keying.config({\n mode: 'flow',\n selector: detail.markers.itemSelector\n })]),\n domModification: {\n attributes: {\n role: 'toolbar'\n }\n }\n };\n };\n\n var ToolbarGroup = composite({\n name: 'ToolbarGroup',\n configFields: schema$9(),\n partFields: parts$5(),\n factory: factory$9\n });\n\n var buildGroups = function buildGroups(comps) {\n return map$2(comps, function (g) {\n return premade(g);\n });\n };\n\n var refresh$1 = function refresh$1(toolbar, memFloatingToolbarButton, detail) {\n refresh$2(toolbar, detail, function (overflowGroups) {\n detail.overflowGroups.set(overflowGroups);\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.setGroups(floatingToolbarButton, buildGroups(overflowGroups));\n });\n });\n };\n\n var factory$8 = function factory$8(detail, components, spec, externals) {\n var memFloatingToolbarButton = record(FloatingToolbarButton.sketch({\n fetch: function fetch() {\n return Future.nu(function (resolve) {\n resolve(buildGroups(detail.overflowGroups.get()));\n });\n },\n layouts: {\n onLtr: function onLtr() {\n return [southwest$2, southeast$2];\n },\n onRtl: function onRtl() {\n return [southeast$2, southwest$2];\n },\n onBottomLtr: function onBottomLtr() {\n return [northwest$2, northeast$2];\n },\n onBottomRtl: function onBottomRtl() {\n return [northeast$2, northwest$2];\n }\n },\n getBounds: spec.getOverflowBounds,\n lazySink: detail.lazySink,\n fireDismissalEventInstead: {},\n markers: {\n toggledClass: detail.markers.overflowToggledClass\n },\n parts: {\n button: externals['overflow-button'](),\n toolbar: externals.overflow()\n }\n }));\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: function overflowGroup() {\n return ToolbarGroup.sketch(_assign(_assign({}, externals['overflow-group']()), {\n items: [memFloatingToolbarButton.asSpec()]\n }));\n }\n }\n })]),\n apis: {\n setGroups: function setGroups(toolbar, groups) {\n detail.builtGroups.set(map$2(groups, toolbar.getSystem().build));\n refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n refresh: function refresh(toolbar) {\n return refresh$1(toolbar, memFloatingToolbarButton, detail);\n },\n toggle: function toggle(toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.toggle(floatingToolbarButton);\n });\n },\n isOpen: function isOpen(toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).map(FloatingToolbarButton.isOpen).getOr(false);\n },\n reposition: function reposition(toolbar) {\n memFloatingToolbarButton.getOpt(toolbar).each(function (floatingToolbarButton) {\n FloatingToolbarButton.reposition(floatingToolbarButton);\n });\n },\n getOverflow: function getOverflow(toolbar) {\n return memFloatingToolbarButton.getOpt(toolbar).bind(FloatingToolbarButton.getToolbar);\n }\n },\n domModification: {\n attributes: {\n role: 'group'\n }\n }\n };\n };\n\n var SplitFloatingToolbar = composite({\n name: 'SplitFloatingToolbar',\n configFields: schema$b(),\n partFields: parts$7(),\n factory: factory$8,\n apis: {\n setGroups: function setGroups(apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function refresh(apis, toolbar) {\n apis.refresh(toolbar);\n },\n reposition: function reposition(apis, toolbar) {\n apis.reposition(toolbar);\n },\n toggle: function toggle(apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function isOpen(apis, toolbar) {\n return apis.isOpen(toolbar);\n },\n getOverflow: function getOverflow(apis, toolbar) {\n return apis.getOverflow(toolbar);\n }\n }\n });\n var schema$8 = constant$1([markers$1(['closedClass', 'openClass', 'shrinkingClass', 'growingClass', 'overflowToggledClass']), onHandler('onOpened'), onHandler('onClosed')].concat(schema$c()));\n var parts$4 = constant$1([required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'primary'\n }), required({\n factory: Toolbar,\n schema: schema$e(),\n name: 'overflow',\n overrides: function overrides(detail) {\n return {\n toolbarBehaviours: derive$1([Sliding.config({\n dimension: {\n property: 'height'\n },\n closedClass: detail.markers.closedClass,\n openClass: detail.markers.openClass,\n shrinkingClass: detail.markers.shrinkingClass,\n growingClass: detail.markers.growingClass,\n onShrunk: function onShrunk(comp) {\n getPart(comp, detail, 'overflow-button').each(function (button) {\n Toggling.off(button);\n Focusing.focus(button);\n });\n detail.onClosed(comp);\n },\n onGrown: function onGrown(comp) {\n Keying.focusIn(comp);\n detail.onOpened(comp);\n },\n onStartGrow: function onStartGrow(comp) {\n getPart(comp, detail, 'overflow-button').each(Toggling.on);\n }\n }), Keying.config({\n mode: 'acyclic',\n onEscape: function onEscape(comp) {\n getPart(comp, detail, 'overflow-button').each(Focusing.focus);\n return Optional.some(true);\n }\n })])\n };\n }\n }), external$1({\n name: 'overflow-button',\n overrides: function overrides(detail) {\n return {\n buttonBehaviours: derive$1([Toggling.config({\n toggleClass: detail.markers.overflowToggledClass,\n aria: {\n mode: 'pressed'\n },\n toggleOnExecute: false\n })])\n };\n }\n }), external$1({\n name: 'overflow-group'\n })]);\n\n var _isOpen = function isOpen(toolbar, detail) {\n return getPart(toolbar, detail, 'overflow').map(Sliding.hasGrown).getOr(false);\n };\n\n var toggleToolbar = function toggleToolbar(toolbar, detail) {\n getPart(toolbar, detail, 'overflow-button').bind(function () {\n return getPart(toolbar, detail, 'overflow');\n }).each(function (overf) {\n _refresh(toolbar, detail);\n\n Sliding.toggleGrow(overf);\n });\n };\n\n var _refresh = function refresh(toolbar, detail) {\n getPart(toolbar, detail, 'overflow').each(function (overflow) {\n refresh$2(toolbar, detail, function (groups) {\n var builtGroups = map$2(groups, function (g) {\n return premade(g);\n });\n Toolbar.setGroups(overflow, builtGroups);\n });\n getPart(toolbar, detail, 'overflow-button').each(function (button) {\n if (Sliding.hasGrown(overflow)) {\n Toggling.on(button);\n }\n });\n Sliding.refresh(overflow);\n });\n };\n\n var factory$7 = function factory$7(detail, components, spec, externals) {\n var toolbarToggleEvent = 'alloy.toolbar.toggle';\n\n var doSetGroups = function doSetGroups(toolbar, groups) {\n var built = map$2(groups, toolbar.getSystem().build);\n detail.builtGroups.set(built);\n };\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: augment(detail.splitToolbarBehaviours, [Coupling.config({\n others: {\n overflowGroup: function overflowGroup(toolbar) {\n return ToolbarGroup.sketch(_assign(_assign({}, externals['overflow-group']()), {\n items: [Button.sketch(_assign(_assign({}, externals['overflow-button']()), {\n action: function action(_button) {\n emit(toolbar, toolbarToggleEvent);\n }\n }))]\n }));\n }\n }\n }), config('toolbar-toggle-events', [run$1(toolbarToggleEvent, function (toolbar) {\n toggleToolbar(toolbar, detail);\n })])]),\n apis: {\n setGroups: function setGroups(toolbar, groups) {\n doSetGroups(toolbar, groups);\n\n _refresh(toolbar, detail);\n },\n refresh: function refresh(toolbar) {\n return _refresh(toolbar, detail);\n },\n toggle: function toggle(toolbar) {\n return toggleToolbar(toolbar, detail);\n },\n isOpen: function isOpen(toolbar) {\n return _isOpen(toolbar, detail);\n }\n },\n domModification: {\n attributes: {\n role: 'group'\n }\n }\n };\n };\n\n var SplitSlidingToolbar = composite({\n name: 'SplitSlidingToolbar',\n configFields: schema$8(),\n partFields: parts$4(),\n factory: factory$7,\n apis: {\n setGroups: function setGroups(apis, toolbar, groups) {\n apis.setGroups(toolbar, groups);\n },\n refresh: function refresh(apis, toolbar) {\n apis.refresh(toolbar);\n },\n toggle: function toggle(apis, toolbar) {\n apis.toggle(toolbar);\n },\n isOpen: function isOpen(apis, toolbar) {\n return apis.isOpen(toolbar);\n }\n }\n });\n\n var renderToolbarGroupCommon = function renderToolbarGroupCommon(toolbarGroup) {\n var attributes = toolbarGroup.title.fold(function () {\n return {};\n }, function (title) {\n return {\n attributes: {\n title: title\n }\n };\n });\n return {\n dom: _assign({\n tag: 'div',\n classes: ['tox-toolbar__group']\n }, attributes),\n components: [ToolbarGroup.parts.items({})],\n items: toolbarGroup.items,\n markers: {\n itemSelector: '*:not(.tox-split-button) > .tox-tbtn:not([disabled]), ' + '.tox-split-button:not([disabled]), ' + '.tox-toolbar-nav-js:not([disabled])'\n },\n tgroupBehaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n };\n };\n\n var renderToolbarGroup = function renderToolbarGroup(toolbarGroup) {\n return ToolbarGroup.sketch(renderToolbarGroupCommon(toolbarGroup));\n };\n\n var getToolbarbehaviours = function getToolbarbehaviours(toolbarSpec, modeName) {\n var onAttached = runOnAttached(function (component) {\n var groups = map$2(toolbarSpec.initGroups, renderToolbarGroup);\n Toolbar.setGroups(component, groups);\n });\n return derive$1([DisablingConfigs.toolbarButton(toolbarSpec.providers.isDisabled), receivingConfig(), Keying.config({\n mode: modeName,\n onEscape: toolbarSpec.onEscape,\n selector: '.tox-toolbar__group'\n }), config('toolbar-events', [onAttached])]);\n };\n\n var renderMoreToolbarCommon = function renderMoreToolbarCommon(toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return {\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n parts: {\n 'overflow-group': renderToolbarGroupCommon({\n title: Optional.none(),\n items: []\n }),\n 'overflow-button': renderIconButtonSpec({\n name: 'more',\n icon: Optional.some('more-drawer'),\n disabled: false,\n tooltip: Optional.some('More...'),\n primary: false,\n borderless: false\n }, Optional.none(), toolbarSpec.providers)\n },\n splitToolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n };\n };\n\n var renderFloatingMoreToolbar = function renderFloatingMoreToolbar(toolbarSpec) {\n var baseSpec = renderMoreToolbarCommon(toolbarSpec);\n var overflowXOffset = 4;\n var primary = SplitFloatingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n return SplitFloatingToolbar.sketch(_assign(_assign({}, baseSpec), {\n lazySink: toolbarSpec.getSink,\n getOverflowBounds: function getOverflowBounds() {\n var headerElem = toolbarSpec.moreDrawerData.lazyHeader().element;\n var headerBounds = absolute$2(headerElem);\n var docElem = documentElement(headerElem);\n var docBounds = absolute$2(docElem);\n var height = Math.max(docElem.dom.scrollHeight, docBounds.height);\n return bounds(headerBounds.x + overflowXOffset, docBounds.y, headerBounds.width - overflowXOffset * 2, height);\n },\n parts: _assign(_assign({}, baseSpec.parts), {\n overflow: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: toolbarSpec.attributes\n }\n }\n }),\n components: [primary],\n markers: {\n overflowToggledClass: 'tox-tbtn--enabled'\n }\n }));\n };\n\n var renderSlidingMoreToolbar = function renderSlidingMoreToolbar(toolbarSpec) {\n var primary = SplitSlidingToolbar.parts.primary({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__primary']\n }\n });\n var overflow = SplitSlidingToolbar.parts.overflow({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow']\n }\n });\n var baseSpec = renderMoreToolbarCommon(toolbarSpec);\n return SplitSlidingToolbar.sketch(_assign(_assign({}, baseSpec), {\n components: [primary, overflow],\n markers: {\n openClass: 'tox-toolbar__overflow--open',\n closedClass: 'tox-toolbar__overflow--closed',\n growingClass: 'tox-toolbar__overflow--growing',\n shrinkingClass: 'tox-toolbar__overflow--shrinking',\n overflowToggledClass: 'tox-tbtn--enabled'\n },\n onOpened: function onOpened(comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], {\n type: 'opened'\n });\n },\n onClosed: function onClosed(comp) {\n comp.getSystem().broadcastOn([toolbarHeightChange()], {\n type: 'closed'\n });\n }\n }));\n };\n\n var renderToolbar = function renderToolbar(toolbarSpec) {\n var modeName = toolbarSpec.cyclicKeying ? 'cyclic' : 'acyclic';\n return Toolbar.sketch({\n uid: toolbarSpec.uid,\n dom: {\n tag: 'div',\n classes: ['tox-toolbar'].concat(toolbarSpec.type === ToolbarMode.scrolling ? ['tox-toolbar--scrolling'] : [])\n },\n components: [Toolbar.parts.groups({})],\n toolbarBehaviours: getToolbarbehaviours(toolbarSpec, modeName)\n });\n };\n\n var factory$6 = function factory$6(detail, components, _spec) {\n var apis = {\n getSocket: function getSocket(comp) {\n return parts$a.getPart(comp, detail, 'socket');\n },\n setSidebar: function setSidebar(comp, panelConfigs) {\n parts$a.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return _setSidebar(sidebar, panelConfigs);\n });\n },\n toggleSidebar: function toggleSidebar(comp, name) {\n parts$a.getPart(comp, detail, 'sidebar').each(function (sidebar) {\n return _toggleSidebar(sidebar, name);\n });\n },\n whichSidebar: function whichSidebar(comp) {\n return parts$a.getPart(comp, detail, 'sidebar').bind(_whichSidebar).getOrNull();\n },\n getHeader: function getHeader(comp) {\n return parts$a.getPart(comp, detail, 'header');\n },\n getToolbar: function getToolbar(comp) {\n return parts$a.getPart(comp, detail, 'toolbar');\n },\n setToolbar: function setToolbar(comp, groups) {\n parts$a.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n toolbar.getApis().setGroups(toolbar, groups);\n });\n },\n setToolbars: function setToolbars(comp, toolbars) {\n parts$a.getPart(comp, detail, 'multiple-toolbar').each(function (mToolbar) {\n CustomList.setItems(mToolbar, toolbars);\n });\n },\n refreshToolbar: function refreshToolbar(comp) {\n var toolbar = parts$a.getPart(comp, detail, 'toolbar');\n toolbar.each(function (toolbar) {\n return toolbar.getApis().refresh(toolbar);\n });\n },\n toggleToolbarDrawer: function toggleToolbarDrawer(comp) {\n parts$a.getPart(comp, detail, 'toolbar').each(function (toolbar) {\n mapFrom(toolbar.getApis().toggle, function (toggle) {\n return toggle(toolbar);\n });\n });\n },\n isToolbarDrawerToggled: function isToolbarDrawerToggled(comp) {\n return parts$a.getPart(comp, detail, 'toolbar').bind(function (toolbar) {\n return Optional.from(toolbar.getApis().isOpen).map(function (isOpen) {\n return isOpen(toolbar);\n });\n }).getOr(false);\n },\n getThrobber: function getThrobber(comp) {\n return parts$a.getPart(comp, detail, 'throbber');\n },\n focusToolbar: function focusToolbar(comp) {\n var optToolbar = parts$a.getPart(comp, detail, 'toolbar').orThunk(function () {\n return parts$a.getPart(comp, detail, 'multiple-toolbar');\n });\n optToolbar.each(function (toolbar) {\n Keying.focusIn(toolbar);\n });\n },\n setMenubar: function setMenubar(comp, menus) {\n parts$a.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.setMenus(menubar, menus);\n });\n },\n focusMenubar: function focusMenubar(comp) {\n parts$a.getPart(comp, detail, 'menubar').each(function (menubar) {\n SilverMenubar.focus(menubar);\n });\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n behaviours: detail.behaviours\n };\n };\n\n var partMenubar = partType.optional({\n factory: SilverMenubar,\n name: 'menubar',\n schema: [required$1('backstage')]\n });\n\n var toolbarFactory = function toolbarFactory(spec) {\n if (spec.type === ToolbarMode.sliding) {\n return renderSlidingMoreToolbar;\n } else if (spec.type === ToolbarMode.floating) {\n return renderFloatingMoreToolbar;\n } else {\n return renderToolbar;\n }\n };\n\n var partMultipleToolbar = partType.optional({\n factory: {\n sketch: function sketch(spec) {\n return CustomList.sketch({\n uid: spec.uid,\n dom: spec.dom,\n listBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n selector: '.tox-toolbar'\n })]),\n makeItem: function makeItem() {\n return renderToolbar({\n type: spec.type,\n uid: generate$6('multiple-toolbar-item'),\n cyclicKeying: false,\n initGroups: [],\n providers: spec.providers,\n onEscape: function onEscape() {\n spec.onEscape();\n return Optional.some(true);\n }\n });\n },\n setupItem: function setupItem(_mToolbar, tc, data, _index) {\n Toolbar.setGroups(tc, data);\n },\n shell: true\n });\n }\n },\n name: 'multiple-toolbar',\n schema: [required$1('dom'), required$1('onEscape')]\n });\n var partToolbar = partType.optional({\n factory: {\n sketch: function sketch(spec) {\n var renderer = toolbarFactory(spec);\n var toolbarSpec = {\n type: spec.type,\n uid: spec.uid,\n onEscape: function onEscape() {\n spec.onEscape();\n return Optional.some(true);\n },\n cyclicKeying: false,\n initGroups: [],\n getSink: spec.getSink,\n providers: spec.providers,\n moreDrawerData: {\n lazyToolbar: spec.lazyToolbar,\n lazyMoreButton: spec.lazyMoreButton,\n lazyHeader: spec.lazyHeader\n },\n attributes: spec.attributes\n };\n return renderer(toolbarSpec);\n }\n },\n name: 'toolbar',\n schema: [required$1('dom'), required$1('onEscape'), required$1('getSink')]\n });\n var partHeader = partType.optional({\n factory: {\n sketch: renderHeader\n },\n name: 'header',\n schema: [required$1('dom')]\n });\n var partSocket = partType.optional({\n name: 'socket',\n schema: [required$1('dom')]\n });\n var partSidebar = partType.optional({\n factory: {\n sketch: renderSidebar\n },\n name: 'sidebar',\n schema: [required$1('dom')]\n });\n var partThrobber = partType.optional({\n factory: {\n sketch: renderThrobber\n },\n name: 'throbber',\n schema: [required$1('dom')]\n });\n var OuterContainer = composite({\n name: 'OuterContainer',\n factory: factory$6,\n configFields: [required$1('dom'), required$1('behaviours')],\n partFields: [partHeader, partMenubar, partToolbar, partMultipleToolbar, partSocket, partSidebar, partThrobber],\n apis: {\n getSocket: function getSocket(apis, comp) {\n return apis.getSocket(comp);\n },\n setSidebar: function setSidebar(apis, comp, panelConfigs) {\n apis.setSidebar(comp, panelConfigs);\n },\n toggleSidebar: function toggleSidebar(apis, comp, name) {\n apis.toggleSidebar(comp, name);\n },\n whichSidebar: function whichSidebar(apis, comp) {\n return apis.whichSidebar(comp);\n },\n getHeader: function getHeader(apis, comp) {\n return apis.getHeader(comp);\n },\n getToolbar: function getToolbar(apis, comp) {\n return apis.getToolbar(comp);\n },\n setToolbar: function setToolbar(apis, comp, grps) {\n var groups = map$2(grps, function (grp) {\n return renderToolbarGroup(grp);\n });\n apis.setToolbar(comp, groups);\n },\n setToolbars: function setToolbars(apis, comp, ts) {\n var renderedToolbars = map$2(ts, function (g) {\n return map$2(g, renderToolbarGroup);\n });\n apis.setToolbars(comp, renderedToolbars);\n },\n refreshToolbar: function refreshToolbar(apis, comp) {\n return apis.refreshToolbar(comp);\n },\n toggleToolbarDrawer: function toggleToolbarDrawer(apis, comp) {\n apis.toggleToolbarDrawer(comp);\n },\n isToolbarDrawerToggled: function isToolbarDrawerToggled(apis, comp) {\n return apis.isToolbarDrawerToggled(comp);\n },\n getThrobber: function getThrobber(apis, comp) {\n return apis.getThrobber(comp);\n },\n setMenubar: function setMenubar(apis, comp, menus) {\n apis.setMenubar(comp, menus);\n },\n focusMenubar: function focusMenubar(apis, comp) {\n apis.focusMenubar(comp);\n },\n focusToolbar: function focusToolbar(apis, comp) {\n apis.focusToolbar(comp);\n }\n }\n });\n var defaultMenubar = 'file edit view insert format tools table help';\n var defaultMenus = {\n file: {\n title: 'File',\n items: 'newdocument restoredraft | preview | export print | deleteallconversations'\n },\n edit: {\n title: 'Edit',\n items: 'undo redo | cut copy paste pastetext | selectall | searchreplace'\n },\n view: {\n title: 'View',\n items: 'code | visualaid visualchars visualblocks | spellchecker | preview fullscreen | showcomments'\n },\n insert: {\n title: 'Insert',\n items: 'image link media addcomment pageembed template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime'\n },\n format: {\n title: 'Format',\n items: 'bold italic underline strikethrough superscript subscript codeformat | formats blockformats fontformats fontsizes align lineheight | forecolor backcolor | language | removeformat'\n },\n tools: {\n title: 'Tools',\n items: 'spellchecker spellcheckerlanguage | a11ycheck code wordcount'\n },\n table: {\n title: 'Table',\n items: 'inserttable | cell row column | advtablesort | tableprops deletetable'\n },\n help: {\n title: 'Help',\n items: 'help'\n }\n };\n\n var make = function make(menu, registry, editor) {\n var removedMenuItems = getRemovedMenuItems(editor).split(/[ ,]/);\n return {\n text: menu.title,\n getItems: function getItems() {\n return bind$3(menu.items, function (i) {\n var itemName = i.toLowerCase();\n\n if (itemName.trim().length === 0) {\n return [];\n } else if (exists(removedMenuItems, function (removedMenuItem) {\n return removedMenuItem === itemName;\n })) {\n return [];\n } else if (itemName === 'separator' || itemName === '|') {\n return [{\n type: 'separator'\n }];\n } else if (registry.menuItems[itemName]) {\n return [registry.menuItems[itemName]];\n } else {\n return [];\n }\n });\n }\n };\n };\n\n var parseItemsString = function parseItemsString(items) {\n if (typeof items === 'string') {\n return items.split(' ');\n }\n\n return items;\n };\n\n var identifyMenus = function identifyMenus(editor, registry) {\n var rawMenuData = _assign(_assign({}, defaultMenus), registry.menus);\n\n var userDefinedMenus = keys(registry.menus).length > 0;\n var menubar = registry.menubar === undefined || registry.menubar === true ? parseItemsString(defaultMenubar) : parseItemsString(registry.menubar === false ? '' : registry.menubar);\n var validMenus = filter$2(menubar, function (menuName) {\n var isDefaultMenu = has$2(defaultMenus, menuName);\n\n if (userDefinedMenus) {\n return isDefaultMenu || get$e(registry.menus, menuName).exists(function (menu) {\n return has$2(menu, 'items');\n });\n } else {\n return isDefaultMenu;\n }\n });\n var menus = map$2(validMenus, function (menuName) {\n var menuData = rawMenuData[menuName];\n return make({\n title: menuData.title,\n items: parseItemsString(menuData.items)\n }, registry, editor);\n });\n return filter$2(menus, function (menu) {\n var isNotSeparator = function isNotSeparator(item) {\n return item.type !== 'separator';\n };\n\n return menu.getItems().length > 0 && exists(menu.getItems(), isNotSeparator);\n });\n };\n\n var fireSkinLoaded = function fireSkinLoaded(editor) {\n var done = function done() {\n editor._skinLoaded = true;\n fireSkinLoaded$1(editor);\n };\n\n return function () {\n if (editor.initialized) {\n done();\n } else {\n editor.on('init', done);\n }\n };\n };\n\n var fireSkinLoadError = function fireSkinLoadError(editor, err) {\n return function () {\n return fireSkinLoadError$1(editor, {\n message: err\n });\n };\n };\n\n var loadStylesheet = function loadStylesheet(editor, stylesheetUrl, styleSheetLoader) {\n return new global$c(function (resolve, reject) {\n styleSheetLoader.load(stylesheetUrl, resolve, reject);\n editor.on('remove', function () {\n return styleSheetLoader.unload(stylesheetUrl);\n });\n });\n };\n\n var loadUiSkins = function loadUiSkins(editor, skinUrl) {\n var skinUiCss = skinUrl + '/skin.min.css';\n return loadStylesheet(editor, skinUiCss, editor.ui.styleSheetLoader);\n };\n\n var loadShadowDomUiSkins = function loadShadowDomUiSkins(editor, skinUrl) {\n var isInShadowRoot$1 = isInShadowRoot(SugarElement.fromDom(editor.getElement()));\n\n if (isInShadowRoot$1) {\n var shadowDomSkinCss = skinUrl + '/skin.shadowdom.min.css';\n return loadStylesheet(editor, shadowDomSkinCss, global$b.DOM.styleSheetLoader);\n } else {\n return global$c.resolve();\n }\n };\n\n var loadSkin = function loadSkin(isInline, editor) {\n var skinUrl = getSkinUrl(editor);\n\n if (skinUrl) {\n editor.contentCSS.push(skinUrl + (isInline ? '/content.inline' : '/content') + '.min.css');\n }\n\n if (isSkinDisabled(editor) === false && isString(skinUrl)) {\n global$c.all([loadUiSkins(editor, skinUrl), loadShadowDomUiSkins(editor, skinUrl)]).then(fireSkinLoaded(editor), fireSkinLoadError(editor, 'Skin could not be loaded'));\n } else {\n fireSkinLoaded(editor)();\n }\n };\n\n var iframe = curry(loadSkin, false);\n var inline = curry(loadSkin, true);\n\n var onSetupFormatToggle = function onSetupFormatToggle(editor, name) {\n return function (api) {\n var boundCallback = unbindable();\n\n var init = function init() {\n api.setActive(editor.formatter.match(name));\n var binding = editor.formatter.formatChanged(name, api.setActive);\n boundCallback.set(binding);\n };\n\n editor.initialized ? init() : editor.once('init', init);\n return function () {\n editor.off('init', init);\n boundCallback.clear();\n };\n };\n };\n\n var onSetupEvent = function onSetupEvent(editor, event, f) {\n return function (api) {\n var handleEvent = function handleEvent() {\n return f(api);\n };\n\n var init = function init() {\n f(api);\n editor.on(event, handleEvent);\n };\n\n editor.initialized ? init() : editor.once('init', init);\n return function () {\n editor.off('init', init);\n editor.off(event, handleEvent);\n };\n };\n };\n\n var onActionToggleFormat$1 = function onActionToggleFormat$1(editor) {\n return function (rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('mceToggleFormat', false, rawItem.format);\n });\n };\n };\n };\n\n var onActionExecCommand = function onActionExecCommand(editor, command) {\n return function () {\n return editor.execCommand(command);\n };\n };\n\n var generateSelectItems = function generateSelectItems(_editor, backstage, spec) {\n var generateItem = function generateItem(rawItem, response, disabled, value) {\n var translatedText = backstage.shared.providers.translate(rawItem.title);\n\n if (rawItem.type === 'separator') {\n return Optional.some({\n type: 'separator',\n text: translatedText\n });\n } else if (rawItem.type === 'submenu') {\n var items = bind$3(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n\n if (response === 0 && items.length <= 0) {\n return Optional.none();\n } else {\n return Optional.some({\n type: 'nestedmenuitem',\n text: translatedText,\n disabled: items.length <= 0,\n getSubmenuItems: function getSubmenuItems() {\n return bind$3(rawItem.getStyleItems(), function (si) {\n return validate(si, response, value);\n });\n }\n });\n }\n } else {\n return Optional.some(_assign({\n type: 'togglemenuitem',\n text: translatedText,\n icon: rawItem.icon,\n active: rawItem.isSelected(value),\n disabled: disabled,\n onAction: spec.onAction(rawItem)\n }, rawItem.getStylePreview().fold(function () {\n return {};\n }, function (preview) {\n return {\n meta: {\n style: preview\n }\n };\n })));\n }\n };\n\n var validate = function validate(item, response, value) {\n var invalid = item.type === 'formatter' && spec.isInvalid(item);\n\n if (response === 0) {\n return invalid ? [] : generateItem(item, response, false, value).toArray();\n } else {\n return generateItem(item, response, invalid, value).toArray();\n }\n };\n\n var validateItems = function validateItems(preItems) {\n var value = spec.getCurrentValue();\n var response = spec.shouldHide ? 0 : 1;\n return bind$3(preItems, function (item) {\n return validate(item, response, value);\n });\n };\n\n var getFetch = function getFetch(backstage, getStyleItems) {\n return function (comp, callback) {\n var preItems = getStyleItems();\n var items = validateItems(preItems);\n var menu = build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false);\n callback(menu);\n };\n };\n\n return {\n validateItems: validateItems,\n getFetch: getFetch\n };\n };\n\n var createMenuItems = function createMenuItems(editor, backstage, spec) {\n var dataset = spec.dataset;\n var getStyleItems = dataset.type === 'basic' ? function () {\n return map$2(dataset.data, function (d) {\n return processBasic(d, spec.isSelectedFor, spec.getPreviewFor);\n });\n } : dataset.getData;\n return {\n items: generateSelectItems(editor, backstage, spec),\n getStyleItems: getStyleItems\n };\n };\n\n var createSelectButton = function createSelectButton(editor, backstage, spec) {\n var _a = createMenuItems(editor, backstage, spec),\n items = _a.items,\n getStyleItems = _a.getStyleItems;\n\n var getApi = function getApi(comp) {\n return {\n getComponent: constant$1(comp)\n };\n };\n\n var onSetup = onSetupEvent(editor, 'NodeChange', function (api) {\n var comp = api.getComponent();\n spec.updateText(comp);\n });\n return renderCommonDropdown({\n text: spec.icon.isSome() ? Optional.none() : spec.text,\n icon: spec.icon,\n tooltip: Optional.from(spec.tooltip),\n role: Optional.none(),\n fetch: items.getFetch(backstage, getStyleItems),\n onSetup: onSetup,\n getApi: getApi,\n columns: 1,\n presets: 'normal',\n classes: spec.icon.isSome() ? [] : ['bespoke'],\n dropdownBehaviours: []\n }, 'tox-tbtn', backstage.shared);\n };\n\n var process = function process(rawFormats) {\n return map$2(rawFormats, function (item) {\n var title = item,\n format = item;\n var values = item.split('=');\n\n if (values.length > 1) {\n title = values[0];\n format = values[1];\n }\n\n return {\n title: title,\n format: format\n };\n });\n };\n\n var buildBasicStaticDataset = function buildBasicStaticDataset(data) {\n return {\n type: 'basic',\n data: data\n };\n };\n\n var Delimiter;\n\n (function (Delimiter) {\n Delimiter[Delimiter['SemiColon'] = 0] = 'SemiColon';\n Delimiter[Delimiter['Space'] = 1] = 'Space';\n })(Delimiter || (Delimiter = {}));\n\n var split = function split(rawFormats, delimiter) {\n if (delimiter === Delimiter.SemiColon) {\n return rawFormats.replace(/;$/, '').split(';');\n } else {\n return rawFormats.split(' ');\n }\n };\n\n var buildBasicSettingsDataset = function buildBasicSettingsDataset(editor, settingName, defaults, delimiter) {\n var rawFormats = editor.getParam(settingName, defaults, 'string');\n var data = process(split(rawFormats, delimiter));\n return {\n type: 'basic',\n data: data\n };\n };\n\n var alignMenuItems = [{\n title: 'Left',\n icon: 'align-left',\n format: 'alignleft',\n command: 'JustifyLeft'\n }, {\n title: 'Center',\n icon: 'align-center',\n format: 'aligncenter',\n command: 'JustifyCenter'\n }, {\n title: 'Right',\n icon: 'align-right',\n format: 'alignright',\n command: 'JustifyRight'\n }, {\n title: 'Justify',\n icon: 'align-justify',\n format: 'alignjustify',\n command: 'JustifyFull'\n }];\n\n var getSpec$4 = function getSpec$4(editor) {\n var getMatchingValue = function getMatchingValue() {\n return find$5(alignMenuItems, function (item) {\n return editor.formatter.match(item.format);\n });\n };\n\n var isSelectedFor = function isSelectedFor(format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n\n var getPreviewFor = function getPreviewFor(_format) {\n return Optional.none;\n };\n\n var updateSelectMenuIcon = function updateSelectMenuIcon(comp) {\n var match = getMatchingValue();\n var alignment = match.fold(constant$1('left'), function (item) {\n return item.title.toLowerCase();\n });\n emitWith(comp, updateMenuIcon, {\n icon: 'align-' + alignment\n });\n };\n\n var dataset = buildBasicStaticDataset(alignMenuItems);\n\n var onAction = function onAction(rawItem) {\n return function () {\n return find$5(alignMenuItems, function (item) {\n return item.format === rawItem.format;\n }).each(function (item) {\n return editor.execCommand(item.command);\n });\n };\n };\n\n return {\n tooltip: 'Align',\n text: Optional.none(),\n icon: Optional.some('align-left'),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n updateText: updateSelectMenuIcon,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function isInvalid(item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n\n var createAlignSelect = function createAlignSelect(editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$4(editor));\n };\n\n var alignSelectMenu = function alignSelectMenu(editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$4(editor));\n editor.ui.registry.addNestedMenuItem('align', {\n text: backstage.shared.providers.translate('Align'),\n getSubmenuItems: function getSubmenuItems() {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultFontsFormats = 'Andale Mono=andale mono,monospace;' + 'Arial=arial,helvetica,sans-serif;' + 'Arial Black=arial black,sans-serif;' + 'Book Antiqua=book antiqua,palatino,serif;' + 'Comic Sans MS=comic sans ms,sans-serif;' + 'Courier New=courier new,courier,monospace;' + 'Georgia=georgia,palatino,serif;' + 'Helvetica=helvetica,arial,sans-serif;' + 'Impact=impact,sans-serif;' + 'Symbol=symbol;' + 'Tahoma=tahoma,arial,helvetica,sans-serif;' + 'Terminal=terminal,monaco,monospace;' + 'Times New Roman=times new roman,times,serif;' + 'Trebuchet MS=trebuchet ms,geneva,sans-serif;' + 'Verdana=verdana,geneva,sans-serif;' + 'Webdings=webdings;' + 'Wingdings=wingdings,zapf dingbats';\n var systemStackFonts = ['-apple-system', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'sans-serif'];\n\n var splitFonts = function splitFonts(fontFamily) {\n var fonts = fontFamily.split(/\\s*,\\s*/);\n return map$2(fonts, function (font) {\n return font.replace(/^['\"]+|['\"]+$/g, '');\n });\n };\n\n var isSystemFontStack = function isSystemFontStack(fontFamily) {\n var matchesSystemStack = function matchesSystemStack() {\n var fonts = splitFonts(fontFamily.toLowerCase());\n return forall(systemStackFonts, function (font) {\n return fonts.indexOf(font.toLowerCase()) > -1;\n });\n };\n\n return fontFamily.indexOf('-apple-system') === 0 && matchesSystemStack();\n };\n\n var getSpec$3 = function getSpec$3(editor) {\n var systemFont = 'System Font';\n\n var getMatchingValue = function getMatchingValue() {\n var getFirstFont = function getFirstFont(fontFamily) {\n return fontFamily ? splitFonts(fontFamily)[0] : '';\n };\n\n var fontFamily = editor.queryCommandValue('FontName');\n var items = dataset.data;\n var font = fontFamily ? fontFamily.toLowerCase() : '';\n var matchOpt = find$5(items, function (item) {\n var format = item.format;\n return format.toLowerCase() === font || getFirstFont(format).toLowerCase() === getFirstFont(font).toLowerCase();\n }).orThunk(function () {\n return someIf(isSystemFontStack(font), {\n title: systemFont,\n format: font\n });\n });\n return {\n matchOpt: matchOpt,\n font: fontFamily\n };\n };\n\n var isSelectedFor = function isSelectedFor(item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n\n var getCurrentValue = function getCurrentValue() {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n\n var getPreviewFor = function getPreviewFor(item) {\n return function () {\n return Optional.some({\n tag: 'div',\n styles: item.indexOf('dings') === -1 ? {\n 'font-family': item\n } : {}\n });\n };\n };\n\n var onAction = function onAction(rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontName', false, rawItem.format);\n });\n };\n };\n\n var updateSelectMenuText = function updateSelectMenuText(comp) {\n var _a = getMatchingValue(),\n matchOpt = _a.matchOpt,\n font = _a.font;\n\n var text = matchOpt.fold(constant$1(font), function (item) {\n return item.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n\n var dataset = buildBasicSettingsDataset(editor, 'font_formats', defaultFontsFormats, Delimiter.SemiColon);\n return {\n tooltip: 'Fonts',\n text: Optional.some(systemFont),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: getCurrentValue,\n getPreviewFor: getPreviewFor,\n onAction: onAction,\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n\n var createFontSelect = function createFontSelect(editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$3(editor));\n };\n\n var fontSelectMenu = function fontSelectMenu(editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$3(editor));\n editor.ui.registry.addNestedMenuItem('fontformats', {\n text: backstage.shared.providers.translate('Fonts'),\n getSubmenuItems: function getSubmenuItems() {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var defaultFontsizeFormats = '8pt 10pt 12pt 14pt 18pt 24pt 36pt';\n var legacyFontSizes = {\n '8pt': '1',\n '10pt': '2',\n '12pt': '3',\n '14pt': '4',\n '18pt': '5',\n '24pt': '6',\n '36pt': '7'\n };\n var keywordFontSizes = {\n 'xx-small': '7pt',\n 'x-small': '8pt',\n 'small': '10pt',\n 'medium': '12pt',\n 'large': '14pt',\n 'x-large': '18pt',\n 'xx-large': '24pt'\n };\n\n var round = function round(number, precision) {\n var factor = Math.pow(10, precision);\n return Math.round(number * factor) / factor;\n };\n\n var toPt = function toPt(fontSize, precision) {\n if (/[0-9.]+px$/.test(fontSize)) {\n return round(parseInt(fontSize, 10) * 72 / 96, precision || 0) + 'pt';\n } else {\n return get$e(keywordFontSizes, fontSize).getOr(fontSize);\n }\n };\n\n var toLegacy = function toLegacy(fontSize) {\n return get$e(legacyFontSizes, fontSize).getOr('');\n };\n\n var getSpec$2 = function getSpec$2(editor) {\n var getMatchingValue = function getMatchingValue() {\n var matchOpt = Optional.none();\n var items = dataset.data;\n var fontSize = editor.queryCommandValue('FontSize');\n\n if (fontSize) {\n var _loop_1 = function _loop_1(precision) {\n var pt = toPt(fontSize, precision);\n var legacy = toLegacy(pt);\n matchOpt = find$5(items, function (item) {\n return item.format === fontSize || item.format === pt || item.format === legacy;\n });\n };\n\n for (var precision = 3; matchOpt.isNone() && precision >= 0; precision--) {\n _loop_1(precision);\n }\n }\n\n return {\n matchOpt: matchOpt,\n size: fontSize\n };\n };\n\n var isSelectedFor = function isSelectedFor(item) {\n return function (valueOpt) {\n return valueOpt.exists(function (value) {\n return value.format === item;\n });\n };\n };\n\n var getCurrentValue = function getCurrentValue() {\n var matchOpt = getMatchingValue().matchOpt;\n return matchOpt;\n };\n\n var getPreviewFor = constant$1(Optional.none);\n\n var onAction = function onAction(rawItem) {\n return function () {\n editor.undoManager.transact(function () {\n editor.focus();\n editor.execCommand('FontSize', false, rawItem.format);\n });\n };\n };\n\n var updateSelectMenuText = function updateSelectMenuText(comp) {\n var _a = getMatchingValue(),\n matchOpt = _a.matchOpt,\n size = _a.size;\n\n var text = matchOpt.fold(constant$1(size), function (match) {\n return match.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n\n var dataset = buildBasicSettingsDataset(editor, 'fontsize_formats', defaultFontsizeFormats, Delimiter.Space);\n return {\n tooltip: 'Font sizes',\n text: Optional.some('12pt'),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getPreviewFor: getPreviewFor,\n getCurrentValue: getCurrentValue,\n onAction: onAction,\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: never\n };\n };\n\n var createFontsizeSelect = function createFontsizeSelect(editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$2(editor));\n };\n\n var fontsizeSelectMenu = function fontsizeSelectMenu(editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$2(editor));\n editor.ui.registry.addNestedMenuItem('fontsizes', {\n text: 'Font sizes',\n getSubmenuItems: function getSubmenuItems() {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var findNearest = function findNearest(editor, getStyles) {\n var styles = getStyles();\n var formats = map$2(styles, function (style) {\n return style.format;\n });\n return Optional.from(editor.formatter.closest(formats)).bind(function (fmt) {\n return find$5(styles, function (data) {\n return data.format === fmt;\n });\n }).orThunk(function () {\n return someIf(editor.formatter.match('p'), {\n title: 'Paragraph',\n format: 'p'\n });\n });\n };\n\n var defaultBlocks = 'Paragraph=p;' + 'Heading 1=h1;' + 'Heading 2=h2;' + 'Heading 3=h3;' + 'Heading 4=h4;' + 'Heading 5=h5;' + 'Heading 6=h6;' + 'Preformatted=pre';\n\n var getSpec$1 = function getSpec$1(editor) {\n var fallbackFormat = 'Paragraph';\n\n var isSelectedFor = function isSelectedFor(format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n\n var getPreviewFor = function getPreviewFor(format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n });\n };\n };\n\n var updateSelectMenuText = function updateSelectMenuText(comp) {\n var detectedFormat = findNearest(editor, function () {\n return dataset.data;\n });\n var text = detectedFormat.fold(constant$1(fallbackFormat), function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n\n var dataset = buildBasicSettingsDataset(editor, 'block_formats', defaultBlocks, Delimiter.SemiColon);\n return {\n tooltip: 'Blocks',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n dataset: dataset,\n shouldHide: false,\n isInvalid: function isInvalid(item) {\n return !editor.formatter.canApply(item.format);\n }\n };\n };\n\n var createFormatSelect = function createFormatSelect(editor, backstage) {\n return createSelectButton(editor, backstage, getSpec$1(editor));\n };\n\n var formatSelectMenu = function formatSelectMenu(editor, backstage) {\n var menuItems = createMenuItems(editor, backstage, getSpec$1(editor));\n editor.ui.registry.addNestedMenuItem('blockformats', {\n text: 'Blocks',\n getSubmenuItems: function getSubmenuItems() {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var getSpec = function getSpec(editor, dataset) {\n var fallbackFormat = 'Paragraph';\n\n var isSelectedFor = function isSelectedFor(format) {\n return function () {\n return editor.formatter.match(format);\n };\n };\n\n var getPreviewFor = function getPreviewFor(format) {\n return function () {\n var fmt = editor.formatter.get(format);\n return fmt !== undefined ? Optional.some({\n tag: fmt.length > 0 ? fmt[0].inline || fmt[0].block || 'div' : 'div',\n styles: editor.dom.parseStyle(editor.formatter.getCssText(format))\n }) : Optional.none();\n };\n };\n\n var updateSelectMenuText = function updateSelectMenuText(comp) {\n var getFormatItems = function getFormatItems(fmt) {\n var subs = fmt.items;\n return subs !== undefined && subs.length > 0 ? bind$3(subs, getFormatItems) : [{\n title: fmt.title,\n format: fmt.format\n }];\n };\n\n var flattenedItems = bind$3(getStyleFormats(editor), getFormatItems);\n var detectedFormat = findNearest(editor, constant$1(flattenedItems));\n var text = detectedFormat.fold(constant$1(fallbackFormat), function (fmt) {\n return fmt.title;\n });\n emitWith(comp, updateMenuText, {\n text: text\n });\n };\n\n return {\n tooltip: 'Formats',\n text: Optional.some(fallbackFormat),\n icon: Optional.none(),\n isSelectedFor: isSelectedFor,\n getCurrentValue: Optional.none,\n getPreviewFor: getPreviewFor,\n onAction: onActionToggleFormat$1(editor),\n updateText: updateSelectMenuText,\n shouldHide: editor.getParam('style_formats_autohide', false, 'boolean'),\n isInvalid: function isInvalid(item) {\n return !editor.formatter.canApply(item.format);\n },\n dataset: dataset\n };\n };\n\n var createStyleSelect = function createStyleSelect(editor, backstage) {\n var dataset = _assign({\n type: 'advanced'\n }, backstage.styleselect);\n\n return createSelectButton(editor, backstage, getSpec(editor, dataset));\n };\n\n var styleSelectMenu = function styleSelectMenu(editor, backstage) {\n var dataset = _assign({\n type: 'advanced'\n }, backstage.styleselect);\n\n var menuItems = createMenuItems(editor, backstage, getSpec(editor, dataset));\n editor.ui.registry.addNestedMenuItem('formats', {\n text: 'Formats',\n getSubmenuItems: function getSubmenuItems() {\n return menuItems.items.validateItems(menuItems.getStyleItems());\n }\n });\n };\n\n var events$3 = function events$3(reflectingConfig, reflectingState) {\n var update = function update(component, data) {\n reflectingConfig.updateState.each(function (updateState) {\n var newState = updateState(component, data);\n reflectingState.set(newState);\n });\n reflectingConfig.renderComponents.each(function (renderComponents) {\n var newComponents = renderComponents(data, reflectingState.get());\n var newChildren = map$2(newComponents, component.getSystem().build);\n replaceChildren(component, newChildren);\n });\n };\n\n return derive$2([run$1(receive(), function (component, message) {\n var receivingData = message;\n\n if (!receivingData.universal) {\n var channel = reflectingConfig.channel;\n\n if (contains$2(receivingData.channels, channel)) {\n update(component, receivingData.data);\n }\n }\n }), runOnAttached(function (comp, _se) {\n reflectingConfig.initialData.each(function (rawData) {\n update(comp, rawData);\n });\n })]);\n };\n\n var ActiveReflecting = /*#__PURE__*/Object.freeze({\n __proto__: null,\n events: events$3\n });\n\n var getState = function getState(component, replaceConfig, reflectState) {\n return reflectState;\n };\n\n var ReflectingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getState: getState\n });\n var ReflectingSchema = [required$1('channel'), option('renderComponents'), option('updateState'), option('initialData')];\n\n var init$3 = function init$3() {\n var cell = Cell(Optional.none());\n\n var clear = function clear() {\n return cell.set(Optional.none());\n };\n\n var readState = function readState() {\n return cell.get().getOr('none');\n };\n\n return {\n readState: readState,\n get: cell.get,\n set: cell.set,\n clear: clear\n };\n };\n\n var ReflectingState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init$3\n });\n var Reflecting = create$7({\n fields: ReflectingSchema,\n name: 'reflecting',\n active: ActiveReflecting,\n apis: ReflectingApis,\n state: ReflectingState\n });\n var schema$7 = constant$1([required$1('toggleClass'), required$1('fetch'), onStrictHandler('onExecute'), defaulted('getHotspot', Optional.some), defaulted('getAnchorOverrides', constant$1({})), schema$y(), onStrictHandler('onItemExecute'), option('lazySink'), required$1('dom'), onHandler('onOpen'), field('splitDropdownBehaviours', [Coupling, Keying, Focusing]), defaulted('matchWidth', false), defaulted('useMinWidth', false), defaulted('eventOrder', {}), option('role')].concat(sandboxFields()));\n var arrowPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'arrow',\n defaults: function defaults() {\n return {\n buttonBehaviours: derive$1([Focusing.revoke()])\n };\n },\n overrides: function overrides(detail) {\n return {\n dom: {\n tag: 'span',\n attributes: {\n role: 'presentation'\n }\n },\n action: function action(arrow) {\n arrow.getSystem().getByUid(detail.uid).each(emitExecute);\n },\n buttonBehaviours: derive$1([Toggling.config({\n toggleOnExecute: false,\n toggleClass: detail.toggleClass\n })])\n };\n }\n });\n var buttonPart = required({\n factory: Button,\n schema: [required$1('dom')],\n name: 'button',\n defaults: function defaults() {\n return {\n buttonBehaviours: derive$1([Focusing.revoke()])\n };\n },\n overrides: function overrides(detail) {\n return {\n dom: {\n tag: 'span',\n attributes: {\n role: 'presentation'\n }\n },\n action: function action(btn) {\n btn.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onExecute(splitDropdown, btn);\n });\n }\n };\n }\n });\n var parts$3 = constant$1([arrowPart, buttonPart, optional({\n factory: {\n sketch: function sketch(spec) {\n return {\n uid: spec.uid,\n dom: {\n tag: 'span',\n styles: {\n display: 'none'\n },\n attributes: {\n 'aria-hidden': 'true'\n },\n innerHtml: spec.text\n }\n };\n }\n },\n schema: [required$1('text')],\n name: 'aria-descriptor'\n }), external$1({\n schema: [tieredMenuMarkers()],\n name: 'menu',\n defaults: function defaults(detail) {\n return {\n onExecute: function onExecute(tmenu, item) {\n tmenu.getSystem().getByUid(detail.uid).each(function (splitDropdown) {\n detail.onItemExecute(splitDropdown, tmenu, item);\n });\n }\n };\n }\n }), partType$1()]);\n\n var factory$5 = function factory$5(detail, components, spec, externals) {\n var _a;\n\n var switchToMenu = function switchToMenu(sandbox) {\n Composing.getCurrent(sandbox).each(function (current) {\n Highlighting.highlightFirst(current);\n Keying.focusIn(current);\n });\n };\n\n var action = function action(component) {\n var onOpenSync = switchToMenu;\n togglePopup(detail, identity$1, component, externals, onOpenSync, HighlightOnOpen.HighlightFirst).get(noop);\n };\n\n var openMenu = function openMenu(comp) {\n action(comp);\n return Optional.some(true);\n };\n\n var executeOnButton = function executeOnButton(comp) {\n var button = getPartOrDie(comp, detail, 'button');\n emitExecute(button);\n return Optional.some(true);\n };\n\n var buttonEvents = _assign(_assign({}, derive$2([runOnAttached(function (component, _simulatedEvent) {\n var ariaDescriptor = getPart(component, detail, 'aria-descriptor');\n ariaDescriptor.each(function (descriptor) {\n var descriptorId = generate$6('aria');\n set$8(descriptor.element, 'id', descriptorId);\n set$8(component.element, 'aria-describedby', descriptorId);\n });\n })])), events$a(Optional.some(action)));\n\n var apis = {\n repositionMenus: function repositionMenus(comp) {\n if (Toggling.isOn(comp)) {\n _repositionMenus(comp);\n }\n }\n };\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: apis,\n eventOrder: _assign(_assign({}, detail.eventOrder), (_a = {}, _a[execute$5()] = ['disabling', 'toggling', 'alloy.base.behaviour'], _a)),\n events: buttonEvents,\n behaviours: augment(detail.splitDropdownBehaviours, [Coupling.config({\n others: {\n sandbox: function sandbox(hotspot) {\n var arrow = getPartOrDie(hotspot, detail, 'arrow');\n var extras = {\n onOpen: function onOpen() {\n Toggling.on(arrow);\n Toggling.on(hotspot);\n },\n onClose: function onClose() {\n Toggling.off(arrow);\n Toggling.off(hotspot);\n }\n };\n return makeSandbox$1(detail, hotspot, extras);\n }\n }\n }), Keying.config({\n mode: 'special',\n onSpace: executeOnButton,\n onEnter: executeOnButton,\n onDown: openMenu\n }), Focusing.config({}), Toggling.config({\n toggleOnExecute: false,\n aria: {\n mode: 'expanded'\n }\n })]),\n domModification: {\n attributes: {\n 'role': detail.role.getOr('button'),\n 'aria-haspopup': true\n }\n }\n };\n };\n\n var SplitDropdown = composite({\n name: 'SplitDropdown',\n configFields: schema$7(),\n partFields: parts$3(),\n factory: factory$5,\n apis: {\n repositionMenus: function repositionMenus(apis, comp) {\n return apis.repositionMenus(comp);\n }\n }\n });\n\n var getButtonApi = function getButtonApi(component) {\n return {\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(component, state);\n }\n };\n };\n\n var getToggleApi = function getToggleApi(component) {\n return {\n setActive: function setActive(state) {\n Toggling.set(component, state);\n },\n isActive: function isActive() {\n return Toggling.isOn(component);\n },\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(component);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(component, state);\n }\n };\n };\n\n var getTooltipAttributes = function getTooltipAttributes(tooltip, providersBackstage) {\n return tooltip.map(function (tooltip) {\n return {\n 'aria-label': providersBackstage.translate(tooltip),\n 'title': providersBackstage.translate(tooltip)\n };\n }).getOr({});\n };\n\n var focusButtonEvent = generate$6('focus-button');\n\n var renderCommonStructure = function renderCommonStructure(icon, text, tooltip, receiver, behaviours, providersBackstage) {\n var _d;\n\n return {\n dom: {\n tag: 'button',\n classes: ['tox-tbtn'].concat(text.isSome() ? ['tox-tbtn--select'] : []),\n attributes: getTooltipAttributes(tooltip, providersBackstage)\n },\n components: componentRenderPipeline([icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }), text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })]),\n eventOrder: (_d = {}, _d[mousedown()] = ['focusing', 'alloy.base.behaviour', 'common-button-display-events'], _d),\n buttonBehaviours: derive$1([DisablingConfigs.toolbarButton(providersBackstage.isDisabled), receivingConfig(), config('common-button-display-events', [run$1(mousedown(), function (button, se) {\n se.event.prevent();\n emit(button, focusButtonEvent);\n })])].concat(receiver.map(function (r) {\n return Reflecting.config({\n channel: r,\n initialData: {\n icon: icon,\n text: text\n },\n renderComponents: function renderComponents(data, _state) {\n return componentRenderPipeline([data.icon.map(function (iconName) {\n return renderIconFromPack(iconName, providersBackstage.icons);\n }), data.text.map(function (text) {\n return renderLabel$1(text, 'tox-tbtn', providersBackstage);\n })]);\n }\n });\n }).toArray()).concat(behaviours.getOr([])))\n };\n };\n\n var renderFloatingToolbarButton = function renderFloatingToolbarButton(spec, backstage, identifyButtons, attributes) {\n var sharedBackstage = backstage.shared;\n return FloatingToolbarButton.sketch({\n lazySink: sharedBackstage.getSink,\n fetch: function fetch() {\n return Future.nu(function (resolve) {\n resolve(map$2(identifyButtons(spec.items), renderToolbarGroup));\n });\n },\n markers: {\n toggledClass: 'tox-tbtn--enabled'\n },\n parts: {\n button: renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), Optional.none(), sharedBackstage.providers),\n toolbar: {\n dom: {\n tag: 'div',\n classes: ['tox-toolbar__overflow'],\n attributes: attributes\n }\n }\n }\n });\n };\n\n var renderCommonToolbarButton = function renderCommonToolbarButton(spec, specialisation, providersBackstage) {\n var editorOffCell = Cell(noop);\n var structure = renderCommonStructure(spec.icon, spec.text, spec.tooltip, Optional.none(), Optional.none(), providersBackstage);\n return Button.sketch({\n dom: structure.dom,\n components: structure.components,\n eventOrder: toolbarButtonEventOrder,\n buttonBehaviours: derive$1([config('toolbar-button-events', [onToolbarButtonExecute({\n onAction: spec.onAction,\n getApi: specialisation.getApi\n }), onControlAttached(specialisation, editorOffCell), onControlDetached(specialisation, editorOffCell)]), DisablingConfigs.toolbarButton(function () {\n return spec.disabled || providersBackstage.isDisabled();\n }), receivingConfig()].concat(specialisation.toolbarButtonBehaviours))\n });\n };\n\n var renderToolbarButton = function renderToolbarButton(spec, providersBackstage) {\n return renderToolbarButtonWith(spec, providersBackstage, []);\n };\n\n var renderToolbarButtonWith = function renderToolbarButtonWith(spec, providersBackstage, bonusEvents) {\n return renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [].concat(bonusEvents.length > 0 ? [config('toolbarButtonWith', bonusEvents)] : []),\n getApi: getButtonApi,\n onSetup: spec.onSetup\n }, providersBackstage);\n };\n\n var renderToolbarToggleButton = function renderToolbarToggleButton(spec, providersBackstage) {\n return renderToolbarToggleButtonWith(spec, providersBackstage, []);\n };\n\n var renderToolbarToggleButtonWith = function renderToolbarToggleButtonWith(spec, providersBackstage, bonusEvents) {\n return deepMerge(renderCommonToolbarButton(spec, {\n toolbarButtonBehaviours: [Replacing.config({}), Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n aria: {\n mode: 'pressed'\n },\n toggleOnExecute: false\n })].concat(bonusEvents.length > 0 ? [config('toolbarToggleButtonWith', bonusEvents)] : []),\n getApi: getToggleApi,\n onSetup: spec.onSetup\n }, providersBackstage));\n };\n\n var fetchChoices = function fetchChoices(getApi, spec, providersBackstage) {\n return function (comp) {\n return Future.nu(function (callback) {\n return spec.fetch(callback);\n }).map(function (items) {\n return Optional.from(createTieredDataFrom(deepMerge(createPartialChoiceMenu(generate$6('menu-value'), items, function (value) {\n spec.onItemAction(getApi(comp), value);\n }, spec.columns, spec.presets, ItemResponse$1.CLOSE_ON_EXECUTE, spec.select.getOr(never), providersBackstage), {\n movement: deriveMenuMovement(spec.columns, spec.presets),\n menuBehaviours: SimpleBehaviours.unnamedEvents(spec.columns !== 'auto' ? [] : [runOnAttached(function (comp, _se) {\n detectSize(comp, 4, classForPreset(spec.presets)).each(function (_d) {\n var numRows = _d.numRows,\n numColumns = _d.numColumns;\n Keying.setGridSize(comp, numRows, numColumns);\n });\n })])\n })));\n });\n };\n };\n\n var renderSplitButton = function renderSplitButton(spec, sharedBackstage) {\n var _d;\n\n var displayChannel = generate$6('channel-update-split-dropdown-display');\n\n var getApi = function getApi(comp) {\n return {\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(comp);\n },\n setDisabled: function setDisabled(state) {\n return Disabling.set(comp, state);\n },\n setIconFill: function setIconFill(id, value) {\n descendant(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$8(underlinePath, 'fill', value);\n });\n },\n setIconStroke: function setIconStroke(id, value) {\n descendant(comp.element, 'svg path[id=\"' + id + '\"], rect[id=\"' + id + '\"]').each(function (underlinePath) {\n set$8(underlinePath, 'stroke', value);\n });\n },\n setActive: function setActive(state) {\n set$8(comp.element, 'aria-pressed', state);\n descendant(comp.element, 'span').each(function (button) {\n comp.getSystem().getByDom(button).each(function (buttonComp) {\n return Toggling.set(buttonComp, state);\n });\n });\n },\n isActive: function isActive() {\n return descendant(comp.element, 'span').exists(function (button) {\n return comp.getSystem().getByDom(button).exists(Toggling.isOn);\n });\n }\n };\n };\n\n var editorOffCell = Cell(noop);\n var specialisation = {\n getApi: getApi,\n onSetup: spec.onSetup\n };\n return SplitDropdown.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-split-button'],\n attributes: _assign({\n 'aria-pressed': false\n }, getTooltipAttributes(spec.tooltip, sharedBackstage.providers))\n },\n onExecute: function onExecute(button) {\n spec.onAction(getApi(button));\n },\n onItemExecute: function onItemExecute(_a, _b, _c) {},\n splitDropdownBehaviours: derive$1([DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled), receivingConfig(), config('split-dropdown-events', [run$1(focusButtonEvent, Focusing.focus), onControlAttached(specialisation, editorOffCell), onControlDetached(specialisation, editorOffCell)]), Unselecting.config({})]),\n eventOrder: (_d = {}, _d[attachedToDom()] = ['alloy.base.behaviour', 'split-dropdown-events'], _d),\n toggleClass: 'tox-tbtn--enabled',\n lazySink: sharedBackstage.getSink,\n fetch: fetchChoices(getApi, spec, sharedBackstage.providers),\n parts: {\n menu: part(false, spec.columns, spec.presets)\n },\n components: [SplitDropdown.parts.button(renderCommonStructure(spec.icon, spec.text, Optional.none(), Optional.some(displayChannel), Optional.some([Toggling.config({\n toggleClass: 'tox-tbtn--enabled',\n toggleOnExecute: false\n })]), sharedBackstage.providers)), SplitDropdown.parts.arrow({\n dom: {\n tag: 'button',\n classes: ['tox-tbtn', 'tox-split-button__chevron'],\n innerHtml: get$1('chevron-down', sharedBackstage.providers.icons)\n },\n buttonBehaviours: derive$1([DisablingConfigs.splitButton(sharedBackstage.providers.isDisabled), receivingConfig(), addFocusableBehaviour()])\n }), SplitDropdown.parts['aria-descriptor']({\n text: sharedBackstage.providers.translate('To open the popup, press Shift+Enter')\n })]\n });\n };\n\n var defaultToolbar = [{\n name: 'history',\n items: ['undo', 'redo']\n }, {\n name: 'styles',\n items: ['styleselect']\n }, {\n name: 'formatting',\n items: ['bold', 'italic']\n }, {\n name: 'alignment',\n items: ['alignleft', 'aligncenter', 'alignright', 'alignjustify']\n }, {\n name: 'indentation',\n items: ['outdent', 'indent']\n }, {\n name: 'permanent pen',\n items: ['permanentpen']\n }, {\n name: 'comments',\n items: ['addcomment']\n }];\n\n var renderFromBridge = function renderFromBridge(bridgeBuilder, render) {\n return function (spec, extras, editor) {\n var internal = bridgeBuilder(spec).mapError(function (errInfo) {\n return formatError(errInfo);\n }).getOrDie();\n return render(internal, extras, editor);\n };\n };\n\n var types = {\n button: renderFromBridge(createToolbarButton, function (s, extras) {\n return renderToolbarButton(s, extras.backstage.shared.providers);\n }),\n togglebutton: renderFromBridge(createToggleButton, function (s, extras) {\n return renderToolbarToggleButton(s, extras.backstage.shared.providers);\n }),\n menubutton: renderFromBridge(createMenuButton, function (s, extras) {\n return renderMenuButton(s, 'tox-tbtn', extras.backstage, Optional.none());\n }),\n splitbutton: renderFromBridge(createSplitButton, function (s, extras) {\n return renderSplitButton(s, extras.backstage.shared);\n }),\n grouptoolbarbutton: renderFromBridge(createGroupToolbarButton, function (s, extras, editor) {\n var _a;\n\n var buttons = editor.ui.registry.getAll().buttons;\n\n var identify = function identify(toolbar) {\n return identifyButtons(editor, {\n buttons: buttons,\n toolbar: toolbar,\n allowToolbarGroups: false\n }, extras, Optional.none());\n };\n\n var attributes = (_a = {}, _a[Attribute] = extras.backstage.shared.header.isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop, _a);\n\n switch (getToolbarMode(editor)) {\n case ToolbarMode.floating:\n return renderFloatingToolbarButton(s, extras.backstage, identify, attributes);\n\n default:\n throw new Error('Toolbar groups are only supported when using floating toolbar mode');\n }\n }),\n styleSelectButton: function styleSelectButton(editor, extras) {\n return createStyleSelect(editor, extras.backstage);\n },\n fontsizeSelectButton: function fontsizeSelectButton(editor, extras) {\n return createFontsizeSelect(editor, extras.backstage);\n },\n fontSelectButton: function fontSelectButton(editor, extras) {\n return createFontSelect(editor, extras.backstage);\n },\n formatButton: function formatButton(editor, extras) {\n return createFormatSelect(editor, extras.backstage);\n },\n alignMenuButton: function alignMenuButton(editor, extras) {\n return createAlignSelect(editor, extras.backstage);\n }\n };\n\n var extractFrom = function extractFrom(spec, extras, editor) {\n return get$e(types, spec.type).fold(function () {\n console.error('skipping button defined by', spec);\n return Optional.none();\n }, function (render) {\n return Optional.some(render(spec, extras, editor));\n });\n };\n\n var bespokeButtons = {\n styleselect: types.styleSelectButton,\n fontsizeselect: types.fontsizeSelectButton,\n fontselect: types.fontSelectButton,\n formatselect: types.formatButton,\n align: types.alignMenuButton\n };\n\n var removeUnusedDefaults = function removeUnusedDefaults(buttons) {\n var filteredItemGroups = map$2(defaultToolbar, function (group) {\n var items = filter$2(group.items, function (subItem) {\n return has$2(buttons, subItem) || has$2(bespokeButtons, subItem);\n });\n return {\n name: group.name,\n items: items\n };\n });\n return filter$2(filteredItemGroups, function (group) {\n return group.items.length > 0;\n });\n };\n\n var convertStringToolbar = function convertStringToolbar(strToolbar) {\n var groupsStrings = strToolbar.split('|');\n return map$2(groupsStrings, function (g) {\n return {\n items: g.trim().split(' ')\n };\n });\n };\n\n var isToolbarGroupSettingArray = function isToolbarGroupSettingArray(toolbar) {\n return isArrayOf(toolbar, function (t) {\n return has$2(t, 'name') && has$2(t, 'items');\n });\n };\n\n var createToolbar = function createToolbar(toolbarConfig) {\n var toolbar = toolbarConfig.toolbar;\n var buttons = toolbarConfig.buttons;\n\n if (toolbar === false) {\n return [];\n } else if (toolbar === undefined || toolbar === true) {\n return removeUnusedDefaults(buttons);\n } else if (isString(toolbar)) {\n return convertStringToolbar(toolbar);\n } else if (isToolbarGroupSettingArray(toolbar)) {\n return toolbar;\n } else {\n console.error('Toolbar type should be string, string[], boolean or ToolbarGroup[]');\n return [];\n }\n };\n\n var lookupButton = function lookupButton(editor, buttons, toolbarItem, allowToolbarGroups, extras, prefixes) {\n return get$e(buttons, toolbarItem.toLowerCase()).orThunk(function () {\n return prefixes.bind(function (ps) {\n return findMap(ps, function (prefix) {\n return get$e(buttons, prefix + toolbarItem.toLowerCase());\n });\n });\n }).fold(function () {\n return get$e(bespokeButtons, toolbarItem.toLowerCase()).map(function (r) {\n return r(editor, extras);\n }).orThunk(function () {\n return Optional.none();\n });\n }, function (spec) {\n if (spec.type === 'grouptoolbarbutton' && !allowToolbarGroups) {\n console.warn('Ignoring the \\'' + toolbarItem + '\\' toolbar button. Group toolbar buttons are only supported when using floating toolbar mode and cannot be nested.');\n return Optional.none();\n } else {\n return extractFrom(spec, extras, editor);\n }\n });\n };\n\n var identifyButtons = function identifyButtons(editor, toolbarConfig, extras, prefixes) {\n var toolbarGroups = createToolbar(toolbarConfig);\n var groups = map$2(toolbarGroups, function (group) {\n var items = bind$3(group.items, function (toolbarItem) {\n return toolbarItem.trim().length === 0 ? [] : lookupButton(editor, toolbarConfig.buttons, toolbarItem, toolbarConfig.allowToolbarGroups, extras, prefixes).toArray();\n });\n return {\n title: Optional.from(editor.translate(group.name)),\n items: items\n };\n });\n return filter$2(groups, function (group) {\n return group.items.length > 0;\n });\n };\n\n var setToolbar = function setToolbar(editor, uiComponents, rawUiConfig, backstage) {\n var comp = uiComponents.outerContainer;\n var toolbarConfig = rawUiConfig.toolbar;\n var toolbarButtonsConfig = rawUiConfig.buttons;\n\n if (isArrayOf(toolbarConfig, isString)) {\n var toolbars = toolbarConfig.map(function (t) {\n var config = {\n toolbar: t,\n buttons: toolbarButtonsConfig,\n allowToolbarGroups: rawUiConfig.allowToolbarGroups\n };\n return identifyButtons(editor, config, {\n backstage: backstage\n }, Optional.none());\n });\n OuterContainer.setToolbars(comp, toolbars);\n } else {\n OuterContainer.setToolbar(comp, identifyButtons(editor, rawUiConfig, {\n backstage: backstage\n }, Optional.none()));\n }\n };\n\n var detection = detect$1();\n var isiOS12 = detection.os.isiOS() && detection.os.version.major <= 12;\n\n var setupEvents$1 = function setupEvents$1(editor, uiComponents) {\n var dom = editor.dom;\n var contentWindow = editor.getWin();\n var initialDocEle = editor.getDoc().documentElement;\n var lastWindowDimensions = Cell(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n var lastDocumentDimensions = Cell(SugarPosition(initialDocEle.offsetWidth, initialDocEle.offsetHeight));\n\n var resizeWindow = function resizeWindow() {\n var outer = lastWindowDimensions.get();\n\n if (outer.left !== contentWindow.innerWidth || outer.top !== contentWindow.innerHeight) {\n lastWindowDimensions.set(SugarPosition(contentWindow.innerWidth, contentWindow.innerHeight));\n fireResizeContent(editor);\n }\n };\n\n var resizeDocument = function resizeDocument() {\n var docEle = editor.getDoc().documentElement;\n var inner = lastDocumentDimensions.get();\n\n if (inner.left !== docEle.offsetWidth || inner.top !== docEle.offsetHeight) {\n lastDocumentDimensions.set(SugarPosition(docEle.offsetWidth, docEle.offsetHeight));\n fireResizeContent(editor);\n }\n };\n\n var scroll = function scroll(e) {\n return fireScrollContent(editor, e);\n };\n\n dom.bind(contentWindow, 'resize', resizeWindow);\n dom.bind(contentWindow, 'scroll', scroll);\n var elementLoad = capture(SugarElement.fromDom(editor.getBody()), 'load', resizeDocument);\n var mothership = uiComponents.uiMothership.element;\n editor.on('hide', function () {\n set$7(mothership, 'display', 'none');\n });\n editor.on('show', function () {\n remove$6(mothership, 'display');\n });\n editor.on('NodeChange', resizeDocument);\n editor.on('remove', function () {\n elementLoad.unbind();\n dom.unbind(contentWindow, 'resize', resizeWindow);\n dom.unbind(contentWindow, 'scroll', scroll);\n contentWindow = null;\n });\n };\n\n var render$1 = function render$1(editor, uiComponents, rawUiConfig, backstage, args) {\n var lastToolbarWidth = Cell(0);\n var outerContainer = uiComponents.outerContainer;\n iframe(editor);\n var eTargetNode = SugarElement.fromDom(args.targetNode);\n var uiRoot = getContentContainer(getRootNode(eTargetNode));\n attachSystemAfter(eTargetNode, uiComponents.mothership);\n attachSystem(uiRoot, uiComponents.uiMothership);\n editor.on('PostRender', function () {\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n lastToolbarWidth.set(editor.getWin().innerWidth);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n OuterContainer.setSidebar(outerContainer, rawUiConfig.sidebar);\n setupEvents$1(editor, uiComponents);\n });\n var socket = OuterContainer.getSocket(outerContainer).getOrDie('Could not find expected socket element');\n\n if (isiOS12) {\n setAll(socket.element, {\n 'overflow': 'scroll',\n '-webkit-overflow-scrolling': 'touch'\n });\n var limit = first(function () {\n editor.fire('ScrollContent');\n }, 20);\n var unbinder = bind(socket.element, 'scroll', limit.throttle);\n editor.on('remove', unbinder.unbind);\n }\n\n setupReadonlyModeSwitch(editor, uiComponents);\n editor.addCommand('ToggleSidebar', function (_ui, value) {\n OuterContainer.toggleSidebar(outerContainer, value);\n editor.fire('ToggleSidebar');\n });\n editor.addQueryValueHandler('ToggleSidebar', function () {\n return OuterContainer.whichSidebar(outerContainer);\n });\n var toolbarMode = getToolbarMode(editor);\n\n var refreshDrawer = function refreshDrawer() {\n OuterContainer.refreshToolbar(uiComponents.outerContainer);\n };\n\n if (toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating) {\n editor.on('ResizeWindow ResizeEditor ResizeContent', function () {\n var width = editor.getWin().innerWidth;\n\n if (width !== lastToolbarWidth.get()) {\n refreshDrawer();\n lastToolbarWidth.set(width);\n }\n });\n }\n\n var api = {\n enable: function enable() {\n broadcastReadonly(uiComponents, false);\n },\n disable: function disable() {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(outerContainer);\n }\n };\n return {\n iframeContainer: socket.element.dom,\n editorContainer: outerContainer.element.dom,\n api: api\n };\n };\n\n var Iframe = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render$1\n });\n\n var parseToInt = function parseToInt(val) {\n var re = /^[0-9\\.]+(|px)$/i;\n\n if (re.test('' + val)) {\n return Optional.some(parseInt('' + val, 10));\n }\n\n return Optional.none();\n };\n\n var numToPx = function numToPx(val) {\n return isNumber(val) ? val + 'px' : val;\n };\n\n var calcCappedSize = function calcCappedSize(size, minSize, maxSize) {\n var minOverride = minSize.filter(function (min) {\n return size < min;\n });\n var maxOverride = maxSize.filter(function (max) {\n return size > max;\n });\n return minOverride.or(maxOverride).getOr(size);\n };\n\n var getHeight = function getHeight(editor) {\n var baseHeight = getHeightSetting(editor);\n var minHeight = getMinHeightSetting(editor);\n var maxHeight = getMaxHeightSetting(editor);\n return parseToInt(baseHeight).map(function (height) {\n return calcCappedSize(height, minHeight, maxHeight);\n });\n };\n\n var getHeightWithFallback = function getHeightWithFallback(editor) {\n var height = getHeight(editor);\n return height.getOr(getHeightSetting(editor));\n };\n\n var getWidth = function getWidth(editor) {\n var baseWidth = getWidthSetting(editor);\n var minWidth = getMinWidthSetting(editor);\n var maxWidth = getMaxWidthSetting(editor);\n return parseToInt(baseWidth).map(function (width) {\n return calcCappedSize(width, minWidth, maxWidth);\n });\n };\n\n var getWidthWithFallback = function getWidthWithFallback(editor) {\n var width = getWidth(editor);\n return width.getOr(getWidthSetting(editor));\n };\n\n var InlineHeader = function InlineHeader(editor, targetElm, uiComponents, backstage, floatContainer) {\n var uiMothership = uiComponents.uiMothership,\n outerContainer = uiComponents.outerContainer;\n var DOM = global$b.DOM;\n var useFixedToolbarContainer = useFixedContainer(editor);\n var isSticky = isStickyToolbar(editor);\n var editorMaxWidthOpt = getMaxWidthSetting(editor).or(getWidth(editor));\n var headerBackstage = backstage.shared.header;\n var isPositionedAtTop = headerBackstage.isPositionedAtTop;\n var toolbarMode = getToolbarMode(editor);\n var isSplitToolbar = toolbarMode === ToolbarMode.sliding || toolbarMode === ToolbarMode.floating;\n var visible = Cell(false);\n\n var isVisible = function isVisible() {\n return visible.get() && !editor.removed;\n };\n\n var calcToolbarOffset = function calcToolbarOffset(toolbar) {\n return isSplitToolbar ? toolbar.fold(constant$1(0), function (tbar) {\n return tbar.components().length > 1 ? get$b(tbar.components()[1].element) : 0;\n }) : 0;\n };\n\n var calcMode = function calcMode(container) {\n switch (getToolbarLocation(editor)) {\n case ToolbarLocation.auto:\n var toolbar_1 = OuterContainer.getToolbar(outerContainer);\n var offset = calcToolbarOffset(toolbar_1);\n var toolbarHeight = get$b(container.element) - offset;\n var targetBounds = box$1(targetElm);\n var roomAtTop = targetBounds.y > toolbarHeight;\n\n if (roomAtTop) {\n return 'top';\n } else {\n var doc = documentElement(targetElm);\n var docHeight = Math.max(doc.dom.scrollHeight, get$b(doc));\n var roomAtBottom = targetBounds.bottom < docHeight - toolbarHeight;\n\n if (roomAtBottom) {\n return 'bottom';\n } else {\n var winBounds = win();\n var isRoomAtBottomViewport = winBounds.bottom < targetBounds.bottom - toolbarHeight;\n return isRoomAtBottomViewport ? 'bottom' : 'top';\n }\n }\n\n case ToolbarLocation.bottom:\n return 'bottom';\n\n case ToolbarLocation.top:\n default:\n return 'top';\n }\n };\n\n var setupMode = function setupMode(mode) {\n var container = floatContainer.get();\n Docking.setModes(container, [mode]);\n headerBackstage.setDockingMode(mode);\n var verticalDir = isPositionedAtTop() ? AttributeValue.TopToBottom : AttributeValue.BottomToTop;\n set$8(container.element, Attribute, verticalDir);\n };\n\n var updateChromeWidth = function updateChromeWidth() {\n var maxWidth = editorMaxWidthOpt.getOrThunk(function () {\n var bodyMargin = parseToInt(get$c(body(), 'margin-left')).getOr(0);\n return get$a(body()) - absolute$3(targetElm).left + bodyMargin;\n });\n set$7(floatContainer.get().element, 'max-width', maxWidth + 'px');\n };\n\n var updateChromePosition = function updateChromePosition() {\n var toolbar = OuterContainer.getToolbar(outerContainer);\n var offset = calcToolbarOffset(toolbar);\n var targetBounds = box$1(targetElm);\n var top = isPositionedAtTop() ? Math.max(targetBounds.y - get$b(floatContainer.get().element) + offset, 0) : targetBounds.bottom;\n setAll(outerContainer.element, {\n position: 'absolute',\n top: Math.round(top) + 'px',\n left: Math.round(targetBounds.x) + 'px'\n });\n };\n\n var repositionPopups$1 = function repositionPopups$1() {\n uiMothership.broadcastOn([repositionPopups()], {});\n };\n\n var updateChromeUi = function updateChromeUi(resetDocking) {\n if (resetDocking === void 0) {\n resetDocking = false;\n }\n\n if (!isVisible()) {\n return;\n }\n\n if (!useFixedToolbarContainer) {\n updateChromeWidth();\n }\n\n if (isSplitToolbar) {\n OuterContainer.refreshToolbar(outerContainer);\n }\n\n if (!useFixedToolbarContainer) {\n updateChromePosition();\n }\n\n if (isSticky) {\n var floatContainerComp = floatContainer.get();\n resetDocking ? Docking.reset(floatContainerComp) : Docking.refresh(floatContainerComp);\n }\n\n repositionPopups$1();\n };\n\n var updateMode = function updateMode(updateUi) {\n if (updateUi === void 0) {\n updateUi = true;\n }\n\n if (useFixedToolbarContainer || !isSticky || !isVisible()) {\n return;\n }\n\n var currentMode = headerBackstage.getDockingMode();\n var newMode = calcMode(floatContainer.get());\n\n if (newMode !== currentMode) {\n setupMode(newMode);\n\n if (updateUi) {\n updateChromeUi(true);\n }\n }\n };\n\n var show = function show() {\n visible.set(true);\n set$7(outerContainer.element, 'display', 'flex');\n DOM.addClass(editor.getBody(), 'mce-edit-focus');\n remove$6(uiMothership.element, 'display');\n updateMode(false);\n updateChromeUi();\n };\n\n var hide = function hide() {\n visible.set(false);\n\n if (uiComponents.outerContainer) {\n set$7(outerContainer.element, 'display', 'none');\n DOM.removeClass(editor.getBody(), 'mce-edit-focus');\n }\n\n set$7(uiMothership.element, 'display', 'none');\n };\n\n return {\n isVisible: isVisible,\n isPositionedAtTop: isPositionedAtTop,\n show: show,\n hide: hide,\n update: updateChromeUi,\n updateMode: updateMode,\n repositionPopups: repositionPopups$1\n };\n };\n\n var getTargetPosAndBounds = function getTargetPosAndBounds(targetElm, isToolbarTop) {\n var bounds = box$1(targetElm);\n return {\n pos: isToolbarTop ? bounds.y : bounds.bottom,\n bounds: bounds\n };\n };\n\n var setupEvents = function setupEvents(editor, targetElm, ui, toolbarPersist) {\n var prevPosAndBounds = Cell(getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()));\n\n var resizeContent = function resizeContent(e) {\n var _a = getTargetPosAndBounds(targetElm, ui.isPositionedAtTop()),\n pos = _a.pos,\n bounds = _a.bounds;\n\n var _b = prevPosAndBounds.get(),\n prevPos = _b.pos,\n prevBounds = _b.bounds;\n\n var hasResized = bounds.height !== prevBounds.height || bounds.width !== prevBounds.width;\n prevPosAndBounds.set({\n pos: pos,\n bounds: bounds\n });\n\n if (hasResized) {\n fireResizeContent(editor, e);\n }\n\n if (ui.isVisible()) {\n if (prevPos !== pos) {\n ui.update(true);\n } else if (hasResized) {\n ui.updateMode();\n ui.repositionPopups();\n }\n }\n };\n\n if (!toolbarPersist) {\n editor.on('activate', ui.show);\n editor.on('deactivate', ui.hide);\n }\n\n editor.on('SkinLoaded ResizeWindow', function () {\n return ui.update(true);\n });\n editor.on('NodeChange keydown', function (e) {\n global$f.requestAnimationFrame(function () {\n return resizeContent(e);\n });\n });\n editor.on('ScrollWindow', function () {\n return ui.updateMode();\n });\n var elementLoad = unbindable();\n elementLoad.set(capture(SugarElement.fromDom(editor.getBody()), 'load', resizeContent));\n editor.on('remove', function () {\n elementLoad.clear();\n });\n };\n\n var render = function render(editor, uiComponents, rawUiConfig, backstage, args) {\n var mothership = uiComponents.mothership,\n uiMothership = uiComponents.uiMothership,\n outerContainer = uiComponents.outerContainer;\n var floatContainer = Cell(null);\n var targetElm = SugarElement.fromDom(args.targetNode);\n var ui = InlineHeader(editor, targetElm, uiComponents, backstage, floatContainer);\n var toolbarPersist = isToolbarPersist(editor);\n inline(editor);\n\n var render = function render() {\n if (floatContainer.get()) {\n ui.show();\n return;\n }\n\n floatContainer.set(OuterContainer.getHeader(outerContainer).getOrDie());\n var uiContainer = getUiContainer(editor);\n attachSystem(uiContainer, mothership);\n attachSystem(uiContainer, uiMothership);\n setToolbar(editor, uiComponents, rawUiConfig, backstage);\n OuterContainer.setMenubar(outerContainer, identifyMenus(editor, rawUiConfig));\n ui.show();\n setupEvents(editor, targetElm, ui, toolbarPersist);\n editor.nodeChanged();\n };\n\n var delayedRender = function delayedRender() {\n return global$f.setEditorTimeout(editor, render, 0);\n };\n\n editor.on('show', render);\n editor.on('hide', ui.hide);\n\n if (!toolbarPersist) {\n editor.on('focus', delayedRender);\n editor.on('blur', ui.hide);\n }\n\n editor.on('init', function () {\n if (editor.hasFocus() || toolbarPersist) {\n delayedRender();\n }\n });\n setupReadonlyModeSwitch(editor, uiComponents);\n var api = {\n show: function show() {\n ui.show();\n },\n hide: function hide() {\n ui.hide();\n },\n enable: function enable() {\n broadcastReadonly(uiComponents, false);\n },\n disable: function disable() {\n broadcastReadonly(uiComponents, true);\n },\n isDisabled: function isDisabled() {\n return Disabling.isDisabled(outerContainer);\n }\n };\n return {\n editorContainer: outerContainer.element.dom,\n api: api\n };\n };\n\n var Inline = /*#__PURE__*/Object.freeze({\n __proto__: null,\n render: render\n });\n var showContextToolbarEvent = 'contexttoolbar-show';\n var hideContextToolbarEvent = 'contexttoolbar-hide';\n\n var getFormApi = function getFormApi(input) {\n return {\n hide: function hide() {\n return emit(input, sandboxClose());\n },\n getValue: function getValue() {\n return Representing.getValue(input);\n }\n };\n };\n\n var runOnExecute = function runOnExecute(memInput, original) {\n return run$1(internalToolbarButtonExecute, function (comp, se) {\n var input = memInput.get(comp);\n var formApi = getFormApi(input);\n original.onAction(formApi, se.event.buttonApi);\n });\n };\n\n var renderContextButton = function renderContextButton(memInput, button, extras) {\n var _a = button.original;\n _a.primary;\n\n var rest = __rest(_a, ['primary']);\n\n var bridged = getOrDie(createToolbarButton(_assign(_assign({}, rest), {\n type: 'button',\n onAction: noop\n })));\n return renderToolbarButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n\n var renderContextToggleButton = function renderContextToggleButton(memInput, button, extras) {\n var _a = button.original;\n _a.primary;\n\n var rest = __rest(_a, ['primary']);\n\n var bridged = getOrDie(createToggleButton(_assign(_assign({}, rest), {\n type: 'togglebutton',\n onAction: noop\n })));\n return renderToolbarToggleButtonWith(bridged, extras.backstage.shared.providers, [runOnExecute(memInput, button)]);\n };\n\n var generateOne = function generateOne(memInput, button, providersBackstage) {\n var extras = {\n backstage: {\n shared: {\n providers: providersBackstage\n }\n }\n };\n\n if (button.type === 'contextformtogglebutton') {\n return renderContextToggleButton(memInput, button, extras);\n } else {\n return renderContextButton(memInput, button, extras);\n }\n };\n\n var generate = function generate(memInput, buttons, providersBackstage) {\n var mementos = map$2(buttons, function (button) {\n return record(generateOne(memInput, button, providersBackstage));\n });\n\n var asSpecs = function asSpecs() {\n return map$2(mementos, function (mem) {\n return mem.asSpec();\n });\n };\n\n var findPrimary = function findPrimary(compInSystem) {\n return findMap(buttons, function (button, i) {\n if (button.primary) {\n return Optional.from(mementos[i]).bind(function (mem) {\n return mem.getOpt(compInSystem);\n }).filter(not(Disabling.isDisabled));\n } else {\n return Optional.none();\n }\n });\n };\n\n return {\n asSpecs: asSpecs,\n findPrimary: findPrimary\n };\n };\n\n var buildInitGroups = function buildInitGroups(ctx, providers) {\n var inputAttributes = ctx.label.fold(function () {\n return {};\n }, function (label) {\n return {\n 'aria-label': label\n };\n });\n var memInput = record(Input.sketch({\n inputClasses: ['tox-toolbar-textfield', 'tox-toolbar-nav-js'],\n data: ctx.initValue(),\n inputAttributes: inputAttributes,\n selectOnFocus: true,\n inputBehaviours: derive$1([Keying.config({\n mode: 'special',\n onEnter: function onEnter(input) {\n return commands.findPrimary(input).map(function (primary) {\n emitExecute(primary);\n return true;\n });\n },\n onLeft: function onLeft(comp, se) {\n se.cut();\n return Optional.none();\n },\n onRight: function onRight(comp, se) {\n se.cut();\n return Optional.none();\n }\n })])\n }));\n var commands = generate(memInput, ctx.commands, providers);\n return [{\n title: Optional.none(),\n items: [memInput.asSpec()]\n }, {\n title: Optional.none(),\n items: commands.asSpecs()\n }];\n };\n\n var renderContextForm = function renderContextForm(toolbarType, ctx, providers) {\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: buildInitGroups(ctx, providers),\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: providers\n });\n };\n\n var ContextForm = {\n renderContextForm: renderContextForm,\n buildInitGroups: buildInitGroups\n };\n\n var isVerticalOverlap = function isVerticalOverlap(a, b, threshold) {\n if (threshold === void 0) {\n threshold = 0.01;\n }\n\n return b.bottom - a.y >= threshold && a.bottom - b.y >= threshold;\n };\n\n var getRangeRect = function getRangeRect(rng) {\n var rect = rng.getBoundingClientRect();\n\n if (rect.height <= 0 && rect.width <= 0) {\n var leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset).element;\n var elm = isText$1(leaf$1) ? parent(leaf$1) : Optional.some(leaf$1);\n return elm.filter(isElement$2).map(function (e) {\n return e.dom.getBoundingClientRect();\n }).getOr(rect);\n } else {\n return rect;\n }\n };\n\n var getSelectionBounds = function getSelectionBounds(editor) {\n var rng = editor.selection.getRng();\n var rect = getRangeRect(rng);\n\n if (editor.inline) {\n var scroll_1 = get$9();\n return bounds(scroll_1.left + rect.left, scroll_1.top + rect.top, rect.width, rect.height);\n } else {\n var bodyPos = absolute$2(SugarElement.fromDom(editor.getBody()));\n return bounds(bodyPos.x + rect.left, bodyPos.y + rect.top, rect.width, rect.height);\n }\n };\n\n var getAnchorElementBounds = function getAnchorElementBounds(editor, lastElement) {\n return lastElement.filter(inBody).map(absolute$2).getOrThunk(function () {\n return getSelectionBounds(editor);\n });\n };\n\n var getHorizontalBounds = function getHorizontalBounds(contentAreaBox, viewportBounds, margin) {\n var x = Math.max(contentAreaBox.x + margin, viewportBounds.x);\n var right = Math.min(contentAreaBox.right - margin, viewportBounds.right);\n return {\n x: x,\n width: right - x\n };\n };\n\n var getVerticalBounds = function getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarLocationTop, toolbarType, margin) {\n var container = SugarElement.fromDom(editor.getContainer());\n var header = descendant(container, '.tox-editor-header').getOr(container);\n var headerBox = box$1(header);\n var isToolbarBelowContentArea = headerBox.y >= contentAreaBox.bottom;\n var isToolbarAbove = isToolbarLocationTop && !isToolbarBelowContentArea;\n\n if (editor.inline && isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: viewportBounds.bottom\n };\n }\n\n if (editor.inline && !isToolbarAbove) {\n return {\n y: viewportBounds.y,\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n }\n\n var containerBounds = toolbarType === 'line' ? box$1(container) : contentAreaBox;\n\n if (isToolbarAbove) {\n return {\n y: Math.max(headerBox.bottom + margin, viewportBounds.y),\n bottom: Math.min(containerBounds.bottom - margin, viewportBounds.bottom)\n };\n }\n\n return {\n y: Math.max(containerBounds.y + margin, viewportBounds.y),\n bottom: Math.min(headerBox.y - margin, viewportBounds.bottom)\n };\n };\n\n var getContextToolbarBounds = function getContextToolbarBounds(editor, sharedBackstage, toolbarType, margin) {\n if (margin === void 0) {\n margin = 0;\n }\n\n var viewportBounds = getBounds$3(window);\n var contentAreaBox = box$1(SugarElement.fromDom(editor.getContentAreaContainer()));\n var toolbarOrMenubarEnabled = isMenubarEnabled(editor) || isToolbarEnabled(editor) || isMultipleToolbars(editor);\n\n var _a = getHorizontalBounds(contentAreaBox, viewportBounds, margin),\n x = _a.x,\n width = _a.width;\n\n if (editor.inline && !toolbarOrMenubarEnabled) {\n return bounds(x, viewportBounds.y, width, viewportBounds.height);\n } else {\n var isToolbarTop = sharedBackstage.header.isPositionedAtTop();\n\n var _b = getVerticalBounds(editor, contentAreaBox, viewportBounds, isToolbarTop, toolbarType, margin),\n y = _b.y,\n bottom = _b.bottom;\n\n return bounds(x, y, width, bottom - y);\n }\n };\n\n var bubbleSize$1 = 12;\n var bubbleAlignments$1 = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top'],\n inset: ['tox-pop--inset']\n };\n var anchorOverrides = {\n maxHeightFunction: expandable$1(),\n maxWidthFunction: expandable()\n };\n\n var isEntireElementSelected = function isEntireElementSelected(editor, elem) {\n var rng = editor.selection.getRng();\n var leaf$1 = leaf(SugarElement.fromDom(rng.startContainer), rng.startOffset);\n return rng.startContainer === rng.endContainer && rng.startOffset === rng.endOffset - 1 && eq(leaf$1.element, elem);\n };\n\n var preservePosition = function preservePosition(elem, position, f) {\n var currentPosition = getRaw(elem, 'position');\n set$7(elem, 'position', position);\n var result = f(elem);\n currentPosition.each(function (pos) {\n return set$7(elem, 'position', pos);\n });\n return result;\n };\n\n var shouldUseInsetLayouts = function shouldUseInsetLayouts(position) {\n return position === 'node';\n };\n\n var determineInsetLayout = function determineInsetLayout(editor, contextbar, elem, data, bounds) {\n var selectionBounds = getSelectionBounds(editor);\n var isSameAnchorElement = data.lastElement().exists(function (prev) {\n return eq(elem, prev);\n });\n\n if (isEntireElementSelected(editor, elem)) {\n return isSameAnchorElement ? preserve : north;\n } else if (isSameAnchorElement) {\n return preservePosition(contextbar, data.getMode(), function () {\n var isOverlapping = isVerticalOverlap(selectionBounds, box$1(contextbar));\n return isOverlapping && !data.isReposition() ? flip$2 : preserve;\n });\n } else {\n var yBounds = data.getMode() === 'fixed' ? bounds.y + get$9().top : bounds.y;\n var contextbarHeight = get$b(contextbar) + bubbleSize$1;\n return yBounds + contextbarHeight <= selectionBounds.y ? north : south;\n }\n };\n\n var getAnchorSpec$2 = function getAnchorSpec$2(editor, mobile, data, position) {\n var smartInsetLayout = function smartInsetLayout(elem) {\n return function (anchor, element, bubbles, placee, bounds) {\n var layout = determineInsetLayout(editor, placee, elem, data, bounds);\n\n var newAnchor = _assign(_assign({}, anchor), {\n y: bounds.y,\n height: bounds.height\n });\n\n return _assign(_assign({}, layout(newAnchor, element, bubbles, placee, bounds)), {\n alwaysFit: true\n });\n };\n };\n\n var getInsetLayouts = function getInsetLayouts(elem) {\n return shouldUseInsetLayouts(position) ? [smartInsetLayout(elem)] : [];\n };\n\n var desktopAnchorSpecLayouts = {\n onLtr: function onLtr(elem) {\n return [north$2, south$2, northeast$2, southeast$2, northwest$2, southwest$2].concat(getInsetLayouts(elem));\n },\n onRtl: function onRtl(elem) {\n return [north$2, south$2, northwest$2, southwest$2, northeast$2, southeast$2].concat(getInsetLayouts(elem));\n }\n };\n var mobileAnchorSpecLayouts = {\n onLtr: function onLtr(elem) {\n return [south$2, southeast$2, southwest$2, northeast$2, northwest$2, north$2].concat(getInsetLayouts(elem));\n },\n onRtl: function onRtl(elem) {\n return [south$2, southwest$2, southeast$2, northwest$2, northeast$2, north$2].concat(getInsetLayouts(elem));\n }\n };\n return mobile ? mobileAnchorSpecLayouts : desktopAnchorSpecLayouts;\n };\n\n var getAnchorLayout = function getAnchorLayout(editor, position, isTouch, data) {\n if (position === 'line') {\n return {\n bubble: nu$5(bubbleSize$1, 0, bubbleAlignments$1),\n layouts: {\n onLtr: function onLtr() {\n return [east$2];\n },\n onRtl: function onRtl() {\n return [west$2];\n }\n },\n overrides: anchorOverrides\n };\n } else {\n return {\n bubble: nu$5(0, bubbleSize$1, bubbleAlignments$1, 1 / bubbleSize$1),\n layouts: getAnchorSpec$2(editor, isTouch, data, position),\n overrides: anchorOverrides\n };\n }\n };\n\n var matchTargetWith = function matchTargetWith(elem, candidates) {\n var ctxs = filter$2(candidates, function (toolbarApi) {\n return toolbarApi.predicate(elem.dom);\n });\n\n var _a = partition$3(ctxs, function (t) {\n return t.type === 'contexttoolbar';\n }),\n pass = _a.pass,\n fail = _a.fail;\n\n return {\n contextToolbars: pass,\n contextForms: fail\n };\n };\n\n var filterByPositionForStartNode = function filterByPositionForStartNode(toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var doesPositionExist = function doesPositionExist(value) {\n return exists(toolbars, function (t) {\n return t.position === value;\n });\n };\n\n var filterToolbarsByPosition = function filterToolbarsByPosition(value) {\n return filter$2(toolbars, function (t) {\n return t.position === value;\n });\n };\n\n var hasSelectionToolbars = doesPositionExist('selection');\n var hasNodeToolbars = doesPositionExist('node');\n\n if (hasSelectionToolbars || hasNodeToolbars) {\n if (hasNodeToolbars && hasSelectionToolbars) {\n var nodeToolbars = filterToolbarsByPosition('node');\n var selectionToolbars = map$2(filterToolbarsByPosition('selection'), function (t) {\n return _assign(_assign({}, t), {\n position: 'node'\n });\n });\n return nodeToolbars.concat(selectionToolbars);\n } else {\n return hasSelectionToolbars ? filterToolbarsByPosition('selection') : filterToolbarsByPosition('node');\n }\n } else {\n return filterToolbarsByPosition('line');\n }\n }\n };\n\n var filterByPositionForAncestorNode = function filterByPositionForAncestorNode(toolbars) {\n if (toolbars.length <= 1) {\n return toolbars;\n } else {\n var findPosition_1 = function findPosition_1(value) {\n return find$5(toolbars, function (t) {\n return t.position === value;\n });\n };\n\n var basePosition = findPosition_1('selection').orThunk(function () {\n return findPosition_1('node');\n }).orThunk(function () {\n return findPosition_1('line');\n }).map(function (t) {\n return t.position;\n });\n return basePosition.fold(function () {\n return [];\n }, function (pos) {\n return filter$2(toolbars, function (t) {\n return t.position === pos;\n });\n });\n }\n };\n\n var matchStartNode = function matchStartNode(elem, nodeCandidates, editorCandidates) {\n var nodeMatches = matchTargetWith(elem, nodeCandidates);\n\n if (nodeMatches.contextForms.length > 0) {\n return Optional.some({\n elem: elem,\n toolbars: [nodeMatches.contextForms[0]]\n });\n } else {\n var editorMatches = matchTargetWith(elem, editorCandidates);\n\n if (editorMatches.contextForms.length > 0) {\n return Optional.some({\n elem: elem,\n toolbars: [editorMatches.contextForms[0]]\n });\n } else if (nodeMatches.contextToolbars.length > 0 || editorMatches.contextToolbars.length > 0) {\n var toolbars = filterByPositionForStartNode(nodeMatches.contextToolbars.concat(editorMatches.contextToolbars));\n return Optional.some({\n elem: elem,\n toolbars: toolbars\n });\n } else {\n return Optional.none();\n }\n }\n };\n\n var matchAncestor = function matchAncestor(isRoot, startNode, scopes) {\n if (isRoot(startNode)) {\n return Optional.none();\n } else {\n return ancestor$2(startNode, function (ancestorElem) {\n if (isElement$2(ancestorElem)) {\n var _a = matchTargetWith(ancestorElem, scopes.inNodeScope),\n contextToolbars = _a.contextToolbars,\n contextForms = _a.contextForms;\n\n var toolbars = contextForms.length > 0 ? contextForms : filterByPositionForAncestorNode(contextToolbars);\n return toolbars.length > 0 ? Optional.some({\n elem: ancestorElem,\n toolbars: toolbars\n }) : Optional.none();\n } else {\n return Optional.none();\n }\n }, isRoot);\n }\n };\n\n var lookup$1 = function lookup$1(scopes, editor) {\n var rootElem = SugarElement.fromDom(editor.getBody());\n\n var isRoot = function isRoot(elem) {\n return eq(elem, rootElem);\n };\n\n var isOutsideRoot = function isOutsideRoot(startNode) {\n return !isRoot(startNode) && !contains(rootElem, startNode);\n };\n\n var startNode = SugarElement.fromDom(editor.selection.getNode());\n\n if (isOutsideRoot(startNode)) {\n return Optional.none();\n }\n\n return matchStartNode(startNode, scopes.inNodeScope, scopes.inEditorScope).orThunk(function () {\n return matchAncestor(isRoot, startNode, scopes);\n });\n };\n\n var categorise = function categorise(contextToolbars, navigate) {\n var forms = {};\n var inNodeScope = [];\n var inEditorScope = [];\n var formNavigators = {};\n var lookupTable = {};\n\n var registerForm = function registerForm(key, toolbarSpec) {\n var contextForm = getOrDie(createContextForm(toolbarSpec));\n forms[key] = contextForm;\n contextForm.launch.map(function (launch) {\n formNavigators['form:' + key + ''] = _assign(_assign({}, toolbarSpec.launch), {\n type: launch.type === 'contextformtogglebutton' ? 'togglebutton' : 'button',\n onAction: function onAction() {\n navigate(contextForm);\n }\n });\n });\n\n if (contextForm.scope === 'editor') {\n inEditorScope.push(contextForm);\n } else {\n inNodeScope.push(contextForm);\n }\n\n lookupTable[key] = contextForm;\n };\n\n var registerToolbar = function registerToolbar(key, toolbarSpec) {\n createContextToolbar(toolbarSpec).each(function (contextToolbar) {\n if (toolbarSpec.scope === 'editor') {\n inEditorScope.push(contextToolbar);\n } else {\n inNodeScope.push(contextToolbar);\n }\n\n lookupTable[key] = contextToolbar;\n });\n };\n\n var keys$1 = keys(contextToolbars);\n each$1(keys$1, function (key) {\n var toolbarApi = contextToolbars[key];\n\n if (toolbarApi.type === 'contextform') {\n registerForm(key, toolbarApi);\n } else if (toolbarApi.type === 'contexttoolbar') {\n registerToolbar(key, toolbarApi);\n }\n });\n return {\n forms: forms,\n inNodeScope: inNodeScope,\n inEditorScope: inEditorScope,\n lookupTable: lookupTable,\n formNavigators: formNavigators\n };\n };\n\n var forwardSlideEvent = generate$6('forward-slide');\n var backSlideEvent = generate$6('backward-slide');\n var changeSlideEvent = generate$6('change-slide-event');\n var resizingClass = 'tox-pop--resizing';\n\n var renderContextToolbar = function renderContextToolbar(spec) {\n var stack = Cell([]);\n return InlineView.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-pop']\n },\n fireDismissalEventInstead: {\n event: 'doNotDismissYet'\n },\n onShow: function onShow(comp) {\n stack.set([]);\n InlineView.getContent(comp).each(function (c) {\n remove$6(c.element, 'visibility');\n });\n remove$2(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n },\n inlineBehaviours: derive$1([config('context-toolbar-events', [runOnSource(transitionend(), function (comp, se) {\n if (se.event.raw.propertyName === 'width') {\n remove$2(comp.element, resizingClass);\n remove$6(comp.element, 'width');\n }\n }), run$1(changeSlideEvent, function (comp, se) {\n var elem = comp.element;\n remove$6(elem, 'width');\n var currentWidth = get$a(elem);\n InlineView.setContent(comp, se.event.contents);\n add$2(elem, resizingClass);\n var newWidth = get$a(elem);\n set$7(elem, 'width', currentWidth + 'px');\n InlineView.getContent(comp).each(function (newContents) {\n se.event.focus.bind(function (f) {\n focus$3(f);\n return search(elem);\n }).orThunk(function () {\n Keying.focusIn(newContents);\n return active(getRootNode(elem));\n });\n });\n global$f.setTimeout(function () {\n set$7(comp.element, 'width', newWidth + 'px');\n }, 0);\n }), run$1(forwardSlideEvent, function (comp, se) {\n InlineView.getContent(comp).each(function (oldContents) {\n stack.set(stack.get().concat([{\n bar: oldContents,\n focus: active(getRootNode(comp.element))\n }]));\n });\n emitWith(comp, changeSlideEvent, {\n contents: se.event.forwardContents,\n focus: Optional.none()\n });\n }), run$1(backSlideEvent, function (comp, _se) {\n last$2(stack.get()).each(function (last) {\n stack.set(stack.get().slice(0, stack.get().length - 1));\n emitWith(comp, changeSlideEvent, {\n contents: premade(last.bar),\n focus: last.focus\n });\n });\n })]), Keying.config({\n mode: 'special',\n onEscape: function onEscape(comp) {\n return last$2(stack.get()).fold(function () {\n return spec.onEscape();\n }, function (_) {\n emit(comp, backSlideEvent);\n return Optional.some(true);\n });\n }\n })]),\n lazySink: function lazySink() {\n return Result.value(spec.sink);\n }\n });\n };\n\n var transitionClass = 'tox-pop--transition';\n\n var register$7 = function register$7(editor, registryContextToolbars, sink, extras) {\n var backstage = extras.backstage;\n var sharedBackstage = backstage.shared;\n var isTouch = detect$1().deviceType.isTouch;\n var lastElement = value$1();\n var lastTrigger = value$1();\n var lastContextPosition = value$1();\n var contextbar = build$1(renderContextToolbar({\n sink: sink,\n onEscape: function onEscape() {\n editor.focus();\n return Optional.some(true);\n }\n }));\n\n var getBounds = function getBounds() {\n var position = lastContextPosition.get().getOr('node');\n var margin = shouldUseInsetLayouts(position) ? 1 : 0;\n return getContextToolbarBounds(editor, sharedBackstage, position, margin);\n };\n\n var canLaunchToolbar = function canLaunchToolbar() {\n return !editor.removed && !(isTouch() && backstage.isContextMenuOpen());\n };\n\n var isSameLaunchElement = function isSameLaunchElement(elem) {\n return is$1(lift2(elem, lastElement.get(), eq), true);\n };\n\n var shouldContextToolbarHide = function shouldContextToolbarHide() {\n if (!canLaunchToolbar()) {\n return true;\n } else {\n var contextToolbarBounds = getBounds();\n var anchorBounds = is$1(lastContextPosition.get(), 'node') ? getAnchorElementBounds(editor, lastElement.get()) : getSelectionBounds(editor);\n return contextToolbarBounds.height <= 0 || !isVerticalOverlap(anchorBounds, contextToolbarBounds);\n }\n };\n\n var close = function close() {\n lastElement.clear();\n lastTrigger.clear();\n lastContextPosition.clear();\n InlineView.hide(contextbar);\n };\n\n var hideOrRepositionIfNecessary = function hideOrRepositionIfNecessary() {\n if (InlineView.isOpen(contextbar)) {\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n\n if (shouldContextToolbarHide()) {\n set$7(contextBarEle, 'display', 'none');\n } else {\n lastTrigger.set(0);\n InlineView.reposition(contextbar);\n }\n }\n };\n\n var wrapInPopDialog = function wrapInPopDialog(toolbarSpec) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-pop__dialog']\n },\n components: [toolbarSpec],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic'\n }), config('pop-dialog-wrap-events', [runOnAttached(function (comp) {\n editor.shortcuts.add('ctrl+F9', 'focus statusbar', function () {\n return Keying.focusIn(comp);\n });\n }), runOnDetached(function (_comp) {\n editor.shortcuts.remove('ctrl+F9');\n })])])\n };\n };\n\n var getScopes = cached(function () {\n return categorise(registryContextToolbars, function (toolbarApi) {\n var alloySpec = buildToolbar([toolbarApi]);\n emitWith(contextbar, forwardSlideEvent, {\n forwardContents: wrapInPopDialog(alloySpec)\n });\n });\n });\n\n var buildContextToolbarGroups = function buildContextToolbarGroups(allButtons, ctx) {\n return identifyButtons(editor, {\n buttons: allButtons,\n toolbar: ctx.items,\n allowToolbarGroups: false\n }, extras, Optional.some(['form:']));\n };\n\n var buildContextFormGroups = function buildContextFormGroups(ctx, providers) {\n return ContextForm.buildInitGroups(ctx, providers);\n };\n\n var buildToolbar = function buildToolbar(toolbars) {\n var buttons = editor.ui.registry.getAll().buttons;\n var scopes = getScopes();\n\n var allButtons = _assign(_assign({}, buttons), scopes.formNavigators);\n\n var toolbarType = getToolbarMode(editor) === ToolbarMode.scrolling ? ToolbarMode.scrolling : ToolbarMode.default;\n var initGroups = flatten(map$2(toolbars, function (ctx) {\n return ctx.type === 'contexttoolbar' ? buildContextToolbarGroups(allButtons, ctx) : buildContextFormGroups(ctx, sharedBackstage.providers);\n }));\n return renderToolbar({\n type: toolbarType,\n uid: generate$6('context-toolbar'),\n initGroups: initGroups,\n onEscape: Optional.none,\n cyclicKeying: true,\n providers: sharedBackstage.providers\n });\n };\n\n var getAnchor = function getAnchor(position, element) {\n var anchorage = position === 'node' ? sharedBackstage.anchors.node(element) : sharedBackstage.anchors.cursor();\n var anchorLayout = getAnchorLayout(editor, position, isTouch(), {\n lastElement: lastElement.get,\n isReposition: function isReposition() {\n return is$1(lastTrigger.get(), 0);\n },\n getMode: function getMode() {\n return Positioning.getMode(sink);\n }\n });\n return deepMerge(anchorage, anchorLayout);\n };\n\n var launchContext = function launchContext(toolbarApi, elem) {\n launchContextToolbar.cancel();\n\n if (!canLaunchToolbar()) {\n return;\n }\n\n var toolbarSpec = buildToolbar(toolbarApi);\n var position = toolbarApi[0].position;\n var anchor = getAnchor(position, elem);\n lastContextPosition.set(position);\n lastTrigger.set(1);\n var contextBarEle = contextbar.element;\n remove$6(contextBarEle, 'display');\n\n if (!isSameLaunchElement(elem)) {\n remove$2(contextBarEle, transitionClass);\n Positioning.reset(sink, contextbar);\n }\n\n InlineView.showWithinBounds(contextbar, wrapInPopDialog(toolbarSpec), {\n anchor: anchor,\n transition: {\n classes: [transitionClass],\n mode: 'placement'\n }\n }, function () {\n return Optional.some(getBounds());\n });\n elem.fold(lastElement.clear, lastElement.set);\n\n if (shouldContextToolbarHide()) {\n set$7(contextBarEle, 'display', 'none');\n }\n };\n\n var launchContextToolbar = last(function () {\n if (!editor.hasFocus() || editor.removed) {\n return;\n }\n\n if (has(contextbar.element, transitionClass)) {\n launchContextToolbar.throttle();\n } else {\n var scopes = getScopes();\n lookup$1(scopes, editor).fold(close, function (info) {\n launchContext(info.toolbars, Optional.some(info.elem));\n });\n }\n }, 17);\n editor.on('init', function () {\n editor.on('remove', close);\n editor.on('ScrollContent ScrollWindow ObjectResized ResizeEditor longpress', hideOrRepositionIfNecessary);\n editor.on('click keyup focus SetContent', launchContextToolbar.throttle);\n editor.on(hideContextToolbarEvent, close);\n editor.on(showContextToolbarEvent, function (e) {\n var scopes = getScopes();\n get$e(scopes.lookupTable, e.toolbarKey).each(function (ctx) {\n launchContext([ctx], someIf(e.target !== editor, e.target));\n InlineView.getContent(contextbar).each(Keying.focusIn);\n });\n });\n editor.on('focusout', function (_e) {\n global$f.setEditorTimeout(editor, function () {\n if (search(sink.element).isNone() && search(contextbar.element).isNone()) {\n close();\n }\n }, 0);\n });\n editor.on('SwitchMode', function () {\n if (editor.mode.isReadOnly()) {\n close();\n }\n });\n editor.on('AfterProgressState', function (event) {\n if (event.state) {\n close();\n } else if (editor.hasFocus()) {\n launchContextToolbar.throttle();\n }\n });\n editor.on('NodeChange', function (_e) {\n search(contextbar.element).fold(launchContextToolbar.throttle, noop);\n });\n });\n };\n\n var register$6 = function register$6(editor) {\n var alignToolbarButtons = [{\n name: 'alignleft',\n text: 'Align left',\n cmd: 'JustifyLeft',\n icon: 'align-left'\n }, {\n name: 'aligncenter',\n text: 'Align center',\n cmd: 'JustifyCenter',\n icon: 'align-center'\n }, {\n name: 'alignright',\n text: 'Align right',\n cmd: 'JustifyRight',\n icon: 'align-right'\n }, {\n name: 'alignjustify',\n text: 'Justify',\n cmd: 'JustifyFull',\n icon: 'align-justify'\n }];\n each$1(alignToolbarButtons, function (item) {\n editor.ui.registry.addToggleButton(item.name, {\n tooltip: item.text,\n icon: item.icon,\n onAction: onActionExecCommand(editor, item.cmd),\n onSetup: onSetupFormatToggle(editor, item.name)\n });\n });\n editor.ui.registry.addButton('alignnone', {\n tooltip: 'No alignment',\n icon: 'align-none',\n onAction: onActionExecCommand(editor, 'JustifyNone')\n });\n };\n\n var units = {\n unsupportedLength: ['em', 'ex', 'cap', 'ch', 'ic', 'rem', 'lh', 'rlh', 'vw', 'vh', 'vi', 'vb', 'vmin', 'vmax', 'cm', 'mm', 'Q', 'in', 'pc', 'pt', 'px'],\n fixed: ['px', 'pt'],\n relative: ['%'],\n empty: ['']\n };\n\n var pattern = function () {\n var decimalDigits = '[0-9]+';\n var signedInteger = '[+-]?' + decimalDigits;\n var exponentPart = '[eE]' + signedInteger;\n var dot = '\\\\.';\n\n var opt = function opt(input) {\n return '(?:' + input + ')?';\n };\n\n var unsignedDecimalLiteral = ['Infinity', decimalDigits + dot + opt(decimalDigits) + opt(exponentPart), dot + decimalDigits + opt(exponentPart), decimalDigits + opt(exponentPart)].join('|');\n var float = '[+-]?(?:' + unsignedDecimalLiteral + ')';\n return new RegExp('^(' + float + ')(.*)$');\n }();\n\n var isUnit = function isUnit(unit, accepted) {\n return exists(accepted, function (acc) {\n return exists(units[acc], function (check) {\n return unit === check;\n });\n });\n };\n\n var parse = function parse(input, accepted) {\n var match = Optional.from(pattern.exec(input));\n return match.bind(function (array) {\n var value = Number(array[1]);\n var unitRaw = array[2];\n\n if (isUnit(unitRaw, accepted)) {\n return Optional.some({\n value: value,\n unit: unitRaw\n });\n } else {\n return Optional.none();\n }\n });\n };\n\n var normalise = function normalise(input, accepted) {\n return parse(input, accepted).map(function (_a) {\n var value = _a.value,\n unit = _a.unit;\n return value + unit;\n });\n };\n\n var registerController = function registerController(editor, spec) {\n var getMenuItems = function getMenuItems() {\n var options = spec.getOptions(editor);\n var initial = spec.getCurrent(editor).map(spec.hash);\n var current = value$1();\n return map$2(options, function (value) {\n return {\n type: 'togglemenuitem',\n text: spec.display(value),\n onSetup: function onSetup(api) {\n var setActive = function setActive(active) {\n if (active) {\n current.on(function (oldApi) {\n return oldApi.setActive(false);\n });\n current.set(api);\n }\n\n api.setActive(active);\n };\n\n setActive(is$1(initial, spec.hash(value)));\n var unbindWatcher = spec.watcher(editor, value, setActive);\n return function () {\n current.clear();\n unbindWatcher();\n };\n },\n onAction: function onAction() {\n return spec.setCurrent(editor, value);\n }\n };\n });\n };\n\n editor.ui.registry.addMenuButton(spec.name, {\n tooltip: spec.text,\n icon: spec.icon,\n fetch: function fetch(callback) {\n return callback(getMenuItems());\n },\n onSetup: spec.onToolbarSetup\n });\n editor.ui.registry.addNestedMenuItem(spec.name, {\n type: 'nestedmenuitem',\n text: spec.text,\n getSubmenuItems: getMenuItems,\n onSetup: spec.onMenuSetup\n });\n };\n\n var lineHeightSpec = {\n name: 'lineheight',\n text: 'Line height',\n icon: 'line-height',\n getOptions: getLineHeightFormats,\n hash: function hash(input) {\n return normalise(input, ['fixed', 'relative', 'empty']).getOr(input);\n },\n display: identity$1,\n watcher: function watcher(editor, value, callback) {\n return editor.formatter.formatChanged('lineheight', callback, false, {\n value: value\n }).unbind;\n },\n getCurrent: function getCurrent(editor) {\n return Optional.from(editor.queryCommandValue('LineHeight'));\n },\n setCurrent: function setCurrent(editor, value) {\n return editor.execCommand('LineHeight', false, value);\n }\n };\n\n var languageSpec = function languageSpec(editor) {\n var settingsOpt = Optional.from(getContentLanguages(editor));\n return settingsOpt.map(function (settings) {\n return {\n name: 'language',\n text: 'Language',\n icon: 'language',\n getOptions: constant$1(settings),\n hash: function hash(input) {\n return isUndefined(input.customCode) ? input.code : input.code + '/' + input.customCode;\n },\n display: function display(input) {\n return input.title;\n },\n watcher: function watcher(editor, value, callback) {\n return editor.formatter.formatChanged('lang', callback, false, {\n value: value.code,\n customValue: value.customCode\n }).unbind;\n },\n getCurrent: function getCurrent(editor) {\n var node = SugarElement.fromDom(editor.selection.getNode());\n return closest$4(node, function (n) {\n return Optional.some(n).filter(isElement$2).bind(function (ele) {\n var codeOpt = getOpt(ele, 'lang');\n return codeOpt.map(function (code) {\n var customCode = getOpt(ele, 'data-mce-lang').getOrUndefined();\n return {\n code: code,\n customCode: customCode,\n title: ''\n };\n });\n });\n });\n },\n setCurrent: function setCurrent(editor, lang) {\n return editor.execCommand('Lang', false, lang);\n },\n onToolbarSetup: function onToolbarSetup(api) {\n var unbinder = unbindable();\n api.setActive(editor.formatter.match('lang', {}, undefined, true));\n unbinder.set(editor.formatter.formatChanged('lang', api.setActive, true));\n return unbinder.clear;\n }\n };\n });\n };\n\n var register$5 = function register$5(editor) {\n registerController(editor, lineHeightSpec);\n languageSpec(editor).each(function (spec) {\n return registerController(editor, spec);\n });\n };\n\n var register$4 = function register$4(editor, backstage) {\n alignSelectMenu(editor, backstage);\n fontSelectMenu(editor, backstage);\n styleSelectMenu(editor, backstage);\n formatSelectMenu(editor, backstage);\n fontsizeSelectMenu(editor, backstage);\n };\n\n var onSetupOutdentState = function onSetupOutdentState(editor) {\n return onSetupEvent(editor, 'NodeChange', function (api) {\n api.setDisabled(!editor.queryCommandState('outdent'));\n });\n };\n\n var registerButtons$2 = function registerButtons$2(editor) {\n editor.ui.registry.addButton('outdent', {\n tooltip: 'Decrease indent',\n icon: 'outdent',\n onSetup: onSetupOutdentState(editor),\n onAction: onActionExecCommand(editor, 'outdent')\n });\n editor.ui.registry.addButton('indent', {\n tooltip: 'Increase indent',\n icon: 'indent',\n onAction: onActionExecCommand(editor, 'indent')\n });\n };\n\n var register$3 = function register$3(editor) {\n registerButtons$2(editor);\n };\n\n var onActionToggleFormat = function onActionToggleFormat(editor, fmt) {\n return function () {\n editor.execCommand('mceToggleFormat', false, fmt);\n };\n };\n\n var registerFormatButtons = function registerFormatButtons(editor) {\n global$5.each([{\n name: 'bold',\n text: 'Bold',\n icon: 'bold'\n }, {\n name: 'italic',\n text: 'Italic',\n icon: 'italic'\n }, {\n name: 'underline',\n text: 'Underline',\n icon: 'underline'\n }, {\n name: 'strikethrough',\n text: 'Strikethrough',\n icon: 'strike-through'\n }, {\n name: 'subscript',\n text: 'Subscript',\n icon: 'subscript'\n }, {\n name: 'superscript',\n text: 'Superscript',\n icon: 'superscript'\n }], function (btn, _idx) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onSetup: onSetupFormatToggle(editor, btn.name),\n onAction: onActionToggleFormat(editor, btn.name)\n });\n });\n\n for (var i = 1; i <= 6; i++) {\n var name_1 = 'h' + i;\n editor.ui.registry.addToggleButton(name_1, {\n text: name_1.toUpperCase(),\n tooltip: 'Heading ' + i,\n onSetup: onSetupFormatToggle(editor, name_1),\n onAction: onActionToggleFormat(editor, name_1)\n });\n }\n };\n\n var registerCommandButtons = function registerCommandButtons(editor) {\n global$5.each([{\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut'\n }, {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy'\n }, {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste'\n }, {\n name: 'help',\n text: 'Help',\n action: 'mceHelp',\n icon: 'help'\n }, {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all'\n }, {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document'\n }, {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting'\n }, {\n name: 'remove',\n text: 'Remove',\n action: 'Delete',\n icon: 'remove'\n }], function (btn) {\n editor.ui.registry.addButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action)\n });\n });\n };\n\n var registerCommandToggleButtons = function registerCommandToggleButtons(editor) {\n global$5.each([{\n name: 'blockquote',\n text: 'Blockquote',\n action: 'mceBlockQuote',\n icon: 'quote'\n }], function (btn) {\n editor.ui.registry.addToggleButton(btn.name, {\n tooltip: btn.text,\n icon: btn.icon,\n onAction: onActionExecCommand(editor, btn.action),\n onSetup: onSetupFormatToggle(editor, btn.name)\n });\n });\n };\n\n var registerButtons$1 = function registerButtons$1(editor) {\n registerFormatButtons(editor);\n registerCommandButtons(editor);\n registerCommandToggleButtons(editor);\n };\n\n var registerMenuItems$2 = function registerMenuItems$2(editor) {\n global$5.each([{\n name: 'bold',\n text: 'Bold',\n action: 'Bold',\n icon: 'bold',\n shortcut: 'Meta+B'\n }, {\n name: 'italic',\n text: 'Italic',\n action: 'Italic',\n icon: 'italic',\n shortcut: 'Meta+I'\n }, {\n name: 'underline',\n text: 'Underline',\n action: 'Underline',\n icon: 'underline',\n shortcut: 'Meta+U'\n }, {\n name: 'strikethrough',\n text: 'Strikethrough',\n action: 'Strikethrough',\n icon: 'strike-through',\n shortcut: ''\n }, {\n name: 'subscript',\n text: 'Subscript',\n action: 'Subscript',\n icon: 'subscript',\n shortcut: ''\n }, {\n name: 'superscript',\n text: 'Superscript',\n action: 'Superscript',\n icon: 'superscript',\n shortcut: ''\n }, {\n name: 'removeformat',\n text: 'Clear formatting',\n action: 'RemoveFormat',\n icon: 'remove-formatting',\n shortcut: ''\n }, {\n name: 'newdocument',\n text: 'New document',\n action: 'mceNewDocument',\n icon: 'new-document',\n shortcut: ''\n }, {\n name: 'cut',\n text: 'Cut',\n action: 'Cut',\n icon: 'cut',\n shortcut: 'Meta+X'\n }, {\n name: 'copy',\n text: 'Copy',\n action: 'Copy',\n icon: 'copy',\n shortcut: 'Meta+C'\n }, {\n name: 'paste',\n text: 'Paste',\n action: 'Paste',\n icon: 'paste',\n shortcut: 'Meta+V'\n }, {\n name: 'selectall',\n text: 'Select all',\n action: 'SelectAll',\n icon: 'select-all',\n shortcut: 'Meta+A'\n }], function (btn) {\n editor.ui.registry.addMenuItem(btn.name, {\n text: btn.text,\n icon: btn.icon,\n shortcut: btn.shortcut,\n onAction: onActionExecCommand(editor, btn.action)\n });\n });\n editor.ui.registry.addMenuItem('codeformat', {\n text: 'Code',\n icon: 'sourcecode',\n onAction: onActionToggleFormat(editor, 'code')\n });\n };\n\n var register$2 = function register$2(editor) {\n registerButtons$1(editor);\n registerMenuItems$2(editor);\n };\n\n var onSetupUndoRedoState = function onSetupUndoRedoState(editor, type) {\n return onSetupEvent(editor, 'Undo Redo AddUndo TypingUndo ClearUndos SwitchMode', function (api) {\n api.setDisabled(editor.mode.isReadOnly() || !editor.undoManager[type]());\n });\n };\n\n var registerMenuItems$1 = function registerMenuItems$1(editor) {\n editor.ui.registry.addMenuItem('undo', {\n text: 'Undo',\n icon: 'undo',\n shortcut: 'Meta+Z',\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addMenuItem('redo', {\n text: 'Redo',\n icon: 'redo',\n shortcut: 'Meta+Y',\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n\n var registerButtons = function registerButtons(editor) {\n editor.ui.registry.addButton('undo', {\n tooltip: 'Undo',\n icon: 'undo',\n disabled: true,\n onSetup: onSetupUndoRedoState(editor, 'hasUndo'),\n onAction: onActionExecCommand(editor, 'undo')\n });\n editor.ui.registry.addButton('redo', {\n tooltip: 'Redo',\n icon: 'redo',\n disabled: true,\n onSetup: onSetupUndoRedoState(editor, 'hasRedo'),\n onAction: onActionExecCommand(editor, 'redo')\n });\n };\n\n var register$1 = function register$1(editor) {\n registerMenuItems$1(editor);\n registerButtons(editor);\n };\n\n var onSetupVisualAidState = function onSetupVisualAidState(editor) {\n return onSetupEvent(editor, 'VisualAid', function (api) {\n api.setActive(editor.hasVisual);\n });\n };\n\n var registerMenuItems = function registerMenuItems(editor) {\n editor.ui.registry.addToggleMenuItem('visualaid', {\n text: 'Visual aids',\n onSetup: onSetupVisualAidState(editor),\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n\n var registerToolbarButton = function registerToolbarButton(editor) {\n editor.ui.registry.addButton('visualaid', {\n tooltip: 'Visual aids',\n text: 'Visual aids',\n onAction: onActionExecCommand(editor, 'mceToggleVisualAid')\n });\n };\n\n var register = function register(editor) {\n registerToolbarButton(editor);\n registerMenuItems(editor);\n };\n\n var setup$6 = function setup$6(editor, backstage) {\n register$6(editor);\n register$2(editor);\n register$4(editor, backstage);\n register$1(editor);\n register$a(editor);\n register(editor);\n register$3(editor);\n register$5(editor);\n };\n\n var nu = function nu(x, y) {\n return {\n type: 'makeshift',\n x: x,\n y: y\n };\n };\n\n var transpose = function transpose(pos, dx, dy) {\n return nu(pos.x + dx, pos.y + dy);\n };\n\n var isTouchEvent = function isTouchEvent(e) {\n return e.type === 'longpress' || e.type.indexOf('touch') === 0;\n };\n\n var fromPageXY = function fromPageXY(e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu(touch.pageX, touch.pageY);\n } else {\n return nu(e.pageX, e.pageY);\n }\n };\n\n var fromClientXY = function fromClientXY(e) {\n if (isTouchEvent(e)) {\n var touch = e.touches[0];\n return nu(touch.clientX, touch.clientY);\n } else {\n return nu(e.clientX, e.clientY);\n }\n };\n\n var transposeContentAreaContainer = function transposeContentAreaContainer(element, pos) {\n var containerPos = global$b.DOM.getPos(element);\n return transpose(pos, containerPos.x, containerPos.y);\n };\n\n var getPointAnchor = function getPointAnchor(editor, e) {\n if (e.type === 'contextmenu' || e.type === 'longpress') {\n if (editor.inline) {\n return fromPageXY(e);\n } else {\n return transposeContentAreaContainer(editor.getContentAreaContainer(), fromClientXY(e));\n }\n } else {\n return getSelectionAnchor(editor);\n }\n };\n\n var getSelectionAnchor = function getSelectionAnchor(editor) {\n return {\n type: 'selection',\n root: SugarElement.fromDom(editor.selection.getNode())\n };\n };\n\n var getNodeAnchor = function getNodeAnchor(editor) {\n return {\n type: 'node',\n node: Optional.some(SugarElement.fromDom(editor.selection.getNode())),\n root: SugarElement.fromDom(editor.getBody())\n };\n };\n\n var getAnchorSpec$1 = function getAnchorSpec$1(editor, e, anchorType) {\n switch (anchorType) {\n case 'node':\n return getNodeAnchor(editor);\n\n case 'point':\n return getPointAnchor(editor, e);\n\n case 'selection':\n return getSelectionAnchor(editor);\n }\n };\n\n var initAndShow$1 = function initAndShow$1(editor, e, buildMenu, backstage, contextmenu, anchorType) {\n var items = buildMenu();\n var anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, false).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuAt(contextmenu, {\n anchor: anchorSpec\n }, {\n menu: {\n markers: markers('normal')\n },\n data: menuData\n });\n });\n };\n\n var layouts = {\n onLtr: function onLtr() {\n return [south$2, southeast$2, southwest$2, northeast$2, northwest$2, north$2, north, south, northeast, southeast, northwest, southwest];\n },\n onRtl: function onRtl() {\n return [south$2, southwest$2, southeast$2, northwest$2, northeast$2, north$2, north, south, northwest, southwest, northeast, southeast];\n }\n };\n var bubbleSize = 12;\n var bubbleAlignments = {\n valignCentre: [],\n alignCentre: [],\n alignLeft: ['tox-pop--align-left'],\n alignRight: ['tox-pop--align-right'],\n right: ['tox-pop--right'],\n left: ['tox-pop--left'],\n bottom: ['tox-pop--bottom'],\n top: ['tox-pop--top']\n };\n\n var isTouchWithinSelection = function isTouchWithinSelection(editor, e) {\n var selection = editor.selection;\n\n if (selection.isCollapsed() || e.touches.length < 1) {\n return false;\n } else {\n var touch_1 = e.touches[0];\n var rng = selection.getRng();\n var rngRectOpt = getFirstRect(editor.getWin(), SimSelection.domRange(rng));\n return rngRectOpt.exists(function (rngRect) {\n return rngRect.left <= touch_1.clientX && rngRect.right >= touch_1.clientX && rngRect.top <= touch_1.clientY && rngRect.bottom >= touch_1.clientY;\n });\n }\n };\n\n var setupiOSOverrides = function setupiOSOverrides(editor) {\n var originalSelection = editor.selection.getRng();\n\n var selectionReset = function selectionReset() {\n global$f.setEditorTimeout(editor, function () {\n editor.selection.setRng(originalSelection);\n }, 10);\n unbindEventListeners();\n };\n\n editor.once('touchend', selectionReset);\n\n var preventMousedown = function preventMousedown(e) {\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n\n editor.on('mousedown', preventMousedown, true);\n\n var clearSelectionReset = function clearSelectionReset() {\n return unbindEventListeners();\n };\n\n editor.once('longpresscancel', clearSelectionReset);\n\n var unbindEventListeners = function unbindEventListeners() {\n editor.off('touchend', selectionReset);\n editor.off('longpresscancel', clearSelectionReset);\n editor.off('mousedown', preventMousedown);\n };\n };\n\n var getAnchorSpec = function getAnchorSpec(editor, e, anchorType) {\n var anchorSpec = getAnchorSpec$1(editor, e, anchorType);\n var bubbleYOffset = anchorType === 'point' ? bubbleSize : 0;\n return _assign({\n bubble: nu$5(0, bubbleYOffset, bubbleAlignments),\n layouts: layouts,\n overrides: {\n maxWidthFunction: expandable(),\n maxHeightFunction: expandable$1()\n }\n }, anchorSpec);\n };\n\n var show = function show(editor, e, items, backstage, contextmenu, anchorType, highlightImmediately) {\n var anchorSpec = getAnchorSpec(editor, e, anchorType);\n build(items, ItemResponse$1.CLOSE_ON_EXECUTE, backstage, true).map(function (menuData) {\n e.preventDefault();\n InlineView.showMenuWithinBounds(contextmenu, {\n anchor: anchorSpec\n }, {\n menu: {\n markers: markers('normal'),\n highlightImmediately: highlightImmediately\n },\n data: menuData,\n type: 'horizontal'\n }, function () {\n return Optional.some(getContextToolbarBounds(editor, backstage.shared, anchorType === 'node' ? 'node' : 'selection'));\n });\n editor.fire(hideContextToolbarEvent);\n });\n };\n\n var initAndShow = function initAndShow(editor, e, buildMenu, backstage, contextmenu, anchorType) {\n var detection = detect$1();\n var isiOS = detection.os.isiOS();\n var isOSX = detection.os.isOSX();\n var isAndroid = detection.os.isAndroid();\n var isTouch = detection.deviceType.isTouch();\n\n var shouldHighlightImmediately = function shouldHighlightImmediately() {\n return !(isAndroid || isiOS || isOSX && isTouch);\n };\n\n var open = function open() {\n var items = buildMenu();\n show(editor, e, items, backstage, contextmenu, anchorType, shouldHighlightImmediately());\n };\n\n if ((isOSX || isiOS) && anchorType !== 'node') {\n var openiOS_1 = function openiOS_1() {\n setupiOSOverrides(editor);\n open();\n };\n\n if (isTouchWithinSelection(editor, e)) {\n openiOS_1();\n } else {\n editor.once('selectionchange', openiOS_1);\n editor.once('touchend', function () {\n return editor.off('selectionchange', openiOS_1);\n });\n }\n } else {\n open();\n }\n };\n\n var patchPipeConfig = function patchPipeConfig(config) {\n return typeof config === 'string' ? config.split(/[ ,]/) : config;\n };\n\n var shouldNeverUseNative = function shouldNeverUseNative(editor) {\n return editor.getParam('contextmenu_never_use_native', false, 'boolean');\n };\n\n var getMenuItems = function getMenuItems(editor, name, defaultItems) {\n var contextMenus = editor.ui.registry.getAll().contextMenus;\n return Optional.from(editor.getParam(name)).map(patchPipeConfig).getOrThunk(function () {\n return filter$2(patchPipeConfig(defaultItems), function (item) {\n return has$2(contextMenus, item);\n });\n });\n };\n\n var isContextMenuDisabled = function isContextMenuDisabled(editor) {\n return editor.getParam('contextmenu') === false;\n };\n\n var getContextMenu = function getContextMenu(editor) {\n return getMenuItems(editor, 'contextmenu', 'link linkchecker image imagetools table spellchecker configurepermanentpen');\n };\n\n var getAvoidOverlapSelector = function getAvoidOverlapSelector(editor) {\n return editor.getParam('contextmenu_avoid_overlap', '', 'string');\n };\n\n var isSeparator = function isSeparator(item) {\n return isString(item) ? item === '|' : item.type === 'separator';\n };\n\n var separator = {\n type: 'separator'\n };\n\n var makeContextItem = function makeContextItem(item) {\n var commonMenuItem = function commonMenuItem(item) {\n return {\n text: item.text,\n icon: item.icon,\n disabled: item.disabled,\n shortcut: item.shortcut\n };\n };\n\n if (isString(item)) {\n return item;\n } else {\n switch (item.type) {\n case 'separator':\n return separator;\n\n case 'submenu':\n return _assign(_assign({\n type: 'nestedmenuitem'\n }, commonMenuItem(item)), {\n getSubmenuItems: function getSubmenuItems() {\n var items = item.getSubmenuItems();\n\n if (isString(items)) {\n return items;\n } else {\n return map$2(items, makeContextItem);\n }\n }\n });\n\n default:\n return _assign(_assign({\n type: 'menuitem'\n }, commonMenuItem(item)), {\n onAction: noarg(item.onAction)\n });\n }\n }\n };\n\n var addContextMenuGroup = function addContextMenuGroup(xs, groupItems) {\n if (groupItems.length === 0) {\n return xs;\n }\n\n var lastMenuItem = last$2(xs).filter(function (item) {\n return !isSeparator(item);\n });\n var before = lastMenuItem.fold(function () {\n return [];\n }, function (_) {\n return [separator];\n });\n return xs.concat(before).concat(groupItems).concat([separator]);\n };\n\n var generateContextMenu = function generateContextMenu(contextMenus, menuConfig, selectedElement) {\n var sections = foldl(menuConfig, function (acc, name) {\n return get$e(contextMenus, name.toLowerCase()).map(function (menu) {\n var items = menu.update(selectedElement);\n\n if (isString(items)) {\n return addContextMenuGroup(acc, items.split(' '));\n } else if (items.length > 0) {\n var allItems = map$2(items, makeContextItem);\n return addContextMenuGroup(acc, allItems);\n } else {\n return acc;\n }\n }).getOrThunk(function () {\n return acc.concat([name]);\n });\n }, []);\n\n if (sections.length > 0 && isSeparator(sections[sections.length - 1])) {\n sections.pop();\n }\n\n return sections;\n };\n\n var isNativeOverrideKeyEvent = function isNativeOverrideKeyEvent(editor, e) {\n return e.ctrlKey && !shouldNeverUseNative(editor);\n };\n\n var isTriggeredByKeyboard = function isTriggeredByKeyboard(editor, e) {\n return e.type !== 'longpress' && (e.button !== 2 || e.target === editor.getBody() && e.pointerType === '');\n };\n\n var getSelectedElement = function getSelectedElement(editor, e) {\n return isTriggeredByKeyboard(editor, e) ? editor.selection.getStart(true) : e.target;\n };\n\n var getAnchorType = function getAnchorType(editor, e) {\n var selector = getAvoidOverlapSelector(editor);\n var anchorType = isTriggeredByKeyboard(editor, e) ? 'selection' : 'point';\n\n if (isNotEmpty(selector)) {\n var target = getSelectedElement(editor, e);\n var selectorExists = closest(SugarElement.fromDom(target), selector);\n return selectorExists ? 'node' : anchorType;\n } else {\n return anchorType;\n }\n };\n\n var setup$5 = function setup$5(editor, lazySink, backstage) {\n var detection = detect$1();\n var isTouch = detection.deviceType.isTouch;\n var contextmenu = build$1(InlineView.sketch({\n dom: {\n tag: 'div'\n },\n lazySink: lazySink,\n onEscape: function onEscape() {\n return editor.focus();\n },\n onShow: function onShow() {\n return backstage.setContextMenuState(true);\n },\n onHide: function onHide() {\n return backstage.setContextMenuState(false);\n },\n fireDismissalEventInstead: {},\n inlineBehaviours: derive$1([config('dismissContextMenu', [run$1(dismissRequested(), function (comp, _se) {\n Sandboxing.close(comp);\n editor.focus();\n })])])\n }));\n\n var hideContextMenu = function hideContextMenu(_e) {\n return InlineView.hide(contextmenu);\n };\n\n var showContextMenu = function showContextMenu(e) {\n if (shouldNeverUseNative(editor)) {\n e.preventDefault();\n }\n\n if (isNativeOverrideKeyEvent(editor, e) || isContextMenuDisabled(editor)) {\n return;\n }\n\n var anchorType = getAnchorType(editor, e);\n\n var buildMenu = function buildMenu() {\n var selectedElement = getSelectedElement(editor, e);\n var registry = editor.ui.registry.getAll();\n var menuConfig = getContextMenu(editor);\n return generateContextMenu(registry.contextMenus, menuConfig, selectedElement);\n };\n\n var initAndShow$2 = isTouch() ? initAndShow : initAndShow$1;\n initAndShow$2(editor, e, buildMenu, backstage, contextmenu, anchorType);\n };\n\n editor.on('init', function () {\n var hideEvents = 'ResizeEditor ScrollContent ScrollWindow longpresscancel' + (isTouch() ? '' : ' ResizeWindow');\n editor.on(hideEvents, hideContextMenu);\n editor.on('longpress contextmenu', showContextMenu);\n });\n };\n\n var adt = Adt.generate([{\n offset: ['x', 'y']\n }, {\n absolute: ['x', 'y']\n }, {\n fixed: ['x', 'y']\n }]);\n\n var subtract = function subtract(change) {\n return function (point) {\n return point.translate(-change.left, -change.top);\n };\n };\n\n var add = function add(change) {\n return function (point) {\n return point.translate(change.left, change.top);\n };\n };\n\n var transform = function transform(changes) {\n return function (x, y) {\n return foldl(changes, function (rest, f) {\n return f(rest);\n }, SugarPosition(x, y));\n };\n };\n\n var asFixed = function asFixed(coord, scroll, origin) {\n return coord.fold(transform([add(origin), subtract(scroll)]), transform([subtract(scroll)]), transform([]));\n };\n\n var asAbsolute = function asAbsolute(coord, scroll, origin) {\n return coord.fold(transform([add(origin)]), transform([]), transform([add(scroll)]));\n };\n\n var asOffset = function asOffset(coord, scroll, origin) {\n return coord.fold(transform([]), transform([subtract(origin)]), transform([add(scroll), subtract(origin)]));\n };\n\n var withinRange = function withinRange(coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n return Math.abs(a1.left - a2.left) <= xRange && Math.abs(a1.top - a2.top) <= yRange;\n };\n\n var getDeltas = function getDeltas(coord1, coord2, xRange, yRange, scroll, origin) {\n var a1 = asAbsolute(coord1, scroll, origin);\n var a2 = asAbsolute(coord2, scroll, origin);\n var left = Math.abs(a1.left - a2.left);\n var top = Math.abs(a1.top - a2.top);\n return SugarPosition(left, top);\n };\n\n var toStyles = function toStyles(coord, scroll, origin) {\n var stylesOpt = coord.fold(function (x, y) {\n return {\n position: Optional.some('absolute'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n };\n }, function (x, y) {\n return {\n position: Optional.some('absolute'),\n left: Optional.some(x - origin.left + 'px'),\n top: Optional.some(y - origin.top + 'px')\n };\n }, function (x, y) {\n return {\n position: Optional.some('fixed'),\n left: Optional.some(x + 'px'),\n top: Optional.some(y + 'px')\n };\n });\n return _assign({\n right: Optional.none(),\n bottom: Optional.none()\n }, stylesOpt);\n };\n\n var translate = function translate(coord, deltaX, deltaY) {\n return coord.fold(function (x, y) {\n return offset(x + deltaX, y + deltaY);\n }, function (x, y) {\n return absolute(x + deltaX, y + deltaY);\n }, function (x, y) {\n return fixed(x + deltaX, y + deltaY);\n });\n };\n\n var absorb = function absorb(partialCoord, originalCoord, scroll, origin) {\n var absorbOne = function absorbOne(stencil, nu) {\n return function (optX, optY) {\n var original = stencil(originalCoord, scroll, origin);\n return nu(optX.getOr(original.left), optY.getOr(original.top));\n };\n };\n\n return partialCoord.fold(absorbOne(asOffset, offset), absorbOne(asAbsolute, absolute), absorbOne(asFixed, fixed));\n };\n\n var offset = adt.offset;\n var absolute = adt.absolute;\n var fixed = adt.fixed;\n\n var parseAttrToInt = function parseAttrToInt(element, name) {\n var value = get$d(element, name);\n return isUndefined(value) ? NaN : parseInt(value, 10);\n };\n\n var get = function get(component, snapsInfo) {\n var element = component.element;\n var x = parseAttrToInt(element, snapsInfo.leftAttr);\n var y = parseAttrToInt(element, snapsInfo.topAttr);\n return isNaN(x) || isNaN(y) ? Optional.none() : Optional.some(SugarPosition(x, y));\n };\n\n var set = function set(component, snapsInfo, pt) {\n var element = component.element;\n set$8(element, snapsInfo.leftAttr, pt.left + 'px');\n set$8(element, snapsInfo.topAttr, pt.top + 'px');\n };\n\n var clear = function clear(component, snapsInfo) {\n var element = component.element;\n remove$7(element, snapsInfo.leftAttr);\n remove$7(element, snapsInfo.topAttr);\n };\n\n var getCoords = function getCoords(component, snapInfo, coord, delta) {\n return get(component, snapInfo).fold(function () {\n return coord;\n }, function (fixed$1) {\n return fixed(fixed$1.left + delta.left, fixed$1.top + delta.top);\n });\n };\n\n var moveOrSnap = function moveOrSnap(component, snapInfo, coord, delta, scroll, origin) {\n var newCoord = getCoords(component, snapInfo, coord, delta);\n var snap = snapInfo.mustSnap ? findClosestSnap(component, snapInfo, newCoord, scroll, origin) : findSnap(component, snapInfo, newCoord, scroll, origin);\n var fixedCoord = asFixed(newCoord, scroll, origin);\n set(component, snapInfo, fixedCoord);\n return snap.fold(function () {\n return {\n coord: fixed(fixedCoord.left, fixedCoord.top),\n extra: Optional.none()\n };\n }, function (spanned) {\n return {\n coord: spanned.output,\n extra: spanned.extra\n };\n });\n };\n\n var stopDrag = function stopDrag(component, snapInfo) {\n clear(component, snapInfo);\n };\n\n var findMatchingSnap = function findMatchingSnap(snaps, newCoord, scroll, origin) {\n return findMap(snaps, function (snap) {\n var sensor = snap.sensor;\n var inRange = withinRange(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return inRange ? Optional.some({\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n }) : Optional.none();\n });\n };\n\n var findClosestSnap = function findClosestSnap(component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n var matchSnap = findMatchingSnap(snaps, newCoord, scroll, origin);\n return matchSnap.orThunk(function () {\n var bestSnap = foldl(snaps, function (acc, snap) {\n var sensor = snap.sensor;\n var deltas = getDeltas(newCoord, sensor, snap.range.left, snap.range.top, scroll, origin);\n return acc.deltas.fold(function () {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n }, function (bestDeltas) {\n var currAvg = (deltas.left + deltas.top) / 2;\n var bestAvg = (bestDeltas.left + bestDeltas.top) / 2;\n\n if (currAvg <= bestAvg) {\n return {\n deltas: Optional.some(deltas),\n snap: Optional.some(snap)\n };\n } else {\n return acc;\n }\n });\n }, {\n deltas: Optional.none(),\n snap: Optional.none()\n });\n return bestSnap.snap.map(function (snap) {\n return {\n output: absorb(snap.output, newCoord, scroll, origin),\n extra: snap.extra\n };\n });\n });\n };\n\n var findSnap = function findSnap(component, snapInfo, newCoord, scroll, origin) {\n var snaps = snapInfo.getSnapPoints(component);\n return findMatchingSnap(snaps, newCoord, scroll, origin);\n };\n\n var snapTo$1 = function snapTo$1(snap, scroll, origin) {\n return {\n coord: absorb(snap.output, snap.output, scroll, origin),\n extra: snap.extra\n };\n };\n\n var snapTo = function snapTo(component, dragConfig, _state, snap) {\n var target = dragConfig.getTarget(component.element);\n\n if (dragConfig.repositionTarget) {\n var doc = owner$4(component.element);\n var scroll_1 = get$9(doc);\n var origin_1 = getOrigin(target);\n var snapPin = snapTo$1(snap, scroll_1, origin_1);\n var styles = toStyles(snapPin.coord, scroll_1, origin_1);\n setOptions(target, styles);\n }\n };\n\n var DraggingApis = /*#__PURE__*/Object.freeze({\n __proto__: null,\n snapTo: snapTo\n });\n var initialAttribute = 'data-initial-z-index';\n\n var resetZIndex = function resetZIndex(blocker) {\n parent(blocker.element).filter(isElement$2).each(function (root) {\n getOpt(root, initialAttribute).fold(function () {\n return remove$6(root, 'z-index');\n }, function (zIndex) {\n return set$7(root, 'z-index', zIndex);\n });\n remove$7(root, initialAttribute);\n });\n };\n\n var changeZIndex = function changeZIndex(blocker) {\n parent(blocker.element).filter(isElement$2).each(function (root) {\n getRaw(root, 'z-index').each(function (zindex) {\n set$8(root, initialAttribute, zindex);\n });\n set$7(root, 'z-index', get$c(blocker.element, 'z-index'));\n });\n };\n\n var instigate = function instigate(anyComponent, blocker) {\n anyComponent.getSystem().addToGui(blocker);\n changeZIndex(blocker);\n };\n\n var discard = function discard(blocker) {\n resetZIndex(blocker);\n blocker.getSystem().removeFromGui(blocker);\n };\n\n var createComponent = function createComponent(component, blockerClass, blockerEvents) {\n return component.getSystem().build(Container.sketch({\n dom: {\n styles: {\n 'left': '0px',\n 'top': '0px',\n 'width': '100%',\n 'height': '100%',\n 'position': 'fixed',\n 'z-index': '1000000000000000'\n },\n classes: [blockerClass]\n },\n events: blockerEvents\n }));\n };\n\n var SnapSchema = optionObjOf('snaps', [required$1('getSnapPoints'), onHandler('onSensor'), required$1('leftAttr'), required$1('topAttr'), defaulted('lazyViewport', win), defaulted('mustSnap', false)]);\n var schema$6 = [defaulted('useFixed', never), required$1('blockerClass'), defaulted('getTarget', identity$1), defaulted('onDrag', noop), defaulted('repositionTarget', true), defaulted('onDrop', noop), defaultedFunction('getBounds', win), SnapSchema];\n\n var getCurrentCoord = function getCurrentCoord(target) {\n return lift3(getRaw(target, 'left'), getRaw(target, 'top'), getRaw(target, 'position'), function (left, top, position) {\n var nu = position === 'fixed' ? fixed : offset;\n return nu(parseInt(left, 10), parseInt(top, 10));\n }).getOrThunk(function () {\n var location = absolute$3(target);\n return absolute(location.left, location.top);\n });\n };\n\n var clampCoords = function clampCoords(component, coords, scroll, origin, startData) {\n var bounds = startData.bounds;\n var absoluteCoord = asAbsolute(coords, scroll, origin);\n var newX = clamp$1(absoluteCoord.left, bounds.x, bounds.x + bounds.width - startData.width);\n var newY = clamp$1(absoluteCoord.top, bounds.y, bounds.y + bounds.height - startData.height);\n var newCoords = absolute(newX, newY);\n return coords.fold(function () {\n var offset$1 = asOffset(newCoords, scroll, origin);\n return offset(offset$1.left, offset$1.top);\n }, constant$1(newCoords), function () {\n var fixed$1 = asFixed(newCoords, scroll, origin);\n return fixed(fixed$1.left, fixed$1.top);\n });\n };\n\n var calcNewCoord = function calcNewCoord(component, optSnaps, currentCoord, scroll, origin, delta, startData) {\n var newCoord = optSnaps.fold(function () {\n var translated = translate(currentCoord, delta.left, delta.top);\n var fixedCoord = asFixed(translated, scroll, origin);\n return fixed(fixedCoord.left, fixedCoord.top);\n }, function (snapInfo) {\n var snapping = moveOrSnap(component, snapInfo, currentCoord, delta, scroll, origin);\n snapping.extra.each(function (extra) {\n snapInfo.onSensor(component, extra);\n });\n return snapping.coord;\n });\n return clampCoords(component, newCoord, scroll, origin, startData);\n };\n\n var dragBy = function dragBy(component, dragConfig, startData, delta) {\n var target = dragConfig.getTarget(component.element);\n\n if (dragConfig.repositionTarget) {\n var doc = owner$4(component.element);\n var scroll_1 = get$9(doc);\n var origin_1 = getOrigin(target);\n var currentCoord = getCurrentCoord(target);\n var newCoord = calcNewCoord(component, dragConfig.snaps, currentCoord, scroll_1, origin_1, delta, startData);\n var styles = toStyles(newCoord, scroll_1, origin_1);\n setOptions(target, styles);\n }\n\n dragConfig.onDrag(component, target, delta);\n };\n\n var calcStartData = function calcStartData(dragConfig, comp) {\n return {\n bounds: dragConfig.getBounds(),\n height: getOuter$2(comp.element),\n width: getOuter$1(comp.element)\n };\n };\n\n var _move = function move(component, dragConfig, dragState, dragMode, event) {\n var delta = dragState.update(dragMode, event);\n var dragStartData = dragState.getStartData().getOrThunk(function () {\n return calcStartData(dragConfig, component);\n });\n delta.each(function (dlt) {\n dragBy(component, dragConfig, dragStartData, dlt);\n });\n };\n\n var stop = function stop(component, blocker, dragConfig, dragState) {\n blocker.each(discard);\n dragConfig.snaps.each(function (snapInfo) {\n stopDrag(component, snapInfo);\n });\n var target = dragConfig.getTarget(component.element);\n dragState.reset();\n dragConfig.onDrop(component, target);\n };\n\n var handlers = function handlers(events) {\n return function (dragConfig, dragState) {\n var updateStartState = function updateStartState(comp) {\n dragState.setStartData(calcStartData(dragConfig, comp));\n };\n\n return derive$2(__spreadArray([run$1(windowScroll(), function (comp) {\n dragState.getStartData().each(function () {\n return updateStartState(comp);\n });\n })], events(dragConfig, dragState, updateStartState), true));\n };\n };\n\n var init$2 = function init$2(dragApi) {\n return derive$2([run$1(mousedown(), dragApi.forceDrop), run$1(mouseup(), dragApi.drop), run$1(mousemove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n }), run$1(mouseout(), dragApi.delayDrop)]);\n };\n\n var getData$1 = function getData$1(event) {\n return Optional.from(SugarPosition(event.x, event.y));\n };\n\n var getDelta$1 = function getDelta$1(old, nu) {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n\n var MouseData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData$1,\n getDelta: getDelta$1\n });\n\n var events$2 = function events$2(dragConfig, dragState, updateStartState) {\n return [run$1(mousedown(), function (component, simulatedEvent) {\n var raw = simulatedEvent.event.raw;\n\n if (raw.button !== 0) {\n return;\n }\n\n simulatedEvent.stop();\n\n var stop$1 = function stop$1() {\n return stop(component, Optional.some(blocker), dragConfig, dragState);\n };\n\n var delayDrop = DelayedFunction(stop$1, 200);\n var dragApi = {\n drop: stop$1,\n delayDrop: delayDrop.schedule,\n forceDrop: stop$1,\n move: function move(event) {\n delayDrop.cancel();\n\n _move(component, dragConfig, dragState, MouseData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$2(dragApi));\n\n var start = function start() {\n updateStartState(component);\n instigate(component, blocker);\n };\n\n start();\n })];\n };\n\n var schema$5 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', {\n handlers: handlers(events$2)\n })], false);\n\n var init$1 = function init$1(dragApi) {\n return derive$2([run$1(touchstart(), dragApi.forceDrop), run$1(touchend(), dragApi.drop), run$1(touchcancel(), dragApi.drop), run$1(touchmove(), function (comp, simulatedEvent) {\n dragApi.move(simulatedEvent.event);\n })]);\n };\n\n var getDataFrom = function getDataFrom(touches) {\n var touch = touches[0];\n return Optional.some(SugarPosition(touch.clientX, touch.clientY));\n };\n\n var getData = function getData(event) {\n var raw = event.raw;\n var touches = raw.touches;\n return touches.length === 1 ? getDataFrom(touches) : Optional.none();\n };\n\n var getDelta = function getDelta(old, nu) {\n return SugarPosition(nu.left - old.left, nu.top - old.top);\n };\n\n var TouchData = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getData: getData,\n getDelta: getDelta\n });\n\n var events$1 = function events$1(dragConfig, dragState, updateStartState) {\n var blockerSingleton = value$1();\n\n var stopBlocking = function stopBlocking(component) {\n stop(component, blockerSingleton.get(), dragConfig, dragState);\n blockerSingleton.clear();\n };\n\n return [run$1(touchstart(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n\n var stop = function stop() {\n return stopBlocking(component);\n };\n\n var dragApi = {\n drop: stop,\n delayDrop: noop,\n forceDrop: stop,\n move: function move(event) {\n _move(component, dragConfig, dragState, TouchData, event);\n }\n };\n var blocker = createComponent(component, dragConfig.blockerClass, init$1(dragApi));\n blockerSingleton.set(blocker);\n\n var start = function start() {\n updateStartState(component);\n instigate(component, blocker);\n };\n\n start();\n }), run$1(touchmove(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n\n _move(component, dragConfig, dragState, TouchData, simulatedEvent.event);\n }), run$1(touchend(), function (component, simulatedEvent) {\n simulatedEvent.stop();\n stopBlocking(component);\n }), run$1(touchcancel(), stopBlocking)];\n };\n\n var schema$4 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', {\n handlers: handlers(events$1)\n })], false);\n\n var events = function events(dragConfig, dragState, updateStartState) {\n return __spreadArray(__spreadArray([], events$2(dragConfig, dragState, updateStartState), true), events$1(dragConfig, dragState, updateStartState), true);\n };\n\n var schema$3 = __spreadArray(__spreadArray([], schema$6, true), [output$1('dragger', {\n handlers: handlers(events)\n })], false);\n\n var mouse = schema$5;\n var touch = schema$4;\n var mouseOrTouch = schema$3;\n var DraggingBranches = /*#__PURE__*/Object.freeze({\n __proto__: null,\n mouse: mouse,\n touch: touch,\n mouseOrTouch: mouseOrTouch\n });\n\n var init = function init() {\n var previous = Optional.none();\n var startData = Optional.none();\n\n var reset = function reset() {\n previous = Optional.none();\n startData = Optional.none();\n };\n\n var calculateDelta = function calculateDelta(mode, nu) {\n var result = previous.map(function (old) {\n return mode.getDelta(old, nu);\n });\n previous = Optional.some(nu);\n return result;\n };\n\n var update = function update(mode, dragEvent) {\n return mode.getData(dragEvent).bind(function (nuData) {\n return calculateDelta(mode, nuData);\n });\n };\n\n var setStartData = function setStartData(data) {\n startData = Optional.some(data);\n };\n\n var getStartData = function getStartData() {\n return startData;\n };\n\n var readState = constant$1({});\n return nu$8({\n readState: readState,\n reset: reset,\n update: update,\n getStartData: getStartData,\n setStartData: setStartData\n });\n };\n\n var DragState = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init\n });\n var Dragging = createModes({\n branchKey: 'mode',\n branches: DraggingBranches,\n name: 'dragging',\n active: {\n events: function events(dragConfig, dragState) {\n var dragger = dragConfig.dragger;\n return dragger.handlers(dragConfig, dragState);\n }\n },\n extra: {\n snap: function snap(sConfig) {\n return {\n sensor: sConfig.sensor,\n range: sConfig.range,\n output: sConfig.output,\n extra: Optional.from(sConfig.extra)\n };\n }\n },\n state: DragState,\n apis: DraggingApis\n });\n var snapWidth = 40;\n var snapOffset = snapWidth / 2;\n\n var calcSnap = function calcSnap(selectorOpt, td, x, y, width, height) {\n return selectorOpt.fold(function () {\n return Dragging.snap({\n sensor: absolute(x - snapOffset, y - snapOffset),\n range: SugarPosition(width, height),\n output: absolute(Optional.some(x), Optional.some(y)),\n extra: {\n td: td\n }\n });\n }, function (selectorHandle) {\n var sensorLeft = x - snapOffset;\n var sensorTop = y - snapOffset;\n var sensorWidth = snapWidth;\n var sensorHeight = snapWidth;\n var rect = selectorHandle.element.dom.getBoundingClientRect();\n return Dragging.snap({\n sensor: absolute(sensorLeft, sensorTop),\n range: SugarPosition(sensorWidth, sensorHeight),\n output: absolute(Optional.some(x - rect.width / 2), Optional.some(y - rect.height / 2)),\n extra: {\n td: td\n }\n });\n });\n };\n\n var getSnapsConfig = function getSnapsConfig(getSnapPoints, cell, onChange) {\n var isSameCell = function isSameCell(cellOpt, td) {\n return cellOpt.exists(function (currentTd) {\n return eq(currentTd, td);\n });\n };\n\n return {\n getSnapPoints: getSnapPoints,\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top',\n onSensor: function onSensor(component, extra) {\n var td = extra.td;\n\n if (!isSameCell(cell.get(), td)) {\n cell.set(td);\n onChange(td);\n }\n },\n mustSnap: true\n };\n };\n\n var createSelector = function createSelector(snaps) {\n return record(Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-selector']\n },\n buttonBehaviours: derive$1([Dragging.config({\n mode: 'mouseOrTouch',\n blockerClass: 'blocker',\n snaps: snaps\n }), Unselecting.config({})]),\n eventOrder: {\n mousedown: ['dragging', 'alloy.base.behaviour'],\n touchstart: ['dragging', 'alloy.base.behaviour']\n }\n }));\n };\n\n var setup$4 = function setup$4(editor, sink) {\n var tlTds = Cell([]);\n var brTds = Cell([]);\n var isVisible = Cell(false);\n var startCell = value$1();\n var finishCell = value$1();\n\n var getTopLeftSnap = function getTopLeftSnap(td) {\n var box = absolute$2(td);\n return calcSnap(memTopLeft.getOpt(sink), td, box.x, box.y, box.width, box.height);\n };\n\n var getTopLeftSnaps = function getTopLeftSnaps() {\n return map$2(tlTds.get(), function (td) {\n return getTopLeftSnap(td);\n });\n };\n\n var getBottomRightSnap = function getBottomRightSnap(td) {\n var box = absolute$2(td);\n return calcSnap(memBottomRight.getOpt(sink), td, box.right, box.bottom, box.width, box.height);\n };\n\n var getBottomRightSnaps = function getBottomRightSnaps() {\n return map$2(brTds.get(), function (td) {\n return getBottomRightSnap(td);\n });\n };\n\n var topLeftSnaps = getSnapsConfig(getTopLeftSnaps, startCell, function (start) {\n finishCell.get().each(function (finish) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var bottomRightSnaps = getSnapsConfig(getBottomRightSnaps, finishCell, function (finish) {\n startCell.get().each(function (start) {\n editor.fire('TableSelectorChange', {\n start: start,\n finish: finish\n });\n });\n });\n var memTopLeft = createSelector(topLeftSnaps);\n var memBottomRight = createSelector(bottomRightSnaps);\n var topLeft = build$1(memTopLeft.asSpec());\n var bottomRight = build$1(memBottomRight.asSpec());\n\n var showOrHideHandle = function showOrHideHandle(selector, cell, isAbove, isBelow) {\n var cellRect = cell.dom.getBoundingClientRect();\n remove$6(selector.element, 'display');\n var viewportHeight = defaultView(SugarElement.fromDom(editor.getBody())).dom.innerHeight;\n var aboveViewport = isAbove(cellRect);\n var belowViewport = isBelow(cellRect, viewportHeight);\n\n if (aboveViewport || belowViewport) {\n set$7(selector.element, 'display', 'none');\n }\n };\n\n var snapTo = function snapTo(selector, cell, getSnapConfig, pos) {\n var snap = getSnapConfig(cell);\n Dragging.snapTo(selector, snap);\n\n var isAbove = function isAbove(rect) {\n return rect[pos] < 0;\n };\n\n var isBelow = function isBelow(rect, viewportHeight) {\n return rect[pos] > viewportHeight;\n };\n\n showOrHideHandle(selector, cell, isAbove, isBelow);\n };\n\n var snapTopLeft = function snapTopLeft(cell) {\n return snapTo(topLeft, cell, getTopLeftSnap, 'top');\n };\n\n var snapLastTopLeft = function snapLastTopLeft() {\n return startCell.get().each(snapTopLeft);\n };\n\n var snapBottomRight = function snapBottomRight(cell) {\n return snapTo(bottomRight, cell, getBottomRightSnap, 'bottom');\n };\n\n var snapLastBottomRight = function snapLastBottomRight() {\n return finishCell.get().each(snapBottomRight);\n };\n\n if (detect$1().deviceType.isTouch()) {\n editor.on('TableSelectionChange', function (e) {\n if (!isVisible.get()) {\n attach(sink, topLeft);\n attach(sink, bottomRight);\n isVisible.set(true);\n }\n\n startCell.set(e.start);\n finishCell.set(e.finish);\n e.otherCells.each(function (otherCells) {\n tlTds.set(otherCells.upOrLeftCells);\n brTds.set(otherCells.downOrRightCells);\n snapTopLeft(e.start);\n snapBottomRight(e.finish);\n });\n });\n editor.on('ResizeEditor ResizeWindow ScrollContent', function () {\n snapLastTopLeft();\n snapLastBottomRight();\n });\n editor.on('TableSelectionClear', function () {\n if (isVisible.get()) {\n detach(topLeft);\n detach(bottomRight);\n isVisible.set(false);\n }\n\n startCell.clear();\n finishCell.clear();\n });\n }\n };\n\n var isHidden = function isHidden(elm) {\n if (elm.nodeType === 1) {\n if (elm.nodeName === 'BR' || !!elm.getAttribute('data-mce-bogus')) {\n return true;\n }\n\n if (elm.getAttribute('data-mce-type') === 'bookmark') {\n return true;\n }\n }\n\n return false;\n };\n\n var renderElementPath = function renderElementPath(editor, settings, providersBackstage) {\n if (!settings.delimiter) {\n settings.delimiter = '\\xBB';\n }\n\n var getDataPath = function getDataPath(data) {\n var parts = data || [];\n var newPathElements = map$2(parts, function (part, index) {\n return Button.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-item'],\n attributes: {\n 'role': 'button',\n 'data-index': index,\n 'tab-index': -1,\n 'aria-level': index + 1\n },\n innerHtml: part.name\n },\n action: function action(_btn) {\n editor.focus();\n editor.selection.select(part.element);\n editor.nodeChanged();\n },\n buttonBehaviours: derive$1([DisablingConfigs.button(providersBackstage.isDisabled), receivingConfig()])\n });\n });\n var divider = {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path-divider'],\n attributes: {\n 'aria-hidden': true\n },\n innerHtml: ' ' + settings.delimiter + ' '\n }\n };\n return foldl(newPathElements.slice(1), function (acc, element) {\n var newAcc = acc;\n newAcc.push(divider);\n newAcc.push(element);\n return newAcc;\n }, [newPathElements[0]]);\n };\n\n var updatePath = function updatePath(parents) {\n var newPath = [];\n var i = parents.length;\n\n while (i-- > 0) {\n var parent_1 = parents[i];\n\n if (parent_1.nodeType === 1 && !isHidden(parent_1)) {\n var args = editor.fire('ResolveName', {\n name: parent_1.nodeName.toLowerCase(),\n target: parent_1\n });\n\n if (!args.isDefaultPrevented()) {\n newPath.push({\n name: args.name,\n element: parent_1\n });\n }\n\n if (args.isPropagationStopped()) {\n break;\n }\n }\n }\n\n return newPath;\n };\n\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__path'],\n attributes: {\n role: 'navigation'\n }\n },\n behaviours: derive$1([Keying.config({\n mode: 'flow',\n selector: 'div[role=button]'\n }), Disabling.config({\n disabled: providersBackstage.isDisabled\n }), receivingConfig(), Tabstopping.config({}), Replacing.config({}), config('elementPathEvents', [runOnAttached(function (comp, _e) {\n editor.shortcuts.add('alt+F11', 'focus statusbar elementpath', function () {\n return Keying.focusIn(comp);\n });\n editor.on('NodeChange', function (e) {\n var newPath = updatePath(e.parents);\n\n if (newPath.length > 0) {\n Replacing.set(comp, getDataPath(newPath));\n } else {\n Replacing.set(comp, []);\n }\n });\n })])]),\n components: []\n };\n };\n\n var ResizeTypes;\n\n (function (ResizeTypes) {\n ResizeTypes[ResizeTypes['None'] = 0] = 'None';\n ResizeTypes[ResizeTypes['Both'] = 1] = 'Both';\n ResizeTypes[ResizeTypes['Vertical'] = 2] = 'Vertical';\n })(ResizeTypes || (ResizeTypes = {}));\n\n var getDimensions = function getDimensions(editor, deltas, resizeType, originalHeight, originalWidth) {\n var dimensions = {};\n dimensions.height = calcCappedSize(originalHeight + deltas.top, getMinHeightSetting(editor), getMaxHeightSetting(editor));\n\n if (resizeType === ResizeTypes.Both) {\n dimensions.width = calcCappedSize(originalWidth + deltas.left, getMinWidthSetting(editor), getMaxWidthSetting(editor));\n }\n\n return dimensions;\n };\n\n var resize = function resize(editor, deltas, resizeType) {\n var container = SugarElement.fromDom(editor.getContainer());\n var dimensions = getDimensions(editor, deltas, resizeType, get$b(container), get$a(container));\n each(dimensions, function (val, dim) {\n return set$7(container, dim, numToPx(val));\n });\n fireResizeEditor(editor);\n };\n\n var getResizeType = function getResizeType(editor) {\n var fallback = !editor.hasPlugin('autoresize');\n var resize = editor.getParam('resize', fallback);\n\n if (resize === false) {\n return ResizeTypes.None;\n } else if (resize === 'both') {\n return ResizeTypes.Both;\n } else {\n return ResizeTypes.Vertical;\n }\n };\n\n var keyboardHandler = function keyboardHandler(editor, resizeType, x, y) {\n var scale = 20;\n var delta = SugarPosition(x * scale, y * scale);\n resize(editor, delta, resizeType);\n return Optional.some(true);\n };\n\n var renderResizeHandler = function renderResizeHandler(editor, providersBackstage) {\n var resizeType = getResizeType(editor);\n\n if (resizeType === ResizeTypes.None) {\n return Optional.none();\n }\n\n return Optional.some(render$3('resize-handle', {\n tag: 'div',\n classes: ['tox-statusbar__resize-handle'],\n attributes: {\n title: providersBackstage.translate('Resize')\n },\n behaviours: [Dragging.config({\n mode: 'mouse',\n repositionTarget: false,\n onDrag: function onDrag(_comp, _target, delta) {\n return resize(editor, delta, resizeType);\n },\n blockerClass: 'tox-blocker'\n }), Keying.config({\n mode: 'special',\n onLeft: function onLeft() {\n return keyboardHandler(editor, resizeType, -1, 0);\n },\n onRight: function onRight() {\n return keyboardHandler(editor, resizeType, 1, 0);\n },\n onUp: function onUp() {\n return keyboardHandler(editor, resizeType, 0, -1);\n },\n onDown: function onDown() {\n return keyboardHandler(editor, resizeType, 0, 1);\n }\n }), Tabstopping.config({}), Focusing.config({})]\n }, providersBackstage.icons));\n };\n\n var renderWordCount = function renderWordCount(editor, providersBackstage) {\n var _a;\n\n var replaceCountText = function replaceCountText(comp, count, mode) {\n return Replacing.set(comp, [text(providersBackstage.translate(['{0} ' + mode, count[mode]]))]);\n };\n\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-statusbar__wordcount']\n },\n components: [],\n buttonBehaviours: derive$1([DisablingConfigs.button(providersBackstage.isDisabled), receivingConfig(), Tabstopping.config({}), Replacing.config({}), Representing.config({\n store: {\n mode: 'memory',\n initialValue: {\n mode: 'words',\n count: {\n words: 0,\n characters: 0\n }\n }\n }\n }), config('wordcount-events', [runOnExecute$1(function (comp) {\n var currentVal = Representing.getValue(comp);\n var newMode = currentVal.mode === 'words' ? 'characters' : 'words';\n Representing.setValue(comp, {\n mode: newMode,\n count: currentVal.count\n });\n replaceCountText(comp, currentVal.count, newMode);\n }), runOnAttached(function (comp) {\n editor.on('wordCountUpdate', function (e) {\n var mode = Representing.getValue(comp).mode;\n Representing.setValue(comp, {\n mode: mode,\n count: e.wordCount\n });\n replaceCountText(comp, e.wordCount, mode);\n });\n })])]),\n eventOrder: (_a = {}, _a[execute$5()] = ['disabling', 'alloy.base.behaviour', 'wordcount-events'], _a)\n });\n };\n\n var renderStatusbar = function renderStatusbar(editor, providersBackstage) {\n var renderBranding = function renderBranding() {\n var label = global$e.translate(['Powered by {0}', 'Tiny']);\n var linkHtml = '' + label + '';\n return {\n dom: {\n tag: 'span',\n classes: ['tox-statusbar__branding'],\n innerHtml: linkHtml\n }\n };\n };\n\n var getTextComponents = function getTextComponents() {\n var components = [];\n\n if (editor.getParam('elementpath', true, 'boolean')) {\n components.push(renderElementPath(editor, {}, providersBackstage));\n }\n\n if (editor.hasPlugin('wordcount')) {\n components.push(renderWordCount(editor, providersBackstage));\n }\n\n if (editor.getParam('branding', true, 'boolean')) {\n components.push(renderBranding());\n }\n\n if (components.length > 0) {\n return [{\n dom: {\n tag: 'div',\n classes: ['tox-statusbar__text-container']\n },\n components: components\n }];\n }\n\n return [];\n };\n\n var getComponents = function getComponents() {\n var components = getTextComponents();\n var resizeHandler = renderResizeHandler(editor, providersBackstage);\n return components.concat(resizeHandler.toArray());\n };\n\n return {\n dom: {\n tag: 'div',\n classes: ['tox-statusbar']\n },\n components: getComponents()\n };\n };\n\n var setup$3 = function setup$3(editor) {\n var _a;\n\n var isInline = editor.inline;\n var mode = isInline ? Inline : Iframe;\n var header = isStickyToolbar(editor) ? StickyHeader : StaticHeader;\n var lazyOuterContainer = Optional.none();\n var platform = detect$1();\n var isIE = platform.browser.isIE();\n var platformClasses = isIE ? ['tox-platform-ie'] : [];\n var isTouch = platform.deviceType.isTouch();\n var touchPlatformClass = 'tox-platform-touch';\n var deviceClasses = isTouch ? [touchPlatformClass] : [];\n var isToolbarBottom = isToolbarLocationBottom(editor);\n var uiContainer = getUiContainer(editor);\n var dirAttributes = global$e.isRtl() ? {\n attributes: {\n dir: 'rtl'\n }\n } : {};\n var verticalDirAttributes = {\n attributes: (_a = {}, _a[Attribute] = isToolbarBottom ? AttributeValue.BottomToTop : AttributeValue.TopToBottom, _a)\n };\n\n var _lazyHeader = function lazyHeader() {\n return lazyOuterContainer.bind(OuterContainer.getHeader);\n };\n\n var isHeaderDocked = function isHeaderDocked() {\n return header.isDocked(_lazyHeader);\n };\n\n var resizeUiMothership = function resizeUiMothership() {\n set$7(uiMothership.element, 'width', document.body.clientWidth + 'px');\n };\n\n var makeSinkDefinition = function makeSinkDefinition() {\n var isGridUiContainer = eq(body(), uiContainer) && get$c(uiContainer, 'display') === 'grid';\n var sinkSpec = {\n dom: _assign({\n tag: 'div',\n classes: ['tox', 'tox-silver-sink', 'tox-tinymce-aux'].concat(platformClasses).concat(deviceClasses)\n }, dirAttributes),\n behaviours: derive$1([Positioning.config({\n useFixed: function useFixed() {\n return isHeaderDocked();\n }\n })])\n };\n var reactiveWidthSpec = {\n dom: {\n styles: {\n width: document.body.clientWidth + 'px'\n }\n },\n events: derive$2([run$1(windowResize(), resizeUiMothership)])\n };\n return deepMerge(sinkSpec, isGridUiContainer ? reactiveWidthSpec : {});\n };\n\n var sink = build$1(makeSinkDefinition());\n\n var lazySink = function lazySink() {\n return Result.value(sink);\n };\n\n var memAnchorBar = record({\n dom: {\n tag: 'div',\n classes: ['tox-anchorbar']\n }\n });\n\n var lazyAnchorBar = function lazyAnchorBar() {\n return lazyOuterContainer.bind(function (container) {\n return memAnchorBar.getOpt(container);\n }).getOrDie('Could not find a anchor bar element');\n };\n\n var lazyToolbar = function lazyToolbar() {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getToolbar(container);\n }).getOrDie('Could not find more toolbar element');\n };\n\n var lazyThrobber = function lazyThrobber() {\n return lazyOuterContainer.bind(function (container) {\n return OuterContainer.getThrobber(container);\n }).getOrDie('Could not find throbber element');\n };\n\n var backstage = init$7(sink, editor, lazyAnchorBar);\n var partMenubar = OuterContainer.parts.menubar({\n dom: {\n tag: 'div',\n classes: ['tox-menubar']\n },\n backstage: backstage,\n onEscape: function onEscape() {\n editor.focus();\n }\n });\n var toolbarMode = getToolbarMode(editor);\n var partToolbar = OuterContainer.parts.toolbar(_assign({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar']\n },\n getSink: lazySink,\n providers: backstage.shared.providers,\n onEscape: function onEscape() {\n editor.focus();\n },\n type: toolbarMode,\n lazyToolbar: lazyToolbar,\n lazyHeader: function lazyHeader() {\n return _lazyHeader().getOrDie('Could not find header element');\n }\n }, verticalDirAttributes));\n var partMultipleToolbar = OuterContainer.parts['multiple-toolbar']({\n dom: {\n tag: 'div',\n classes: ['tox-toolbar-overlord']\n },\n providers: backstage.shared.providers,\n onEscape: function onEscape() {\n editor.focus();\n },\n type: toolbarMode\n });\n var partSocket = OuterContainer.parts.socket({\n dom: {\n tag: 'div',\n classes: ['tox-edit-area']\n }\n });\n var partSidebar = OuterContainer.parts.sidebar({\n dom: {\n tag: 'div',\n classes: ['tox-sidebar']\n }\n });\n var partThrobber = OuterContainer.parts.throbber({\n dom: {\n tag: 'div',\n classes: ['tox-throbber']\n },\n backstage: backstage\n });\n var sb = editor.getParam('statusbar', true, 'boolean');\n var statusbar = sb && !isInline ? Optional.some(renderStatusbar(editor, backstage.shared.providers)) : Optional.none();\n var socketSidebarContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-sidebar-wrap']\n },\n components: [partSocket, partSidebar]\n };\n var hasMultipleToolbar = isMultipleToolbars(editor);\n var hasToolbar = isToolbarEnabled(editor);\n var hasMenubar = isMenubarEnabled(editor);\n\n var getPartToolbar = function getPartToolbar() {\n if (hasMultipleToolbar) {\n return [partMultipleToolbar];\n } else if (hasToolbar) {\n return [partToolbar];\n } else {\n return [];\n }\n };\n\n var partHeader = OuterContainer.parts.header({\n dom: _assign({\n tag: 'div',\n classes: ['tox-editor-header']\n }, verticalDirAttributes),\n components: flatten([hasMenubar ? [partMenubar] : [], getPartToolbar(), useFixedContainer(editor) ? [] : [memAnchorBar.asSpec()]]),\n sticky: isStickyToolbar(editor),\n editor: editor,\n sharedBackstage: backstage.shared\n });\n var editorComponents = flatten([isToolbarBottom ? [] : [partHeader], isInline ? [] : [socketSidebarContainer], isToolbarBottom ? [partHeader] : []]);\n var editorContainer = {\n dom: {\n tag: 'div',\n classes: ['tox-editor-container']\n },\n components: editorComponents\n };\n var containerComponents = flatten([[editorContainer], isInline ? [] : statusbar.toArray(), [partThrobber]]);\n var isHidden = isDistractionFree(editor);\n\n var attributes = _assign(_assign({\n role: 'application'\n }, global$e.isRtl() ? {\n dir: 'rtl'\n } : {}), isHidden ? {\n 'aria-hidden': 'true'\n } : {});\n\n var outerContainer = build$1(OuterContainer.sketch({\n dom: {\n tag: 'div',\n classes: ['tox', 'tox-tinymce'].concat(isInline ? ['tox-tinymce-inline'] : []).concat(isToolbarBottom ? ['tox-tinymce--toolbar-bottom'] : []).concat(deviceClasses).concat(platformClasses),\n styles: _assign({\n visibility: 'hidden'\n }, isHidden ? {\n opacity: '0',\n border: '0'\n } : {}),\n attributes: attributes\n },\n components: containerComponents,\n behaviours: derive$1([receivingConfig(), Disabling.config({\n disableClass: 'tox-tinymce--disabled'\n }), Keying.config({\n mode: 'cyclic',\n selector: '.tox-menubar, .tox-toolbar, .tox-toolbar__primary, .tox-toolbar__overflow--open, .tox-sidebar__overflow--open, .tox-statusbar__path, .tox-statusbar__wordcount, .tox-statusbar__branding a, .tox-statusbar__resize-handle'\n })])\n }));\n lazyOuterContainer = Optional.some(outerContainer);\n editor.shortcuts.add('alt+F9', 'focus menubar', function () {\n OuterContainer.focusMenubar(outerContainer);\n });\n editor.shortcuts.add('alt+F10', 'focus toolbar', function () {\n OuterContainer.focusToolbar(outerContainer);\n });\n editor.addCommand('ToggleToolbarDrawer', function () {\n OuterContainer.toggleToolbarDrawer(outerContainer);\n });\n editor.addQueryStateHandler('ToggleToolbarDrawer', function () {\n return OuterContainer.isToolbarDrawerToggled(outerContainer);\n });\n var mothership = takeover(outerContainer);\n var uiMothership = takeover(sink);\n setup$b(editor, mothership, uiMothership);\n\n var getUi = function getUi() {\n var channels = {\n broadcastAll: uiMothership.broadcast,\n broadcastOn: uiMothership.broadcastOn,\n register: noop\n };\n return {\n channels: channels\n };\n };\n\n var setEditorSize = function setEditorSize() {\n var parsedHeight = numToPx(getHeightWithFallback(editor));\n var parsedWidth = numToPx(getWidthWithFallback(editor));\n\n if (!editor.inline) {\n if (isValidValue('div', 'width', parsedWidth)) {\n set$7(outerContainer.element, 'width', parsedWidth);\n }\n\n if (isValidValue('div', 'height', parsedHeight)) {\n set$7(outerContainer.element, 'height', parsedHeight);\n } else {\n set$7(outerContainer.element, 'height', '200px');\n }\n }\n\n return parsedHeight;\n };\n\n var renderUI = function renderUI() {\n header.setup(editor, backstage.shared, _lazyHeader);\n setup$6(editor, backstage);\n setup$5(editor, lazySink, backstage);\n setup$8(editor);\n setup$7(editor, lazyThrobber, backstage.shared);\n map$1(getToolbarGroups(editor), function (toolbarGroupButtonConfig, name) {\n editor.ui.registry.addGroupToolbarButton(name, toolbarGroupButtonConfig);\n });\n\n var _a = editor.ui.registry.getAll(),\n buttons = _a.buttons,\n menuItems = _a.menuItems,\n contextToolbars = _a.contextToolbars,\n sidebars = _a.sidebars;\n\n var toolbarOpt = getMultipleToolbarsSetting(editor);\n var rawUiConfig = {\n menuItems: menuItems,\n menus: getMenus(editor),\n menubar: getMenubar(editor),\n toolbar: toolbarOpt.getOrThunk(function () {\n return getToolbar(editor);\n }),\n allowToolbarGroups: toolbarMode === ToolbarMode.floating,\n buttons: buttons,\n sidebar: sidebars\n };\n register$7(editor, contextToolbars, sink, {\n backstage: backstage\n });\n setup$4(editor, sink);\n var elm = editor.getElement();\n var height = setEditorSize();\n var uiComponents = {\n mothership: mothership,\n uiMothership: uiMothership,\n outerContainer: outerContainer\n };\n var args = {\n targetNode: elm,\n height: height\n };\n return mode.render(editor, uiComponents, rawUiConfig, backstage, args);\n };\n\n return {\n mothership: mothership,\n uiMothership: uiMothership,\n backstage: backstage,\n renderUI: renderUI,\n getUi: getUi\n };\n };\n\n var describedBy = function describedBy(describedElement, describeElement) {\n var describeId = Optional.from(get$d(describedElement, 'id')).fold(function () {\n var id = generate$6('dialog-describe');\n set$8(describeElement, 'id', id);\n return id;\n }, identity$1);\n set$8(describedElement, 'aria-describedby', describeId);\n };\n\n var labelledBy = function labelledBy(labelledElement, labelElement) {\n var labelId = getOpt(labelledElement, 'id').fold(function () {\n var id = generate$6('dialog-label');\n set$8(labelElement, 'id', id);\n return id;\n }, identity$1);\n set$8(labelledElement, 'aria-labelledby', labelId);\n };\n\n var schema$2 = constant$1([required$1('lazySink'), option('dragBlockClass'), defaultedFunction('getBounds', win), defaulted('useTabstopAt', always), defaulted('eventOrder', {}), field('modalBehaviours', [Keying]), onKeyboardHandler('onExecute'), onStrictKeyboardHandler('onEscape')]);\n var basic = {\n sketch: identity$1\n };\n var parts$2 = constant$1([optional({\n name: 'draghandle',\n overrides: function overrides(detail, spec) {\n return {\n behaviours: derive$1([Dragging.config({\n mode: 'mouse',\n getTarget: function getTarget(handle) {\n return ancestor(handle, '[role=\"dialog\"]').getOr(handle);\n },\n blockerClass: detail.dragBlockClass.getOrDie(new Error('The drag blocker class was not specified for a dialog with a drag handle: \\n' + JSON.stringify(spec, null, 2)).message),\n getBounds: detail.getDragBounds\n })])\n };\n }\n }), required({\n schema: [required$1('dom')],\n name: 'title'\n }), required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'close'\n }), required({\n factory: basic,\n schema: [required$1('dom')],\n name: 'body'\n }), optional({\n factory: basic,\n schema: [required$1('dom')],\n name: 'footer'\n }), external$1({\n factory: {\n sketch: function sketch(spec, detail) {\n return _assign(_assign({}, spec), {\n dom: detail.dom,\n components: detail.components\n });\n }\n },\n schema: [defaulted('dom', {\n tag: 'div',\n styles: {\n position: 'fixed',\n left: '0px',\n top: '0px',\n right: '0px',\n bottom: '0px'\n }\n }), defaulted('components', [])],\n name: 'blocker'\n })]);\n\n var factory$4 = function factory$4(detail, components, spec, externals) {\n var _a;\n\n var dialogComp = value$1();\n\n var showDialog = function showDialog(dialog) {\n dialogComp.set(dialog);\n var sink = detail.lazySink(dialog).getOrDie();\n var externalBlocker = externals.blocker();\n var blocker = sink.getSystem().build(_assign(_assign({}, externalBlocker), {\n components: externalBlocker.components.concat([premade(dialog)]),\n behaviours: derive$1([Focusing.config({}), config('dialog-blocker-events', [runOnSource(focusin(), function () {\n Keying.focusIn(dialog);\n })])])\n }));\n attach(sink, blocker);\n Keying.focusIn(dialog);\n };\n\n var hideDialog = function hideDialog(dialog) {\n dialogComp.clear();\n parent(dialog.element).each(function (blockerDom) {\n dialog.getSystem().getByDom(blockerDom).each(function (blocker) {\n detach(blocker);\n });\n });\n };\n\n var getDialogBody = function getDialogBody(dialog) {\n return getPartOrDie(dialog, detail, 'body');\n };\n\n var getDialogFooter = function getDialogFooter(dialog) {\n return getPartOrDie(dialog, detail, 'footer');\n };\n\n var setBusy = function setBusy(dialog, getBusySpec) {\n Blocking.block(dialog, getBusySpec);\n };\n\n var setIdle = function setIdle(dialog) {\n Blocking.unblock(dialog);\n };\n\n var modalEventsId = generate$6('modal-events');\n\n var eventOrder = _assign(_assign({}, detail.eventOrder), (_a = {}, _a[attachedToDom()] = [modalEventsId].concat(detail.eventOrder['alloy.system.attached'] || []), _a));\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n apis: {\n show: showDialog,\n hide: hideDialog,\n getBody: getDialogBody,\n getFooter: getDialogFooter,\n setIdle: setIdle,\n setBusy: setBusy\n },\n eventOrder: eventOrder,\n domModification: {\n attributes: {\n 'role': 'dialog',\n 'aria-modal': 'true'\n }\n },\n behaviours: augment(detail.modalBehaviours, [Replacing.config({}), Keying.config({\n mode: 'cyclic',\n onEnter: detail.onExecute,\n onEscape: detail.onEscape,\n useTabstopAt: detail.useTabstopAt\n }), Blocking.config({\n getRoot: dialogComp.get\n }), config(modalEventsId, [runOnAttached(function (c) {\n labelledBy(c.element, getPartOrDie(c, detail, 'title').element);\n describedBy(c.element, getPartOrDie(c, detail, 'body').element);\n })])])\n };\n };\n\n var ModalDialog = composite({\n name: 'ModalDialog',\n configFields: schema$2(),\n partFields: parts$2(),\n factory: factory$4,\n apis: {\n show: function show(apis, dialog) {\n apis.show(dialog);\n },\n hide: function hide(apis, dialog) {\n apis.hide(dialog);\n },\n getBody: function getBody(apis, dialog) {\n return apis.getBody(dialog);\n },\n getFooter: function getFooter(apis, dialog) {\n return apis.getFooter(dialog);\n },\n setBusy: function setBusy(apis, dialog, getBusySpec) {\n apis.setBusy(dialog, getBusySpec);\n },\n setIdle: function setIdle(apis, dialog) {\n apis.setIdle(dialog);\n }\n }\n });\n var dialogToggleMenuItemSchema = objOf([requiredString('type'), requiredString('name')].concat(commonMenuItemFields));\n var dialogToggleMenuItemDataProcessor = boolean;\n var baseFooterButtonFields = [field$1('name', 'name', defaultedThunk(function () {\n return generate$6('button-name');\n }), string), optionString('icon'), defaultedStringEnum('align', 'end', ['start', 'end']), defaultedBoolean('primary', false), defaultedBoolean('disabled', false)];\n\n var dialogFooterButtonFields = __spreadArray(__spreadArray([], baseFooterButtonFields, true), [requiredString('text')], false);\n\n var normalFooterButtonFields = __spreadArray([requiredStringEnum('type', ['submit', 'cancel', 'custom'])], dialogFooterButtonFields, true);\n\n var menuFooterButtonFields = __spreadArray([requiredStringEnum('type', ['menu']), optionString('text'), optionString('tooltip'), optionString('icon'), requiredArrayOf('items', dialogToggleMenuItemSchema)], baseFooterButtonFields, true);\n\n var dialogFooterButtonSchema = choose$1('type', {\n submit: normalFooterButtonFields,\n cancel: normalFooterButtonFields,\n custom: normalFooterButtonFields,\n menu: menuFooterButtonFields\n });\n var alertBannerFields = [requiredString('type'), requiredString('text'), requiredStringEnum('level', ['info', 'warn', 'error', 'success']), requiredString('icon'), defaulted('url', '')];\n var alertBannerSchema = objOf(alertBannerFields);\n\n var createBarFields = function createBarFields(itemsField) {\n return [requiredString('type'), itemsField];\n };\n\n var buttonFields = [requiredString('type'), requiredString('text'), defaultedBoolean('disabled', false), defaultedBoolean('primary', false), field$1('name', 'name', defaultedThunk(function () {\n return generate$6('button-name');\n }), string), optionString('icon'), defaultedBoolean('borderless', false)];\n var buttonSchema = objOf(buttonFields);\n var checkboxFields = [requiredString('type'), requiredString('name'), requiredString('label'), defaultedBoolean('disabled', false)];\n var checkboxSchema = objOf(checkboxFields);\n var checkboxDataProcessor = boolean;\n var formComponentFields = [requiredString('type'), requiredString('name')];\n var formComponentWithLabelFields = formComponentFields.concat([optionString('label')]);\n var collectionFields = formComponentWithLabelFields.concat([defaulted('columns', 'auto')]);\n var collectionSchema = objOf(collectionFields);\n var collectionDataProcessor = arrOfObj([requiredString('value'), requiredString('text'), requiredString('icon')]);\n var colorInputFields = formComponentWithLabelFields;\n var colorInputSchema = objOf(colorInputFields);\n var colorInputDataProcessor = string;\n var colorPickerFields = formComponentWithLabelFields;\n var colorPickerSchema = objOf(colorPickerFields);\n var colorPickerDataProcessor = string;\n var customEditorFields = formComponentFields.concat([defaultedString('tag', 'textarea'), requiredString('scriptId'), requiredString('scriptUrl'), defaultedPostMsg('settings', undefined)]);\n var customEditorFieldsOld = formComponentFields.concat([defaultedString('tag', 'textarea'), requiredFunction('init')]);\n var customEditorSchema = valueOf(function (v) {\n return asRaw('customeditor.old', objOfOnly(customEditorFieldsOld), v).orThunk(function () {\n return asRaw('customeditor.new', objOfOnly(customEditorFields), v);\n });\n });\n var customEditorDataProcessor = string;\n var dropZoneFields = formComponentWithLabelFields;\n var dropZoneSchema = objOf(dropZoneFields);\n var dropZoneDataProcessor = arrOfVal();\n\n var createGridFields = function createGridFields(itemsField) {\n return [requiredString('type'), requiredNumber('columns'), itemsField];\n };\n\n var htmlPanelFields = [requiredString('type'), requiredString('html'), defaultedStringEnum('presets', 'presentation', ['presentation', 'document'])];\n var htmlPanelSchema = objOf(htmlPanelFields);\n var iframeFields = formComponentWithLabelFields.concat([defaultedBoolean('sandboxed', true)]);\n var iframeSchema = objOf(iframeFields);\n var iframeDataProcessor = string;\n var imageToolsFields = formComponentWithLabelFields.concat([requiredOf('currentState', objOf([required$1('blob'), requiredString('url')]))]);\n var imageToolsSchema = objOf(imageToolsFields);\n var inputFields = formComponentWithLabelFields.concat([optionString('inputMode'), optionString('placeholder'), defaultedBoolean('maximized', false), defaultedBoolean('disabled', false)]);\n var inputSchema = objOf(inputFields);\n var inputDataProcessor = string;\n\n var createLabelFields = function createLabelFields(itemsField) {\n return [requiredString('type'), requiredString('label'), itemsField];\n };\n\n var listBoxSingleItemFields = [requiredString('text'), requiredString('value')];\n var listBoxNestedItemFields = [requiredString('text'), requiredArrayOf('items', thunkOf('items', function () {\n return listBoxItemSchema;\n }))];\n var listBoxItemSchema = oneOf([objOf(listBoxSingleItemFields), objOf(listBoxNestedItemFields)]);\n var listBoxFields = formComponentWithLabelFields.concat([requiredArrayOf('items', listBoxItemSchema), defaultedBoolean('disabled', false)]);\n var listBoxSchema = objOf(listBoxFields);\n var listBoxDataProcessor = string;\n var selectBoxFields = formComponentWithLabelFields.concat([requiredArrayOfObj('items', [requiredString('text'), requiredString('value')]), defaultedNumber('size', 1), defaultedBoolean('disabled', false)]);\n var selectBoxSchema = objOf(selectBoxFields);\n var selectBoxDataProcessor = string;\n var sizeInputFields = formComponentWithLabelFields.concat([defaultedBoolean('constrain', true), defaultedBoolean('disabled', false)]);\n var sizeInputSchema = objOf(sizeInputFields);\n var sizeInputDataProcessor = objOf([requiredString('width'), requiredString('height')]);\n var tableFields = [requiredString('type'), requiredArrayOf('header', string), requiredArrayOf('cells', arrOf(string))];\n var tableSchema = objOf(tableFields);\n var textAreaFields = formComponentWithLabelFields.concat([optionString('placeholder'), defaultedBoolean('maximized', false), defaultedBoolean('disabled', false)]);\n var textAreaSchema = objOf(textAreaFields);\n var textAreaDataProcessor = string;\n var urlInputFields = formComponentWithLabelFields.concat([defaultedStringEnum('filetype', 'file', ['image', 'media', 'file']), defaulted('disabled', false)]);\n var urlInputSchema = objOf(urlInputFields);\n var urlInputDataProcessor = objOf([requiredString('value'), defaulted('meta', {})]);\n\n var createItemsField = function createItemsField(name) {\n return field$1('items', 'items', required$2(), arrOf(valueOf(function (v) {\n return asRaw('Checking item of ' + name, itemSchema, v).fold(function (sErr) {\n return Result.error(formatError(sErr));\n }, function (passValue) {\n return Result.value(passValue);\n });\n })));\n };\n\n var itemSchema = valueThunk(function () {\n return choose$2('type', {\n alertbanner: alertBannerSchema,\n bar: objOf(createBarFields(createItemsField('bar'))),\n button: buttonSchema,\n checkbox: checkboxSchema,\n colorinput: colorInputSchema,\n colorpicker: colorPickerSchema,\n dropzone: dropZoneSchema,\n grid: objOf(createGridFields(createItemsField('grid'))),\n iframe: iframeSchema,\n input: inputSchema,\n listbox: listBoxSchema,\n selectbox: selectBoxSchema,\n sizeinput: sizeInputSchema,\n textarea: textAreaSchema,\n urlinput: urlInputSchema,\n customeditor: customEditorSchema,\n htmlpanel: htmlPanelSchema,\n imagetools: imageToolsSchema,\n collection: collectionSchema,\n label: objOf(createLabelFields(createItemsField('label'))),\n table: tableSchema,\n panel: panelSchema\n });\n });\n var panelFields = [requiredString('type'), defaulted('classes', []), requiredArrayOf('items', itemSchema)];\n var panelSchema = objOf(panelFields);\n var tabFields = [field$1('name', 'name', defaultedThunk(function () {\n return generate$6('tab-name');\n }), string), requiredString('title'), requiredArrayOf('items', itemSchema)];\n var tabPanelFields = [requiredString('type'), requiredArrayOfObj('tabs', tabFields)];\n var tabPanelSchema = objOf(tabPanelFields);\n var dialogButtonFields = dialogFooterButtonFields;\n var dialogButtonSchema = dialogFooterButtonSchema;\n var dialogSchema = objOf([requiredString('title'), requiredOf('body', choose$2('type', {\n panel: panelSchema,\n tabpanel: tabPanelSchema\n })), defaultedString('size', 'normal'), requiredArrayOf('buttons', dialogButtonSchema), defaulted('initialData', {}), defaultedFunction('onAction', noop), defaultedFunction('onChange', noop), defaultedFunction('onSubmit', noop), defaultedFunction('onClose', noop), defaultedFunction('onCancel', noop), defaulted('onTabChange', noop)]);\n\n var createDialog = function createDialog(spec) {\n return asRaw('dialog', dialogSchema, spec);\n };\n\n var urlDialogButtonSchema = objOf(__spreadArray([requiredStringEnum('type', ['cancel', 'custom'])], dialogButtonFields, true));\n var urlDialogSchema = objOf([requiredString('title'), requiredString('url'), optionNumber('height'), optionNumber('width'), optionArrayOf('buttons', urlDialogButtonSchema), defaultedFunction('onAction', noop), defaultedFunction('onCancel', noop), defaultedFunction('onClose', noop), defaultedFunction('onMessage', noop)]);\n\n var createUrlDialog = function createUrlDialog(spec) {\n return asRaw('dialog', urlDialogSchema, spec);\n };\n\n var getAllObjects = function getAllObjects(obj) {\n if (isObject(obj)) {\n return [obj].concat(bind$3(values(obj), getAllObjects));\n } else if (isArray(obj)) {\n return bind$3(obj, getAllObjects);\n } else {\n return [];\n }\n };\n\n var isNamedItem = function isNamedItem(obj) {\n return isString(obj.type) && isString(obj.name);\n };\n\n var dataProcessors = {\n checkbox: checkboxDataProcessor,\n colorinput: colorInputDataProcessor,\n colorpicker: colorPickerDataProcessor,\n dropzone: dropZoneDataProcessor,\n input: inputDataProcessor,\n iframe: iframeDataProcessor,\n sizeinput: sizeInputDataProcessor,\n selectbox: selectBoxDataProcessor,\n listbox: listBoxDataProcessor,\n size: sizeInputDataProcessor,\n textarea: textAreaDataProcessor,\n urlinput: urlInputDataProcessor,\n customeditor: customEditorDataProcessor,\n collection: collectionDataProcessor,\n togglemenuitem: dialogToggleMenuItemDataProcessor\n };\n\n var getDataProcessor = function getDataProcessor(item) {\n return Optional.from(dataProcessors[item.type]);\n };\n\n var getNamedItems = function getNamedItems(structure) {\n return filter$2(getAllObjects(structure), isNamedItem);\n };\n\n var createDataValidator = function createDataValidator(structure) {\n var namedItems = getNamedItems(structure);\n var fields = bind$3(namedItems, function (item) {\n return getDataProcessor(item).fold(function () {\n return [];\n }, function (schema) {\n return [requiredOf(item.name, schema)];\n });\n });\n return objOf(fields);\n };\n\n var extract = function extract(structure) {\n var internalDialog = getOrDie(createDialog(structure));\n var dataValidator = createDataValidator(structure);\n var initialData = structure.initialData;\n return {\n internalDialog: internalDialog,\n dataValidator: dataValidator,\n initialData: initialData\n };\n };\n\n var DialogManager = {\n open: function open(factory, structure) {\n var extraction = extract(structure);\n return factory(extraction.internalDialog, extraction.initialData, extraction.dataValidator);\n },\n openUrl: function openUrl(factory, structure) {\n var internalDialog = getOrDie(createUrlDialog(structure));\n return factory(internalDialog);\n },\n redial: function redial(structure) {\n return extract(structure);\n }\n };\n\n var toValidValues = function toValidValues(values) {\n var errors = [];\n var result = {};\n each(values, function (value, name) {\n value.fold(function () {\n errors.push(name);\n }, function (v) {\n result[name] = v;\n });\n });\n return errors.length > 0 ? Result.error(errors) : Result.value(result);\n };\n\n var renderBodyPanel = function renderBodyPanel(spec, backstage) {\n var memForm = record(Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form'].concat(spec.classes)\n },\n components: map$2(spec.items, function (item) {\n return interpretInForm(parts, item, backstage);\n })\n };\n }));\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [memForm.asSpec()]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }), ComposingConfigs.memento(memForm), RepresentingConfigs.memento(memForm, {\n postprocess: function postprocess(formValue) {\n return toValidValues(formValue).fold(function (err) {\n console.error(err);\n return {};\n }, identity$1);\n }\n })])\n };\n };\n\n var factory$3 = function factory$3(detail, _spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: detail.components,\n events: events$a(detail.action),\n behaviours: augment(detail.tabButtonBehaviours, [Focusing.config({}), Keying.config({\n mode: 'execution',\n useSpace: true,\n useEnter: true\n }), Representing.config({\n store: {\n mode: 'memory',\n initialValue: detail.value\n }\n })]),\n domModification: detail.domModification\n };\n };\n\n var TabButton = single({\n name: 'TabButton',\n configFields: [defaulted('uid', undefined), required$1('value'), field$1('dom', 'dom', mergeWithThunk(function () {\n return {\n attributes: {\n 'role': 'tab',\n 'id': generate$6('aria'),\n 'aria-selected': 'false'\n }\n };\n }), anyValue()), option('action'), defaulted('domModification', {}), field('tabButtonBehaviours', [Focusing, Keying, Representing]), required$1('view')],\n factory: factory$3\n });\n var schema$1 = constant$1([required$1('tabs'), required$1('dom'), defaulted('clickToDismiss', false), field('tabbarBehaviours', [Highlighting, Keying]), markers$1(['tabClass', 'selectedClass'])]);\n var tabsPart = group({\n factory: TabButton,\n name: 'tabs',\n unit: 'tab',\n overrides: function overrides(barDetail) {\n var dismissTab$1 = function dismissTab$1(tabbar, button) {\n Highlighting.dehighlight(tabbar, button);\n emitWith(tabbar, dismissTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n\n var changeTab$1 = function changeTab$1(tabbar, button) {\n Highlighting.highlight(tabbar, button);\n emitWith(tabbar, changeTab(), {\n tabbar: tabbar,\n button: button\n });\n };\n\n return {\n action: function action(button) {\n var tabbar = button.getSystem().getByUid(barDetail.uid).getOrDie();\n var activeButton = Highlighting.isHighlighted(tabbar, button);\n\n var response = function () {\n if (activeButton && barDetail.clickToDismiss) {\n return dismissTab$1;\n } else if (!activeButton) {\n return changeTab$1;\n } else {\n return noop;\n }\n }();\n\n response(tabbar, button);\n },\n domModification: {\n classes: [barDetail.markers.tabClass]\n }\n };\n }\n });\n var parts$1 = constant$1([tabsPart]);\n\n var factory$2 = function factory$2(detail, components, _spec, _externals) {\n return {\n 'uid': detail.uid,\n 'dom': detail.dom,\n components: components,\n 'debug.sketcher': 'Tabbar',\n 'domModification': {\n attributes: {\n role: 'tablist'\n }\n },\n 'behaviours': augment(detail.tabbarBehaviours, [Highlighting.config({\n highlightClass: detail.markers.selectedClass,\n itemClass: detail.markers.tabClass,\n onHighlight: function onHighlight(tabbar, tab) {\n set$8(tab.element, 'aria-selected', 'true');\n },\n onDehighlight: function onDehighlight(tabbar, tab) {\n set$8(tab.element, 'aria-selected', 'false');\n }\n }), Keying.config({\n mode: 'flow',\n getInitial: function getInitial(tabbar) {\n return Highlighting.getHighlighted(tabbar).map(function (tab) {\n return tab.element;\n });\n },\n selector: '.' + detail.markers.tabClass,\n executeOnMove: true\n })])\n };\n };\n\n var Tabbar = composite({\n name: 'Tabbar',\n configFields: schema$1(),\n partFields: parts$1(),\n factory: factory$2\n });\n\n var factory$1 = function factory$1(detail, _spec) {\n return {\n uid: detail.uid,\n dom: detail.dom,\n behaviours: augment(detail.tabviewBehaviours, [Replacing.config({})]),\n domModification: {\n attributes: {\n role: 'tabpanel'\n }\n }\n };\n };\n\n var Tabview = single({\n name: 'Tabview',\n configFields: [field('tabviewBehaviours', [Replacing])],\n factory: factory$1\n });\n var schema = constant$1([defaulted('selectFirst', true), onHandler('onChangeTab'), onHandler('onDismissTab'), defaulted('tabs', []), field('tabSectionBehaviours', [])]);\n var barPart = required({\n factory: Tabbar,\n schema: [required$1('dom'), requiredObjOf('markers', [required$1('tabClass'), required$1('selectedClass')])],\n name: 'tabbar',\n defaults: function defaults(detail) {\n return {\n tabs: detail.tabs\n };\n }\n });\n var viewPart = required({\n factory: Tabview,\n name: 'tabview'\n });\n var parts = constant$1([barPart, viewPart]);\n\n var factory = function factory(detail, components, _spec, _externals) {\n var changeTab$1 = function changeTab$1(button) {\n var tabValue = Representing.getValue(button);\n getPart(button, detail, 'tabview').each(function (tabview) {\n var tabWithValue = find$5(detail.tabs, function (t) {\n return t.value === tabValue;\n });\n tabWithValue.each(function (tabData) {\n var panel = tabData.view();\n getOpt(button.element, 'id').each(function (id) {\n set$8(tabview.element, 'aria-labelledby', id);\n });\n Replacing.set(tabview, panel);\n detail.onChangeTab(tabview, button, panel);\n });\n });\n };\n\n var changeTabBy = function changeTabBy(section, byPred) {\n getPart(section, detail, 'tabbar').each(function (tabbar) {\n byPred(tabbar).each(emitExecute);\n });\n };\n\n return {\n uid: detail.uid,\n dom: detail.dom,\n components: components,\n behaviours: get$2(detail.tabSectionBehaviours),\n events: derive$2(flatten([detail.selectFirst ? [runOnAttached(function (section, _simulatedEvent) {\n changeTabBy(section, Highlighting.getFirst);\n })] : [], [run$1(changeTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event.button;\n changeTab$1(button);\n }), run$1(dismissTab(), function (section, simulatedEvent) {\n var button = simulatedEvent.event.button;\n detail.onDismissTab(section, button);\n })]])),\n apis: {\n getViewItems: function getViewItems(section) {\n return getPart(section, detail, 'tabview').map(function (tabview) {\n return Replacing.contents(tabview);\n }).getOr([]);\n },\n showTab: function showTab(section, tabKey) {\n var getTabIfNotActive = function getTabIfNotActive(tabbar) {\n var candidates = Highlighting.getCandidates(tabbar);\n var optTab = find$5(candidates, function (c) {\n return Representing.getValue(c) === tabKey;\n });\n return optTab.filter(function (tab) {\n return !Highlighting.isHighlighted(tabbar, tab);\n });\n };\n\n changeTabBy(section, getTabIfNotActive);\n }\n }\n };\n };\n\n var TabSection = composite({\n name: 'TabSection',\n configFields: schema(),\n partFields: parts(),\n factory: factory,\n apis: {\n getViewItems: function getViewItems(apis, component) {\n return apis.getViewItems(component);\n },\n showTab: function showTab(apis, component, tabKey) {\n apis.showTab(component, tabKey);\n }\n }\n });\n\n var measureHeights = function measureHeights(allTabs, tabview, tabviewComp) {\n return map$2(allTabs, function (_tab, i) {\n Replacing.set(tabviewComp, allTabs[i].view());\n var rect = tabview.dom.getBoundingClientRect();\n Replacing.set(tabviewComp, []);\n return rect.height;\n });\n };\n\n var getMaxHeight = function getMaxHeight(heights) {\n return head(sort(heights, function (a, b) {\n if (a > b) {\n return -1;\n } else if (a < b) {\n return +1;\n } else {\n return 0;\n }\n }));\n };\n\n var getMaxTabviewHeight = function getMaxTabviewHeight(dialog, tabview, tablist) {\n var documentElement$1 = documentElement(dialog).dom;\n var rootElm = ancestor(dialog, '.tox-dialog-wrap').getOr(dialog);\n var isFixed = get$c(rootElm, 'position') === 'fixed';\n var maxHeight;\n\n if (isFixed) {\n maxHeight = Math.max(documentElement$1.clientHeight, window.innerHeight);\n } else {\n maxHeight = Math.max(documentElement$1.offsetHeight, documentElement$1.scrollHeight);\n }\n\n var tabviewHeight = get$b(tabview);\n var isTabListBeside = tabview.dom.offsetLeft >= tablist.dom.offsetLeft + get$a(tablist);\n var currentTabHeight = isTabListBeside ? Math.max(get$b(tablist), tabviewHeight) : tabviewHeight;\n var dialogTopMargin = parseInt(get$c(dialog, 'margin-top'), 10) || 0;\n var dialogBottomMargin = parseInt(get$c(dialog, 'margin-bottom'), 10) || 0;\n var dialogHeight = get$b(dialog) + dialogTopMargin + dialogBottomMargin;\n var chromeHeight = dialogHeight - currentTabHeight;\n return maxHeight - chromeHeight;\n };\n\n var showTab = function showTab(allTabs, comp) {\n head(allTabs).each(function (tab) {\n return TabSection.showTab(comp, tab.value);\n });\n };\n\n var setTabviewHeight = function setTabviewHeight(tabview, height) {\n set$7(tabview, 'height', height + 'px');\n\n if (!detect$1().browser.isIE()) {\n set$7(tabview, 'flex-basis', height + 'px');\n } else {\n remove$6(tabview, 'flex-basis');\n }\n };\n\n var updateTabviewHeight = function updateTabviewHeight(dialogBody, tabview, maxTabHeight) {\n ancestor(dialogBody, '[role=\"dialog\"]').each(function (dialog) {\n descendant(dialog, '[role=\"tablist\"]').each(function (tablist) {\n maxTabHeight.get().map(function (height) {\n set$7(tabview, 'height', '0');\n set$7(tabview, 'flex-basis', '0');\n return Math.min(height, getMaxTabviewHeight(dialog, tabview, tablist));\n }).each(function (height) {\n setTabviewHeight(tabview, height);\n });\n });\n });\n };\n\n var getTabview = function getTabview(dialog) {\n return descendant(dialog, '[role=\"tabpanel\"]');\n };\n\n var setMode = function setMode(allTabs) {\n var smartTabHeight = function () {\n var maxTabHeight = value$1();\n var extraEvents = [runOnAttached(function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n set$7(tabview, 'visibility', 'hidden');\n comp.getSystem().getByDom(tabview).toOptional().each(function (tabviewComp) {\n var heights = measureHeights(allTabs, tabview, tabviewComp);\n var maxTabHeightOpt = getMaxHeight(heights);\n maxTabHeightOpt.fold(maxTabHeight.clear, maxTabHeight.set);\n });\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n remove$6(tabview, 'visibility');\n showTab(allTabs, comp);\n global$f.requestAnimationFrame(function () {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n });\n }), run$1(windowResize(), function (comp) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n });\n }), run$1(formResizeEvent, function (comp, _se) {\n var dialog = comp.element;\n getTabview(dialog).each(function (tabview) {\n var oldFocus = active(getRootNode(tabview));\n set$7(tabview, 'visibility', 'hidden');\n var oldHeight = getRaw(tabview, 'height').map(function (h) {\n return parseInt(h, 10);\n });\n remove$6(tabview, 'height');\n remove$6(tabview, 'flex-basis');\n var newHeight = tabview.dom.getBoundingClientRect().height;\n var hasGrown = oldHeight.forall(function (h) {\n return newHeight > h;\n });\n\n if (hasGrown) {\n maxTabHeight.set(newHeight);\n updateTabviewHeight(dialog, tabview, maxTabHeight);\n } else {\n oldHeight.each(function (h) {\n setTabviewHeight(tabview, h);\n });\n }\n\n remove$6(tabview, 'visibility');\n oldFocus.each(focus$3);\n });\n })];\n var selectFirst = false;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n\n var naiveTabHeight = function () {\n var extraEvents = [];\n var selectFirst = true;\n return {\n extraEvents: extraEvents,\n selectFirst: selectFirst\n };\n }();\n\n return {\n smartTabHeight: smartTabHeight,\n naiveTabHeight: naiveTabHeight\n };\n };\n\n var SendDataToSectionChannel = 'send-data-to-section';\n var SendDataToViewChannel = 'send-data-to-view';\n\n var renderTabPanel = function renderTabPanel(spec, backstage) {\n var storedValue = Cell({});\n\n var updateDataWithForm = function updateDataWithForm(form) {\n var formData = Representing.getValue(form);\n var validData = toValidValues(formData).getOr({});\n var currentData = storedValue.get();\n var newData = deepMerge(currentData, validData);\n storedValue.set(newData);\n };\n\n var setDataOnForm = function setDataOnForm(form) {\n var tabData = storedValue.get();\n Representing.setValue(form, tabData);\n };\n\n var oldTab = Cell(null);\n var allTabs = map$2(spec.tabs, function (tab) {\n return {\n value: tab.name,\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav-item'],\n innerHtml: backstage.shared.providers.translate(tab.title)\n },\n view: function view() {\n return [Form.sketch(function (parts) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-form']\n },\n components: map$2(tab.items, function (item) {\n return interpretInForm(parts, item, backstage);\n }),\n formBehaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n }), config('TabView.form.events', [runOnAttached(setDataOnForm), runOnDetached(updateDataWithForm)]), Receiving.config({\n channels: wrapAll([{\n key: SendDataToSectionChannel,\n value: {\n onReceive: updateDataWithForm\n }\n }, {\n key: SendDataToViewChannel,\n value: {\n onReceive: setDataOnForm\n }\n }])\n })])\n };\n })];\n }\n };\n });\n var tabMode = setMode(allTabs).smartTabHeight;\n return TabSection.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n onChangeTab: function onChangeTab(section, button, _viewItems) {\n var name = Representing.getValue(button);\n emitWith(section, formTabChangeEvent, {\n name: name,\n oldName: oldTab.get()\n });\n oldTab.set(name);\n },\n tabs: allTabs,\n components: [TabSection.parts.tabbar({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-nav']\n },\n components: [Tabbar.parts.tabs({})],\n markers: {\n tabClass: 'tox-tab',\n selectedClass: 'tox-dialog__body-nav-item--active'\n },\n tabbarBehaviours: derive$1([Tabstopping.config({})])\n }), TabSection.parts.tabview({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n }\n })],\n selectFirst: tabMode.selectFirst,\n tabSectionBehaviours: derive$1([config('tabpanel', tabMode.extraEvents), Keying.config({\n mode: 'acyclic'\n }), Composing.config({\n find: function find(comp) {\n return head(TabSection.getViewItems(comp));\n }\n }), Representing.config({\n store: {\n mode: 'manual',\n getValue: function getValue(tsection) {\n tsection.getSystem().broadcastOn([SendDataToSectionChannel], {});\n return storedValue.get();\n },\n setValue: function setValue(tsection, value) {\n storedValue.set(value);\n tsection.getSystem().broadcastOn([SendDataToViewChannel], {});\n }\n }\n })])\n });\n };\n\n var dialogChannel = generate$6('update-dialog');\n var titleChannel = generate$6('update-title');\n var bodyChannel = generate$6('update-body');\n var footerChannel = generate$6('update-footer');\n var bodySendMessageChannel = generate$6('body-send-message');\n\n var renderBody = function renderBody(spec, id, backstage, ariaAttrs) {\n var renderComponents = function renderComponents(incoming) {\n switch (incoming.body.type) {\n case 'tabpanel':\n {\n return [renderTabPanel(incoming.body, backstage)];\n }\n\n default:\n {\n return [renderBodyPanel(incoming.body, backstage)];\n }\n }\n };\n\n var updateState = function updateState(_comp, incoming) {\n return Optional.some({\n isTabPanel: function isTabPanel() {\n return incoming.body.type === 'tabpanel';\n }\n });\n };\n\n var ariaAttributes = {\n 'aria-live': 'polite'\n };\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js'],\n attributes: _assign(_assign({}, id.map(function (x) {\n return {\n id: x\n };\n }).getOr({})), ariaAttrs ? ariaAttributes : {})\n },\n components: [],\n behaviours: derive$1([ComposingConfigs.childAt(0), Reflecting.config({\n channel: bodyChannel,\n updateState: updateState,\n renderComponents: renderComponents,\n initialData: spec\n })])\n };\n };\n\n var renderInlineBody = function renderInlineBody(spec, contentId, backstage, ariaAttrs) {\n return renderBody(spec, Optional.some(contentId), backstage, ariaAttrs);\n };\n\n var renderModalBody = function renderModalBody(spec, backstage) {\n var bodySpec = renderBody(spec, Optional.none(), backstage, false);\n return ModalDialog.parts.body(bodySpec);\n };\n\n var renderIframeBody = function renderIframeBody(spec) {\n var bodySpec = {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__content-js']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-iframe']\n },\n components: [craft({\n dom: {\n tag: 'iframe',\n attributes: {\n src: spec.url\n }\n },\n behaviours: derive$1([Tabstopping.config({}), Focusing.config({})])\n })]\n }],\n behaviours: derive$1([Keying.config({\n mode: 'acyclic',\n useTabstopAt: not(isPseudoStop)\n })])\n };\n return ModalDialog.parts.body(bodySpec);\n };\n\n var isTouch = global$9.deviceType.isTouch();\n\n var hiddenHeader = function hiddenHeader(title, close) {\n return {\n dom: {\n tag: 'div',\n styles: {\n display: 'none'\n },\n classes: ['tox-dialog__header']\n },\n components: [title, close]\n };\n };\n\n var pClose = function pClose(onClose, providersBackstage) {\n return ModalDialog.parts.close(Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-button', 'tox-button--icon', 'tox-button--naked'],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close')\n }\n },\n action: onClose,\n buttonBehaviours: derive$1([Tabstopping.config({})])\n }));\n };\n\n var pUntitled = function pUntitled() {\n return ModalDialog.parts.title({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n innerHtml: '',\n styles: {\n display: 'none'\n }\n }\n });\n };\n\n var pBodyMessage = function pBodyMessage(message, providersBackstage) {\n return ModalDialog.parts.body({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body']\n },\n components: [{\n dom: {\n tag: 'div',\n classes: ['tox-dialog__body-content']\n },\n components: [{\n dom: fromHtml('

' + providersBackstage.translate(message) + '

')\n }]\n }]\n });\n };\n\n var pFooter = function pFooter(buttons) {\n return ModalDialog.parts.footer({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer']\n },\n components: buttons\n });\n };\n\n var pFooterGroup = function pFooterGroup(startButtons, endButtons) {\n return [Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-start']\n },\n components: startButtons\n }), Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-end']\n },\n components: endButtons\n })];\n };\n\n var renderDialog$1 = function renderDialog$1(spec) {\n var _a;\n\n var dialogClass = 'tox-dialog';\n var blockerClass = dialogClass + '-wrap';\n var blockerBackdropClass = blockerClass + '__backdrop';\n var scrollLockClass = dialogClass + '__disable-scroll';\n return ModalDialog.sketch({\n lazySink: spec.lazySink,\n onEscape: function onEscape(comp) {\n spec.onEscape(comp);\n return Optional.some(true);\n },\n useTabstopAt: function useTabstopAt(elem) {\n return !isPseudoStop(elem);\n },\n dom: {\n tag: 'div',\n classes: [dialogClass].concat(spec.extraClasses),\n styles: _assign({\n position: 'relative'\n }, spec.extraStyles)\n },\n components: __spreadArray([spec.header, spec.body], spec.footer.toArray(), true),\n parts: {\n blocker: {\n dom: fromHtml('
'),\n components: [{\n dom: {\n tag: 'div',\n classes: isTouch ? [blockerBackdropClass, blockerBackdropClass + '--opaque'] : [blockerBackdropClass]\n }\n }]\n }\n },\n dragBlockClass: blockerClass,\n modalBehaviours: derive$1(__spreadArray([Focusing.config({}), config('dialog-events', spec.dialogEvents.concat([runOnSource(focusin(), function (comp, _se) {\n Keying.focusIn(comp);\n })])), config('scroll-lock', [runOnAttached(function () {\n add$2(body(), scrollLockClass);\n }), runOnDetached(function () {\n remove$2(body(), scrollLockClass);\n })])], spec.extraBehaviours, true)),\n eventOrder: _assign((_a = {}, _a[execute$5()] = ['dialog-events'], _a[attachedToDom()] = ['scroll-lock', 'dialog-events', 'alloy.base.behaviour'], _a[detachedFromDom()] = ['alloy.base.behaviour', 'dialog-events', 'scroll-lock'], _a), spec.eventOrder)\n });\n };\n\n var renderClose = function renderClose(providersBackstage) {\n return Button.sketch({\n dom: {\n tag: 'button',\n classes: ['tox-button', 'tox-button--icon', 'tox-button--naked'],\n attributes: {\n 'type': 'button',\n 'aria-label': providersBackstage.translate('Close'),\n 'title': providersBackstage.translate('Close')\n }\n },\n components: [render$3('close', {\n tag: 'div',\n classes: ['tox-icon']\n }, providersBackstage.icons)],\n action: function action(comp) {\n emit(comp, formCancelEvent);\n }\n });\n };\n\n var renderTitle = function renderTitle(spec, id, providersBackstage) {\n var renderComponents = function renderComponents(data) {\n return [text(providersBackstage.translate(data.title))];\n };\n\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__title'],\n attributes: _assign({}, id.map(function (x) {\n return {\n id: x\n };\n }).getOr({}))\n },\n components: renderComponents(spec),\n behaviours: derive$1([Reflecting.config({\n channel: titleChannel,\n renderComponents: renderComponents\n })])\n };\n };\n\n var renderDragHandle = function renderDragHandle() {\n return {\n dom: fromHtml('
')\n };\n };\n\n var renderInlineHeader = function renderInlineHeader(spec, titleId, providersBackstage) {\n return Container.sketch({\n dom: fromHtml('
'),\n components: [renderTitle(spec, Optional.some(titleId), providersBackstage), renderDragHandle(), renderClose(providersBackstage)],\n containerBehaviours: derive$1([Dragging.config({\n mode: 'mouse',\n blockerClass: 'blocker',\n getTarget: function getTarget(handle) {\n return closest$1(handle, '[role=\"dialog\"]').getOrDie();\n },\n snaps: {\n getSnapPoints: function getSnapPoints() {\n return [];\n },\n leftAttr: 'data-drag-left',\n topAttr: 'data-drag-top'\n }\n })])\n });\n };\n\n var renderModalHeader = function renderModalHeader(spec, providersBackstage) {\n var pTitle = ModalDialog.parts.title(renderTitle(spec, Optional.none(), providersBackstage));\n var pHandle = ModalDialog.parts.draghandle(renderDragHandle());\n var pClose = ModalDialog.parts.close(renderClose(providersBackstage));\n var components = [pTitle].concat(spec.draggable ? [pHandle] : []).concat([pClose]);\n return Container.sketch({\n dom: fromHtml('
'),\n components: components\n });\n };\n\n var getHeader = function getHeader(title, backstage) {\n return renderModalHeader({\n title: backstage.shared.providers.translate(title),\n draggable: backstage.dialog.isDraggableModal()\n }, backstage.shared.providers);\n };\n\n var getBusySpec = function getBusySpec(message, bs, providers) {\n return {\n dom: {\n tag: 'div',\n classes: ['tox-dialog__busy-spinner'],\n attributes: {\n 'aria-label': providers.translate(message)\n },\n styles: {\n left: '0px',\n right: '0px',\n bottom: '0px',\n top: '0px',\n position: 'absolute'\n }\n },\n behaviours: bs,\n components: [{\n dom: fromHtml('
')\n }]\n };\n };\n\n var getEventExtras = function getEventExtras(lazyDialog, providers, extra) {\n return {\n onClose: function onClose() {\n return extra.closeWindow();\n },\n onBlock: function onBlock(blockEvent) {\n ModalDialog.setBusy(lazyDialog(), function (_comp, bs) {\n return getBusySpec(blockEvent.message, bs, providers);\n });\n },\n onUnblock: function onUnblock() {\n ModalDialog.setIdle(lazyDialog());\n }\n };\n };\n\n var renderModalDialog = function renderModalDialog(spec, initialData, dialogEvents, backstage) {\n var _a;\n\n var updateState = function updateState(_comp, incoming) {\n return Optional.some(incoming);\n };\n\n return build$1(renderDialog$1(_assign(_assign({}, spec), {\n lazySink: backstage.shared.getSink,\n extraBehaviours: __spreadArray([Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: initialData\n }), RepresentingConfigs.memory({})], spec.extraBehaviours, true),\n onEscape: function onEscape(comp) {\n emit(comp, formCancelEvent);\n },\n dialogEvents: dialogEvents,\n eventOrder: (_a = {}, _a[receive()] = [Reflecting.name(), Receiving.name()], _a[attachedToDom()] = ['scroll-lock', Reflecting.name(), 'messages', 'dialog-events', 'alloy.base.behaviour'], _a[detachedFromDom()] = ['alloy.base.behaviour', 'dialog-events', 'messages', Reflecting.name(), 'scroll-lock'], _a)\n })));\n };\n\n var mapMenuButtons = function mapMenuButtons(buttons) {\n var mapItems = function mapItems(button) {\n var items = map$2(button.items, function (item) {\n var cell = Cell(false);\n return _assign(_assign({}, item), {\n storage: cell\n });\n });\n return _assign(_assign({}, button), {\n items: items\n });\n };\n\n return map$2(buttons, function (button) {\n if (button.type === 'menu') {\n return mapItems(button);\n }\n\n return button;\n });\n };\n\n var extractCellsToObject = function extractCellsToObject(buttons) {\n return foldl(buttons, function (acc, button) {\n if (button.type === 'menu') {\n var menuButton = button;\n return foldl(menuButton.items, function (innerAcc, item) {\n innerAcc[item.name] = item.storage;\n return innerAcc;\n }, acc);\n }\n\n return acc;\n }, {});\n };\n\n var initCommonEvents = function initCommonEvents(fireApiEvent, extras) {\n return [runWithTarget(focusin(), onFocus), fireApiEvent(formCloseEvent, function (_api, spec) {\n extras.onClose();\n spec.onClose();\n }), fireApiEvent(formCancelEvent, function (api, spec, _event, self) {\n spec.onCancel(api);\n emit(self, formCloseEvent);\n }), run$1(formUnblockEvent, function (_c, _se) {\n return extras.onUnblock();\n }), run$1(formBlockEvent, function (_c, se) {\n return extras.onBlock(se.event);\n })];\n };\n\n var initUrlDialog = function initUrlDialog(getInstanceApi, extras) {\n var fireApiEvent = function fireApiEvent(eventName, f) {\n return run$1(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n };\n\n var withSpec = function withSpec(c, f) {\n Reflecting.getState(c).get().each(function (currentDialog) {\n f(currentDialog, c);\n });\n };\n\n return __spreadArray(__spreadArray([], initCommonEvents(fireApiEvent, extras), true), [fireApiEvent(formActionEvent, function (api, spec, event) {\n spec.onAction(api, {\n name: event.name\n });\n })], false);\n };\n\n var initDialog = function initDialog(getInstanceApi, extras, getSink) {\n var fireApiEvent = function fireApiEvent(eventName, f) {\n return run$1(eventName, function (c, se) {\n withSpec(c, function (spec, _c) {\n f(getInstanceApi(), spec, se.event, c);\n });\n });\n };\n\n var withSpec = function withSpec(c, f) {\n Reflecting.getState(c).get().each(function (currentDialogInit) {\n f(currentDialogInit.internalDialog, c);\n });\n };\n\n return __spreadArray(__spreadArray([], initCommonEvents(fireApiEvent, extras), true), [fireApiEvent(formSubmitEvent, function (api, spec) {\n return spec.onSubmit(api);\n }), fireApiEvent(formChangeEvent, function (api, spec, event) {\n spec.onChange(api, {\n name: event.name\n });\n }), fireApiEvent(formActionEvent, function (api, spec, event, component) {\n var focusIn = function focusIn() {\n return Keying.focusIn(component);\n };\n\n var isDisabled = function isDisabled(focused) {\n return has$1(focused, 'disabled') || getOpt(focused, 'aria-disabled').exists(function (val) {\n return val === 'true';\n });\n };\n\n var rootNode = getRootNode(component.element);\n var current = active(rootNode);\n spec.onAction(api, {\n name: event.name,\n value: event.value\n });\n active(rootNode).fold(focusIn, function (focused) {\n if (isDisabled(focused)) {\n focusIn();\n } else if (current.exists(function (cur) {\n return contains(focused, cur) && isDisabled(cur);\n })) {\n focusIn();\n } else {\n getSink().toOptional().filter(function (sink) {\n return !contains(sink.element, focused);\n }).each(focusIn);\n }\n });\n }), fireApiEvent(formTabChangeEvent, function (api, spec, event) {\n spec.onTabChange(api, {\n newTabName: event.name,\n oldTabName: event.oldName\n });\n }), runOnDetached(function (component) {\n var api = getInstanceApi();\n Representing.setValue(component, api.getData());\n })], false);\n };\n\n var SilverDialogEvents = {\n initUrlDialog: initUrlDialog,\n initDialog: initDialog\n };\n\n var makeButton = function makeButton(button, backstage) {\n return renderFooterButton(button, button.type, backstage);\n };\n\n var lookup = function lookup(compInSystem, footerButtons, buttonName) {\n return find$5(footerButtons, function (button) {\n return button.name === buttonName;\n }).bind(function (memButton) {\n return memButton.memento.getOpt(compInSystem);\n });\n };\n\n var renderComponents = function renderComponents(_data, state) {\n var footerButtons = state.map(function (s) {\n return s.footerButtons;\n }).getOr([]);\n var buttonGroups = partition$3(footerButtons, function (button) {\n return button.align === 'start';\n });\n\n var makeGroup = function makeGroup(edge, buttons) {\n return Container.sketch({\n dom: {\n tag: 'div',\n classes: ['tox-dialog__footer-' + edge]\n },\n components: map$2(buttons, function (button) {\n return button.memento.asSpec();\n })\n });\n };\n\n var startButtons = makeGroup('start', buttonGroups.pass);\n var endButtons = makeGroup('end', buttonGroups.fail);\n return [startButtons, endButtons];\n };\n\n var renderFooter = function renderFooter(initSpec, backstage) {\n var updateState = function updateState(_comp, data) {\n var footerButtons = map$2(data.buttons, function (button) {\n var memButton = record(makeButton(button, backstage));\n return {\n name: button.name,\n align: button.align,\n memento: memButton\n };\n });\n\n var lookupByName = function lookupByName(compInSystem, buttonName) {\n return lookup(compInSystem, footerButtons, buttonName);\n };\n\n return Optional.some({\n lookupByName: lookupByName,\n footerButtons: footerButtons\n });\n };\n\n return {\n dom: fromHtml('
'),\n components: [],\n behaviours: derive$1([Reflecting.config({\n channel: footerChannel,\n initialData: initSpec,\n updateState: updateState,\n renderComponents: renderComponents\n })])\n };\n };\n\n var renderInlineFooter = function renderInlineFooter(initSpec, backstage) {\n return renderFooter(initSpec, backstage);\n };\n\n var renderModalFooter = function renderModalFooter(initSpec, backstage) {\n return ModalDialog.parts.footer(renderFooter(initSpec, backstage));\n };\n\n var getCompByName = function getCompByName(access, name) {\n var root = access.getRoot();\n\n if (root.getSystem().isConnected()) {\n var form_1 = Composing.getCurrent(access.getFormWrapper()).getOr(access.getFormWrapper());\n return Form.getField(form_1, name).fold(function () {\n var footer = access.getFooter();\n var footerState = Reflecting.getState(footer);\n return footerState.get().bind(function (f) {\n return f.lookupByName(form_1, name);\n });\n }, function (comp) {\n return Optional.some(comp);\n });\n } else {\n return Optional.none();\n }\n };\n\n var validateData$1 = function validateData$1(access, data) {\n var root = access.getRoot();\n return Reflecting.getState(root).get().map(function (dialogState) {\n return getOrDie(asRaw('data', dialogState.dataValidator, data));\n }).getOr(data);\n };\n\n var getDialogApi = function getDialogApi(access, doRedial, menuItemStates) {\n var withRoot = function withRoot(f) {\n var root = access.getRoot();\n\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n\n var getData = function getData() {\n var root = access.getRoot();\n var valueComp = root.getSystem().isConnected() ? access.getFormWrapper() : root;\n var representedValues = Representing.getValue(valueComp);\n var menuItemCurrentState = map$1(menuItemStates, function (cell) {\n return cell.get();\n });\n return _assign(_assign({}, representedValues), menuItemCurrentState);\n };\n\n var setData = function setData(newData) {\n withRoot(function (_) {\n var prevData = instanceApi.getData();\n\n var mergedData = _assign(_assign({}, prevData), newData);\n\n var newInternalData = validateData$1(access, mergedData);\n var form = access.getFormWrapper();\n Representing.setValue(form, newInternalData);\n each(menuItemStates, function (v, k) {\n if (has$2(mergedData, k)) {\n v.set(mergedData[k]);\n }\n });\n });\n };\n\n var disable = function disable(name) {\n getCompByName(access, name).each(Disabling.disable);\n };\n\n var enable = function enable(name) {\n getCompByName(access, name).each(Disabling.enable);\n };\n\n var focus = function focus(name) {\n getCompByName(access, name).each(Focusing.focus);\n };\n\n var block = function block(message) {\n if (!isString(message)) {\n throw new Error('The dialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n\n withRoot(function (root) {\n emitWith(root, formBlockEvent, {\n message: message\n });\n });\n };\n\n var unblock = function unblock() {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n\n var showTab = function showTab(name) {\n withRoot(function (_) {\n var body = access.getBody();\n var bodyState = Reflecting.getState(body);\n\n if (bodyState.get().exists(function (b) {\n return b.isTabPanel();\n })) {\n Composing.getCurrent(body).each(function (tabSection) {\n TabSection.showTab(tabSection, name);\n });\n }\n });\n };\n\n var redial = function redial(d) {\n withRoot(function (root) {\n var dialogInit = doRedial(d);\n root.getSystem().broadcastOn([dialogChannel], dialogInit);\n root.getSystem().broadcastOn([titleChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([bodyChannel], dialogInit.internalDialog);\n root.getSystem().broadcastOn([footerChannel], dialogInit.internalDialog);\n instanceApi.setData(dialogInit.initialData);\n });\n };\n\n var close = function close() {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n\n var instanceApi = {\n getData: getData,\n setData: setData,\n disable: disable,\n enable: enable,\n focus: focus,\n block: block,\n unblock: unblock,\n showTab: showTab,\n redial: redial,\n close: close\n };\n return instanceApi;\n };\n\n var getDialogSizeClasses = function getDialogSizeClasses(size) {\n switch (size) {\n case 'large':\n return ['tox-dialog--width-lg'];\n\n case 'medium':\n return ['tox-dialog--width-md'];\n\n default:\n return [];\n }\n };\n\n var renderDialog = function renderDialog(dialogInit, extra, backstage) {\n var header = getHeader(dialogInit.internalDialog.title, backstage);\n var body = renderModalBody({\n body: dialogInit.internalDialog.body\n }, backstage);\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var footer = renderModalFooter({\n buttons: storagedMenuButtons\n }, backstage);\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, backstage.shared.providers, extra), backstage.shared.getSink);\n var dialogSize = getDialogSizeClasses(dialogInit.internalDialog.size);\n var spec = {\n header: header,\n body: body,\n footer: Optional.some(footer),\n extraClasses: dialogSize,\n extraBehaviours: [],\n extraStyles: {}\n };\n var dialog = renderModalDialog(spec, dialogInit, dialogEvents, backstage);\n\n var modalAccess = function () {\n var getForm = function getForm() {\n var outerForm = ModalDialog.getBody(dialog);\n return Composing.getCurrent(outerForm).getOr(outerForm);\n };\n\n return {\n getRoot: constant$1(dialog),\n getBody: function getBody() {\n return ModalDialog.getBody(dialog);\n },\n getFooter: function getFooter() {\n return ModalDialog.getFooter(dialog);\n },\n getFormWrapper: getForm\n };\n }();\n\n var instanceApi = getDialogApi(modalAccess, extra.redial, objOfCells);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var renderInlineDialog = function renderInlineDialog(dialogInit, extra, backstage, ariaAttrs) {\n var _a, _b;\n\n var dialogLabelId = generate$6('dialog-label');\n var dialogContentId = generate$6('dialog-content');\n\n var updateState = function updateState(_comp, incoming) {\n return Optional.some(incoming);\n };\n\n var memHeader = record(renderInlineHeader({\n title: dialogInit.internalDialog.title,\n draggable: true\n }, dialogLabelId, backstage.shared.providers));\n var memBody = record(renderInlineBody({\n body: dialogInit.internalDialog.body\n }, dialogContentId, backstage, ariaAttrs));\n var storagedMenuButtons = mapMenuButtons(dialogInit.internalDialog.buttons);\n var objOfCells = extractCellsToObject(storagedMenuButtons);\n var memFooter = record(renderInlineFooter({\n buttons: storagedMenuButtons\n }, backstage));\n var dialogEvents = SilverDialogEvents.initDialog(function () {\n return instanceApi;\n }, {\n onBlock: function onBlock(event) {\n Blocking.block(dialog, function (_comp, bs) {\n return getBusySpec(event.message, bs, backstage.shared.providers);\n });\n },\n onUnblock: function onUnblock() {\n Blocking.unblock(dialog);\n },\n onClose: function onClose() {\n return extra.closeWindow();\n }\n }, backstage.shared.getSink);\n var dialog = build$1({\n dom: {\n tag: 'div',\n classes: ['tox-dialog', 'tox-dialog-inline'],\n attributes: (_a = {\n role: 'dialog'\n }, _a['aria-labelledby'] = dialogLabelId, _a['aria-describedby'] = dialogContentId, _a)\n },\n eventOrder: (_b = {}, _b[receive()] = [Reflecting.name(), Receiving.name()], _b[execute$5()] = ['execute-on-form'], _b[attachedToDom()] = ['reflecting', 'execute-on-form'], _b),\n behaviours: derive$1([Keying.config({\n mode: 'cyclic',\n onEscape: function onEscape(c) {\n emit(c, formCloseEvent);\n return Optional.some(true);\n },\n useTabstopAt: function useTabstopAt(elem) {\n return !isPseudoStop(elem) && (name$2(elem) !== 'button' || get$d(elem, 'disabled') !== 'disabled');\n }\n }), Reflecting.config({\n channel: dialogChannel,\n updateState: updateState,\n initialData: dialogInit\n }), Focusing.config({}), config('execute-on-form', dialogEvents.concat([runOnSource(focusin(), function (comp, _se) {\n Keying.focusIn(comp);\n })])), Blocking.config({\n getRoot: function getRoot() {\n return Optional.some(dialog);\n }\n }), Replacing.config({}), RepresentingConfigs.memory({})]),\n components: [memHeader.asSpec(), memBody.asSpec(), memFooter.asSpec()]\n });\n var instanceApi = getDialogApi({\n getRoot: constant$1(dialog),\n getFooter: function getFooter() {\n return memFooter.get(dialog);\n },\n getBody: function getBody() {\n return memBody.get(dialog);\n },\n getFormWrapper: function getFormWrapper() {\n var body = memBody.get(dialog);\n return Composing.getCurrent(body).getOr(body);\n }\n }, extra.redial, objOfCells);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var global$1 = tinymce.util.Tools.resolve('tinymce.util.URI');\n\n var getUrlDialogApi = function getUrlDialogApi(root) {\n var withRoot = function withRoot(f) {\n if (root.getSystem().isConnected()) {\n f(root);\n }\n };\n\n var block = function block(message) {\n if (!isString(message)) {\n throw new Error('The urlDialogInstanceAPI.block function should be passed a blocking message of type string as an argument');\n }\n\n withRoot(function (root) {\n emitWith(root, formBlockEvent, {\n message: message\n });\n });\n };\n\n var unblock = function unblock() {\n withRoot(function (root) {\n emit(root, formUnblockEvent);\n });\n };\n\n var close = function close() {\n withRoot(function (root) {\n emit(root, formCloseEvent);\n });\n };\n\n var sendMessage = function sendMessage(data) {\n withRoot(function (root) {\n root.getSystem().broadcastOn([bodySendMessageChannel], data);\n });\n };\n\n return {\n block: block,\n unblock: unblock,\n close: close,\n sendMessage: sendMessage\n };\n };\n\n var SUPPORTED_MESSAGE_ACTIONS = ['insertContent', 'setContent', 'execCommand', 'close', 'block', 'unblock'];\n\n var isSupportedMessage = function isSupportedMessage(data) {\n return isObject(data) && SUPPORTED_MESSAGE_ACTIONS.indexOf(data.mceAction) !== -1;\n };\n\n var isCustomMessage = function isCustomMessage(data) {\n return !isSupportedMessage(data) && isObject(data) && has$2(data, 'mceAction');\n };\n\n var handleMessage = function handleMessage(editor, api, data) {\n switch (data.mceAction) {\n case 'insertContent':\n editor.insertContent(data.content);\n break;\n\n case 'setContent':\n editor.setContent(data.content);\n break;\n\n case 'execCommand':\n var ui = isBoolean(data.ui) ? data.ui : false;\n editor.execCommand(data.cmd, ui, data.value);\n break;\n\n case 'close':\n api.close();\n break;\n\n case 'block':\n api.block(data.message);\n break;\n\n case 'unblock':\n api.unblock();\n break;\n }\n };\n\n var renderUrlDialog = function renderUrlDialog(internalDialog, extra, editor, backstage) {\n var _a;\n\n var header = getHeader(internalDialog.title, backstage);\n var body = renderIframeBody(internalDialog);\n var footer = internalDialog.buttons.bind(function (buttons) {\n if (buttons.length === 0) {\n return Optional.none();\n } else {\n return Optional.some(renderModalFooter({\n buttons: buttons\n }, backstage));\n }\n });\n var dialogEvents = SilverDialogEvents.initUrlDialog(function () {\n return instanceApi;\n }, getEventExtras(function () {\n return dialog;\n }, backstage.shared.providers, extra));\n\n var styles = _assign(_assign({}, internalDialog.height.fold(function () {\n return {};\n }, function (height) {\n return {\n 'height': height + 'px',\n 'max-height': height + 'px'\n };\n })), internalDialog.width.fold(function () {\n return {};\n }, function (width) {\n return {\n 'width': width + 'px',\n 'max-width': width + 'px'\n };\n }));\n\n var classes = internalDialog.width.isNone() && internalDialog.height.isNone() ? ['tox-dialog--width-lg'] : [];\n var iframeUri = new global$1(internalDialog.url, {\n base_uri: new global$1(window.location.href)\n });\n var iframeDomain = iframeUri.protocol + '://' + iframeUri.host + (iframeUri.port ? ':' + iframeUri.port : '');\n var messageHandlerUnbinder = unbindable();\n var extraBehaviours = [config('messages', [runOnAttached(function () {\n var unbind = bind(SugarElement.fromDom(window), 'message', function (e) {\n if (iframeUri.isSameOrigin(new global$1(e.raw.origin))) {\n var data = e.raw.data;\n\n if (isSupportedMessage(data)) {\n handleMessage(editor, instanceApi, data);\n } else if (isCustomMessage(data)) {\n internalDialog.onMessage(instanceApi, data);\n }\n }\n });\n messageHandlerUnbinder.set(unbind);\n }), runOnDetached(messageHandlerUnbinder.clear)]), Receiving.config({\n channels: (_a = {}, _a[bodySendMessageChannel] = {\n onReceive: function onReceive(comp, data) {\n descendant(comp.element, 'iframe').each(function (iframeEle) {\n var iframeWin = iframeEle.dom.contentWindow;\n iframeWin.postMessage(data, iframeDomain);\n });\n }\n }, _a)\n })];\n var spec = {\n header: header,\n body: body,\n footer: footer,\n extraClasses: classes,\n extraBehaviours: extraBehaviours,\n extraStyles: styles\n };\n var dialog = renderModalDialog(spec, internalDialog, dialogEvents, backstage);\n var instanceApi = getUrlDialogApi(dialog);\n return {\n dialog: dialog,\n instanceApi: instanceApi\n };\n };\n\n var setup$2 = function setup$2(extras) {\n var sharedBackstage = extras.backstage.shared;\n\n var open = function open(message, callback) {\n var closeDialog = function closeDialog() {\n ModalDialog.hide(alertDialog);\n callback();\n };\n\n var memFooterClose = record(renderFooterButton({\n name: 'close-alert',\n text: 'OK',\n primary: true,\n align: 'end',\n disabled: false,\n icon: Optional.none()\n }, 'cancel', extras.backstage));\n var titleSpec = pUntitled();\n var closeSpec = pClose(closeDialog, sharedBackstage.providers);\n var alertDialog = build$1(renderDialog$1({\n lazySink: function lazySink() {\n return sharedBackstage.getSink();\n },\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [memFooterClose.asSpec()]))),\n onEscape: closeDialog,\n extraClasses: ['tox-alert-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [run$1(formCancelEvent, closeDialog)],\n eventOrder: {}\n }));\n ModalDialog.show(alertDialog);\n var footerCloseButton = memFooterClose.get(alertDialog);\n Focusing.focus(footerCloseButton);\n };\n\n return {\n open: open\n };\n };\n\n var setup$1 = function setup$1(extras) {\n var sharedBackstage = extras.backstage.shared;\n\n var open = function open(message, callback) {\n var closeDialog = function closeDialog(state) {\n ModalDialog.hide(confirmDialog);\n callback(state);\n };\n\n var memFooterYes = record(renderFooterButton({\n name: 'yes',\n text: 'Yes',\n primary: true,\n align: 'end',\n disabled: false,\n icon: Optional.none()\n }, 'submit', extras.backstage));\n var footerNo = renderFooterButton({\n name: 'no',\n text: 'No',\n primary: false,\n align: 'end',\n disabled: false,\n icon: Optional.none()\n }, 'cancel', extras.backstage);\n var titleSpec = pUntitled();\n var closeSpec = pClose(function () {\n return closeDialog(false);\n }, sharedBackstage.providers);\n var confirmDialog = build$1(renderDialog$1({\n lazySink: function lazySink() {\n return sharedBackstage.getSink();\n },\n header: hiddenHeader(titleSpec, closeSpec),\n body: pBodyMessage(message, sharedBackstage.providers),\n footer: Optional.some(pFooter(pFooterGroup([], [footerNo, memFooterYes.asSpec()]))),\n onEscape: function onEscape() {\n return closeDialog(false);\n },\n extraClasses: ['tox-confirm-dialog'],\n extraBehaviours: [],\n extraStyles: {},\n dialogEvents: [run$1(formCancelEvent, function () {\n return closeDialog(false);\n }), run$1(formSubmitEvent, function () {\n return closeDialog(true);\n })],\n eventOrder: {}\n }));\n ModalDialog.show(confirmDialog);\n var footerYesButton = memFooterYes.get(confirmDialog);\n Focusing.focus(footerYesButton);\n };\n\n return {\n open: open\n };\n };\n\n var validateData = function validateData(data, validator) {\n return getOrDie(asRaw('data', validator, data));\n };\n\n var isAlertOrConfirmDialog = function isAlertOrConfirmDialog(target) {\n return closest(target, '.tox-alert-dialog') || closest(target, '.tox-confirm-dialog');\n };\n\n var inlineAdditionalBehaviours = function inlineAdditionalBehaviours(editor, isStickyToolbar, isToolbarLocationTop) {\n if (isStickyToolbar && isToolbarLocationTop) {\n return [];\n } else {\n return [Docking.config({\n contextual: {\n lazyContext: function lazyContext() {\n return Optional.some(box$1(SugarElement.fromDom(editor.getContentAreaContainer())));\n },\n fadeInClass: 'tox-dialog-dock-fadein',\n fadeOutClass: 'tox-dialog-dock-fadeout',\n transitionClass: 'tox-dialog-dock-transition'\n },\n modes: ['top']\n })];\n }\n };\n\n var setup = function setup(extras) {\n var backstage = extras.backstage;\n var editor = extras.editor;\n var isStickyToolbar$1 = isStickyToolbar(editor);\n var alertDialog = setup$2(extras);\n var confirmDialog = setup$1(extras);\n\n var open = function open(config, params, closeWindow) {\n if (params !== undefined && params.inline === 'toolbar') {\n return openInlineDialog(config, backstage.shared.anchors.inlineDialog(), closeWindow, params.ariaAttrs);\n } else if (params !== undefined && params.inline === 'cursor') {\n return openInlineDialog(config, backstage.shared.anchors.cursor(), closeWindow, params.ariaAttrs);\n } else {\n return openModalDialog(config, closeWindow);\n }\n };\n\n var openUrl = function openUrl(config, closeWindow) {\n return openModalUrlDialog(config, closeWindow);\n };\n\n var openModalUrlDialog = function openModalUrlDialog(config, _closeWindow) {\n var factory = function factory(contents) {\n var dialog = renderUrlDialog(contents, {\n closeWindow: function closeWindow() {\n ModalDialog.hide(dialog.dialog);\n\n _closeWindow(dialog.instanceApi);\n }\n }, editor, backstage);\n ModalDialog.show(dialog.dialog);\n return dialog.instanceApi;\n };\n\n return DialogManager.openUrl(factory, config);\n };\n\n var openModalDialog = function openModalDialog(config, _closeWindow2) {\n var factory = function factory(contents, internalInitialData, dataValidator) {\n var initialData = internalInitialData;\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n var dialog = renderDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function closeWindow() {\n ModalDialog.hide(dialog.dialog);\n\n _closeWindow2(dialog.instanceApi);\n }\n }, backstage);\n ModalDialog.show(dialog.dialog);\n dialog.instanceApi.setData(initialData);\n return dialog.instanceApi;\n };\n\n return DialogManager.open(factory, config);\n };\n\n var openInlineDialog = function openInlineDialog(config$1, anchor, _closeWindow3, ariaAttrs) {\n var factory = function factory(contents, internalInitialData, dataValidator) {\n var initialData = validateData(internalInitialData, dataValidator);\n var inlineDialog = value$1();\n var isToolbarLocationTop = backstage.shared.header.isPositionedAtTop();\n var dialogInit = {\n dataValidator: dataValidator,\n initialData: initialData,\n internalDialog: contents\n };\n\n var refreshDocking = function refreshDocking() {\n return inlineDialog.on(function (dialog) {\n InlineView.reposition(dialog);\n Docking.refresh(dialog);\n });\n };\n\n var dialogUi = renderInlineDialog(dialogInit, {\n redial: DialogManager.redial,\n closeWindow: function closeWindow() {\n inlineDialog.on(InlineView.hide);\n editor.off('ResizeEditor', refreshDocking);\n inlineDialog.clear();\n\n _closeWindow3(dialogUi.instanceApi);\n }\n }, backstage, ariaAttrs);\n var inlineDialogComp = build$1(InlineView.sketch(_assign(_assign({\n lazySink: backstage.shared.getSink,\n dom: {\n tag: 'div',\n classes: []\n },\n fireDismissalEventInstead: {}\n }, isToolbarLocationTop ? {} : {\n fireRepositionEventInstead: {}\n }), {\n inlineBehaviours: derive$1(__spreadArray([config('window-manager-inline-events', [run$1(dismissRequested(), function (_comp, _se) {\n emit(dialogUi.dialog, formCancelEvent);\n })])], inlineAdditionalBehaviours(editor, isStickyToolbar$1, isToolbarLocationTop), true)),\n isExtraPart: function isExtraPart(_comp, target) {\n return isAlertOrConfirmDialog(target);\n }\n })));\n inlineDialog.set(inlineDialogComp);\n InlineView.showWithin(inlineDialogComp, premade(dialogUi.dialog), {\n anchor: anchor\n }, Optional.some(body()));\n\n if (!isStickyToolbar$1 || !isToolbarLocationTop) {\n Docking.refresh(inlineDialogComp);\n editor.on('ResizeEditor', refreshDocking);\n }\n\n dialogUi.instanceApi.setData(initialData);\n Keying.focusIn(dialogUi.dialog);\n return dialogUi.instanceApi;\n };\n\n return DialogManager.open(factory, config$1);\n };\n\n var confirm = function confirm(message, callback) {\n confirmDialog.open(message, function (state) {\n callback(state);\n });\n };\n\n var alert = function alert(message, callback) {\n alertDialog.open(message, function () {\n callback();\n });\n };\n\n var close = function close(instanceApi) {\n instanceApi.close();\n };\n\n return {\n open: open,\n openUrl: openUrl,\n alert: alert,\n close: close,\n confirm: confirm\n };\n };\n\n function Theme() {\n global$g.add('silver', function (editor) {\n var _a = setup$3(editor),\n uiMothership = _a.uiMothership,\n backstage = _a.backstage,\n renderUI = _a.renderUI,\n getUi = _a.getUi;\n\n Autocompleter.register(editor, backstage.shared);\n var windowMgr = setup({\n editor: editor,\n backstage: backstage\n });\n return {\n renderUI: renderUI,\n getWindowManagerImpl: constant$1(windowMgr),\n getNotificationManagerImpl: function getNotificationManagerImpl() {\n return NotificationManagerImpl(editor, {\n backstage: backstage\n }, uiMothership);\n },\n ui: getUi()\n };\n });\n }\n\n Theme();\n})();","var api = require(\"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../../css-loader/dist/cjs.js??ref--5-1!../../../../postcss-loader/src/index.js??ref--5-2!./skin.min.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \"/**\\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\\n * Licensed under the LGPL or a commercial license.\\n * For LGPL see License.txt in the project root for license information.\\n * For commercial licenses see https://www.tiny.cloud/\\n */\\n.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:baseline;vertical-align:initial;white-space:normal}\\n.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}\\n.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}\\n.tox:not([dir=rtl]){direction:ltr;text-align:left}\\n.tox[dir=rtl]{direction:rtl;text-align:right}\\n.tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}\\n.tox-tinymce-inline{border:none;box-shadow:none}\\n.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}\\n.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;z-index:1300}\\n.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}\\nbutton::-moz-focus-inner{border:0}\\n.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}\\n.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}\\n.tox .accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}\\n.tox .accessibility-issue__description>div{padding-bottom:4px}\\n.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}\\n.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}\\n.tox .accessibility-issue__repair{margin-top:16px}\\n.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}\\n.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}\\n.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#207ab7}\\n.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#207ab7}\\n.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#207ab7}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#cc8500}\\n.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#cc8500}\\n.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#cc8500}\\n.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}\\n.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}\\n.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}\\n.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}\\n.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#c00}\\n.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}\\n.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}\\n.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#78ab46}\\n.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#78ab46}\\n.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#78ab46}\\n.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}\\n.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}\\n.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}\\n.tox .tox-anchorbar{display:flex;flex:0 0 auto}\\n.tox .tox-bar{display:flex;flex:0 0 auto}\\n.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}\\n.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}\\n.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\\n.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}\\n.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}\\n.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}\\n.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\\n.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\\n.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\\n.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\\n.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}\\n.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}\\n.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}\\n.tox .tox-button-link--sm{font-size:14px}\\n.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}\\n.tox .tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}\\n.tox .tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\\n.tox .tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}\\n.tox .tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}\\n.tox .tox-button--naked .tox-icon svg{fill:currentColor}\\n.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}\\n.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}\\n.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}\\n.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}\\n.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}\\n.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}\\n.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}\\n.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}\\n.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}\\n.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}\\n.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}\\n.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}\\n.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}\\n.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}\\n.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}\\n.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}\\n.tox[dir=rtl] .tox-checkbox__input{right:-10000px}\\n.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}\\n.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}\\n.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}\\n.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}\\n.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}\\n.tox .tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}\\n.tox .tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}\\n.tox .tox-collection--list .tox-collection__item{padding:4px 8px}\\n.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}\\n.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}\\n.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}\\n.tox .tox-collection--list .tox-collection__item--active{background-color:#dee0e2}\\n.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\\n.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#dee0e2}\\n.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}\\n.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}\\n.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}\\n.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}\\n.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}\\n.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}\\n.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}\\n.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1 1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}\\n.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}\\n.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}\\n.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}\\n.tox .tox-collection__item-caret svg{fill:#222f3e}\\n.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}\\n.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(34,47,62,.5)}\\n.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}\\n.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}\\n.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}\\n.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}\\n.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}\\n.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}\\n.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}\\n.tox .tox-collection__item-container{display:flex}\\n.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}\\n.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}\\n.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}\\n.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}\\n.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}\\n.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}\\n.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}\\n.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}\\n.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}\\n.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}\\n.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}\\n.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}\\n.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}\\n.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}\\n.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}\\n.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}\\n.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}\\n.tox .tox-sv-palette-spectrum{height:100%}\\n.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}\\n.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}\\n.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}\\n.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}\\n.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}\\n.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}\\n.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}\\n.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}\\n.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}\\n.tox .tox-rgb-form input{width:6em}\\n.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}\\n.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}\\n.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}\\n.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}\\n.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}\\n.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}\\n.tox[dir=rtl] .tox-sv-palette{margin-left:15px}\\n.tox[dir=rtl] .tox-hue-slider{margin-left:15px}\\n.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}\\n.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}\\n.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}\\n.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}\\n.tox .tox-swatches__row{display:flex}\\n.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}\\n.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}\\n.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}\\n.tox .tox-swatch--remove svg path{stroke:#e74c3c}\\n.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}\\n.tox .tox-swatches__picker-btn svg{height:24px;width:24px}\\n.tox .tox-swatches__picker-btn:hover{background:#dee0e2}\\n.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}\\n.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}\\n.tox .tox-comment-thread{background:#fff;position:relative}\\n.tox .tox-comment-thread>:not(:first-child){margin-top:8px}\\n.tox .tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}\\n.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}\\n.tox .tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}\\n.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:none;text-transform:initial}\\n.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}\\n.tox .tox-comment__expander{padding-top:8px}\\n.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}\\n.tox .tox-comment__body p{margin:0}\\n.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}\\n.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:\\\"\\\";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}\\n.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}\\n.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}\\n.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}\\n.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:\\\"\\\";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}\\n.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}\\n.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}\\n.tox .tox-comment__loading-text>div{padding-bottom:16px}\\n.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}\\n.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}\\n.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}\\n.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}\\n.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}\\n.tox .tox-conversations{margin:8px}\\n.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}\\n.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}\\n.tox[dir=rtl] .tox-comment__edit{margin-right:8px}\\n.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}\\n.tox .tox-user{align-items:center;display:flex}\\n.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}\\n.tox .tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}\\n.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}\\n.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}\\n.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}\\n.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}\\n.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}\\n.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}\\n.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}\\n.tox .tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}\\n@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}\\n.tox .tox-dialog-inline{z-index:1100}\\n.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}\\n.tox .tox-dialog__header .tox-button{z-index:1}\\n.tox .tox-dialog__draghandle{cursor:-webkit-grab;cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}\\n.tox .tox-dialog__draghandle:active{cursor:-webkit-grabbing;cursor:grabbing}\\n.tox .tox-dialog__dismiss{margin-left:auto}\\n.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}\\n.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1 1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}\\n@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}\\n.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}\\n@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}\\n.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}\\n.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}\\n.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}\\n.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1 1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}\\n.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}\\n.tox .tox-dialog__body-content>:first-child{margin-top:0}\\n.tox .tox-dialog__body-content>:last-child{margin-bottom:0}\\n.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}\\n.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}\\n.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}\\n.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}\\n.tox .tox-dialog__body-content svg{fill:#222f3e}\\n.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}\\n.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\\n.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}\\n.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}\\n.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}\\n.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}\\n.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}\\n.tox .tox-dialog--width-lg{height:650px;max-width:1200px}\\n.tox .tox-dialog--width-md{max-width:800px}\\n.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}\\n.tox .tox-dialog__body-content--centered{text-align:center}\\n.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}\\n.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}\\n.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}\\n.tox .tox-dialog__table{border-collapse:collapse;width:100%}\\n.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}\\n.tox .tox-dialog__table tbody tr{border-bottom:1px solid #ccc}\\n.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}\\n.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}\\n.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}\\n.tox .tox-dialog__body-iframe{display:flex;flex:1 1;flex-direction:column;-ms-flex-preferred-size:auto}\\n.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1 1;-ms-flex-preferred-size:auto}\\n.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1 1;-ms-flex-preferred-size:auto;height:100%}\\n.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}\\n.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}\\n.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}\\n.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}\\n.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}\\n@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}\\n@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}\\n.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}\\n.tox[dir=rtl] .tox-dialog__body{text-align:right}\\n@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}\\n@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}\\n.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}\\nbody.tox-dialog__disable-scroll{overflow:hidden}\\n.tox .tox-dropzone-container{display:flex;flex:1 1;-ms-flex-preferred-size:auto}\\n.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}\\n.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}\\n.tox .tox-edit-area{display:flex;flex:1 1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}\\n.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1 1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}\\n.tox.tox-inline-edit-area{border:1px dotted #ccc}\\n.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}\\n.tox .tox-editor-header{z-index:1}\\n.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}\\n.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}\\n.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}\\n.tox-editor-dock-fadeout{opacity:0;visibility:hidden}\\n.tox-editor-dock-fadein{opacity:1;visibility:visible}\\n.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}\\n.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}\\n.tox .tox-control-wrap{flex:1 1;position:relative}\\n.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}\\n.tox .tox-control-wrap svg{display:block}\\n.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}\\n.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}\\n.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}\\n.tox .tox-control-wrap__status-icon-valid svg{fill:green}\\n.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}\\n.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}\\n.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}\\n.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}\\n.tox .tox-autocompleter{max-width:25em}\\n.tox .tox-autocompleter .tox-menu{max-width:25em}\\n.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}\\n.tox .tox-color-input{display:flex;position:relative;z-index:1}\\n.tox .tox-color-input .tox-textfield{z-index:-1}\\n.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}\\n.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}\\n.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}\\n.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}\\n.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}\\n.tox:not([dir=rtl]) .tox-color-input span{left:6px}\\n.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}\\n.tox[dir=rtl] .tox-color-input span{right:6px}\\n.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}\\n.tox .tox-toolbar-label{padding:0 8px}\\n.tox[dir=rtl] .tox-label{padding:0 0 0 8px}\\n.tox .tox-form{display:flex;flex:1 1;flex-direction:column;-ms-flex-preferred-size:auto}\\n.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}\\n.tox .tox-form-group--maximize{flex:1 1}\\n.tox .tox-form__group--error{color:#c00}\\n.tox .tox-form__group--collection{display:flex}\\n.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}\\n.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}\\n.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}\\n.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}\\n.tox .tox-form__controls-h-stack{align-items:center;display:flex}\\n.tox .tox-form__group--inline{align-items:center;display:flex}\\n.tox .tox-form__group--stretched{display:flex;flex:1 1;flex-direction:column;-ms-flex-preferred-size:auto}\\n.tox .tox-form__group--stretched .tox-textarea{flex:1 1;-ms-flex-preferred-size:auto}\\n.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1 1;-ms-flex-preferred-size:auto}\\n.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1 1;-ms-flex-preferred-size:auto;height:100%}\\n.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}\\n.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}\\n.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}\\n.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\\n.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\\n.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\\n.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}\\n.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}\\n.tox .tox-naked-btn svg{display:block;fill:#222f3e}\\n.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}\\n.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}\\n.tox .tox-listboxfield{cursor:pointer;position:relative}\\n.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\\n.tox .tox-listbox__select-label{cursor:default;flex:1 1;margin:0 4px}\\n.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\\n.tox .tox-listbox__select-chevron svg{fill:#222f3e}\\n.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}\\n.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}\\n.tox[dir=rtl] .tox-listboxfield svg{left:8px}\\n.tox .tox-selectfield{cursor:pointer;position:relative}\\n.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}\\n.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}\\n.tox .tox-selectfield select::-ms-expand{display:none}\\n.tox .tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}\\n.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}\\n.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"0\\\"],.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"1\\\"]{padding-right:24px}\\n.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}\\n.tox[dir=rtl] .tox-selectfield select[size=\\\"0\\\"],.tox[dir=rtl] .tox-selectfield select[size=\\\"1\\\"]{padding-left:24px}\\n.tox[dir=rtl] .tox-selectfield svg{left:8px}\\n.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}\\n.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}\\n.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}\\n.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}\\n.tox.tox-tinymce.tox-fullscreen{background-color:transparent}\\n.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}\\n.tox .tox-help__more-link{list-style:none;margin-top:1em}\\n.tox .tox-image-tools{width:100%}\\n.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}\\n.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}\\n.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}\\n.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}\\n.tox .tox-image-tools__toolbar>.tox-spacer{flex:1 1;-ms-flex-preferred-size:auto}\\n.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}\\n.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}\\n.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}\\n.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}\\n.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}\\n.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}\\n.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}\\n.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}\\n.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}\\n.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}\\n.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}\\n.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}\\n.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}\\n.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}\\n.tox .tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}\\n.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}\\n.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}\\n.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}\\n.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}\\n.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}\\n.tox .tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}\\n.tox .tox-menu.tox-collection.tox-collection--list{padding:0}\\n.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}\\n.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}\\n.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}\\n.tox .tox-menubar{background:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\\\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}\\n.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #ccc}\\n.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}\\n.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\\n.tox .tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\\n.tox .tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\\n.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\\n.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\\n.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}\\n.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}\\n.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}\\n.tox .tox-notification p{font-size:14px;font-weight:400}\\n.tox .tox-notification a{cursor:pointer;text-decoration:underline}\\n.tox .tox-notification--in{opacity:1}\\n.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}\\n.tox .tox-notification--success p{color:#222f3e}\\n.tox .tox-notification--success a{color:#547831}\\n.tox .tox-notification--success svg{fill:#222f3e}\\n.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}\\n.tox .tox-notification--error p{color:#222f3e}\\n.tox .tox-notification--error a{color:#c00}\\n.tox .tox-notification--error svg{fill:#222f3e}\\n.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}\\n.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}\\n.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#222f3e}\\n.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}\\n.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}\\n.tox .tox-notification--info p{color:#222f3e}\\n.tox .tox-notification--info a{color:#222f3e}\\n.tox .tox-notification--info svg{fill:#222f3e}\\n.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}\\n.tox .tox-notification__body>*{margin:0}\\n.tox .tox-notification__body>*+*{margin-top:1rem}\\n.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}\\n.tox .tox-notification__icon svg{display:block}\\n.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}\\n.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}\\n.tox .tox-pop{display:inline-block;position:relative}\\n.tox .tox-pop--resizing{transition:width .1s ease}\\n.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}\\n.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}\\n.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}\\n.tox .tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}\\n.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}\\n.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}\\n.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}\\n.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}\\n.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}\\n.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}\\n.tox .tox-pop.tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}\\n.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}\\n.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}\\n.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}\\n.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}\\n.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}\\n.tox .tox-pop.tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}\\n.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}\\n.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}\\n.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}\\n.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}\\n.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}\\n.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}\\n.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}\\n.tox .tox-sidebar__slider{display:flex;overflow:hidden}\\n.tox .tox-sidebar__pane-container{display:flex}\\n.tox .tox-sidebar__pane{display:flex}\\n.tox .tox-sidebar--sliding-closed{opacity:0}\\n.tox .tox-sidebar--sliding-open{opacity:1}\\n.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}\\n.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}\\n.tox.tox-platform-touch .tox-selector{height:12px;width:12px}\\n.tox .tox-slider{align-items:center;display:flex;flex:1 1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}\\n.tox .tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}\\n.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}\\n.tox .tox-source-code{overflow:auto}\\n.tox .tox-spinner{display:flex}\\n.tox .tox-spinner>div{-webkit-animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}\\n.tox .tox-spinner>div:nth-child(1){-webkit-animation-delay:-.32s;animation-delay:-.32s}\\n.tox .tox-spinner>div:nth-child(2){-webkit-animation-delay:-.16s;animation-delay:-.16s}\\n@-webkit-keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}\\n@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}\\n.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}\\n.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}\\n.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}\\n.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}\\n.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}\\n.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}\\n.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}\\n.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}\\n.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}\\n.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}\\n.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}\\n.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}\\n.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}\\n.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}\\n.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}\\n.tox .tox-throbber{z-index:1299}\\n.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}\\n.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}\\n.tox .tox-tbtn svg{display:block;fill:#222f3e}\\n.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}\\n.tox .tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}\\n.tox .tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}\\n.tox .tox-tbtn:hover svg{fill:#222f3e}\\n.tox .tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\\n.tox .tox-tbtn:active svg{fill:#222f3e}\\n.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}\\n.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}\\n.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}\\n.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}\\n.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}\\n.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}\\n.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}\\n.tox .tox-tbtn:active>*{transform:none}\\n.tox .tox-tbtn--md{height:51px;width:51px}\\n.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}\\n.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}\\n.tox .tox-tbtn--labeled{padding:0 4px;width:unset}\\n.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}\\n.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}\\n.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}\\n.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}\\n.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}\\n.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}\\n.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}\\n.tox .tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}\\n.tox .tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}\\n.tox .tox-split-button>*{border-radius:0}\\n.tox .tox-split-button__chevron{width:16px}\\n.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}\\n.tox .tox-split-button .tox-tbtn{margin:0}\\n.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}\\n.tox.tox-platform-touch .tox-split-button__chevron{width:20px}\\n.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}\\n.tox .tox-toolbar-overlord{background-color:#fff}\\n.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\\\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}\\n.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}\\n.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}\\n.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}\\n.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}\\n.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}\\n.tox .tox-pop .tox-toolbar{border-width:0}\\n.tox .tox-toolbar--no-divider{background-image:none}\\n.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #ccc}\\n.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}\\n.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}\\n.tox .tox-toolbar__group--pull-right{margin-left:auto}\\n.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}\\n.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}\\n.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}\\n.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}\\n.tox .tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}\\n.tox .tox-tooltip__arrow{position:absolute}\\n.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}\\n.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}\\n.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}\\n.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}\\n.tox .tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}\\n.tox .tox-well>:first-child{margin-top:0}\\n.tox .tox-well>:last-child{margin-bottom:0}\\n.tox .tox-well>:only-child{margin:0}\\n.tox .tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1 1;position:relative}\\n.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:\\\"\\\";height:100%;position:absolute;width:100%;z-index:1000}\\n.tox .tox-tab{cursor:pointer}\\n.tox .tox-dialog__content-js{display:flex;flex:1 1;-ms-flex-preferred-size:auto}\\n.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1 1;-ms-flex-preferred-size:auto}\\n.tox .tox-image-tools-edit-panel{height:60px}\\n.tox .tox-image-tools__sidebar{height:60px}\\n\", \"\",{\"version\":3,\"sources\":[\"skin.min.css\"],\"names\":[],\"mappings\":\"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\",\"file\":\"skin.min.css\",\"sourcesContent\":[\"/**\\n * Copyright (c) Tiny Technologies, Inc. All rights reserved.\\n * Licensed under the LGPL or a commercial license.\\n * For LGPL see License.txt in the project root for license information.\\n * For commercial licenses see https://www.tiny.cloud/\\n */\\n.tox{box-shadow:none;box-sizing:content-box;color:#222f3e;cursor:auto;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:normal;-webkit-tap-highlight-color:transparent;text-decoration:none;text-shadow:none;text-transform:none;vertical-align:initial;white-space:normal}.tox :not(svg):not(rect){box-sizing:inherit;color:inherit;cursor:inherit;direction:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;line-height:inherit;-webkit-tap-highlight-color:inherit;text-align:inherit;text-decoration:inherit;text-shadow:inherit;text-transform:inherit;vertical-align:inherit;white-space:inherit}.tox :not(svg):not(rect){background:0 0;border:0;box-shadow:none;float:none;height:auto;margin:0;max-width:none;outline:0;padding:0;position:static;width:auto}.tox:not([dir=rtl]){direction:ltr;text-align:left}.tox[dir=rtl]{direction:rtl;text-align:right}.tox-tinymce{border:1px solid #ccc;border-radius:0;box-shadow:none;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;overflow:hidden;position:relative;visibility:inherit!important}.tox-tinymce-inline{border:none;box-shadow:none}.tox-tinymce-inline .tox-editor-header{background-color:transparent;border:1px solid #ccc;border-radius:0;box-shadow:none}.tox-tinymce-aux{font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;z-index:1300}.tox-tinymce :focus,.tox-tinymce-aux :focus{outline:0}button::-moz-focus-inner{border:0}.tox[dir=rtl] .tox-icon--flip svg{transform:rotateY(180deg)}.tox .accessibility-issue__header{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description{align-items:stretch;border:1px solid #ccc;border-radius:3px;display:flex;justify-content:space-between}.tox .accessibility-issue__description>div{padding-bottom:4px}.tox .accessibility-issue__description>div>div{align-items:center;display:flex;margin-bottom:4px}.tox .accessibility-issue__description>:last-child:not(:only-child){border-color:#ccc;border-style:solid}.tox .accessibility-issue__repair{margin-top:16px}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description{background-color:rgba(32,122,183,.1);border-color:rgba(32,122,183,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--info .accessibility-issue__description>:last-child{border-color:rgba(32,122,183,.4)}.tox .tox-dialog__body-content .accessibility-issue--info .tox-form__group h2{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info .tox-icon svg{fill:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--info a .tox-icon{color:#207ab7}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description{background-color:rgba(255,165,0,.1);border-color:rgba(255,165,0,.5);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--warn .accessibility-issue__description>:last-child{border-color:rgba(255,165,0,.5)}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-form__group h2{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn .tox-icon svg{fill:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--warn a .tox-icon{color:#cc8500}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description{background-color:rgba(204,0,0,.1);border-color:rgba(204,0,0,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--error .accessibility-issue__description>:last-child{border-color:rgba(204,0,0,.4)}.tox .tox-dialog__body-content .accessibility-issue--error .tox-form__group h2{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--error .tox-icon svg{fill:#c00}.tox .tox-dialog__body-content .accessibility-issue--error a .tox-icon{color:#c00}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description{background-color:rgba(120,171,70,.1);border-color:rgba(120,171,70,.4);color:#222f3e}.tox .tox-dialog__body-content .accessibility-issue--success .accessibility-issue__description>:last-child{border-color:rgba(120,171,70,.4)}.tox .tox-dialog__body-content .accessibility-issue--success .tox-form__group h2{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success .tox-icon svg{fill:#78ab46}.tox .tox-dialog__body-content .accessibility-issue--success a .tox-icon{color:#78ab46}.tox .tox-dialog__body-content .accessibility-issue__header h1,.tox .tox-dialog__body-content .tox-form__group .accessibility-issue__description h2{margin-top:0}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-left:4px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-left:auto}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description{padding:4px 4px 4px 8px}.tox:not([dir=rtl]) .tox-dialog__body-content .accessibility-issue__description>:last-child{border-left-width:1px;padding-left:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header .tox-button{margin-right:4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__header>:nth-last-child(2){margin-right:auto}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description{padding:4px 8px 4px 4px}.tox[dir=rtl] .tox-dialog__body-content .accessibility-issue__description>:last-child{border-right-width:1px;padding-right:4px}.tox .tox-anchorbar{display:flex;flex:0 0 auto}.tox .tox-bar{display:flex;flex:0 0 auto}.tox .tox-button{background-color:#207ab7;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#207ab7;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;line-height:24px;margin:0;outline:0;padding:4px 16px;text-align:center;text-decoration:none;text-transform:none;white-space:nowrap}.tox .tox-button[disabled]{background-color:#207ab7;background-image:none;border-color:#207ab7;box-shadow:none;color:rgba(255,255,255,.5);cursor:not-allowed}.tox .tox-button:focus:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:hover:not(:disabled){background-color:#1c6ca1;background-image:none;border-color:#1c6ca1;box-shadow:none;color:#fff}.tox .tox-button:active:not(:disabled){background-color:#185d8c;background-image:none;border-color:#185d8c;box-shadow:none;color:#fff}.tox .tox-button--secondary{background-color:#f0f0f0;background-image:none;background-position:0 0;background-repeat:repeat;border-color:#f0f0f0;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;color:#222f3e;font-size:14px;font-style:normal;font-weight:700;letter-spacing:normal;outline:0;padding:4px 16px;text-decoration:none;text-transform:none}.tox .tox-button--secondary[disabled]{background-color:#f0f0f0;background-image:none;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--secondary:focus:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:hover:not(:disabled){background-color:#e3e3e3;background-image:none;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--secondary:active:not(:disabled){background-color:#d6d6d6;background-image:none;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--icon,.tox .tox-button.tox-button--icon,.tox .tox-button.tox-button--secondary.tox-button--icon{padding:4px}.tox .tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--icon .tox-icon svg,.tox .tox-button.tox-button--secondary.tox-button--icon .tox-icon svg{display:block;fill:currentColor}.tox .tox-button-link{background:0;border:none;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;font-weight:400;line-height:1.3;margin:0;padding:0;white-space:nowrap}.tox .tox-button-link--sm{font-size:14px}.tox .tox-button--naked{background-color:transparent;border-color:transparent;box-shadow:unset;color:#222f3e}.tox .tox-button--naked[disabled]{background-color:#f0f0f0;border-color:#f0f0f0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-button--naked:hover:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:focus:not(:disabled){background-color:#e3e3e3;border-color:#e3e3e3;box-shadow:none;color:#222f3e}.tox .tox-button--naked:active:not(:disabled){background-color:#d6d6d6;border-color:#d6d6d6;box-shadow:none;color:#222f3e}.tox .tox-button--naked .tox-icon svg{fill:currentColor}.tox .tox-button--naked.tox-button--icon:hover:not(:disabled){color:#222f3e}.tox .tox-checkbox{align-items:center;border-radius:3px;cursor:pointer;display:flex;height:36px;min-width:36px}.tox .tox-checkbox__input{height:1px;overflow:hidden;position:absolute;top:auto;width:1px}.tox .tox-checkbox__icons{align-items:center;border-radius:3px;box-shadow:0 0 0 2px transparent;box-sizing:content-box;display:flex;height:24px;justify-content:center;padding:calc(4px - 1px);width:24px}.tox .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:block;fill:rgba(34,47,62,.3)}.tox .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:none;fill:#207ab7}.tox .tox-checkbox__icons .tox-checkbox-icon__checked svg{display:none;fill:#207ab7}.tox .tox-checkbox--disabled{color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__checked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__unchecked svg{fill:rgba(34,47,62,.5)}.tox .tox-checkbox--disabled .tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{fill:rgba(34,47,62,.5)}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:checked+.tox-checkbox__icons .tox-checkbox-icon__checked svg{display:block}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__unchecked svg{display:none}.tox input.tox-checkbox__input:indeterminate+.tox-checkbox__icons .tox-checkbox-icon__indeterminate svg{display:block}.tox input.tox-checkbox__input:focus+.tox-checkbox__icons{border-radius:3px;box-shadow:inset 0 0 0 1px #207ab7;padding:calc(4px - 1px)}.tox:not([dir=rtl]) .tox-checkbox__label{margin-left:4px}.tox:not([dir=rtl]) .tox-checkbox__input{left:-10000px}.tox:not([dir=rtl]) .tox-bar .tox-checkbox{margin-left:4px}.tox[dir=rtl] .tox-checkbox__label{margin-right:4px}.tox[dir=rtl] .tox-checkbox__input{right:-10000px}.tox[dir=rtl] .tox-bar .tox-checkbox{margin-right:4px}.tox .tox-collection--toolbar .tox-collection__group{display:flex;padding:0}.tox .tox-collection--grid .tox-collection__group{display:flex;flex-wrap:wrap;max-height:208px;overflow-x:hidden;overflow-y:auto;padding:0}.tox .tox-collection--list .tox-collection__group{border-bottom-width:0;border-color:#ccc;border-left-width:0;border-right-width:0;border-style:solid;border-top-width:1px;padding:4px 0}.tox .tox-collection--list .tox-collection__group:first-child{border-top-width:0}.tox .tox-collection__group-heading{background-color:#e6e6e6;color:rgba(34,47,62,.7);cursor:default;font-size:12px;font-style:normal;font-weight:400;margin-bottom:4px;margin-top:-4px;padding:4px 8px;text-transform:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection__item{align-items:center;color:#222f3e;cursor:pointer;display:flex;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tox .tox-collection--list .tox-collection__item{padding:4px 8px}.tox .tox-collection--toolbar .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--grid .tox-collection__item{border-radius:3px;padding:4px}.tox .tox-collection--list .tox-collection__item--enabled{background-color:#fff;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--toolbar .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active{background-color:#dee0e2}.tox .tox-collection--grid .tox-collection__item--enabled{background-color:#c8cbcf;color:#222f3e}.tox .tox-collection--grid .tox-collection__item--active:not(.tox-collection__item--state-disabled){background-color:#dee0e2;color:#222f3e}.tox .tox-collection--list .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection--toolbar .tox-collection__item--active:not(.tox-collection__item--state-disabled){color:#222f3e}.tox .tox-collection__item-checkmark,.tox .tox-collection__item-icon{align-items:center;display:flex;height:24px;justify-content:center;width:24px}.tox .tox-collection__item-checkmark svg,.tox .tox-collection__item-icon svg{fill:currentColor}.tox .tox-collection--toolbar-lg .tox-collection__item-icon{height:48px;width:48px}.tox .tox-collection__item-label{color:currentColor;display:inline-block;flex:1;-ms-flex-preferred-size:auto;font-size:14px;font-style:normal;font-weight:400;line-height:24px;text-transform:none;word-break:break-all}.tox .tox-collection__item-accessory{color:rgba(34,47,62,.7);display:inline-block;font-size:14px;height:24px;line-height:24px;text-transform:none}.tox .tox-collection__item-caret{align-items:center;display:flex;min-height:24px}.tox .tox-collection__item-caret::after{content:'';font-size:0;min-height:inherit}.tox .tox-collection__item-caret svg{fill:#222f3e}.tox .tox-collection__item--state-disabled{background-color:transparent;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-collection__item--state-disabled .tox-collection__item-caret svg{fill:rgba(34,47,62,.5)}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-checkmark svg{display:none}.tox .tox-collection--list .tox-collection__item:not(.tox-collection__item--enabled) .tox-collection__item-accessory+.tox-collection__item-checkmark{display:none}.tox .tox-collection--horizontal{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;margin-bottom:0;overflow-x:auto;padding:0}.tox .tox-collection--horizontal .tox-collection__group{align-items:center;display:flex;flex-wrap:nowrap;margin:0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item{height:34px;margin:2px 0 3px 0;padding:0 4px}.tox .tox-collection--horizontal .tox-collection__item-label{white-space:nowrap}.tox .tox-collection--horizontal .tox-collection__item-caret{margin-left:4px}.tox .tox-collection__item-container{display:flex}.tox .tox-collection__item-container--row{align-items:center;flex:1 1 auto;flex-direction:row}.tox .tox-collection__item-container--row.tox-collection__item-container--align-left{margin-right:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--align-right{justify-content:flex-end;margin-left:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-top{align-items:flex-start;margin-bottom:auto}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-middle{align-items:center}.tox .tox-collection__item-container--row.tox-collection__item-container--valign-bottom{align-items:flex-end;margin-top:auto}.tox .tox-collection__item-container--column{-ms-grid-row-align:center;align-self:center;flex:1 1 auto;flex-direction:column}.tox .tox-collection__item-container--column.tox-collection__item-container--align-left{align-items:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--align-right{align-items:flex-end}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-top{align-self:flex-start}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-middle{-ms-grid-row-align:center;align-self:center}.tox .tox-collection__item-container--column.tox-collection__item-container--valign-bottom{align-self:flex-end}.tox:not([dir=rtl]) .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-right:1px solid #ccc}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>:not(:first-child){margin-left:8px}.tox:not([dir=rtl]) .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-left:4px}.tox:not([dir=rtl]) .tox-collection__item-accessory{margin-left:16px;text-align:right}.tox:not([dir=rtl]) .tox-collection .tox-collection__item-caret{margin-left:16px}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__group:not(:last-of-type){border-left:1px solid #ccc}.tox[dir=rtl] .tox-collection--list .tox-collection__item>:not(:first-child){margin-right:8px}.tox[dir=rtl] .tox-collection--list .tox-collection__item>.tox-collection__item-label:first-child{margin-right:4px}.tox[dir=rtl] .tox-collection__item-accessory{margin-right:16px;text-align:left}.tox[dir=rtl] .tox-collection .tox-collection__item-caret{margin-right:16px;transform:rotateY(180deg)}.tox[dir=rtl] .tox-collection--horizontal .tox-collection__item-caret{margin-right:4px}.tox .tox-color-picker-container{display:flex;flex-direction:row;height:225px;margin:0}.tox .tox-sv-palette{box-sizing:border-box;display:flex;height:100%}.tox .tox-sv-palette-spectrum{height:100%}.tox .tox-sv-palette,.tox .tox-sv-palette-spectrum{width:225px}.tox .tox-sv-palette-thumb{background:0 0;border:1px solid #000;border-radius:50%;box-sizing:content-box;height:12px;position:absolute;width:12px}.tox .tox-sv-palette-inner-thumb{border:1px solid #fff;border-radius:50%;height:10px;position:absolute;width:10px}.tox .tox-hue-slider{box-sizing:border-box;height:100%;width:25px}.tox .tox-hue-slider-spectrum{background:linear-gradient(to bottom,red,#ff0080,#f0f,#8000ff,#00f,#0080ff,#0ff,#00ff80,#0f0,#80ff00,#ff0,#ff8000,red);height:100%;width:100%}.tox .tox-hue-slider,.tox .tox-hue-slider-spectrum{width:20px}.tox .tox-hue-slider-thumb{background:#fff;border:1px solid #000;box-sizing:content-box;height:4px;width:100%}.tox .tox-rgb-form{display:flex;flex-direction:column;justify-content:space-between}.tox .tox-rgb-form div{align-items:center;display:flex;justify-content:space-between;margin-bottom:5px;width:inherit}.tox .tox-rgb-form input{width:6em}.tox .tox-rgb-form input.tox-invalid{border:1px solid red!important}.tox .tox-rgb-form .tox-rgba-preview{border:1px solid #000;flex-grow:2;margin-bottom:0}.tox:not([dir=rtl]) .tox-sv-palette{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider{margin-right:15px}.tox:not([dir=rtl]) .tox-hue-slider-thumb{margin-left:-1px}.tox:not([dir=rtl]) .tox-rgb-form label{margin-right:.5em}.tox[dir=rtl] .tox-sv-palette{margin-left:15px}.tox[dir=rtl] .tox-hue-slider{margin-left:15px}.tox[dir=rtl] .tox-hue-slider-thumb{margin-right:-1px}.tox[dir=rtl] .tox-rgb-form label{margin-left:.5em}.tox .tox-toolbar .tox-swatches,.tox .tox-toolbar__overflow .tox-swatches,.tox .tox-toolbar__primary .tox-swatches{margin:2px 0 3px 4px}.tox .tox-collection--list .tox-collection__group .tox-swatches-menu{border:0;margin:-4px 0}.tox .tox-swatches__row{display:flex}.tox .tox-swatch{height:30px;transition:transform .15s,box-shadow .15s;width:30px}.tox .tox-swatch:focus,.tox .tox-swatch:hover{box-shadow:0 0 0 1px rgba(127,127,127,.3) inset;transform:scale(.8)}.tox .tox-swatch--remove{align-items:center;display:flex;justify-content:center}.tox .tox-swatch--remove svg path{stroke:#e74c3c}.tox .tox-swatches__picker-btn{align-items:center;background-color:transparent;border:0;cursor:pointer;display:flex;height:30px;justify-content:center;outline:0;padding:0;width:30px}.tox .tox-swatches__picker-btn svg{height:24px;width:24px}.tox .tox-swatches__picker-btn:hover{background:#dee0e2}.tox:not([dir=rtl]) .tox-swatches__picker-btn{margin-left:auto}.tox[dir=rtl] .tox-swatches__picker-btn{margin-right:auto}.tox .tox-comment-thread{background:#fff;position:relative}.tox .tox-comment-thread>:not(:first-child){margin-top:8px}.tox .tox-comment{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);padding:8px 8px 16px 8px;position:relative}.tox .tox-comment__header{align-items:center;color:#222f3e;display:flex;justify-content:space-between}.tox .tox-comment__date{color:rgba(34,47,62,.7);font-size:12px}.tox .tox-comment__body{color:#222f3e;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;margin-top:8px;position:relative;text-transform:initial}.tox .tox-comment__body textarea{resize:none;white-space:normal;width:100%}.tox .tox-comment__expander{padding-top:8px}.tox .tox-comment__expander p{color:rgba(34,47,62,.7);font-size:14px;font-style:normal}.tox .tox-comment__body p{margin:0}.tox .tox-comment__buttonspacing{padding-top:16px;text-align:center}.tox .tox-comment-thread__overlay::after{background:#fff;bottom:0;content:\\\"\\\";display:flex;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:5}.tox .tox-comment__reply{display:flex;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;margin-top:8px}.tox .tox-comment__reply>:first-child{margin-bottom:8px;width:100%}.tox .tox-comment__edit{display:flex;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.tox .tox-comment__gradient::after{background:linear-gradient(rgba(255,255,255,0),#fff);bottom:0;content:\\\"\\\";display:block;height:5em;margin-top:-40px;position:absolute;width:100%}.tox .tox-comment__overlay{background:#fff;bottom:0;display:flex;flex-direction:column;flex-grow:1;left:0;opacity:.9;position:absolute;right:0;text-align:center;top:0;z-index:5}.tox .tox-comment__loading-text{align-items:center;color:#222f3e;display:flex;flex-direction:column;position:relative}.tox .tox-comment__loading-text>div{padding-bottom:16px}.tox .tox-comment__overlaytext{bottom:0;flex-direction:column;font-size:14px;left:0;padding:1em;position:absolute;right:0;top:0;z-index:10}.tox .tox-comment__overlaytext p{background-color:#fff;box-shadow:0 0 8px 8px #fff;color:#222f3e;text-align:center}.tox .tox-comment__overlaytext div:nth-of-type(2){font-size:.8em}.tox .tox-comment__busy-spinner{align-items:center;background-color:#fff;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:20}.tox .tox-comment__scroll{display:flex;flex-direction:column;flex-shrink:1;overflow:auto}.tox .tox-conversations{margin:8px}.tox:not([dir=rtl]) .tox-comment__edit{margin-left:8px}.tox:not([dir=rtl]) .tox-comment__buttonspacing>:last-child,.tox:not([dir=rtl]) .tox-comment__edit>:last-child,.tox:not([dir=rtl]) .tox-comment__reply>:last-child{margin-left:8px}.tox[dir=rtl] .tox-comment__edit{margin-right:8px}.tox[dir=rtl] .tox-comment__buttonspacing>:last-child,.tox[dir=rtl] .tox-comment__edit>:last-child,.tox[dir=rtl] .tox-comment__reply>:last-child{margin-right:8px}.tox .tox-user{align-items:center;display:flex}.tox .tox-user__avatar svg{fill:rgba(34,47,62,.7)}.tox .tox-user__name{color:rgba(34,47,62,.7);font-size:12px;font-style:normal;font-weight:700;text-transform:uppercase}.tox:not([dir=rtl]) .tox-user__avatar svg{margin-right:8px}.tox:not([dir=rtl]) .tox-user__avatar+.tox-user__name{margin-left:8px}.tox[dir=rtl] .tox-user__avatar svg{margin-left:8px}.tox[dir=rtl] .tox-user__avatar+.tox-user__name{margin-right:8px}.tox .tox-dialog-wrap{align-items:center;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.tox .tox-dialog-wrap__backdrop{background-color:rgba(255,255,255,.75);bottom:0;left:0;position:absolute;right:0;top:0;z-index:1}.tox .tox-dialog-wrap__backdrop--opaque{background-color:#fff}.tox .tox-dialog{background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:0 16px 16px -10px rgba(34,47,62,.15),0 0 40px 1px rgba(34,47,62,.15);display:flex;flex-direction:column;max-height:100%;max-width:480px;overflow:hidden;position:relative;width:95vw;z-index:2}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog{align-self:flex-start;margin:8px auto;width:calc(100vw - 16px)}}.tox .tox-dialog-inline{z-index:1100}.tox .tox-dialog__header{align-items:center;background-color:#fff;border-bottom:none;color:#222f3e;display:flex;font-size:16px;justify-content:space-between;padding:8px 16px 0 16px;position:relative}.tox .tox-dialog__header .tox-button{z-index:1}.tox .tox-dialog__draghandle{cursor:grab;height:100%;left:0;position:absolute;top:0;width:100%}.tox .tox-dialog__draghandle:active{cursor:grabbing}.tox .tox-dialog__dismiss{margin-left:auto}.tox .tox-dialog__title{font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1.3;margin:0;text-transform:none}.tox .tox-dialog__body{color:#222f3e;display:flex;flex:1;-ms-flex-preferred-size:auto;font-size:16px;font-style:normal;font-weight:400;line-height:1.3;min-width:0;text-align:left;text-transform:none}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body{flex-direction:column}}.tox .tox-dialog__body-nav{align-items:flex-start;display:flex;flex-direction:column;padding:16px 16px}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox .tox-dialog__body-nav{flex-direction:row;-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:0}}.tox .tox-dialog__body-nav-item{border-bottom:2px solid transparent;color:rgba(34,47,62,.7);display:inline-block;font-size:14px;line-height:1.3;margin-bottom:8px;text-decoration:none;white-space:nowrap}.tox .tox-dialog__body-nav-item:focus{background-color:rgba(32,122,183,.1)}.tox .tox-dialog__body-nav-item--active{border-bottom:2px solid #207ab7;color:#207ab7}.tox .tox-dialog__body-content{box-sizing:border-box;display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto;max-height:650px;overflow:auto;-webkit-overflow-scrolling:touch;padding:16px 16px}.tox .tox-dialog__body-content>*{margin-bottom:0;margin-top:16px}.tox .tox-dialog__body-content>:first-child{margin-top:0}.tox .tox-dialog__body-content>:last-child{margin-bottom:0}.tox .tox-dialog__body-content>:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog__body-content a{color:#207ab7;cursor:pointer;text-decoration:none}.tox .tox-dialog__body-content a:focus,.tox .tox-dialog__body-content a:hover{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content a:active{color:#185d8c;text-decoration:none}.tox .tox-dialog__body-content svg{fill:#222f3e}.tox .tox-dialog__body-content ul{display:block;list-style-type:disc;margin-bottom:16px;-webkit-margin-end:0;margin-inline-end:0;-webkit-margin-start:0;margin-inline-start:0;-webkit-padding-start:2.5rem;padding-inline-start:2.5rem}.tox .tox-dialog__body-content .tox-form__group h1{color:#222f3e;font-size:20px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group h2{color:#222f3e;font-size:16px;font-style:normal;font-weight:700;letter-spacing:normal;margin-bottom:16px;margin-top:2rem;text-transform:none}.tox .tox-dialog__body-content .tox-form__group p{margin-bottom:16px}.tox .tox-dialog__body-content .tox-form__group h1:first-child,.tox .tox-dialog__body-content .tox-form__group h2:first-child,.tox .tox-dialog__body-content .tox-form__group p:first-child{margin-top:0}.tox .tox-dialog__body-content .tox-form__group h1:last-child,.tox .tox-dialog__body-content .tox-form__group h2:last-child,.tox .tox-dialog__body-content .tox-form__group p:last-child{margin-bottom:0}.tox .tox-dialog__body-content .tox-form__group h1:only-child,.tox .tox-dialog__body-content .tox-form__group h2:only-child,.tox .tox-dialog__body-content .tox-form__group p:only-child{margin-bottom:0;margin-top:0}.tox .tox-dialog--width-lg{height:650px;max-width:1200px}.tox .tox-dialog--width-md{max-width:800px}.tox .tox-dialog--width-md .tox-dialog__body-content{overflow:auto}.tox .tox-dialog__body-content--centered{text-align:center}.tox .tox-dialog__footer{align-items:center;background-color:#fff;border-top:1px solid #ccc;display:flex;justify-content:space-between;padding:8px 16px}.tox .tox-dialog__footer-end,.tox .tox-dialog__footer-start{display:flex}.tox .tox-dialog__busy-spinner{align-items:center;background-color:rgba(255,255,255,.75);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:3}.tox .tox-dialog__table{border-collapse:collapse;width:100%}.tox .tox-dialog__table thead th{font-weight:700;padding-bottom:8px}.tox .tox-dialog__table tbody tr{border-bottom:1px solid #ccc}.tox .tox-dialog__table tbody tr:last-child{border-bottom:none}.tox .tox-dialog__table td{padding-bottom:8px;padding-top:8px}.tox .tox-dialog__popups{position:absolute;width:100%;z-index:1100}.tox .tox-dialog__body-iframe{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-iframe .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox .tox-dialog-dock-fadeout{opacity:0;visibility:hidden}.tox .tox-dialog-dock-fadein{opacity:1;visibility:visible}.tox .tox-dialog-dock-transition{transition:visibility 0s linear .3s,opacity .3s ease}.tox .tox-dialog-dock-transition.tox-dialog-dock-fadein{transition-delay:0s}.tox.tox-platform-ie .tox-dialog-wrap{position:-ms-device-fixed}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav{margin-right:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox:not([dir=rtl]) .tox-dialog__body-nav-item:not(:first-child){margin-left:8px}}.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-end>*,.tox:not([dir=rtl]) .tox-dialog__footer .tox-dialog__footer-start>*{margin-left:8px}.tox[dir=rtl] .tox-dialog__body{text-align:right}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav{margin-left:0}}@media only screen and (max-width:767px){body:not(.tox-force-desktop) .tox[dir=rtl] .tox-dialog__body-nav-item:not(:first-child){margin-right:8px}}.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-end>*,.tox[dir=rtl] .tox-dialog__footer .tox-dialog__footer-start>*{margin-right:8px}body.tox-dialog__disable-scroll{overflow:hidden}.tox .tox-dropzone-container{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dropzone{align-items:center;background:#fff;border:2px dashed #ccc;box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;min-height:100px;padding:10px}.tox .tox-dropzone p{color:rgba(34,47,62,.7);margin:0 0 16px 0}.tox .tox-edit-area{display:flex;flex:1;-ms-flex-preferred-size:auto;overflow:hidden;position:relative}.tox .tox-edit-area__iframe{background-color:#fff;border:0;box-sizing:border-box;flex:1;-ms-flex-preferred-size:auto;height:100%;position:absolute;width:100%}.tox.tox-inline-edit-area{border:1px dotted #ccc}.tox .tox-editor-container{display:flex;flex:1 1 auto;flex-direction:column;overflow:hidden}.tox .tox-editor-header{z-index:1}.tox:not(.tox-tinymce-inline) .tox-editor-header{box-shadow:none;transition:box-shadow .5s}.tox.tox-tinymce--toolbar-bottom .tox-editor-header,.tox.tox-tinymce-inline .tox-editor-header{margin-bottom:-1px}.tox.tox-tinymce--toolbar-sticky-on .tox-editor-header{background-color:transparent;box-shadow:0 4px 4px -3px rgba(0,0,0,.25)}.tox-editor-dock-fadeout{opacity:0;visibility:hidden}.tox-editor-dock-fadein{opacity:1;visibility:visible}.tox-editor-dock-transition{transition:visibility 0s linear .25s,opacity .25s ease}.tox-editor-dock-transition.tox-editor-dock-fadein{transition-delay:0s}.tox .tox-control-wrap{flex:1;position:relative}.tox .tox-control-wrap:not(.tox-control-wrap--status-invalid) .tox-control-wrap__status-icon-invalid,.tox .tox-control-wrap:not(.tox-control-wrap--status-unknown) .tox-control-wrap__status-icon-unknown,.tox .tox-control-wrap:not(.tox-control-wrap--status-valid) .tox-control-wrap__status-icon-valid{display:none}.tox .tox-control-wrap svg{display:block}.tox .tox-control-wrap__status-icon-wrap{position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-control-wrap__status-icon-invalid svg{fill:#c00}.tox .tox-control-wrap__status-icon-unknown svg{fill:orange}.tox .tox-control-wrap__status-icon-valid svg{fill:green}.tox:not([dir=rtl]) .tox-control-wrap--status-invalid .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-unknown .tox-textfield,.tox:not([dir=rtl]) .tox-control-wrap--status-valid .tox-textfield{padding-right:32px}.tox:not([dir=rtl]) .tox-control-wrap__status-icon-wrap{right:4px}.tox[dir=rtl] .tox-control-wrap--status-invalid .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-unknown .tox-textfield,.tox[dir=rtl] .tox-control-wrap--status-valid .tox-textfield{padding-left:32px}.tox[dir=rtl] .tox-control-wrap__status-icon-wrap{left:4px}.tox .tox-autocompleter{max-width:25em}.tox .tox-autocompleter .tox-menu{max-width:25em}.tox .tox-autocompleter .tox-autocompleter-highlight{font-weight:700}.tox .tox-color-input{display:flex;position:relative;z-index:1}.tox .tox-color-input .tox-textfield{z-index:-1}.tox .tox-color-input span{border-color:rgba(34,47,62,.2);border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;height:24px;position:absolute;top:6px;width:24px}.tox .tox-color-input span:focus:not([aria-disabled=true]),.tox .tox-color-input span:hover:not([aria-disabled=true]){border-color:#207ab7;cursor:pointer}.tox .tox-color-input span::before{background-image:linear-gradient(45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(-45deg,rgba(0,0,0,.25) 25%,transparent 25%),linear-gradient(45deg,transparent 75%,rgba(0,0,0,.25) 75%),linear-gradient(-45deg,transparent 75%,rgba(0,0,0,.25) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;border:1px solid #fff;border-radius:3px;box-sizing:border-box;content:'';height:24px;left:-1px;position:absolute;top:-1px;width:24px;z-index:-1}.tox .tox-color-input span[aria-disabled=true]{cursor:not-allowed}.tox:not([dir=rtl]) .tox-color-input .tox-textfield{padding-left:36px}.tox:not([dir=rtl]) .tox-color-input span{left:6px}.tox[dir=rtl] .tox-color-input .tox-textfield{padding-right:36px}.tox[dir=rtl] .tox-color-input span{right:6px}.tox .tox-label,.tox .tox-toolbar-label{color:rgba(34,47,62,.7);display:block;font-size:14px;font-style:normal;font-weight:400;line-height:1.3;padding:0 8px 0 0;text-transform:none;white-space:nowrap}.tox .tox-toolbar-label{padding:0 8px}.tox[dir=rtl] .tox-label{padding:0 0 0 8px}.tox .tox-form{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group{box-sizing:border-box;margin-bottom:4px}.tox .tox-form-group--maximize{flex:1}.tox .tox-form__group--error{color:#c00}.tox .tox-form__group--collection{display:flex}.tox .tox-form__grid{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between}.tox .tox-form__grid--2col>.tox-form__group{width:calc(50% - (8px / 2))}.tox .tox-form__grid--3col>.tox-form__group{width:calc(100% / 3 - (8px / 2))}.tox .tox-form__grid--4col>.tox-form__group{width:calc(25% - (8px / 2))}.tox .tox-form__controls-h-stack{align-items:center;display:flex}.tox .tox-form__group--inline{align-items:center;display:flex}.tox .tox-form__group--stretched{display:flex;flex:1;flex-direction:column;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-textarea{flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-form__group--stretched .tox-navobj :nth-child(2){flex:1;-ms-flex-preferred-size:auto;height:100%}.tox:not([dir=rtl]) .tox-form__controls-h-stack>:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-form__controls-h-stack>:not(:first-child){margin-right:4px}.tox .tox-lock.tox-locked .tox-lock-icon__unlock,.tox .tox-lock:not(.tox-locked) .tox-lock-icon__lock{display:none}.tox .tox-listboxfield .tox-listbox--select,.tox .tox-textarea,.tox .tox-textfield,.tox .tox-toolbar-textfield{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-textarea[disabled],.tox .tox-textfield[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listboxfield .tox-listbox--select:focus,.tox .tox-textarea:focus,.tox .tox-textfield:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-toolbar-textfield{border-width:0;margin-bottom:3px;margin-top:2px;max-width:250px}.tox .tox-naked-btn{background-color:transparent;border:0;border-color:transparent;box-shadow:unset;color:#207ab7;cursor:pointer;display:block;margin:0;padding:0}.tox .tox-naked-btn svg{display:block;fill:#222f3e}.tox:not([dir=rtl]) .tox-toolbar-textfield+*{margin-left:4px}.tox[dir=rtl] .tox-toolbar-textfield+*{margin-right:4px}.tox .tox-listboxfield{cursor:pointer;position:relative}.tox .tox-listboxfield .tox-listbox--select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-listbox__select-label{cursor:default;flex:1;margin:0 4px}.tox .tox-listbox__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-listbox__select-chevron svg{fill:#222f3e}.tox .tox-listboxfield .tox-listbox--select{align-items:center;display:flex}.tox:not([dir=rtl]) .tox-listboxfield svg{right:8px}.tox[dir=rtl] .tox-listboxfield svg{left:8px}.tox .tox-selectfield{cursor:pointer;position:relative}.tox .tox-selectfield select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#ccc;border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;color:#222f3e;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Oxygen-Sans,Ubuntu,Cantarell,\\\"Helvetica Neue\\\",sans-serif;font-size:16px;line-height:24px;margin:0;min-height:34px;outline:0;padding:5px 4.75px;resize:none;width:100%}.tox .tox-selectfield select[disabled]{background-color:#f2f2f2;color:rgba(34,47,62,.85);cursor:not-allowed}.tox .tox-selectfield select::-ms-expand{display:none}.tox .tox-selectfield select:focus{background-color:#fff;border-color:#207ab7;box-shadow:none;outline:0}.tox .tox-selectfield svg{pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"0\\\"],.tox:not([dir=rtl]) .tox-selectfield select[size=\\\"1\\\"]{padding-right:24px}.tox:not([dir=rtl]) .tox-selectfield svg{right:8px}.tox[dir=rtl] .tox-selectfield select[size=\\\"0\\\"],.tox[dir=rtl] .tox-selectfield select[size=\\\"1\\\"]{padding-left:24px}.tox[dir=rtl] .tox-selectfield svg{left:8px}.tox .tox-textarea{-webkit-appearance:textarea;-moz-appearance:textarea;appearance:textarea;white-space:pre-wrap}.tox-fullscreen{border:0;height:100%;margin:0;overflow:hidden;-ms-scroll-chaining:none;overscroll-behavior:none;padding:0;touch-action:pinch-zoom;width:100%}.tox.tox-tinymce.tox-fullscreen .tox-statusbar__resize-handle{display:none}.tox-shadowhost.tox-fullscreen,.tox.tox-tinymce.tox-fullscreen{left:0;position:fixed;top:0;z-index:1200}.tox.tox-tinymce.tox-fullscreen{background-color:transparent}.tox-fullscreen .tox.tox-tinymce-aux,.tox-fullscreen~.tox.tox-tinymce-aux{z-index:1201}.tox .tox-help__more-link{list-style:none;margin-top:1em}.tox .tox-image-tools{width:100%}.tox .tox-image-tools__toolbar{align-items:center;display:flex;justify-content:center}.tox .tox-image-tools__image{background-color:#666;height:380px;overflow:auto;position:relative;width:100%}.tox .tox-image-tools__image,.tox .tox-image-tools__image+.tox-image-tools__toolbar{margin-top:8px}.tox .tox-image-tools__image-bg{background:url(data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==)}.tox .tox-image-tools__toolbar>.tox-spacer{flex:1;-ms-flex-preferred-size:auto}.tox .tox-croprect-block{background:#000;opacity:.5;position:absolute;zoom:1}.tox .tox-croprect-handle{border:2px solid #fff;height:20px;left:0;position:absolute;top:0;width:20px}.tox .tox-croprect-handle-move{border:0;cursor:move;position:absolute}.tox .tox-croprect-handle-nw{border-width:2px 0 0 2px;cursor:nw-resize;left:100px;margin:-2px 0 0 -2px;top:100px}.tox .tox-croprect-handle-ne{border-width:2px 2px 0 0;cursor:ne-resize;left:200px;margin:-2px 0 0 -20px;top:100px}.tox .tox-croprect-handle-sw{border-width:0 0 2px 2px;cursor:sw-resize;left:100px;margin:-20px 2px 0 -2px;top:200px}.tox .tox-croprect-handle-se{border-width:0 2px 2px 0;cursor:se-resize;left:200px;margin:-20px 0 0 -20px;top:200px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-left:8px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-left:32px}.tox:not([dir=rtl]) .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-left:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider:not(:first-of-type){margin-right:8px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-button+.tox-slider{margin-right:32px}.tox[dir=rtl] .tox-image-tools__toolbar>.tox-slider+.tox-button{margin-right:32px}.tox .tox-insert-table-picker{display:flex;flex-wrap:wrap;width:170px}.tox .tox-insert-table-picker>div{border-color:#ccc;border-style:solid;border-width:0 1px 1px 0;box-sizing:border-box;height:17px;width:17px}.tox .tox-collection--list .tox-collection__group .tox-insert-table-picker{margin:-4px 0}.tox .tox-insert-table-picker .tox-insert-table-picker__selected{background-color:rgba(32,122,183,.5);border-color:rgba(32,122,183,.5)}.tox .tox-insert-table-picker__label{color:rgba(34,47,62,.7);display:block;font-size:14px;padding:4px;text-align:center;width:100%}.tox:not([dir=rtl]) .tox-insert-table-picker>div:nth-child(10n){border-right:0}.tox[dir=rtl] .tox-insert-table-picker>div:nth-child(10n+1){border-right:0}.tox .tox-menu{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 4px 8px 0 rgba(34,47,62,.1);display:inline-block;overflow:hidden;vertical-align:top;z-index:1150}.tox .tox-menu.tox-collection.tox-collection--list{padding:0}.tox .tox-menu.tox-collection.tox-collection--toolbar{padding:4px}.tox .tox-menu.tox-collection.tox-collection--grid{padding:4px}.tox .tox-menu__label blockquote,.tox .tox-menu__label code,.tox .tox-menu__label h1,.tox .tox-menu__label h2,.tox .tox-menu__label h3,.tox .tox-menu__label h4,.tox .tox-menu__label h5,.tox .tox-menu__label h6,.tox .tox-menu__label p{margin:0}.tox .tox-menubar{background:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\\\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 4px 0 4px}.tox.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-menubar{border-top:1px solid #ccc}.tox .tox-mbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0 4px;text-transform:none;width:auto}.tox .tox-mbtn[disabled]{background-color:transparent;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-mbtn:focus:not(:disabled){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn--active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active){background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-mbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-mbtn[disabled] .tox-mbtn__select-label{cursor:not-allowed}.tox .tox-mbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px;display:none}.tox .tox-notification{border-radius:3px;border-style:solid;border-width:1px;box-shadow:none;box-sizing:border-box;display:-ms-grid;display:grid;font-size:14px;font-weight:400;-ms-grid-columns:minmax(40px,1fr) auto minmax(40px,1fr);grid-template-columns:minmax(40px,1fr) auto minmax(40px,1fr);margin-top:4px;opacity:0;padding:4px;transition:transform .1s ease-in,opacity 150ms ease-in}.tox .tox-notification p{font-size:14px;font-weight:400}.tox .tox-notification a{cursor:pointer;text-decoration:underline}.tox .tox-notification--in{opacity:1}.tox .tox-notification--success{background-color:#e4eeda;border-color:#d7e6c8;color:#222f3e}.tox .tox-notification--success p{color:#222f3e}.tox .tox-notification--success a{color:#547831}.tox .tox-notification--success svg{fill:#222f3e}.tox .tox-notification--error{background-color:#f8dede;border-color:#f2bfbf;color:#222f3e}.tox .tox-notification--error p{color:#222f3e}.tox .tox-notification--error a{color:#c00}.tox .tox-notification--error svg{fill:#222f3e}.tox .tox-notification--warn,.tox .tox-notification--warning{background-color:#fffaea;border-color:#ffe89d;color:#222f3e}.tox .tox-notification--warn p,.tox .tox-notification--warning p{color:#222f3e}.tox .tox-notification--warn a,.tox .tox-notification--warning a{color:#222f3e}.tox .tox-notification--warn svg,.tox .tox-notification--warning svg{fill:#222f3e}.tox .tox-notification--info{background-color:#d9edf7;border-color:#779ecb;color:#222f3e}.tox .tox-notification--info p{color:#222f3e}.tox .tox-notification--info a{color:#222f3e}.tox .tox-notification--info svg{fill:#222f3e}.tox .tox-notification__body{-ms-grid-row-align:center;align-self:center;color:#222f3e;font-size:14px;-ms-grid-column-span:1;grid-column-end:3;-ms-grid-column:2;grid-column-start:2;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;text-align:center;white-space:normal;word-break:break-all;word-break:break-word}.tox .tox-notification__body>*{margin:0}.tox .tox-notification__body>*+*{margin-top:1rem}.tox .tox-notification__icon{-ms-grid-row-align:center;align-self:center;-ms-grid-column-span:1;grid-column-end:2;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification__icon svg{display:block}.tox .tox-notification__dismiss{-ms-grid-row-align:start;align-self:start;-ms-grid-column-span:1;grid-column-end:4;-ms-grid-column:3;grid-column-start:3;-ms-grid-row-span:1;grid-row-end:2;-ms-grid-row:1;grid-row-start:1;-ms-grid-column-align:end;justify-self:end}.tox .tox-notification .tox-progress-bar{-ms-grid-column-span:3;grid-column-end:4;-ms-grid-column:1;grid-column-start:1;-ms-grid-row-span:1;grid-row-end:3;-ms-grid-row:2;grid-row-start:2;-ms-grid-column-align:center;justify-self:center}.tox .tox-pop{display:inline-block;position:relative}.tox .tox-pop--resizing{transition:width .1s ease}.tox .tox-pop--resizing .tox-toolbar,.tox .tox-pop--resizing .tox-toolbar__group{flex-wrap:nowrap}.tox .tox-pop--transition{transition:.15s ease;transition-property:left,right,top,bottom}.tox .tox-pop--transition::after,.tox .tox-pop--transition::before{transition:all .15s,visibility 0s,opacity 75ms ease 75ms}.tox .tox-pop__dialog{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15);min-width:0;overflow:hidden}.tox .tox-pop__dialog>:not(.tox-toolbar){margin:4px 4px 4px 8px}.tox .tox-pop__dialog .tox-toolbar{background-color:transparent;margin-bottom:-1px}.tox .tox-pop::after,.tox .tox-pop::before{border-style:solid;content:'';display:block;height:0;opacity:1;position:absolute;width:0}.tox .tox-pop.tox-pop--inset::after,.tox .tox-pop.tox-pop--inset::before{opacity:0;transition:all 0s .15s,visibility 0s,opacity 75ms ease}.tox .tox-pop.tox-pop--bottom::after,.tox .tox-pop.tox-pop--bottom::before{left:50%;top:100%}.tox .tox-pop.tox-pop--bottom::after{border-color:#fff transparent transparent transparent;border-width:8px;margin-left:-8px;margin-top:-1px}.tox .tox-pop.tox-pop--bottom::before{border-color:#ccc transparent transparent transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--top::after,.tox .tox-pop.tox-pop--top::before{left:50%;top:0;transform:translateY(-100%)}.tox .tox-pop.tox-pop--top::after{border-color:transparent transparent #fff transparent;border-width:8px;margin-left:-8px;margin-top:1px}.tox .tox-pop.tox-pop--top::before{border-color:transparent transparent #ccc transparent;border-width:9px;margin-left:-9px}.tox .tox-pop.tox-pop--left::after,.tox .tox-pop.tox-pop--left::before{left:0;top:calc(50% - 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--left::after{border-color:transparent #fff transparent transparent;border-width:8px;margin-left:-15px}.tox .tox-pop.tox-pop--left::before{border-color:transparent #ccc transparent transparent;border-width:10px;margin-left:-19px}.tox .tox-pop.tox-pop--right::after,.tox .tox-pop.tox-pop--right::before{left:100%;top:calc(50% + 1px);transform:translateY(-50%)}.tox .tox-pop.tox-pop--right::after{border-color:transparent transparent transparent #fff;border-width:8px;margin-left:-1px}.tox .tox-pop.tox-pop--right::before{border-color:transparent transparent transparent #ccc;border-width:10px;margin-left:-1px}.tox .tox-pop.tox-pop--align-left::after,.tox .tox-pop.tox-pop--align-left::before{left:20px}.tox .tox-pop.tox-pop--align-right::after,.tox .tox-pop.tox-pop--align-right::before{left:calc(100% - 20px)}.tox .tox-sidebar-wrap{display:flex;flex-direction:row;flex-grow:1;-ms-flex-preferred-size:0;min-height:0}.tox .tox-sidebar{background-color:#fff;display:flex;flex-direction:row;justify-content:flex-end}.tox .tox-sidebar__slider{display:flex;overflow:hidden}.tox .tox-sidebar__pane-container{display:flex}.tox .tox-sidebar__pane{display:flex}.tox .tox-sidebar--sliding-closed{opacity:0}.tox .tox-sidebar--sliding-open{opacity:1}.tox .tox-sidebar--sliding-growing,.tox .tox-sidebar--sliding-shrinking{transition:width .5s ease,opacity .5s ease}.tox .tox-selector{background-color:#4099ff;border-color:#4099ff;border-style:solid;border-width:1px;box-sizing:border-box;display:inline-block;height:10px;position:absolute;width:10px}.tox.tox-platform-touch .tox-selector{height:12px;width:12px}.tox .tox-slider{align-items:center;display:flex;flex:1;-ms-flex-preferred-size:auto;height:24px;justify-content:center;position:relative}.tox .tox-slider__rail{background-color:transparent;border:1px solid #ccc;border-radius:3px;height:10px;min-width:120px;width:100%}.tox .tox-slider__handle{background-color:#207ab7;border:2px solid #185d8c;border-radius:3px;box-shadow:none;height:24px;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:14px}.tox .tox-source-code{overflow:auto}.tox .tox-spinner{display:flex}.tox .tox-spinner>div{animation:tam-bouncing-dots 1.5s ease-in-out 0s infinite both;background-color:rgba(34,47,62,.7);border-radius:100%;height:8px;width:8px}.tox .tox-spinner>div:nth-child(1){animation-delay:-.32s}.tox .tox-spinner>div:nth-child(2){animation-delay:-.16s}@keyframes tam-bouncing-dots{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.tox:not([dir=rtl]) .tox-spinner>div:not(:first-child){margin-left:4px}.tox[dir=rtl] .tox-spinner>div:not(:first-child){margin-right:4px}.tox .tox-statusbar{align-items:center;background-color:#fff;border-top:1px solid #ccc;color:rgba(34,47,62,.7);display:flex;flex:0 0 auto;font-size:12px;font-weight:400;height:18px;overflow:hidden;padding:0 8px;position:relative;text-transform:uppercase}.tox .tox-statusbar__text-container{display:flex;flex:1 1 auto;justify-content:flex-end;overflow:hidden}.tox .tox-statusbar__path{display:flex;flex:1 1 auto;margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tox .tox-statusbar__path>*{display:inline;white-space:nowrap}.tox .tox-statusbar__wordcount{flex:0 0 auto;margin-left:1ch}.tox .tox-statusbar a,.tox .tox-statusbar__path-item,.tox .tox-statusbar__wordcount{color:rgba(34,47,62,.7);text-decoration:none}.tox .tox-statusbar a:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar a:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__path-item:hover:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:focus:not(:disabled):not([aria-disabled=true]),.tox .tox-statusbar__wordcount:hover:not(:disabled):not([aria-disabled=true]){cursor:pointer;text-decoration:underline}.tox .tox-statusbar__resize-handle{align-items:flex-end;align-self:stretch;cursor:nwse-resize;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;margin-right:-8px;padding-left:1ch}.tox .tox-statusbar__resize-handle svg{display:block;fill:rgba(34,47,62,.7)}.tox .tox-statusbar__resize-handle:focus svg{background-color:#dee0e2;border-radius:1px;box-shadow:0 0 0 2px #dee0e2}.tox:not([dir=rtl]) .tox-statusbar__path>*{margin-right:4px}.tox:not([dir=rtl]) .tox-statusbar__branding{margin-left:1ch}.tox[dir=rtl] .tox-statusbar{flex-direction:row-reverse}.tox[dir=rtl] .tox-statusbar__path>*{margin-left:4px}.tox .tox-throbber{z-index:1299}.tox .tox-throbber__busy-spinner{align-items:center;background-color:rgba(255,255,255,.6);bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0}.tox .tox-tbtn{align-items:center;background:0 0;border:0;border-radius:3px;box-shadow:none;color:#222f3e;display:flex;flex:0 0 auto;font-size:14px;font-style:normal;font-weight:400;height:34px;justify-content:center;margin:2px 0 3px 0;outline:0;overflow:hidden;padding:0;text-transform:none;width:34px}.tox .tox-tbtn svg{display:block;fill:#222f3e}.tox .tox-tbtn.tox-tbtn-more{padding-left:5px;padding-right:5px;width:inherit}.tox .tox-tbtn:focus{background:#dee0e2;border:0;box-shadow:none}.tox .tox-tbtn:hover{background:#dee0e2;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:hover svg{fill:#222f3e}.tox .tox-tbtn:active{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn:active svg{fill:#222f3e}.tox .tox-tbtn--disabled,.tox .tox-tbtn--disabled:hover,.tox .tox-tbtn:disabled,.tox .tox-tbtn:disabled:hover{background:0 0;border:0;box-shadow:none;color:rgba(34,47,62,.5);cursor:not-allowed}.tox .tox-tbtn--disabled svg,.tox .tox-tbtn--disabled:hover svg,.tox .tox-tbtn:disabled svg,.tox .tox-tbtn:disabled:hover svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--enabled,.tox .tox-tbtn--enabled:hover{background:#c8cbcf;border:0;box-shadow:none;color:#222f3e}.tox .tox-tbtn--enabled:hover>*,.tox .tox-tbtn--enabled>*{transform:none}.tox .tox-tbtn--enabled svg,.tox .tox-tbtn--enabled:hover svg{fill:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled){color:#222f3e}.tox .tox-tbtn:focus:not(.tox-tbtn--disabled) svg{fill:#222f3e}.tox .tox-tbtn:active>*{transform:none}.tox .tox-tbtn--md{height:51px;width:51px}.tox .tox-tbtn--lg{flex-direction:column;height:68px;width:68px}.tox .tox-tbtn--return{-ms-grid-row-align:stretch;align-self:stretch;height:unset;width:16px}.tox .tox-tbtn--labeled{padding:0 4px;width:unset}.tox .tox-tbtn__vlabel{display:block;font-size:10px;font-weight:400;letter-spacing:-.025em;margin-bottom:4px;white-space:nowrap}.tox .tox-tbtn--select{margin:2px 0 3px 0;padding:0 4px;width:auto}.tox .tox-tbtn__select-label{cursor:default;font-weight:400;margin:0 4px}.tox .tox-tbtn__select-chevron{align-items:center;display:flex;justify-content:center;width:16px}.tox .tox-tbtn__select-chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-tbtn--bespoke .tox-tbtn__select-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:7em}.tox .tox-split-button{border:0;border-radius:3px;box-sizing:border-box;display:flex;margin:2px 0 3px 0;overflow:hidden}.tox .tox-split-button:hover{box-shadow:0 0 0 1px #dee0e2 inset}.tox .tox-split-button:focus{background:#dee0e2;box-shadow:none;color:#222f3e}.tox .tox-split-button>*{border-radius:0}.tox .tox-split-button__chevron{width:16px}.tox .tox-split-button__chevron svg{fill:rgba(34,47,62,.5)}.tox .tox-split-button .tox-tbtn{margin:0}.tox.tox-platform-touch .tox-split-button .tox-tbtn:first-child{width:30px}.tox.tox-platform-touch .tox-split-button__chevron{width:20px}.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:focus,.tox .tox-split-button.tox-tbtn--disabled .tox-tbtn:hover,.tox .tox-split-button.tox-tbtn--disabled:focus,.tox .tox-split-button.tox-tbtn--disabled:hover{background:0 0;box-shadow:none;color:rgba(34,47,62,.5)}.tox .tox-toolbar-overlord{background-color:#fff}.tox .tox-toolbar,.tox .tox-toolbar__overflow,.tox .tox-toolbar__primary{background:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg height='39px' viewBox='0 0 40 39px' width='40' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' y='38px' width='100' height='1' fill='%23cccccc'/%3E%3C/svg%3E\\\") left 0 top 0 #fff;background-color:#fff;display:flex;flex:0 0 auto;flex-shrink:0;flex-wrap:wrap;padding:0 0}.tox .tox-toolbar__overflow.tox-toolbar__overflow--closed{height:0;opacity:0;padding-bottom:0;padding-top:0;visibility:hidden}.tox .tox-toolbar__overflow--growing{transition:height .3s ease,opacity .2s linear .1s}.tox .tox-toolbar__overflow--shrinking{transition:opacity .3s ease,height .2s linear .1s,visibility 0s linear .3s}.tox .tox-menubar+.tox-toolbar,.tox .tox-menubar+.tox-toolbar-overlord .tox-toolbar__primary{border-top:1px solid #ccc;margin-top:-1px}.tox .tox-toolbar--scrolling{flex-wrap:nowrap;overflow-x:auto}.tox .tox-pop .tox-toolbar{border-width:0}.tox .tox-toolbar--no-divider{background-image:none}.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar-overlord:first-child .tox-toolbar__primary,.tox-tinymce:not(.tox-tinymce-inline) .tox-editor-header:not(:first-child) .tox-toolbar:first-child{border-top:1px solid #ccc}.tox.tox-tinymce-aux .tox-toolbar__overflow{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 1px 3px rgba(0,0,0,.15)}.tox .tox-toolbar__group{align-items:center;display:flex;flex-wrap:wrap;margin:0 0;padding:0 4px 0 4px}.tox .tox-toolbar__group--pull-right{margin-left:auto}.tox .tox-toolbar--scrolling .tox-toolbar__group{flex-shrink:0;flex-wrap:nowrap}.tox:not([dir=rtl]) .tox-toolbar__group:not(:last-of-type){border-right:1px solid #ccc}.tox[dir=rtl] .tox-toolbar__group:not(:last-of-type){border-left:1px solid #ccc}.tox .tox-tooltip{display:inline-block;padding:8px;position:relative}.tox .tox-tooltip__body{background-color:#222f3e;border-radius:3px;box-shadow:0 2px 4px rgba(34,47,62,.3);color:rgba(255,255,255,.75);font-size:14px;font-style:normal;font-weight:400;padding:4px 8px;text-transform:none}.tox .tox-tooltip__arrow{position:absolute}.tox .tox-tooltip--down .tox-tooltip__arrow{border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid #222f3e;bottom:0;left:50%;position:absolute;transform:translateX(-50%)}.tox .tox-tooltip--up .tox-tooltip__arrow{border-bottom:8px solid #222f3e;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;position:absolute;top:0;transform:translateX(-50%)}.tox .tox-tooltip--right .tox-tooltip__arrow{border-bottom:8px solid transparent;border-left:8px solid #222f3e;border-top:8px solid transparent;position:absolute;right:0;top:50%;transform:translateY(-50%)}.tox .tox-tooltip--left .tox-tooltip__arrow{border-bottom:8px solid transparent;border-right:8px solid #222f3e;border-top:8px solid transparent;left:0;position:absolute;top:50%;transform:translateY(-50%)}.tox .tox-well{border:1px solid #ccc;border-radius:3px;padding:8px;width:100%}.tox .tox-well>:first-child{margin-top:0}.tox .tox-well>:last-child{margin-bottom:0}.tox .tox-well>:only-child{margin:0}.tox .tox-custom-editor{border:1px solid #ccc;border-radius:3px;display:flex;flex:1;position:relative}.tox .tox-dialog-loading::before{background-color:rgba(0,0,0,.5);content:\\\"\\\";height:100%;position:absolute;width:100%;z-index:1000}.tox .tox-tab{cursor:pointer}.tox .tox-dialog__content-js{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-dialog__body-content .tox-collection{display:flex;flex:1;-ms-flex-preferred-size:auto}.tox .tox-image-tools-edit-panel{height:60px}.tox .tox-image-tools__sidebar{height:60px}\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","import { Controller } from \"stimulus\"\nimport \"easy-autocomplete\"\n\nexport default class extends Controller {\n static targets = [\"myoutput\"]\n\n connect() {\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString)\n const searchterm = urlParams.get('q')\n\n if (searchterm != null && searchterm != \"\") {\n this.myoutputTarget.textContent = 'Last searched: ' + searchterm\n }\n\n document.addEventListener(\"turbolinks:load\", function() {\n var $input = $(\"*[data-behavior='autocomplete']\")\n\n var options = {\n url: function(phrase) {\n return \"/globalsearch.json?q=\" + phrase;\n },\n getValue: \"autocomplete\",\n categories: [{\n listLocation: \"profiles\",\n header: \"Profile\",\n },\n {\n listLocation: \"competitions\",\n header: \"Competition\",\n },\n {\n listLocation: \"places\",\n header: \"Places\",\n },\n {\n listLocation: \"posts\",\n header: \"Posts\",\n },\n {\n listLocation: \"users\",\n header: \"Users\",\n }\n ],\n list: {\n onChooseEvent: function() {\n var url = $input.getSelectedItemData().url\n $input.val(\"\")\n Turbolinks.visit(url)\n }\n },\n adjustWidth: false,\n theme: \"plate-dark\",\n requestDelay: 500\n\n // test with dummy data\n // data: [\"John\", \"Paul\", \"George\", \"Ringo\"]\n }\n\n if ($input != null) {\n $input.easyAutocomplete(options)\n }\n });\n }\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\n/*\r\n * easy-autocomplete\r\n * jQuery plugin for autocompletion\r\n * \r\n * @author Łukasz Pawełczak (http://github.com/pawelczak)\r\n * @version 1.3.5\r\n * Copyright License: \r\n */\n\n/*\r\n * EasyAutocomplete - Configuration \r\n */\nvar EasyAutocomplete = function (scope) {\n scope.Configuration = function Configuration(options) {\n var defaults = {\n data: \"list-required\",\n url: \"list-required\",\n dataType: \"json\",\n listLocation: function listLocation(data) {\n return data;\n },\n xmlElementName: \"\",\n getValue: function getValue(element) {\n return element;\n },\n autocompleteOff: true,\n placeholder: false,\n ajaxCallback: function ajaxCallback() {},\n matchResponseProperty: false,\n list: {\n sort: {\n enabled: false,\n method: function method(a, b) {\n a = defaults.getValue(a);\n b = defaults.getValue(b);\n\n if (a < b) {\n return -1;\n }\n\n if (a > b) {\n return 1;\n }\n\n return 0;\n }\n },\n maxNumberOfElements: 6,\n hideOnEmptyPhrase: true,\n match: {\n enabled: false,\n caseSensitive: false,\n method: function method(element, phrase) {\n if (element.search(phrase) > -1) {\n return true;\n } else {\n return false;\n }\n }\n },\n showAnimation: {\n type: \"normal\",\n //normal|slide|fade\n time: 400,\n callback: function callback() {}\n },\n hideAnimation: {\n type: \"normal\",\n time: 400,\n callback: function callback() {}\n },\n\n /* Events */\n onClickEvent: function onClickEvent() {},\n onSelectItemEvent: function onSelectItemEvent() {},\n onLoadEvent: function onLoadEvent() {},\n onChooseEvent: function onChooseEvent() {},\n onKeyEnterEvent: function onKeyEnterEvent() {},\n onMouseOverEvent: function onMouseOverEvent() {},\n onMouseOutEvent: function onMouseOutEvent() {},\n onShowListEvent: function onShowListEvent() {},\n onHideListEvent: function onHideListEvent() {}\n },\n highlightPhrase: true,\n theme: \"\",\n cssClasses: \"\",\n minCharNumber: 0,\n requestDelay: 0,\n adjustWidth: true,\n ajaxSettings: {},\n preparePostData: function preparePostData(data, inputPhrase) {\n return data;\n },\n loggerEnabled: true,\n template: \"\",\n categoriesAssigned: false,\n categories: [{\n maxNumberOfElements: 4\n }]\n };\n var externalObjects = [\"ajaxSettings\", \"template\"];\n\n this.get = function (propertyName) {\n return defaults[propertyName];\n };\n\n this.equals = function (name, value) {\n if (isAssigned(name)) {\n if (defaults[name] === value) {\n return true;\n }\n }\n\n return false;\n };\n\n this.checkDataUrlProperties = function () {\n if (defaults.url === \"list-required\" && defaults.data === \"list-required\") {\n return false;\n }\n\n return true;\n };\n\n this.checkRequiredProperties = function () {\n for (var propertyName in defaults) {\n if (defaults[propertyName] === \"required\") {\n logger.error(\"Option \" + propertyName + \" must be defined\");\n return false;\n }\n }\n\n return true;\n };\n\n this.printPropertiesThatDoesntExist = function (consol, optionsToCheck) {\n printPropertiesThatDoesntExist(consol, optionsToCheck);\n };\n\n prepareDefaults();\n mergeOptions();\n\n if (defaults.loggerEnabled === true) {\n printPropertiesThatDoesntExist(console, options);\n }\n\n addAjaxSettings();\n processAfterMerge();\n\n function prepareDefaults() {\n if (options.dataType === \"xml\") {\n if (!options.getValue) {\n options.getValue = function (element) {\n return $(element).text();\n };\n }\n\n if (!options.list) {\n options.list = {};\n }\n\n if (!options.list.sort) {\n options.list.sort = {};\n }\n\n options.list.sort.method = function (a, b) {\n a = options.getValue(a);\n b = options.getValue(b);\n\n if (a < b) {\n return -1;\n }\n\n if (a > b) {\n return 1;\n }\n\n return 0;\n };\n\n if (!options.list.match) {\n options.list.match = {};\n }\n\n options.list.match.method = function (element, phrase) {\n if (element.search(phrase) > -1) {\n return true;\n } else {\n return false;\n }\n };\n }\n\n if (options.categories !== undefined && options.categories instanceof Array) {\n var categories = [];\n\n for (var i = 0, length = options.categories.length; i < length; i += 1) {\n var category = options.categories[i];\n\n for (var property in defaults.categories[0]) {\n if (category[property] === undefined) {\n category[property] = defaults.categories[0][property];\n }\n }\n\n categories.push(category);\n }\n\n options.categories = categories;\n }\n }\n\n function mergeOptions() {\n defaults = mergeObjects(defaults, options);\n\n function mergeObjects(source, target) {\n var mergedObject = source || {};\n\n for (var propertyName in source) {\n if (target[propertyName] !== undefined && target[propertyName] !== null) {\n if (_typeof(target[propertyName]) !== \"object\" || target[propertyName] instanceof Array) {\n mergedObject[propertyName] = target[propertyName];\n } else {\n mergeObjects(source[propertyName], target[propertyName]);\n }\n }\n }\n /* If data is an object */\n\n\n if (target.data !== undefined && target.data !== null && _typeof(target.data) === \"object\") {\n mergedObject.data = target.data;\n }\n\n return mergedObject;\n }\n }\n\n function processAfterMerge() {\n if (defaults.url !== \"list-required\" && typeof defaults.url !== \"function\") {\n var defaultUrl = defaults.url;\n\n defaults.url = function () {\n return defaultUrl;\n };\n }\n\n if (defaults.ajaxSettings.url !== undefined && typeof defaults.ajaxSettings.url !== \"function\") {\n var defaultUrl = defaults.ajaxSettings.url;\n\n defaults.ajaxSettings.url = function () {\n return defaultUrl;\n };\n }\n\n if (typeof defaults.listLocation === \"string\") {\n var defaultlistLocation = defaults.listLocation;\n\n if (defaults.dataType.toUpperCase() === \"XML\") {\n defaults.listLocation = function (data) {\n return $(data).find(defaultlistLocation);\n };\n } else {\n defaults.listLocation = function (data) {\n return data[defaultlistLocation];\n };\n }\n }\n\n if (typeof defaults.getValue === \"string\") {\n var defaultsGetValue = defaults.getValue;\n\n defaults.getValue = function (element) {\n return element[defaultsGetValue];\n };\n }\n\n if (options.categories !== undefined) {\n defaults.categoriesAssigned = true;\n }\n }\n\n function addAjaxSettings() {\n if (options.ajaxSettings !== undefined && _typeof(options.ajaxSettings) === \"object\") {\n defaults.ajaxSettings = options.ajaxSettings;\n } else {\n defaults.ajaxSettings = {};\n }\n }\n\n function isAssigned(name) {\n if (defaults[name] !== undefined && defaults[name] !== null) {\n return true;\n } else {\n return false;\n }\n }\n\n function printPropertiesThatDoesntExist(consol, optionsToCheck) {\n checkPropertiesIfExist(defaults, optionsToCheck);\n\n function checkPropertiesIfExist(source, target) {\n for (var property in target) {\n if (source[property] === undefined) {\n consol.log(\"Property '\" + property + \"' does not exist in EasyAutocomplete options API.\");\n }\n\n if (_typeof(source[property]) === \"object\" && $.inArray(property, externalObjects) === -1) {\n checkPropertiesIfExist(source[property], target[property]);\n }\n }\n }\n }\n };\n\n return scope;\n}(EasyAutocomplete || {});\n/*\r\n * EasyAutocomplete - Logger \r\n */\n\n\nvar EasyAutocomplete = function (scope) {\n scope.Logger = function Logger() {\n this.error = function (message) {\n console.log(\"ERROR: \" + message);\n };\n\n this.warning = function (message) {\n console.log(\"WARNING: \" + message);\n };\n };\n\n return scope;\n}(EasyAutocomplete || {});\n/*\r\n * EasyAutocomplete - Constans\r\n */\n\n\nvar EasyAutocomplete = function (scope) {\n scope.Constans = function Constans() {\n var constants = {\n CONTAINER_CLASS: \"easy-autocomplete-container\",\n CONTAINER_ID: \"eac-container-\",\n WRAPPER_CSS_CLASS: \"easy-autocomplete\"\n };\n\n this.getValue = function (propertyName) {\n return constants[propertyName];\n };\n };\n\n return scope;\n}(EasyAutocomplete || {});\n/*\r\n * EasyAutocomplete - ListBuilderService \r\n *\r\n * @author Łukasz Pawełczak \r\n *\r\n */\n\n\nvar EasyAutocomplete = function (scope) {\n scope.ListBuilderService = function ListBuilderService(configuration, proccessResponseData) {\n this.init = function (data) {\n var listBuilder = [],\n builder = {};\n builder.data = configuration.get(\"listLocation\")(data);\n builder.getValue = configuration.get(\"getValue\");\n builder.maxListSize = configuration.get(\"list\").maxNumberOfElements;\n listBuilder.push(builder);\n return listBuilder;\n };\n\n this.updateCategories = function (listBuilder, data) {\n if (configuration.get(\"categoriesAssigned\")) {\n listBuilder = [];\n\n for (var i = 0; i < configuration.get(\"categories\").length; i += 1) {\n var builder = convertToListBuilder(configuration.get(\"categories\")[i], data);\n listBuilder.push(builder);\n }\n }\n\n return listBuilder;\n };\n\n this.convertXml = function (listBuilder) {\n if (configuration.get(\"dataType\").toUpperCase() === \"XML\") {\n for (var i = 0; i < listBuilder.length; i += 1) {\n listBuilder[i].data = convertXmlToList(listBuilder[i]);\n }\n }\n\n return listBuilder;\n };\n\n this.processData = function (listBuilder, inputPhrase) {\n for (var i = 0, length = listBuilder.length; i < length; i += 1) {\n listBuilder[i].data = proccessResponseData(configuration, listBuilder[i], inputPhrase);\n }\n\n return listBuilder;\n };\n\n this.checkIfDataExists = function (listBuilders) {\n for (var i = 0, length = listBuilders.length; i < length; i += 1) {\n if (listBuilders[i].data !== undefined && listBuilders[i].data instanceof Array) {\n if (listBuilders[i].data.length > 0) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n function convertToListBuilder(category, data) {\n var builder = {};\n\n if (configuration.get(\"dataType\").toUpperCase() === \"XML\") {\n builder = convertXmlToListBuilder();\n } else {\n builder = convertDataToListBuilder();\n }\n\n if (category.header !== undefined) {\n builder.header = category.header;\n }\n\n if (category.maxNumberOfElements !== undefined) {\n builder.maxNumberOfElements = category.maxNumberOfElements;\n }\n\n if (configuration.get(\"list\").maxNumberOfElements !== undefined) {\n builder.maxListSize = configuration.get(\"list\").maxNumberOfElements;\n }\n\n if (category.getValue !== undefined) {\n if (typeof category.getValue === \"string\") {\n var defaultsGetValue = category.getValue;\n\n builder.getValue = function (element) {\n return element[defaultsGetValue];\n };\n } else if (typeof category.getValue === \"function\") {\n builder.getValue = category.getValue;\n }\n } else {\n builder.getValue = configuration.get(\"getValue\");\n }\n\n return builder;\n\n function convertXmlToListBuilder() {\n var builder = {},\n listLocation;\n\n if (category.xmlElementName !== undefined) {\n builder.xmlElementName = category.xmlElementName;\n }\n\n if (category.listLocation !== undefined) {\n listLocation = category.listLocation;\n } else if (configuration.get(\"listLocation\") !== undefined) {\n listLocation = configuration.get(\"listLocation\");\n }\n\n if (listLocation !== undefined) {\n if (typeof listLocation === \"string\") {\n builder.data = $(data).find(listLocation);\n } else if (typeof listLocation === \"function\") {\n builder.data = listLocation(data);\n }\n } else {\n builder.data = data;\n }\n\n return builder;\n }\n\n function convertDataToListBuilder() {\n var builder = {};\n\n if (category.listLocation !== undefined) {\n if (typeof category.listLocation === \"string\") {\n builder.data = data[category.listLocation];\n } else if (typeof category.listLocation === \"function\") {\n builder.data = category.listLocation(data);\n }\n } else {\n builder.data = data;\n }\n\n return builder;\n }\n }\n\n function convertXmlToList(builder) {\n var simpleList = [];\n\n if (builder.xmlElementName === undefined) {\n builder.xmlElementName = configuration.get(\"xmlElementName\");\n }\n\n $(builder.data).find(builder.xmlElementName).each(function () {\n simpleList.push(this);\n });\n return simpleList;\n }\n };\n\n return scope;\n}(EasyAutocomplete || {});\n/*\r\n * EasyAutocomplete - Data proccess module\r\n *\r\n * Process list to display:\r\n * - sort \r\n * - decrease number to specific number\r\n * - show only matching list\r\n *\r\n */\n\n\nvar EasyAutocomplete = function (scope) {\n scope.proccess = function proccessData(config, listBuilder, phrase) {\n scope.proccess.match = match;\n var list = listBuilder.data,\n inputPhrase = phrase; //TODO REFACTOR\n\n list = findMatch(list, inputPhrase);\n list = reduceElementsInList(list);\n list = sort(list);\n return list;\n\n function findMatch(list, phrase) {\n var preparedList = [],\n value = \"\";\n\n if (config.get(\"list\").match.enabled) {\n for (var i = 0, length = list.length; i < length; i += 1) {\n value = config.get(\"getValue\")(list[i]);\n\n if (match(value, phrase)) {\n preparedList.push(list[i]);\n }\n }\n } else {\n preparedList = list;\n }\n\n return preparedList;\n }\n\n function match(value, phrase) {\n if (!config.get(\"list\").match.caseSensitive) {\n if (typeof value === \"string\") {\n value = value.toLowerCase();\n }\n\n phrase = phrase.toLowerCase();\n }\n\n if (config.get(\"list\").match.method(value, phrase)) {\n return true;\n } else {\n return false;\n }\n }\n\n function reduceElementsInList(list) {\n if (listBuilder.maxNumberOfElements !== undefined && list.length > listBuilder.maxNumberOfElements) {\n list = list.slice(0, listBuilder.maxNumberOfElements);\n }\n\n return list;\n }\n\n function sort(list) {\n if (config.get(\"list\").sort.enabled) {\n list.sort(config.get(\"list\").sort.method);\n }\n\n return list;\n }\n };\n\n return scope;\n}(EasyAutocomplete || {});\n/*\r\n * EasyAutocomplete - Template \r\n *\r\n * \r\n *\r\n */\n\n\nvar EasyAutocomplete = function (scope) {\n scope.Template = function Template(options) {\n var genericTemplates = {\n basic: {\n type: \"basic\",\n method: function method(element) {\n return element;\n },\n cssClass: \"\"\n },\n description: {\n type: \"description\",\n fields: {\n description: \"description\"\n },\n method: function method(element) {\n return element + \" - description\";\n },\n cssClass: \"eac-description\"\n },\n iconLeft: {\n type: \"iconLeft\",\n fields: {\n icon: \"\"\n },\n method: function method(element) {\n return element;\n },\n cssClass: \"eac-icon-left\"\n },\n iconRight: {\n type: \"iconRight\",\n fields: {\n iconSrc: \"\"\n },\n method: function method(element) {\n return element;\n },\n cssClass: \"eac-icon-right\"\n },\n links: {\n type: \"links\",\n fields: {\n link: \"\"\n },\n method: function method(element) {\n return element;\n },\n cssClass: \"\"\n },\n custom: {\n type: \"custom\",\n method: function method() {},\n cssClass: \"\"\n }\n },\n\n /*\r\n * Converts method with {{text}} to function\r\n */\n convertTemplateToMethod = function convertTemplateToMethod(template) {\n var _fields = template.fields,\n buildMethod;\n\n if (template.type === \"description\") {\n buildMethod = genericTemplates.description.method;\n\n if (typeof _fields.description === \"string\") {\n buildMethod = function buildMethod(elementValue, element) {\n return elementValue + \" - \" + element[_fields.description] + \"\";\n };\n } else if (typeof _fields.description === \"function\") {\n buildMethod = function buildMethod(elementValue, element) {\n return elementValue + \" - \" + _fields.description(element) + \"\";\n };\n }\n\n return buildMethod;\n }\n\n if (template.type === \"iconRight\") {\n if (typeof _fields.iconSrc === \"string\") {\n buildMethod = function buildMethod(elementValue, element) {\n return elementValue + \"\";\n };\n } else if (typeof _fields.iconSrc === \"function\") {\n buildMethod = function buildMethod(elementValue, element) {\n return elementValue + \"\";\n };\n }\n\n return buildMethod;\n }\n\n if (template.type === \"iconLeft\") {\n if (typeof _fields.iconSrc === \"string\") {\n buildMethod = function buildMethod(elementValue, element) {\n return \"\" + elementValue;\n };\n } else if (typeof _fields.iconSrc === \"function\") {\n buildMethod = function buildMethod(elementValue, element) {\n return \"\" + elementValue;\n };\n }\n\n return buildMethod;\n }\n\n if (template.type === \"links\") {\n if (typeof _fields.link === \"string\") {\n buildMethod = function buildMethod(elementValue, element) {\n return \"\" + elementValue + \"\";\n };\n } else if (typeof _fields.link === \"function\") {\n buildMethod = function buildMethod(elementValue, element) {\n return \"\" + elementValue + \"\";\n };\n }\n\n return buildMethod;\n }\n\n if (template.type === \"custom\") {\n return template.method;\n }\n\n return genericTemplates.basic.method;\n },\n prepareBuildMethod = function prepareBuildMethod(options) {\n if (!options || !options.type) {\n return genericTemplates.basic.method;\n }\n\n if (options.type && genericTemplates[options.type]) {\n return convertTemplateToMethod(options);\n } else {\n return genericTemplates.basic.method;\n }\n },\n templateClass = function templateClass(options) {\n var emptyStringFunction = function emptyStringFunction() {\n return \"\";\n };\n\n if (!options || !options.type) {\n return emptyStringFunction;\n }\n\n if (options.type && genericTemplates[options.type]) {\n return function () {\n var _cssClass = genericTemplates[options.type].cssClass;\n return function () {\n return _cssClass;\n };\n }();\n } else {\n return emptyStringFunction;\n }\n };\n\n this.getTemplateClass = templateClass(options);\n this.build = prepareBuildMethod(options);\n };\n\n return scope;\n}(EasyAutocomplete || {});\n/*\r\n * EasyAutocomplete - jQuery plugin for autocompletion\r\n *\r\n */\n\n\nvar EasyAutocomplete = function (scope) {\n scope.main = function Core($input, options) {\n var module = {\n name: \"EasyAutocomplete\",\n shortcut: \"eac\"\n };\n var consts = new scope.Constans(),\n config = new scope.Configuration(options),\n logger = new scope.Logger(),\n template = new scope.Template(options.template),\n listBuilderService = new scope.ListBuilderService(config, scope.proccess),\n checkParam = config.equals,\n $field = $input,\n $container = \"\",\n elementsList = [],\n selectedElement = -1,\n requestDelayTimeoutId;\n scope.consts = consts;\n\n this.getConstants = function () {\n return consts;\n };\n\n this.getConfiguration = function () {\n return config;\n };\n\n this.getContainer = function () {\n return $container;\n };\n\n this.getSelectedItemIndex = function () {\n return selectedElement;\n };\n\n this.getItems = function () {\n return elementsList;\n };\n\n this.getItemData = function (index) {\n if (elementsList.length < index || elementsList[index] === undefined) {\n return -1;\n } else {\n return elementsList[index];\n }\n };\n\n this.getSelectedItemData = function () {\n return this.getItemData(selectedElement);\n };\n\n this.build = function () {\n prepareField();\n };\n\n this.init = function () {\n init();\n };\n\n function init() {\n if ($field.length === 0) {\n logger.error(\"Input field doesn't exist.\");\n return;\n }\n\n if (!config.checkDataUrlProperties()) {\n logger.error(\"One of options variables 'data' or 'url' must be defined.\");\n return;\n }\n\n if (!config.checkRequiredProperties()) {\n logger.error(\"Will not work without mentioned properties.\");\n return;\n }\n\n prepareField();\n bindEvents();\n }\n\n function prepareField() {\n if ($field.parent().hasClass(consts.getValue(\"WRAPPER_CSS_CLASS\"))) {\n removeContainer();\n removeWrapper();\n }\n\n createWrapper();\n createContainer();\n $container = $(\"#\" + getContainerId());\n\n if (config.get(\"placeholder\")) {\n $field.attr(\"placeholder\", config.get(\"placeholder\"));\n }\n\n function createWrapper() {\n var $wrapper = $(\"
\"),\n classes = consts.getValue(\"WRAPPER_CSS_CLASS\");\n\n if (config.get(\"theme\") && config.get(\"theme\") !== \"\") {\n classes += \" eac-\" + config.get(\"theme\");\n }\n\n if (config.get(\"cssClasses\") && config.get(\"cssClasses\") !== \"\") {\n classes += \" \" + config.get(\"cssClasses\");\n }\n\n if (template.getTemplateClass() !== \"\") {\n classes += \" \" + template.getTemplateClass();\n }\n\n $wrapper.addClass(classes);\n $field.wrap($wrapper);\n\n if (config.get(\"adjustWidth\") === true) {\n adjustWrapperWidth();\n }\n }\n\n function adjustWrapperWidth() {\n var fieldWidth = $field.outerWidth();\n $field.parent().css(\"width\", fieldWidth);\n }\n\n function removeWrapper() {\n $field.unwrap();\n }\n\n function createContainer() {\n var $elements_container = $(\"
\").addClass(consts.getValue(\"CONTAINER_CLASS\"));\n $elements_container.attr(\"id\", getContainerId()).prepend($(\"
    \"));\n\n (function () {\n $elements_container\n /* List show animation */\n .on(\"show.eac\", function () {\n switch (config.get(\"list\").showAnimation.type) {\n case \"slide\":\n var animationTime = config.get(\"list\").showAnimation.time,\n callback = config.get(\"list\").showAnimation.callback;\n $elements_container.find(\"ul\").slideDown(animationTime, callback);\n break;\n\n case \"fade\":\n var animationTime = config.get(\"list\").showAnimation.time,\n callback = config.get(\"list\").showAnimation.callback;\n $elements_container.find(\"ul\").fadeIn(animationTime), callback;\n break;\n\n default:\n $elements_container.find(\"ul\").show();\n break;\n }\n\n config.get(\"list\").onShowListEvent();\n })\n /* List hide animation */\n .on(\"hide.eac\", function () {\n switch (config.get(\"list\").hideAnimation.type) {\n case \"slide\":\n var animationTime = config.get(\"list\").hideAnimation.time,\n callback = config.get(\"list\").hideAnimation.callback;\n $elements_container.find(\"ul\").slideUp(animationTime, callback);\n break;\n\n case \"fade\":\n var animationTime = config.get(\"list\").hideAnimation.time,\n callback = config.get(\"list\").hideAnimation.callback;\n $elements_container.find(\"ul\").fadeOut(animationTime, callback);\n break;\n\n default:\n $elements_container.find(\"ul\").hide();\n break;\n }\n\n config.get(\"list\").onHideListEvent();\n }).on(\"selectElement.eac\", function () {\n $elements_container.find(\"ul li\").removeClass(\"selected\");\n $elements_container.find(\"ul li\").eq(selectedElement).addClass(\"selected\");\n config.get(\"list\").onSelectItemEvent();\n }).on(\"loadElements.eac\", function (event, listBuilders, phrase) {\n var $item = \"\",\n $listContainer = $elements_container.find(\"ul\");\n $listContainer.empty().detach();\n elementsList = [];\n var counter = 0;\n\n for (var builderIndex = 0, listBuildersLength = listBuilders.length; builderIndex < listBuildersLength; builderIndex += 1) {\n var listData = listBuilders[builderIndex].data;\n\n if (listData.length === 0) {\n continue;\n }\n\n if (listBuilders[builderIndex].header !== undefined && listBuilders[builderIndex].header.length > 0) {\n $listContainer.append(\"
    \" + listBuilders[builderIndex].header + \"
    \");\n }\n\n for (var i = 0, listDataLength = listData.length; i < listDataLength && counter < listBuilders[builderIndex].maxListSize; i += 1) {\n $item = $(\"
  • \");\n\n (function () {\n var j = i,\n itemCounter = counter,\n elementsValue = listBuilders[builderIndex].getValue(listData[j]);\n $item.find(\" > div\").on(\"click\", function () {\n $field.val(elementsValue).trigger(\"change\");\n selectedElement = itemCounter;\n selectElement(itemCounter);\n config.get(\"list\").onClickEvent();\n config.get(\"list\").onChooseEvent();\n }).mouseover(function () {\n selectedElement = itemCounter;\n selectElement(itemCounter);\n config.get(\"list\").onMouseOverEvent();\n }).mouseout(function () {\n config.get(\"list\").onMouseOutEvent();\n }).html(template.build(highlight(elementsValue, phrase), listData[j]));\n })();\n\n $listContainer.append($item);\n elementsList.push(listData[i]);\n counter += 1;\n }\n }\n\n $elements_container.append($listContainer);\n config.get(\"list\").onLoadEvent();\n });\n })();\n\n $field.after($elements_container);\n }\n\n function removeContainer() {\n $field.next(\".\" + consts.getValue(\"CONTAINER_CLASS\")).remove();\n }\n\n function highlight(string, phrase) {\n if (config.get(\"highlightPhrase\") && phrase !== \"\") {\n return highlightPhrase(string, phrase);\n } else {\n return string;\n }\n }\n\n function escapeRegExp(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n }\n\n function highlightPhrase(string, phrase) {\n var escapedPhrase = escapeRegExp(phrase);\n return (string + \"\").replace(new RegExp(\"(\" + escapedPhrase + \")\", \"gi\"), \"$1\");\n }\n }\n\n function getContainerId() {\n var elementId = $field.attr(\"id\");\n elementId = consts.getValue(\"CONTAINER_ID\") + elementId;\n return elementId;\n }\n\n function bindEvents() {\n bindAllEvents();\n\n function bindAllEvents() {\n if (checkParam(\"autocompleteOff\", true)) {\n removeAutocomplete();\n }\n\n bindFocusOut();\n bindKeyup();\n bindKeydown();\n bindKeypress();\n bindFocus();\n bindBlur();\n }\n\n function bindFocusOut() {\n $field.focusout(function () {\n var fieldValue = $field.val(),\n phrase;\n\n if (!config.get(\"list\").match.caseSensitive) {\n fieldValue = fieldValue.toLowerCase();\n }\n\n for (var i = 0, length = elementsList.length; i < length; i += 1) {\n phrase = config.get(\"getValue\")(elementsList[i]);\n\n if (!config.get(\"list\").match.caseSensitive) {\n phrase = phrase.toLowerCase();\n }\n\n if (phrase === fieldValue) {\n selectedElement = i;\n selectElement(selectedElement);\n return;\n }\n }\n });\n }\n\n function bindKeyup() {\n $field.off(\"keyup\").keyup(function (event) {\n switch (event.keyCode) {\n case 27:\n hideContainer();\n loseFieldFocus();\n break;\n\n case 38:\n event.preventDefault();\n\n if (elementsList.length > 0 && selectedElement > 0) {\n selectedElement -= 1;\n $field.val(config.get(\"getValue\")(elementsList[selectedElement]));\n selectElement(selectedElement);\n }\n\n break;\n\n case 40:\n event.preventDefault();\n\n if (elementsList.length > 0 && selectedElement < elementsList.length - 1) {\n selectedElement += 1;\n $field.val(config.get(\"getValue\")(elementsList[selectedElement]));\n selectElement(selectedElement);\n }\n\n break;\n\n default:\n if (event.keyCode > 40 || event.keyCode === 8) {\n var inputPhrase = $field.val();\n\n if (!(config.get(\"list\").hideOnEmptyPhrase === true && event.keyCode === 8 && inputPhrase === \"\")) {\n if (config.get(\"requestDelay\") > 0) {\n if (requestDelayTimeoutId !== undefined) {\n clearTimeout(requestDelayTimeoutId);\n }\n\n requestDelayTimeoutId = setTimeout(function () {\n loadData(inputPhrase);\n }, config.get(\"requestDelay\"));\n } else {\n loadData(inputPhrase);\n }\n } else {\n hideContainer();\n }\n }\n\n break;\n }\n\n function loadData(inputPhrase) {\n if (inputPhrase.length < config.get(\"minCharNumber\")) {\n return;\n }\n\n if (config.get(\"data\") !== \"list-required\") {\n var data = config.get(\"data\");\n var listBuilders = listBuilderService.init(data);\n listBuilders = listBuilderService.updateCategories(listBuilders, data);\n listBuilders = listBuilderService.processData(listBuilders, inputPhrase);\n loadElements(listBuilders, inputPhrase);\n\n if ($field.parent().find(\"li\").length > 0) {\n showContainer();\n } else {\n hideContainer();\n }\n }\n\n var settings = createAjaxSettings();\n\n if (settings.url === undefined || settings.url === \"\") {\n settings.url = config.get(\"url\");\n }\n\n if (settings.dataType === undefined || settings.dataType === \"\") {\n settings.dataType = config.get(\"dataType\");\n }\n\n if (settings.url !== undefined && settings.url !== \"list-required\") {\n settings.url = settings.url(inputPhrase);\n settings.data = config.get(\"preparePostData\")(settings.data, inputPhrase);\n $.ajax(settings).done(function (data) {\n var listBuilders = listBuilderService.init(data);\n listBuilders = listBuilderService.updateCategories(listBuilders, data);\n listBuilders = listBuilderService.convertXml(listBuilders);\n\n if (checkInputPhraseMatchResponse(inputPhrase, data)) {\n listBuilders = listBuilderService.processData(listBuilders, inputPhrase);\n loadElements(listBuilders, inputPhrase);\n }\n\n if (listBuilderService.checkIfDataExists(listBuilders) && $field.parent().find(\"li\").length > 0) {\n showContainer();\n } else {\n hideContainer();\n }\n\n config.get(\"ajaxCallback\")();\n }).fail(function () {\n logger.warning(\"Fail to load response data\");\n }).always(function () {});\n }\n\n function createAjaxSettings() {\n var settings = {},\n ajaxSettings = config.get(\"ajaxSettings\") || {};\n\n for (var set in ajaxSettings) {\n settings[set] = ajaxSettings[set];\n }\n\n return settings;\n }\n\n function checkInputPhraseMatchResponse(inputPhrase, data) {\n if (config.get(\"matchResponseProperty\") !== false) {\n if (typeof config.get(\"matchResponseProperty\") === \"string\") {\n return data[config.get(\"matchResponseProperty\")] === inputPhrase;\n }\n\n if (typeof config.get(\"matchResponseProperty\") === \"function\") {\n return config.get(\"matchResponseProperty\")(data) === inputPhrase;\n }\n\n return true;\n } else {\n return true;\n }\n }\n }\n });\n }\n\n function bindKeydown() {\n $field.on(\"keydown\", function (evt) {\n evt = evt || window.event;\n var keyCode = evt.keyCode;\n\n if (keyCode === 38) {\n suppressKeypress = true;\n return false;\n }\n }).keydown(function (event) {\n if (event.keyCode === 13 && selectedElement > -1) {\n $field.val(config.get(\"getValue\")(elementsList[selectedElement]));\n config.get(\"list\").onKeyEnterEvent();\n config.get(\"list\").onChooseEvent();\n selectedElement = -1;\n hideContainer();\n event.preventDefault();\n }\n });\n }\n\n function bindKeypress() {\n $field.off(\"keypress\");\n }\n\n function bindFocus() {\n $field.focus(function () {\n if ($field.val() !== \"\" && elementsList.length > 0) {\n selectedElement = -1;\n showContainer();\n }\n });\n }\n\n function bindBlur() {\n $field.blur(function () {\n setTimeout(function () {\n selectedElement = -1;\n hideContainer();\n }, 250);\n });\n }\n\n function removeAutocomplete() {\n $field.attr(\"autocomplete\", \"off\");\n }\n }\n\n function showContainer() {\n $container.trigger(\"show.eac\");\n }\n\n function hideContainer() {\n $container.trigger(\"hide.eac\");\n }\n\n function selectElement(index) {\n $container.trigger(\"selectElement.eac\", index);\n }\n\n function loadElements(list, phrase) {\n $container.trigger(\"loadElements.eac\", [list, phrase]);\n }\n\n function loseFieldFocus() {\n $field.trigger(\"blur\");\n }\n };\n\n scope.eacHandles = [];\n\n scope.getHandle = function (id) {\n return scope.eacHandles[id];\n };\n\n scope.inputHasId = function (input) {\n if ($(input).attr(\"id\") !== undefined && $(input).attr(\"id\").length > 0) {\n return true;\n } else {\n return false;\n }\n };\n\n scope.assignRandomId = function (input) {\n var fieldId = \"\";\n\n do {\n fieldId = \"eac-\" + Math.floor(Math.random() * 10000);\n } while ($(\"#\" + fieldId).length !== 0);\n\n elementId = scope.consts.getValue(\"CONTAINER_ID\") + fieldId;\n $(input).attr(\"id\", fieldId);\n };\n\n scope.setHandle = function (handle, id) {\n scope.eacHandles[id] = handle;\n };\n\n return scope;\n}(EasyAutocomplete || {});\n\n(function ($) {\n $.fn.easyAutocomplete = function (options) {\n return this.each(function () {\n var $this = $(this),\n eacHandle = new EasyAutocomplete.main($this, options);\n\n if (!EasyAutocomplete.inputHasId($this)) {\n EasyAutocomplete.assignRandomId($this);\n }\n\n eacHandle.init();\n EasyAutocomplete.setHandle(eacHandle, $this.attr(\"id\"));\n });\n };\n\n $.fn.getSelectedItemIndex = function () {\n var inputId = $(this).attr(\"id\");\n\n if (inputId !== undefined) {\n return EasyAutocomplete.getHandle(inputId).getSelectedItemIndex();\n }\n\n return -1;\n };\n\n $.fn.getItems = function () {\n var inputId = $(this).attr(\"id\");\n\n if (inputId !== undefined) {\n return EasyAutocomplete.getHandle(inputId).getItems();\n }\n\n return -1;\n };\n\n $.fn.getItemData = function (index) {\n var inputId = $(this).attr(\"id\");\n\n if (inputId !== undefined && index > -1) {\n return EasyAutocomplete.getHandle(inputId).getItemData(index);\n }\n\n return -1;\n };\n\n $.fn.getSelectedItemData = function () {\n var inputId = $(this).attr(\"id\");\n\n if (inputId !== undefined) {\n return EasyAutocomplete.getHandle(inputId).getSelectedItemData();\n }\n\n return -1;\n };\n})(jQuery);","var api = require(\"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--6-1!../../../node_modules/postcss-loader/src/index.js??ref--6-2!../../../node_modules/sass-loader/dist/cjs.js??ref--6-3!./my_bootstrap.scss\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \".bg-primary{background-color:#000 !important}.btn-primary{color:#fff;background-color:#948308;border-color:#94a340}.btn-primary:hover{color:#000;background-color:#d5e205;border-color:#e9ff30}body{background-repeat:repeat-x;background-repeat:repeat-y}\", \"\",{\"version\":3,\"sources\":[\"/home/henry/Deployments/fs2020/app/javascript/stylesheets/my_bootstrap.scss\"],\"names\":[],\"mappings\":\"AAAA,YACI,gCAAA,CAGJ,aACI,UAAA,CACA,wBAAA,CACA,oBAAA,CAGJ,mBACI,UAAA,CACA,wBAAA,CACA,oBAAA,CAGJ,KACI,0BAAA,CACA,0BAAA\",\"file\":\"my_bootstrap.scss\",\"sourcesContent\":[\".bg-primary {\\n background-color: #000000 !important;\\n}\\n\\n.btn-primary {\\n color: #fff;\\n background-color: #948308;\\n border-color: #94A340;\\n}\\n\\n.btn-primary:hover {\\n color: #000000;\\n background-color: #d5e205;\\n border-color: #e9ff30;\\n}\\n\\nbody {\\n background-repeat: repeat-x;\\n background-repeat: repeat-y;\\n}\"]}]);\n// Exports\nmodule.exports = exports;\n","var api = require(\"!../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../../css-loader/dist/cjs.js??ref--5-1!../../postcss-loader/src/index.js??ref--5-2!./flatpickr.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(true);\n// Module\nexports.push([module.id, \".flatpickr-calendar {\\n background: transparent;\\n opacity: 0;\\n display: none;\\n text-align: center;\\n visibility: hidden;\\n padding: 0;\\n -webkit-animation: none;\\n animation: none;\\n direction: ltr;\\n border: 0;\\n font-size: 14px;\\n line-height: 24px;\\n border-radius: 5px;\\n position: absolute;\\n width: 307.875px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -ms-touch-action: manipulation;\\n touch-action: manipulation;\\n background: #fff;\\n -webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);\\n box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);\\n}\\n.flatpickr-calendar.open,\\n.flatpickr-calendar.inline {\\n opacity: 1;\\n max-height: 640px;\\n visibility: visible;\\n}\\n.flatpickr-calendar.open {\\n display: inline-block;\\n z-index: 99999;\\n}\\n.flatpickr-calendar.animate.open {\\n -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);\\n animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.flatpickr-calendar.inline {\\n display: block;\\n position: relative;\\n top: 2px;\\n}\\n.flatpickr-calendar.static {\\n position: absolute;\\n top: calc(100% + 2px);\\n}\\n.flatpickr-calendar.static.open {\\n z-index: 999;\\n display: block;\\n}\\n.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n}\\n.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {\\n -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n}\\n.flatpickr-calendar .hasWeeks .dayContainer,\\n.flatpickr-calendar .hasTime .dayContainer {\\n border-bottom: 0;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.flatpickr-calendar .hasWeeks .dayContainer {\\n border-left: 0;\\n}\\n.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {\\n height: 40px;\\n border-top: 1px solid #e6e6e6;\\n}\\n.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {\\n height: auto;\\n}\\n.flatpickr-calendar:before,\\n.flatpickr-calendar:after {\\n position: absolute;\\n display: block;\\n pointer-events: none;\\n border: solid transparent;\\n content: '';\\n height: 0;\\n width: 0;\\n left: 22px;\\n}\\n.flatpickr-calendar.rightMost:before,\\n.flatpickr-calendar.rightMost:after {\\n left: auto;\\n right: 22px;\\n}\\n.flatpickr-calendar:before {\\n border-width: 5px;\\n margin: 0 -5px;\\n}\\n.flatpickr-calendar:after {\\n border-width: 4px;\\n margin: 0 -4px;\\n}\\n.flatpickr-calendar.arrowTop:before,\\n.flatpickr-calendar.arrowTop:after {\\n bottom: 100%;\\n}\\n.flatpickr-calendar.arrowTop:before {\\n border-bottom-color: #e6e6e6;\\n}\\n.flatpickr-calendar.arrowTop:after {\\n border-bottom-color: #fff;\\n}\\n.flatpickr-calendar.arrowBottom:before,\\n.flatpickr-calendar.arrowBottom:after {\\n top: 100%;\\n}\\n.flatpickr-calendar.arrowBottom:before {\\n border-top-color: #e6e6e6;\\n}\\n.flatpickr-calendar.arrowBottom:after {\\n border-top-color: #fff;\\n}\\n.flatpickr-calendar:focus {\\n outline: 0;\\n}\\n.flatpickr-wrapper {\\n position: relative;\\n display: inline-block;\\n}\\n.flatpickr-months {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.flatpickr-months .flatpickr-month {\\n background: transparent;\\n color: rgba(0,0,0,0.9);\\n fill: rgba(0,0,0,0.9);\\n height: 34px;\\n line-height: 1;\\n text-align: center;\\n position: relative;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1 1;\\n}\\n.flatpickr-months .flatpickr-prev-month,\\n.flatpickr-months .flatpickr-next-month {\\n text-decoration: none;\\n cursor: pointer;\\n position: absolute;\\n top: 0;\\n height: 34px;\\n padding: 10px;\\n z-index: 3;\\n color: rgba(0,0,0,0.9);\\n fill: rgba(0,0,0,0.9);\\n}\\n.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,\\n.flatpickr-months .flatpickr-next-month.flatpickr-disabled {\\n display: none;\\n}\\n.flatpickr-months .flatpickr-prev-month i,\\n.flatpickr-months .flatpickr-next-month i {\\n position: relative;\\n}\\n.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,\\n.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n */\\n left: 0;\\n/*\\n /*rtl:end:ignore*/\\n/*\\n */\\n}\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n /*rtl:end:ignore*/\\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,\\n.flatpickr-months .flatpickr-next-month.flatpickr-next-month {\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n */\\n right: 0;\\n/*\\n /*rtl:end:ignore*/\\n/*\\n */\\n}\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n /*rtl:end:ignore*/\\n.flatpickr-months .flatpickr-prev-month:hover,\\n.flatpickr-months .flatpickr-next-month:hover {\\n color: #959ea9;\\n}\\n.flatpickr-months .flatpickr-prev-month:hover svg,\\n.flatpickr-months .flatpickr-next-month:hover svg {\\n fill: #f64747;\\n}\\n.flatpickr-months .flatpickr-prev-month svg,\\n.flatpickr-months .flatpickr-next-month svg {\\n width: 14px;\\n height: 14px;\\n}\\n.flatpickr-months .flatpickr-prev-month svg path,\\n.flatpickr-months .flatpickr-next-month svg path {\\n -webkit-transition: fill 0.1s;\\n transition: fill 0.1s;\\n fill: inherit;\\n}\\n.numInputWrapper {\\n position: relative;\\n height: auto;\\n}\\n.numInputWrapper input,\\n.numInputWrapper span {\\n display: inline-block;\\n}\\n.numInputWrapper input {\\n width: 100%;\\n}\\n.numInputWrapper input::-ms-clear {\\n display: none;\\n}\\n.numInputWrapper input::-webkit-outer-spin-button,\\n.numInputWrapper input::-webkit-inner-spin-button {\\n margin: 0;\\n -webkit-appearance: none;\\n}\\n.numInputWrapper span {\\n position: absolute;\\n right: 0;\\n width: 14px;\\n padding: 0 4px 0 2px;\\n height: 50%;\\n line-height: 50%;\\n opacity: 0;\\n cursor: pointer;\\n border: 1px solid rgba(57,57,57,0.15);\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.numInputWrapper span:hover {\\n background: rgba(0,0,0,0.1);\\n}\\n.numInputWrapper span:active {\\n background: rgba(0,0,0,0.2);\\n}\\n.numInputWrapper span:after {\\n display: block;\\n content: \\\"\\\";\\n position: absolute;\\n}\\n.numInputWrapper span.arrowUp {\\n top: 0;\\n border-bottom: 0;\\n}\\n.numInputWrapper span.arrowUp:after {\\n border-left: 4px solid transparent;\\n border-right: 4px solid transparent;\\n border-bottom: 4px solid rgba(57,57,57,0.6);\\n top: 26%;\\n}\\n.numInputWrapper span.arrowDown {\\n top: 50%;\\n}\\n.numInputWrapper span.arrowDown:after {\\n border-left: 4px solid transparent;\\n border-right: 4px solid transparent;\\n border-top: 4px solid rgba(57,57,57,0.6);\\n top: 40%;\\n}\\n.numInputWrapper span svg {\\n width: inherit;\\n height: auto;\\n}\\n.numInputWrapper span svg path {\\n fill: rgba(0,0,0,0.5);\\n}\\n.numInputWrapper:hover {\\n background: rgba(0,0,0,0.05);\\n}\\n.numInputWrapper:hover span {\\n opacity: 1;\\n}\\n.flatpickr-current-month {\\n font-size: 135%;\\n line-height: inherit;\\n font-weight: 300;\\n color: inherit;\\n position: absolute;\\n width: 75%;\\n left: 12.5%;\\n padding: 7.48px 0 0 0;\\n line-height: 1;\\n height: 34px;\\n display: inline-block;\\n text-align: center;\\n -webkit-transform: translate3d(0px, 0px, 0px);\\n transform: translate3d(0px, 0px, 0px);\\n}\\n.flatpickr-current-month span.cur-month {\\n font-family: inherit;\\n font-weight: 700;\\n color: inherit;\\n display: inline-block;\\n margin-left: 0.5ch;\\n padding: 0;\\n}\\n.flatpickr-current-month span.cur-month:hover {\\n background: rgba(0,0,0,0.05);\\n}\\n.flatpickr-current-month .numInputWrapper {\\n width: 6ch;\\n width: 7ch\\\\0;\\n display: inline-block;\\n}\\n.flatpickr-current-month .numInputWrapper span.arrowUp:after {\\n border-bottom-color: rgba(0,0,0,0.9);\\n}\\n.flatpickr-current-month .numInputWrapper span.arrowDown:after {\\n border-top-color: rgba(0,0,0,0.9);\\n}\\n.flatpickr-current-month input.cur-year {\\n background: transparent;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: inherit;\\n cursor: text;\\n padding: 0 0 0 0.5ch;\\n margin: 0;\\n display: inline-block;\\n font-size: inherit;\\n font-family: inherit;\\n font-weight: 300;\\n line-height: inherit;\\n height: auto;\\n border: 0;\\n border-radius: 0;\\n vertical-align: baseline;\\n vertical-align: initial;\\n -webkit-appearance: textfield;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n}\\n.flatpickr-current-month input.cur-year:focus {\\n outline: 0;\\n}\\n.flatpickr-current-month input.cur-year[disabled],\\n.flatpickr-current-month input.cur-year[disabled]:hover {\\n font-size: 100%;\\n color: rgba(0,0,0,0.5);\\n background: transparent;\\n pointer-events: none;\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months {\\n appearance: menulist;\\n background: transparent;\\n border: none;\\n border-radius: 0;\\n box-sizing: border-box;\\n color: inherit;\\n cursor: pointer;\\n font-size: inherit;\\n font-family: inherit;\\n font-weight: 300;\\n height: auto;\\n line-height: inherit;\\n margin: -1px 0 0 0;\\n outline: none;\\n padding: 0 0 0 0.5ch;\\n position: relative;\\n vertical-align: baseline;\\n vertical-align: initial;\\n -webkit-box-sizing: border-box;\\n -webkit-appearance: menulist;\\n -moz-appearance: menulist;\\n width: auto;\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months:focus,\\n.flatpickr-current-month .flatpickr-monthDropdown-months:active {\\n outline: none;\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months:hover {\\n background: rgba(0,0,0,0.05);\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {\\n background-color: transparent;\\n outline: none;\\n padding: 0;\\n}\\n.flatpickr-weekdays {\\n background: transparent;\\n text-align: center;\\n overflow: hidden;\\n width: 100%;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-align-items: center;\\n -ms-flex-align: center;\\n align-items: center;\\n height: 28px;\\n}\\n.flatpickr-weekdays .flatpickr-weekdaycontainer {\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1 1;\\n}\\nspan.flatpickr-weekday {\\n cursor: default;\\n font-size: 90%;\\n background: transparent;\\n color: rgba(0,0,0,0.54);\\n line-height: 1;\\n margin: 0;\\n text-align: center;\\n display: block;\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1 1;\\n font-weight: bolder;\\n}\\n.dayContainer,\\n.flatpickr-weeks {\\n padding: 1px 0 0 0;\\n}\\n.flatpickr-days {\\n position: relative;\\n overflow: hidden;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-align-items: flex-start;\\n -ms-flex-align: start;\\n align-items: flex-start;\\n width: 307.875px;\\n}\\n.flatpickr-days:focus {\\n outline: 0;\\n}\\n.dayContainer {\\n padding: 0;\\n outline: 0;\\n text-align: left;\\n width: 307.875px;\\n min-width: 307.875px;\\n max-width: 307.875px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n display: inline-block;\\n display: -ms-flexbox;\\n display: -webkit-flex;\\n display: flex;\\n -webkit-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-wrap: wrap;\\n -ms-flex-pack: justify;\\n -webkit-justify-content: space-around;\\n justify-content: space-around;\\n -webkit-transform: translate3d(0px, 0px, 0px);\\n transform: translate3d(0px, 0px, 0px);\\n opacity: 1;\\n}\\n.dayContainer + .dayContainer {\\n -webkit-box-shadow: -1px 0 0 #e6e6e6;\\n box-shadow: -1px 0 0 #e6e6e6;\\n}\\n.flatpickr-day {\\n background: none;\\n border: 1px solid transparent;\\n border-radius: 150px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #393939;\\n cursor: pointer;\\n font-weight: 400;\\n width: 14.2857143%;\\n -ms-flex-preferred-size: 14.2857143%;\\n -webkit-flex-basis: 14.2857143%;\\n flex-basis: 14.2857143%;\\n max-width: 39px;\\n height: 39px;\\n line-height: 39px;\\n margin: 0;\\n display: inline-block;\\n position: relative;\\n -webkit-justify-content: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n text-align: center;\\n}\\n.flatpickr-day.inRange,\\n.flatpickr-day.prevMonthDay.inRange,\\n.flatpickr-day.nextMonthDay.inRange,\\n.flatpickr-day.today.inRange,\\n.flatpickr-day.prevMonthDay.today.inRange,\\n.flatpickr-day.nextMonthDay.today.inRange,\\n.flatpickr-day:hover,\\n.flatpickr-day.prevMonthDay:hover,\\n.flatpickr-day.nextMonthDay:hover,\\n.flatpickr-day:focus,\\n.flatpickr-day.prevMonthDay:focus,\\n.flatpickr-day.nextMonthDay:focus {\\n cursor: pointer;\\n outline: 0;\\n background: #e6e6e6;\\n border-color: #e6e6e6;\\n}\\n.flatpickr-day.today {\\n border-color: #959ea9;\\n}\\n.flatpickr-day.today:hover,\\n.flatpickr-day.today:focus {\\n border-color: #959ea9;\\n background: #959ea9;\\n color: #fff;\\n}\\n.flatpickr-day.selected,\\n.flatpickr-day.startRange,\\n.flatpickr-day.endRange,\\n.flatpickr-day.selected.inRange,\\n.flatpickr-day.startRange.inRange,\\n.flatpickr-day.endRange.inRange,\\n.flatpickr-day.selected:focus,\\n.flatpickr-day.startRange:focus,\\n.flatpickr-day.endRange:focus,\\n.flatpickr-day.selected:hover,\\n.flatpickr-day.startRange:hover,\\n.flatpickr-day.endRange:hover,\\n.flatpickr-day.selected.prevMonthDay,\\n.flatpickr-day.startRange.prevMonthDay,\\n.flatpickr-day.endRange.prevMonthDay,\\n.flatpickr-day.selected.nextMonthDay,\\n.flatpickr-day.startRange.nextMonthDay,\\n.flatpickr-day.endRange.nextMonthDay {\\n background: #569ff7;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n color: #fff;\\n border-color: #569ff7;\\n}\\n.flatpickr-day.selected.startRange,\\n.flatpickr-day.startRange.startRange,\\n.flatpickr-day.endRange.startRange {\\n border-radius: 50px 0 0 50px;\\n}\\n.flatpickr-day.selected.endRange,\\n.flatpickr-day.startRange.endRange,\\n.flatpickr-day.endRange.endRange {\\n border-radius: 0 50px 50px 0;\\n}\\n.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),\\n.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),\\n.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {\\n -webkit-box-shadow: -10px 0 0 #569ff7;\\n box-shadow: -10px 0 0 #569ff7;\\n}\\n.flatpickr-day.selected.startRange.endRange,\\n.flatpickr-day.startRange.startRange.endRange,\\n.flatpickr-day.endRange.startRange.endRange {\\n border-radius: 50px;\\n}\\n.flatpickr-day.inRange {\\n border-radius: 0;\\n -webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n}\\n.flatpickr-day.flatpickr-disabled,\\n.flatpickr-day.flatpickr-disabled:hover,\\n.flatpickr-day.prevMonthDay,\\n.flatpickr-day.nextMonthDay,\\n.flatpickr-day.notAllowed,\\n.flatpickr-day.notAllowed.prevMonthDay,\\n.flatpickr-day.notAllowed.nextMonthDay {\\n color: rgba(57,57,57,0.3);\\n background: transparent;\\n border-color: transparent;\\n cursor: default;\\n}\\n.flatpickr-day.flatpickr-disabled,\\n.flatpickr-day.flatpickr-disabled:hover {\\n cursor: not-allowed;\\n color: rgba(57,57,57,0.1);\\n}\\n.flatpickr-day.week.selected {\\n border-radius: 0;\\n -webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;\\n box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;\\n}\\n.flatpickr-day.hidden {\\n visibility: hidden;\\n}\\n.rangeMode .flatpickr-day {\\n margin-top: 1px;\\n}\\n.flatpickr-weekwrapper {\\n float: left;\\n}\\n.flatpickr-weekwrapper .flatpickr-weeks {\\n padding: 0 12px;\\n -webkit-box-shadow: 1px 0 0 #e6e6e6;\\n box-shadow: 1px 0 0 #e6e6e6;\\n}\\n.flatpickr-weekwrapper .flatpickr-weekday {\\n float: none;\\n width: 100%;\\n line-height: 28px;\\n}\\n.flatpickr-weekwrapper span.flatpickr-day,\\n.flatpickr-weekwrapper span.flatpickr-day:hover {\\n display: block;\\n width: 100%;\\n max-width: none;\\n color: rgba(57,57,57,0.3);\\n background: transparent;\\n cursor: default;\\n border: none;\\n}\\n.flatpickr-innerContainer {\\n display: block;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n.flatpickr-rContainer {\\n display: inline-block;\\n padding: 0;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.flatpickr-time {\\n text-align: center;\\n outline: 0;\\n display: block;\\n height: 0;\\n line-height: 40px;\\n max-height: 40px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n overflow: hidden;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.flatpickr-time:after {\\n content: \\\"\\\";\\n display: table;\\n clear: both;\\n}\\n.flatpickr-time .numInputWrapper {\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1 1;\\n width: 40%;\\n height: 40px;\\n float: left;\\n}\\n.flatpickr-time .numInputWrapper span.arrowUp:after {\\n border-bottom-color: #393939;\\n}\\n.flatpickr-time .numInputWrapper span.arrowDown:after {\\n border-top-color: #393939;\\n}\\n.flatpickr-time.hasSeconds .numInputWrapper {\\n width: 26%;\\n}\\n.flatpickr-time.time24hr .numInputWrapper {\\n width: 49%;\\n}\\n.flatpickr-time input {\\n background: transparent;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n border: 0;\\n border-radius: 0;\\n text-align: center;\\n margin: 0;\\n padding: 0;\\n height: inherit;\\n line-height: inherit;\\n color: #393939;\\n font-size: 14px;\\n position: relative;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -webkit-appearance: textfield;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n}\\n.flatpickr-time input.flatpickr-hour {\\n font-weight: bold;\\n}\\n.flatpickr-time input.flatpickr-minute,\\n.flatpickr-time input.flatpickr-second {\\n font-weight: 400;\\n}\\n.flatpickr-time input:focus {\\n outline: 0;\\n border: 0;\\n}\\n.flatpickr-time .flatpickr-time-separator,\\n.flatpickr-time .flatpickr-am-pm {\\n height: inherit;\\n float: left;\\n line-height: inherit;\\n color: #393939;\\n font-weight: bold;\\n width: 2%;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n -webkit-align-self: center;\\n -ms-flex-item-align: center;\\n align-self: center;\\n}\\n.flatpickr-time .flatpickr-am-pm {\\n outline: 0;\\n width: 18%;\\n cursor: pointer;\\n text-align: center;\\n font-weight: 400;\\n}\\n.flatpickr-time input:hover,\\n.flatpickr-time .flatpickr-am-pm:hover,\\n.flatpickr-time input:focus,\\n.flatpickr-time .flatpickr-am-pm:focus {\\n background: #eee;\\n}\\n.flatpickr-input[readonly] {\\n cursor: pointer;\\n}\\n@-webkit-keyframes fpFadeInDown {\\n from {\\n opacity: 0;\\n -webkit-transform: translate3d(0, -20px, 0);\\n transform: translate3d(0, -20px, 0);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@keyframes fpFadeInDown {\\n from {\\n opacity: 0;\\n -webkit-transform: translate3d(0, -20px, 0);\\n transform: translate3d(0, -20px, 0);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"flatpickr.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,uBAAuB;EACvB,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,kBAAkB;EAClB,UAAU;EACV,uBAAuB;UACf,eAAe;EACvB,cAAc;EACd,SAAS;EACT,eAAe;EACf,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,8BAA8B;UACtB,sBAAsB;EAC9B,8BAA8B;MAC1B,0BAA0B;EAC9B,gBAAgB;EAChB,qHAAqH;UAC7G,6GAA6G;AACvH;AACA;;EAEE,UAAU;EACV,iBAAiB;EACjB,mBAAmB;AACrB;AACA;EACE,qBAAqB;EACrB,cAAc;AAChB;AACA;EACE,oEAAoE;UAC5D,4DAA4D;AACtE;AACA;EACE,cAAc;EACd,kBAAkB;EAClB,QAAQ;AACV;AACA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,YAAY;EACZ,cAAc;AAChB;AACA;EACE,mCAAmC;UAC3B,2BAA2B;AACrC;AACA;EACE,qDAAqD;UAC7C,6CAA6C;AACvD;AACA;;EAEE,gBAAgB;EAChB,6BAA6B;EAC7B,4BAA4B;AAC9B;AACA;EACE,cAAc;AAChB;AACA;EACE,YAAY;EACZ,6BAA6B;AAC/B;AACA;EACE,YAAY;AACd;AACA;;EAEE,kBAAkB;EAClB,cAAc;EACd,oBAAoB;EACpB,yBAAyB;EACzB,WAAW;EACX,SAAS;EACT,QAAQ;EACR,UAAU;AACZ;AACA;;EAEE,UAAU;EACV,WAAW;AACb;AACA;EACE,iBAAiB;EACjB,cAAc;AAChB;AACA;EACE,iBAAiB;EACjB,cAAc;AAChB;AACA;;EAEE,YAAY;AACd;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,yBAAyB;AAC3B;AACA;;EAEE,SAAS;AACX;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,sBAAsB;AACxB;AACA;EACE,UAAU;AACZ;AACA;EACE,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EAEE,qBAAqB;EACrB,oBAAoB;EACpB,aAAa;AACf;AACA;EACE,uBAAuB;EACvB,sBAAsB;EACtB,qBAAqB;EACrB,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,kBAAkB;EAClB,yBAAyB;KACtB,sBAAsB;MACrB,qBAAqB;UACjB,iBAAiB;EACzB,gBAAgB;EAEhB,eAAe;EACX,WAAW;MACP,SAAO;AACjB;AACA;;EAEE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,MAAM;EACN,YAAY;EACZ,aAAa;EACb,UAAU;EACV,sBAAsB;EACtB,qBAAqB;AACvB;AACA;;EAEE,aAAa;AACf;AACA;;EAEE,kBAAkB;AACpB;AACA;;AAEA;yBACyB;AACzB;OACO;EACL,OAAO;AACT;uBACuB;AACvB;OACO;AACP;AACA;yBACyB;AACzB;uBACuB;AACvB;;AAEA;yBACyB;AACzB;OACO;EACL,QAAQ;AACV;uBACuB;AACvB;OACO;AACP;AACA;yBACyB;AACzB;uBACuB;AACvB;;EAEE,cAAc;AAChB;AACA;;EAEE,aAAa;AACf;AACA;;EAEE,WAAW;EACX,YAAY;AACd;AACA;;EAEE,6BAA6B;EAC7B,qBAAqB;EACrB,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,YAAY;AACd;AACA;;EAEE,qBAAqB;AACvB;AACA;EACE,WAAW;AACb;AACA;EACE,aAAa;AACf;AACA;;EAEE,SAAS;EACT,wBAAwB;AAC1B;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,WAAW;EACX,oBAAoB;EACpB,WAAW;EACX,gBAAgB;EAChB,UAAU;EACV,eAAe;EACf,qCAAqC;EACrC,8BAA8B;UACtB,sBAAsB;AAChC;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,2BAA2B;AAC7B;AACA;EACE,cAAc;EACd,WAAW;EACX,kBAAkB;AACpB;AACA;EACE,MAAM;EACN,gBAAgB;AAClB;AACA;EACE,kCAAkC;EAClC,mCAAmC;EACnC,2CAA2C;EAC3C,QAAQ;AACV;AACA;EACE,QAAQ;AACV;AACA;EACE,kCAAkC;EAClC,mCAAmC;EACnC,wCAAwC;EACxC,QAAQ;AACV;AACA;EACE,cAAc;EACd,YAAY;AACd;AACA;EACE,qBAAqB;AACvB;AACA;EACE,4BAA4B;AAC9B;AACA;E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\",\"file\":\"flatpickr.css\",\"sourcesContent\":[\".flatpickr-calendar {\\n background: transparent;\\n opacity: 0;\\n display: none;\\n text-align: center;\\n visibility: hidden;\\n padding: 0;\\n -webkit-animation: none;\\n animation: none;\\n direction: ltr;\\n border: 0;\\n font-size: 14px;\\n line-height: 24px;\\n border-radius: 5px;\\n position: absolute;\\n width: 307.875px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -ms-touch-action: manipulation;\\n touch-action: manipulation;\\n background: #fff;\\n -webkit-box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);\\n box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0,0,0,0.08);\\n}\\n.flatpickr-calendar.open,\\n.flatpickr-calendar.inline {\\n opacity: 1;\\n max-height: 640px;\\n visibility: visible;\\n}\\n.flatpickr-calendar.open {\\n display: inline-block;\\n z-index: 99999;\\n}\\n.flatpickr-calendar.animate.open {\\n -webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);\\n animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);\\n}\\n.flatpickr-calendar.inline {\\n display: block;\\n position: relative;\\n top: 2px;\\n}\\n.flatpickr-calendar.static {\\n position: absolute;\\n top: calc(100% + 2px);\\n}\\n.flatpickr-calendar.static.open {\\n z-index: 999;\\n display: block;\\n}\\n.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {\\n -webkit-box-shadow: none !important;\\n box-shadow: none !important;\\n}\\n.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {\\n -webkit-box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n}\\n.flatpickr-calendar .hasWeeks .dayContainer,\\n.flatpickr-calendar .hasTime .dayContainer {\\n border-bottom: 0;\\n border-bottom-right-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n.flatpickr-calendar .hasWeeks .dayContainer {\\n border-left: 0;\\n}\\n.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time {\\n height: 40px;\\n border-top: 1px solid #e6e6e6;\\n}\\n.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {\\n height: auto;\\n}\\n.flatpickr-calendar:before,\\n.flatpickr-calendar:after {\\n position: absolute;\\n display: block;\\n pointer-events: none;\\n border: solid transparent;\\n content: '';\\n height: 0;\\n width: 0;\\n left: 22px;\\n}\\n.flatpickr-calendar.rightMost:before,\\n.flatpickr-calendar.rightMost:after {\\n left: auto;\\n right: 22px;\\n}\\n.flatpickr-calendar:before {\\n border-width: 5px;\\n margin: 0 -5px;\\n}\\n.flatpickr-calendar:after {\\n border-width: 4px;\\n margin: 0 -4px;\\n}\\n.flatpickr-calendar.arrowTop:before,\\n.flatpickr-calendar.arrowTop:after {\\n bottom: 100%;\\n}\\n.flatpickr-calendar.arrowTop:before {\\n border-bottom-color: #e6e6e6;\\n}\\n.flatpickr-calendar.arrowTop:after {\\n border-bottom-color: #fff;\\n}\\n.flatpickr-calendar.arrowBottom:before,\\n.flatpickr-calendar.arrowBottom:after {\\n top: 100%;\\n}\\n.flatpickr-calendar.arrowBottom:before {\\n border-top-color: #e6e6e6;\\n}\\n.flatpickr-calendar.arrowBottom:after {\\n border-top-color: #fff;\\n}\\n.flatpickr-calendar:focus {\\n outline: 0;\\n}\\n.flatpickr-wrapper {\\n position: relative;\\n display: inline-block;\\n}\\n.flatpickr-months {\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.flatpickr-months .flatpickr-month {\\n background: transparent;\\n color: rgba(0,0,0,0.9);\\n fill: rgba(0,0,0,0.9);\\n height: 34px;\\n line-height: 1;\\n text-align: center;\\n position: relative;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n overflow: hidden;\\n -webkit-box-flex: 1;\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n}\\n.flatpickr-months .flatpickr-prev-month,\\n.flatpickr-months .flatpickr-next-month {\\n text-decoration: none;\\n cursor: pointer;\\n position: absolute;\\n top: 0;\\n height: 34px;\\n padding: 10px;\\n z-index: 3;\\n color: rgba(0,0,0,0.9);\\n fill: rgba(0,0,0,0.9);\\n}\\n.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,\\n.flatpickr-months .flatpickr-next-month.flatpickr-disabled {\\n display: none;\\n}\\n.flatpickr-months .flatpickr-prev-month i,\\n.flatpickr-months .flatpickr-next-month i {\\n position: relative;\\n}\\n.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,\\n.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n */\\n left: 0;\\n/*\\n /*rtl:end:ignore*/\\n/*\\n */\\n}\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n /*rtl:end:ignore*/\\n.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,\\n.flatpickr-months .flatpickr-next-month.flatpickr-next-month {\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n */\\n right: 0;\\n/*\\n /*rtl:end:ignore*/\\n/*\\n */\\n}\\n/*\\n /*rtl:begin:ignore*/\\n/*\\n /*rtl:end:ignore*/\\n.flatpickr-months .flatpickr-prev-month:hover,\\n.flatpickr-months .flatpickr-next-month:hover {\\n color: #959ea9;\\n}\\n.flatpickr-months .flatpickr-prev-month:hover svg,\\n.flatpickr-months .flatpickr-next-month:hover svg {\\n fill: #f64747;\\n}\\n.flatpickr-months .flatpickr-prev-month svg,\\n.flatpickr-months .flatpickr-next-month svg {\\n width: 14px;\\n height: 14px;\\n}\\n.flatpickr-months .flatpickr-prev-month svg path,\\n.flatpickr-months .flatpickr-next-month svg path {\\n -webkit-transition: fill 0.1s;\\n transition: fill 0.1s;\\n fill: inherit;\\n}\\n.numInputWrapper {\\n position: relative;\\n height: auto;\\n}\\n.numInputWrapper input,\\n.numInputWrapper span {\\n display: inline-block;\\n}\\n.numInputWrapper input {\\n width: 100%;\\n}\\n.numInputWrapper input::-ms-clear {\\n display: none;\\n}\\n.numInputWrapper input::-webkit-outer-spin-button,\\n.numInputWrapper input::-webkit-inner-spin-button {\\n margin: 0;\\n -webkit-appearance: none;\\n}\\n.numInputWrapper span {\\n position: absolute;\\n right: 0;\\n width: 14px;\\n padding: 0 4px 0 2px;\\n height: 50%;\\n line-height: 50%;\\n opacity: 0;\\n cursor: pointer;\\n border: 1px solid rgba(57,57,57,0.15);\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.numInputWrapper span:hover {\\n background: rgba(0,0,0,0.1);\\n}\\n.numInputWrapper span:active {\\n background: rgba(0,0,0,0.2);\\n}\\n.numInputWrapper span:after {\\n display: block;\\n content: \\\"\\\";\\n position: absolute;\\n}\\n.numInputWrapper span.arrowUp {\\n top: 0;\\n border-bottom: 0;\\n}\\n.numInputWrapper span.arrowUp:after {\\n border-left: 4px solid transparent;\\n border-right: 4px solid transparent;\\n border-bottom: 4px solid rgba(57,57,57,0.6);\\n top: 26%;\\n}\\n.numInputWrapper span.arrowDown {\\n top: 50%;\\n}\\n.numInputWrapper span.arrowDown:after {\\n border-left: 4px solid transparent;\\n border-right: 4px solid transparent;\\n border-top: 4px solid rgba(57,57,57,0.6);\\n top: 40%;\\n}\\n.numInputWrapper span svg {\\n width: inherit;\\n height: auto;\\n}\\n.numInputWrapper span svg path {\\n fill: rgba(0,0,0,0.5);\\n}\\n.numInputWrapper:hover {\\n background: rgba(0,0,0,0.05);\\n}\\n.numInputWrapper:hover span {\\n opacity: 1;\\n}\\n.flatpickr-current-month {\\n font-size: 135%;\\n line-height: inherit;\\n font-weight: 300;\\n color: inherit;\\n position: absolute;\\n width: 75%;\\n left: 12.5%;\\n padding: 7.48px 0 0 0;\\n line-height: 1;\\n height: 34px;\\n display: inline-block;\\n text-align: center;\\n -webkit-transform: translate3d(0px, 0px, 0px);\\n transform: translate3d(0px, 0px, 0px);\\n}\\n.flatpickr-current-month span.cur-month {\\n font-family: inherit;\\n font-weight: 700;\\n color: inherit;\\n display: inline-block;\\n margin-left: 0.5ch;\\n padding: 0;\\n}\\n.flatpickr-current-month span.cur-month:hover {\\n background: rgba(0,0,0,0.05);\\n}\\n.flatpickr-current-month .numInputWrapper {\\n width: 6ch;\\n width: 7ch\\\\0;\\n display: inline-block;\\n}\\n.flatpickr-current-month .numInputWrapper span.arrowUp:after {\\n border-bottom-color: rgba(0,0,0,0.9);\\n}\\n.flatpickr-current-month .numInputWrapper span.arrowDown:after {\\n border-top-color: rgba(0,0,0,0.9);\\n}\\n.flatpickr-current-month input.cur-year {\\n background: transparent;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: inherit;\\n cursor: text;\\n padding: 0 0 0 0.5ch;\\n margin: 0;\\n display: inline-block;\\n font-size: inherit;\\n font-family: inherit;\\n font-weight: 300;\\n line-height: inherit;\\n height: auto;\\n border: 0;\\n border-radius: 0;\\n vertical-align: initial;\\n -webkit-appearance: textfield;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n}\\n.flatpickr-current-month input.cur-year:focus {\\n outline: 0;\\n}\\n.flatpickr-current-month input.cur-year[disabled],\\n.flatpickr-current-month input.cur-year[disabled]:hover {\\n font-size: 100%;\\n color: rgba(0,0,0,0.5);\\n background: transparent;\\n pointer-events: none;\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months {\\n appearance: menulist;\\n background: transparent;\\n border: none;\\n border-radius: 0;\\n box-sizing: border-box;\\n color: inherit;\\n cursor: pointer;\\n font-size: inherit;\\n font-family: inherit;\\n font-weight: 300;\\n height: auto;\\n line-height: inherit;\\n margin: -1px 0 0 0;\\n outline: none;\\n padding: 0 0 0 0.5ch;\\n position: relative;\\n vertical-align: initial;\\n -webkit-box-sizing: border-box;\\n -webkit-appearance: menulist;\\n -moz-appearance: menulist;\\n width: auto;\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months:focus,\\n.flatpickr-current-month .flatpickr-monthDropdown-months:active {\\n outline: none;\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months:hover {\\n background: rgba(0,0,0,0.05);\\n}\\n.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {\\n background-color: transparent;\\n outline: none;\\n padding: 0;\\n}\\n.flatpickr-weekdays {\\n background: transparent;\\n text-align: center;\\n overflow: hidden;\\n width: 100%;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: center;\\n -webkit-align-items: center;\\n -ms-flex-align: center;\\n align-items: center;\\n height: 28px;\\n}\\n.flatpickr-weekdays .flatpickr-weekdaycontainer {\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-flex: 1;\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n}\\nspan.flatpickr-weekday {\\n cursor: default;\\n font-size: 90%;\\n background: transparent;\\n color: rgba(0,0,0,0.54);\\n line-height: 1;\\n margin: 0;\\n text-align: center;\\n display: block;\\n -webkit-box-flex: 1;\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n font-weight: bolder;\\n}\\n.dayContainer,\\n.flatpickr-weeks {\\n padding: 1px 0 0 0;\\n}\\n.flatpickr-days {\\n position: relative;\\n overflow: hidden;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-align: start;\\n -webkit-align-items: flex-start;\\n -ms-flex-align: start;\\n align-items: flex-start;\\n width: 307.875px;\\n}\\n.flatpickr-days:focus {\\n outline: 0;\\n}\\n.dayContainer {\\n padding: 0;\\n outline: 0;\\n text-align: left;\\n width: 307.875px;\\n min-width: 307.875px;\\n max-width: 307.875px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n display: inline-block;\\n display: -ms-flexbox;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: flex;\\n -webkit-flex-wrap: wrap;\\n flex-wrap: wrap;\\n -ms-flex-wrap: wrap;\\n -ms-flex-pack: justify;\\n -webkit-justify-content: space-around;\\n justify-content: space-around;\\n -webkit-transform: translate3d(0px, 0px, 0px);\\n transform: translate3d(0px, 0px, 0px);\\n opacity: 1;\\n}\\n.dayContainer + .dayContainer {\\n -webkit-box-shadow: -1px 0 0 #e6e6e6;\\n box-shadow: -1px 0 0 #e6e6e6;\\n}\\n.flatpickr-day {\\n background: none;\\n border: 1px solid transparent;\\n border-radius: 150px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n color: #393939;\\n cursor: pointer;\\n font-weight: 400;\\n width: 14.2857143%;\\n -webkit-flex-basis: 14.2857143%;\\n -ms-flex-preferred-size: 14.2857143%;\\n flex-basis: 14.2857143%;\\n max-width: 39px;\\n height: 39px;\\n line-height: 39px;\\n margin: 0;\\n display: inline-block;\\n position: relative;\\n -webkit-box-pack: center;\\n -webkit-justify-content: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n text-align: center;\\n}\\n.flatpickr-day.inRange,\\n.flatpickr-day.prevMonthDay.inRange,\\n.flatpickr-day.nextMonthDay.inRange,\\n.flatpickr-day.today.inRange,\\n.flatpickr-day.prevMonthDay.today.inRange,\\n.flatpickr-day.nextMonthDay.today.inRange,\\n.flatpickr-day:hover,\\n.flatpickr-day.prevMonthDay:hover,\\n.flatpickr-day.nextMonthDay:hover,\\n.flatpickr-day:focus,\\n.flatpickr-day.prevMonthDay:focus,\\n.flatpickr-day.nextMonthDay:focus {\\n cursor: pointer;\\n outline: 0;\\n background: #e6e6e6;\\n border-color: #e6e6e6;\\n}\\n.flatpickr-day.today {\\n border-color: #959ea9;\\n}\\n.flatpickr-day.today:hover,\\n.flatpickr-day.today:focus {\\n border-color: #959ea9;\\n background: #959ea9;\\n color: #fff;\\n}\\n.flatpickr-day.selected,\\n.flatpickr-day.startRange,\\n.flatpickr-day.endRange,\\n.flatpickr-day.selected.inRange,\\n.flatpickr-day.startRange.inRange,\\n.flatpickr-day.endRange.inRange,\\n.flatpickr-day.selected:focus,\\n.flatpickr-day.startRange:focus,\\n.flatpickr-day.endRange:focus,\\n.flatpickr-day.selected:hover,\\n.flatpickr-day.startRange:hover,\\n.flatpickr-day.endRange:hover,\\n.flatpickr-day.selected.prevMonthDay,\\n.flatpickr-day.startRange.prevMonthDay,\\n.flatpickr-day.endRange.prevMonthDay,\\n.flatpickr-day.selected.nextMonthDay,\\n.flatpickr-day.startRange.nextMonthDay,\\n.flatpickr-day.endRange.nextMonthDay {\\n background: #569ff7;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n color: #fff;\\n border-color: #569ff7;\\n}\\n.flatpickr-day.selected.startRange,\\n.flatpickr-day.startRange.startRange,\\n.flatpickr-day.endRange.startRange {\\n border-radius: 50px 0 0 50px;\\n}\\n.flatpickr-day.selected.endRange,\\n.flatpickr-day.startRange.endRange,\\n.flatpickr-day.endRange.endRange {\\n border-radius: 0 50px 50px 0;\\n}\\n.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),\\n.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),\\n.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {\\n -webkit-box-shadow: -10px 0 0 #569ff7;\\n box-shadow: -10px 0 0 #569ff7;\\n}\\n.flatpickr-day.selected.startRange.endRange,\\n.flatpickr-day.startRange.startRange.endRange,\\n.flatpickr-day.endRange.startRange.endRange {\\n border-radius: 50px;\\n}\\n.flatpickr-day.inRange {\\n border-radius: 0;\\n -webkit-box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;\\n}\\n.flatpickr-day.flatpickr-disabled,\\n.flatpickr-day.flatpickr-disabled:hover,\\n.flatpickr-day.prevMonthDay,\\n.flatpickr-day.nextMonthDay,\\n.flatpickr-day.notAllowed,\\n.flatpickr-day.notAllowed.prevMonthDay,\\n.flatpickr-day.notAllowed.nextMonthDay {\\n color: rgba(57,57,57,0.3);\\n background: transparent;\\n border-color: transparent;\\n cursor: default;\\n}\\n.flatpickr-day.flatpickr-disabled,\\n.flatpickr-day.flatpickr-disabled:hover {\\n cursor: not-allowed;\\n color: rgba(57,57,57,0.1);\\n}\\n.flatpickr-day.week.selected {\\n border-radius: 0;\\n -webkit-box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;\\n box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;\\n}\\n.flatpickr-day.hidden {\\n visibility: hidden;\\n}\\n.rangeMode .flatpickr-day {\\n margin-top: 1px;\\n}\\n.flatpickr-weekwrapper {\\n float: left;\\n}\\n.flatpickr-weekwrapper .flatpickr-weeks {\\n padding: 0 12px;\\n -webkit-box-shadow: 1px 0 0 #e6e6e6;\\n box-shadow: 1px 0 0 #e6e6e6;\\n}\\n.flatpickr-weekwrapper .flatpickr-weekday {\\n float: none;\\n width: 100%;\\n line-height: 28px;\\n}\\n.flatpickr-weekwrapper span.flatpickr-day,\\n.flatpickr-weekwrapper span.flatpickr-day:hover {\\n display: block;\\n width: 100%;\\n max-width: none;\\n color: rgba(57,57,57,0.3);\\n background: transparent;\\n cursor: default;\\n border: none;\\n}\\n.flatpickr-innerContainer {\\n display: block;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n.flatpickr-rContainer {\\n display: inline-block;\\n padding: 0;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n}\\n.flatpickr-time {\\n text-align: center;\\n outline: 0;\\n display: block;\\n height: 0;\\n line-height: 40px;\\n max-height: 40px;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n overflow: hidden;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -ms-flexbox;\\n display: flex;\\n}\\n.flatpickr-time:after {\\n content: \\\"\\\";\\n display: table;\\n clear: both;\\n}\\n.flatpickr-time .numInputWrapper {\\n -webkit-box-flex: 1;\\n -webkit-flex: 1;\\n -ms-flex: 1;\\n flex: 1;\\n width: 40%;\\n height: 40px;\\n float: left;\\n}\\n.flatpickr-time .numInputWrapper span.arrowUp:after {\\n border-bottom-color: #393939;\\n}\\n.flatpickr-time .numInputWrapper span.arrowDown:after {\\n border-top-color: #393939;\\n}\\n.flatpickr-time.hasSeconds .numInputWrapper {\\n width: 26%;\\n}\\n.flatpickr-time.time24hr .numInputWrapper {\\n width: 49%;\\n}\\n.flatpickr-time input {\\n background: transparent;\\n -webkit-box-shadow: none;\\n box-shadow: none;\\n border: 0;\\n border-radius: 0;\\n text-align: center;\\n margin: 0;\\n padding: 0;\\n height: inherit;\\n line-height: inherit;\\n color: #393939;\\n font-size: 14px;\\n position: relative;\\n -webkit-box-sizing: border-box;\\n box-sizing: border-box;\\n -webkit-appearance: textfield;\\n -moz-appearance: textfield;\\n appearance: textfield;\\n}\\n.flatpickr-time input.flatpickr-hour {\\n font-weight: bold;\\n}\\n.flatpickr-time input.flatpickr-minute,\\n.flatpickr-time input.flatpickr-second {\\n font-weight: 400;\\n}\\n.flatpickr-time input:focus {\\n outline: 0;\\n border: 0;\\n}\\n.flatpickr-time .flatpickr-time-separator,\\n.flatpickr-time .flatpickr-am-pm {\\n height: inherit;\\n float: left;\\n line-height: inherit;\\n color: #393939;\\n font-weight: bold;\\n width: 2%;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n user-select: none;\\n -webkit-align-self: center;\\n -ms-flex-item-align: center;\\n align-self: center;\\n}\\n.flatpickr-time .flatpickr-am-pm {\\n outline: 0;\\n width: 18%;\\n cursor: pointer;\\n text-align: center;\\n font-weight: 400;\\n}\\n.flatpickr-time input:hover,\\n.flatpickr-time .flatpickr-am-pm:hover,\\n.flatpickr-time input:focus,\\n.flatpickr-time .flatpickr-am-pm:focus {\\n background: #eee;\\n}\\n.flatpickr-input[readonly] {\\n cursor: pointer;\\n}\\n@-webkit-keyframes fpFadeInDown {\\n from {\\n opacity: 0;\\n -webkit-transform: translate3d(0, -20px, 0);\\n transform: translate3d(0, -20px, 0);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n@keyframes fpFadeInDown {\\n from {\\n opacity: 0;\\n -webkit-transform: translate3d(0, -20px, 0);\\n transform: translate3d(0, -20px, 0);\\n }\\n to {\\n opacity: 1;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n }\\n}\\n\"]}]);\n// Exports\nmodule.exports = exports;\n","/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n var previousToast;\n return toastr; ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) {\n options = getOptions();\n }\n\n $container = $('#' + options.containerId);\n\n if ($container.length) {\n return $container;\n }\n\n if (create) {\n $container = createContainer(options);\n }\n\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n\n if (!$container) {\n getContainer(options);\n }\n\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n\n if (!$container) {\n getContainer(options);\n }\n\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n\n if ($container.children().length) {\n $container.remove();\n }\n } // internal functions\n\n\n function clearContainer(options) {\n var toastsToClear = $container.children();\n\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function complete() {\n removeToast($toastElement);\n }\n });\n return true;\n }\n\n return false;\n }\n\n function createContainer(options) {\n $container = $('
    ').attr('id', options.containerId).addClass(options.positionClass);\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n showMethod: 'fadeIn',\n //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing',\n //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000,\n // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) {\n return;\n }\n\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof map.optionsOverride !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) {\n return;\n }\n\n toastId++;\n $container = getContainer(options, true);\n var intervalId = null;\n var $toastElement = $('
    ');\n var $titleElement = $('
    ');\n var $messageElement = $('
    ');\n var $progressElement = $('
    ');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n personalizeToast();\n displayToast();\n handleEvents();\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source.replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n\n default:\n ariaValue = 'assertive';\n }\n\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n $toastElement[options.showMethod]({\n duration: options.showDuration,\n easing: options.showEasing,\n complete: options.onShown\n });\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ? options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function complete() {\n removeToast($toastElement);\n clearTimeout(intervalId);\n\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod]({\n duration: options.showDuration,\n easing: options.showEasing\n });\n }\n\n function updateProgress() {\n var percentage = (progressBar.hideEta - new Date().getTime()) / progressBar.maxHideTime * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) {\n $container = getContainer();\n }\n\n if ($toastElement.is(':visible')) {\n return;\n }\n\n $toastElement.remove();\n $toastElement = null;\n\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n }();\n });\n})(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) {\n //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n});","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nimport $$observable from 'symbol-observable';\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\n\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\n\nfunction isPlainObject(obj) {\n if (_typeof(obj) !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (_typeof(observer) !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\n\n\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (_typeof(actionCreators) !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : _typeof(actionCreators)) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\n\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport var defaultState = [];\nexport default function items() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case 'ADD_ITEM':\n {\n // Add object to items array\n var newState = [].concat(_toConsumableArray(state), [{\n id: action.id,\n choiceId: action.choiceId,\n groupId: action.groupId,\n value: action.value,\n label: action.label,\n active: true,\n highlighted: false,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null\n }]);\n return newState.map(function (obj) {\n var item = obj;\n item.highlighted = false;\n return item;\n });\n }\n\n case 'REMOVE_ITEM':\n {\n // Set item to inactive\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === action.id) {\n item.active = false;\n }\n\n return item;\n });\n }\n\n case 'HIGHLIGHT_ITEM':\n {\n return state.map(function (obj) {\n var item = obj;\n\n if (item.id === action.id) {\n item.highlighted = action.highlighted;\n }\n\n return item;\n });\n }\n\n default:\n {\n return state;\n }\n }\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport var defaultState = [];\nexport default function groups() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case 'ADD_GROUP':\n {\n return [].concat(_toConsumableArray(state), [{\n id: action.id,\n value: action.value,\n active: action.active,\n disabled: action.disabled\n }]);\n }\n\n case 'CLEAR_CHOICES':\n {\n return [];\n }\n\n default:\n {\n return state;\n }\n }\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport var defaultState = [];\nexport default function choices() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case 'ADD_CHOICE':\n {\n /*\n A disabled choice appears in the choice dropdown but cannot be selected\n A selected choice has been added to the passed input's value (added as an item)\n An active choice appears within the choice dropdown\n */\n return [].concat(_toConsumableArray(state), [{\n id: action.id,\n elementId: action.elementId,\n groupId: action.groupId,\n value: action.value,\n label: action.label || action.value,\n disabled: action.disabled || false,\n selected: false,\n active: true,\n score: 9999,\n customProperties: action.customProperties,\n placeholder: action.placeholder || false,\n keyCode: null\n }]);\n }\n\n case 'ADD_ITEM':\n {\n // If all choices need to be activated\n if (action.activateOptions) {\n return state.map(function (obj) {\n var choice = obj;\n choice.active = action.active;\n return choice;\n });\n } // When an item is added and it has an associated choice,\n // we want to disable it so it can't be chosen again\n\n\n if (action.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = true;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'REMOVE_ITEM':\n {\n // When an item is removed and it has an associated choice,\n // we want to re-enable it so it can be chosen again\n if (action.choiceId > -1) {\n return state.map(function (obj) {\n var choice = obj;\n\n if (choice.id === parseInt(action.choiceId, 10)) {\n choice.selected = false;\n }\n\n return choice;\n });\n }\n\n return state;\n }\n\n case 'FILTER_CHOICES':\n {\n return state.map(function (obj) {\n var choice = obj; // Set active state based on whether choice is\n // within filtered results\n\n choice.active = action.results.some(function (_ref) {\n var item = _ref.item,\n score = _ref.score;\n\n if (item.id === choice.id) {\n choice.score = score;\n return true;\n }\n\n return false;\n });\n return choice;\n });\n }\n\n case 'ACTIVATE_CHOICES':\n {\n return state.map(function (obj) {\n var choice = obj;\n choice.active = action.active;\n return choice;\n });\n }\n\n case 'CLEAR_CHOICES':\n {\n return defaultState;\n }\n\n default:\n {\n return state;\n }\n }\n}","export var defaultState = {\n loading: false\n};\n\nvar general = function general() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case 'SET_IS_LOADING':\n {\n return {\n loading: action.isLoading\n };\n }\n\n default:\n {\n return state;\n }\n }\n};\n\nexport default general;","/**\n * @param {number} min\n * @param {number} max\n * @returns {number}\n */\nexport var getRandomNumber = function getRandomNumber(min, max) {\n return Math.floor(Math.random() * (max - min) + min);\n};\n/**\n * @param {number} length\n * @returns {string}\n */\n\nexport var generateChars = function generateChars(length) {\n return Array.from({\n length: length\n }, function () {\n return getRandomNumber(0, 36).toString(36);\n }).join('');\n};\n/**\n * @param {HTMLInputElement | HTMLSelectElement} element\n * @param {string} prefix\n * @returns {string}\n */\n\nexport var generateId = function generateId(element, prefix) {\n var id = element.id || element.name && \"\".concat(element.name, \"-\").concat(generateChars(2)) || generateChars(4);\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = \"\".concat(prefix, \"-\").concat(id);\n return id;\n};\n/**\n * @param {any} obj\n * @returns {string}\n */\n\nexport var getType = function getType(obj) {\n return Object.prototype.toString.call(obj).slice(8, -1);\n};\n/**\n * @param {string} type\n * @param {any} obj\n * @returns {boolean}\n */\n\nexport var isType = function isType(type, obj) {\n return obj !== undefined && obj !== null && getType(obj) === type;\n};\n/**\n * @param {HTMLElement} element\n * @param {HTMLElement} [wrapper={HTMLDivElement}]\n * @returns {HTMLElement}\n */\n\nexport var wrap = function wrap(element) {\n var wrapper = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.createElement('div');\n\n if (element.nextSibling) {\n element.parentNode.insertBefore(wrapper, element.nextSibling);\n } else {\n element.parentNode.appendChild(wrapper);\n }\n\n return wrapper.appendChild(element);\n};\n/**\n * @param {Element} startEl\n * @param {string} selector\n * @param {1 | -1} direction\n * @returns {Element | undefined}\n */\n\nexport var getAdjacentEl = function getAdjacentEl(startEl, selector) {\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (!(startEl instanceof Element) || typeof selector !== 'string') {\n return undefined;\n }\n\n var prop = \"\".concat(direction > 0 ? 'next' : 'previous', \"ElementSibling\");\n var sibling = startEl[prop];\n\n while (sibling) {\n if (sibling.matches(selector)) {\n return sibling;\n }\n\n sibling = sibling[prop];\n }\n\n return sibling;\n};\n/**\n * @param {Element} element\n * @param {Element} parent\n * @param {-1 | 1} direction\n * @returns {boolean}\n */\n\nexport var isScrolledIntoView = function isScrolledIntoView(element, parent) {\n var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (!element) {\n return false;\n }\n\n var isVisible;\n\n if (direction > 0) {\n // In view from bottom\n isVisible = parent.scrollTop + parent.offsetHeight >= element.offsetTop + element.offsetHeight;\n } else {\n // In view from top\n isVisible = element.offsetTop >= parent.scrollTop;\n }\n\n return isVisible;\n};\n/**\n * @param {any} value\n * @returns {any}\n */\n\nexport var sanitise = function sanitise(value) {\n if (typeof value !== 'string') {\n return value;\n }\n\n return value.replace(/&/g, '&').replace(/>/g, '&rt;').replace(/ (str: string) => Element}\n */\n\nexport var strToEl = function () {\n var tmpEl = document.createElement('div');\n return function (str) {\n var cleanedInput = str.trim();\n tmpEl.innerHTML = cleanedInput;\n var firldChild = tmpEl.children[0];\n\n while (tmpEl.firstChild) {\n tmpEl.removeChild(tmpEl.firstChild);\n }\n\n return firldChild;\n };\n}();\n/**\n * @param {{ label?: string, value: string }} a\n * @param {{ label?: string, value: string }} b\n * @returns {number}\n */\n\nexport var sortByAlpha = function sortByAlpha(_ref, _ref2) {\n var value = _ref.value,\n _ref$label = _ref.label,\n label = _ref$label === void 0 ? value : _ref$label;\n var value2 = _ref2.value,\n _ref2$label = _ref2.label,\n label2 = _ref2$label === void 0 ? value2 : _ref2$label;\n return label.localeCompare(label2, [], {\n sensitivity: 'base',\n ignorePunctuation: true,\n numeric: true\n });\n};\n/**\n * @param {{ score: number }} a\n * @param {{ score: number }} b\n */\n\nexport var sortByScore = function sortByScore(a, b) {\n return a.score - b.score;\n};\n/**\n * @param {HTMLElement} element\n * @param {string} type\n * @param {object} customArgs\n */\n\nexport var dispatchEvent = function dispatchEvent(element, type) {\n var customArgs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var event = new CustomEvent(type, {\n detail: customArgs,\n bubbles: true,\n cancelable: true\n });\n return element.dispatchEvent(event);\n};\n/**\n * @param {array} array\n * @param {any} value\n * @param {string} [key=\"value\"]\n * @returns {boolean}\n */\n\nexport var existsInArray = function existsInArray(array, value) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'value';\n return array.some(function (item) {\n if (typeof value === 'string') {\n return item[key] === value.trim();\n }\n\n return item[key] === value;\n });\n};\n/**\n * @param {any} obj\n * @returns {any}\n */\n\nexport var cloneObject = function cloneObject(obj) {\n return JSON.parse(JSON.stringify(obj));\n};\n/**\n * Returns an array of keys present on the first but missing on the second object\n * @param {object} a\n * @param {object} b\n * @returns {string[]}\n */\n\nexport var diff = function diff(a, b) {\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n return aKeys.filter(function (i) {\n return bKeys.indexOf(i) < 0;\n });\n};","import { combineReducers } from 'redux';\nimport items from './items';\nimport groups from './groups';\nimport choices from './choices';\nimport general from './general';\nimport { cloneObject } from '../lib/utils';\nvar appReducer = combineReducers({\n items: items,\n groups: groups,\n choices: choices,\n general: general\n});\n\nvar rootReducer = function rootReducer(passedState, action) {\n var state = passedState; // If we are clearing all items, groups and options we reassign\n // state and then pass that state to our proper reducer. This isn't\n // mutating our actual state\n // See: http://stackoverflow.com/a/35641992\n\n if (action.type === 'CLEAR_ALL') {\n state = undefined;\n } else if (action.type === 'RESET_TO') {\n return cloneObject(action.state);\n }\n\n return appReducer(state, action);\n};\n\nexport default rootReducer;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { createStore } from 'redux';\nimport rootReducer from '../reducers/index';\n/**\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n * @typedef {import('../../../types/index').Choices.Group} Group\n * @typedef {import('../../../types/index').Choices.Item} Item\n */\n\nvar Store = /*#__PURE__*/function () {\n function Store() {\n _classCallCheck(this, Store);\n\n this._store = createStore(rootReducer, window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());\n }\n /**\n * Subscribe store to function call (wrapped Redux method)\n * @param {Function} onChange Function to trigger when state changes\n * @return\n */\n\n\n _createClass(Store, [{\n key: \"subscribe\",\n value: function subscribe(onChange) {\n this._store.subscribe(onChange);\n }\n /**\n * Dispatch event to store (wrapped Redux method)\n * @param {{ type: string, [x: string]: any }} action Action to trigger\n * @return\n */\n\n }, {\n key: \"dispatch\",\n value: function dispatch(action) {\n this._store.dispatch(action);\n }\n /**\n * Get store object (wrapping Redux method)\n * @returns {object} State\n */\n\n }, {\n key: \"state\",\n get: function get() {\n return this._store.getState();\n }\n /**\n * Get items from store\n * @returns {Item[]} Item objects\n */\n\n }, {\n key: \"items\",\n get: function get() {\n return this.state.items;\n }\n /**\n * Get active items from store\n * @returns {Item[]} Item objects\n */\n\n }, {\n key: \"activeItems\",\n get: function get() {\n return this.items.filter(function (item) {\n return item.active === true;\n });\n }\n /**\n * Get highlighted items from store\n * @returns {Item[]} Item objects\n */\n\n }, {\n key: \"highlightedActiveItems\",\n get: function get() {\n return this.items.filter(function (item) {\n return item.active && item.highlighted;\n });\n }\n /**\n * Get choices from store\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"choices\",\n get: function get() {\n return this.state.choices;\n }\n /**\n * Get active choices from store\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"activeChoices\",\n get: function get() {\n return this.choices.filter(function (choice) {\n return choice.active === true;\n });\n }\n /**\n * Get selectable choices from store\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"selectableChoices\",\n get: function get() {\n return this.choices.filter(function (choice) {\n return choice.disabled !== true;\n });\n }\n /**\n * Get choices that can be searched (excluding placeholders)\n * @returns {Choice[]} Option objects\n */\n\n }, {\n key: \"searchableChoices\",\n get: function get() {\n return this.selectableChoices.filter(function (choice) {\n return choice.placeholder !== true;\n });\n }\n /**\n * Get placeholder choice from store\n * @returns {Choice | undefined} Found placeholder\n */\n\n }, {\n key: \"placeholderChoice\",\n get: function get() {\n return _toConsumableArray(this.choices).reverse().find(function (choice) {\n return choice.placeholder === true;\n });\n }\n /**\n * Get groups from store\n * @returns {Group[]} Group objects\n */\n\n }, {\n key: \"groups\",\n get: function get() {\n return this.state.groups;\n }\n /**\n * Get active groups from store\n * @returns {Group[]} Group objects\n */\n\n }, {\n key: \"activeGroups\",\n get: function get() {\n var groups = this.groups,\n choices = this.choices;\n return groups.filter(function (group) {\n var isActive = group.active === true && group.disabled === false;\n var hasActiveOptions = choices.some(function (choice) {\n return choice.active === true && choice.disabled === false;\n });\n return isActive && hasActiveOptions;\n }, []);\n }\n /**\n * Get loading state from store\n * @returns {boolean} Loading State\n */\n\n }, {\n key: \"isLoading\",\n value: function isLoading() {\n return this.state.general.loading;\n }\n /**\n * Get single choice by it's ID\n * @param {string} id\n * @returns {Choice | undefined} Found choice\n */\n\n }, {\n key: \"getChoiceById\",\n value: function getChoiceById(id) {\n return this.activeChoices.find(function (choice) {\n return choice.id === parseInt(id, 10);\n });\n }\n /**\n * Get group by group id\n * @param {number} id Group ID\n * @returns {Group | undefined} Group data\n */\n\n }, {\n key: \"getGroupById\",\n value: function getGroupById(id) {\n return this.groups.find(function (group) {\n return group.id === id;\n });\n }\n }]);\n\n return Store;\n}();\n\nexport { Store as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\nvar Dropdown = /*#__PURE__*/function () {\n /**\n * @param {{\n * element: HTMLElement,\n * type: passedElement['type'],\n * classNames: ClassNames,\n * }} args\n */\n function Dropdown(_ref) {\n var element = _ref.element,\n type = _ref.type,\n classNames = _ref.classNames;\n\n _classCallCheck(this, Dropdown);\n\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.isActive = false;\n }\n /**\n * Bottom position of dropdown in viewport coordinates\n * @returns {number} Vertical position\n */\n\n\n _createClass(Dropdown, [{\n key: \"distanceFromTopWindow\",\n get: function get() {\n return this.element.getBoundingClientRect().bottom;\n }\n /**\n * Find element that matches passed selector\n * @param {string} selector\n * @returns {HTMLElement | null}\n */\n\n }, {\n key: \"getChild\",\n value: function getChild(selector) {\n return this.element.querySelector(selector);\n }\n /**\n * Show dropdown to user by adding active state class\n * @returns {this}\n */\n\n }, {\n key: \"show\",\n value: function show() {\n this.element.classList.add(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isActive = true;\n return this;\n }\n /**\n * Hide dropdown from user\n * @returns {this}\n */\n\n }, {\n key: \"hide\",\n value: function hide() {\n this.element.classList.remove(this.classNames.activeState);\n this.element.setAttribute('aria-expanded', 'false');\n this.isActive = false;\n return this;\n }\n }]);\n\n return Dropdown;\n}();\n\nexport { Dropdown as default };","import { sanitise, sortByAlpha } from './lib/utils';\n/**\n * @typedef {import('../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../types/index').Choices.Options} Options\n */\n\n/** @type {ClassNames} */\n\nexport var DEFAULT_CLASSNAMES = {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n};\n/** @type {Options} */\n\nexport var DEFAULT_CONFIG = {\n items: [],\n choices: [],\n silent: false,\n renderChoiceLimit: -1,\n maxItemCount: -1,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n removeItemButton: false,\n editItems: false,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: sortByAlpha,\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n uniqueItemText: 'Only unique values can be added',\n customAddItemText: 'Only values matching specific conditions can be added',\n addItemText: function addItemText(value) {\n return \"Press Enter to add \\\"\".concat(sanitise(value), \"\\\"\");\n },\n maxItemText: function maxItemText(maxItemCount) {\n return \"Only \".concat(maxItemCount, \" values can be added\");\n },\n valueComparer: function valueComparer(value1, value2) {\n return value1 === value2;\n },\n fuseOptions: {\n includeScore: true\n },\n callbackOnInit: null,\n callbackOnCreateTemplates: null,\n classNames: DEFAULT_CLASSNAMES\n};\nexport var EVENTS = {\n showDropdown: 'showDropdown',\n hideDropdown: 'hideDropdown',\n change: 'change',\n choice: 'choice',\n search: 'search',\n addItem: 'addItem',\n removeItem: 'removeItem',\n highlightItem: 'highlightItem',\n highlightChoice: 'highlightChoice'\n};\nexport var ACTION_TYPES = {\n ADD_CHOICE: 'ADD_CHOICE',\n FILTER_CHOICES: 'FILTER_CHOICES',\n ACTIVATE_CHOICES: 'ACTIVATE_CHOICES',\n CLEAR_CHOICES: 'CLEAR_CHOICES',\n ADD_GROUP: 'ADD_GROUP',\n ADD_ITEM: 'ADD_ITEM',\n REMOVE_ITEM: 'REMOVE_ITEM',\n HIGHLIGHT_ITEM: 'HIGHLIGHT_ITEM',\n CLEAR_ALL: 'CLEAR_ALL'\n};\nexport var KEY_CODES = {\n BACK_KEY: 46,\n DELETE_KEY: 8,\n ENTER_KEY: 13,\n A_KEY: 65,\n ESC_KEY: 27,\n UP_KEY: 38,\n DOWN_KEY: 40,\n PAGE_UP_KEY: 33,\n PAGE_DOWN_KEY: 34\n};\nexport var TEXT_TYPE = 'text';\nexport var SELECT_ONE_TYPE = 'select-one';\nexport var SELECT_MULTIPLE_TYPE = 'select-multiple';\nexport var SCROLLING_SPEED = 4;","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { wrap as _wrap } from '../lib/utils';\nimport { SELECT_ONE_TYPE } from '../constants';\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\n\nvar Container = /*#__PURE__*/function () {\n /**\n * @param {{\n * element: HTMLElement,\n * type: passedElement['type'],\n * classNames: ClassNames,\n * position\n * }} args\n */\n function Container(_ref) {\n var element = _ref.element,\n type = _ref.type,\n classNames = _ref.classNames,\n position = _ref.position;\n\n _classCallCheck(this, Container);\n\n this.element = element;\n this.classNames = classNames;\n this.type = type;\n this.position = position;\n this.isOpen = false;\n this.isFlipped = false;\n this.isFocussed = false;\n this.isDisabled = false;\n this.isLoading = false;\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n\n _createClass(Container, [{\n key: \"addEventListeners\",\n value: function addEventListeners() {\n this.element.addEventListener('focus', this._onFocus);\n this.element.addEventListener('blur', this._onBlur);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n this.element.removeEventListener('focus', this._onFocus);\n this.element.removeEventListener('blur', this._onBlur);\n }\n /**\n * Determine whether container should be flipped based on passed\n * dropdown position\n * @param {number} dropdownPos\n * @returns {boolean}\n */\n\n }, {\n key: \"shouldFlip\",\n value: function shouldFlip(dropdownPos) {\n if (typeof dropdownPos !== 'number') {\n return false;\n } // If flip is enabled and the dropdown bottom position is\n // greater than the window height flip the dropdown.\n\n\n var shouldFlip = false;\n\n if (this.position === 'auto') {\n shouldFlip = !window.matchMedia(\"(min-height: \".concat(dropdownPos + 1, \"px)\")).matches;\n } else if (this.position === 'top') {\n shouldFlip = true;\n }\n\n return shouldFlip;\n }\n /**\n * @param {string} activeDescendantID\n */\n\n }, {\n key: \"setActiveDescendant\",\n value: function setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n }\n }, {\n key: \"removeActiveDescendant\",\n value: function removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n }\n /**\n * @param {number} dropdownPos\n */\n\n }, {\n key: \"open\",\n value: function open(dropdownPos) {\n this.element.classList.add(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'true');\n this.isOpen = true;\n\n if (this.shouldFlip(dropdownPos)) {\n this.element.classList.add(this.classNames.flippedState);\n this.isFlipped = true;\n }\n }\n }, {\n key: \"close\",\n value: function close() {\n this.element.classList.remove(this.classNames.openState);\n this.element.setAttribute('aria-expanded', 'false');\n this.removeActiveDescendant();\n this.isOpen = false; // A dropdown flips if it does not have space within the page\n\n if (this.isFlipped) {\n this.element.classList.remove(this.classNames.flippedState);\n this.isFlipped = false;\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n }\n }, {\n key: \"addFocusState\",\n value: function addFocusState() {\n this.element.classList.add(this.classNames.focusState);\n }\n }, {\n key: \"removeFocusState\",\n value: function removeFocusState() {\n this.element.classList.remove(this.classNames.focusState);\n }\n }, {\n key: \"enable\",\n value: function enable() {\n this.element.classList.remove(this.classNames.disabledState);\n this.element.removeAttribute('aria-disabled');\n\n if (this.type === SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '0');\n }\n\n this.isDisabled = false;\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.element.classList.add(this.classNames.disabledState);\n this.element.setAttribute('aria-disabled', 'true');\n\n if (this.type === SELECT_ONE_TYPE) {\n this.element.setAttribute('tabindex', '-1');\n }\n\n this.isDisabled = true;\n }\n /**\n * @param {HTMLElement} element\n */\n\n }, {\n key: \"wrap\",\n value: function wrap(element) {\n _wrap(element, this.element);\n }\n /**\n * @param {Element} element\n */\n\n }, {\n key: \"unwrap\",\n value: function unwrap(element) {\n // Move passed element outside this element\n this.element.parentNode.insertBefore(element, this.element); // Remove this element\n\n this.element.parentNode.removeChild(this.element);\n }\n }, {\n key: \"addLoadingState\",\n value: function addLoadingState() {\n this.element.classList.add(this.classNames.loadingState);\n this.element.setAttribute('aria-busy', 'true');\n this.isLoading = true;\n }\n }, {\n key: \"removeLoadingState\",\n value: function removeLoadingState() {\n this.element.classList.remove(this.classNames.loadingState);\n this.element.removeAttribute('aria-busy');\n this.isLoading = false;\n }\n }, {\n key: \"_onFocus\",\n value: function _onFocus() {\n this.isFocussed = true;\n }\n }, {\n key: \"_onBlur\",\n value: function _onBlur() {\n this.isFocussed = false;\n }\n }]);\n\n return Container;\n}();\n\nexport { Container as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { sanitise } from '../lib/utils';\nimport { SELECT_ONE_TYPE } from '../constants';\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\n\nvar Input = /*#__PURE__*/function () {\n /**\n * @param {{\n * element: HTMLInputElement,\n * type: passedElement['type'],\n * classNames: ClassNames,\n * preventPaste: boolean\n * }} args\n */\n function Input(_ref) {\n var element = _ref.element,\n type = _ref.type,\n classNames = _ref.classNames,\n preventPaste = _ref.preventPaste;\n\n _classCallCheck(this, Input);\n\n this.element = element;\n this.type = type;\n this.classNames = classNames;\n this.preventPaste = preventPaste;\n this.isFocussed = this.element === document.activeElement;\n this.isDisabled = element.disabled;\n this._onPaste = this._onPaste.bind(this);\n this._onInput = this._onInput.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n }\n /**\n * @param {string} placeholder\n */\n\n\n _createClass(Input, [{\n key: \"placeholder\",\n set: function set(placeholder) {\n this.element.placeholder = placeholder;\n }\n /**\n * @returns {string}\n */\n\n }, {\n key: \"value\",\n get: function get() {\n return sanitise(this.element.value);\n }\n /**\n * @param {string} value\n */\n ,\n set: function set(value) {\n this.element.value = value;\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners() {\n this.element.addEventListener('paste', this._onPaste);\n this.element.addEventListener('input', this._onInput, {\n passive: true\n });\n this.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n this.element.removeEventListener('input', this._onInput, {\n passive: true\n });\n this.element.removeEventListener('paste', this._onPaste);\n this.element.removeEventListener('focus', this._onFocus, {\n passive: true\n });\n this.element.removeEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n }, {\n key: \"enable\",\n value: function enable() {\n this.element.removeAttribute('disabled');\n this.isDisabled = false;\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.element.setAttribute('disabled', '');\n this.isDisabled = true;\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (!this.isFocussed) {\n this.element.focus();\n }\n }\n }, {\n key: \"blur\",\n value: function blur() {\n if (this.isFocussed) {\n this.element.blur();\n }\n }\n /**\n * Set value of input to blank\n * @param {boolean} setWidth\n * @returns {this}\n */\n\n }, {\n key: \"clear\",\n value: function clear() {\n var setWidth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (this.element.value) {\n this.element.value = '';\n }\n\n if (setWidth) {\n this.setWidth();\n }\n\n return this;\n }\n /**\n * Set the correct input width based on placeholder\n * value or input value\n */\n\n }, {\n key: \"setWidth\",\n value: function setWidth() {\n // Resize input to contents or placeholder\n var _this$element = this.element,\n style = _this$element.style,\n value = _this$element.value,\n placeholder = _this$element.placeholder;\n style.minWidth = \"\".concat(placeholder.length + 1, \"ch\");\n style.width = \"\".concat(value.length + 1, \"ch\");\n }\n /**\n * @param {string} activeDescendantID\n */\n\n }, {\n key: \"setActiveDescendant\",\n value: function setActiveDescendant(activeDescendantID) {\n this.element.setAttribute('aria-activedescendant', activeDescendantID);\n }\n }, {\n key: \"removeActiveDescendant\",\n value: function removeActiveDescendant() {\n this.element.removeAttribute('aria-activedescendant');\n }\n }, {\n key: \"_onInput\",\n value: function _onInput() {\n if (this.type !== SELECT_ONE_TYPE) {\n this.setWidth();\n }\n }\n /**\n * @param {Event} event\n */\n\n }, {\n key: \"_onPaste\",\n value: function _onPaste(event) {\n if (this.preventPaste) {\n event.preventDefault();\n }\n }\n }, {\n key: \"_onFocus\",\n value: function _onFocus() {\n this.isFocussed = true;\n }\n }, {\n key: \"_onBlur\",\n value: function _onBlur() {\n this.isFocussed = false;\n }\n }]);\n\n return Input;\n}();\n\nexport { Input as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { SCROLLING_SPEED } from '../constants';\n/**\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n */\n\nvar List = /*#__PURE__*/function () {\n /**\n * @param {{ element: HTMLElement }} args\n */\n function List(_ref) {\n var element = _ref.element;\n\n _classCallCheck(this, List);\n\n this.element = element;\n this.scrollPos = this.element.scrollTop;\n this.height = this.element.offsetHeight;\n }\n\n _createClass(List, [{\n key: \"clear\",\n value: function clear() {\n this.element.innerHTML = '';\n }\n /**\n * @param {Element | DocumentFragment} node\n */\n\n }, {\n key: \"append\",\n value: function append(node) {\n this.element.appendChild(node);\n }\n /**\n * @param {string} selector\n * @returns {Element | null}\n */\n\n }, {\n key: \"getChild\",\n value: function getChild(selector) {\n return this.element.querySelector(selector);\n }\n /**\n * @returns {boolean}\n */\n\n }, {\n key: \"hasChildren\",\n value: function hasChildren() {\n return this.element.hasChildNodes();\n }\n }, {\n key: \"scrollToTop\",\n value: function scrollToTop() {\n this.element.scrollTop = 0;\n }\n /**\n * @param {Element} element\n * @param {1 | -1} direction\n */\n\n }, {\n key: \"scrollToChildElement\",\n value: function scrollToChildElement(element, direction) {\n var _this = this;\n\n if (!element) {\n return;\n }\n\n var listHeight = this.element.offsetHeight; // Scroll position of dropdown\n\n var listScrollPosition = this.element.scrollTop + listHeight;\n var elementHeight = element.offsetHeight; // Distance from bottom of element to top of parent\n\n var elementPos = element.offsetTop + elementHeight; // Difference between the element and scroll position\n\n var destination = direction > 0 ? this.element.scrollTop + elementPos - listScrollPosition : element.offsetTop;\n requestAnimationFrame(function () {\n _this._animateScroll(destination, direction);\n });\n }\n /**\n * @param {number} scrollPos\n * @param {number} strength\n * @param {number} destination\n */\n\n }, {\n key: \"_scrollDown\",\n value: function _scrollDown(scrollPos, strength, destination) {\n var easing = (destination - scrollPos) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos + distance;\n }\n /**\n * @param {number} scrollPos\n * @param {number} strength\n * @param {number} destination\n */\n\n }, {\n key: \"_scrollUp\",\n value: function _scrollUp(scrollPos, strength, destination) {\n var easing = (scrollPos - destination) / strength;\n var distance = easing > 1 ? easing : 1;\n this.element.scrollTop = scrollPos - distance;\n }\n /**\n * @param {*} destination\n * @param {*} direction\n */\n\n }, {\n key: \"_animateScroll\",\n value: function _animateScroll(destination, direction) {\n var _this2 = this;\n\n var strength = SCROLLING_SPEED;\n var choiceListScrollTop = this.element.scrollTop;\n var continueAnimation = false;\n\n if (direction > 0) {\n this._scrollDown(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop < destination) {\n continueAnimation = true;\n }\n } else {\n this._scrollUp(choiceListScrollTop, strength, destination);\n\n if (choiceListScrollTop > destination) {\n continueAnimation = true;\n }\n }\n\n if (continueAnimation) {\n requestAnimationFrame(function () {\n _this2._animateScroll(destination, direction);\n });\n }\n }\n }]);\n\n return List;\n}();\n\nexport { List as default };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { dispatchEvent } from '../lib/utils';\n/**\n * @typedef {import('../../../types/index').Choices.passedElement} passedElement\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n */\n\nvar WrappedElement = /*#__PURE__*/function () {\n /**\n * @param {{\n * element: HTMLInputElement | HTMLSelectElement,\n * classNames: ClassNames,\n * }} args\n */\n function WrappedElement(_ref) {\n var element = _ref.element,\n classNames = _ref.classNames;\n\n _classCallCheck(this, WrappedElement);\n\n this.element = element;\n this.classNames = classNames;\n\n if (!(element instanceof HTMLInputElement) && !(element instanceof HTMLSelectElement)) {\n throw new TypeError('Invalid element passed');\n }\n\n this.isDisabled = false;\n }\n\n _createClass(WrappedElement, [{\n key: \"isActive\",\n get: function get() {\n return this.element.dataset.choice === 'active';\n }\n }, {\n key: \"dir\",\n get: function get() {\n return this.element.dir;\n }\n }, {\n key: \"value\",\n get: function get() {\n return this.element.value;\n },\n set: function set(value) {\n // you must define setter here otherwise it will be readonly property\n this.element.value = value;\n }\n }, {\n key: \"conceal\",\n value: function conceal() {\n // Hide passed input\n this.element.classList.add(this.classNames.input);\n this.element.hidden = true; // Remove element from tab index\n\n this.element.tabIndex = -1; // Backup original styles if any\n\n var origStyle = this.element.getAttribute('style');\n\n if (origStyle) {\n this.element.setAttribute('data-choice-orig-style', origStyle);\n }\n\n this.element.setAttribute('data-choice', 'active');\n }\n }, {\n key: \"reveal\",\n value: function reveal() {\n // Reinstate passed element\n this.element.classList.remove(this.classNames.input);\n this.element.hidden = false;\n this.element.removeAttribute('tabindex'); // Recover original styles if any\n\n var origStyle = this.element.getAttribute('data-choice-orig-style');\n\n if (origStyle) {\n this.element.removeAttribute('data-choice-orig-style');\n this.element.setAttribute('style', origStyle);\n } else {\n this.element.removeAttribute('style');\n }\n\n this.element.removeAttribute('data-choice'); // Re-assign values - this is weird, I know\n // @todo Figure out why we need to do this\n\n this.element.value = this.element.value; // eslint-disable-line no-self-assign\n }\n }, {\n key: \"enable\",\n value: function enable() {\n this.element.removeAttribute('disabled');\n this.element.disabled = false;\n this.isDisabled = false;\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.element.setAttribute('disabled', '');\n this.element.disabled = true;\n this.isDisabled = true;\n }\n }, {\n key: \"triggerEvent\",\n value: function triggerEvent(eventType, data) {\n dispatchEvent(this.element, eventType, data);\n }\n }]);\n\n return WrappedElement;\n}();\n\nexport { WrappedElement as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport WrappedElement from './wrapped-element';\n/**\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../../types/index').Choices.Item} Item\n */\n\nvar WrappedInput = /*#__PURE__*/function (_WrappedElement) {\n _inherits(WrappedInput, _WrappedElement);\n\n var _super = _createSuper(WrappedInput);\n\n /**\n * @param {{\n * element: HTMLInputElement,\n * classNames: ClassNames,\n * delimiter: string\n * }} args\n */\n function WrappedInput(_ref) {\n var _this;\n\n var element = _ref.element,\n classNames = _ref.classNames,\n delimiter = _ref.delimiter;\n\n _classCallCheck(this, WrappedInput);\n\n _this = _super.call(this, {\n element: element,\n classNames: classNames\n });\n _this.delimiter = delimiter;\n return _this;\n }\n /**\n * @returns {string}\n */\n\n\n _createClass(WrappedInput, [{\n key: \"value\",\n get: function get() {\n return this.element.value;\n }\n /**\n * @param {Item[]} items\n */\n ,\n set: function set(items) {\n var itemValues = items.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n var joinedValues = itemValues.join(this.delimiter);\n this.element.setAttribute('value', joinedValues);\n this.element.value = joinedValues;\n }\n }]);\n\n return WrappedInput;\n}(WrappedElement);\n\nexport { WrappedInput as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport WrappedElement from './wrapped-element';\n/**\n * @typedef {import('../../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../../types/index').Choices.Item} Item\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n */\n\nvar WrappedSelect = /*#__PURE__*/function (_WrappedElement) {\n _inherits(WrappedSelect, _WrappedElement);\n\n var _super = _createSuper(WrappedSelect);\n\n /**\n * @param {{\n * element: HTMLSelectElement,\n * classNames: ClassNames,\n * delimiter: string\n * template: function\n * }} args\n */\n function WrappedSelect(_ref) {\n var _this;\n\n var element = _ref.element,\n classNames = _ref.classNames,\n template = _ref.template;\n\n _classCallCheck(this, WrappedSelect);\n\n _this = _super.call(this, {\n element: element,\n classNames: classNames\n });\n _this.template = template;\n return _this;\n }\n\n _createClass(WrappedSelect, [{\n key: \"placeholderOption\",\n get: function get() {\n return this.element.querySelector('option[value=\"\"]') || // Backward compatibility layer for the non-standard placeholder attribute supported in older versions.\n this.element.querySelector('option[placeholder]');\n }\n /**\n * @returns {Element[]}\n */\n\n }, {\n key: \"optionGroups\",\n get: function get() {\n return Array.from(this.element.getElementsByTagName('OPTGROUP'));\n }\n /**\n * @returns {Item[] | Choice[]}\n */\n\n }, {\n key: \"options\",\n get: function get() {\n return Array.from(this.element.options);\n }\n /**\n * @param {Item[] | Choice[]} options\n */\n ,\n set: function set(options) {\n var _this2 = this;\n\n var fragment = document.createDocumentFragment();\n\n var addOptionToFragment = function addOptionToFragment(data) {\n // Create a standard select option\n var option = _this2.template(data); // Append it to fragment\n\n\n fragment.appendChild(option);\n }; // Add each list item to list\n\n\n options.forEach(function (optionData) {\n return addOptionToFragment(optionData);\n });\n this.appendDocFragment(fragment);\n }\n /**\n * @param {DocumentFragment} fragment\n */\n\n }, {\n key: \"appendDocFragment\",\n value: function appendDocFragment(fragment) {\n this.element.innerHTML = '';\n this.element.appendChild(fragment);\n }\n }]);\n\n return WrappedSelect;\n}(WrappedElement);\n\nexport { WrappedSelect as default };","/**\n * Helpers to create HTML elements used by Choices\n * Can be overridden by providing `callbackOnCreateTemplates` option\n * @typedef {import('../../types/index').Choices.Templates} Templates\n * @typedef {import('../../types/index').Choices.ClassNames} ClassNames\n * @typedef {import('../../types/index').Choices.Options} Options\n * @typedef {import('../../types/index').Choices.Item} Item\n * @typedef {import('../../types/index').Choices.Choice} Choice\n * @typedef {import('../../types/index').Choices.Group} Group\n */\nexport var TEMPLATES =\n/** @type {Templates} */\n{\n /**\n * @param {Partial} classNames\n * @param {\"ltr\" | \"rtl\" | \"auto\"} dir\n * @param {boolean} isSelectElement\n * @param {boolean} isSelectOneElement\n * @param {boolean} searchEnabled\n * @param {\"select-one\" | \"select-multiple\" | \"text\"} passedElementType\n */\n containerOuter: function containerOuter(_ref, dir, isSelectElement, isSelectOneElement, searchEnabled, passedElementType) {\n var containerOuter = _ref.containerOuter;\n var div = Object.assign(document.createElement('div'), {\n className: containerOuter\n });\n div.dataset.type = passedElementType;\n\n if (dir) {\n div.dir = dir;\n }\n\n if (isSelectOneElement) {\n div.tabIndex = 0;\n }\n\n if (isSelectElement) {\n div.setAttribute('role', searchEnabled ? 'combobox' : 'listbox');\n\n if (searchEnabled) {\n div.setAttribute('aria-autocomplete', 'list');\n }\n }\n\n div.setAttribute('aria-haspopup', 'true');\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n\n /**\n * @param {Partial} classNames\n */\n containerInner: function containerInner(_ref2) {\n var containerInner = _ref2.containerInner;\n return Object.assign(document.createElement('div'), {\n className: containerInner\n });\n },\n\n /**\n * @param {Partial} classNames\n * @param {boolean} isSelectOneElement\n */\n itemList: function itemList(_ref3, isSelectOneElement) {\n var list = _ref3.list,\n listSingle = _ref3.listSingle,\n listItems = _ref3.listItems;\n return Object.assign(document.createElement('div'), {\n className: \"\".concat(list, \" \").concat(isSelectOneElement ? listSingle : listItems)\n });\n },\n\n /**\n * @param {Partial} classNames\n * @param {string} value\n */\n placeholder: function placeholder(_ref4, value) {\n var placeholder = _ref4.placeholder;\n return Object.assign(document.createElement('div'), {\n className: placeholder,\n innerHTML: value\n });\n },\n\n /**\n * @param {Partial} classNames\n * @param {Item} item\n * @param {boolean} removeItemButton\n */\n item: function item(_ref5, _ref6, removeItemButton) {\n var item = _ref5.item,\n button = _ref5.button,\n highlightedState = _ref5.highlightedState,\n itemSelectable = _ref5.itemSelectable,\n placeholder = _ref5.placeholder;\n var id = _ref6.id,\n value = _ref6.value,\n label = _ref6.label,\n customProperties = _ref6.customProperties,\n active = _ref6.active,\n disabled = _ref6.disabled,\n highlighted = _ref6.highlighted,\n isPlaceholder = _ref6.placeholder;\n var div = Object.assign(document.createElement('div'), {\n className: item,\n innerHTML: label\n });\n Object.assign(div.dataset, {\n item: '',\n id: id,\n value: value,\n customProperties: customProperties\n });\n\n if (active) {\n div.setAttribute('aria-selected', 'true');\n }\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.classList.add(highlighted ? highlightedState : itemSelectable);\n\n if (removeItemButton) {\n if (disabled) {\n div.classList.remove(itemSelectable);\n }\n\n div.dataset.deletable = '';\n /** @todo This MUST be localizable, not hardcoded! */\n\n var REMOVE_ITEM_TEXT = 'Remove item';\n var removeButton = Object.assign(document.createElement('button'), {\n type: 'button',\n className: button,\n innerHTML: REMOVE_ITEM_TEXT\n });\n removeButton.setAttribute('aria-label', \"\".concat(REMOVE_ITEM_TEXT, \": '\").concat(value, \"'\"));\n removeButton.dataset.button = '';\n div.appendChild(removeButton);\n }\n\n return div;\n },\n\n /**\n * @param {Partial} classNames\n * @param {boolean} isSelectOneElement\n */\n choiceList: function choiceList(_ref7, isSelectOneElement) {\n var list = _ref7.list;\n var div = Object.assign(document.createElement('div'), {\n className: list\n });\n\n if (!isSelectOneElement) {\n div.setAttribute('aria-multiselectable', 'true');\n }\n\n div.setAttribute('role', 'listbox');\n return div;\n },\n\n /**\n * @param {Partial} classNames\n * @param {Group} group\n */\n choiceGroup: function choiceGroup(_ref8, _ref9) {\n var group = _ref8.group,\n groupHeading = _ref8.groupHeading,\n itemDisabled = _ref8.itemDisabled;\n var id = _ref9.id,\n value = _ref9.value,\n disabled = _ref9.disabled;\n var div = Object.assign(document.createElement('div'), {\n className: \"\".concat(group, \" \").concat(disabled ? itemDisabled : '')\n });\n div.setAttribute('role', 'group');\n Object.assign(div.dataset, {\n group: '',\n id: id,\n value: value\n });\n\n if (disabled) {\n div.setAttribute('aria-disabled', 'true');\n }\n\n div.appendChild(Object.assign(document.createElement('div'), {\n className: groupHeading,\n innerHTML: value\n }));\n return div;\n },\n\n /**\n * @param {Partial} classNames\n * @param {Choice} choice\n * @param {Options['itemSelectText']} selectText\n */\n choice: function choice(_ref10, _ref11, selectText) {\n var item = _ref10.item,\n itemChoice = _ref10.itemChoice,\n itemSelectable = _ref10.itemSelectable,\n selectedState = _ref10.selectedState,\n itemDisabled = _ref10.itemDisabled,\n placeholder = _ref10.placeholder;\n var id = _ref11.id,\n value = _ref11.value,\n label = _ref11.label,\n groupId = _ref11.groupId,\n elementId = _ref11.elementId,\n isDisabled = _ref11.disabled,\n isSelected = _ref11.selected,\n isPlaceholder = _ref11.placeholder;\n var div = Object.assign(document.createElement('div'), {\n id: elementId,\n innerHTML: label,\n className: \"\".concat(item, \" \").concat(itemChoice)\n });\n\n if (isSelected) {\n div.classList.add(selectedState);\n }\n\n if (isPlaceholder) {\n div.classList.add(placeholder);\n }\n\n div.setAttribute('role', groupId > 0 ? 'treeitem' : 'option');\n Object.assign(div.dataset, {\n choice: '',\n id: id,\n value: value,\n selectText: selectText\n });\n\n if (isDisabled) {\n div.classList.add(itemDisabled);\n div.dataset.choiceDisabled = '';\n div.setAttribute('aria-disabled', 'true');\n } else {\n div.classList.add(itemSelectable);\n div.dataset.choiceSelectable = '';\n }\n\n return div;\n },\n\n /**\n * @param {Partial} classNames\n * @param {string} placeholderValue\n */\n input: function input(_ref12, placeholderValue) {\n var input = _ref12.input,\n inputCloned = _ref12.inputCloned;\n var inp = Object.assign(document.createElement('input'), {\n type: 'text',\n className: \"\".concat(input, \" \").concat(inputCloned),\n autocomplete: 'off',\n autocapitalize: 'off',\n spellcheck: false\n });\n inp.setAttribute('role', 'textbox');\n inp.setAttribute('aria-autocomplete', 'list');\n inp.setAttribute('aria-label', placeholderValue);\n return inp;\n },\n\n /**\n * @param {Partial} classNames\n */\n dropdown: function dropdown(_ref13) {\n var list = _ref13.list,\n listDropdown = _ref13.listDropdown;\n var div = document.createElement('div');\n div.classList.add(list, listDropdown);\n div.setAttribute('aria-expanded', 'false');\n return div;\n },\n\n /**\n *\n * @param {Partial} classNames\n * @param {string} innerHTML\n * @param {\"no-choices\" | \"no-results\" | \"\"} type\n */\n notice: function notice(_ref14, innerHTML) {\n var item = _ref14.item,\n itemChoice = _ref14.itemChoice,\n noResults = _ref14.noResults,\n noChoices = _ref14.noChoices;\n var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';\n var classes = [item, itemChoice];\n\n if (type === 'no-choices') {\n classes.push(noChoices);\n } else if (type === 'no-results') {\n classes.push(noResults);\n }\n\n return Object.assign(document.createElement('div'), {\n innerHTML: innerHTML,\n className: classes.join(' ')\n });\n },\n\n /**\n * @param {Item} option\n */\n option: function option(_ref15) {\n var label = _ref15.label,\n value = _ref15.value,\n customProperties = _ref15.customProperties,\n active = _ref15.active,\n disabled = _ref15.disabled;\n var opt = new Option(label, value, false, active);\n\n if (customProperties) {\n opt.dataset.customProperties = customProperties;\n }\n\n opt.disabled = disabled;\n return opt;\n }\n};\nexport default TEMPLATES;","/**\n * @typedef {import('redux').Action} Action\n * @typedef {import('../../../types/index').Choices.Choice} Choice\n */\nimport { ACTION_TYPES } from '../constants';\n/**\n * @argument {Choice} choice\n * @returns {Action & Choice}\n */\n\nexport var addChoice = function addChoice(_ref) {\n var value = _ref.value,\n label = _ref.label,\n id = _ref.id,\n groupId = _ref.groupId,\n disabled = _ref.disabled,\n elementId = _ref.elementId,\n customProperties = _ref.customProperties,\n placeholder = _ref.placeholder,\n keyCode = _ref.keyCode;\n return {\n type: ACTION_TYPES.ADD_CHOICE,\n value: value,\n label: label,\n id: id,\n groupId: groupId,\n disabled: disabled,\n elementId: elementId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n/**\n * @argument {Choice[]} results\n * @returns {Action & { results: Choice[] }}\n */\n\nexport var filterChoices = function filterChoices(results) {\n return {\n type: ACTION_TYPES.FILTER_CHOICES,\n results: results\n };\n};\n/**\n * @argument {boolean} active\n * @returns {Action & { active: boolean }}\n */\n\nexport var activateChoices = function activateChoices() {\n var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n return {\n type: ACTION_TYPES.ACTIVATE_CHOICES,\n active: active\n };\n};\n/**\n * @returns {Action}\n */\n\nexport var clearChoices = function clearChoices() {\n return {\n type: ACTION_TYPES.CLEAR_CHOICES\n };\n};","import { ACTION_TYPES } from '../constants';\n/**\n * @typedef {import('redux').Action} Action\n * @typedef {import('../../../types/index').Choices.Item} Item\n */\n\n/**\n * @param {Item} item\n * @returns {Action & Item}\n */\n\nexport var addItem = function addItem(_ref) {\n var value = _ref.value,\n label = _ref.label,\n id = _ref.id,\n choiceId = _ref.choiceId,\n groupId = _ref.groupId,\n customProperties = _ref.customProperties,\n placeholder = _ref.placeholder,\n keyCode = _ref.keyCode;\n return {\n type: ACTION_TYPES.ADD_ITEM,\n value: value,\n label: label,\n id: id,\n choiceId: choiceId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n };\n};\n/**\n * @param {string} id\n * @param {string} choiceId\n * @returns {Action & { id: string, choiceId: string }}\n */\n\nexport var removeItem = function removeItem(id, choiceId) {\n return {\n type: ACTION_TYPES.REMOVE_ITEM,\n id: id,\n choiceId: choiceId\n };\n};\n/**\n * @param {string} id\n * @param {boolean} highlighted\n * @returns {Action & { id: string, highlighted: boolean }}\n */\n\nexport var highlightItem = function highlightItem(id, highlighted) {\n return {\n type: ACTION_TYPES.HIGHLIGHT_ITEM,\n id: id,\n highlighted: highlighted\n };\n};","import { ACTION_TYPES } from '../constants';\n/**\n * @typedef {import('redux').Action} Action\n * @typedef {import('../../../types/index').Choices.Group} Group\n */\n\n/**\n * @param {Group} group\n * @returns {Action & Group}\n */\n\nexport var addGroup = function addGroup(_ref) {\n var value = _ref.value,\n id = _ref.id,\n active = _ref.active,\n disabled = _ref.disabled;\n return {\n type: ACTION_TYPES.ADD_GROUP,\n value: value,\n id: id,\n active: active,\n disabled: disabled\n };\n};","/**\n * @typedef {import('redux').Action} Action\n */\n\n/**\n * @returns {Action}\n */\nexport var clearAll = function clearAll() {\n return {\n type: 'CLEAR_ALL'\n };\n};\n/**\n * @param {any} state\n * @returns {Action & { state: object }}\n */\n\nexport var resetTo = function resetTo(state) {\n return {\n type: 'RESET_TO',\n state: state\n };\n};\n/**\n * @param {boolean} isLoading\n * @returns {Action & { isLoading: boolean }}\n */\n\nexport var setIsLoading = function setIsLoading(isLoading) {\n return {\n type: 'SET_IS_LOADING',\n isLoading: isLoading\n };\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport Fuse from 'fuse.js';\nimport merge from 'deepmerge';\nimport Store from './store/store';\nimport { Dropdown, Container, Input, List, WrappedInput, WrappedSelect } from './components';\nimport { DEFAULT_CONFIG, EVENTS, KEY_CODES, TEXT_TYPE, SELECT_ONE_TYPE, SELECT_MULTIPLE_TYPE } from './constants';\nimport { TEMPLATES } from './templates';\nimport { addChoice, filterChoices, activateChoices, clearChoices as _clearChoices } from './actions/choices';\nimport { addItem, removeItem, highlightItem as _highlightItem } from './actions/items';\nimport { addGroup } from './actions/groups';\nimport { clearAll, resetTo, setIsLoading } from './actions/misc';\nimport { isScrolledIntoView, getAdjacentEl, getType, isType, strToEl, sortByScore, generateId, existsInArray, cloneObject, diff } from './lib/utils';\n/** @see {@link http://browserhacks.com/#hack-acea075d0ac6954f275a70023906050c} */\n\nvar IS_IE11 = '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style;\n/**\n * @typedef {import('../../types/index').Choices.Choice} Choice\n * @typedef {import('../../types/index').Choices.Item} Item\n * @typedef {import('../../types/index').Choices.Group} Group\n * @typedef {import('../../types/index').Choices.Options} Options\n */\n\n/** @type {Partial} */\n\nvar USER_DEFAULTS = {};\n/**\n * Choices\n * @author Josh Johnson\n */\n\nvar Choices = /*#__PURE__*/function () {\n /**\n * @param {string | HTMLInputElement | HTMLSelectElement} element\n * @param {Partial} userConfig\n */\n function Choices() {\n var _this = this;\n\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '[data-choice]';\n var userConfig = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Choices);\n\n /** @type {Partial} */\n this.config = merge.all([DEFAULT_CONFIG, Choices.defaults.options, userConfig], // When merging array configs, replace with a copy of the userConfig array,\n // instead of concatenating with the default array\n {\n arrayMerge: function arrayMerge(_, sourceArray) {\n return _toConsumableArray(sourceArray);\n }\n });\n var invalidConfigOptions = diff(this.config, DEFAULT_CONFIG);\n\n if (invalidConfigOptions.length) {\n console.warn('Unknown config option(s) passed', invalidConfigOptions.join(', '));\n }\n\n var passedElement = typeof element === 'string' ? document.querySelector(element) : element;\n\n if (!(passedElement instanceof HTMLInputElement || passedElement instanceof HTMLSelectElement)) {\n throw TypeError('Expected one of the following types text|select-one|select-multiple');\n }\n\n this._isTextElement = passedElement.type === TEXT_TYPE;\n this._isSelectOneElement = passedElement.type === SELECT_ONE_TYPE;\n this._isSelectMultipleElement = passedElement.type === SELECT_MULTIPLE_TYPE;\n this._isSelectElement = this._isSelectOneElement || this._isSelectMultipleElement;\n this.config.searchEnabled = this._isSelectMultipleElement || this.config.searchEnabled;\n\n if (!['auto', 'always'].includes(this.config.renderSelectedChoices)) {\n this.config.renderSelectedChoices = 'auto';\n }\n\n if (userConfig.addItemFilter && typeof userConfig.addItemFilter !== 'function') {\n var re = userConfig.addItemFilter instanceof RegExp ? userConfig.addItemFilter : new RegExp(userConfig.addItemFilter);\n this.config.addItemFilter = re.test.bind(re);\n }\n\n if (this._isTextElement) {\n this.passedElement = new WrappedInput({\n element: passedElement,\n classNames: this.config.classNames,\n delimiter: this.config.delimiter\n });\n } else {\n this.passedElement = new WrappedSelect({\n element: passedElement,\n classNames: this.config.classNames,\n template: function template(data) {\n return _this._templates.option(data);\n }\n });\n }\n\n this.initialised = false;\n this._store = new Store();\n this._initialState = {};\n this._currentState = {};\n this._prevState = {};\n this._currentValue = '';\n this._canSearch = this.config.searchEnabled;\n this._isScrollingOnIe = false;\n this._highlightPosition = 0;\n this._wasTap = true;\n this._placeholderValue = this._generatePlaceholderValue();\n this._baseId = generateId(this.passedElement.element, 'choices-');\n /**\n * setting direction in cases where it's explicitly set on passedElement\n * or when calculated direction is different from the document\n * @type {HTMLElement['dir']}\n */\n\n this._direction = this.passedElement.dir;\n\n if (!this._direction) {\n var _window$getComputedSt = window.getComputedStyle(this.passedElement.element),\n elementDirection = _window$getComputedSt.direction;\n\n var _window$getComputedSt2 = window.getComputedStyle(document.documentElement),\n documentDirection = _window$getComputedSt2.direction;\n\n if (elementDirection !== documentDirection) {\n this._direction = elementDirection;\n }\n }\n\n this._idNames = {\n itemChoice: 'item-choice'\n }; // Assign preset groups from passed element\n\n this._presetGroups = this.passedElement.optionGroups; // Assign preset options from passed element\n\n this._presetOptions = this.passedElement.options; // Assign preset choices from passed object\n\n this._presetChoices = this.config.choices; // Assign preset items from passed object first\n\n this._presetItems = this.config.items; // Add any values passed from attribute\n\n if (this.passedElement.value) {\n this._presetItems = this._presetItems.concat(this.passedElement.value.split(this.config.delimiter));\n } // Create array of choices from option elements\n\n\n if (this.passedElement.options) {\n this.passedElement.options.forEach(function (o) {\n _this._presetChoices.push({\n value: o.value,\n label: o.innerHTML,\n selected: o.selected,\n disabled: o.disabled || o.parentNode.disabled,\n placeholder: o.value === '' || o.hasAttribute('placeholder'),\n customProperties: o.getAttribute('data-custom-properties')\n });\n });\n }\n\n this._render = this._render.bind(this);\n this._onFocus = this._onFocus.bind(this);\n this._onBlur = this._onBlur.bind(this);\n this._onKeyUp = this._onKeyUp.bind(this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._onClick = this._onClick.bind(this);\n this._onTouchMove = this._onTouchMove.bind(this);\n this._onTouchEnd = this._onTouchEnd.bind(this);\n this._onMouseDown = this._onMouseDown.bind(this);\n this._onMouseOver = this._onMouseOver.bind(this);\n this._onFormReset = this._onFormReset.bind(this);\n this._onAKey = this._onAKey.bind(this);\n this._onEnterKey = this._onEnterKey.bind(this);\n this._onEscapeKey = this._onEscapeKey.bind(this);\n this._onDirectionKey = this._onDirectionKey.bind(this);\n this._onDeleteKey = this._onDeleteKey.bind(this); // If element has already been initialised with Choices, fail silently\n\n if (this.passedElement.isActive) {\n if (!this.config.silent) {\n console.warn('Trying to initialise Choices on element already initialised');\n }\n\n this.initialised = true;\n return;\n } // Let's go\n\n\n this.init();\n }\n\n _createClass(Choices, [{\n key: \"init\",\n value: function init() {\n if (this.initialised) {\n return;\n }\n\n this._createTemplates();\n\n this._createElements();\n\n this._createStructure(); // Set initial state (We need to clone the state because some reducers\n // modify the inner objects properties in the state) 🤢\n\n\n this._initialState = cloneObject(this._store.state);\n\n this._store.subscribe(this._render);\n\n this._render();\n\n this._addEventListeners();\n\n var shouldDisable = !this.config.addItems || this.passedElement.element.hasAttribute('disabled');\n\n if (shouldDisable) {\n this.disable();\n }\n\n this.initialised = true;\n var callbackOnInit = this.config.callbackOnInit; // Run callback if it is a function\n\n if (callbackOnInit && typeof callbackOnInit === 'function') {\n callbackOnInit.call(this);\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (!this.initialised) {\n return;\n }\n\n this._removeEventListeners();\n\n this.passedElement.reveal();\n this.containerOuter.unwrap(this.passedElement.element);\n this.clearStore();\n\n if (this._isSelectElement) {\n this.passedElement.options = this._presetOptions;\n }\n\n this._templates = null;\n this.initialised = false;\n }\n }, {\n key: \"enable\",\n value: function enable() {\n if (this.passedElement.isDisabled) {\n this.passedElement.enable();\n }\n\n if (this.containerOuter.isDisabled) {\n this._addEventListeners();\n\n this.input.enable();\n this.containerOuter.enable();\n }\n\n return this;\n }\n }, {\n key: \"disable\",\n value: function disable() {\n if (!this.passedElement.isDisabled) {\n this.passedElement.disable();\n }\n\n if (!this.containerOuter.isDisabled) {\n this._removeEventListeners();\n\n this.input.disable();\n this.containerOuter.disable();\n }\n\n return this;\n }\n }, {\n key: \"highlightItem\",\n value: function highlightItem(item) {\n var runEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (!item) {\n return this;\n }\n\n var id = item.id,\n _item$groupId = item.groupId,\n groupId = _item$groupId === void 0 ? -1 : _item$groupId,\n _item$value = item.value,\n value = _item$value === void 0 ? '' : _item$value,\n _item$label = item.label,\n label = _item$label === void 0 ? '' : _item$label;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(_highlightItem(id, true));\n\n if (runEvent) {\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n }\n\n return this;\n }\n }, {\n key: \"unhighlightItem\",\n value: function unhighlightItem(item) {\n if (!item) {\n return this;\n }\n\n var id = item.id,\n _item$groupId2 = item.groupId,\n groupId = _item$groupId2 === void 0 ? -1 : _item$groupId2,\n _item$value2 = item.value,\n value = _item$value2 === void 0 ? '' : _item$value2,\n _item$label2 = item.label,\n label = _item$label2 === void 0 ? '' : _item$label2;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(_highlightItem(id, false));\n\n this.passedElement.triggerEvent(EVENTS.highlightItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group && group.value ? group.value : null\n });\n return this;\n }\n }, {\n key: \"highlightAll\",\n value: function highlightAll() {\n var _this2 = this;\n\n this._store.items.forEach(function (item) {\n return _this2.highlightItem(item);\n });\n\n return this;\n }\n }, {\n key: \"unhighlightAll\",\n value: function unhighlightAll() {\n var _this3 = this;\n\n this._store.items.forEach(function (item) {\n return _this3.unhighlightItem(item);\n });\n\n return this;\n }\n }, {\n key: \"removeActiveItemsByValue\",\n value: function removeActiveItemsByValue(value) {\n var _this4 = this;\n\n this._store.activeItems.filter(function (item) {\n return item.value === value;\n }).forEach(function (item) {\n return _this4._removeItem(item);\n });\n\n return this;\n }\n }, {\n key: \"removeActiveItems\",\n value: function removeActiveItems(excludedId) {\n var _this5 = this;\n\n this._store.activeItems.filter(function (_ref) {\n var id = _ref.id;\n return id !== excludedId;\n }).forEach(function (item) {\n return _this5._removeItem(item);\n });\n\n return this;\n }\n }, {\n key: \"removeHighlightedItems\",\n value: function removeHighlightedItems() {\n var _this6 = this;\n\n var runEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this._store.highlightedActiveItems.forEach(function (item) {\n _this6._removeItem(item); // If this action was performed by the user\n // trigger the event\n\n\n if (runEvent) {\n _this6._triggerChange(item.value);\n }\n });\n\n return this;\n }\n }, {\n key: \"showDropdown\",\n value: function showDropdown(preventInputFocus) {\n var _this7 = this;\n\n if (this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this7.dropdown.show();\n\n _this7.containerOuter.open(_this7.dropdown.distanceFromTopWindow);\n\n if (!preventInputFocus && _this7._canSearch) {\n _this7.input.focus();\n }\n\n _this7.passedElement.triggerEvent(EVENTS.showDropdown, {});\n });\n return this;\n }\n }, {\n key: \"hideDropdown\",\n value: function hideDropdown(preventInputBlur) {\n var _this8 = this;\n\n if (!this.dropdown.isActive) {\n return this;\n }\n\n requestAnimationFrame(function () {\n _this8.dropdown.hide();\n\n _this8.containerOuter.close();\n\n if (!preventInputBlur && _this8._canSearch) {\n _this8.input.removeActiveDescendant();\n\n _this8.input.blur();\n }\n\n _this8.passedElement.triggerEvent(EVENTS.hideDropdown, {});\n });\n return this;\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n var valueOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var values = this._store.activeItems.reduce(function (selectedItems, item) {\n var itemValue = valueOnly ? item.value : item;\n selectedItems.push(itemValue);\n return selectedItems;\n }, []);\n\n return this._isSelectOneElement ? values[0] : values;\n }\n /**\n * @param {string[] | import('../../types/index').Choices.Item[]} items\n */\n\n }, {\n key: \"setValue\",\n value: function setValue(items) {\n var _this9 = this;\n\n if (!this.initialised) {\n return this;\n }\n\n items.forEach(function (value) {\n return _this9._setChoiceOrItem(value);\n });\n return this;\n }\n }, {\n key: \"setChoiceByValue\",\n value: function setChoiceByValue(value) {\n var _this10 = this;\n\n if (!this.initialised || this._isTextElement) {\n return this;\n } // If only one value has been passed, convert to array\n\n\n var choiceValue = Array.isArray(value) ? value : [value]; // Loop through each value and\n\n choiceValue.forEach(function (val) {\n return _this10._findAndSelectChoiceByValue(val);\n });\n return this;\n }\n /**\n * Set choices of select input via an array of objects (or function that returns array of object or promise of it),\n * a value field name and a label field name.\n * This behaves the same as passing items via the choices option but can be called after initialising Choices.\n * This can also be used to add groups of choices (see example 2); Optionally pass a true `replaceChoices` value to remove any existing choices.\n * Optionally pass a `customProperties` object to add additional data to your choices (useful when searching/filtering etc).\n *\n * **Input types affected:** select-one, select-multiple\n *\n * @template {Choice[] | ((instance: Choices) => object[] | Promise)} T\n * @param {T} [choicesArrayOrFetcher]\n * @param {string} [value = 'value'] - name of `value` field\n * @param {string} [label = 'label'] - name of 'label' field\n * @param {boolean} [replaceChoices = false] - whether to replace of add choices\n * @returns {this | Promise}\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([\n * {value: 'One', label: 'Label One', disabled: true},\n * {value: 'Two', label: 'Label Two', selected: true},\n * {value: 'Three', label: 'Label Three'},\n * ], 'value', 'label', false);\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices(async () => {\n * try {\n * const items = await fetch('/items');\n * return items.json()\n * } catch(err) {\n * console.error(err)\n * }\n * });\n * ```\n *\n * @example\n * ```js\n * const example = new Choices(element);\n *\n * example.setChoices([{\n * label: 'Group one',\n * id: 1,\n * disabled: false,\n * choices: [\n * {value: 'Child One', label: 'Child One', selected: true},\n * {value: 'Child Two', label: 'Child Two', disabled: true},\n * {value: 'Child Three', label: 'Child Three'},\n * ]\n * },\n * {\n * label: 'Group two',\n * id: 2,\n * disabled: false,\n * choices: [\n * {value: 'Child Four', label: 'Child Four', disabled: true},\n * {value: 'Child Five', label: 'Child Five'},\n * {value: 'Child Six', label: 'Child Six', customProperties: {\n * description: 'Custom description about child six',\n * random: 'Another random custom property'\n * }},\n * ]\n * }], 'value', 'label', false);\n * ```\n */\n\n }, {\n key: \"setChoices\",\n value: function setChoices() {\n var _this11 = this;\n\n var choicesArrayOrFetcher = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'value';\n var label = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'label';\n var replaceChoices = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (!this.initialised) {\n throw new ReferenceError(\"setChoices was called on a non-initialized instance of Choices\");\n }\n\n if (!this._isSelectElement) {\n throw new TypeError(\"setChoices can't be used with INPUT based Choices\");\n }\n\n if (typeof value !== 'string' || !value) {\n throw new TypeError(\"value parameter must be a name of 'value' field in passed objects\");\n } // Clear choices if needed\n\n\n if (replaceChoices) {\n this.clearChoices();\n }\n\n if (typeof choicesArrayOrFetcher === 'function') {\n // it's a choices fetcher function\n var fetcher = choicesArrayOrFetcher(this);\n\n if (typeof Promise === 'function' && fetcher instanceof Promise) {\n // that's a promise\n // eslint-disable-next-line compat/compat\n return new Promise(function (resolve) {\n return requestAnimationFrame(resolve);\n }).then(function () {\n return _this11._handleLoadingState(true);\n }).then(function () {\n return fetcher;\n }).then(function (data) {\n return _this11.setChoices(data, value, label, replaceChoices);\n }).catch(function (err) {\n if (!_this11.config.silent) {\n console.error(err);\n }\n }).then(function () {\n return _this11._handleLoadingState(false);\n }).then(function () {\n return _this11;\n });\n } // function returned something else than promise, let's check if it's an array of choices\n\n\n if (!Array.isArray(fetcher)) {\n throw new TypeError(\".setChoices first argument function must return either array of choices or Promise, got: \".concat(_typeof(fetcher)));\n } // recursion with results, it's sync and choices were cleared already\n\n\n return this.setChoices(fetcher, value, label, false);\n }\n\n if (!Array.isArray(choicesArrayOrFetcher)) {\n throw new TypeError(\".setChoices must be called either with array of choices with a function resulting into Promise of array of choices\");\n }\n\n this.containerOuter.removeLoadingState();\n\n this._startLoading();\n\n choicesArrayOrFetcher.forEach(function (groupOrChoice) {\n if (groupOrChoice.choices) {\n _this11._addGroup({\n id: parseInt(groupOrChoice.id, 10) || null,\n group: groupOrChoice,\n valueKey: value,\n labelKey: label\n });\n } else {\n _this11._addChoice({\n value: groupOrChoice[value],\n label: groupOrChoice[label],\n isSelected: groupOrChoice.selected,\n isDisabled: groupOrChoice.disabled,\n customProperties: groupOrChoice.customProperties,\n placeholder: groupOrChoice.placeholder\n });\n }\n });\n\n this._stopLoading();\n\n return this;\n }\n }, {\n key: \"clearChoices\",\n value: function clearChoices() {\n this._store.dispatch(_clearChoices());\n\n return this;\n }\n }, {\n key: \"clearStore\",\n value: function clearStore() {\n this._store.dispatch(clearAll());\n\n return this;\n }\n }, {\n key: \"clearInput\",\n value: function clearInput() {\n var shouldSetInputWidth = !this._isSelectOneElement;\n this.input.clear(shouldSetInputWidth);\n\n if (!this._isTextElement && this._canSearch) {\n this._isSearching = false;\n\n this._store.dispatch(activateChoices(true));\n }\n\n return this;\n }\n }, {\n key: \"_render\",\n value: function _render() {\n if (this._store.isLoading()) {\n return;\n }\n\n this._currentState = this._store.state;\n var stateChanged = this._currentState.choices !== this._prevState.choices || this._currentState.groups !== this._prevState.groups || this._currentState.items !== this._prevState.items;\n var shouldRenderChoices = this._isSelectElement;\n var shouldRenderItems = this._currentState.items !== this._prevState.items;\n\n if (!stateChanged) {\n return;\n }\n\n if (shouldRenderChoices) {\n this._renderChoices();\n }\n\n if (shouldRenderItems) {\n this._renderItems();\n }\n\n this._prevState = this._currentState;\n }\n }, {\n key: \"_renderChoices\",\n value: function _renderChoices() {\n var _this12 = this;\n\n var _this$_store = this._store,\n activeGroups = _this$_store.activeGroups,\n activeChoices = _this$_store.activeChoices;\n var choiceListFragment = document.createDocumentFragment();\n this.choiceList.clear();\n\n if (this.config.resetScrollPosition) {\n requestAnimationFrame(function () {\n return _this12.choiceList.scrollToTop();\n });\n } // If we have grouped options\n\n\n if (activeGroups.length >= 1 && !this._isSearching) {\n // If we have a placeholder choice along with groups\n var activePlaceholders = activeChoices.filter(function (activeChoice) {\n return activeChoice.placeholder === true && activeChoice.groupId === -1;\n });\n\n if (activePlaceholders.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activePlaceholders, choiceListFragment);\n }\n\n choiceListFragment = this._createGroupsFragment(activeGroups, activeChoices, choiceListFragment);\n } else if (activeChoices.length >= 1) {\n choiceListFragment = this._createChoicesFragment(activeChoices, choiceListFragment);\n } // If we have choices to show\n\n\n if (choiceListFragment.childNodes && choiceListFragment.childNodes.length > 0) {\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, this.input.value); // ...and we can select them\n\n\n if (canAddItem.response) {\n // ...append them and highlight the first choice\n this.choiceList.append(choiceListFragment);\n\n this._highlightChoice();\n } else {\n // ...otherwise show a notice\n this.choiceList.append(this._getTemplate('notice', canAddItem.notice));\n }\n } else {\n // Otherwise show a notice\n var dropdownItem;\n var notice;\n\n if (this._isSearching) {\n notice = typeof this.config.noResultsText === 'function' ? this.config.noResultsText() : this.config.noResultsText;\n dropdownItem = this._getTemplate('notice', notice, 'no-results');\n } else {\n notice = typeof this.config.noChoicesText === 'function' ? this.config.noChoicesText() : this.config.noChoicesText;\n dropdownItem = this._getTemplate('notice', notice, 'no-choices');\n }\n\n this.choiceList.append(dropdownItem);\n }\n }\n }, {\n key: \"_renderItems\",\n value: function _renderItems() {\n var activeItems = this._store.activeItems || [];\n this.itemList.clear(); // Create a fragment to store our list items\n // (so we don't have to update the DOM for each item)\n\n var itemListFragment = this._createItemsFragment(activeItems); // If we have items to add, append them\n\n\n if (itemListFragment.childNodes) {\n this.itemList.append(itemListFragment);\n }\n }\n }, {\n key: \"_createGroupsFragment\",\n value: function _createGroupsFragment(groups, choices) {\n var _this13 = this;\n\n var fragment = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document.createDocumentFragment();\n\n var getGroupChoices = function getGroupChoices(group) {\n return choices.filter(function (choice) {\n if (_this13._isSelectOneElement) {\n return choice.groupId === group.id;\n }\n\n return choice.groupId === group.id && (_this13.config.renderSelectedChoices === 'always' || !choice.selected);\n });\n }; // If sorting is enabled, filter groups\n\n\n if (this.config.shouldSort) {\n groups.sort(this.config.sorter);\n }\n\n groups.forEach(function (group) {\n var groupChoices = getGroupChoices(group);\n\n if (groupChoices.length >= 1) {\n var dropdownGroup = _this13._getTemplate('choiceGroup', group);\n\n fragment.appendChild(dropdownGroup);\n\n _this13._createChoicesFragment(groupChoices, fragment, true);\n }\n });\n return fragment;\n }\n }, {\n key: \"_createChoicesFragment\",\n value: function _createChoicesFragment(choices) {\n var _this14 = this;\n\n var fragment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.createDocumentFragment();\n var withinGroup = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n // Create a fragment to store our list items (so we don't have to update the DOM for each item)\n var _this$config = this.config,\n renderSelectedChoices = _this$config.renderSelectedChoices,\n searchResultLimit = _this$config.searchResultLimit,\n renderChoiceLimit = _this$config.renderChoiceLimit;\n var filter = this._isSearching ? sortByScore : this.config.sorter;\n\n var appendChoice = function appendChoice(choice) {\n var shouldRender = renderSelectedChoices === 'auto' ? _this14._isSelectOneElement || !choice.selected : true;\n\n if (shouldRender) {\n var dropdownItem = _this14._getTemplate('choice', choice, _this14.config.itemSelectText);\n\n fragment.appendChild(dropdownItem);\n }\n };\n\n var rendererableChoices = choices;\n\n if (renderSelectedChoices === 'auto' && !this._isSelectOneElement) {\n rendererableChoices = choices.filter(function (choice) {\n return !choice.selected;\n });\n } // Split array into placeholders and \"normal\" choices\n\n\n var _rendererableChoices$ = rendererableChoices.reduce(function (acc, choice) {\n if (choice.placeholder) {\n acc.placeholderChoices.push(choice);\n } else {\n acc.normalChoices.push(choice);\n }\n\n return acc;\n }, {\n placeholderChoices: [],\n normalChoices: []\n }),\n placeholderChoices = _rendererableChoices$.placeholderChoices,\n normalChoices = _rendererableChoices$.normalChoices; // If sorting is enabled or the user is searching, filter choices\n\n\n if (this.config.shouldSort || this._isSearching) {\n normalChoices.sort(filter);\n }\n\n var choiceLimit = rendererableChoices.length; // Prepend placeholeder\n\n var sortedChoices = this._isSelectOneElement ? [].concat(_toConsumableArray(placeholderChoices), _toConsumableArray(normalChoices)) : normalChoices;\n\n if (this._isSearching) {\n choiceLimit = searchResultLimit;\n } else if (renderChoiceLimit && renderChoiceLimit > 0 && !withinGroup) {\n choiceLimit = renderChoiceLimit;\n } // Add each choice to dropdown within range\n\n\n for (var i = 0; i < choiceLimit; i += 1) {\n if (sortedChoices[i]) {\n appendChoice(sortedChoices[i]);\n }\n }\n\n return fragment;\n }\n }, {\n key: \"_createItemsFragment\",\n value: function _createItemsFragment(items) {\n var _this15 = this;\n\n var fragment = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.createDocumentFragment();\n // Create fragment to add elements to\n var _this$config2 = this.config,\n shouldSortItems = _this$config2.shouldSortItems,\n sorter = _this$config2.sorter,\n removeItemButton = _this$config2.removeItemButton; // If sorting is enabled, filter items\n\n if (shouldSortItems && !this._isSelectOneElement) {\n items.sort(sorter);\n }\n\n if (this._isTextElement) {\n // Update the value of the hidden input\n this.passedElement.value = items;\n } else {\n // Update the options of the hidden input\n this.passedElement.options = items;\n }\n\n var addItemToFragment = function addItemToFragment(item) {\n // Create new list element\n var listItem = _this15._getTemplate('item', item, removeItemButton); // Append it to list\n\n\n fragment.appendChild(listItem);\n }; // Add each list item to list\n\n\n items.forEach(addItemToFragment);\n return fragment;\n }\n }, {\n key: \"_triggerChange\",\n value: function _triggerChange(value) {\n if (value === undefined || value === null) {\n return;\n }\n\n this.passedElement.triggerEvent(EVENTS.change, {\n value: value\n });\n }\n }, {\n key: \"_selectPlaceholderChoice\",\n value: function _selectPlaceholderChoice() {\n var placeholderChoice = this._store.placeholderChoice;\n\n if (placeholderChoice) {\n this._addItem({\n value: placeholderChoice.value,\n label: placeholderChoice.label,\n choiceId: placeholderChoice.id,\n groupId: placeholderChoice.groupId,\n placeholder: placeholderChoice.placeholder\n });\n\n this._triggerChange(placeholderChoice.value);\n }\n }\n }, {\n key: \"_handleButtonAction\",\n value: function _handleButtonAction(activeItems, element) {\n if (!activeItems || !element || !this.config.removeItems || !this.config.removeItemButton) {\n return;\n }\n\n var itemId = element.parentNode.getAttribute('data-id');\n var itemToRemove = activeItems.find(function (item) {\n return item.id === parseInt(itemId, 10);\n }); // Remove item associated with button\n\n this._removeItem(itemToRemove);\n\n this._triggerChange(itemToRemove.value);\n\n if (this._isSelectOneElement) {\n this._selectPlaceholderChoice();\n }\n }\n }, {\n key: \"_handleItemAction\",\n value: function _handleItemAction(activeItems, element) {\n var _this16 = this;\n\n var hasShiftKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!activeItems || !element || !this.config.removeItems || this._isSelectOneElement) {\n return;\n }\n\n var passedId = element.getAttribute('data-id'); // We only want to select one item with a click\n // so we deselect any items that aren't the target\n // unless shift is being pressed\n\n activeItems.forEach(function (item) {\n if (item.id === parseInt(passedId, 10) && !item.highlighted) {\n _this16.highlightItem(item);\n } else if (!hasShiftKey && item.highlighted) {\n _this16.unhighlightItem(item);\n }\n }); // Focus input as without focus, a user cannot do anything with a\n // highlighted item\n\n this.input.focus();\n }\n }, {\n key: \"_handleChoiceAction\",\n value: function _handleChoiceAction(activeItems, element) {\n if (!activeItems || !element) {\n return;\n } // If we are clicking on an option\n\n\n var id = element.dataset.id;\n\n var choice = this._store.getChoiceById(id);\n\n if (!choice) {\n return;\n }\n\n var passedKeyCode = activeItems[0] && activeItems[0].keyCode ? activeItems[0].keyCode : null;\n var hasActiveDropdown = this.dropdown.isActive; // Update choice keyCode\n\n choice.keyCode = passedKeyCode;\n this.passedElement.triggerEvent(EVENTS.choice, {\n choice: choice\n });\n\n if (!choice.selected && !choice.disabled) {\n var canAddItem = this._canAddItem(activeItems, choice.value);\n\n if (canAddItem.response) {\n this._addItem({\n value: choice.value,\n label: choice.label,\n choiceId: choice.id,\n groupId: choice.groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder,\n keyCode: choice.keyCode\n });\n\n this._triggerChange(choice.value);\n }\n }\n\n this.clearInput(); // We want to close the dropdown if we are dealing with a single select box\n\n if (hasActiveDropdown && this._isSelectOneElement) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n }\n }, {\n key: \"_handleBackspace\",\n value: function _handleBackspace(activeItems) {\n if (!this.config.removeItems || !activeItems) {\n return;\n }\n\n var lastItem = activeItems[activeItems.length - 1];\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n }); // If editing the last item is allowed and there are not other selected items,\n // we can edit the item value. Otherwise if we can remove items, remove all selected items\n\n if (this.config.editItems && !hasHighlightedItems && lastItem) {\n this.input.value = lastItem.value;\n this.input.setWidth();\n\n this._removeItem(lastItem);\n\n this._triggerChange(lastItem.value);\n } else {\n if (!hasHighlightedItems) {\n // Highlight last item if none already highlighted\n this.highlightItem(lastItem, false);\n }\n\n this.removeHighlightedItems(true);\n }\n }\n }, {\n key: \"_startLoading\",\n value: function _startLoading() {\n this._store.dispatch(setIsLoading(true));\n }\n }, {\n key: \"_stopLoading\",\n value: function _stopLoading() {\n this._store.dispatch(setIsLoading(false));\n }\n }, {\n key: \"_handleLoadingState\",\n value: function _handleLoadingState() {\n var setLoading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var placeholderItem = this.itemList.getChild(\".\".concat(this.config.classNames.placeholder));\n\n if (setLoading) {\n this.disable();\n this.containerOuter.addLoadingState();\n\n if (this._isSelectOneElement) {\n if (!placeholderItem) {\n placeholderItem = this._getTemplate('placeholder', this.config.loadingText);\n this.itemList.append(placeholderItem);\n } else {\n placeholderItem.innerHTML = this.config.loadingText;\n }\n } else {\n this.input.placeholder = this.config.loadingText;\n }\n } else {\n this.enable();\n this.containerOuter.removeLoadingState();\n\n if (this._isSelectOneElement) {\n placeholderItem.innerHTML = this._placeholderValue || '';\n } else {\n this.input.placeholder = this._placeholderValue || '';\n }\n }\n }\n }, {\n key: \"_handleSearch\",\n value: function _handleSearch(value) {\n if (!value || !this.input.isFocussed) {\n return;\n }\n\n var choices = this._store.choices;\n var _this$config3 = this.config,\n searchFloor = _this$config3.searchFloor,\n searchChoices = _this$config3.searchChoices;\n var hasUnactiveChoices = choices.some(function (option) {\n return !option.active;\n }); // Check that we have a value to search and the input was an alphanumeric character\n\n if (value && value.length >= searchFloor) {\n var resultCount = searchChoices ? this._searchChoices(value) : 0; // Trigger search event\n\n this.passedElement.triggerEvent(EVENTS.search, {\n value: value,\n resultCount: resultCount\n });\n } else if (hasUnactiveChoices) {\n // Otherwise reset choices to active\n this._isSearching = false;\n\n this._store.dispatch(activateChoices(true));\n }\n }\n }, {\n key: \"_canAddItem\",\n value: function _canAddItem(activeItems, value) {\n var canAddItem = true;\n var notice = typeof this.config.addItemText === 'function' ? this.config.addItemText(value) : this.config.addItemText;\n\n if (!this._isSelectOneElement) {\n var isDuplicateValue = existsInArray(activeItems, value);\n\n if (this.config.maxItemCount > 0 && this.config.maxItemCount <= activeItems.length) {\n // If there is a max entry limit and we have reached that limit\n // don't update\n canAddItem = false;\n notice = typeof this.config.maxItemText === 'function' ? this.config.maxItemText(this.config.maxItemCount) : this.config.maxItemText;\n }\n\n if (!this.config.duplicateItemsAllowed && isDuplicateValue && canAddItem) {\n canAddItem = false;\n notice = typeof this.config.uniqueItemText === 'function' ? this.config.uniqueItemText(value) : this.config.uniqueItemText;\n }\n\n if (this._isTextElement && this.config.addItems && canAddItem && typeof this.config.addItemFilter === 'function' && !this.config.addItemFilter(value)) {\n canAddItem = false;\n notice = typeof this.config.customAddItemText === 'function' ? this.config.customAddItemText(value) : this.config.customAddItemText;\n }\n }\n\n return {\n response: canAddItem,\n notice: notice\n };\n }\n }, {\n key: \"_searchChoices\",\n value: function _searchChoices(value) {\n var newValue = typeof value === 'string' ? value.trim() : value;\n var currentValue = typeof this._currentValue === 'string' ? this._currentValue.trim() : this._currentValue;\n\n if (newValue.length < 1 && newValue === \"\".concat(currentValue, \" \")) {\n return 0;\n } // If new value matches the desired length and is not the same as the current value with a space\n\n\n var haystack = this._store.searchableChoices;\n var needle = newValue;\n\n var keys = _toConsumableArray(this.config.searchFields);\n\n var options = Object.assign(this.config.fuseOptions, {\n keys: keys\n });\n var fuse = new Fuse(haystack, options);\n var results = fuse.search(needle);\n this._currentValue = newValue;\n this._highlightPosition = 0;\n this._isSearching = true;\n\n this._store.dispatch(filterChoices(results));\n\n return results.length;\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _document = document,\n documentElement = _document.documentElement; // capture events - can cancel event processing or propagation\n\n documentElement.addEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.addEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.addEventListener('mousedown', this._onMouseDown, true); // passive events - doesn't call `preventDefault` or `stopPropagation`\n\n documentElement.addEventListener('click', this._onClick, {\n passive: true\n });\n documentElement.addEventListener('touchmove', this._onTouchMove, {\n passive: true\n });\n this.dropdown.element.addEventListener('mouseover', this._onMouseOver, {\n passive: true\n });\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.containerOuter.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n }\n\n this.input.element.addEventListener('keyup', this._onKeyUp, {\n passive: true\n });\n this.input.element.addEventListener('focus', this._onFocus, {\n passive: true\n });\n this.input.element.addEventListener('blur', this._onBlur, {\n passive: true\n });\n\n if (this.input.element.form) {\n this.input.element.form.addEventListener('reset', this._onFormReset, {\n passive: true\n });\n }\n\n this.input.addEventListeners();\n }\n }, {\n key: \"_removeEventListeners\",\n value: function _removeEventListeners() {\n var _document2 = document,\n documentElement = _document2.documentElement;\n documentElement.removeEventListener('touchend', this._onTouchEnd, true);\n this.containerOuter.element.removeEventListener('keydown', this._onKeyDown, true);\n this.containerOuter.element.removeEventListener('mousedown', this._onMouseDown, true);\n documentElement.removeEventListener('click', this._onClick);\n documentElement.removeEventListener('touchmove', this._onTouchMove);\n this.dropdown.element.removeEventListener('mouseover', this._onMouseOver);\n\n if (this._isSelectOneElement) {\n this.containerOuter.element.removeEventListener('focus', this._onFocus);\n this.containerOuter.element.removeEventListener('blur', this._onBlur);\n }\n\n this.input.element.removeEventListener('keyup', this._onKeyUp);\n this.input.element.removeEventListener('focus', this._onFocus);\n this.input.element.removeEventListener('blur', this._onBlur);\n\n if (this.input.element.form) {\n this.input.element.form.removeEventListener('reset', this._onFormReset);\n }\n\n this.input.removeEventListeners();\n }\n /**\n * @param {KeyboardEvent} event\n */\n\n }, {\n key: \"_onKeyDown\",\n value: function _onKeyDown(event) {\n var _keyDownActions;\n\n var target = event.target,\n keyCode = event.keyCode,\n ctrlKey = event.ctrlKey,\n metaKey = event.metaKey;\n var activeItems = this._store.activeItems;\n var hasFocusedInput = this.input.isFocussed;\n var hasActiveDropdown = this.dropdown.isActive;\n var hasItems = this.itemList.hasChildren();\n var keyString = String.fromCharCode(keyCode);\n var BACK_KEY = KEY_CODES.BACK_KEY,\n DELETE_KEY = KEY_CODES.DELETE_KEY,\n ENTER_KEY = KEY_CODES.ENTER_KEY,\n A_KEY = KEY_CODES.A_KEY,\n ESC_KEY = KEY_CODES.ESC_KEY,\n UP_KEY = KEY_CODES.UP_KEY,\n DOWN_KEY = KEY_CODES.DOWN_KEY,\n PAGE_UP_KEY = KEY_CODES.PAGE_UP_KEY,\n PAGE_DOWN_KEY = KEY_CODES.PAGE_DOWN_KEY;\n var hasCtrlDownKeyPressed = ctrlKey || metaKey; // If a user is typing and the dropdown is not active\n\n if (!this._isTextElement && /[a-zA-Z0-9-_ ]/.test(keyString)) {\n this.showDropdown();\n } // Map keys to key actions\n\n\n var keyDownActions = (_keyDownActions = {}, _defineProperty(_keyDownActions, A_KEY, this._onAKey), _defineProperty(_keyDownActions, ENTER_KEY, this._onEnterKey), _defineProperty(_keyDownActions, ESC_KEY, this._onEscapeKey), _defineProperty(_keyDownActions, UP_KEY, this._onDirectionKey), _defineProperty(_keyDownActions, PAGE_UP_KEY, this._onDirectionKey), _defineProperty(_keyDownActions, DOWN_KEY, this._onDirectionKey), _defineProperty(_keyDownActions, PAGE_DOWN_KEY, this._onDirectionKey), _defineProperty(_keyDownActions, DELETE_KEY, this._onDeleteKey), _defineProperty(_keyDownActions, BACK_KEY, this._onDeleteKey), _keyDownActions); // If keycode has a function, run it\n\n if (keyDownActions[keyCode]) {\n keyDownActions[keyCode]({\n event: event,\n target: target,\n keyCode: keyCode,\n metaKey: metaKey,\n activeItems: activeItems,\n hasFocusedInput: hasFocusedInput,\n hasActiveDropdown: hasActiveDropdown,\n hasItems: hasItems,\n hasCtrlDownKeyPressed: hasCtrlDownKeyPressed\n });\n }\n }\n }, {\n key: \"_onKeyUp\",\n value: function _onKeyUp(_ref2) {\n var target = _ref2.target,\n keyCode = _ref2.keyCode;\n var value = this.input.value;\n var activeItems = this._store.activeItems;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n var backKey = KEY_CODES.BACK_KEY,\n deleteKey = KEY_CODES.DELETE_KEY; // We are typing into a text input and have a value, we want to show a dropdown\n // notice. Otherwise hide the dropdown\n\n if (this._isTextElement) {\n var canShowDropdownNotice = canAddItem.notice && value;\n\n if (canShowDropdownNotice) {\n var dropdownItem = this._getTemplate('notice', canAddItem.notice);\n\n this.dropdown.element.innerHTML = dropdownItem.outerHTML;\n this.showDropdown(true);\n } else {\n this.hideDropdown(true);\n }\n } else {\n var userHasRemovedValue = (keyCode === backKey || keyCode === deleteKey) && !target.value;\n var canReactivateChoices = !this._isTextElement && this._isSearching;\n var canSearch = this._canSearch && canAddItem.response;\n\n if (userHasRemovedValue && canReactivateChoices) {\n this._isSearching = false;\n\n this._store.dispatch(activateChoices(true));\n } else if (canSearch) {\n this._handleSearch(this.input.value);\n }\n }\n\n this._canSearch = this.config.searchEnabled;\n }\n }, {\n key: \"_onAKey\",\n value: function _onAKey(_ref3) {\n var hasItems = _ref3.hasItems,\n hasCtrlDownKeyPressed = _ref3.hasCtrlDownKeyPressed;\n\n // If CTRL + A or CMD + A have been pressed and there are items to select\n if (hasCtrlDownKeyPressed && hasItems) {\n this._canSearch = false;\n var shouldHightlightAll = this.config.removeItems && !this.input.value && this.input.element === document.activeElement;\n\n if (shouldHightlightAll) {\n this.highlightAll();\n }\n }\n }\n }, {\n key: \"_onEnterKey\",\n value: function _onEnterKey(_ref4) {\n var event = _ref4.event,\n target = _ref4.target,\n activeItems = _ref4.activeItems,\n hasActiveDropdown = _ref4.hasActiveDropdown;\n var enterKey = KEY_CODES.ENTER_KEY;\n var targetWasButton = target.hasAttribute('data-button');\n\n if (this._isTextElement && target.value) {\n var value = this.input.value;\n\n var canAddItem = this._canAddItem(activeItems, value);\n\n if (canAddItem.response) {\n this.hideDropdown(true);\n\n this._addItem({\n value: value\n });\n\n this._triggerChange(value);\n\n this.clearInput();\n }\n }\n\n if (targetWasButton) {\n this._handleButtonAction(activeItems, target);\n\n event.preventDefault();\n }\n\n if (hasActiveDropdown) {\n var highlightedChoice = this.dropdown.getChild(\".\".concat(this.config.classNames.highlightedState));\n\n if (highlightedChoice) {\n // add enter keyCode value\n if (activeItems[0]) {\n activeItems[0].keyCode = enterKey; // eslint-disable-line no-param-reassign\n }\n\n this._handleChoiceAction(activeItems, highlightedChoice);\n }\n\n event.preventDefault();\n } else if (this._isSelectOneElement) {\n this.showDropdown();\n event.preventDefault();\n }\n }\n }, {\n key: \"_onEscapeKey\",\n value: function _onEscapeKey(_ref5) {\n var hasActiveDropdown = _ref5.hasActiveDropdown;\n\n if (hasActiveDropdown) {\n this.hideDropdown(true);\n this.containerOuter.focus();\n }\n }\n }, {\n key: \"_onDirectionKey\",\n value: function _onDirectionKey(_ref6) {\n var event = _ref6.event,\n hasActiveDropdown = _ref6.hasActiveDropdown,\n keyCode = _ref6.keyCode,\n metaKey = _ref6.metaKey;\n var downKey = KEY_CODES.DOWN_KEY,\n pageUpKey = KEY_CODES.PAGE_UP_KEY,\n pageDownKey = KEY_CODES.PAGE_DOWN_KEY; // If up or down key is pressed, traverse through options\n\n if (hasActiveDropdown || this._isSelectOneElement) {\n this.showDropdown();\n this._canSearch = false;\n var directionInt = keyCode === downKey || keyCode === pageDownKey ? 1 : -1;\n var skipKey = metaKey || keyCode === pageDownKey || keyCode === pageUpKey;\n var selectableChoiceIdentifier = '[data-choice-selectable]';\n var nextEl;\n\n if (skipKey) {\n if (directionInt > 0) {\n nextEl = this.dropdown.element.querySelector(\"\".concat(selectableChoiceIdentifier, \":last-of-type\"));\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n } else {\n var currentEl = this.dropdown.element.querySelector(\".\".concat(this.config.classNames.highlightedState));\n\n if (currentEl) {\n nextEl = getAdjacentEl(currentEl, selectableChoiceIdentifier, directionInt);\n } else {\n nextEl = this.dropdown.element.querySelector(selectableChoiceIdentifier);\n }\n }\n\n if (nextEl) {\n // We prevent default to stop the cursor moving\n // when pressing the arrow\n if (!isScrolledIntoView(nextEl, this.choiceList.element, directionInt)) {\n this.choiceList.scrollToChildElement(nextEl, directionInt);\n }\n\n this._highlightChoice(nextEl);\n } // Prevent default to maintain cursor position whilst\n // traversing dropdown options\n\n\n event.preventDefault();\n }\n }\n }, {\n key: \"_onDeleteKey\",\n value: function _onDeleteKey(_ref7) {\n var event = _ref7.event,\n target = _ref7.target,\n hasFocusedInput = _ref7.hasFocusedInput,\n activeItems = _ref7.activeItems;\n\n // If backspace or delete key is pressed and the input has no value\n if (hasFocusedInput && !target.value && !this._isSelectOneElement) {\n this._handleBackspace(activeItems);\n\n event.preventDefault();\n }\n }\n }, {\n key: \"_onTouchMove\",\n value: function _onTouchMove() {\n if (this._wasTap) {\n this._wasTap = false;\n }\n }\n }, {\n key: \"_onTouchEnd\",\n value: function _onTouchEnd(event) {\n var _ref8 = event || event.touches[0],\n target = _ref8.target;\n\n var touchWasWithinContainer = this._wasTap && this.containerOuter.element.contains(target);\n\n if (touchWasWithinContainer) {\n var containerWasExactTarget = target === this.containerOuter.element || target === this.containerInner.element;\n\n if (containerWasExactTarget) {\n if (this._isTextElement) {\n this.input.focus();\n } else if (this._isSelectMultipleElement) {\n this.showDropdown();\n }\n } // Prevents focus event firing\n\n\n event.stopPropagation();\n }\n\n this._wasTap = true;\n }\n /**\n * Handles mousedown event in capture mode for containetOuter.element\n * @param {MouseEvent} event\n */\n\n }, {\n key: \"_onMouseDown\",\n value: function _onMouseDown(event) {\n var target = event.target;\n\n if (!(target instanceof HTMLElement)) {\n return;\n } // If we have our mouse down on the scrollbar and are on IE11...\n\n\n if (IS_IE11 && this.choiceList.element.contains(target)) {\n // check if click was on a scrollbar area\n var firstChoice =\n /** @type {HTMLElement} */\n this.choiceList.element.firstElementChild;\n var isOnScrollbar = this._direction === 'ltr' ? event.offsetX >= firstChoice.offsetWidth : event.offsetX < firstChoice.offsetLeft;\n this._isScrollingOnIe = isOnScrollbar;\n }\n\n if (target === this.input.element) {\n return;\n }\n\n var item = target.closest('[data-button],[data-item],[data-choice]');\n\n if (item instanceof HTMLElement) {\n var hasShiftKey = event.shiftKey;\n var activeItems = this._store.activeItems;\n var dataset = item.dataset;\n\n if ('button' in dataset) {\n this._handleButtonAction(activeItems, item);\n } else if ('item' in dataset) {\n this._handleItemAction(activeItems, item, hasShiftKey);\n } else if ('choice' in dataset) {\n this._handleChoiceAction(activeItems, item);\n }\n }\n\n event.preventDefault();\n }\n /**\n * Handles mouseover event over this.dropdown\n * @param {MouseEvent} event\n */\n\n }, {\n key: \"_onMouseOver\",\n value: function _onMouseOver(_ref9) {\n var target = _ref9.target;\n\n if (target instanceof HTMLElement && 'choice' in target.dataset) {\n this._highlightChoice(target);\n }\n }\n }, {\n key: \"_onClick\",\n value: function _onClick(_ref10) {\n var target = _ref10.target;\n var clickWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (clickWasWithinContainer) {\n if (!this.dropdown.isActive && !this.containerOuter.isDisabled) {\n if (this._isTextElement) {\n if (document.activeElement !== this.input.element) {\n this.input.focus();\n }\n } else {\n this.showDropdown();\n this.containerOuter.focus();\n }\n } else if (this._isSelectOneElement && target !== this.input.element && !this.dropdown.element.contains(target)) {\n this.hideDropdown();\n }\n } else {\n var hasHighlightedItems = this._store.highlightedActiveItems.length > 0;\n\n if (hasHighlightedItems) {\n this.unhighlightAll();\n }\n\n this.containerOuter.removeFocusState();\n this.hideDropdown(true);\n }\n }\n }, {\n key: \"_onFocus\",\n value: function _onFocus(_ref11) {\n var _this17 = this,\n _focusActions;\n\n var target = _ref11.target;\n var focusWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (!focusWasWithinContainer) {\n return;\n }\n\n var focusActions = (_focusActions = {}, _defineProperty(_focusActions, TEXT_TYPE, function () {\n if (target === _this17.input.element) {\n _this17.containerOuter.addFocusState();\n }\n }), _defineProperty(_focusActions, SELECT_ONE_TYPE, function () {\n _this17.containerOuter.addFocusState();\n\n if (target === _this17.input.element) {\n _this17.showDropdown(true);\n }\n }), _defineProperty(_focusActions, SELECT_MULTIPLE_TYPE, function () {\n if (target === _this17.input.element) {\n _this17.showDropdown(true); // If element is a select box, the focused element is the container and the dropdown\n // isn't already open, focus and show dropdown\n\n\n _this17.containerOuter.addFocusState();\n }\n }), _focusActions);\n focusActions[this.passedElement.element.type]();\n }\n }, {\n key: \"_onBlur\",\n value: function _onBlur(_ref12) {\n var _this18 = this;\n\n var target = _ref12.target;\n var blurWasWithinContainer = this.containerOuter.element.contains(target);\n\n if (blurWasWithinContainer && !this._isScrollingOnIe) {\n var _blurActions;\n\n var activeItems = this._store.activeItems;\n var hasHighlightedItems = activeItems.some(function (item) {\n return item.highlighted;\n });\n var blurActions = (_blurActions = {}, _defineProperty(_blurActions, TEXT_TYPE, function () {\n if (target === _this18.input.element) {\n _this18.containerOuter.removeFocusState();\n\n if (hasHighlightedItems) {\n _this18.unhighlightAll();\n }\n\n _this18.hideDropdown(true);\n }\n }), _defineProperty(_blurActions, SELECT_ONE_TYPE, function () {\n _this18.containerOuter.removeFocusState();\n\n if (target === _this18.input.element || target === _this18.containerOuter.element && !_this18._canSearch) {\n _this18.hideDropdown(true);\n }\n }), _defineProperty(_blurActions, SELECT_MULTIPLE_TYPE, function () {\n if (target === _this18.input.element) {\n _this18.containerOuter.removeFocusState();\n\n _this18.hideDropdown(true);\n\n if (hasHighlightedItems) {\n _this18.unhighlightAll();\n }\n }\n }), _blurActions);\n blurActions[this.passedElement.element.type]();\n } else {\n // On IE11, clicking the scollbar blurs our input and thus\n // closes the dropdown. To stop this, we refocus our input\n // if we know we are on IE *and* are scrolling.\n this._isScrollingOnIe = false;\n this.input.element.focus();\n }\n }\n }, {\n key: \"_onFormReset\",\n value: function _onFormReset() {\n this._store.dispatch(resetTo(this._initialState));\n }\n }, {\n key: \"_highlightChoice\",\n value: function _highlightChoice() {\n var _this19 = this;\n\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var choices = Array.from(this.dropdown.element.querySelectorAll('[data-choice-selectable]'));\n\n if (!choices.length) {\n return;\n }\n\n var passedEl = el;\n var highlightedChoices = Array.from(this.dropdown.element.querySelectorAll(\".\".concat(this.config.classNames.highlightedState))); // Remove any highlighted choices\n\n highlightedChoices.forEach(function (choice) {\n choice.classList.remove(_this19.config.classNames.highlightedState);\n choice.setAttribute('aria-selected', 'false');\n });\n\n if (passedEl) {\n this._highlightPosition = choices.indexOf(passedEl);\n } else {\n // Highlight choice based on last known highlight location\n if (choices.length > this._highlightPosition) {\n // If we have an option to highlight\n passedEl = choices[this._highlightPosition];\n } else {\n // Otherwise highlight the option before\n passedEl = choices[choices.length - 1];\n }\n\n if (!passedEl) {\n passedEl = choices[0];\n }\n }\n\n passedEl.classList.add(this.config.classNames.highlightedState);\n passedEl.setAttribute('aria-selected', 'true');\n this.passedElement.triggerEvent(EVENTS.highlightChoice, {\n el: passedEl\n });\n\n if (this.dropdown.isActive) {\n // IE11 ignores aria-label and blocks virtual keyboard\n // if aria-activedescendant is set without a dropdown\n this.input.setActiveDescendant(passedEl.id);\n this.containerOuter.setActiveDescendant(passedEl.id);\n }\n }\n }, {\n key: \"_addItem\",\n value: function _addItem(_ref13) {\n var value = _ref13.value,\n _ref13$label = _ref13.label,\n label = _ref13$label === void 0 ? null : _ref13$label,\n _ref13$choiceId = _ref13.choiceId,\n choiceId = _ref13$choiceId === void 0 ? -1 : _ref13$choiceId,\n _ref13$groupId = _ref13.groupId,\n groupId = _ref13$groupId === void 0 ? -1 : _ref13$groupId,\n _ref13$customProperti = _ref13.customProperties,\n customProperties = _ref13$customProperti === void 0 ? null : _ref13$customProperti,\n _ref13$placeholder = _ref13.placeholder,\n placeholder = _ref13$placeholder === void 0 ? false : _ref13$placeholder,\n _ref13$keyCode = _ref13.keyCode,\n keyCode = _ref13$keyCode === void 0 ? null : _ref13$keyCode;\n var passedValue = typeof value === 'string' ? value.trim() : value;\n var passedKeyCode = keyCode;\n var passedCustomProperties = customProperties;\n var items = this._store.items;\n var passedLabel = label || passedValue;\n var passedOptionId = choiceId || -1;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n var id = items ? items.length + 1 : 1; // If a prepended value has been passed, prepend it\n\n if (this.config.prependValue) {\n passedValue = this.config.prependValue + passedValue.toString();\n } // If an appended value has been passed, append it\n\n\n if (this.config.appendValue) {\n passedValue += this.config.appendValue.toString();\n }\n\n this._store.dispatch(addItem({\n value: passedValue,\n label: passedLabel,\n id: id,\n choiceId: passedOptionId,\n groupId: groupId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: passedKeyCode\n }));\n\n if (this._isSelectOneElement) {\n this.removeActiveItems(id);\n } // Trigger change event\n\n\n this.passedElement.triggerEvent(EVENTS.addItem, {\n id: id,\n value: passedValue,\n label: passedLabel,\n customProperties: passedCustomProperties,\n groupValue: group && group.value ? group.value : undefined,\n keyCode: passedKeyCode\n });\n return this;\n }\n }, {\n key: \"_removeItem\",\n value: function _removeItem(item) {\n if (!item || !isType('Object', item)) {\n return this;\n }\n\n var id = item.id,\n value = item.value,\n label = item.label,\n choiceId = item.choiceId,\n groupId = item.groupId;\n var group = groupId >= 0 ? this._store.getGroupById(groupId) : null;\n\n this._store.dispatch(removeItem(id, choiceId));\n\n if (group && group.value) {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id: id,\n value: value,\n label: label,\n groupValue: group.value\n });\n } else {\n this.passedElement.triggerEvent(EVENTS.removeItem, {\n id: id,\n value: value,\n label: label\n });\n }\n\n return this;\n }\n }, {\n key: \"_addChoice\",\n value: function _addChoice(_ref14) {\n var value = _ref14.value,\n _ref14$label = _ref14.label,\n label = _ref14$label === void 0 ? null : _ref14$label,\n _ref14$isSelected = _ref14.isSelected,\n isSelected = _ref14$isSelected === void 0 ? false : _ref14$isSelected,\n _ref14$isDisabled = _ref14.isDisabled,\n isDisabled = _ref14$isDisabled === void 0 ? false : _ref14$isDisabled,\n _ref14$groupId = _ref14.groupId,\n groupId = _ref14$groupId === void 0 ? -1 : _ref14$groupId,\n _ref14$customProperti = _ref14.customProperties,\n customProperties = _ref14$customProperti === void 0 ? null : _ref14$customProperti,\n _ref14$placeholder = _ref14.placeholder,\n placeholder = _ref14$placeholder === void 0 ? false : _ref14$placeholder,\n _ref14$keyCode = _ref14.keyCode,\n keyCode = _ref14$keyCode === void 0 ? null : _ref14$keyCode;\n\n if (typeof value === 'undefined' || value === null) {\n return;\n } // Generate unique id\n\n\n var choices = this._store.choices;\n var choiceLabel = label || value;\n var choiceId = choices ? choices.length + 1 : 1;\n var choiceElementId = \"\".concat(this._baseId, \"-\").concat(this._idNames.itemChoice, \"-\").concat(choiceId);\n\n this._store.dispatch(addChoice({\n id: choiceId,\n groupId: groupId,\n elementId: choiceElementId,\n value: value,\n label: choiceLabel,\n disabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n }));\n\n if (isSelected) {\n this._addItem({\n value: value,\n label: choiceLabel,\n choiceId: choiceId,\n customProperties: customProperties,\n placeholder: placeholder,\n keyCode: keyCode\n });\n }\n }\n }, {\n key: \"_addGroup\",\n value: function _addGroup(_ref15) {\n var _this20 = this;\n\n var group = _ref15.group,\n id = _ref15.id,\n _ref15$valueKey = _ref15.valueKey,\n valueKey = _ref15$valueKey === void 0 ? 'value' : _ref15$valueKey,\n _ref15$labelKey = _ref15.labelKey,\n labelKey = _ref15$labelKey === void 0 ? 'label' : _ref15$labelKey;\n var groupChoices = isType('Object', group) ? group.choices : Array.from(group.getElementsByTagName('OPTION'));\n var groupId = id || Math.floor(new Date().valueOf() * Math.random());\n var isDisabled = group.disabled ? group.disabled : false;\n\n if (groupChoices) {\n this._store.dispatch(addGroup({\n value: group.label,\n id: groupId,\n active: true,\n disabled: isDisabled\n }));\n\n var addGroupChoices = function addGroupChoices(choice) {\n var isOptDisabled = choice.disabled || choice.parentNode && choice.parentNode.disabled;\n\n _this20._addChoice({\n value: choice[valueKey],\n label: isType('Object', choice) ? choice[labelKey] : choice.innerHTML,\n isSelected: choice.selected,\n isDisabled: isOptDisabled,\n groupId: groupId,\n customProperties: choice.customProperties,\n placeholder: choice.placeholder\n });\n };\n\n groupChoices.forEach(addGroupChoices);\n } else {\n this._store.dispatch(addGroup({\n value: group.label,\n id: group.id,\n active: false,\n disabled: group.disabled\n }));\n }\n }\n }, {\n key: \"_getTemplate\",\n value: function _getTemplate(template) {\n var _this$_templates$temp;\n\n if (!template) {\n return null;\n }\n\n var classNames = this.config.classNames;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return (_this$_templates$temp = this._templates[template]).call.apply(_this$_templates$temp, [this, classNames].concat(args));\n }\n }, {\n key: \"_createTemplates\",\n value: function _createTemplates() {\n var callbackOnCreateTemplates = this.config.callbackOnCreateTemplates;\n var userTemplates = {};\n\n if (callbackOnCreateTemplates && typeof callbackOnCreateTemplates === 'function') {\n userTemplates = callbackOnCreateTemplates.call(this, strToEl);\n }\n\n this._templates = merge(TEMPLATES, userTemplates);\n }\n }, {\n key: \"_createElements\",\n value: function _createElements() {\n this.containerOuter = new Container({\n element: this._getTemplate('containerOuter', this._direction, this._isSelectElement, this._isSelectOneElement, this.config.searchEnabled, this.passedElement.element.type),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.containerInner = new Container({\n element: this._getTemplate('containerInner'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n position: this.config.position\n });\n this.input = new Input({\n element: this._getTemplate('input', this._placeholderValue),\n classNames: this.config.classNames,\n type: this.passedElement.element.type,\n preventPaste: !this.config.paste\n });\n this.choiceList = new List({\n element: this._getTemplate('choiceList', this._isSelectOneElement)\n });\n this.itemList = new List({\n element: this._getTemplate('itemList', this._isSelectOneElement)\n });\n this.dropdown = new Dropdown({\n element: this._getTemplate('dropdown'),\n classNames: this.config.classNames,\n type: this.passedElement.element.type\n });\n }\n }, {\n key: \"_createStructure\",\n value: function _createStructure() {\n // Hide original element\n this.passedElement.conceal(); // Wrap input in container preserving DOM ordering\n\n this.containerInner.wrap(this.passedElement.element); // Wrapper inner container with outer container\n\n this.containerOuter.wrap(this.containerInner.element);\n\n if (this._isSelectOneElement) {\n this.input.placeholder = this.config.searchPlaceholderValue || '';\n } else if (this._placeholderValue) {\n this.input.placeholder = this._placeholderValue;\n this.input.setWidth();\n }\n\n this.containerOuter.element.appendChild(this.containerInner.element);\n this.containerOuter.element.appendChild(this.dropdown.element);\n this.containerInner.element.appendChild(this.itemList.element);\n\n if (!this._isTextElement) {\n this.dropdown.element.appendChild(this.choiceList.element);\n }\n\n if (!this._isSelectOneElement) {\n this.containerInner.element.appendChild(this.input.element);\n } else if (this.config.searchEnabled) {\n this.dropdown.element.insertBefore(this.input.element, this.dropdown.element.firstChild);\n }\n\n if (this._isSelectElement) {\n this._highlightPosition = 0;\n this._isSearching = false;\n\n this._startLoading();\n\n if (this._presetGroups.length) {\n this._addPredefinedGroups(this._presetGroups);\n } else {\n this._addPredefinedChoices(this._presetChoices);\n }\n\n this._stopLoading();\n }\n\n if (this._isTextElement) {\n this._addPredefinedItems(this._presetItems);\n }\n }\n }, {\n key: \"_addPredefinedGroups\",\n value: function _addPredefinedGroups(groups) {\n var _this21 = this;\n\n // If we have a placeholder option\n var placeholderChoice = this.passedElement.placeholderOption;\n\n if (placeholderChoice && placeholderChoice.parentNode.tagName === 'SELECT') {\n this._addChoice({\n value: placeholderChoice.value,\n label: placeholderChoice.innerHTML,\n isSelected: placeholderChoice.selected,\n isDisabled: placeholderChoice.disabled,\n placeholder: true\n });\n }\n\n groups.forEach(function (group) {\n return _this21._addGroup({\n group: group,\n id: group.id || null\n });\n });\n }\n }, {\n key: \"_addPredefinedChoices\",\n value: function _addPredefinedChoices(choices) {\n var _this22 = this;\n\n // If sorting is enabled or the user is searching, filter choices\n if (this.config.shouldSort) {\n choices.sort(this.config.sorter);\n }\n\n var hasSelectedChoice = choices.some(function (choice) {\n return choice.selected;\n });\n var firstEnabledChoiceIndex = choices.findIndex(function (choice) {\n return choice.disabled === undefined || !choice.disabled;\n });\n choices.forEach(function (choice, index) {\n var value = choice.value,\n label = choice.label,\n customProperties = choice.customProperties,\n placeholder = choice.placeholder;\n\n if (_this22._isSelectElement) {\n // If the choice is actually a group\n if (choice.choices) {\n _this22._addGroup({\n group: choice,\n id: choice.id || null\n });\n } else {\n /**\n * If there is a selected choice already or the choice is not the first in\n * the array, add each choice normally.\n *\n * Otherwise we pre-select the first enabled choice in the array (\"select-one\" only)\n */\n var shouldPreselect = _this22._isSelectOneElement && !hasSelectedChoice && index === firstEnabledChoiceIndex;\n var isSelected = shouldPreselect ? true : choice.selected;\n var isDisabled = choice.disabled;\n\n _this22._addChoice({\n value: value,\n label: label,\n isSelected: isSelected,\n isDisabled: isDisabled,\n customProperties: customProperties,\n placeholder: placeholder\n });\n }\n } else {\n _this22._addChoice({\n value: value,\n label: label,\n isSelected: choice.selected,\n isDisabled: choice.disabled,\n customProperties: customProperties,\n placeholder: placeholder\n });\n }\n });\n }\n /**\n * @param {Item[]} items\n */\n\n }, {\n key: \"_addPredefinedItems\",\n value: function _addPredefinedItems(items) {\n var _this23 = this;\n\n items.forEach(function (item) {\n if (_typeof(item) === 'object' && item.value) {\n _this23._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n\n if (typeof item === 'string') {\n _this23._addItem({\n value: item\n });\n }\n });\n }\n }, {\n key: \"_setChoiceOrItem\",\n value: function _setChoiceOrItem(item) {\n var _this24 = this;\n\n var itemType = getType(item).toLowerCase();\n var handleType = {\n object: function object() {\n if (!item.value) {\n return;\n } // If we are dealing with a select input, we need to create an option first\n // that is then selected. For text inputs we can just add items normally.\n\n\n if (!_this24._isTextElement) {\n _this24._addChoice({\n value: item.value,\n label: item.label,\n isSelected: true,\n isDisabled: false,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n } else {\n _this24._addItem({\n value: item.value,\n label: item.label,\n choiceId: item.id,\n customProperties: item.customProperties,\n placeholder: item.placeholder\n });\n }\n },\n string: function string() {\n if (!_this24._isTextElement) {\n _this24._addChoice({\n value: item,\n label: item,\n isSelected: true,\n isDisabled: false\n });\n } else {\n _this24._addItem({\n value: item\n });\n }\n }\n };\n handleType[itemType]();\n }\n }, {\n key: \"_findAndSelectChoiceByValue\",\n value: function _findAndSelectChoiceByValue(val) {\n var _this25 = this;\n\n var choices = this._store.choices; // Check 'value' property exists and the choice isn't already selected\n\n var foundChoice = choices.find(function (choice) {\n return _this25.config.valueComparer(choice.value, val);\n });\n\n if (foundChoice && !foundChoice.selected) {\n this._addItem({\n value: foundChoice.value,\n label: foundChoice.label,\n choiceId: foundChoice.id,\n groupId: foundChoice.groupId,\n customProperties: foundChoice.customProperties,\n placeholder: foundChoice.placeholder,\n keyCode: foundChoice.keyCode\n });\n }\n }\n }, {\n key: \"_generatePlaceholderValue\",\n value: function _generatePlaceholderValue() {\n if (this._isSelectElement) {\n var placeholderOption = this.passedElement.placeholderOption;\n return placeholderOption ? placeholderOption.text : false;\n }\n\n var _this$config4 = this.config,\n placeholder = _this$config4.placeholder,\n placeholderValue = _this$config4.placeholderValue;\n var dataset = this.passedElement.element.dataset;\n\n if (placeholder) {\n if (placeholderValue) {\n return placeholderValue;\n }\n\n if (dataset.placeholder) {\n return dataset.placeholder;\n }\n }\n\n return false;\n }\n }], [{\n key: \"defaults\",\n get: function get() {\n return Object.preventExtensions({\n get options() {\n return USER_DEFAULTS;\n },\n\n get templates() {\n return TEMPLATES;\n }\n\n });\n }\n }]);\n\n return Choices;\n}();\n\nexport default Choices;","import { Controller } from \"stimulus\"\nimport Choices from \"choices.js/src/scripts/choices.js\";\nimport \"choices.js/src/styles/choices.scss\";\n\nexport default class extends Controller {\n static targets = [\"myoutput\", \"choicesinput\"]\n\n connect() {\n // this.myoutputTarget.textContent = 'Hello from choices controller: ' + this.choicesinputTargets.length + ' targets found!'\n this.myoutputTarget.textContent = this.data.get(\"variable\")\n\n // generic construction for all targets and using default options\n this.choicesinputTargets.forEach(this.autoConstructChoices)\n }\n\n autoConstructChoices(item, index) {\n var jsonStringArray = item.dataset.choicesarray // this should be a JSON object, need to parse and put into Array later\n var stringArray = item.dataset.itemsarray // this should be a string with different values separated by comma\n var choicesArray = new Array\n var itemsArray = new Array\n\n // now iterate thru options\n if (jsonStringArray != undefined && jsonStringArray != \"\") {\n var jsonData = JSON.parse(jsonStringArray)\n for (var i = 0; i < jsonData.length; i++) {\n choicesArray.push((jsonData[i])) // choicesarray needs to be an array of JSON objects\n }\n }\n\n // now iterate thru items\n if (stringArray != undefined && stringArray != \"\") {\n itemsArray = stringArray.split(\",\") // split comma delimited string to array\n }\n\n // with some default options\n const choices = new Choices(item, {\n silent: false,\n items: itemsArray,\n choices: choicesArray,\n renderChoiceLimit: -1,\n // maxItemCount: -1,\n maxItemCount: 3,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n // removeItemButton: false,\n removeItemButton: true,\n editItems: false,\n duplicateItemsAllowed: true,\n shouldSort: false,\n })\n\n // default options example\n /*\n const choices = new Choices(item, {\n silent: false,\n items: [],\n choices: [],\n renderChoiceLimit: -1,\n // maxItemCount: -1,\n maxItemCount: 3,\n addItems: true,\n addItemFilter: null,\n removeItems: true,\n // removeItemButton: false,\n removeItemButton: true,\n editItems: false,\n duplicateItemsAllowed: true,\n delimiter: ',',\n paste: true,\n searchEnabled: true,\n searchChoices: true,\n searchFloor: 1,\n searchResultLimit: 4,\n searchFields: ['label', 'value'],\n position: 'auto',\n resetScrollPosition: true,\n shouldSort: true,\n shouldSortItems: false,\n sorter: () => {},\n placeholder: true,\n placeholderValue: null,\n searchPlaceholderValue: null,\n prependValue: null,\n appendValue: null,\n renderSelectedChoices: 'auto',\n loadingText: 'Loading...',\n noResultsText: 'No results found',\n noChoicesText: 'No choices to choose from',\n itemSelectText: 'Press to select',\n addItemText: (value) => {\n return `Press Enter to add \"${value}\"`;\n },\n maxItemText: (maxItemCount) => {\n return `Only ${maxItemCount} values can be added`;\n },\n valueComparer: (value1, value2) => {\n return value1 === value2;\n },\n classNames: {\n containerOuter: 'choices',\n containerInner: 'choices__inner',\n input: 'choices__input',\n inputCloned: 'choices__input--cloned',\n list: 'choices__list',\n listItems: 'choices__list--multiple',\n listSingle: 'choices__list--single',\n listDropdown: 'choices__list--dropdown',\n item: 'choices__item',\n itemSelectable: 'choices__item--selectable',\n itemDisabled: 'choices__item--disabled',\n itemChoice: 'choices__item--choice',\n placeholder: 'choices__placeholder',\n group: 'choices__group',\n groupHeading: 'choices__heading',\n button: 'choices__button',\n activeState: 'is-active',\n focusState: 'is-focused',\n openState: 'is-open',\n disabledState: 'is-disabled',\n highlightedState: 'is-highlighted',\n selectedState: 'is-selected',\n flippedState: 'is-flipped',\n loadingState: 'is-loading',\n noResults: 'has-no-results',\n noChoices: 'has-no-choices'\n },\n // Choices uses the great Fuse library for searching. You\n // can find more options here: https://github.com/krisk/Fuse#options\n fuseOptions: {\n include: 'score'\n },\n callbackOnInit: null,\n callbackOnCreateTemplates: null\n })\n */\n }\n\n}","// Load all the controllers within this directory and all subdirectories. \n// Controller files must be named *_controller.js.\n\nimport { Application } from \"stimulus\"\nimport { definitionsFromContext } from \"stimulus/webpack-helpers\"\n\nconst application = Application.start()\nconst context = require.context(\"controllers\", true, /_controller\\.js$/)\napplication.load(definitionsFromContext(context))\n","export function definitionsFromContext(context) {\n return context.keys().map(function (key) {\n return definitionForModuleWithContextAndKey(context, key);\n }).filter(function (value) {\n return value;\n });\n}\n\nfunction definitionForModuleWithContextAndKey(context, key) {\n var identifier = identifierForContextKey(key);\n\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\n\nfunction definitionForModuleAndIdentifier(module, identifier) {\n var controllerConstructor = module.default;\n\n if (typeof controllerConstructor == \"function\") {\n return {\n identifier: identifier,\n controllerConstructor: controllerConstructor\n };\n }\n}\n\nexport function identifierForContextKey(key) {\n var logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { DirectUpload } from \"@rails/activestorage\";\nexport var AttachmentUpload = /*#__PURE__*/function () {\n function AttachmentUpload(attachment, element) {\n _classCallCheck(this, AttachmentUpload);\n\n this.attachment = attachment;\n this.element = element;\n this.directUpload = new DirectUpload(attachment.file, this.directUploadUrl, this);\n }\n\n _createClass(AttachmentUpload, [{\n key: \"start\",\n value: function start() {\n this.directUpload.create(this.directUploadDidComplete.bind(this));\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this = this;\n\n xhr.upload.addEventListener(\"progress\", function (event) {\n var progress = event.loaded / event.total * 100;\n\n _this.attachment.setUploadProgress(progress);\n });\n }\n }, {\n key: \"directUploadDidComplete\",\n value: function directUploadDidComplete(error, attributes) {\n if (error) {\n throw new Error(\"Direct upload failed: \".concat(error));\n }\n\n this.attachment.setAttributes({\n sgid: attributes.attachable_sgid,\n url: this.createBlobUrl(attributes.signed_id, attributes.filename)\n });\n }\n }, {\n key: \"createBlobUrl\",\n value: function createBlobUrl(signedId, filename) {\n return this.blobUrlTemplate.replace(\":signed_id\", signedId).replace(\":filename\", encodeURIComponent(filename));\n }\n }, {\n key: \"directUploadUrl\",\n get: function get() {\n return this.element.dataset.directUploadUrl;\n }\n }, {\n key: \"blobUrlTemplate\",\n get: function get() {\n return this.element.dataset.blobUrlTemplate;\n }\n }]);\n\n return AttachmentUpload;\n}();","import { AttachmentUpload } from \"./attachment_upload\";\naddEventListener(\"trix-attachment-add\", function (event) {\n var attachment = event.attachment,\n target = event.target;\n\n if (attachment.file) {\n var upload = new AttachmentUpload(attachment, target);\n upload.start();\n }\n});"],"sourceRoot":""}